Hi TI,
SDK : 8.02
We have connected 5 devices on I2C bus 5 (main_i2c3) on AM654 controller. We have connected 5 EEPROMS on this. EEPROMS are properly getting detected in uboot on power cycle and also on runtime if we remove or add the device.
Uboot Logs
=> i2c dev 5
Setting bus to 5
=> i2c probe
Valid chip addresses: 52 53 54 55 56
But from Linux side we see inconsistent behavior for this. with the 5 devices connected we dont see any i2c device using i2cdetect command. nor with i2c driver.
Boot logs :
[ 0.401038] pca953x 0-0038: supply vcc not found, using dummy regulator
[ 0.401192] pca953x 0-0038: using no AI
[ 0.425369] omap_i2c 42120000.i2c: bus 0 rev0.12 at 400 kHz
[ 0.426653] omap_i2c 40b00000.i2c: bus 1 rev0.12 at 100 kHz
[ 0.428143] pca953x 2-0021: supply vcc not found, using dummy regulator
[ 0.428279] pca953x 2-0021: using no AI
[ 0.453900] rtc-ds1307 2-0068: SET TIME!
[ 0.454666] rtc-ds1307 2-0068: registered as rtc0
[ 0.454998] rtc-ds1307 2-0068: setting system clock to 2000-01-01T00:00:05 UTC (946684805)
[ 0.455543] omap_i2c 2000000.i2c: bus 2 rev0.12 at 400 kHz
[ 0.456737] omap_i2c 2010000.i2c: bus 3 rev0.12 at 400 kHz
[ 0.457817] omap_i2c 2020000.i2c: bus 4 rev0.12 at 400 kHz
[ 0.460079] omap_i2c 2030000.i2c: bus 5 rev0.12 at 400 kHz
Here you can see other bus i2c devices are getting detected but on 5th bus no i2c device is detected
i2c detect logs:
~ # i2cdetect -y 5
i2cdetect: warning: can't use SMBus quick write command, will skip some addresses
0 1 2 3 4 5 6 7 8 9 a b c d e f
00:
10:
20:
30: -- -- -- -- -- -- -- --
40:
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60:
70:
But when we remove 1 device i.e. now total 4 devices on i2c we see 4 are getting detected properly.
Boot Logs:
[ 14.068483] at24 0-0050: supply vcc not found, using dummy regulator
[ 14.075679] at24 0-0050: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
[ 14.083234] at24 5-0056: supply vcc not found, using dummy regulator
[ 14.119565] at24 5-0055: supply vcc not found, using dummy regulator
[ 14.126733] at24 5-0055: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
[ 14.133985] at24 5-0054: supply vcc not found, using dummy regulator
[ 14.141074] at24 5-0054: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
[ 14.148436] at24 5-0053: supply vcc not found, using dummy regulator
[ 14.155564] at24 5-0053: 32768 byte 24c256 EEPROM, writable, 1 bytes/write
[ 14.162851] at24 5-0052: supply vcc not found, using dummy regulator
[ 15.019789] virtio_rpmsg_bus virtio1: creating channel ti.ipc4.ping-pong addr 0x65
[ 15.027585] virtio_rpmsg_bus virtio1: creating channel ti.ipc4.HC addr 0x66
[ 15.034631] virtio_rpmsg_bus virtio1: creating channel rpmsg_chrdev addr 0xe
[ 15.042105] virtio_rpmsg_bus virtio0: creating channel ti.ipc4.HC addr 0xf
[ 17.220412] omap_i2c 2030000.i2c: controller timed out
i2cdetect logs :
~ # i2cdetect -y 5
i2cdetect: warning: can't use SMBus quick write command, will skip some addresses
0 1 2 3 4 5 6 7 8 9 a b c d e f
00:
10:
20:
30: -- -- -- -- -- -- -- --
40:
50: -- -- 52 UU UU UU -- -- -- -- -- -- -- -- -- --
60:
70:
Here you can see the log of omap_i2c 2030000.i2c: controller timed out
Can you let me know how can we fix this ?
Regards,
Sarfaraz