Hi Linus! This is the main pull-request from the GPIO subsystem for the next release cycle. The gpio-sim module is back, this time without any changes to configfs. This results in a less elegant user-space interface but I never got any follow-up on the committable items and didn't want to delay this module for several more months. Other than that we have support for several new models and some support going away. We started working on converting GPIO drivers to using fwnode exclusively in order to limit references to OF symbols to gpiolib-of.c exclusively. We also have regular tweaks and improvements all over the place. The details are in the signed tag. Please pull! Best Regards, Bartosz Golaszewski The following changes since commit fa55b7dcdc43c1aa1ba12bca9d2dd4318c2a0dbf: Linux 5.16-rc1 (2021-11-14 13:56:52 -0800) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux.git tags/gpio-updates-for-v5.17 for you to fetch changes up to ffe31c9ed35d70069ee76d6b6d41ac86a17d7a07: gpio: rcar: Propagate errors from devm_request_irq() (2022-01-05 09:57:34 +0100) ---------------------------------------------------------------- gpio updates for v5.17 - new testing module: gpio-sim that is scheduled to replace gpio-mockup - initial changes aiming at converting all GPIO drivers to using the fwnode interface and limiting any references to OF symbols to gpiolib-of.c - add support for Tegra234 and Tegra241 to gpio-tegra186 - add support for new models (SSD201 and SSD202D) to gpio-msc313 - add basic support for interrupts to gpio-aggregator - add support for AMDIF031 HID device to gpio-amdpt - drop support for unused platforms in gpio-xlp - cleanup leftovers from the removal of the legacy Samsung Exynos GPIO driver - use raw spinlocks in gpio-aspeed and gpio-aspeed-sgpio to make PREEMPT_RT happy - generalize the common 'ngpios' device property by reading it in the core gpiolib code so that we can remove duplicate reads from drivers - allow line names from device properties to override names set by drivers - code shrink in gpiod_add_lookup_table() - add new model to the DT bindings for gpio-vf610 - convert DT bindings for tegra devices to YAML - improvements to interrupt handling in gpio-rcar and gpio-rockchip - updates to intel drivers from Andy (details in the merge commit) - some minor tweaks, improvements and coding-style fixes all around the subsystem ---------------------------------------------------------------- Akhil R (2): dt-bindings: gpio: Add Tegra241 support gpio: tegra186: Add support for Tegra241 Andy Shevchenko (12): gpiolib: acpi: Remove never used devm_acpi_dev_remove_driver_gpios() gpiolib: acpi: shrink devm_acpi_dev_add_driver_gpios() gpiolib: acpi: Unify debug and other messages format gpio: dwapb: clarify usage of the register file version gpio: Get rid of duplicate of_node assignment in the drivers gpio: Setup parent device and get rid of unnecessary of_node assignment gpio: Propagate firmware node from a parent device gpio: Remove unused local OF node pointers gpio: brcmstb: Use local variable to access OF node gpio: regmap: Switch to use fwnode instead of of_node gpiolib: acpi: make fwnode take precedence in struct gpio_chip gpio: dwapb: Switch to use fwnode instead of of_node Bartosz Golaszewski (12): gpiolib: improve coding style for local variables gpiolib: check the 'ngpios' property in core gpiolib code gpiolib: provide gpiod_remove_hogs() gpiolib: allow to specify the firmware node in struct gpio_chip gpiolib: of: make fwnode take precedence in struct gpio_chip gpio: sim: new testing module selftests: gpio: provide a helper for reading chip info selftests: gpio: add a helper for reading GPIO line names selftests: gpio: add test cases for gpio-sim selftests: gpio: gpio-sim: remove bashisms selftests: gpio: gpio-sim: avoid forking test twice Merge tag 'intel-gpio-v5.17-1' of gitolite.kernel.org:pub/scm/linux/kernel/git/andy/linux-gpio-intel into gpio/for-next Bjorn Helgaas (5): gpio: pch: Use .driver_data instead of checking Device IDs again gpio: pch: Cache &pdev->dev to reduce repetition gpio: ml-ioh: Cache &pdev->dev to reduce repetition gpio: ml-ioh: Use BIT() to match gpio-pch.c gpio: ml-ioh: Change whitespace to match gpio-pch.c Christophe JAILLET (1): gpio: max3191x: Use bitmap_free() to free bitmap Daniel Palmer (4): dt-bindings: gpio: msc313: Add compatible for ssd20xd dt-bindings: gpio: msc313: Add offsets for ssd20xd gpio: msc313: Code clean ups gpio: msc313: Add support for SSD201 and SSD202D Geert Uytterhoeven (3): dt-bindings: gpio: sifive,gpio: Group interrupt tuples gpiolib: Let gpiod_add_lookup_table() call gpiod_add_lookup_tables() gpio: aggregator: Add interrupt support Hans de Goede (1): gpiolib: acpi: Do not set the IRQ type if the IRQ is already in use Hsu Yuchang (1): gpio: amdpt: add new device ID and 24-pin support Iwona Winiarska (2): gpio: aspeed: Convert aspeed_gpio.lock to raw_spinlock gpio: aspeed-sgpio: Convert aspeed_sgpio.lock to raw_spinlock Jacky Bai (1): dt-bindings: gpio: gpio-vf610: Add imx8ulp compatible string Jason Wang (2): gpio: sch: fix typo in a comment gpio: sta2x11: fix typo in a comment John Keeping (1): gpio: rockchip: lock GPIOs used as interrupts Krzysztof Kozlowski (1): dt-bindings: gpio: samsung: drop unused bindings Lad Prabhakar (3): gpio: ts5500: Use platform_get_irq() to get the interrupt gpio: rcar: Use platform_get_irq() to get the interrupt gpio: rcar: Propagate errors from devm_request_irq() Peter Rosin (1): gpiolib: allow line names from device props to override driver names Prathamesh Shete (2): dt-bindings: gpio: Add Tegra234 support gpio: tegra186: Add support for Tegra234 Rob Herring (2): gpio: xlp: Remove Netlogic XLP variants gpio: xlp: Fix build errors from Netlogic XLP removal Thierry Reding (2): dt-bindings: gpio: tegra: Convert to json-schema dt-bindings: gpio: tegra186: Convert to json-schema Tom Rix (1): gpio: sim: fix uninitialized ret variable Yang Yingliang (1): gpio: sim: add missing fwnode_handle_put() in gpio_sim_probe() Documentation/admin-guide/gpio/gpio-sim.rst | 134 ++ .../devicetree/bindings/gpio/gpio-samsung.txt | 41 - .../devicetree/bindings/gpio/gpio-vf610.yaml | 3 + .../bindings/gpio/mstar,msc313-gpio.yaml | 4 +- .../bindings/gpio/nvidia,tegra186-gpio.txt | 165 -- .../bindings/gpio/nvidia,tegra186-gpio.yaml | 214 +++ .../bindings/gpio/nvidia,tegra20-gpio.txt | 40 - .../bindings/gpio/nvidia,tegra20-gpio.yaml | 110 ++ .../devicetree/bindings/gpio/sifive,gpio.yaml | 3 +- drivers/gpio/Kconfig | 18 +- drivers/gpio/Makefile | 1 + drivers/gpio/gpio-adnp.c | 1 - drivers/gpio/gpio-aggregator.c | 11 +- drivers/gpio/gpio-amdpt.c | 12 +- drivers/gpio/gpio-arizona.c | 5 +- drivers/gpio/gpio-aspeed-sgpio.c | 32 +- drivers/gpio/gpio-aspeed.c | 52 +- drivers/gpio/gpio-bcm-kona.c | 2 +- drivers/gpio/gpio-bd71828.c | 1 - drivers/gpio/gpio-brcmstb.c | 3 +- drivers/gpio/gpio-creg-snps.c | 2 +- drivers/gpio/gpio-davinci.c | 1 - drivers/gpio/gpio-dwapb.c | 15 +- drivers/gpio/gpio-eic-sprd.c | 1 - drivers/gpio/gpio-em.c | 1 - drivers/gpio/gpio-ge.c | 1 - drivers/gpio/gpio-grgpio.c | 1 - drivers/gpio/gpio-gw-pld.c | 2 - drivers/gpio/gpio-lpc32xx.c | 2 +- drivers/gpio/gpio-max3191x.c | 2 +- drivers/gpio/gpio-ml-ioh.c | 52 +- drivers/gpio/gpio-msc313.c | 266 +++- drivers/gpio/gpio-mt7621.c | 6 +- drivers/gpio/gpio-mvebu.c | 1 - drivers/gpio/gpio-omap.c | 3 - drivers/gpio/gpio-palmas.c | 4 +- drivers/gpio/gpio-pch.c | 42 +- drivers/gpio/gpio-pmic-eic-sprd.c | 1 - drivers/gpio/gpio-pxa.c | 8 +- drivers/gpio/gpio-raspberrypi-exp.c | 1 - drivers/gpio/gpio-rcar.c | 16 +- drivers/gpio/gpio-rda.c | 3 - drivers/gpio/gpio-regmap.c | 6 +- drivers/gpio/gpio-rockchip.c | 21 +- drivers/gpio/gpio-sama5d2-piobu.c | 1 - drivers/gpio/gpio-sch.c | 2 +- drivers/gpio/gpio-sim.c | 1592 ++++++++++++++++++++ drivers/gpio/gpio-sprd.c | 1 - drivers/gpio/gpio-sta2x11.c | 2 +- drivers/gpio/gpio-stmpe.c | 1 - drivers/gpio/gpio-tc3589x.c | 1 - drivers/gpio/gpio-tegra186.c | 129 +- drivers/gpio/gpio-tps65218.c | 3 - drivers/gpio/gpio-tps6586x.c | 5 +- drivers/gpio/gpio-tps65910.c | 6 +- drivers/gpio/gpio-ts5500.c | 11 +- drivers/gpio/gpio-twl6040.c | 5 +- drivers/gpio/gpio-vf610.c | 1 - drivers/gpio/gpio-wm831x.c | 5 +- drivers/gpio/gpio-xlp.c | 147 +- drivers/gpio/gpiolib-acpi.c | 54 +- drivers/gpio/gpiolib-of.c | 3 + drivers/gpio/gpiolib.c | 73 +- include/dt-bindings/gpio/msc313-gpio.h | 71 + include/dt-bindings/gpio/tegra234-gpio.h | 63 + include/dt-bindings/gpio/tegra241-gpio.h | 42 + include/linux/gpio/consumer.h | 2 - include/linux/gpio/driver.h | 2 + include/linux/gpio/machine.h | 2 + tools/testing/selftests/gpio/.gitignore | 2 + tools/testing/selftests/gpio/Makefile | 4 +- tools/testing/selftests/gpio/config | 1 + tools/testing/selftests/gpio/gpio-chip-info.c | 57 + tools/testing/selftests/gpio/gpio-line-name.c | 55 + tools/testing/selftests/gpio/gpio-sim.sh | 396 +++++ 75 files changed, 3415 insertions(+), 634 deletions(-) create mode 100644 Documentation/admin-guide/gpio/gpio-sim.rst delete mode 100644 Documentation/devicetree/bindings/gpio/gpio-samsung.txt delete mode 100644 Documentation/devicetree/bindings/gpio/nvidia,tegra186-gpio.txt create mode 100644 Documentation/devicetree/bindings/gpio/nvidia,tegra186-gpio.yaml delete mode 100644 Documentation/devicetree/bindings/gpio/nvidia,tegra20-gpio.txt create mode 100644 Documentation/devicetree/bindings/gpio/nvidia,tegra20-gpio.yaml create mode 100644 drivers/gpio/gpio-sim.c create mode 100644 include/dt-bindings/gpio/tegra234-gpio.h create mode 100644 include/dt-bindings/gpio/tegra241-gpio.h create mode 100644 tools/testing/selftests/gpio/gpio-chip-info.c create mode 100644 tools/testing/selftests/gpio/gpio-line-name.c create mode 100755 tools/testing/selftests/gpio/gpio-sim.sh