References
This page collects the authoritative technical documents, Linux kernel sources, and related tools that underpin smbus2. They are useful background reading when you need to understand what happens at the protocol or kernel level.
SMBus and I²C Specifications
Resource |
Description |
|---|---|
Index of all published SMBus specification revisions. |
|
UM10204 — I²C-bus specification and user manual, Rev. 7.0 (2021) |
The authoritative NXP/Philips I²C specification. Defines the physical layer, START/STOP conditions, repeated-start, clock stretching, 7-bit and 10-bit addressing, and multi-master arbitration. |
Linux Kernel I2C / SMBus Documentation
Document |
Description |
|---|---|
Top-level index for the Linux kernel’s |
|
Describes |
|
Kernel-side summary of every SMBus transaction type and the corresponding |
|
Documents the |
|
Explains the |
|
Background on 10-bit address support in the Linux I2C subsystem ( |
|
How the kernel binds drivers to I2C devices — relevant when a device is already claimed by a kernel driver and you receive |
Linux Kernel Header Files
These C headers define the data structures and constants that smbus2 mirrors via
ctypes. They ship with the Linux kernel source tree and are also available in most
distributions’ linux-headers-* or kernel-headers packages.
Header |
Relevance |
|---|---|
Defines |
|
Defines all |
|
Defines |
i2c-tools User-Space Utilities
The i2c-tools package provides the command-line utilities commonly used alongside
smbus2 for bus discovery and manual device interrogation.
Tool / Resource |
Description |
|---|---|
Home page for the |
|
Source for |
|
|
Scan bus 1 for responding device addresses — the first diagnostic step when a device is not found. |
|
Dump all registers of the device at address |
|
Perform a write-then-read transaction (equivalent to smbus2’s |
Python ctypes and struct References
smbus2 uses ctypes internally to construct kernel data structures. The tips in the
documentation (e.g. signed-integer conversion, endianness swap) also use standard-library
modules.
Reference |
Description |
|---|---|
Python’s foreign-function and C-compatible type library — used by smbus2 for |
|
Pack/unpack bytes with format strings — useful for byte-order conversion of multi-byte sensor values. |
|
The Linux-only standard-library module that smbus2 uses to issue |
smbus2 Project Resources
Resource |
URL |
|---|---|
GitHub repository |
https://github.com/kplindegaard/smbus2 |
PyPI package |
https://pypi.org/project/smbus2/ |
Read the Docs (API docs) |
https://smbus2.readthedocs.io/en/latest/ |
Changelog |
|
Issue tracker |
https://github.com/kplindegaard/smbus2/issues |