On 2018-07-16 12:37, Geert Uytterhoeven wrote: > On Thu, Jul 12, 2018 at 7:49 PM Wolfram Sang > <wsa+renesas@xxxxxxxxxxxxxxxxxxxx> wrote: >> When we we initialize the pins, make sure it looks like STOP by dividing >> the delay into halves. It shouldn't matter because SDA is expected to be >> held low by a device, but for super-safety, let's do it. >> >> Signed-off-by: Wolfram Sang <wsa+renesas@xxxxxxxxxxxxxxxxxxxx> >> --- >> drivers/i2c/i2c-core-base.c | 5 +++-- >> 1 file changed, 3 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/i2c/i2c-core-base.c b/drivers/i2c/i2c-core-base.c >> index 51cbb0c158f2..e57231ccb32a 100644 >> --- a/drivers/i2c/i2c-core-base.c >> +++ b/drivers/i2c/i2c-core-base.c >> @@ -191,9 +191,10 @@ int i2c_generic_scl_recovery(struct i2c_adapter *adap) >> bri->prepare_recovery(adap); >> >> bri->set_scl(adap, scl); >> + ndelay(RECOVERY_NDELAY / 2); > > Any change someone changes RECOVERY_NDELAY to 1, leading to a > zero delay here? Is that an issue? No! Above this, there is this line: #define RECOVERY_NDELAY 5000 Cheers, Peter >> if (bri->set_sda) >> - bri->set_sda(adap, 1); >> - ndelay(RECOVERY_NDELAY); >> + bri->set_sda(adap, scl); >> + ndelay(RECOVERY_NDELAY / 2); >> >> /* >> * By this time SCL is high, as we need to give 9 falling-rising edges > > Gr{oetje,eeting}s, > > Geert >