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 
USB_DRIVER(9) Host-Side Data Types and Macro STRUCT USB_DRIVER(9) NAME
struct_usb_driver - identifies USB interface driver to usbcore SYNOPSIS
struct usb_driver { const char * name; int (* probe) (struct usb_interface *intf,const struct usb_device_id *id); void (* disconnect) (struct usb_interface *intf); int (* ioctl) (struct usb_interface *intf, unsigned int code,void *buf); int (* suspend) (struct usb_interface *intf, pm_message_t message); int (* resume) (struct usb_interface *intf); int (* reset_resume) (struct usb_interface *intf); int (* pre_reset) (struct usb_interface *intf); int (* post_reset) (struct usb_interface *intf); const struct usb_device_id * id_table; struct usb_dynids dynids; struct usbdrv_wrap drvwrap; unsigned int no_dynamic_id:1; unsigned int supports_autosuspend:1; unsigned int soft_unbind:1; }; MEMBERS
name The driver name should be unique among USB drivers, and should normally be the same as the module name. probe Called to see if the driver is willing to manage a particular interface on a device. If it is, probe returns zero and uses usb_set_intfdata to associate driver-specific data with the interface. It may also use usb_set_interface to specify the appropriate altsetting. If unwilling to manage the interface, return -ENODEV, if genuine IO errors occured, an appropriate negative errno value. disconnect Called when the interface is no longer accessible, usually because its device has been (or is being) disconnected or the driver module is being unloaded. ioctl Used for drivers that want to talk to userspace through the "usbfs" filesystem. This lets devices provide ways to expose information to user space regardless of where they do (or don't) show up otherwise in the filesystem. suspend Called when the device is going to be suspended by the system. resume Called when the device is being resumed by the system. reset_resume Called when the suspended device has been reset instead of being resumed. pre_reset Called by usb_reset_device when the device is about to be reset. post_reset Called by usb_reset_device after the device has been reset id_table USB drivers use ID table to support hotplugging. Export this with MODULE_DEVICE_TABLE(usb,...). This must be set or your driver's probe function will never get called. dynids used internally to hold the list of dynamically added device ids for this driver. drvwrap Driver-model core structure wrapper. no_dynamic_id if set to 1, the USB core will not allow dynamic ids to be added to this driver by preventing the sysfs file from being created. supports_autosuspend if set to 0, the USB core will not allow autosuspend for interfaces bound to this driver. soft_unbind if set to 1, the USB core will not kill URBs and disable endpoints before calling the driver's disconnect method. DESCRIPTION
USB interface drivers must provide a name, probe and disconnect methods, and an id_table. Other driver fields are optional. The id_table is used in hotplugging. It holds a set of descriptors, and specialized data may be associated with each entry. That table is used by both user and kernel mode hotplugging support. The probe and disconnect methods are called in a context where they can sleep, but they should avoid abusing the privilege. Most work to connect to a device should be done when the device is opened, and undone at the last close. The disconnect code needs to address concurrency issues with respect to open and close methods, as well as forcing all pending I/O requests to complete (by unlinking them as necessary, and blocking until the unlinks complete). COPYRIGHT
Kernel Hackers Manual 2.6. July 2010 STRUCT USB_DRIVER(9)
Man Page