Hi Linus, here is the bulk of the GPIO changes for v5.6. This is a pretty calm cycle so far, nothing special going on really. Some more changes will come in from the irqchip and pin control trees. I also delete an orphan include file for FMC that was dangling since I deleted that subsystem through the GPIO tree it comes here again. Please pull it in! Yours, Linus Walleij The following changes since commit b3a987b0264d3ddbb24293ebff10eddfc472f653: Linux 5.5-rc6 (2020-01-12 16:55:08 -0800) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git tags/gpio-v5.6-1 for you to fetch changes up to 0282c72d30d32913d641dc81f3f38607ace98802: Merge tag 'gpio-updates-for-v5.6-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux into devel (2020-01-26 01:01:55 +0100) ---------------------------------------------------------------- This is the bulk of GPIO changes for the v5.6 kernel cycle Core changes: - Document the usecases for the kernelspace vs userspace handling of GPIOs. - Handle MSI (message signalled interrupts) properly in the core hierarchical irqdomain code. - Fix a rare race condition while initializing the descriptor array. New drivers: - Xylon LogiCVC GPIO driver. - WDC934x GPIO controller driver. Driver improvements: - Implemented suspend/resume in the Tegra driver. - MPC8xx edge detection fixup. - Properly convert ThunderX to use hierarchical irqdomain with GPIOLIB_IRQCHIP on top of the revert of the previous buggy switchover. This time it works (hopefully). Misc: - Drop a FMC remnant file <linux/ipmi-fru.h> - A slew of fixes. ---------------------------------------------------------------- Andy Shevchenko (2): gpio: pca953x: Remove redundant forward declaration gpiolib: Make use of assign_bit() API Bartosz Golaszewski (8): gpiolib: use 'unsigned int' instead of 'unsigned' in gpio_set_config() gpiolib: have a single place of calling set_config() gpiolib: convert the type of hwnum to unsigned int in gpiochip_get_desc() gpiolib: use gpiochip_get_desc() in linehandle_create() gpiolib: use gpiochip_get_desc() in lineevent_create() gpiolib: use gpiochip_get_desc() in gpio_ioctl() gpio: mockup: update the license tag gpio: mockup: sort headers alphabetically Dan Callaghan (1): gpiolib: hold gpio devices lock until ->descs array is initialised Dmitry Osipenko (3): gpio: tegra: Use generic readl_relaxed/writel_relaxed accessors gpio: tegra: Properly handle irq_set_irq_wake() error gpio: tegra: Use NOIRQ phase for suspend/resume Enrico Weigelt, metux IT consult (2): gpio: remove unneeded MODULE_VERSION() usage gpio: gpiolib: fix confusing indention Geert Uytterhoeven (2): gpiolib: Add GPIOCHIP_NAME definition dt-bindings: gpio: rcar: Document r8a77961 support Jia-Ju Bai (2): gpio: gpio-grgpio: fix possible sleep-in-atomic-context bugs in grgpio_remove() gpio: gpio-grgpio: fix possible sleep-in-atomic-context bugs in grgpio_irq_map/unmap() Kevin Hao (6): Revert "gpio: thunderx: Switch to GPIOLIB_IRQCHIP" gpiolib: Add support for the irqdomain which doesn't use irq_fwspec as arg gpiolib: Add the support for the msi parent domain gpio: thunderx: Switch to GPIOLIB_IRQCHIP gpio: Fix the no return statement warning gpiolib: Lower verbosity when allocating hierarchy irq Linus Walleij (6): Merge tag 'gpio-updates-for-v5.6-part1' of git://git.kernel.org/.../brgl/linux into devel gpio: Update TODO gpio: Add use guidance documentation Merge tag 'v5.5-rc6' into devel Merge branch 'fixup-thunderx-hierarchy' into devel Merge tag 'gpio-updates-for-v5.6-part2' of git://git.kernel.org/.../brgl/linux into devel Lukas Bulwahn (1): fmc: remove left-over ipmi-fru.h after fmc deletion Matti Vaittinen (1): docs: driver-model: Add missing managed GPIO array get functions Maxim Kiselev (1): gpio: mvebu: clear irq in edge cause register before unmask edge irq Ooi, Joyce (2): gpio: altera: change to platform_get_irq_optional to avoid false-positive error MAINTAINERS: Replace Tien Hock Loh as Altera PIO maintainer Paul Kocialkowski (4): dt-bindings: Add Xylon vendor prefix dt-bindings: mfd: Document the Xylon LogiCVC multi-function device dt-bindings: gpio: Document the Xylon LogiCVC GPIO controller gpio: Add support for the Xylon LogiCVC GPIOs Peng Fan (2): gpio: mvebu: use platform_irq_count gpio: bcm-kona: use platform_irq_count Sachin agarwal (2): gpio: vx855: fixed a typo gpio: aspeed-sgpio: fixed typos Shaokun Zhang (1): gpio: Remove the unused flags Song Hui (1): gpio: mpc8xxx: ls1088a/ls1028a edge detection mode bug fixs. Srinivas Kandagatla (2): dt-bindings: gpio: wcd934x: Add bindings for gpio gpio: wcd934x: Add support to wcd934x gpio controller Stephen Boyd (1): gpiolib: Set lockdep class for hierarchical irq domains Vignesh Raghavendra (1): gpio: pca953x: Don't hardcode irq trigger type YueHaibing (2): gpiolib: remove set but not used variable 'config' gpiolib: Remove duplicated function gpio_do_set_config() .../bindings/gpio/qcom,wcd934x-gpio.yaml | 47 ++++++ .../devicetree/bindings/gpio/renesas,gpio-rcar.txt | 3 +- .../bindings/gpio/xylon,logicvc-gpio.yaml | 69 ++++++++ .../devicetree/bindings/mfd/xylon,logicvc.yaml | 50 ++++++ .../devicetree/bindings/vendor-prefixes.yaml | 2 + Documentation/driver-api/driver-model/devres.rst | 2 + Documentation/driver-api/gpio/drivers-on-gpio.rst | 8 +- Documentation/driver-api/gpio/index.rst | 1 + Documentation/driver-api/gpio/using-gpio.rst | 50 ++++++ MAINTAINERS | 2 +- drivers/gpio/Kconfig | 13 ++ drivers/gpio/Makefile | 2 + drivers/gpio/TODO | 46 +++++- drivers/gpio/gpio-altera.c | 2 +- drivers/gpio/gpio-aspeed-sgpio.c | 2 +- drivers/gpio/gpio-aspeed.c | 2 +- drivers/gpio/gpio-bcm-kona.c | 12 +- drivers/gpio/gpio-creg-snps.c | 4 +- drivers/gpio/gpio-grgpio.c | 15 +- drivers/gpio/gpio-logicvc.c | 170 +++++++++++++++++++ drivers/gpio/gpio-mockup.c | 16 +- drivers/gpio/gpio-mpc8xxx.c | 1 + drivers/gpio/gpio-mvebu.c | 8 +- drivers/gpio/gpio-pca953x.c | 5 +- drivers/gpio/gpio-sama5d2-piobu.c | 1 - drivers/gpio/gpio-tb10x.c | 1 - drivers/gpio/gpio-tegra.c | 21 ++- drivers/gpio/gpio-tegra186.c | 13 +- drivers/gpio/gpio-thunderx.c | 36 +++- drivers/gpio/gpio-vx855.c | 2 +- drivers/gpio/gpio-wcd934x.c | 121 ++++++++++++++ drivers/gpio/gpiolib-sysfs.c | 7 +- drivers/gpio/gpiolib.c | 182 ++++++++++----------- drivers/gpio/gpiolib.h | 5 +- drivers/pinctrl/qcom/pinctrl-spmi-gpio.c | 2 +- drivers/pinctrl/qcom/pinctrl-ssbi-gpio.c | 2 +- include/linux/gpio/driver.h | 26 ++- include/linux/ipmi-fru.h | 134 --------------- 38 files changed, 768 insertions(+), 317 deletions(-) create mode 100644 Documentation/devicetree/bindings/gpio/qcom,wcd934x-gpio.yaml create mode 100644 Documentation/devicetree/bindings/gpio/xylon,logicvc-gpio.yaml create mode 100644 Documentation/devicetree/bindings/mfd/xylon,logicvc.yaml create mode 100644 Documentation/driver-api/gpio/using-gpio.rst create mode 100644 drivers/gpio/gpio-logicvc.c create mode 100644 drivers/gpio/gpio-wcd934x.c delete mode 100644 include/linux/ipmi-fru.h