Hi Linus, here is the big slew of changes in pin control for the v4.16 cycle. Like with GPIO it is actually a bit calm this time. The patches moving AXP209 from GPIO to pin control appear again (with the same hashes) and everything should be just smooth. Details are in the signed tag as usual. Please pull it in! Yours, Linus Walleij The following changes since commit 4fbd8d194f06c8a3fd2af1ce560ddb31f7ec8323: Linux 4.15-rc1 (2017-11-26 16:01:47 -0800) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl.git tags/pinctrl-v4.16-1 for you to fetch changes up to 02e389e63e3523828fc3832f27e0341885f60f6f: pinctrl: mcp23s08: fix irq setup order (2018-01-30 15:17:14 +0100) ---------------------------------------------------------------- This is the bulk of pin control changes for the v4.16 kernel cycle: Core changes: - After lengthy discussions and partly due to my ignorance, we have merged a patch making pinctrl_force_default() and pinctrl_force_sleep() reprogram the states into the hardware of any hogged pins, even if they are already in the desired state. This only apply to hogged pins since groups of pins owned by drivers need to be managed by each driver, lest they could not do things like runtime PM and put pins to sleeping state even if the system as a whole is not in sleep. New drivers: - New driver for the Microsemi Ocelot SoC. This is used in ethernet switches. - The X-Powers AXP209 GPIO driver was extended to also deal with pin control and moved over from the GPIO subsystem. This circuit is a mixed-mode integrated circuit which is part of AllWinner designs. - New subdriver for the Qualcomm MSM8998 SoC, core of a high end mobile devices (phones) chipset. - New subdriver for the ST Microelectronics STM32MP157 MPU and STM32F769 MCU from the STM32 family. - New subdriver for the MediaTek MT7622 SoC. This is used for routers, repeater, gateways and such network infrastructure. - New subdriver for the NXP (former Freescale) i.MX 6ULL. This SoC has multimedia features and target "smart devices", I guess in-car entertainment, in-flight entertainment, industrial control panels etc. General improvements: - Incremental improvements on the SH-PFC subdrivers for things like the CAN bus. - Enable the glitch filter on Baytrail GPIOs used for interrupts. - Proper handling of pins to GPIO ranges on the Semtec SX150X - An IRQ setup ordering fix on MCP23S08. - A good set of janitorial coding style fixes. ---------------------------------------------------------------- Alexandre Belloni (2): dt-bindings: pinctrl: Add bindings for Microsemi Ocelot pinctrl: Add Microsemi Ocelot SoC driver Alexandre Torgue (2): dt-bindings: pinctrl: stm32: fix copyright and adopt SPDX identifier pinctrl: stm32: add STM32F769 MCU support Andy Shevchenko (1): pinctrl: intel: merrifield: Introduce ACPI device table Bai Ping (1): pinctrl: imx6ul: add IOMUXC SNVS pinctrl driver for i.MX 6ULL Benjamin Gaignard (1): pinctrl: stm32: Fix copyright Biju Das (1): pinctrl: sh-pfc: r8a7794: Add i2c5 pin groups and function Brian Norris (1): pinctrl: rockchip: enable clock when reading pin direction register Colin Ian King (1): pinctrl: intel: ensure error return ret is initialized Dmitry Mastykin (1): pinctrl: mcp23s08: fix irq setup order Fabrizio Castro (6): pinctrl: sh-pfc: r8a7745: Add CAN[01] support pinctrl: sh-pfc: r8a7794: Add can_clk function pinctrl: sh-pfc: r8a7791: Add can_clk function pinctrl: sh-pfc: r8a7794: Add PWM[0123456] support pinctrl: sh-pfc: r8a7794: Add tpu groups and function pinctrl: sh-pfc: r8a7791: Add tpu groups and function Florian Fainelli (1): pinctrl: Really force states during suspend/resume Geert Uytterhoeven (1): pinctrl: sunxi: Use of_clk_get_parent_count() instead of open coding Hans de Goede (1): pinctrl: baytrail: Enable glitch filter for GPIOs used as interrupts Icenowy Zheng (1): pinctrl: sunxi: fix a typo when merging A20 support to A10 driver Jesse Chan (1): pinctrl: pxa: pxa2xx: add missing MODULE_DESCRIPTION/AUTHOR/LICENSE Julia Lawall (3): pinctrl: at91-pio4: account for const type of of_device_id.data pinctrl: axp209: account for const type of of_device_id.data pinctrl: armada-37xx: account for const type of of_device_id.data Khan, Imran (1): pinctrl: qcom: Add msm8998 pinctrl driver Krzysztof Kozlowski (1): pinctrl: samsung: Add SPDX license identifiers Ladislav Michl (1): pinctrl: Forward declare struct device Linus Walleij (5): pinctrl: gemini: Add two missing GPIO groups pinctrl: gemini: Support drive strength setting Merge branch 'ib-move-axp209' of /home/linus/linux-gpio into devel Merge tag 'sh-pfc-for-v4.16-tag1' of git://git.kernel.org/.../geert/renesas-drivers into devel Merge tag 'sh-pfc-for-v4.16-tag2' of git://git.kernel.org/.../geert/renesas-drivers into devel Ludovic Barre (2): devicetree: bindings: Document supported STM32 SoC family pinctrl: stm32: Add STM32MP157 MPU support Markus Elfring (26): pinctrl: mcp23s08: Improve unlocking of a mutex in mcp23s08_irq() pinctrl: mvebu: Delete an error message for a failed memory allocation in mvebu_pinctrl_probe() pinctrl/nomadik/abx500: Delete an error message for a failed memory allocation in abx500_gpio_probe() pinctrl/nomadik/abx500: Improve a size determination in abx500_gpio_probe() pinctrl: adi2: Delete an error message for a failed memory allocation in two functions pinctrl: adi2: Improve a size determination in two functions pinctrl: msm: Delete an error message for a failed memory allocation in msm_pinctrl_probe() pinctrl: at91: Delete an error message for a failed memory allocation in at91_pinctrl_mux_mask() pinctrl: palmas: Delete an error message for a failed memory allocation in palmas_pinctrl_probe() pinctrl: rockchip: Delete error messages for a failed memory allocation in two functions pinctrl: rockchip: Improve a size determination in rockchip_pinctrl_probe() pinctrl: rockchip: Fix a typo in four comment lines pinctrl: single: Delete an error message for a failed memory allocation in pcs_probe() pinctrl: single: Delete an unnecessary return statement in pcs_irq_chain_handler() pinctrl: tz1090: Delete an error message for a failed memory allocation in two functions pinctrl: tz1090-pdc: Delete an error message for a failed memory allocation in two functions pinctrl: utils: Delete an error message for a failed memory allocation in pinctrl_utils_add_map_configs() pinctrl: xway: Delete two error messages for a failed memory allocation in pinmux_xway_probe() pinctrl/spear/plgpio: Delete two error messages for a failed memory allocation in plgpio_probe() pinctrl: spear: Delete an error message for a failed memory allocation in spear_pinctrl_probe() pinctrl: tegra: Delete two error messages for a failed memory allocation in tegra_pinctrl_probe() pinctrl: vt8500: Delete an error message for a failed memory allocation in five functions pinctrl: mcp23s08: Combine two function calls into one in mcp23s08_dbg_show() pinctrl: abx500: Use seq_putc() in abx500_gpio_dbg_show() pinctrl: pinmux: Use seq_putc() in pinmux_pins_show() pinctrl: sprd: Use seq_putc() in sprd_pinconf_group_dbg_show() Masahiro Yamada (4): gpio: uniphier: fix mismatch between license text and MODULE_LICENSE dt-bindings: pinctrl: uniphier: add UniPhier pinctrl binding pinctrl: remove redundant mux_setting clear in pinmux_disable_setting() pinctrl: uniphier: refactor drive strength get/set functions Mika Westerberg (4): gpio / ACPI: Drop unnecessary ACPI GPIO to Linux GPIO translation pinctrl: intel: Allow custom GPIO base for pad groups pinctrl: cannonlake: Align GPIO number space with Windows pinctrl: intel: Initialize GPIO properly when used through irqchip Peter Rosin (3): pinctrl: sx150x: Unregister the pinctrl on release pinctrl: sx150x: Register pinctrl before adding the gpiochip pinctrl: sx150x: Add a static gpio/pinctrl pin range mapping Quentin Schulz (10): gpio: axp209: switch unsigned variables to unsigned int pinctrl: move gpio-axp209 to pinctrl pinctrl: axp209: add pinctrl features dt-bindings: gpio: gpio-axp209: add pinctrl features pinctrl: axp209: rename everything from gpio to pctl pinctrl: axp209: add programmable gpio_status_offset pinctrl: axp209: add programmable ADC muxing value pinctrl: axp209: add support for AXP813 GPIOs pinctrl: axp209: dereference pointer after it's been set pinctrl: axp209: add missing Kconfig dependencies Ramesh Shanmugasundaram (2): pinctrl: sh-pfc: r8a7795: Add CAN support pinctrl: sh-pfc: r8a7795: Add CAN FD support Sean Wang (6): dt-bindings: pinctrl: add bindings for MediaTek MT7622 SoC pinctrl: mediatek: cleanup for placing all drivers under the menu pinctrl: mediatek: add pinctrl driver for MT7622 SoC pinctrl: mediatek: update MAINTAINERS entry with MediaTek pinctrl driver pinctrl: mediatek: mt7622: fix potential uninitialized value being returned pinctrl: mediatek: mt7622: align error handling of mtk_hw_get_value call Sergei Shtylyov (2): pinctrl: sh-pfc: Add PORT_GP_CFG_{6|22}() helper macros pinctrl: sh-pfc: Add R8A77970 PFC support Stefan Agner (4): pinctrl: imx: use struct imx_pinctrl_soc_info as a const pinctrl: imx7d: simplify imx7d_pinctrl_probe pinctrl: imx: constify struct imx_pinctrl_soc_info pinctrl: imx7ulp: constify struct imx_cfg_params_decode Takeshi Kihara (6): pinctrl: sh-pfc: r8a7795: Add GP-1-28 port pin support pinctrl: sh-pfc: r8a7795-es1: Fix MOD_SEL1 bit[25:24] to 0x3 when using STP_ISEN_1_D pinctrl: sh-pfc: r8a7795: Fix to delete A20..A25 pins function definitions pinctrl: sh-pfc: r8a7796: Fix to delete A20..A25 pins function definitions pinctrl: sh-pfc: r8a7795: Rename RTS{0,1,3,4}# pin function definitions pinctrl: sh-pfc: r8a7796: Rename RTS{0,1,3,4}# pin function definitions Tony Lindgren (1): pinctrl: single: Remove invalid message Ulrich Hecht (3): pinctrl: sh-pfc: r8a77995: Add missing pins SCL0 and SDA0 to pinmux data pinctrl: sh-pfc: r8a77995: Add CAN support pinctrl: sh-pfc: r8a77995: Add CAN FD support Wei Yongjun (1): pinctrl: ingenic: Remove redundant dev_err call in ingenic_pinctrl_probe() Wolfram Sang (1): pinctrl: sh-pfc: r8a7795: Add SATA pins, groups, and functions Xingyu Chen (3): documentation: Add compatibles for Amlogic Meson AXG pin controllers pinctrl: meson-axg: Introduce a pinctrl pinmux ops for Meson-AXG SoC pinctrl: meson-axg: Add new pinctrl driver for Meson AXG SoC Yixun Lan (1): pinctrl: meson-axg: adjust spicc pin naming hao_zhang (1): pinctrl: sunxi-pinctrl: fix pin funtion can not be match correctly. Documentation/devicetree/bindings/arm/stm32.txt | 9 + .../devicetree/bindings/gpio/gpio-axp209.txt | 49 +- .../bindings/pinctrl/cortina,gemini-pinctrl.txt | 3 + .../bindings/pinctrl/fsl,imx6ul-pinctrl.txt | 3 +- .../devicetree/bindings/pinctrl/meson,pinctrl.txt | 2 + .../bindings/pinctrl/mscc,ocelot-pinctrl.txt | 39 + .../devicetree/bindings/pinctrl/pinctrl-mt7622.txt | 351 +++ .../bindings/pinctrl/qcom,msm8998-pinctrl.txt | 193 ++ .../bindings/pinctrl/renesas,pfc-pinctrl.txt | 1 + .../pinctrl/socionext,uniphier-pinctrl.txt | 27 + .../bindings/pinctrl/st,stm32-pinctrl.txt | 2 + MAINTAINERS | 11 + drivers/gpio/Kconfig | 6 - drivers/gpio/Makefile | 1 - drivers/gpio/gpio-axp209.c | 188 -- drivers/gpio/gpio-uniphier.c | 2 +- drivers/gpio/gpiolib-acpi.c | 75 +- drivers/pinctrl/Kconfig | 25 + drivers/pinctrl/Makefile | 4 +- drivers/pinctrl/core.c | 24 +- drivers/pinctrl/freescale/pinctrl-imx.c | 81 +- drivers/pinctrl/freescale/pinctrl-imx.h | 13 +- drivers/pinctrl/freescale/pinctrl-imx25.c | 2 +- drivers/pinctrl/freescale/pinctrl-imx35.c | 2 +- drivers/pinctrl/freescale/pinctrl-imx50.c | 2 +- drivers/pinctrl/freescale/pinctrl-imx51.c | 2 +- drivers/pinctrl/freescale/pinctrl-imx53.c | 2 +- drivers/pinctrl/freescale/pinctrl-imx6dl.c | 2 +- drivers/pinctrl/freescale/pinctrl-imx6q.c | 2 +- drivers/pinctrl/freescale/pinctrl-imx6sl.c | 2 +- drivers/pinctrl/freescale/pinctrl-imx6sx.c | 2 +- drivers/pinctrl/freescale/pinctrl-imx6ul.c | 52 +- drivers/pinctrl/freescale/pinctrl-imx7d.c | 10 +- drivers/pinctrl/freescale/pinctrl-imx7ulp.c | 7 +- drivers/pinctrl/freescale/pinctrl-vf610.c | 5 +- drivers/pinctrl/intel/pinctrl-baytrail.c | 6 + drivers/pinctrl/intel/pinctrl-cannonlake.c | 65 +- drivers/pinctrl/intel/pinctrl-cherryview.c | 59 +- drivers/pinctrl/intel/pinctrl-intel.c | 179 +- drivers/pinctrl/intel/pinctrl-intel.h | 3 + drivers/pinctrl/intel/pinctrl-merrifield.c | 7 + drivers/pinctrl/mediatek/Kconfig | 15 +- drivers/pinctrl/mediatek/Makefile | 3 +- drivers/pinctrl/mediatek/pinctrl-mt7622.c | 1597 ++++++++++++++ drivers/pinctrl/meson/Kconfig | 9 + drivers/pinctrl/meson/Makefile | 2 + drivers/pinctrl/meson/pinctrl-meson-axg-pmx.c | 118 + drivers/pinctrl/meson/pinctrl-meson-axg-pmx.h | 62 + drivers/pinctrl/meson/pinctrl-meson-axg.c | 975 ++++++++ drivers/pinctrl/meson/pinctrl-meson.h | 1 + drivers/pinctrl/mvebu/pinctrl-armada-37xx.c | 4 +- drivers/pinctrl/mvebu/pinctrl-mvebu.c | 5 +- drivers/pinctrl/nomadik/pinctrl-abx500.c | 10 +- drivers/pinctrl/pinctrl-adi2.c | 13 +- drivers/pinctrl/pinctrl-at91-pio4.c | 4 +- drivers/pinctrl/pinctrl-at91.c | 4 +- drivers/pinctrl/pinctrl-axp209.c | 478 ++++ drivers/pinctrl/pinctrl-gemini.c | 84 +- drivers/pinctrl/pinctrl-ingenic.c | 4 +- drivers/pinctrl/pinctrl-mcp23s08.c | 54 +- drivers/pinctrl/pinctrl-ocelot.c | 511 +++++ drivers/pinctrl/pinctrl-palmas.c | 4 +- drivers/pinctrl/pinctrl-rockchip.c | 31 +- drivers/pinctrl/pinctrl-single.c | 10 +- drivers/pinctrl/pinctrl-sx150x.c | 40 +- drivers/pinctrl/pinctrl-tz1090-pdc.c | 9 +- drivers/pinctrl/pinctrl-tz1090.c | 9 +- drivers/pinctrl/pinctrl-utils.c | 4 +- drivers/pinctrl/pinctrl-xway.c | 10 +- drivers/pinctrl/pinmux.c | 4 +- drivers/pinctrl/pxa/pinctrl-pxa2xx.c | 4 + drivers/pinctrl/qcom/Kconfig | 8 + drivers/pinctrl/qcom/Makefile | 1 + drivers/pinctrl/qcom/pinctrl-msm.c | 5 +- drivers/pinctrl/qcom/pinctrl-msm8998.c | 1590 +++++++++++++ drivers/pinctrl/samsung/Kconfig | 1 + drivers/pinctrl/samsung/pinctrl-exynos-arm.c | 33 +- drivers/pinctrl/samsung/pinctrl-exynos-arm64.c | 33 +- drivers/pinctrl/samsung/pinctrl-exynos.c | 33 +- drivers/pinctrl/samsung/pinctrl-exynos.h | 6 +- drivers/pinctrl/samsung/pinctrl-exynos5440.c | 21 +- drivers/pinctrl/samsung/pinctrl-s3c24xx.c | 23 +- drivers/pinctrl/samsung/pinctrl-s3c64xx.c | 27 +- drivers/pinctrl/samsung/pinctrl-samsung.c | 37 +- drivers/pinctrl/samsung/pinctrl-samsung.h | 6 +- drivers/pinctrl/sh-pfc/Kconfig | 5 + drivers/pinctrl/sh-pfc/Makefile | 1 + drivers/pinctrl/sh-pfc/core.c | 6 + drivers/pinctrl/sh-pfc/pfc-r8a7791.c | 62 +- drivers/pinctrl/sh-pfc/pfc-r8a7794.c | 473 ++++ drivers/pinctrl/sh-pfc/pfc-r8a7795-es1.c | 2 +- drivers/pinctrl/sh-pfc/pfc-r8a7795.c | 193 +- drivers/pinctrl/sh-pfc/pfc-r8a7796.c | 66 +- drivers/pinctrl/sh-pfc/pfc-r8a77970.c | 2329 ++++++++++++++++++++ drivers/pinctrl/sh-pfc/pfc-r8a77995.c | 88 + drivers/pinctrl/sh-pfc/sh_pfc.h | 17 +- drivers/pinctrl/spear/pinctrl-plgpio.c | 8 +- drivers/pinctrl/spear/pinctrl-spear.c | 4 +- drivers/pinctrl/sprd/pinctrl-sprd.c | 2 +- drivers/pinctrl/stm32/Kconfig | 12 + drivers/pinctrl/stm32/Makefile | 2 + drivers/pinctrl/stm32/pinctrl-stm32.c | 3 +- drivers/pinctrl/stm32/pinctrl-stm32.h | 3 +- drivers/pinctrl/stm32/pinctrl-stm32f429.c | 3 +- drivers/pinctrl/stm32/pinctrl-stm32f469.c | 6 +- drivers/pinctrl/stm32/pinctrl-stm32f746.c | 3 +- drivers/pinctrl/stm32/pinctrl-stm32f769.c | 1827 +++++++++++++++ drivers/pinctrl/stm32/pinctrl-stm32h743.c | 6 +- drivers/pinctrl/stm32/pinctrl-stm32mp157.c | 2188 ++++++++++++++++++ drivers/pinctrl/sunxi/pinctrl-sun4i-a10.c | 2 +- drivers/pinctrl/sunxi/pinctrl-sunxi.c | 7 +- drivers/pinctrl/tegra/pinctrl-tegra.c | 9 +- drivers/pinctrl/uniphier/pinctrl-uniphier-core.c | 176 +- drivers/pinctrl/vt8500/pinctrl-vt8500.c | 4 +- drivers/pinctrl/vt8500/pinctrl-wm8505.c | 4 +- drivers/pinctrl/vt8500/pinctrl-wm8650.c | 4 +- drivers/pinctrl/vt8500/pinctrl-wm8750.c | 4 +- drivers/pinctrl/vt8500/pinctrl-wm8850.c | 4 +- include/dt-bindings/gpio/meson-axg-gpio.h | 116 + include/dt-bindings/pinctrl/stm32-pinfunc.h | 6 + include/linux/pinctrl/devinfo.h | 2 + 121 files changed, 14122 insertions(+), 947 deletions(-) create mode 100644 Documentation/devicetree/bindings/arm/stm32.txt create mode 100644 Documentation/devicetree/bindings/pinctrl/mscc,ocelot-pinctrl.txt create mode 100644 Documentation/devicetree/bindings/pinctrl/pinctrl-mt7622.txt create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,msm8998-pinctrl.txt create mode 100644 Documentation/devicetree/bindings/pinctrl/socionext,uniphier-pinctrl.txt delete mode 100644 drivers/gpio/gpio-axp209.c create mode 100644 drivers/pinctrl/mediatek/pinctrl-mt7622.c create mode 100644 drivers/pinctrl/meson/pinctrl-meson-axg-pmx.c create mode 100644 drivers/pinctrl/meson/pinctrl-meson-axg-pmx.h create mode 100644 drivers/pinctrl/meson/pinctrl-meson-axg.c create mode 100644 drivers/pinctrl/pinctrl-axp209.c create mode 100644 drivers/pinctrl/pinctrl-ocelot.c create mode 100644 drivers/pinctrl/qcom/pinctrl-msm8998.c create mode 100644 drivers/pinctrl/sh-pfc/pfc-r8a77970.c create mode 100644 drivers/pinctrl/stm32/pinctrl-stm32f769.c create mode 100644 drivers/pinctrl/stm32/pinctrl-stm32mp157.c create mode 100644 include/dt-bindings/gpio/meson-axg-gpio.h -- To unsubscribe from this list: send the line "unsubscribe linux-gpio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html