[GIT PULL] gpio updates for v7.2-rc1
From: Bartosz Golaszewski
Date: Mon Jun 15 2026 - 04:30:08 EST
Linus,
Here's the main GPIO pull-request for this merge window. There's one new
driver, one legacy driver removed, a kunit test-suite for the GPIO core,
support for new models in existing drivers and a slew of various changes
in many places though I can't think of anything controversial that would
stand out - it's been a relatively calm cycle.
There are some changes in arch/ that were Acked by the relevant
maintainers. The merges you see are either immutable branches I provided
to others or merging of changes from the MFD tree.
Details are in the signed tag as usual. Please consider pulling.
Thanks,
Bartosz
The following changes since commit 254f49634ee16a731174d2ae34bc50bd5f45e731:
Linux 7.1-rc1 (2026-04-26 14:19:00 -0700)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux.git tags/gpio-updates-for-v7.2-rc1
for you to fetch changes up to f953585dafd71ecb0897f9def9c0a3702afc1bf8:
gpio: nomadik: remove dead DB8540 code from <gpio/gpio-nomadik.h> (2026-06-11 10:26:40 +0200)
----------------------------------------------------------------
gpio updates for v7.2-rc1
GPIO core:
- Add an initial set of kunit test cases for the GPIO subsystem
- Use the devres owner as the GPIO chip's parent in absence of any other
parent
- Fix const-correctness of GPIO chip SRCU guards
- Provide new GPIO consumer interfaces: gpiod_is_single_ended() and
fwnode_gpiod_get()
- Quarantine all legacy GPIO APIs in linux/gpio/legacy.h
- Use __ro_after_init where applicable
New drivers:
- Add driver for the GPIO controller on Waveshare DSI TOUCH panels
Removed drivers:
- Remove the obsolete ts5500 GPIO driver
Driver updates:
- Modernize gpio-timberdale: remove platform data support and use generic
device property accessors
- Extend test build coverage by enabling COMPILE_TEST for more GPIO
drivers
- Add some missing dependencies in Kconfig
- Add support for sparse fixed direction to gpio-regmap
- Remove dead code from gpio-nomadik
- use BIT() in gpio-mxc
- use bitmap_complement() in gpio-xilinx and gpio-pca953x
- Use more appropriate printing functions where applicable
- Use named initializers for platform_device_id and i2c_device_id arrays
- Convert gpio-altera to using the generic GPIO chip helper library
- Add support for new models to gpio-dwapb, gpio-zynq, gpio-usbio and
gpio-tegra186
- Unify the naming convention for Qualcomm in GPIO drivers
- Fix interrupt bank mapping to GPIO chips in gpio-mt7621
- Add support for the lines-initial-states property to gpio-74x164
- Switch to using dynamic GPIO base in gpio-ixp4xx
- Move the handling of an OF quirk from ASoC to gpiolib-of.c where other
such quirks live
- Use handle_bad_irq() in gpio-ep93xx
- Some other minor tweaks and refactorings
Devicetree bindings:
- Document the Waveshare GPIO controller for DSI TOUCH panels
- Document new models: Tegra238 in gpio-tegra186 and EIO GPIO in gpio-zynq
- Add new properties for gpio-dwapb and fairchild,74hc595
- Fix whitespace issues
- Sort compatibles alphabetically in gpio-zynq
Documentation:
- Fix kerneldoc warnings in gpio-realtek-otto
Misc:
- Attach software nodes representing GPIO chips to the actual struct
device objects associated with them in some legacy platforms enabling
real firmware node lookup instead of string matching
- Drop unneeded dependencies on OF_GPIO from bus and staging drivers
----------------------------------------------------------------
Alexander Stein (1):
gpio: mxc: use BIT() macro
Arnd Bergmann (2):
gpiolib: move legacy interface into linux/gpio/legacy.h
gpio: ts5500: remove obsolete driver
Arun T (1):
gpio: usbio: Add ACPI device-id for NVL platforms
Bartosz Golaszewski (18):
Merge tag 'v7.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux into gpio/for-next
Merge tag 'asoc-wsa881x-gpiolib-of' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into gpio/for-next
gpio: sim: add a Kconfig dependency on SYSFS
mfd: timberdale: Move GPIO_NR_PINS into the driver
mfd: timberdale: Set up a software node for the GPIO cell
gpio: timberdale: Use device properties
gpio: timberdale: Remove platform data header
Merge tag 'ib-gpio-add-fwnode-gpiod-get-for-v7.2' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux into gpio/for-next
Merge tag 'ib-gpio-add-gpiod-is-single-ended-for-v7.2' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux into gpio/for-next
Merge tag 'ib-mfd-gpio-v7.2' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd into gpio/for-next
kunit: provide kunit_platform_device_register_full()
kunit: provide kunit_platform_device_unregister()
gpio: add kunit test cases for the GPIO subsystem
ARM: omap1: drop unused variable from omap16xx_gpio_init()
ARM: omap1: use platform_device_register_full() for GPIO devices on OMAP 16xx
ARM: omap1: enable real software node lookup of GPIOs on Nokia 770
staging: media: max96712: drop unneeded dependency on OF_GPIO
bus: ts-nbus: drop unneeded dependency on OF_GPIO
Chanhong Jung (2):
dt-bindings: gpio: fairchild,74hc595: add lines-initial-states property
gpio: 74x164: support lines-initial-states for boot-time output state
Chen Jung Ku (1):
gpio: gpiolib: use seq_puts() for plain strings
David Laight (1):
gpiolib: Replace strcpy() with memcpy()
Dmitry Baryshkov (2):
dt-bindings: gpio: describe Waveshare GPIO controller
gpio: add GPIO controller found on Waveshare DSI TOUCH panels
Ethan Nelson-Moore (1):
gpio: nomadik: remove dead DB8540 code from <gpio/gpio-nomadik.h>
Icenowy Zheng (1):
dt-bindings: gpio: dwapb: allow GPIO hogs
Jie Li (1):
gpiolib: add gpiod_is_single_ended() helper
Jun Yan (1):
dt-bindings: gpio: meson-axg: Fix whitespace issue
Krishna Chaitanya Chundru (1):
gpio: Add fwnode_gpiod_get() helper
Krzysztof Kozlowski (1):
gpio: qcom: Unify user-visible "Qualcomm" name
Len Bao (1):
gpiolib: Mark gpio_devt, gpiolib_initialized and gpio_stub_drv as __ro_after_init
Linus Walleij (6):
ASoC: wsa881x: Move custom workaround to gpiolib-of
gpio: devres: Use devres parent if undefined
gpio: altera: User gc helper variable
gpio: altera: Use generic MMIO GPIO
gpio: regmap: Support sparsed fixed direction
gpio: regmap: Don't set a fixed direction line
Marco Scardovi (scardracs) (2):
gpio: core: fix const-correctness of gpio_chip_guard
gpio: remove obsolete UAF FIXMEs from lookup paths
Maxwell Doose (1):
gpio: sim: Replace sprintf() with sysfs_emit()
Mohamed Ayman (2):
gpio: ep93xx: use handle_bad_irq() as default IRQ handler
gpio: ixp4xx: switch to dynamic GPIO base
Prathamesh Shete (2):
dt-bindings: gpio: Add Tegra238 support
gpio: tegra186: Add support for Tegra238
Rosen Penev (5):
gpio: zevio: allow COMPILE_TEST builds
gpio: spear-spics: Add COMPILE_TEST support
gpio: xgene: allow COMPILE_TEST builds
gpio: en7523: allow COMPILE_TEST builds
gpio: realtek-otto: fix kernel-doc warnings
Sergio Paracuellos (1):
gpio: mt7621: fix interrupt banks mapping on gpio chips
Shubhrajyoti Datta (3):
dt-bindings: gpio: zynq: Sort compatible strings alphabetically
dt-bindings: gpio: Add EIO GPIO compatible to gpio-zynq
gpio: zynq: Add eio gpio support
Suneel Garapati (1):
gpio: tegra186: Enable GTE for Tegra264
Thomas Lin (1):
gpio: dwapb: Add ACPI ID LECA0001 for LECARC SoCs
Uwe Kleine-König (The Capable Hub) (6):
gpio: amd8111: Drop useless zeros in array initialisation
gpio: Initialize i2c_device_id arrays using member names
gpio: Initialize all i2c_device_id arrays using member names
gpio: cros-ec: Drop unused assignment of platform_device_id driver data
gpio: Use named initializers for platform_device_id arrays
gpio: max77620: Unify usage of space and comma in platform_device_id array
Yury Norov (2):
gpio: pca953x: drop bitmap_complement() where feasible
gpio: xilinx: drop bitmap_complement() where feasible
.../bindings/gpio/fairchild,74hc595.yaml | 13 +
.../devicetree/bindings/gpio/gpio-zynq.yaml | 17 +-
.../bindings/gpio/nvidia,tegra186-gpio.yaml | 6 +
.../devicetree/bindings/gpio/snps,dw-apb-gpio.yaml | 6 +
.../bindings/gpio/waveshare,dsi-touch-gpio.yaml | 73 ++++
arch/arm/mach-omap1/board-nokia770.c | 33 +-
arch/arm/mach-omap1/common.h | 3 +
arch/arm/mach-omap1/gpio16xx.c | 80 ++--
drivers/bus/Kconfig | 2 +-
drivers/gpio/Kconfig | 39 +-
drivers/gpio/Makefile | 3 +-
drivers/gpio/gpio-74x164.c | 17 +-
drivers/gpio/gpio-adnp.c | 4 +-
drivers/gpio/gpio-adp5585.c | 4 +-
drivers/gpio/gpio-altera.c | 124 ++----
drivers/gpio/gpio-amd8111.c | 4 +-
drivers/gpio/gpio-bd72720.c | 4 +-
drivers/gpio/gpio-bd9571mwv.c | 4 +-
drivers/gpio/gpio-cros-ec.c | 4 +-
drivers/gpio/gpio-ds4520.c | 2 +-
drivers/gpio/gpio-dwapb.c | 1 +
drivers/gpio/gpio-ep93xx.c | 3 +-
drivers/gpio/gpio-fxl6408.c | 2 +-
drivers/gpio/gpio-gw-pld.c | 2 +-
drivers/gpio/gpio-ixp4xx.c | 7 +-
drivers/gpio/gpio-lp873x.c | 2 +-
drivers/gpio/gpio-lp87565.c | 2 +-
drivers/gpio/gpio-max7300.c | 2 +-
drivers/gpio/gpio-max732x.c | 20 +-
drivers/gpio/gpio-max77620.c | 2 +-
drivers/gpio/gpio-max77759.c | 2 +-
drivers/gpio/gpio-mt7621.c | 282 ++++++++++---
drivers/gpio/gpio-mxc.c | 4 +-
drivers/gpio/gpio-pca953x.c | 93 +++--
drivers/gpio/gpio-pca9570.c | 6 +-
drivers/gpio/gpio-pcf857x.c | 26 +-
drivers/gpio/gpio-pxa.c | 18 +-
drivers/gpio/gpio-realtek-otto.c | 6 +-
drivers/gpio/gpio-regmap.c | 74 +++-
drivers/gpio/gpio-sim.c | 24 +-
drivers/gpio/gpio-tegra186.c | 69 ++++
drivers/gpio/gpio-timberdale.c | 26 +-
drivers/gpio/gpio-tpic2810.c | 2 +-
drivers/gpio/gpio-tps65086.c | 2 +-
drivers/gpio/gpio-tps65218.c | 2 +-
drivers/gpio/gpio-tps65219.c | 4 +-
drivers/gpio/gpio-tps65912.c | 2 +-
drivers/gpio/gpio-ts4900.c | 2 +-
drivers/gpio/gpio-ts5500.c | 446 ---------------------
drivers/gpio/gpio-usbio.c | 1 +
drivers/gpio/gpio-waveshare-dsi.c | 208 ++++++++++
drivers/gpio/gpio-xilinx.c | 6 +-
drivers/gpio/gpio-zevio.c | 4 +-
drivers/gpio/gpio-zynq.c | 12 +
drivers/gpio/gpiolib-acpi-core.c | 4 -
drivers/gpio/gpiolib-devres.c | 7 +
drivers/gpio/gpiolib-kunit.c | 358 +++++++++++++++++
drivers/gpio/gpiolib-of.c | 8 +
drivers/gpio/gpiolib-swnode.c | 4 -
drivers/gpio/gpiolib.c | 66 +--
drivers/gpio/gpiolib.h | 2 +-
drivers/mfd/timberdale.c | 33 +-
drivers/mfd/timberdale.h | 1 -
drivers/staging/media/max96712/Kconfig | 1 -
include/dt-bindings/gpio/meson-axg-gpio.h | 4 +-
include/dt-bindings/gpio/nvidia,tegra238-gpio.h | 58 +++
include/kunit/platform_device.h | 6 +
include/linux/gpio.h | 162 +-------
include/linux/gpio/consumer.h | 14 +
include/linux/gpio/gpio-nomadik.h | 16 -
include/linux/gpio/legacy.h | 173 ++++++++
include/linux/gpio/regmap.h | 7 +
include/linux/timb_gpio.h | 25 --
lib/kunit/platform.c | 64 +++
sound/soc/codecs/wsa881x.c | 35 +-
75 files changed, 1724 insertions(+), 1130 deletions(-)
create mode 100644 Documentation/devicetree/bindings/gpio/waveshare,dsi-touch-gpio.yaml
delete mode 100644 drivers/gpio/gpio-ts5500.c
create mode 100644 drivers/gpio/gpio-waveshare-dsi.c
create mode 100644 drivers/gpio/gpiolib-kunit.c
create mode 100644 include/dt-bindings/gpio/nvidia,tegra238-gpio.h
create mode 100644 include/linux/gpio/legacy.h
delete mode 100644 include/linux/timb_gpio.h