Hi Linus, Here's the pull-request for this cycle from the GPIO subsystem. We mostly have various improvements and refactoring all over the place but also some interesting new features - like the virtio GPIO driver that allows guest VMs to use host's GPIOs. We also have a new/old GPIO driver for rockchip - this one has been split out of the pinctrl driver, hence the pull from the pinctrl tree you can see in my branch. Another merge in the tree is from Andy for the intel drivers. Details are in the signed tag. Please pull! Bartosz The following changes since commit e73f0f0ee7541171d89f2e2491130c7771ba58d3: Linux 5.14-rc1 (2021-07-11 15:07:40 -0700) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux.git tags/gpio-updates-for-v5.15 for you to fetch changes up to 889a1b3f35db6ba5ba6a0c23a3a55594570b6a17: gpio: mpc8xxx: Use 'devm_gpiochip_add_data()' to simplify the code and avoid a leak (2021-08-31 12:10:24 +0200) ---------------------------------------------------------------- gpio updates for v5.15 - new driver: gpio-virtio allowing a guest VM running linux to access GPIO lines provided by the host - split the GPIO driver out of the rockchip pin control driver - add support for a new model to gpio-aspeed-sgpio, refactor the driver and use generic device property interfaces, improve property sanitization - add ACPI support to gpio-tegra186 - improve the code setting the line names to support multiple GPIO banks per device - constify a bunch of OF functions in the core GPIO code and make the declaration for one of the core OF functions we use consistent within its header - use software nodes in intel_quark_i2c_gpio - add support for the gpio-line-names property in gpio-mt7621 - use the standard GPIO function for setting the GPIO names in gpio-brcmstb - fix a bunch of leaks and other bugs in gpio-mpc8xxx - use generic pm callbacks in gpio-ml-ioh - improve resource management and PM handling in gpio-mlxbf2 - modernize and improve the gpio-dwapb driver - coding style improvements in gpio-rcar - documentation fixes and improvements - update the MAINTAINERS entry for gpio-zynq - minor tweaks in several drivers ---------------------------------------------------------------- Akhil R (1): gpio: tegra186: Add ACPI support Alexandru Ardelean (1): gpio: viperboard: remove platform_set_drvdata() call in probe Andy Shevchenko (9): gpiolib: Deduplicate forward declaration in the consumer.h header gpio: dwapb: Unify ACPI enumeration checks in get_irq() and configure_irqs() gpio: dwapb: Read GPIO base from gpio-base property mfd: intel_quark_i2c_gpio: Convert GPIO to use software nodes gpio: dwapb: Get rid of legacy platform data gpio: mlxbf2: Convert to device PM ops gpio: mlxbf2: Drop wrong use of ACPI_PTR() gpio: mlxbf2: Use devm_platform_ioremap_resource() gpio: mlxbf2: Use DEFINE_RES_MEM_NAMED() helper macro Bartosz Golaszewski (2): Merge tag 'intel-gpio-v5.15-1' of gitolite.kernel.org:pub/scm/linux/kernel/git/andy/linux-gpio-intel into gpio/for-next Merge branch 'ib-rockchip' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl into gpio/for-next Christophe JAILLET (3): gpio: mpc8xxx: Fix a resources leak in the error handling path of 'mpc8xxx_probe()' gpio: mpc8xxx: Fix a potential double iounmap call in 'mpc8xxx_probe()' gpio: mpc8xxx: Use 'devm_gpiochip_add_data()' to simplify the code and avoid a leak Geert Uytterhoeven (1): gpio: rcar: Always use local variable dev in gpio_rcar_probe() Hannu Hartikainen (1): docs: gpio: explain GPIOD_OUT_* values and toggling active low Jianqun Xu (9): pinctrl/rockchip: always enable clock for gpio controller pinctrl/rockchip: separate struct rockchip_pin_bank to a head file pinctrl/rockchip: add pinctrl device to gpio bank struct dt-bindings: gpio: change items restriction of clock for rockchip,gpio-bank gpio/rockchip: add driver for rockchip gpio gpio/rockchip: use struct rockchip_gpio_regs for gpio controller gpio/rockchip: support next version gpio controller gpio/rockchip: drop irq_gc_lock/irq_gc_unlock for irq set type pinctrl/rockchip: drop the gpio related codes Krzysztof Kozlowski (3): of: unify of_count_phandle_with_args() arguments with !CONFIG_OF gpiolib: constify passed device_node pointer gpiolib: of: constify few local device_node variables Linus Walleij (1): gpio: max730x: Use the right include Lukas Bulwahn (1): gpio: remove the obsolete MX35 3DS BOARD MC9S08DZ60 GPIO functions Mauro Carvalho Chehab (1): MAINTAINERS: update gpio-zynq.yaml reference Sergio Paracuellos (3): gpiolib: convert 'devprop_gpiochip_set_names' to support multiple gpiochip banks per device gpio: mt7621: support gpio-line-names property gpio: brcmstb: remove custom 'brcmstb_gpio_set_names' Steven Lee (5): gpio: gpio-aspeed-sgpio: Add AST2600 sgpio support gpio: gpio-aspeed-sgpio: Add set_config function gpio: gpio-aspeed-sgpio: Move irq_chip to aspeed-sgpio struct gpio: gpio-aspeed-sgpio: Use generic device property APIs gpio: gpio-aspeed-sgpio: Return error if ngpios is not multiple of 8. Vaibhav Gupta (1): gpio: ml-ioh: Convert to dev_pm_ops Vincent Pelletier (1): Documentation: gpio: driver.rst: Remove gpiochip_irqchip_add mention Viresh Kumar (3): gpio: Add virtio-gpio driver gpio: virtio: Fix sparse warnings gpio: virtio: Add missing mailings lists in MAINTAINERS entry .../bindings/gpio/rockchip,gpio-bank.yaml | 5 +- Documentation/driver-api/gpio/consumer.rst | 10 +- Documentation/driver-api/gpio/driver.rst | 11 +- MAINTAINERS | 11 +- drivers/gpio/Kconfig | 23 +- drivers/gpio/Makefile | 3 +- drivers/gpio/gpio-aspeed-sgpio.c | 178 ++-- drivers/gpio/gpio-brcmstb.c | 45 +- drivers/gpio/gpio-dwapb.c | 56 +- drivers/gpio/gpio-mc9s08dz60.c | 112 --- drivers/gpio/gpio-ml-ioh.c | 49 +- drivers/gpio/gpio-mlxbf2.c | 43 +- drivers/gpio/gpio-mpc8xxx.c | 13 +- drivers/gpio/gpio-mt7621.c | 1 + drivers/gpio/gpio-rcar.c | 4 +- drivers/gpio/gpio-rockchip.c | 771 +++++++++++++++++ drivers/gpio/gpio-tegra186.c | 30 +- drivers/gpio/gpio-viperboard.c | 14 +- drivers/gpio/gpio-virtio.c | 374 +++++++++ drivers/gpio/gpiolib-devres.c | 2 +- drivers/gpio/gpiolib-of.c | 16 +- drivers/gpio/gpiolib.c | 32 +- drivers/mfd/intel_quark_i2c_gpio.c | 71 +- drivers/pinctrl/pinctrl-rockchip.c | 909 +-------------------- drivers/pinctrl/pinctrl-rockchip.h | 287 +++++++ include/linux/gpio/consumer.h | 14 +- include/linux/gpio/driver.h | 4 + include/linux/of.h | 2 +- include/linux/of_gpio.h | 15 +- include/linux/platform_data/gpio-dwapb.h | 25 - include/linux/spi/max7301.h | 2 +- include/uapi/linux/virtio_gpio.h | 47 ++ include/uapi/linux/virtio_ids.h | 1 + 33 files changed, 1841 insertions(+), 1339 deletions(-) delete mode 100644 drivers/gpio/gpio-mc9s08dz60.c create mode 100644 drivers/gpio/gpio-rockchip.c create mode 100644 drivers/gpio/gpio-virtio.c create mode 100644 drivers/pinctrl/pinctrl-rockchip.h delete mode 100644 include/linux/platform_data/gpio-dwapb.h create mode 100644 include/uapi/linux/virtio_gpio.h