1STRUCT I2C_DRIVER(9)        I2C and SMBus Subsystem       STRUCT I2C_DRIVER(9)
2
3
4

NAME

6       struct_i2c_driver - represent an I2C device driver
7

SYNOPSIS

9       struct i2c_driver {
10         unsigned int class;
11         int (* attach_adapter) (struct i2c_adapter *);
12         int (* probe) (struct i2c_client *, const struct i2c_device_id *);
13         int (* remove) (struct i2c_client *);
14         void (* shutdown) (struct i2c_client *);
15         void (* alert) (struct i2c_client *, enum i2c_alert_protocol protocol,unsigned int data);
16         int (* command) (struct i2c_client *client, unsigned int cmd, void *arg);
17         struct device_driver driver;
18         const struct i2c_device_id * id_table;
19         int (* detect) (struct i2c_client *, struct i2c_board_info *);
20         const unsigned short * address_list;
21         struct list_head clients;
22       };
23

MEMBERS

25       class
26           What kind of i2c device we instantiate (for detect)
27
28       attach_adapter
29           Callback for bus addition (deprecated)
30
31       probe
32           Callback for device binding
33
34       remove
35           Callback for device unbinding
36
37       shutdown
38           Callback for device shutdown
39
40       alert
41           Alert callback, for example for the SMBus alert protocol
42
43       command
44           Callback for bus-wide signaling (optional)
45
46       driver
47           Device driver model driver
48
49       id_table
50           List of I2C devices supported by this driver
51
52       detect
53           Callback for device detection
54
55       address_list
56           The I2C addresses to probe (for detect)
57
58       clients
59           List of detected clients we created (for i2c-core use only)
60

DESCRIPTION

62       The driver.owner field should be set to the module owner of this
63       driver. The driver.name field should be set to the name of this driver.
64
65       For automatic device detection, both detect and address_list must be
66       defined.  class should also be set, otherwise only devices forced with
67       module parameters will be created. The detect function must fill at
68       least the name field of the i2c_board_info structure it is handed upon
69       successful detection, and possibly also the flags field.
70
71       If detect is missing, the driver will still work fine for enumerated
72       devices. Detected devices simply won't be supported. This is expected
73       for the many I2C/SMBus devices which can't be detected reliably, and
74       the ones which can always be enumerated in practice.
75
76       The i2c_client structure which is handed to the detect callback is not
77       a real i2c_client. It is initialized just enough so that you can call
78       i2c_smbus_read_byte_data and friends on it. Don't do anything else with
79       it. In particular, calling dev_dbg and friends on it is not allowed.
80
82Kernel Hackers Manual 3.10         June 2019              STRUCT I2C_DRIVER(9)
Impressum