nanohub: i2c: detect and clock through stuck low sda

If the chip is reset in the middle of an i2c read, the
slave will still be waiting for additional pulses of sdc.
This prevents all chips on the stuck i2c bus from being
detected until a power cycle.
Detect that sda is stuck low and attempt to clock through
the issue.

Bug: 65966547
Test: run accel at a high rate over i2c and reset the stm32.
Confirm all chips on i2c are detected after reset.
Change-Id: I3a7ec24556a693b5506ba65f4eefa6e9f36e5818
Signed-off-by: Ben Fennema <>
3 files changed