[PATCH v2 0/8] gpiolib header cleanup

Arnd Bergmann arnd at kernel.org
Tue Nov 9 02:01:59 PST 2021


From: Arnd Bergmann <arnd at arndb.de>

I got a bit carried away after posting the first three patches, so
here is a somewhat larger rework towards simplifying the remainder of
the traditional linux/gpio.h interface, removing some of the rarely
used functions, and dropping the inclusion of linux/gpio/driver.h from
linux/gpio.h. This makes linux/gpio.h mainly a wrapper for the consumer
interface.

There is one more possible follow-up that I did not include here:
As there are only around 350 files[1] remaining that actually use the
legacy interfaces, we could rename linux/gpio.h to e.g.
linux/gpio/legacy.h, and leave linux/gpio.h as an alias for
linux/gpio/consumer.h until we remove it entirely.

       Arnd

Changes since v1:
 - incorporate feedback from Geert Uytterhoeven
 - remove asm-generic/gpio.h
 - drop legacy export interface and a few other functions
 - stop including linux/gpio/driver.h

Arnd Bergmann (8):
  gpiolib: remove irq_to_gpio() definition
  gpiolib: remove empty asm/gpio.h files
  gpiolib: coldfire: remove custom asm/gpio.h
  gpiolib: remove asm-generic/gpio.h
  gpiolib: shrink further
  gpiolib: remove legacy gpio_export
  gpiolib: remove gpio_to_chip
  gpiolib: split linux/gpio/driver.h out of linux/gpio.h

 Documentation/admin-guide/gpio/sysfs.rst      |   2 +-
 .../driver-api/driver-model/devres.rst        |   1 -
 Documentation/driver-api/gpio/legacy.rst      |  52 +-----
 Documentation/translations/zh_CN/gpio.txt     |  26 ---
 Documentation/translations/zh_TW/gpio.txt     |  27 ---
 arch/arm/Kconfig                              |   1 -
 arch/arm/include/asm/gpio.h                   |  22 ---
 arch/arm/mach-davinci/board-dm646x-evm.c      |  28 +--
 arch/arm/mach-omap1/irq.c                     |   1 +
 arch/arm/mach-omap2/pdata-quirks.c            |   9 +-
 arch/arm/mach-orion5x/board-rd88f5182.c       |   1 +
 arch/arm/mach-pxa/lubbock.c                   |   2 +-
 arch/arm/mach-s3c/mach-h1940.c                |   1 +
 arch/arm/mach-s3c/s3c64xx.c                   |   1 +
 arch/arm/mach-sa1100/assabet.c                |   1 +
 arch/arm/plat-orion/gpio.c                    |   1 +
 arch/m68k/Kconfig.cpu                         |   1 -
 arch/m68k/include/asm/gpio.h                  | 102 -----------
 arch/m68k/include/asm/mcfgpio.h               |   2 +-
 arch/sh/Kconfig                               |   1 -
 arch/sh/boards/board-magicpanelr2.c           |   1 +
 arch/sh/boards/mach-ap325rxa/setup.c          |   7 +-
 arch/sh/include/asm/gpio.h                    |  50 -----
 drivers/gpio/Kconfig                          |   8 -
 drivers/gpio/gpio-davinci.c                   |   3 +-
 drivers/gpio/gpio-ucb1400.c                   |   1 +
 drivers/gpio/gpiolib-devres.c                 |  25 ---
 drivers/gpio/gpiolib-sysfs.c                  |   4 +-
 drivers/input/touchscreen/ads7846.c           |   3 +-
 drivers/media/i2c/noon010pc30.c               |   5 +-
 drivers/media/i2c/ov9650.c                    |   4 +-
 drivers/media/i2c/s5k4ecgx.c                  |   3 +-
 drivers/media/pci/sta2x11/sta2x11_vip.c       |  10 +-
 drivers/mfd/dm355evm_msp.c                    |   3 +-
 drivers/mfd/htc-i2cpld.c                      |   1 +
 drivers/mfd/ucb1400_core.c                    |   1 +
 drivers/net/ieee802154/ca8210.c               |   3 +-
 .../broadcom/brcm80211/brcmsmac/led.c         |   1 +
 drivers/pinctrl/core.c                        |   5 +-
 drivers/soc/fsl/qe/gpio.c                     |   4 +-
 include/asm-generic/gpio.h                    | 172 ------------------
 include/linux/bcma/bcma_driver_chipcommon.h   |   2 +-
 include/linux/gpio.h                          | 123 +++++++------
 include/linux/mfd/ucb1x00.h                   |   1 +
 include/linux/ucb1400.h                       |   1 +
 45 files changed, 133 insertions(+), 590 deletions(-)
 delete mode 100644 arch/arm/include/asm/gpio.h
 delete mode 100644 arch/m68k/include/asm/gpio.h
 delete mode 100644 arch/sh/include/asm/gpio.h
 delete mode 100644 include/asm-generic/gpio.h

-- 
2.29.2

Cc: linux-gpio at vger.kernel.org
Cc: Linus Walleij <linus.walleij at linaro.org>
Cc: Bartosz Golaszewski <brgl at bgdev.pl>
Cc: Andy Shevchenko <andriy.shevchenko at linux.intel.com>
Cc: Geert Uytterhoeven <geert+renesas at glider.be>
Cc: linux-arm-kernel at lists.infradead.org
Cc: linux-kernel at vger.kernel.org

[1] git grep -wl  '\<\(gpio_direction_input\|gpio_direction_output\|gpio_get_value_cansleep\|gpio_set_value_cansleep\|gpio_get_value\|gpio_set_value\|gpio_to_irq\|gpio_request\|gpio_request_one\|gpio_request_array\)\>\|\<\(ARCH_NR_GPIOS\|GPIOF_DIR_\|GPIOF_INIT\|GPIOF_EXPORT\|GPIOF_OPEN\|GPIOF_IN\|GPIOF_OUT\|gpio_is_valid\\|gpio_free\|devm_gpio_\)' | wc -l



More information about the linux-arm-kernel mailing list