1STRUCT I2C_BOARD_INF(9) I2C and SMBus Subsystem STRUCT I2C_BOARD_INF(9)
2
3
4
6 struct_i2c_board_info - template for device creation
7
9 struct i2c_board_info {
10 char type[I2C_NAME_SIZE];
11 unsigned short flags;
12 unsigned short addr;
13 void * platform_data;
14 struct dev_archdata * archdata;
15 int irq;
16 };
17
19 type[I2C_NAME_SIZE]
20 chip type, to initialize i2c_client.name
21
22 flags
23 to initialize i2c_client.flags
24
25 addr
26 stored in i2c_client.addr
27
28 platform_data
29 stored in i2c_client.dev.platform_data
30
31 archdata
32 copied into i2c_client.dev.archdata
33
34 irq
35 stored in i2c_client.irq
36
38 I2C doesn´t actually support hardware probing, although controllers and
39 devices may be able to use I2C_SMBUS_QUICK to tell whether or not
40 there´s a device at a given address. Drivers commonly need more
41 information than that, such as chip type, configuration, associated
42 IRQ, and so on.
43
44 i2c_board_info is used to build tables of information listing I2C
45 devices that are present. This information is used to grow the driver
46 model tree. For mainboards this is done statically using
47 i2c_register_board_info; bus numbers identify adapters that aren´t yet
48 available. For add-on boards, i2c_new_device does this dynamically with
49 the adapter already known.
50
52Kernel Hackers Manual 2.6. June 2019 STRUCT I2C_BOARD_INF(9)