Basics of I2C on Linux
summary
Covers I²C electrical basics, how buses and 7-bit addresses map into Linux device tree and sysfs, and the minimal kernel driver pattern (i2c_driver table + probe). Shows real driver code using SMBus helpers and the i2c_transfer "Swiss army knife" for multi-message sequences. Lists user tools i2cdetect/i2cdump/i2cget/i2cset and warns they can disturb the bus. Recommends oscilloscope and PulseView + cheap logic analyzer for missing ACKs, pull‑up problems, bus‑busy recovery, clock throttling, and reset-on-boot workarounds.
AI-written summary · about
chapters (7)
- 0:00Start
- 0:45What is PC
- 13:04Client device driver: i2c and device tree tables
- 13:39Client device driver: probe function
- 15:43Client device driver: requesting PC transactions
- 26:23Logic analyzer
- 28:18Troubleshooting tools








