sonic-linux-kernel icon indicating copy to clipboard operation
sonic-linux-kernel copied to clipboard

Problems encountered by i2c-gpio drivers

Open philo-micas opened this issue 1 year ago • 0 comments

Code Path:drivers/i2c/algos/i2c-algo-bit.c

Issue 1:An occasional I2C deadlock (SCL is high voltage level and SDA is low voltage level) cannot be recovered, making the I2C controller unusable. Issue 2:Insert a faulty optical module with SDA and GND short-circuited, the I2C GPIO controller cannot identify the exception, and all the data read is 0 (The access is successful from the I2C protocol)

Regarding this issue, our solution is:

Issue1:The solution is the same as the i2c-i801 driver, which also imports 9 clock unlock functions Issue2:Add I2C-GPIO voltage level detection to determine SCL and SDA voltage levels before I2C begins transmission. If the SCL and SDA voltage levels are not high at the same time, a failure is returned.

philo-micas avatar Oct 11 '23 06:10 philo-micas