[PATCH v2 00/10] treewide: replace linux/gpio.h

Arnd Bergmann <[email protected]> Fri, 10 Jul 2026 23:19:45 +0200
Newsgroups org.kernel.vger.linux-sh,dev.linux.lists.linux-sunxi,org.infradead.lists.linux-arm-kernel,org.infradead.lists.linux-phy,org.infradead.lists.linux-rockchip,org.kernel.vger.linux-gpio,org.kernel.vger.linux-input,org.kernel.vger.linux-kernel,org.kernel.vger.linux-m68k,org.kernel.vger.linux-mips,org.kernel.vger.linux-samsung-soc,org.kernel.vger.linux-sound
Message-ID <[email protected]>
From: Arnd Bergmann <[email protected]>

The linux/gpio.h header used to be the global definition for the gpio
interfaces, with 1100 users back in linux-3.17. In linux-7.2, only about
130 of those remain, so this series cleans out the rest.

In each subsystem, we can replace the header either with
linux/gpio/consumer.h for users of the modern gpio descriptor interface,
or linux/gpio/legacy.h for the few remaining users of the old number
based interface.

All patches in this series can get applied independently, so my
preference would be for each subsystem maintainer to apply these
directly, with the rest going into the gpio tree at some point.

I've uploaded this to 

   https://git.kernel.org/pub/scm/linux/kernel/git/arnd/playground.git/ config-gpio-legacy-for-7.3

      Arnd


v2: dropped two already applied patches,
    removed duplicate includes,
    dropped final patch to remove linux/gpio.h as it now depends
    on patches in linux-next

 arch/arm/mach-davinci/da850.c                       | 2 +-
 arch/arm/mach-dove/mpp.c                            | 2 +-
 arch/arm/mach-mv78xx0/buffalo-wxl-setup.c           | 2 +-
 arch/arm/mach-mv78xx0/irq.c                         | 2 +-
 arch/arm/mach-mv78xx0/mpp.c                         | 2 +-
 arch/arm/mach-mvebu/pm.c                            | 2 +-
 arch/arm/mach-mxs/mach-mxs.c                        | 2 +-
 arch/arm/mach-orion5x/board-d2net.c                 | 2 +-
 arch/arm/mach-orion5x/board-rd88f5182.c             | 2 +-
 arch/arm/mach-orion5x/dns323-setup.c                | 2 +-
 arch/arm/mach-orion5x/irq.c                         | 2 +-
 arch/arm/mach-orion5x/kurobox_pro-setup.c           | 2 +-
 arch/arm/mach-orion5x/mv2120-setup.c                | 2 +-
 arch/arm/mach-orion5x/net2big-setup.c               | 2 +-
 arch/arm/mach-orion5x/terastation_pro2-setup.c      | 2 +-
 arch/arm/mach-orion5x/ts209-setup.c                 | 2 +-
 arch/arm/mach-orion5x/ts409-setup.c                 | 2 +-
 arch/arm/mach-pxa/am200epd.c                        | 2 +-
 arch/arm/mach-pxa/am300epd.c                        | 2 +-
 arch/arm/mach-pxa/generic.c                         | 2 +-
 arch/arm/mach-pxa/gumstix.c                         | 2 +-
 arch/arm/mach-pxa/mfp-pxa2xx.c                      | 2 +-
 arch/arm/mach-pxa/pxa25x.c                          | 2 +-
 arch/arm/mach-pxa/pxa27x.c                          | 2 +-
 arch/arm/mach-pxa/reset.c                           | 2 +-
 arch/arm/mach-pxa/sharpsl_pm.c                      | 2 +-
 arch/arm/mach-pxa/spitz.c                           | 2 +-
 arch/arm/mach-pxa/spitz_pm.c                        | 2 +-
 arch/arm/mach-s3c/dev-audio-s3c64xx.c               | 2 +-
 arch/arm/mach-s3c/devs.c                            | 2 +-
 arch/arm/mach-s3c/mach-crag6410.c                   | 2 +-
 arch/arm/mach-s3c/pm-gpio.c                         | 2 +-
 arch/arm/mach-s3c/pm-s3c64xx.c                      | 2 +-
 arch/arm/mach-s3c/setup-fb-24bpp-s3c64xx.c          | 2 +-
 arch/arm/mach-s3c/setup-i2c0-s3c64xx.c              | 2 +-
 arch/arm/mach-s3c/setup-i2c1-s3c64xx.c              | 2 +-
 arch/arm/mach-s3c/setup-keypad-s3c64xx.c            | 2 +-
 arch/arm/mach-s3c/setup-sdhci-gpio-s3c64xx.c        | 2 +-
 arch/arm/mach-s3c/setup-spi-s3c64xx.c               | 2 +-
 arch/arm/mach-sa1100/collie.c                       | 2 +-
 arch/arm/mach-sa1100/generic.c                      | 2 +-
 arch/arm/mach-sa1100/h3600.c                        | 2 +-
 arch/arm/mach-sa1100/h3xxx.c                        | 2 +-
 arch/arm/plat-orion/mpp.c                           | 2 +-
 arch/m68k/coldfire/device.c                         | 2 +-
 arch/m68k/include/asm/mcfgpio.h                     | 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 +
 arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h | 2 +-
 arch/mips/txx9/rbtx4927/setup.c                     | 2 +-
 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/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/devices-rsk7203.c           | 2 +-
 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 +-
 drivers/gpib/gpio/gpib_bitbang.c                    | 1 -
 drivers/input/keyboard/matrix_keypad.c              | 1 -
 drivers/mfd/aat2870-core.c                          | 2 +-
 drivers/mfd/arizona-irq.c                           | 2 +-
 drivers/mfd/lp3943.c                                | 2 +-
 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 -
 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 +-
 sound/soc/codecs/cs42l84.c                          | 1 -
 sound/soc/codecs/cx2072x.c                          | 2 +-
 sound/soc/codecs/dmic.c                             | 1 -
 93 files changed, 84 insertions(+), 93 deletions(-)

-- 
2.39.5

Cc: Bartosz Golaszewski <[email protected]>
Cc: Andrew Lunn <[email protected]>
Cc: Sebastian Hesselbarth <[email protected]>
Cc: Gregory Clement <[email protected]>
Cc: Frank Li <[email protected]>
Cc: Robert Jarzmik <[email protected]>
Cc: Krzysztof Kozlowski <[email protected]>
Cc: Greg Ungerer <[email protected]>
Cc: Thomas Bogendoerfer <[email protected]>
Cc: Hauke Mehrtens <[email protected]>
Cc: "Rafał Miłecki" <[email protected]>
Cc: Yoshinori Sato <[email protected]>
Cc: John Paul Adrian Glaubitz <[email protected]>
Cc: Linus Walleij <[email protected]>
Cc: Dmitry Torokhov <[email protected]>
Cc: Dominik Brodowski <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]