Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

i2c_register_board_info(9) [centos man page]

I2C_REGISTER_BOARD_I(9) 				      I2C and SMBus Subsystem					   I2C_REGISTER_BOARD_I(9)

NAME
i2c_register_board_info - statically declare I2C devices SYNOPSIS
int i2c_register_board_info(int busnum, struct i2c_board_info const * info, unsigned len); ARGUMENTS
busnum identifies the bus to which these devices belong info vector of i2c device descriptors len how many descriptors in the vector; may be zero to reserve the specified bus number. DESCRIPTION
Systems using the Linux I2C driver stack can declare tables of board info while they initialize. This should be done in board-specific init code near arch_initcall time, or equivalent, before any I2C adapter driver is registered. For example, mainboard init code could define several devices, as could the init code for each daughtercard in a board stack. The I2C devices will be created later, after the adapter for the relevant bus has been registered. After that moment, standard driver model tools are used to bind "new style" I2C drivers to the devices. The bus number for any device declared using this routine is not available for dynamic allocation. The board info passed can safely be __initdata, but be careful of embedded pointers (for platform_data, functions, etc) since that won't be copied. COPYRIGHT
Kernel Hackers Manual 3.10 June 2014 I2C_REGISTER_BOARD_I(9)

Check Out this Related 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 (* detach_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 *); 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 (for legacy drivers) detach_adapter Callback for bus removal (for legacy drivers) 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 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_data 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 2.6. July 2010 STRUCT I2C_DRIVER(9)
Man Page