[GIT PULL] gpio updates for v7.3-rc1 - take 2

From: Bartosz Golaszewski

Date: Tue Aug 18 2026 - 08:33:16 EST


Linus,

This is the fixed version of the primary PR from the GPIO tree for this merge
window. It's essentially the same except that it contains two additional merge
commits: one pulling in the upstream v7.2 tag in order to address a conflict
between my for-next and your master branches. The second pulls in an immutable
branch from Mark Brown I missed before but which contains a commit on which
some of the regmap changes depend.

There's one new driver for the Realtek DHC RTD1625 GPIO controller. If adding
it, reverting it and then adding it again raises your eyebrow: this was done
becuase the initial implementation - while correct - didn't use the gpio-regmap
abstraction that suited it nicely. The conversion was done after I had already
merged v7.2-rc2 into my tree so instead of rebasing, I went with a revert for
a cleaner git blame output.

The merges you see - other than pulling in your upstream tags with conflicting
fixes - are for a PR from Arnd containing his work on further isolating legacy
GPIO APIs and the fw_devlink support for software nodes that will go upstream
via the driver core tree.

Nothing else really stands out, details are in the signed tag. Please consider
pulling.

Thanks,
Bartosz

The following changes since commit 8d3ae59288f1e7d58d76558a6ee96d533bc5019f:

