Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problems encountered by i2c-i801 drivers #345

Open
philo-micas opened this issue Oct 11, 2023 · 0 comments
Open

Problems encountered by i2c-i801 drivers #345

philo-micas opened this issue Oct 11, 2023 · 0 comments

Comments

@philo-micas
Copy link
Contributor

philo-micas commented Oct 11, 2023

Code Path:drivers/i2c/busses/i2c-i801.c

Issue 1:“SMBus is busy, can't use it!”Error happens sometimes. The I2C controller cannot be used.
Issue 2:An occasional I2C deadlock (SCL is high voltage level and SDA is low voltage level) cannot be recovered, making the I2C controller unusable.

Regarding this issue, our solution is:

Issue1:The cause of SMBus Busy is unknown. At present, we have added controller reset logic. When SMBus Busy occurs, the controller is reset, so that the I2C controller can be recovered after a fault occurs.
Issue2: The cause of I2C deadlock is unknown. Now, we have added the I2C nine clocks function. Before I2C transmission, the driver checks whether I2C deadlock occurs (SCL is high voltage level and SDA is low voltage level). If the I2C deadlock occurs, nine clocks are sent to unlock the device

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant