TWI / I2C Diagnostics and FAQ
i2cdetectshows only--: inspect SDA/SCL pinmux, external pull-ups, power, bus number, and node status.- An address shows
UU: a kernel driver already owns it; this is not an error. timeout: often caused by a device holding SDA/SCL low, weak pull-ups, excessive bus frequency, or clock/reset problems.- START/STOP cannot be generated: inspect the bus with an oscilloscope before checking controller state and reset.
- Incomplete data: inspect length, DMA/engine mode, repeated-start requirements, and EEPROM page limits.
dmesg | grep -Ei 'twi|i2c'
cat /sys/class/i2c-adapter/i2c-*/name
find /sys/kernel/debug -iname '*twi*' -o -iname '*i2c*'
General diagnostic order
- Schematic and power.
- Node and pinctrl in the final DTB.
- Final
.configand modules. - Probe, clock, reset, and IRQ logs.
- Device node and sysfs/debugfs.
- Minimal functional test.
- Stress, suspend, and abnormal hot-plug tests.
Do not treat the removal of an error log as a fix. Find the first failure and validate its upstream and downstream dependencies.