[PATCH 00/10] gpio: add proper gpiod API and gpio-mux support
Ahmad Fatoum
a.fatoum at pengutronix.de
Wed Jun 14 06:54:42 PDT 2023
The gpiod_ (GPIO descriptor) API used with Linux differs from barebox'
normal GPIO API:
- gpiod handles are opaque pointers and not an integer, which users
have an expectation of stability for
- gpiod API uses logic levels by default with separate raw API for
physical level instead of physical level by default and separate
API taking active level into account.
The barebox gpiod_ API mimics the latter point, but still uses integers
requiring ugly and arguably error prone conversions when porting kernel
code.
This series fixes that by adding proper struct gpio_desc API like in
Linux and then builds upon that to port the kernel gpio-mux driver.
Ahmad Fatoum (10):
driver: include dev_print and family from <driver.h>
include: linux/printk: define new dev_errp_probe
gpio: have gpiod_ functions return and accept pointers
gpio: gpiolib: rename struct gpio_info to gpio_desc
gpiolib: export proper gpio descriptor API
bitmap: implement bitmap_{to,from}_arr{32,64}
commands: help: ignore options after first regular argument
gpiolib: factor out finding gpio property
gpiolib: add support for requesting and setting gpiod arrays
drivers: port Linux mux framework and gpio-mux driver
commands/help.c | 19 +-
drivers/Kconfig | 1 +
drivers/Makefile | 1 +
drivers/gpio/gpio-pca953x.c | 9 +-
drivers/gpio/gpiolib.c | 528 +++++++++++++++++------
drivers/mci/mci_spi.c | 13 +-
drivers/mtd/nand/atmel/nand-controller.c | 40 +-
drivers/mtd/nand/nand_base.c | 4 +-
drivers/mux/Kconfig | 29 ++
drivers/mux/Makefile | 10 +
drivers/mux/core.c | 472 ++++++++++++++++++++
drivers/mux/gpio.c | 103 +++++
drivers/net/designware_eqos.c | 26 +-
drivers/net/ksz8873.c | 13 +-
drivers/net/ksz9477.c | 13 +-
drivers/net/realtek-dsa/realtek-mdio.c | 10 +-
drivers/net/realtek-dsa/realtek-smi.c | 18 +-
drivers/net/realtek-dsa/realtek.h | 6 +-
drivers/net/sja1105.c | 25 +-
drivers/nvmem/starfive-otp.c | 12 +-
drivers/pci/pcie-dw-rockchip.c | 14 +-
drivers/power/reset/gpio-poweroff.c | 14 +-
drivers/power/reset/gpio-restart.c | 23 +-
drivers/regulator/fixed.c | 27 +-
drivers/sound/gpio-beeper.c | 14 +-
drivers/usb/misc/onboard_usb_hub.c | 11 +-
drivers/video/mipi_dbi.c | 8 +-
drivers/video/panel-ilitek-ili9341.c | 17 +-
drivers/video/panel-mipi-dbi.c | 17 +-
drivers/watchdog/gpio_wdt.c | 22 +-
include/driver.h | 1 +
include/gpiod.h | 79 +---
include/linux/bitmap.h | 101 +++++
include/linux/gpio/consumer.h | 137 ++++++
include/linux/mtd/rawnand.h | 4 +-
include/linux/printk.h | 3 +
include/video/mipi_dbi.h | 7 +-
lib/bitmap.c | 103 +++++
38 files changed, 1559 insertions(+), 395 deletions(-)
create mode 100644 drivers/mux/Kconfig
create mode 100644 drivers/mux/Makefile
create mode 100644 drivers/mux/core.c
create mode 100644 drivers/mux/gpio.c
create mode 100644 include/linux/gpio/consumer.h
--
2.39.2
More information about the barebox
mailing list