[PATCH 0/7] I2C GPIO to use gpiolibs open drain
Geert Uytterhoeven
geert at linux-m68k.org
Mon Sep 18 04:15:55 PDT 2017
Hi Linus,
On Sun, Sep 17, 2017 at 11:38 AM, Linus Walleij
<linus.walleij at linaro.org> wrote:
> This augments the I2C GPIO driver to use open drain emulation
> or hardware support for open drain from the GPIO driver.
>
> This version layers Geert Uytterhoeven's idea to use explicit
> sda-gpios and scl-gpios for the GPIO lines, and strongly
> encourage the (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN) flags to be
> used in all device trees.
>
> We have collected ACKs from the ARM SoC maintainers and the
> MFD maintainer and are looking for testers to try this out.
>
> Geert Uytterhoeven (1):
> dt-bindings: i2c: i2c-gpio: Add support for named gpios
>
> Linus Walleij (6):
> i2c: gpio: Convert to use descriptors
> gpio: Make it possible for consumers to enforce open drain
> i2c: gpio: Enforce open drain through gpiolib
> i2c: gpio: Augment all boardfiles to use open drain
> i2c: gpio: Local vars in probe
> i2c: gpio: Add support for named gpios in DT
Thanks for doing this, and picking up my patch.
I gave this a try on r8a7740/armadillo800eva.
Without DT changes, the GPIO i2c bus still works fine, but a warning is
printed, as expected:
gpio-208 (sda): enforced open drain please flag it properly in
DT/ACPI DSDT/board file
gpio-91 (scl): enforced open drain please flag it properly in
DT/ACPI DSDT/board file
After
- sda-gpios = <&pfc 208 GPIO_ACTIVE_HIGH>;
- scl-gpios = <&pfc 91 GPIO_ACTIVE_HIGH>;
+ sda-gpios = <&pfc 208 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
+ scl-gpios = <&pfc 91 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
the warning is gone, and the GPIO i2c bus still works.
Tested-by: Geert Uytterhoeven <geert+renesas at glider.be>
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert at linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
More information about the linux-arm-kernel
mailing list