| CARVIEW |
Select Language
HTTP/1.1 301 Moved Permanently
Server: nginx
Date: Fri, 26 Dec 2025 17:53:41 GMT
Content-Type: text/html
Content-Length: 162
Connection: keep-alive
Location: https://archive.kernel.org/oldwiki/i2c.wiki.kernel.org/
HTTP/1.1 200 OK
Server: nginx
Date: Fri, 26 Dec 2025 17:53:42 GMT
Content-Type: text/html
Last-Modified: Fri, 10 Mar 2023 16:59:18 GMT
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
X-Frame-Options: DENY
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Strict-Transport-Security: max-age=15768001
Content-Encoding: gzip
Linux i2c Wiki
Main Page
From Linux i2c Wiki
Jump to: navigation, search
OBSOLETE CONTENT
This wiki has been archived and the content is no longer updated.
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
- I2C bus multiplexing
- complex I2C topologies
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
- i2c-stub, a fake I2C/SMBus master driver for testing purpose
User-space tools
User-space tools for I2C/SMBus are being maintained in the i2c-tools git tree. Released versions can be downloaded from https://www.kernel.org/pub/software/utils/i2c-tools/.
Work in progress
- increase SMBus max block size from 32 to 255 as documented in the 3.x specification. Hardest problem is to not break userspace ABI.
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.
- 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.
- Exclusive access to bus segments or devices. The former can partly be done in-kernel since version 3.6 (i2c_lock_adapter / __i2c_transfer / i2c_unlock_adapter) or the SMBus equivalent. Also the user-space case mentioned here is not supported yet.
- The kernel should be able to prevent probing of specific I2C bus segments from user-space. Either by exposing the class flags and hoping user-space will pay attention and be fair, or by defining one more class flag for user-space access and enforcing it.
Old pages
Subsystem History - up to Linux 3.6
Retrieved from "https://i2c.wiki.kernel.org/index.php?title=Main_Page&oldid=1686"
Views
Personal tools
Navigation
- This page was last modified on 10 March 2021, at 20:35.
- Privacy policy
- About Linux i2c Wiki
- Disclaimers