This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM3352: I2C Slave timeout issue

Part Number: AM3352

Use AM3352 I2C as slave, if host sends signal on the bus during M335x initialization stage. the slave AM335x may hang and report time out, log as below:

net eth1: initializing cpsw version 1.12 (0)

net eth1: phy found : id is : 0x4dd074
8021q: adding VLAN 0 to HW filter on device eth1
omap_i2c 4819c000.i2c: controller timed out
libphy: 4a101000.mdio:08 - Link is Up - 1000/Full
omap_i2c 44e0b000.i2c: controller timed out
omap_i2c 44e0b000.i2c: controller timed out
omap_i2c 44e0b000.i2c: controller timed out
omap_i2c 44e0b000.i2c: controller timed out
omap_i2c 44e0b000.i2c: controller timed out
omap_i2c 44e0b000.i2c: controller timed out

Need to power cycle to recover.

Customer did experiment to identify the cause: disconnect the I2C signal between host and slave physically, initialize AM335x I2C first, then connect the I2C signal with jumper, the driver doesn't report time out issue with many times test.

Questions:

#1. When use AM335x I2C as slave. Is it mandatory to require slave initialize before host access.

#2. If system can't meet the initialization procedure, how to recover I2C from time out without power cycle?