I2C communication is done by a combination of driving a line low or letting
it float, so that it is either pulled up or driven low by another party.
rS355276 besides the stated goal of the change -- using the new GPIO API --
also change the logic, so that active state is signaled by actively driving
That worked with iicbb prior to rS362042, but stopped working after that
commit on at least some hardware. My guess that the breakage was related to
getting an ACK bit. A device expected to be able to drive SDA actively low,
but controller was actively driving it high for some time.
Anyway, this change seems to fix the problem.
Tested using gpioiic on Orange Pi PC Plus with HTU21 sensor.