From: Bartosz Golaszewski <bgolaszewski@xxxxxxxxxxxx> Linus, This is the pull request from the GPIO subsystem for this merge window. It's been a relatively calm release cycle and we're actually removing more code than we're adding. All patches have been in next with most having spent several weeks there. The PR is rebased on top of v5.11 because certain bug fixes on which patches for v5.12 depend were only merged after v5.11-rc7. Details are in the signed tag. Please pull! Best Regards, Bartosz Golaszewski The following changes since commit f40ddce88593482919761f74910f42f4b84c004b: Linux 5.11 (2021-02-14 14:32:24 -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.12 for you to fetch changes up to a8002a35935aaefcd6a42ad3289f62bab947f2ca: gpio: pcf857x: Fix missing first interrupt (2021-02-18 15:52:44 +0100) ---------------------------------------------------------------- gpio updates for v5.12 - new driver for the Toshiba Visconti platform - rework of interrupt handling in gpio-tegra - updates for GPIO selftests: we're now using the character device to perform the subsystem checks - support for a new rcar variant + some code refactoring - refactoring of gpio-ep93xx - SPDX License identifier has been updated in the uapi header so that userspace programs bundling it can become fully REUSE-compliant - improvements to pwm handling in gpio-mvebu - support for interrupt handling and power management for gpio-xilinx as well as some code refactoring - support for a new chip variant in gpio-pca953x - removal of drivers: zte xs & intel-mid and removal of leftovers from intel-msic - impovements to intel drivers pulled from Andy Shevchenko - improvements to the gpio-aggregator virtual GPIO driver - and several minor tweaks and fixes to code and documentation all over the place ---------------------------------------------------------------- Andy Shevchenko (13): gpio: merrifield: Make bias configuration available for GPIOs lib/cmdline_kunit: add a new test case for get_options() lib/cmdline: Update documentation to reflect behaviour lib/cmdline: Allow get_options() to take 0 to validate the input gpio: aggregator: Replace isrange() by using get_options() gpio: aggregator: Use compound literal from the header gpio: aggregator: Remove trailing comma in terminator entries gpio: msic: Remove driver for deprecated platform gpio: intel-mid: Remove driver for deprecated platform gpio: wcove: Get rid of error prone casting in IRQ handler gpio: wcove: Switch to use regmap_set_bits(), regmap_clear_bits() gpio: wcove: Split out to_ireg() helper and deduplicate the code gpio: msic: Drop driver from Makefile Arnd Bergmann (1): gpio: remove zte zx driver Aswath Govindraju (1): dt-bindings: gpio: Add compatible string for AM64 SoC Bartosz Golaszewski (3): gpio: bd7xxxx: use helper variable for pdev->dev gpio: mockup: tweak the Kconfig help text gpio: uapi: use the preferred SPDX license identifier Baruch Siach (6): gpio: mvebu: improve pwm period calculation accuracy gpio: mvebu: make pwm .get_state closer to idempotent gpio: mvebu: don't limit pwm period/duty_cycle to UINT_MAX gpio: mvebu: improve handling of pwm zero on/off values gpio: mvebu: add pwm support for Armada 8K/7K dt-bindings: ap806: document gpio marvell,pwm-offset property Colin Ian King (1): gpio: fix spelling mistake in Kconfig "supprot" -> "support" Dmitry Osipenko (6): gpio: tegra: Fix wake interrupt gpio: tegra: Improve formatting of the code gpio: tegra: Use debugfs_create_devm_seqfile() gpio: tegra: Clean up whitespaces in tegra_gpio_driver gpio: tegra: Support building driver as a loadable module gpio: tegra: Fix irq_set_affinity Geert Uytterhoeven (3): dt-bindings: gpio: rcar: Add r8a779a0 support gpio: rcar: Optimize GPIO pin state read on R-Car Gen3 gpio: rcar: Add R-Car V3U (R8A779A0) support Jonathan Neuschäfer (2): docs: gpio: Fix formatting in description of gpiod_*_array_* functions docs: gpio: intro: Improve HTML formatting Kent Gibson (8): selftests: gpio: rework and simplify test implementation selftests: gpio: remove obsolete gpio-mockup-chardev.c selftests: remove obsolete build restriction for gpio selftests: remove obsolete gpio references from kselftest_deps.sh tools: gpio: remove uAPI v1 code no longer used by selftests selftests: gpio: port to GPIO uAPI v2 selftests: gpio: add CONFIG_GPIO_CDEV to config gpio: uapi: fix line info flags description Lad Prabhakar (2): gpio: rcar: Remove redundant compatible values gpio: Kconfig: Update help description for GPIO_RCAR config Matti Vaittinen (1): gpio: bd7xxxx: Do not depend on parent driver data Maxim Kiselev (1): gpio: pcf857x: Fix missing first interrupt Nikita Shubin (5): gpio: ep93xx: Fix wrong irq numbers in port F gpio: ep93xx: drop to_irq binding gpio: ep93xx: Fix typo s/hierarchial/hierarchical gpio: ep93xx: refactor ep93xx_gpio_add_bank gpio: ep93xx: refactor base IRQ number Nobuhiro Iwamatsu (4): dt-bindings: gpio: Add bindings for Toshiba Visconti GPIO Controller gpio: visconti: Add Toshiba Visconti GPIO support MAINTAINERS: Add entries for Toshiba Visconti GPIO controller arm: dts: visconti: Add DT support for Toshiba Visconti5 GPIO driver Srinivas Neeli (5): gpio: gpio-xilinx: Simplify with dev_err_probe() gpio: gpio-xilinx: Reduce spinlock array to array gpio: gpio-xilinx: Add interrupt support gpio: gpio-xilinx: Add support for suspend and resume gpio: gpio-xilinx: Add check if width exceeds 32 Thierry Reding (1): gpio: tegra: Convert to gpio_irq_chip Uwe Kleine-König (3): gpio: pca953x: Add support for pca9506 dt-bindings: gpio: pca953x: Document new supported chip pca9506 dt-bindings: gpio: pca953x: Increase allowed length for gpio-line-names Zheng Yongjun (5): gpio: sl28cpld: convert comma to semicolon gpio: max77620: convert comma to semicolon gpio: tegra186: convert comma to semicolon gpio: vx855: convert comma to semicolon gpio: wcove: convert comma to semicolon .../arm/marvell/ap80x-system-controller.txt | 8 + .../devicetree/bindings/gpio/gpio-davinci.txt | 1 + .../devicetree/bindings/gpio/gpio-pca95xx.yaml | 3 +- .../bindings/gpio/renesas,rcar-gpio.yaml | 3 + .../bindings/gpio/toshiba,gpio-visconti.yaml | 70 +++ .../devicetree/bindings/gpio/zx296702-gpio.txt | 24 - Documentation/driver-api/gpio/consumer.rst | 5 +- Documentation/driver-api/gpio/intro.rst | 8 +- MAINTAINERS | 4 +- arch/arm64/boot/dts/toshiba/tmpv7708-rm-mbrc.dts | 4 + arch/arm64/boot/dts/toshiba/tmpv7708.dtsi | 11 + drivers/gpio/Kconfig | 44 +- drivers/gpio/Makefile | 4 +- drivers/gpio/TODO | 2 +- drivers/gpio/gpio-aggregator.c | 40 +- drivers/gpio/gpio-bd70528.c | 59 ++- drivers/gpio/gpio-bd71828.c | 39 +- drivers/gpio/gpio-ep93xx.c | 28 +- drivers/gpio/gpio-intel-mid.c | 414 ----------------- drivers/gpio/gpio-max77620.c | 2 +- drivers/gpio/gpio-merrifield.c | 5 + drivers/gpio/gpio-msic.c | 314 ------------- drivers/gpio/gpio-mvebu.c | 148 +++--- drivers/gpio/gpio-pca953x.c | 2 + drivers/gpio/gpio-pcf857x.c | 2 +- drivers/gpio/gpio-rcar.c | 85 ++-- drivers/gpio/gpio-sl28cpld.c | 4 +- drivers/gpio/gpio-tegra.c | 263 +++++++---- drivers/gpio/gpio-tegra186.c | 2 +- drivers/gpio/gpio-visconti.c | 218 +++++++++ drivers/gpio/gpio-vx855.c | 2 +- drivers/gpio/gpio-wcove.c | 65 +-- drivers/gpio/gpio-xilinx.c | 369 ++++++++++++++- drivers/gpio/gpio-zx.c | 289 ------------ drivers/pinctrl/visconti/pinctrl-common.c | 23 + include/linux/gpio/machine.h | 4 +- include/uapi/linux/gpio.h | 4 +- lib/cmdline.c | 21 +- lib/cmdline_kunit.c | 56 +++ tools/gpio/gpio-utils.c | 89 ---- tools/gpio/gpio-utils.h | 6 - tools/testing/selftests/Makefile | 9 - tools/testing/selftests/gpio/Makefile | 26 +- tools/testing/selftests/gpio/config | 1 + tools/testing/selftests/gpio/gpio-mockup-cdev.c | 198 ++++++++ tools/testing/selftests/gpio/gpio-mockup-chardev.c | 323 ------------- tools/testing/selftests/gpio/gpio-mockup-sysfs.sh | 168 +++---- tools/testing/selftests/gpio/gpio-mockup.sh | 497 ++++++++++++++------- tools/testing/selftests/kselftest_deps.sh | 4 +- 49 files changed, 1827 insertions(+), 2143 deletions(-) create mode 100644 Documentation/devicetree/bindings/gpio/toshiba,gpio-visconti.yaml delete mode 100644 Documentation/devicetree/bindings/gpio/zx296702-gpio.txt delete mode 100644 drivers/gpio/gpio-intel-mid.c delete mode 100644 drivers/gpio/gpio-msic.c create mode 100644 drivers/gpio/gpio-visconti.c delete mode 100644 drivers/gpio/gpio-zx.c create mode 100644 tools/testing/selftests/gpio/gpio-mockup-cdev.c delete mode 100644 tools/testing/selftests/gpio/gpio-mockup-chardev.c