Linux 7.2 (2026-08-16 14:32:26 -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.3-rc1-v2

for you to fetch changes up to 146cc263e457ff6055fe7829e4f4f4b0b5d5dd86:

Merge tag 'v7.2' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux into gpio/for-next (2026-08-18 14:21:04 +0200)

----------------------------------------------------------------
gpio updates for v7.3-rc1

GPIO core:
- extend the gpio-regmap abstraction layer with more features allowing users
to override configuration setting, translate register values and masks and
enable/disable interrupts
- extend GPIO kunit tests with suites verifying probe ordering by software
node devlink support and software node hogs
- shrink GPIO kunit initialization code
- coding style updates (remove commas from sentinels where applicable)
- with all users now converted treewide to using real firmware node links for
software node GPIO lookup: remove the deprecated label-matching mechanism
from from GPIO core
- drop redundant return value check of nonseekable_open() in gpiolib-cdev
- use IRQ trigger helpers where applicable

Driver updates:
- refactor error paths and logging in gpio-nomadik
- use more modern interfaces for getting resources in gpio-rockchip,
gpio-bt8xx and gpio-pca9570
- add missing MODULE_DEVICE_TABLE() to gpio-sifive and gpio-vf610
- drop unused FILONOFF macro from gpio-rcar
- extend build coverage of ioport GPIO drivers with COMPILE_TEST=y
- only enable the gpio-rtd driver by default with ARCH_REALTEK=y to avoid
bloating the build
- refactor coding style in several drivers
- use correct endianess translation in gpio-pcf85x
- add wake-up interrupt support to gpio-mvebu
- apply initial value in direction output setter in gpio-by-pinctrl

Misc:
- replace linux/gpio.h inclusions treewide with linux/gpio/legacy.h which now
exports all the deprecated APIs
- select GPIOLIB_LEGACY in Kconfig where required treewide
- use software nodes for gpio-keys in MFD drivers

Devicetree bindings:
- describe the realtek rtd1625 GPIO controller
- document new models for gpio-pca95xx and gpio-cadence
- document new property in gpio-rockchip

----------------------------------------------------------------
Alex Tran (1):
gpio: gpio-by-pinctrl: Apply initial value in direction output wrapper

Andy Shevchenko (5):
regmap-irq: Provide IRQ resource request and release callbacks
gpio: pcf857x: Use le16_to_cpu() and cpu_to_le16() in IO accessors
gpio: regmap: Provide default IRQ resource request and release callbacks
gpio: regmap: Apply default resource callbacks for regmap IRQ chip
gpio: regmap: Order kernel-doc descriptions with the actual appearance

Arnd Bergmann (12):
Input: soc_button_array - select CONFIG_GPIOLIB_LEGACY
Input: gpio-keys: make legacy gpiolib optional
sh: select legacy gpiolib interface
x86/olpc: select GPIOLIB_LEGACY
mips: replace linux/gpio.h inclusions
sh: replace linux/gpio.h inclusions
mfd: replace linux/gpio.h inclusions
ASoC: replace linux/gpio.h inclusions
pcmcia: replace linux/gpio.h inclusions
phy: replace linux/gpio.h inclusions
Input: matrix_keyboard - replace linux/gpio.h inclusion
gpib: gpio: replace linux/gpio.h inclusion

Bartosz Golaszewski (14):
Merge tag 'v7.2-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux into gpio/for-next
gpio: kunit: shrink initialization code
gpio: kunit: add test cases for software node hogs
Merge tag 'v7.2-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux into gpio/for-next
gpio: swnode: remove deprecated lookup mechanism
kunit: provide a set of fwnode-oriented helpers
software node: add fw_devlink support
software node: add kunit tests for fw_devlink support
MAINTAINERS: add myself as reviewer of software node support
Merge tag 'swnode-7.3-rc1' of https://git.kernel.org/pub/scm/linux/kernel/git/driver-core/driver-core into gpio/for-next
gpio: kunit: add test cases verifying swnode devlink support
Merge tag 'config-gpio-legacy-for-7.3' of https://git.kernel.org/pub/scm/linux/kernel/git/arnd/playground into gpio/for-next
Merge tag 'regmap-irq-reqrel' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap into gpio/for-next
Merge tag 'v7.2' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux into gpio/for-next

Colin Ian King (1):
gpio: bd72720: make read-only const arrays regs static

Dmitry Torokhov (4):
gpio: amd-fch: switch to guard() notation
gpiolib: remove trailing comma from sentinel in GPIO_LOOKUP_SINGLE
mfd: rohm-bd71828: Use software nodes for gpio-keys
mfd: rohm-bd718x7: Use software nodes for gpio-keys

Igor Putko (2):
gpio: tb10x: use unsigned int instead of bare unsigned
gpio: tb10x: remove unnecessary braces

Marco Scardovi (2):
gpio: rockchip: use devm_platform_ioremap_resource() to map registers
gpio: rockchip: use platform_get_irq() to retrieve interrupt

Marek Vasut (2):
gpio: rcar: Drop unused FILONOFF macro
dt-bindings: gpio: pca95xx: Document Kinetic KTS1622

Maulik Shah (1):
gpio: Use IRQ trigger mask helpers

Pengpeng Hou (3):
gpio: pca9570: Use I2C match data
gpio: sifive: add missing MODULE_DEVICE_TABLE()
gpio: vf610: add missing MODULE_DEVICE_TABLE()

Rosen Penev (3):
gpio: mvebu: add wake-up interrupt support
gpio: bt8xx: use devm_ioremap_resource()
gpio: allow COMPILE_TEST for IOPORT drivers

Sergio Paracuellos (1):
gpio: mt7621: unify naming style in driver code

Simon Glass (1):
dt-bindings: gpio: rockchip,gpio-bank: Add rockchip,grf property

Swark Yang (1):
dt-bindings: gpio: cdns: add Axiado AX3005 GPIO variant

Théo Lebrun (5):
gpio: nomadik: convert nmk_gpio_populate_chip() to goto cleanup
gpio: nomadik: add missing dev_err() call on chip populate failure
gpio: nomadik: drop duplicate probe error line
gpio: nomadik: use dev_err_probe()
gpio: nomadik: drop "chip registered" log on probe success

Tzuyi Chang (3):
dt-bindings: gpio: realtek: Add realtek,rtd1625-gpio
gpio: realtek: Add driver for Realtek DHC RTD1625 SoC
gpio: realtek: Add driver for Realtek DHC RTD1625 SoC

Wolfram Sang (1):
gpio: sloppy-logic-analyzer: add a comment explaining the buffer init

Yu-Chun Lin (6):
gpio: Replace "default y" with "default ARCH_REALTEK" in Kconfig
Revert "gpio: realtek: Add driver for Realtek DHC RTD1625 SoC"
gpio: regmap: Add gpio_regmap_operation to extend reg_mask_xlate callback
gpio: regmap: Add value_xlate callback
gpio: regmap: Add set_config callback
gpio: regmap: Add IRQ enable/disable helpers

bui duc phuc (1):
gpio: cdev: Drop redundant nonseekable_open() return check

.../devicetree/bindings/gpio/cdns,gpio.yaml | 7 +-
.../devicetree/bindings/gpio/gpio-pca95xx.yaml | 3 +
.../bindings/gpio/realtek,rtd1625-gpio.yaml | 71 +++
.../bindings/gpio/rockchip,gpio-bank.yaml | 7 +
MAINTAINERS | 2 +
arch/mips/alchemy/board-xxs1500.c | 2 +-
arch/mips/alchemy/devboards/db1000.c | 2 +-
arch/mips/alchemy/devboards/db1200.c | 2 +-
arch/mips/alchemy/devboards/db1550.c | 2 +-
arch/mips/bcm47xx/workarounds.c | 2 +-
arch/mips/bcm63xx/boards/board_bcm963xx.c | 1 +
.../mips/include/asm/mach-bcm63xx/board_bcm963xx.h | 2 +-
arch/sh/Kconfig | 1 +
arch/sh/boards/Kconfig | 8 +
arch/sh/boards/board-magicpanelr2.c | 2 +-
arch/sh/boards/board-sh7757lcr.c | 2 +-
arch/sh/boards/board-urquell.c | 2 +-
arch/sh/boards/mach-ap325rxa/setup.c | 2 +-
arch/sh/boards/mach-ecovec24/setup.c | 2 +-
arch/sh/boards/mach-highlander/Kconfig | 1 +
arch/sh/boards/mach-highlander/pinmux-r7785rp.c | 2 +-
arch/sh/boards/mach-kfr2r09/lcd_wqvga.c | 2 +-
arch/sh/boards/mach-kfr2r09/setup.c | 2 +-
arch/sh/boards/mach-migor/lcd_qvga.c | 2 +-
arch/sh/boards/mach-migor/setup.c | 2 +-
arch/sh/boards/mach-rsk/Kconfig | 3 +
arch/sh/boards/mach-rsk/devices-rsk7269.c | 1 -
arch/sh/boards/mach-se/7724/setup.c | 2 +-
arch/sh/include/mach-common/mach/magicpanelr2.h | 2 -
arch/sh/kernel/cpu/sh4a/setup-shx3.c | 2 +-
arch/x86/Kconfig | 1 +
arch/x86/platform/olpc/olpc-xo1-sci.c | 2 +-
drivers/base/regmap/regmap-irq.c | 22 +
drivers/base/swnode.c | 79 +++
drivers/base/test/Kconfig | 5 +
drivers/base/test/Makefile | 2 +
drivers/base/test/swnode-devlink-test.c | 337 ++++++++++
drivers/gpib/gpio/gpib_bitbang.c | 1 -
drivers/gpio/Kconfig | 19 +-
drivers/gpio/Makefile | 1 +
drivers/gpio/gpio-104-idi-48.c | 7 +-
drivers/gpio/gpio-amd-fch.c | 22 +-
drivers/gpio/gpio-bd72720.c | 24 +-
drivers/gpio/gpio-bt8xx.c | 21 +-
drivers/gpio/gpio-by-pinctrl.c | 4 +-
drivers/gpio/gpio-davinci.c | 8 +-
drivers/gpio/gpio-i8255.c | 4 +-
drivers/gpio/gpio-idio-16.c | 6 +-
drivers/gpio/gpio-max7360.c | 8 +-
drivers/gpio/gpio-mt7621.c | 42 +-
drivers/gpio/gpio-mvebu.c | 44 +-
drivers/gpio/gpio-mxs.c | 4 +-
drivers/gpio/gpio-nomadik.c | 64 +-
drivers/gpio/gpio-omap.c | 9 +-
drivers/gpio/gpio-pca9570.c | 2 +-
drivers/gpio/gpio-pcf857x.c | 13 +-
drivers/gpio/gpio-pcie-idio-24.c | 6 +-
drivers/gpio/gpio-pl061.c | 5 +-
drivers/gpio/gpio-pxa.c | 2 +-
drivers/gpio/gpio-rcar.c | 1 -
drivers/gpio/gpio-rda.c | 4 +-
drivers/gpio/gpio-regmap.c | 104 +++-
drivers/gpio/gpio-rockchip.c | 16 +-
drivers/gpio/gpio-rtd1625.c | 677 +++++++++++++++++++++
drivers/gpio/gpio-sa1100.c | 2 +-
drivers/gpio/gpio-sifive.c | 1 +
drivers/gpio/gpio-sloppy-logic-analyzer.c | 1 +
drivers/gpio/gpio-sodaville.c | 2 +-
drivers/gpio/gpio-stmpe.c | 2 +-
drivers/gpio/gpio-tb10x.c | 5 +-
drivers/gpio/gpio-tegra.c | 4 +-
drivers/gpio/gpio-timberdale.c | 2 +-
drivers/gpio/gpio-vf610.c | 1 +
drivers/gpio/gpiolib-cdev.c | 9 +-
drivers/gpio/gpiolib-kunit.c | 571 ++++++++++++++++-
drivers/gpio/gpiolib-swnode.c | 23 +-
drivers/iio/adc/ad7173.c | 8 +-
drivers/iio/addac/stx104.c | 6 +-
drivers/input/keyboard/gpio_keys.c | 7 +-
drivers/input/keyboard/gpio_keys_polled.c | 4 +-
drivers/input/keyboard/matrix_keypad.c | 1 -
drivers/input/misc/Kconfig | 3 +
drivers/input/misc/soc_button_array.c | 1 -
drivers/mfd/aat2870-core.c | 2 +-
drivers/mfd/arizona-irq.c | 2 +-
drivers/mfd/lp3943.c | 2 +-
drivers/mfd/rohm-bd71828.c | 125 +++-
drivers/mfd/rohm-bd718x7.c | 123 +++-
drivers/mfd/sm501.c | 2 +-
drivers/mfd/tps6105x.c | 2 +-
drivers/mfd/tps65911-comparator.c | 2 +-
drivers/mfd/wm8994-irq.c | 2 +-
drivers/pcmcia/bcm63xx_pcmcia.c | 2 +-
drivers/pcmcia/db1xxx_ss.c | 2 +-
drivers/pcmcia/sa1100_h3600.c | 2 +-
drivers/pcmcia/soc_common.c | 2 +-
drivers/pcmcia/xxs1500_ss.c | 2 +-
drivers/phy/broadcom/phy-bcm-ns2-usbdrd.c | 1 -
drivers/phy/rockchip/phy-rockchip-usbdp.c | 2 +-
drivers/phy/ti/phy-j721e-wiz.c | 1 -
drivers/pinctrl/bcm/pinctrl-bcm63xx.c | 1 +
drivers/pinctrl/pinctrl-tps6594.c | 1 +
include/kunit/fwnode.h | 29 +
include/linux/gpio/machine.h | 2 +-
include/linux/gpio/regmap.h | 73 ++-
include/linux/gpio_keys.h | 2 +
include/linux/mfd/lp3943.h | 2 +-
include/linux/mfd/ti-lmu.h | 1 -
include/linux/mfd/tps65910.h | 2 +-
include/linux/mfd/ucb1x00.h | 2 +-
include/linux/regmap.h | 2 +
lib/kunit/Makefile | 1 +
lib/kunit/fwnode.c | 146 +++++
sound/pci/Kconfig | 1 +
sound/pci/cs5535audio/cs5535audio_olpc.c | 2 +-
sound/soc/codecs/cs42l84.c | 1 -
sound/soc/codecs/cx2072x.c | 2 +-
sound/soc/codecs/dmic.c | 1 -
118 files changed, 2546 insertions(+), 363 deletions(-)
create mode 100644 Documentation/devicetree/bindings/gpio/realtek,rtd1625-gpio.yaml
create mode 100644 drivers/base/test/swnode-devlink-test.c
create mode 100644 drivers/gpio/gpio-rtd1625.c
create mode 100644 include/kunit/fwnode.h
create mode 100644 lib/kunit/fwnode.c