Hi Alain, > > > + stm32f7_i2c_wait_free_bus(i2c_dev); > > > > This does only a controller reset, not a bus recovery with 9 toggling > > pulses, or? > > indeed. I might better rework this and at the same time introduce the > bus recovery mechanism via the bus recovery callback in this driver. > Please don't merge this patch and I will rework that. Wait a sec. Resetting a controller at the end of a failed transfer might make sense if the controller is otherwise in an confused state. Full bus recovery (9 pulses) should be done at the beginning of a transfer when SDA is low, though. So, I'd actually suggest to apply this patch and add full bus recovery based on SDA low at the beginning of a transfer seperately. What do you think? All the best, Wolfram