Tool/software:
Dear TI Team,
We are facing DRA712 I2C bus stuck and I2C controller timed out on our DRA712 based custom board.
The system is running yocto/linux. Kernel version 4.19.73.
Linux Kernel log = "omap_i2c 48070000.i2c: controller timed out"
As shown in the partial block diagram above, the other 2 chips connected on the same I2C bus are TI's DS90UB954 and DS90UB953, which are FPDLink-MIPI_CSI SerDeses.
During normal operation, there is some periodic I2C traffic between the two SerDeses every 20ms.
The SoC I2C controller timeout is seen when the SoC tries to access the DS90UB954. Its just a single byte write operation. The issue occurs around 2% of the times SoC accesses the bus.
Using protocol analyzer, we found that during the issue, the I2C bus was stuck for around 1 second.
This stalls the periodic I2C communication between the two SerDeses causing issues in the overall system.
- Please help us understand what could be causing this issue when the SoC tries to access the I2C bus.
- And what can be done to avoid this issue.
- Also, in order to reduce the time the bus is stuck, we are considering reducing the value of OMAP_I2C_TIMEOUT (in linux driver i2c-omap.c) which is currently set as 1sec to a few milliseconds.
- Do let us know if it's safe to make this change.
Thanks and Regards,
Anand Mistry