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 (* detach_adapter) (struct i2c_adapter *);
13         int (* probe) (struct i2c_client *, const struct i2c_device_id *);
14         int (* remove) (struct i2c_client *);
15         void (* shutdown) (struct i2c_client *);
16         int (* suspend) (struct i2c_client *, pm_message_t mesg);
17         int (* resume) (struct i2c_client *);
18         int (* command) (struct i2c_client *client, unsigned int cmd, void *arg);
19         struct device_driver driver;
20         const struct i2c_device_id * id_table;
21         int (* detect) (struct i2c_client *, int kind, struct i2c_board_info *);
22         const struct i2c_client_address_data * address_data;
23         struct list_head clients;
24       };
25

MEMBERS

27       class
28           What kind of i2c device we instantiate (for detect)
29
30       attach_adapter
31           Callback for bus addition (for legacy drivers)
32
33       detach_adapter
34           Callback for bus removal (for legacy drivers)
35
36       probe
37           Callback for device binding
38
39       remove
40           Callback for device unbinding
41
42       shutdown
43           Callback for device shutdown
44
45       suspend
46           Callback for device suspend
47
48       resume
49           Callback for device resume
50
51       command
52           Callback for bus-wide signaling (optional)
53
54       driver
55           Device driver model driver
56
57       id_table
58           List of I2C devices supported by this driver
59
60       detect
61           Callback for device detection
62
63       address_data
64           The I2C addresses to probe, ignore or force (for detect)
65
66       clients
67           List of detected clients we created (for i2c-core use only)
68

DESCRIPTION

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