[PATCH/RFC 0/2] gpio: of: Add DT overlay support for GPIO hogs

From: Geert Uytterhoeven
Date: Mon Dec 30 2019 - 08:39:03 EST


Hi all,

As GPIO hogs are configured at GPIO controller initialization time,
adding/removing GPIO hogs in Device Tree overlays currently does not
work. Hence this patch series adds support for that, by registering an
of_reconfig notifier, as is already done for platform, i2c, and SPI
devices.

Perhaps this would be better served through a pinctrl-gpio driver?
Pinctrl is already working fine with DT overlays, as the pinctrl-*
properties are part of the slave device node, and thus looked up at
slave device node attachment time, not at pin controller initialization
time.

In my particular use case (talking to SPI devices connected to a PMOD
connector on the RSK+RZA1 development board), the GPIO performs board
level muxing of a.o. the SPI MOSI/MISO/SCK signals. Hence the hog
really needs to be active only while talking to the SPI device, so the
muxing could (in theory) be done upon demand.
But how to describe that in DT, and implement it (using Runtime PM?)?

Thanks for your comments!

Geert Uytterhoeven (2):
gpio: of: Extract of_gpiochip_add_hog()
gpio: of: Add DT overlay support for GPIO hogs

drivers/gpio/gpiolib-of.c | 133 +++++++++++++++++++++++++++++++++-----
drivers/gpio/gpiolib-of.h | 2 +
drivers/gpio/gpiolib.c | 14 +++-
drivers/gpio/gpiolib.h | 3 +
4 files changed, 133 insertions(+), 19 deletions(-)

--
2.17.1

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

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