Hi Linus, here is the big pull request with pin control changes for the v5.13 kernel. There is a lot going on! Details are in the signed tag as usual. A few patches hit site outside of pin control, and should all be ACKed by affected maintainers. Please pull it in! Yours, Linus Walleij The following changes since commit a38fd8748464831584a19438cbb3082b5a2dab15: Linux 5.12-rc2 (2021-03-05 17:33:41 -0800) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl.git tags/pinctrl-v5.13-1 for you to fetch changes up to 8b242ca700f8043be56542efd8360056358a42ed: pinctrl: Add Xilinx ZynqMP pinctrl driver support (2021-04-22 11:13:04 +0200) ---------------------------------------------------------------- This is the bulk of the pin control changes for the v5.13 kernel cycle Core changes: - A semantic change to handle pinmux and pinconf in explicit order while up until now we depended on the semantic order in the device tree. The device tree is a functional programming language and does not imply any order, so the right thing is for the pin control core to provide these semantics. - Add a new pinmux-select debugfs file which makes it possible to go in and select functions for a pin manually (iteratively, at the prompt) for debugging purposes. - Fixes to gpio regmap handling for a new pin control driver making use of regmap-gpio. - Use octal permissions on debugfs files. New drivers: - A massive rewrite of the former custom pin control driver for MIPS Broadcom devices to instead use the pin control subsystem. New pin control drivers for BCM6345, BCM6328, BCM6358, BCM6362, BCM6368, BCM63268 and BCM6318 SoC variants are implemented. - Support for PM8350, PM8350B, PM8350C, PMK8350, PMR735A and PMR735B in the Qualcomm PMIC GPIO driver. Also the two GPIOs on PM8008 are supported. - Support for the Rockchip RK3568/RK3566 pin controller. - Support for Ingenic JZ4730, JZ4750, JZ4755, JZ4775 and X2000. - Support for Mediatek MTK8195. - Add a new Xilinx ZynqMP pin control driver. Driver improvements and non-urgent fixes: - Modularization and improvements of the Rockchip drivers. - Some new pins added to the description of new Renesas SoCs. - Clarifications of the GPIO base calculation in the Intel driver. - Fix the function names for the MPP54 and MPP55 pins in the Armada CP110 pin controller. - GPIO wakeup interrupt map for Qualcomm SC7280 and SM8350. - Support for ACPI probing of the Qualcomm SC8180x. - Fix interrupt clear status on rockchip - Fix some missing pins on the Ingenic JZ4770, some semantic fixes for the behaviour of the Ingenic pin controller. Add DMIC pins for JZ4780, X1000, X1500 and X1830. - A slew of janitorial like of_node_put() calls. ---------------------------------------------------------------- Andy Shevchenko (6): pinctrl: intel: Show the GPIO base calculation explicitly pinctrl: intel: No need to disable IRQs in the handler pinctrl: core: Fix kernel doc string for pin_get_name() pinctrl: Keep enum pin_config_param ordered by name pinctrl: Introduce MODE group in enum pin_config_param pinctrl: Add PIN_CONFIG_MODE_PWM to enum pin_config_param Drew Fustini (4): pinctrl: use to octal permissions for debugfs files pinctrl: pinmux: Add pinmux-select debugfs file Documentation: rename pinctl to pin-control docs/pinctrl: document debugfs files Ezequiel Garcia (1): dt-bindings: pinctrl: rockchip: add RK3568 SoC support Fabio Estevam (2): pinctrl: imx: Remove unneeded of_match_ptr() pinctrl: imx: Disallow driver unbind Geert Uytterhoeven (7): pinctrl: renesas: Make sh_pfc_pin_to_bias_reg() static pinctrl: renesas: Move R-Car bias helpers to sh_pfc.h pinctrl: renesas: Factor out common R-Mobile bias handling pinctrl: renesas: Add PORT_GP_CFG_7 macros pinctrl: renesas: Add support for R-Car SoCs with pull-down only pins pinctrl: renesas: r8a7791: Add bias pinconf support pinctrl: PINCTRL_ROCKCHIP should depend on ARCH_ROCKCHIP Guru Das Srinagesh (2): dt-bindings: pinctrl: qcom-pmic-gpio: Add pm8008 support pinctrl: qcom-pmic-gpio: Add support for pm8008 Hanna Hawa (3): pinctrl: pinctrl-single: remove unused variable pinctrl: pinctrl-single: remove unused parameter pinctrl: pinctrl-single: fix pcs_pin_dbg_show() when bits_per_mux is not zero Jia-Ju Bai (1): pinctrl: ti: fix error return code of ti_iodelay_probe() Jianqun Xu (6): pinctrl: rockchip: clear int status when driver probed kernel/irq: export irq_gc_set_wake arm64: remove select PINCTRL_ROCKCHIP from ARCH_ROCKCHIP pinctrl: rockchip: make driver be tristate module pinctrl: rockchip: add support for rk3568 pinctrl: rockchip: do coding style for mux route struct Julian Braha (1): drivers: pinctrl: qcom: fix Kconfig dependency on GPIOLIB Junlin Yang (3): pinctrl: equilibrium: add missing of_node_put pinctrl: stm32: add missing of_node_put pinctrl: ti: fix error return code of ti_iodelay_dt_node_to_map() Konstantin Porotchkin (2): pinctrl: cp110-system-controller: fix the pin function names pinctrl: armada-cp110 - fix MPP54/MPP55 functions Krzysztof Kozlowski (1): pinctrl: samsung: use 'int' for register masks in Exynos Lina Iyer (1): pinctrl: qcom: sm8350: add GPIO wakeup interrupt map Linus Walleij (5): Merge tag 'renesas-pinctrl-for-v5.13-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers into devel Merge tag 'intel-pinctrl-v5.13-1' of gitolite.kernel.org:pub/scm/linux/kernel/git/pinctrl/intel into devel Merge branch 'ib-bcm63xx' into devel pinctrl: bcm63xx: Fix dependencies Merge tag 'renesas-pinctrl-for-v5.13-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers into devel Marek Vasut (1): pinctrl: stm32: Print invalid AF warning inside stm32_pctrl_is_function_valid() Maulik Shah (1): pinctrl: qcom: sc7280: Add GPIO wakeup interrupt map Michal Simek (2): pinctrl: core: Handling pinmux and pinconf separately pinctrl: core: Set ret to 0 when group is skipped Niklas Söderlund (5): pinctrl: renesas: r8a77951: Add vin4_g8 and vin5_high8 pins pinctrl: renesas: r8a7796: Add vin4_g8 and vin5_high8 pins pinctrl: renesas: r8a77990: Add vin4_g8 and vin5_high8 pins pinctrl: renesas: r8a77965: Add vin4_g8 and vin5_high8 pins docs: pin-control: Fix error path for control state example Randy Dunlap (1): pinctrl: bcm63xx: Fix More dependencies Sai Krishna Potthuri (3): dt-bindings: pinctrl: Add binding for ZynqMP pinctrl driver firmware: xilinx: Add pinctrl support pinctrl: Add Xilinx ZynqMP pinctrl driver support Shawn Guo (1): pinctrl: qcom: sc8180x: add ACPI probe support Tudor Ambarus (1): pinctrl: at91-pio4: Fix slew rate disablement Tzung-Bi Shih (1): pinctrl: mediatek: use spin lock in mtk_rmw Vinod Koul (2): dt-bindings: pinctrl: qcom-pmic-gpio: Add pm8350 and friends pinctrl: qcom: spmi-gpio: Add support for PM8350 and friends Wan Jiabing (1): drivers: pinctrl: Remove duplicate include of io.h Yang Li (1): pinctrl: ingenic: add missing call to of_node_put() Zhiyong Tao (4): pinctrl: add lock in mtk_rmw function. dt-bindings: pinctrl: mt8195: add pinctrl file and binding document pinctrl: add pinctrl driver on mt8195 pinctrl: add drive for I2C related pins on MT8195 Álvaro Fernández Rojas (23): gpio: guard gpiochip_irqchip_add_domain() with GPIOLIB_IRQCHIP gpio: regmap: set gpio_chip of_node dt-bindings: improve BCM6345 GPIO binding documentation pinctrl: bcm: add bcm63xx base code dt-bindings: add BCM6328 pincontroller binding documentation dt-bindings: add BCM6328 GPIO sysctl binding documentation pinctrl: add a pincontrol driver for BCM6328 dt-bindings: add BCM6358 pincontroller binding documentation dt-bindings: add BCM6358 GPIO sysctl binding documentation pinctrl: add a pincontrol driver for BCM6358 dt-bindings: add BCM6362 pincontroller binding documentation dt-bindings: add BCM6362 GPIO sysctl binding documentation pinctrl: add a pincontrol driver for BCM6362 dt-bindings: add BCM6368 pincontroller binding documentation dt-bindings: add BCM6368 GPIO sysctl binding documentation pinctrl: add a pincontrol driver for BCM6368 dt-bindings: add BCM63268 pincontroller binding documentation dt-bindings: add BCM63268 GPIO sysctl binding documentation pinctrl: add a pincontrol driver for BCM63268 dt-bindings: add BCM6318 pincontroller binding documentation dt-bindings: add BCM6318 GPIO sysctl binding documentation pinctrl: add a pincontrol driver for BCM6318 pinctrl: bcm: bcm6362: fix warning 周琰杰 (Zhou Yanjie) (12): pinctrl: Ingenic: Add missing pins to the JZ4770 MAC MII group. pinctrl: Ingenic: Add support for read the pin configuration of X1830. pinctrl: Ingenic: Adjust the sequence of X1830 SSI pin groups. pinctrl: Ingenic: Improve LCD pins related code. pinctrl: Ingenic: Add DMIC pins support for Ingenic SoCs. pinctrl: Ingenic: Reformat the code. dt-bindings: pinctrl: Add bindings for new Ingenic SoCs. pinctrl: Ingenic: Add pinctrl driver for JZ4730. pinctrl: Ingenic: Add pinctrl driver for JZ4750. pinctrl: Ingenic: Add pinctrl driver for JZ4755. pinctrl: Ingenic: Add pinctrl driver for JZ4775. pinctrl: Ingenic: Add pinctrl driver for X2000. .../arm/marvell/cp110-system-controller.txt | 4 +- .../devicetree/bindings/gpio/brcm,bcm6345-gpio.txt | 46 - .../bindings/gpio/brcm,bcm6345-gpio.yaml | 86 + .../bindings/mfd/brcm,bcm6318-gpio-sysctl.yaml | 177 +++ .../bindings/mfd/brcm,bcm63268-gpio-sysctl.yaml | 194 +++ .../bindings/mfd/brcm,bcm6328-gpio-sysctl.yaml | 162 ++ .../bindings/mfd/brcm,bcm6358-gpio-sysctl.yaml | 130 ++ .../bindings/mfd/brcm,bcm6362-gpio-sysctl.yaml | 236 +++ .../bindings/mfd/brcm,bcm6368-gpio-sysctl.yaml | 246 +++ .../bindings/pinctrl/brcm,bcm6318-pinctrl.yaml | 143 ++ .../bindings/pinctrl/brcm,bcm63268-pinctrl.yaml | 164 ++ .../bindings/pinctrl/brcm,bcm6328-pinctrl.yaml | 127 ++ .../bindings/pinctrl/brcm,bcm6358-pinctrl.yaml | 93 ++ .../bindings/pinctrl/brcm,bcm6362-pinctrl.yaml | 206 +++ .../bindings/pinctrl/brcm,bcm6368-pinctrl.yaml | 217 +++ .../bindings/pinctrl/ingenic,pinctrl.yaml | 23 +- .../bindings/pinctrl/pinctrl-mt8195.yaml | 151 ++ .../devicetree/bindings/pinctrl/qcom,pmic-gpio.txt | 14 + .../bindings/pinctrl/rockchip,pinctrl.txt | 1 + .../bindings/pinctrl/xlnx,zynqmp-pinctrl.yaml | 336 ++++ Documentation/driver-api/gpio/legacy.rst | 2 +- Documentation/driver-api/index.rst | 2 +- .../driver-api/{pinctl.rst => pin-control.rst} | 39 +- MAINTAINERS | 2 +- arch/arm64/Kconfig.platforms | 2 - drivers/firmware/xilinx/zynqmp.c | 114 ++ drivers/gpio/gpio-regmap.c | 5 + drivers/pinctrl/Kconfig | 21 +- drivers/pinctrl/Makefile | 1 + drivers/pinctrl/bcm/Kconfig | 62 + drivers/pinctrl/bcm/Makefile | 7 + drivers/pinctrl/bcm/pinctrl-bcm6318.c | 498 ++++++ drivers/pinctrl/bcm/pinctrl-bcm63268.c | 643 ++++++++ drivers/pinctrl/bcm/pinctrl-bcm6328.c | 404 +++++ drivers/pinctrl/bcm/pinctrl-bcm6358.c | 369 +++++ drivers/pinctrl/bcm/pinctrl-bcm6362.c | 617 ++++++++ drivers/pinctrl/bcm/pinctrl-bcm6368.c | 523 ++++++ drivers/pinctrl/bcm/pinctrl-bcm63xx.c | 109 ++ drivers/pinctrl/bcm/pinctrl-bcm63xx.h | 43 + drivers/pinctrl/core.c | 39 +- drivers/pinctrl/freescale/pinctrl-imx1.c | 1 + drivers/pinctrl/freescale/pinctrl-imx25.c | 3 +- drivers/pinctrl/freescale/pinctrl-imx27.c | 3 +- drivers/pinctrl/freescale/pinctrl-imx35.c | 1 + drivers/pinctrl/freescale/pinctrl-imx50.c | 3 +- drivers/pinctrl/freescale/pinctrl-imx51.c | 1 + drivers/pinctrl/freescale/pinctrl-imx53.c | 1 + drivers/pinctrl/freescale/pinctrl-imx6dl.c | 1 + drivers/pinctrl/freescale/pinctrl-imx6q.c | 1 + drivers/pinctrl/freescale/pinctrl-imx6sl.c | 1 + drivers/pinctrl/freescale/pinctrl-imx6sll.c | 2 +- drivers/pinctrl/freescale/pinctrl-imx6sx.c | 3 +- drivers/pinctrl/freescale/pinctrl-imx6ul.c | 3 +- drivers/pinctrl/freescale/pinctrl-imx7d.c | 3 +- drivers/pinctrl/freescale/pinctrl-imx7ulp.c | 2 +- drivers/pinctrl/freescale/pinctrl-imx8dxl.c | 2 +- drivers/pinctrl/freescale/pinctrl-imx8mm.c | 2 +- drivers/pinctrl/freescale/pinctrl-imx8mn.c | 2 +- drivers/pinctrl/freescale/pinctrl-imx8mp.c | 3 +- drivers/pinctrl/freescale/pinctrl-imx8mq.c | 2 +- drivers/pinctrl/freescale/pinctrl-imx8qm.c | 2 +- drivers/pinctrl/freescale/pinctrl-imx8qxp.c | 2 +- drivers/pinctrl/freescale/pinctrl-vf610.c | 1 + drivers/pinctrl/intel/pinctrl-intel.c | 7 +- drivers/pinctrl/mediatek/Kconfig | 6 + drivers/pinctrl/mediatek/Makefile | 1 + drivers/pinctrl/mediatek/pinctrl-moore.c | 2 + drivers/pinctrl/mediatek/pinctrl-mt8195.c | 850 ++++++++++ drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.c | 19 + drivers/pinctrl/mediatek/pinctrl-mtk-common-v2.h | 7 + drivers/pinctrl/mediatek/pinctrl-mtk-mt8195.h | 1669 ++++++++++++++++++++ drivers/pinctrl/mediatek/pinctrl-paris.c | 2 + drivers/pinctrl/mvebu/pinctrl-armada-cp110.c | 4 +- drivers/pinctrl/pinconf-generic.c | 6 +- drivers/pinctrl/pinconf.c | 4 +- drivers/pinctrl/pinctrl-at91-pio4.c | 8 +- drivers/pinctrl/pinctrl-equilibrium.c | 16 +- drivers/pinctrl/pinctrl-ingenic.c | 1649 +++++++++++++++++-- drivers/pinctrl/pinctrl-k210.c | 1 - drivers/pinctrl/pinctrl-lpc18xx.c | 4 +- drivers/pinctrl/pinctrl-rockchip.c | 956 +++++------ drivers/pinctrl/pinctrl-single.c | 71 +- drivers/pinctrl/pinctrl-zynq.c | 4 +- drivers/pinctrl/pinctrl-zynqmp.c | 906 +++++++++++ drivers/pinctrl/pinmux.c | 106 +- drivers/pinctrl/pxa/pinctrl-pxa2xx.c | 4 +- drivers/pinctrl/qcom/Kconfig | 4 +- drivers/pinctrl/qcom/pinctrl-sc7280.c | 24 + drivers/pinctrl/qcom/pinctrl-sc8180x.c | 123 +- drivers/pinctrl/qcom/pinctrl-sm8350.c | 21 + drivers/pinctrl/qcom/pinctrl-spmi-gpio.c | 7 + drivers/pinctrl/renesas/core.c | 20 - drivers/pinctrl/renesas/core.h | 8 - drivers/pinctrl/renesas/pfc-r8a73a4.c | 48 +- drivers/pinctrl/renesas/pfc-r8a7740.c | 46 +- drivers/pinctrl/renesas/pfc-r8a7778.c | 1 - drivers/pinctrl/renesas/pfc-r8a7791.c | 387 ++++- drivers/pinctrl/renesas/pfc-r8a7792.c | 1 - drivers/pinctrl/renesas/pfc-r8a77950.c | 1 - drivers/pinctrl/renesas/pfc-r8a77951.c | 31 +- drivers/pinctrl/renesas/pfc-r8a7796.c | 31 +- drivers/pinctrl/renesas/pfc-r8a77965.c | 35 +- drivers/pinctrl/renesas/pfc-r8a77970.c | 1 - drivers/pinctrl/renesas/pfc-r8a77980.c | 1 - drivers/pinctrl/renesas/pfc-r8a77990.c | 35 +- drivers/pinctrl/renesas/pfc-r8a77995.c | 1 - drivers/pinctrl/renesas/pfc-r8a779a0.c | 1 - drivers/pinctrl/renesas/pfc-sh73a0.c | 46 +- drivers/pinctrl/renesas/pinctrl.c | 109 +- drivers/pinctrl/renesas/sh_pfc.h | 24 +- drivers/pinctrl/samsung/pinctrl-exynos.c | 10 +- drivers/pinctrl/stm32/pinctrl-stm32.c | 18 +- drivers/pinctrl/ti/pinctrl-ti-iodelay.c | 7 +- drivers/soc/tegra/pmc.c | 4 +- include/dt-bindings/pinctrl/mt8195-pinfunc.h | 962 +++++++++++ include/dt-bindings/pinctrl/pinctrl-zynqmp.h | 19 + include/linux/firmware/xlnx-zynqmp.h | 90 ++ include/linux/gpio/driver.h | 9 + include/linux/gpio/regmap.h | 4 + include/linux/pinctrl/pinconf-generic.h | 10 +- kernel/irq/generic-chip.c | 1 + 121 files changed, 13669 insertions(+), 1076 deletions(-) delete mode 100644 Documentation/devicetree/bindings/gpio/brcm,bcm6345-gpio.txt create mode 100644 Documentation/devicetree/bindings/gpio/brcm,bcm6345-gpio.yaml create mode 100644 Documentation/devicetree/bindings/mfd/brcm,bcm6318-gpio-sysctl.yaml create mode 100644 Documentation/devicetree/bindings/mfd/brcm,bcm63268-gpio-sysctl.yaml create mode 100644 Documentation/devicetree/bindings/mfd/brcm,bcm6328-gpio-sysctl.yaml create mode 100644 Documentation/devicetree/bindings/mfd/brcm,bcm6358-gpio-sysctl.yaml create mode 100644 Documentation/devicetree/bindings/mfd/brcm,bcm6362-gpio-sysctl.yaml create mode 100644 Documentation/devicetree/bindings/mfd/brcm,bcm6368-gpio-sysctl.yaml create mode 100644 Documentation/devicetree/bindings/pinctrl/brcm,bcm6318-pinctrl.yaml create mode 100644 Documentation/devicetree/bindings/pinctrl/brcm,bcm63268-pinctrl.yaml create mode 100644 Documentation/devicetree/bindings/pinctrl/brcm,bcm6328-pinctrl.yaml create mode 100644 Documentation/devicetree/bindings/pinctrl/brcm,bcm6358-pinctrl.yaml create mode 100644 Documentation/devicetree/bindings/pinctrl/brcm,bcm6362-pinctrl.yaml create mode 100644 Documentation/devicetree/bindings/pinctrl/brcm,bcm6368-pinctrl.yaml create mode 100644 Documentation/devicetree/bindings/pinctrl/pinctrl-mt8195.yaml create mode 100644 Documentation/devicetree/bindings/pinctrl/xlnx,zynqmp-pinctrl.yaml rename Documentation/driver-api/{pinctl.rst => pin-control.rst} (97%) create mode 100644 drivers/pinctrl/bcm/pinctrl-bcm6318.c create mode 100644 drivers/pinctrl/bcm/pinctrl-bcm63268.c create mode 100644 drivers/pinctrl/bcm/pinctrl-bcm6328.c create mode 100644 drivers/pinctrl/bcm/pinctrl-bcm6358.c create mode 100644 drivers/pinctrl/bcm/pinctrl-bcm6362.c create mode 100644 drivers/pinctrl/bcm/pinctrl-bcm6368.c create mode 100644 drivers/pinctrl/bcm/pinctrl-bcm63xx.c create mode 100644 drivers/pinctrl/bcm/pinctrl-bcm63xx.h create mode 100644 drivers/pinctrl/mediatek/pinctrl-mt8195.c create mode 100644 drivers/pinctrl/mediatek/pinctrl-mtk-mt8195.h create mode 100644 drivers/pinctrl/pinctrl-zynqmp.c create mode 100644 include/dt-bindings/pinctrl/mt8195-pinfunc.h create mode 100644 include/dt-bindings/pinctrl/pinctrl-zynqmp.h