Hi All,
I have been experiencing some undefined behavior on i2c bus . I have a 4 devices on ls1021aiot based custom board
• Temperature ADT7461 (0x4C) ---- linux driver is attached for this device
• Board clocking 6V49205B (0x69) ---- No driver is attached for this device
• PMIC MC34VR500V1ES (0x08) ----- No driver is attached for this device
• And controller acting as slave at address 0x70 . ---- linux driver is attached for this device
When I do i2cdetect on linux I get following
root@bravo:~# i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f
10: 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f
20: 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f
30: -- -- -- -- -- -- -- -- 38 39 3a 3b 3c 3d 3e 3f
40: 40 41 42 43 44 45 46 47 48 49 4a 4b UU 4d 4e 4f
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: 60 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f
70: UU 71 72 73 74 75 76 77
root@bravo:~#
And I cannot access any of my devices now ( ADT7461 (0x4C) and at address 0x70). I can't figure out why this is happening. When I do reboot it doesn't solve the problem when I power cycle the board all the devices comes back and work fine . I suspect that one of the devices is pulling the SDA line low , not sure though. If any one of you have experience this kind of problem can you please help. Is there a way to recover it from linux or u-boot. any help or hint I'll appreciate.
Thanks
Dhruval
Perhaps that some I2C device on your board requires a few time to start after power up.
Add a delay after power up before I2C device reading.
Have a great day,
Pavel Chubakov
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------