Hi Linus, this is the main part of the v4.21 GPIO changes. Details are in the signed tag. Some interesting changes have already trickled in through the Regulator and MMC/SD trees but get mentioned in the signed tag nevertheless. Please pull it in! Yours, Linus Walleij The following changes since commit 651022382c7f8da46cb4872a545ee1da6d097d2a: Linux 4.20-rc1 (2018-11-04 15:37:52 -0800) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git tags/gpio-v4.21-1 for you to fetch changes up to a7c23f8d154f7919c5fcfceea6e0897be2d5ab71: gpio: sama5d2-piobu: Depend on OF_GPIO (2018-12-22 11:08:06 +0100) ---------------------------------------------------------------- This is the bulk of GPIO changes for the v4.21 kernel series: Core changes: - Some core changes are already in outside of this pull request as they came through the regulator tree, most notably devm_gpiod_unhinge() that removes devres refcount management from a GPIO descriptor. This is needed in subsystems such as regulators where the regulator core need to take over the reference counting and lifecycle management for a GPIO descriptor. - We dropped devm_gpiochip_remove() and devm_gpio_chip_match() as nothing needs it. We can bring it back if need be. - Add a global TODO so people see where we are going. This helps setting the direction now that we are two GPIO maintainers. - Handle the MMC CD/WP properties in the device tree core. (The bulk of patches activating this code is already merged through the MMC/SD tree.) - Augment gpiochip_request_own_desc() to pass a flag so we as gpiochips can request lines as active low or open drain etc even from ourselves. New drivers: - New driver for Cadence GPIO blocks. - New driver for Atmel SAMA5D2 PIOBU GPIO lines. Driver improvements: - A major refactoring of the PCA953x driver - this driver has been around for ages, and is now modernized to reduce code duplication that has stacked up and is using regmap to read write and cache registers. - Intel drivers are now maintained in a separate tree and start with a round of cleanups and unifications. ---------------------------------------------------------------- A.s. Dong (2): dt-bindings: gpio: vf610: add optional clocks property gpio: vf610: add optional clock support Andrei.Stefanescu@xxxxxxxxxxxxx (2): dt-bindings: arm: atmel: describe SECUMOD usage as a GPIO controller gpio: add driver for SAMA5D2 PIOBU pins Andy Shevchenko (27): MAINTAINERS: Do maintain Intel GPIO drivers via separate tree gpio: pch: Convert to use managed functions pcim_* and devm_* gpio: sodaville: Convert to use managed functions pcim_* and devm_* gpio: pch: Convert to dev_pm_ops gpio: lynxpoint: Use for_each_set_bit() in IRQ handler gpio: pch: Use for_each_set_bit() in IRQ handler gpio: sodaville: Use for_each_set_bit() in IRQ handler gpio: ich: Simplify error handling in ichx_write_bit() gpio: ich: Switch to use struct device instead of platform_device gpio: ich: Convert pr_<level> to dev_<level> gpio: ich: Join string literals back gpio: pch: Remove redundant __func__ from debug print gpio: pch: Remove duplicate assignments gpio: intel-mid: Remove linux/module.h and sort headers gpio: lynxpoint: Remove linux/init.h and sort headers gpio: merrifield: Remove linux/init.h gpio: sch: Remove linux/init.h and sort headers gpio: ich: Sort headers alphabetically gpio: pch: Sort headers alphabetically gpio: sodaville: Sort headers alphabetically gpio: ich: Convert to use SPDX identifier gpio: intel-mid: Convert to use SPDX identifier gpio: lynxpoint: Convert to use SPDX identifier gpio: merrifield: Convert to use SPDX identifier gpio: pch: Convert to use SPDX identifier gpio: sch: Convert to use SPDX identifier gpio: sodaville: Convert to use SPDX identifier Anson Huang (1): gpio: mxc: move gpio noirq suspend/resume to syscore phase Bartosz Golaszewski (1): MAINTAINERS: remove a duplicate entry for gpio-mockup Brajeswar Ghosh (1): drivers/gpio/gpio-grgpio.c: Remove duplicate header Brandon Maier (1): gpio: zynq: Report gpio direction at boot Colin Ian King (2): gpio: sch311x: clean an indentation issue, remove extraneous space gpiolib-acpi: remove unused variable 'err', cleans up build warning Fabrizio Castro (1): dt-bindings: gpio: rcar: Add r8a774c0 (RZ/G2E) support Jan Kotas (2): dt-bindings: gpio: Add bindings for Cadence GPIO gpio: Add Cadence GPIO driver Johan Hovold (1): gpio: drop broken to_gpio_irq_chip() helper Krzysztof Kozlowski (1): gpiolib: Fix return value of gpio_to_desc() stub if !GPIOLIB Kuninori Morimoto (1): gpio: rcar: convert to SPDX identifiers Laurent Pinchart (1): gpio: drop devm_gpio_chip_match() Linus Walleij (9): gpio: Add global TODO file for GPIO gpio: OF: Parse MMC-specific CD and WP properties gpio: Pass a flag to gpiochip_request_own_desc() Merge tag 'intel-gpio-v4.21-1' of git://git.kernel.org/.../andy/linux-gpio-intel into devel Merge branch 'ib-pca953x' into devel ARM: omap1: Fix new user of gpiochip_request_own_desc() memory: omap-gpmc: Get the header of the enum gpio/mmc/of: Respect polarity in the device tree gpio: sama5d2-piobu: Depend on OF_GPIO Manivannan Sadhasivam (1): gpio: pl061: Move irq_chip definition inside struct pl061 Marek Vasut (15): gpio: pca953x: Deduplicate the bank_shift gpio: pca953x: Fix AI overflow on PCAL6524 gpio: pca953x: Repair multi-byte IO address increment on PCA9575 gpio: pca953x: Unify pca95{3,7}x_write_regs_16() gpio: pca953x: Unify pca953x_{read,write}_regs_{16,24}() gpio: pca953x: Unify pca953x_{read,write}_regs_{8,mul}() gpio: pca953x: Factor out common code from device_pca95xx_init() gpio: pca953x: Zap ad-hoc I2C block write in multi GPIO set gpio: pca953x: Extract the register address mangling to single function gpio: pca953x: Perform basic regmap conversion gpio: pca953x: Zap ad-hoc reg_direction cache gpio: pca953x: Zap ad-hoc reg_output cache gpio: pca953x: Zap single use of pca953x_read_single() gpio: pca953x: Restore registers after suspend/resume cycle gpio: pca953x: Add regmap dependency for PCA953x driver Masahiro Yamada (1): gpio: uniphier: convert to SPDX License Identifier Muchun Song (1): gpiolib: Fix possible use after free on label Nicholas Mc Guire (2): gpio: mt7621: report failure of devm_kasprintf() gpio: mt7621: pass mediatek_gpio_bank_probe() failure up the stack Nicolas Saenz Julienne (1): gpio: raspberrypi-exp: decrease refcount on firmware dt node Phil Edworthy (1): gpio: dwapb: Correct the DT node name in the example Tao Ren (1): gpio: aspeed: remove duplicated statement Thierry Reding (2): dt-bindings: tegra186-gpio: Add Tegra186 specific prefix gpio: tegra186: Rename flow variable to type Uwe Kleine-König (2): gpio: drop devm_gpiochip_remove() gpio: mxs: read pin level directly instead of using .get Vladimir Zapolskiy (8): gpio: restore original GPLv2+ license of gpiolib-of.c sources gpio: rcar: reference device instead of platform device gpio: lpc18xx: use SPDX license identifier gpio: lpc18xx: add struct device local variable gpio: lpc18xx: use resource managed interface to register GPIO controller gpio: lpc18xx: add GPIO pin interrupt controller support dt-bindings: gpio: lpc18xx: describe interrupt controllers of GPIO controller gpio: lpc18xx: fix GPIO controller driver build as a module William Breathitt Gray (6): gpio: 104-dio-48e: Mask read inputs for get_multiple gpio: 104-idi-48e: Mask the read inputs for get_multiple gpio: gpio-mm: Mask read inputs for get_multiple gpio: ws16c48: Mask read inputs for get_multiple gpio: pci-idio-16: Mask read inputs for get_multiple gpio: pcie-idio-24: Mask read inputs for get_multiple Wolfram Sang (6): gpio: gpio-dwapb: simplify getting .driver_data gpio: gpio-lynxpoint: simplify getting .driver_data gpio: gpio-mxc: simplify getting .driver_data gpio: gpio-omap: simplify getting .driver_data gpio: gpio-zynq: simplify getting .driver_data gpio: gpio-tegra: simplify getting .driver_data Yangtao Li (1): gpio: ks8695: Change to use DEFINE_SHOW_ATTRIBUTE macro .../devicetree/bindings/arm/atmel-sysregs.txt | 12 +- .../devicetree/bindings/gpio/cdns,gpio.txt | 43 ++ .../devicetree/bindings/gpio/gpio-vf610.txt | 6 + .../devicetree/bindings/gpio/nxp,lpc1850-gpio.txt | 38 +- .../devicetree/bindings/gpio/renesas,gpio-rcar.txt | 1 + .../devicetree/bindings/gpio/snps-dwapb-gpio.txt | 4 +- Documentation/driver-api/gpio/driver.rst | 4 +- Documentation/driver-model/devres.txt | 1 - MAINTAINERS | 40 +- arch/arm/mach-omap1/ams-delta-fiq.c | 2 +- arch/arm/mach-omap1/board-ams-delta.c | 4 +- drivers/gpio/Kconfig | 22 + drivers/gpio/Makefile | 2 + drivers/gpio/TODO | 109 +++++ drivers/gpio/gpio-104-dio-48e.c | 2 +- drivers/gpio/gpio-104-idi-48.c | 2 +- drivers/gpio/gpio-aspeed.c | 1 - drivers/gpio/gpio-cadence.c | 291 +++++++++++++ drivers/gpio/gpio-dwapb.c | 6 +- drivers/gpio/gpio-gpio-mm.c | 2 +- drivers/gpio/gpio-grgpio.c | 1 - drivers/gpio/gpio-ich.c | 73 ++-- drivers/gpio/gpio-intel-mid.c | 16 +- drivers/gpio/gpio-ks8695.c | 15 +- drivers/gpio/gpio-lpc18xx.c | 286 +++++++++++- drivers/gpio/gpio-lynxpoint.c | 47 +- drivers/gpio/gpio-merrifield.c | 6 +- drivers/gpio/gpio-mt7621.c | 10 +- drivers/gpio/gpio-mvebu.c | 2 +- drivers/gpio/gpio-mxc.c | 41 +- drivers/gpio/gpio-mxs.c | 2 +- drivers/gpio/gpio-omap.c | 12 +- drivers/gpio/gpio-pca953x.c | 484 +++++++++++++-------- drivers/gpio/gpio-pch.c | 165 ++----- drivers/gpio/gpio-pci-idio-16.c | 2 +- drivers/gpio/gpio-pcie-idio-24.c | 2 +- drivers/gpio/gpio-pl061.c | 21 +- drivers/gpio/gpio-raspberrypi-exp.c | 1 + drivers/gpio/gpio-rcar.c | 34 +- drivers/gpio/gpio-sama5d2-piobu.c | 253 +++++++++++ drivers/gpio/gpio-sch.c | 27 +- drivers/gpio/gpio-sch311x.c | 2 +- drivers/gpio/gpio-sodaville.c | 73 ++-- drivers/gpio/gpio-tegra.c | 6 +- drivers/gpio/gpio-tegra186.c | 6 +- drivers/gpio/gpio-uniphier.c | 17 +- drivers/gpio/gpio-vf610.c | 44 ++ drivers/gpio/gpio-ws16c48.c | 2 +- drivers/gpio/gpio-zynq.c | 29 +- drivers/gpio/gpiolib-acpi.c | 14 +- drivers/gpio/gpiolib-of.c | 26 +- drivers/gpio/gpiolib.c | 76 ++-- drivers/hid/hid-cp2112.c | 2 +- drivers/memory/omap-gpmc.c | 4 +- include/dt-bindings/gpio/tegra186-gpio.h | 41 ++ include/linux/gpio/consumer.h | 8 +- include/linux/gpio/driver.h | 10 +- 57 files changed, 1762 insertions(+), 690 deletions(-) create mode 100644 Documentation/devicetree/bindings/gpio/cdns,gpio.txt create mode 100644 drivers/gpio/TODO create mode 100644 drivers/gpio/gpio-cadence.c create mode 100644 drivers/gpio/gpio-sama5d2-piobu.c