[PATCH 00/11] gpiolib: add support for OF GPIO configuration binding

Ahmad Fatoum a.fatoum at pengutronix.de
Fri Aug 9 07:23:54 PDT 2024


So far, GPIO bias configuration was done exclusively by pinctrl drivers.
All barebox pinctrl drivers work by consuming a device tree node with
a binding that differs from driver to driver and then applying the
configuration described within.

Neither GPIO or pinctrl node have any insight on what in particular is
being configured.

This is problematic when wanting to support following device tree
binding, which is so far being ignored:

  gpios = <&gpioe 7 (GPIO_ACTIVE_LOW | GPIO_PULL_DOWN)>;

This series enables support for this binding for gpio-keys on STM32
platforms. More support will follow in future when providers are
extended to support the gpio_ops::set_config operation and consumers are
switched to use the GPIO descriptor API.

Ahmad Fatoum (11):
  gpio: make gpio.h header self-contained
  gpiolib: permit GPIO drivers to implement struct gpio_ops::set_config
  pinctrl: stm32: implement generic struct gpio_ops::set_config
  gpiolib: turn request/active_low into bit flags
  gpiolib: don't use GPIO number API in of_hog_gpio
  gpiolib: store all OF flags into GPIO descriptor
  gpiolib: add support for OF GPIO configuration binding
  gpiolib: use dev_gpiod_get_index device node argument throughout
  gpiolib: export function to get struct gpio_desc from index
  input: gpio_keys: switch to GPIO descriptor API
  input: gpio-keys: request with label in DT if available

 drivers/gpio/Kconfig            |  14 ++
 drivers/gpio/gpiolib.c          | 254 +++++++++++++++++++++++++-------
 drivers/input/Kconfig           |   2 +-
 drivers/input/gpio_keys.c       |  69 +++++----
 drivers/of/Kconfig              |  15 ++
 drivers/pinctrl/Kconfig         |   1 +
 drivers/pinctrl/pinctrl-stm32.c |  41 ++++++
 include/gpio.h                  |   4 +
 include/linux/gpio/consumer.h   |  19 +++
 include/of_gpio.h               |   6 +
 10 files changed, 337 insertions(+), 88 deletions(-)

-- 
2.39.2




More information about the barebox mailing list