> From the original code, the first mechanism to a recovery is to acquire a > GPIO for the SCL line and send the 9 SCL pulses, after that, it does a reset > of the I2C module. For the SOCFPGA part, there is no GPIO line for the SCL, > thus the I2C module cannot even get a reset. This code allows the function > to reset the I2C module for SOCFPGA, which is the 2nd part of the recovery > process. The second part is totally useless if the client device is holding SDA low. Which is exactly the situation that recovery tries to fix. As I said, if you can't control SCL, you don't have recovery. > > See, this function is named scl_recovery, but there is no SCL involved. > > This is why I think there is the misunderstanding here. > > > > I understand your point here. Perhaps just call it i2c_socfpga_recovery()? No. adap->bus_recovery_info should be NULL.
Attachment:
signature.asc
Description: PGP signature