On 24/10/2019 23:07, Wolfram Sang wrote:
So at the beginning of a new transfer, we should check if SDA (or SCL?)
is low and, if it's true, only then we should try recover the bus.
Yes, this is the proper time to do it. Remember, I2C does not define a
timeout.
FYI: Just a single poll at the start of the transfer, for it being low, will cause problems with multi-master buses.
Bus recovery should be attempted after a timeout when trying to communicate, even thou i2c doesn't define a timeout.
I'm trying to fix the designware drivers handling of this at the moment.
--
Regards
Phil Reid