From: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx> Linus, Here are the GPIO updates for this release cycle. It's a rather small one, there are no new drivers, just improvements and refactoring in existing ones. Thanks to migrating of several drivers to using generalized APIs and dropping of OF interfaces in favor of using software nodes we're actually removing more code than we're adding. Details are in the signed tag and everything has been in next for at least two weeks (most much more than that). Please pull, Bartosz The following changes since commit 6d796c50f84ca79f1722bb131799e5a5710c4700: Linux 6.2-rc6 (2023-01-29 13:59:43 -0800) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux.git tags/gpio-updates-for-v6.3 for you to fetch changes up to 4827aae061337251bb91801b316157a78b845ec7: gpio: sim: Use %pfwP specifier instead of calling fwnode API directly (2023-02-13 14:48:35 +0100) ---------------------------------------------------------------- gpio updates for v6.3 Core GPIOLIB: - drop several OF interfaces after moving a significant part of the code to using software nodes - remove more interfaces referring to the global GPIO numberspace that we're getting rid of - improvements in the gpio-regmap library - add helper for GPIO device reference counting - remove unused APIs - minor tweaks like sorting headers alphabetically Extended support in existing drivers: - add support for Tegra 234 PMC to gpio-tegra186 Driver improvements: - migrate the 104-dio/idi family of drivers to using the regmap-irq API - migrate gpio-i8255 and gpio-mm to the GPIO regmap API - clean-ups in gpio-pca953x - remove duplicate assignments of of_gpio_n_cells in gpio-davinci, gpio-ge, gpio-xilinx, gpio-zevio and gpio-wcd934x - improvements to gpio-pcf857x: implement get/set_multiple callbacks, use generic device properties instead of OF + minor tweaks - fix OF-related header includes and Kconfig dependencies in gpio-zevio - dynamically allocate the GPIO base in gpio-omap - use a dedicated printf specifier for printing fwnode info in gpio-sim - use dev_name() for the GPIO chip label in gpio-vf610 - other minor tweaks and fixes Documentation: - remove mentions of legacy API from comments in various places - convert the DT binding documents to YAML schema for Fujitsu MB86S7x, Unisoc GPIO and Unisoc EIC - document the Unisoc UMS512 controller in DT bindings ---------------------------------------------------------------- Andreas Kemnade (1): gpio: omap: use dynamic allocation of base Andy Shevchenko (23): gpio: pca953x: Clean up pcal6534_check_register() gpio: pca953x: Remove unused PCAL953X_OUT_CONF from pcal6534_recalc_addr() gpio: Remove unused and obsoleted gpio_export_link() gpiolib: Introduce gpio_device_get() and gpio_device_put() gpiolib: Get rid of not used of_node member gpiolib: sort header inclusion alphabetically gpiolib: Do not mention legacy API in the code gpiolib: Remove unused of_mm_gpiochip_add() gpio: davinci: Do not mention legacy API in the code gpio: Remove unused and obsoleted irq_to_gpio() gpio: davinci: Remove duplicate assignment of of_gpio_n_cells gpio: ge: Remove duplicate assignment of of_gpio_n_cells gpio: xilinx: Remove duplicate assignment of of_gpio_n_cells gpio: zevio: Remove duplicate assignment of of_gpio_n_cells gpio: zevio: Use proper headers and drop OF_GPIO dependency gpio: wcd934x: Remove duplicate assignment of of_gpio_n_cells gpio: rockchip: Do not mention legacy API in the code gpio: pcf857x: Get rid of legacy platform data gpio: pcf857x: Make use of device properties gpio: pcf857x: Drop unneeded explicit casting gpio: zevio: Add missing header gpiolib: of: Move enum of_gpio_flags to its only user gpio: sim: Use %pfwP specifier instead of calling fwnode API directly Bartosz Golaszewski (1): gpio: pca9570: rename platform_data to chip_data Chunyan Zhang (3): dt-bindings: gpio: Convert Unisoc GPIO controller binding to yaml dt-bindings: gpio: Convert Unisoc EIC controller binding to yaml dt-bindings: gpio: Add compatible string for Unisoc UMS512 Dmitry Torokhov (5): gpiolib: of: remove of_gpio_count() gpiolib: of: stop exporting of_gpio_named_count() gpiolib: of: remove obsolete comment for of_gpio_get_count() gpiolib: of: remove of_get_gpio[_flags]() and of_get_named_gpio_flags() gpiolib: of: remove [devm_]gpiod_get_from_of_node() APIs Haibo Chen (2): gpio: pca953x: avoid logically dead code gpio: vf610: connect GPIO label to dev name Johan Hovold (1): gpiolib: use irq_domain_alloc_irqs() Linus Walleij (1): gpio: Get rid of gpio_to_chip() Michael Walle (1): gpio: regmap: use new regmap_might_sleep() Prathamesh Shete (1): gpio: tegra186: add Tegra234 PMC compatible in GPIO driver Radu Rendec (3): gpio: pcf857x: Replace 'unsigned' with 'unsigned int' gpio: pcf857x: Fix indentation of variable declarations gpio: pcf857x: Implement get_multiple/set_multiple methods Rob Herring (1): dt-bindings: gpio: Convert Fujitsu MB86S7x GPIO to DT schema Tom Rix (1): gpio: tegra186: remove unneeded loop in tegra186_gpio_init_route_mapping() Uwe Kleine-König (2): gpio: msc313: Drop empty platform remove function gpio: mvebu: Use IS_REACHABLE instead of IS_ENABLED for CONFIG_PWM William Breathitt Gray (8): gpio: regmap: Always set gpio_chip get_direction gpio: 104-dio-48e: Migrate to the regmap-irq API gpio: 104-idi-48: Migrate to the regmap-irq API gpio: 104-idi-48: Migrate to gpio-regmap API gpio: i8255: Migrate to gpio-regmap API gpio: 104-dio-48e: Migrate to regmap API gpio: gpio-mm: Migrate to regmap API gpio: i8255: Remove unused legacy interface .../bindings/gpio/fujitsu,mb86s70-gpio.txt | 20 -- .../bindings/gpio/fujitsu,mb86s70-gpio.yaml | 50 +++ .../devicetree/bindings/gpio/gpio-eic-sprd.txt | 97 ----- .../devicetree/bindings/gpio/gpio-sprd.txt | 28 -- .../devicetree/bindings/gpio/sprd,gpio-eic.yaml | 124 +++++++ .../devicetree/bindings/gpio/sprd,gpio.yaml | 75 ++++ Documentation/driver-api/gpio/legacy.rst | 17 - .../translations/zh_CN/driver-api/gpio/legacy.rst | 15 - Documentation/translations/zh_TW/gpio.txt | 16 - arch/m68k/include/asm/gpio.h | 7 - arch/sh/include/asm/gpio.h | 5 - drivers/gpio/Kconfig | 10 +- drivers/gpio/TODO | 4 +- drivers/gpio/gpio-104-dio-48e.c | 398 +++++++-------------- drivers/gpio/gpio-104-idi-48.c | 336 ++++++----------- drivers/gpio/gpio-davinci.c | 3 +- drivers/gpio/gpio-ge.c | 1 - drivers/gpio/gpio-gpio-mm.c | 154 ++------ drivers/gpio/gpio-i8255.c | 320 +++++------------ drivers/gpio/gpio-i8255.h | 54 ++- drivers/gpio/gpio-msc313.c | 6 - drivers/gpio/gpio-mvebu.c | 6 +- drivers/gpio/gpio-omap.c | 2 +- drivers/gpio/gpio-pca953x.c | 34 +- drivers/gpio/gpio-pca9570.c | 24 +- drivers/gpio/gpio-pcf857x.c | 118 +++--- drivers/gpio/gpio-regmap.c | 17 +- drivers/gpio/gpio-rockchip.c | 2 +- drivers/gpio/gpio-sim.c | 9 +- drivers/gpio/gpio-tegra186.c | 41 +-- drivers/gpio/gpio-vf610.c | 2 +- drivers/gpio/gpio-wcd934x.c | 1 - drivers/gpio/gpio-xilinx.c | 11 - drivers/gpio/gpio-zevio.c | 9 +- drivers/gpio/gpiolib-acpi.c | 10 - drivers/gpio/gpiolib-acpi.h | 4 - drivers/gpio/gpiolib-cdev.c | 21 +- drivers/gpio/gpiolib-devres.c | 55 --- drivers/gpio/gpiolib-of.c | 135 +++---- drivers/gpio/gpiolib-of.h | 5 - drivers/gpio/gpiolib.c | 70 ++-- drivers/gpio/gpiolib.h | 10 + drivers/pinctrl/core.c | 14 +- include/asm-generic/gpio.h | 12 - include/linux/gpio.h | 20 -- include/linux/gpio/consumer.h | 48 --- include/linux/gpio/driver.h | 9 +- include/linux/of_gpio.h | 102 +----- include/linux/platform_data/pcf857x.h | 45 --- 49 files changed, 886 insertions(+), 1690 deletions(-) delete mode 100644 Documentation/devicetree/bindings/gpio/fujitsu,mb86s70-gpio.txt create mode 100644 Documentation/devicetree/bindings/gpio/fujitsu,mb86s70-gpio.yaml delete mode 100644 Documentation/devicetree/bindings/gpio/gpio-eic-sprd.txt delete mode 100644 Documentation/devicetree/bindings/gpio/gpio-sprd.txt create mode 100644 Documentation/devicetree/bindings/gpio/sprd,gpio-eic.yaml create mode 100644 Documentation/devicetree/bindings/gpio/sprd,gpio.yaml delete mode 100644 include/linux/platform_data/pcf857x.h