Hi Linus, here is the big pin control pull request for v5.16. The details are in the signed tag as usual. The most interesting aspect is that we now have initial support for the Apple pin controller as used in the M1 laptops and the iPhones which is a step forward for using Linux efficiently on this Apple silicon. Please pull it in! Yours, Linus Walleij The following changes since commit 6880fa6c56601bb8ed59df6c30fd390cc5f6dd8f: Linux 5.15-rc1 (2021-09-12 16:28:37 -0700) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl.git tags/pinctrl-v5.16-1 for you to fetch changes up to a0f160ffcb83de6a04fa75f9e7bdfe969f2863f7: pinctrl: add pinctrl/GPIO driver for Apple SoCs (2021-10-27 00:16:52 +0200) ---------------------------------------------------------------- Pin control changes for the v5.16 kernel cycle Core changes: - Add infrastructure for per-parent interrupt data to support the Apple pin controller. New drivers: - New combined pin control and GPIO driver for the Apple SoC. This is used in all modern Apple silicon such as the M1 laptops but also in at least recent iPhone variants. - New subdriver for the Qualcomm SM6350 - New subdriver for the Qualcomm QCM2290 - New subdriver for the Qualcomm PM6350 - New subdriver for the Uniphier NX1 - New subdriver for the Samsung ExynosAutoV9 - New subdriver for the Mediatek MT7986 - New subdriver for the nVidia Tegra194 Improvements: - Improve power management in the Mediatek driver. - Improvements to the Renesas internal consistency checker. - Convert the Rockchip pin control device tree bindings to YAML. - Finally convert the Qualcomm PMIC SSBI and SPMI MPP GPIO driver to use hierarchical interrupts. - Convert the Qualcomm PMIC MPP device tree bindings to YAML. ---------------------------------------------------------------- Andrey Gusakov (1): pinctrl: renesas: r8a779[56]x: Add MediaLB pins Biju Das (1): pinctrl: renesas: rzg2l: Fix missing port register 21h Cai Huoqing (2): pinctrl: nomadik: Kconfig: Remove repeated config dependency pinctrl: intel: Kconfig: Add configuration menu to Intel pin control Chanho Park (1): pinctrl: samsung: support ExynosAutov9 SoC pinctrl Colin Ian King (1): pinctrl: Fix spelling mistake "atleast" -> "at least" Dmitry Baryshkov (6): dt-bindings: pinctrl: qcom,pmic-mpp: Convert qcom pmic mpp bindings to YAML pinctrl: qcom: ssbi-mpp: hardcode IRQ counts pinctrl: qcom: ssbi-mpp: add support for hierarchical IRQ chip pinctrl: qcom: spmi-mpp: hardcode IRQ counts pinctrl: qcom: spmi-mpp: add support for hierarchical IRQ chip dt-bindings: pinctrl: qcom,pmic-mpp: switch to #interrupt-cells Du Huanpeng (1): pinctrl: gemini: fix typos Fabien Dessenne (1): pinctrl: stm32: do not warn when 'st,package' is absent Florian Fainelli (1): pinctrl: bcm2835: Allow building driver as a module Geert Uytterhoeven (5): pinctrl: renesas: Fix save/restore on SoCs with pull-down only pins pinctrl: renesas: checker: Fix off-by-one bug in drive register check pinctrl: renesas: checker: Move overlapping field check pinctrl: renesas: checker: Fix bias checks on SoCs with pull-down only pins pinctrl: renesas: checker: Prefix common checker output Horatiu Vultur (2): dt-bindings: pinctrl: pinctrl-microchip-sgpio: Add reset binding pinctrl: microchip sgpio: use reset driver Jason Wang (1): pinctrl: renesas: No need to initialise global statics Joey Gouly (3): dt-bindings: pinctrl: add #interrupt-cells to apple,pinctrl dt-bindings: pinctrl: Add apple,npins property to apple,pinctrl pinctrl: add pinctrl/GPIO driver for Apple SoCs Johan Jonker (1): dt-bindings: pinctrl: convert rockchip,pinctrl.txt to YAML Konrad Dybcio (2): dt-bindings: pinctrl: qcom: Add SM6350 pinctrl bindings pinctrl: qcom: Add SM6350 pinctrl driver Kunihiko Hayashi (3): pinctrl: uniphier: Add extra audio pinmux settings for LD11, LD20 and PXs3 SoCs dt-bindings: pinctrl: uniphier: Add NX1 pinctrl binding pinctrl: uniphier: Add UniPhier NX1 pinctrl driver Linus Walleij (3): Merge tag 'renesas-pinctrl-for-v5.16-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers into devel Merge tag 'renesas-pinctrl-for-v5.16-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers into devel Merge branch 'ib-gpio-ppid' into devel Luca Weiss (3): pinctrl: qcom: msm8226: fill in more functions dt-bindings: pinctrl: qcom,pmic-gpio: Add compatible for PM6350 pinctrl: qcom: spmi-gpio: Add compatible for PM6350 Marc Zyngier (1): gpio: Allow per-parent interrupt data Prathamesh Shete (3): pinctrl: tegra: Add pinmux support for Tegra194 pinctrl: tegra: Use correct offset for pin group pinctrl: tegra: Fix warnings and error Rahul Tanwar (1): pinctrl: equilibrium: Fix function addition in multiple groups Sam Shih (3): pinctrl: mediatek: moore: check if pin_desc is valid before use dt-bindings: pinctrl: update bindings for MT7986 SoC pinctrl: mediatek: add support for MT7986 SoC Shawn Guo (2): dt-bindings: pinctrl: qcom: Add QCM2290 pinctrl bindings pinctrl: qcom: Add QCM2290 pinctrl driver Subbaraman Narayanamurthy (2): dt-bindings: pinctrl: qcom-pmic-gpio: Add output-{enable,disable} properties pinctrl: qcom: spmi-gpio: add support to enable/disable output Suresh Mangipudi (1): pinctrl: tegra: include lpdr pin properties Yang Yingliang (1): pinctrl: core: fix possible memory leak in pinctrl_enable() Zhiyong Tao (6): pinctrl: mediatek: mt8195: Add pm_ops dt-bindings: pinctrl: mt8195: add rsel define dt-bindings: pinctrl: mt8195: change pull up/down description pinctrl: mediatek: fix coding style pinctrl: mediatek: support rsel feature pinctrl: mediatek: add rsel setting on MT8195 .../devicetree/bindings/pinctrl/apple,pinctrl.yaml | 10 + .../bindings/pinctrl/mediatek,mt7986-pinctrl.yaml | 363 ++++ .../bindings/pinctrl/microchip,sparx5-sgpio.yaml | 7 + .../bindings/pinctrl/pinctrl-mt8195.yaml | 86 +- .../bindings/pinctrl/qcom,pmic-gpio.yaml | 4 + .../devicetree/bindings/pinctrl/qcom,pmic-mpp.txt | 187 -- .../devicetree/bindings/pinctrl/qcom,pmic-mpp.yaml | 188 ++ .../bindings/pinctrl/qcom,qcm2290-pinctrl.yaml | 165 ++ .../bindings/pinctrl/qcom,sm6350-pinctrl.yaml | 148 ++ .../bindings/pinctrl/rockchip,pinctrl.txt | 114 -- .../bindings/pinctrl/rockchip,pinctrl.yaml | 184 ++ .../bindings/pinctrl/samsung-pinctrl.txt | 1 + .../pinctrl/socionext,uniphier-pinctrl.yaml | 1 + drivers/gpio/gpiolib.c | 9 +- drivers/pinctrl/Kconfig | 16 + drivers/pinctrl/Makefile | 1 + drivers/pinctrl/bcm/Kconfig | 2 +- drivers/pinctrl/bcm/pinctrl-bcm2835.c | 9 +- drivers/pinctrl/core.c | 2 + drivers/pinctrl/intel/Kconfig | 6 +- drivers/pinctrl/mediatek/Kconfig | 7 + drivers/pinctrl/mediatek/Makefile | 1 + drivers/pinctrl/mediatek/pinctrl-moore.c | 18 + drivers/pinctrl/mediatek/pinctrl-mt7986.c | 927 ++++++++++ drivers/pinctrl/mediatek/pinctrl-mt8195.c | 134 ++ drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.c | 231 ++- drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.h | 46 + drivers/pinctrl/mediatek/pinctrl-paris.c | 68 +- drivers/pinctrl/nomadik/Kconfig | 1 - drivers/pinctrl/pinctrl-apple-gpio.c | 534 ++++++ drivers/pinctrl/pinctrl-equilibrium.c | 7 +- drivers/pinctrl/pinctrl-gemini.c | 4 +- drivers/pinctrl/pinctrl-microchip-sgpio.c | 7 + drivers/pinctrl/pinctrl-st.c | 2 +- drivers/pinctrl/qcom/Kconfig | 17 + drivers/pinctrl/qcom/Makefile | 2 + drivers/pinctrl/qcom/pinctrl-msm8226.c | 74 +- drivers/pinctrl/qcom/pinctrl-qcm2290.c | 1129 ++++++++++++ drivers/pinctrl/qcom/pinctrl-sm6350.c | 1401 +++++++++++++++ drivers/pinctrl/qcom/pinctrl-spmi-gpio.c | 7 + drivers/pinctrl/qcom/pinctrl-spmi-mpp.c | 111 +- drivers/pinctrl/qcom/pinctrl-ssbi-mpp.c | 133 +- drivers/pinctrl/renesas/core.c | 83 +- drivers/pinctrl/renesas/pfc-r8a77950.c | 14 + drivers/pinctrl/renesas/pfc-r8a77951.c | 22 +- drivers/pinctrl/renesas/pfc-r8a7796.c | 22 +- drivers/pinctrl/renesas/pfc-r8a77965.c | 22 +- drivers/pinctrl/renesas/pinctrl-rzg2l.c | 2 +- drivers/pinctrl/samsung/pinctrl-exynos-arm64.c | 108 ++ drivers/pinctrl/samsung/pinctrl-samsung.c | 2 + drivers/pinctrl/samsung/pinctrl-samsung.h | 1 + drivers/pinctrl/stm32/pinctrl-stm32.c | 16 +- drivers/pinctrl/tegra/pinctrl-tegra.c | 32 +- drivers/pinctrl/tegra/pinctrl-tegra.h | 2 + drivers/pinctrl/tegra/pinctrl-tegra194.c | 1794 +++++++++++++++++++- drivers/pinctrl/tegra/pinctrl-tegra210.c | 330 ++-- drivers/pinctrl/uniphier/Kconfig | 4 + drivers/pinctrl/uniphier/Makefile | 1 + drivers/pinctrl/uniphier/pinctrl-uniphier-ld11.c | 18 + drivers/pinctrl/uniphier/pinctrl-uniphier-ld20.c | 35 + drivers/pinctrl/uniphier/pinctrl-uniphier-nx1.c | 489 ++++++ drivers/pinctrl/uniphier/pinctrl-uniphier-pxs3.c | 40 + include/dt-bindings/pinctrl/mt65xx.h | 9 + include/linux/gpio/driver.h | 19 +- 64 files changed, 8720 insertions(+), 709 deletions(-) create mode 100644 Documentation/devicetree/bindings/pinctrl/mediatek,mt7986-pinctrl.yaml delete mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,pmic-mpp.txt create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,pmic-mpp.yaml create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,qcm2290-pinctrl.yaml create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,sm6350-pinctrl.yaml delete mode 100644 Documentation/devicetree/bindings/pinctrl/rockchip,pinctrl.txt create mode 100644 Documentation/devicetree/bindings/pinctrl/rockchip,pinctrl.yaml create mode 100644 drivers/pinctrl/mediatek/pinctrl-mt7986.c create mode 100644 drivers/pinctrl/pinctrl-apple-gpio.c create mode 100644 drivers/pinctrl/qcom/pinctrl-qcm2290.c create mode 100644 drivers/pinctrl/qcom/pinctrl-sm6350.c create mode 100644 drivers/pinctrl/uniphier/pinctrl-uniphier-nx1.c