Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

struct_i2c_driver(9) [centos man page]

STRUCT 
I2C_DRIVER(9) I2C and SMBus Subsystem STRUCT I2C_DRIVER(9) NAME
struct_i2c_driver - represent an I2C device driver SYNOPSIS
struct i2c_driver { unsigned int class; int (* attach_adapter) (struct i2c_adapter *); int (* probe) (struct i2c_client *, const struct i2c_device_id *); int (* remove) (struct i2c_client *); void (* shutdown) (struct i2c_client *); int (* suspend) (struct i2c_client *, pm_message_t mesg); int (* resume) (struct i2c_client *); void (* alert) (struct i2c_client *, unsigned int data); int (* command) (struct i2c_client *client, unsigned int cmd, void *arg); struct device_driver driver; const struct i2c_device_id * id_table; int (* detect) (struct i2c_client *, struct i2c_board_info *); const unsigned short * address_list; struct list_head clients; }; MEMBERS
class What kind of i2c device we instantiate (for detect) attach_adapter Callback for bus addition (deprecated) probe Callback for device binding remove Callback for device unbinding shutdown Callback for device shutdown suspend Callback for device suspend resume Callback for device resume alert Alert callback, for example for the SMBus alert protocol command Callback for bus-wide signaling (optional) driver Device driver model driver id_table List of I2C devices supported by this driver detect Callback for device detection address_list The I2C addresses to probe (for detect) clients List of detected clients we created (for i2c-core use only) DESCRIPTION
The driver.owner field should be set to the module owner of this driver. The driver.name field should be set to the name of this driver. For automatic device detection, both detect and address_list must be defined. class should also be set, otherwise only devices forced with module parameters will be created. The detect function must fill at least the name field of the i2c_board_info structure it is handed upon successful detection, and possibly also the flags field. If detect is missing, the driver will still work fine for enumerated devices. Detected devices simply won't be supported. This is expected for the many I2C/SMBus devices which can't be detected reliably, and the ones which can always be enumerated in practice. The i2c_client structure which is handed to the detect callback is not a real i2c_client. It is initialized just enough so that you can call i2c_smbus_read_byte_data and friends on it. Don't do anything else with it. In particular, calling dev_dbg and friends on it is not allowed. COPYRIGHT
Kernel Hackers Manual 3.10 June 2014 STRUCT I2C_DRIVER(9)

Check Out this Related Man Page

STRUCT 
CLASS(9) Device drivers infrastructure STRUCT CLASS(9) NAME
struct_class - device classes SYNOPSIS
struct class { const char * name; struct module * owner; struct class_attribute * class_attrs; struct device_attribute * dev_attrs; const struct attribute_group ** dev_groups; struct bin_attribute * dev_bin_attrs; struct kobject * dev_kobj; int (* dev_uevent) (struct device *dev, struct kobj_uevent_env *env); char *(* devnode) (struct device *dev, umode_t *mode); void (* class_release) (struct class *class); void (* dev_release) (struct device *dev); int (* suspend) (struct device *dev, pm_message_t state); int (* resume) (struct device *dev); const struct kobj_ns_type_operations * ns_type; const void *(* namespace) (struct device *dev); const struct dev_pm_ops * pm; struct subsys_private * p; }; MEMBERS
name Name of the class. owner The module owner. class_attrs Default attributes of this class. dev_attrs Default attributes of the devices belong to the class. dev_groups Default attributes of the devices that belong to the class. dev_bin_attrs Default binary attributes of the devices belong to the class. dev_kobj The kobject that represents this class and links it into the hierarchy. dev_uevent Called when a device is added, removed from this class, or a few other things that generate uevents to add the environment variables. devnode Callback to provide the devtmpfs. class_release Called to release this class. dev_release Called to release the device. suspend Used to put the device to sleep mode, usually to a low power state. resume Used to bring the device from the sleep mode. ns_type Callbacks so sysfs can detemine namespaces. namespace Namespace of the device belongs to this class. pm The default device power management operations of this class. p The private data of the driver core, no one other than the driver core can touch this. DESCRIPTION
A class is a higher-level view of a device that abstracts out low-level implementation details. Drivers may see a SCSI disk or an ATA disk, but, at the class level, they are all simply disks. Classes allow user space to work with devices based on what they do, rather than how they are connected or how they work. COPYRIGHT
Kernel Hackers Manual 3.10 June 2014 STRUCT CLASS(9)
Man Page