Main Page
From Linux i2c Wiki
Linux i2c Subsystem
This is the home of the Linux i2c subsystem.
Theory of operation
- Driver Architecture
- I2C protocol summary
- SMBus protocol summary
- 10-bit addresses information
- /dev interface documentation
- I2C adapter functionalities
Developer's documentation
- Linux 2.6 I2C development FAQ
- Conventions for use of fault codes in the I2C/SMBus stack
- How to instantiate I2C devices
- Writing kernel drivers for I2C or SMBus devices
- Upgrading I2C chip drivers to the 2.6 driver model
- i2c-stub, a fake I2C/SMBus master driver for testing purpose
Work in progress
- David Brownell was working on SMBus alert response support.
- Rodolfo Giometti is working on I2C bus multiplexing support.
- Wolfram Sang is working on moving drivers out of the directory 'drivers/i2c/chips' to ultimately remove it.
- Jean Delvare is working on dropping I2C_CLIENT_INSMOD* macros.
To-do list
- The i2c-dev driver needs to be ported to the new i2c device driver binding model. See this discussion and this bug report.
- The I2C_FUNC_PROTOCOL_MANGLING implementations need some cleanups. Many drivers implement this but don't need it.
- i2c_adapter.retries and i2c_adapter.timeout need to be clarified. Their original intent was not necessarily good nor clear, but they could still be useful, if fault codes returned by adapter drivers are also clarified.
