dm: i2c-gpio: add support for clock stretching
authorHeiko Schocher <hs@denx.de>
Mon, 16 Mar 2020 06:55:06 +0000 (07:55 +0100)
committerHeiko Schocher <hs@denx.de>
Mon, 16 Mar 2020 06:55:06 +0000 (07:55 +0100)
commitba6fb2f6aca54c6555742d507290cbfaa655e623
treeaed4a6fccbf47832226a0991a657683c779e1698
parent7383edc2fbd56573819f9ca7401105366191b715
dm: i2c-gpio: add support for clock stretching

This adds support for clock stretching to the i2c-gpio driver. This is
accomplished by switching the GPIO used for the SCL line to an input
when it should be driven high, and polling on the SCL line value until
it goes high (indicating that the I2C slave is no longer pulling it
low).

This is enabled by default; for gpios which cannot be configured as
inputs, the i2c-gpio,scl-output-only property can be used to fall back
to the previous behavior.

Signed-off-by: Michael Auchter <michael.auchter@ni.com>
Cc: Heiko Schocher <hs@denx.de>
Reviewed-by: Heiko Schocher <hs@denx.de>
doc/device-tree-bindings/i2c/i2c-gpio.txt
drivers/i2c/i2c-gpio.c