When the i2c device is reset, tx2 cannot automatically identify the device again

backgroud: I have a 7-Port Gigabit Ethernet Switch, which need reset after power on. so i use tx2 to reset it throught it’s reset pin.

tx2 ,i2c device power up -> tx2 recognize it. I2c communication is normal -> reset it. I2c communication is failed

questions: tx2 cant’t recognize this i2c device after reset i2c device. Is there a way to reidentify it?

please ,please help me. thank you very mach.

Why does this device needs to be reset through pin? What kind of interface of this device? Shouldn’t it connect through the RJ45 ethernet port and cable? Could you share a photo of this device? Please share your dmesg and detail.

1 Some Settings can only be set through hardware Settings, during reset this device will get this set by hardware Settings.
2 I use i2c to control this device. after reset this device, i2c transmit failed.
3 it is connect through the RJ45 ethernet port and cable. but it is a chip. so i need to set it’s register throught i2c
4 this is a 7-Port Gigabit Ethernet Switch chip. The details data sheet and dmesg are attached.

i find this in dmesg, after reset, Gigabit Ethernet Switch chip have no send acknowledge, and eth0 becomes ready:
[ +26.258088] tegra-i2c 31c0000.i2c: no acknowledge from address 0x5f
[Aug22 01:17] eqos 2490000.ether_qos eth0: Link is Up - 100Mbps/Half - flow control off
[ +0.008390] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready

KSZ9897S.pdf (1.55 MB)
log.txt (60.8 KB)

Do you mean you replace the ethernet phy to a switch like below case?


no,i don’t want to replace the ethernet phy.
I only want to reidentify the Gigabit Ethernet Switch chip when it’s reset. i2c bus can’t find it after it reset.

tx2 , Gigabit Ethernet Switch power up -> tx2 recognize it. I2c communication is normal -> reset Gigabit Ethernet Switch, I2c communication is failed

Please try to measure your i2c data/clk pin. It sounds like your device has somehow lock the signal.

I’m sorry, I don’t understand what a lock signal is. Can you elaborate?

Could you try to compare the signal when the i2c device is firstly detected with the case after you reset your i2c device? Maybe your device pulls down the i2c bus.