Hi Linus, this is the bulk of the pin control changes for the v6.8 kernel cycle. For this kernel cycle I managed an immutable branch for the PEF2256 WAN framer that has some pin control portions. It should already have landed in your tree through the net pull request but here it is again. The most interesting is perhaps the Samsung Exynos subdrivers for the Tensor SoC used in Google Pixel 6 and the ExynosAuto subdriver for automotive. Along with the earlier merged Tesla FSD subdriver it shows some of the versatile uses of the Samsung Exynos silicon. It is also used in the latest version of Axis Communications ARTPEC chips so it is a very widely deployed SoC family. We also have the Intel Meteor Lake SoC which I think is for laptops. It's a pretty interesting chip with Xe graphics and integrated PCH. https://en.wikipedia.org/wiki/Meteor_Lake More details in the signed tag as always. Please pull it in! Yours, Linus Walleij The following changes since commit b85ea95d086471afb4ad062012a4d73cd328fa86: Linux 6.7-rc1 (2023-11-12 16:19:07 -0800) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl.git tags/pinctrl-v6.8-1 for you to fetch changes up to 1b09c2b8f849079220a9a9ddf961582f00bdc2c4: pinctrl: samsung: constify iomem pointers (2023-12-28 22:13:17 +0100) ---------------------------------------------------------------- This is the main pin control pull request for the v6.8 kernel series. Core changes: - A new PINCTRL_GROUP_DESC() infrastructure macro is added and used in different drivers, generic group description struct group_desc is now used all over the place. New drivers: - New driver for the Texas Instruments TPS6494 Power Management IC. - New driver for the Lantic PEF2256 framer pin multiplexer. This IC has some pins that can be reconfigured in different ways. The actual driver comes on an immutable branch with the net WAN parts, the IC is some latest-and-greatest serial line funnel for e.g. wireless access points. - New subdriver for the Samsung Exynos Auto V920 pin controller, used for automotive applications. - New subdriver for the Samsung "GS101" SoC pin controller, this is the Google "Tensor" SoC used in the Google Pixel 6. - New subdriver for the Intel Meteor Point SoC pin controller. - New subdriver for the Qualcomm SM8650 top level (TLMM) and LPASS pin controllers. - New subdriver for the Qualcomm X1E80100 top level (TLMM) pin controller. - New subdriver for the Qualcomm SM4450 top level (TLMM) pin controller. - The "single" pin controller now supports the Texas Instruments J7200 SoC. Improvements: - Intel has created a new (Intel-)generic pin controller driver that is now used by all contemporary Intel platforms. - Intel is now also making use of some cleanup helpers. - Enble 910 Ohm bias in the Intel Tangier driver. - The Samsung driver now suppors irq_set_affinity() in it's IRQ chip giving support for non wake up external gpio interrupts. ---------------------------------------------------------------- Andrew Davis (1): pinctrl: as3722: Use devm_gpiochip_add_data() to simplify remove path Andy Shevchenko (55): pinctrl: intel: Provide Intel pin control wide PM ops structure pinctrl: alderlake: Switch to use Intel pin control PM ops pinctrl: broxton: Switch to use Intel pin control PM ops pinctrl: cannonlake: Switch to use Intel pin control PM ops pinctrl: cedarfork: Switch to use Intel pin control PM ops pinctrl: denverton: Switch to use Intel pin control PM ops pinctrl: elkhartlake: Switch to use Intel pin control PM ops pinctrl: emmitsburg: Switch to use Intel pin control PM ops pinctrl: geminilake: Switch to use Intel pin control PM ops pinctrl: icelake: Switch to use Intel pin control PM ops pinctrl: jasperlake: Switch to use Intel pin control PM ops pinctrl: lakefield: Switch to use Intel pin control PM ops pinctrl: lewisburg: Switch to use Intel pin control PM ops pinctrl: meteorlake: Switch to use Intel pin control PM ops pinctrl: sunrisepoint: Switch to use Intel pin control PM ops pinctrl: tigerlake: Switch to use Intel pin control PM ops pinctrl: intel: Make PM ops functions static Merge patch series "pinctrl: intel: Use NOIRQ PM helper" pinctrl: tangier: Enable 910 Ohm bias pinctrl: tangier: Move default strength assignment to a switch-case pinctrl: intel: Move default strength assignment to a switch-case pinctrl: intel: Refactor intel_pinctrl_get_soc_data() pinctrl: intel: Revert "Unexport intel_pinctrl_probe()" pinctrl: intel: Add a generic Intel pin control platform driver pinctrl: lynxpoint: Simplify code with cleanup helpers pinctrl: baytrail: Fix types of config value in byt_pin_config_set() pinctrl: baytrail: Factor out byt_gpio_force_input_mode() pinctrl: baytrail: Move default strength assignment to a switch-case pinctrl: baytrail: Simplify code with cleanup helpers pinctrl: qcom: lpass-lpi: Replace kernel.h with what is being used pinctrl: qcom: lpass-lpi: Remove unused member in struct lpi_pingroup pinctrl: equilibrium: Unshadow error code of of_property_count_u32_elems() pinctrl: equilibrium: Use temporary variable to hold pins pinctrl: imx: Use temporary variable to hold pins pinctrl: Convert unsigned to unsigned int pinctrl: mediatek: Switch to use no-IRQ PM helpers pinctrl: renesas: Mark local variable with const in ->set_mux() pinctrl: core: Make pins const unsigned int pointer in struct group_desc pinctrl: equilibrium: Convert to use struct pingroup pinctrl: keembay: Convert to use struct pingroup pinctrl: nuvoton: Convert to use struct pingroup and PINCTRL_PINGROUP() pinctrl: core: Add a convenient define PINCTRL_GROUP_DESC() pinctrl: mediatek: Use C99 initializers in PINCTRL_PIN_GROUP() pinctrl: ingenic: Use C99 initializers in PINCTRL_PIN_GROUP() pinctrl: core: Embed struct pingroup into struct group_desc pinctrl: bcm: Convert to use grp member pinctrl: equilibrium: Convert to use grp member pinctrl: imx: Convert to use grp member pinctrl: ingenic: Convert to use grp member pinctrl: keembay: Convert to use grp member pinctrl: mediatek: Convert to use grp member pinctrl: renesas: Convert to use grp member pinctrl: starfive: Convert to use grp member pinctrl: core: Remove unused members from struct group_desc pinctrl: intel: Add Intel Meteor Point pin controller and GPIO support Bartosz Golaszewski (13): gpiolib: provide gpio_device_get_label() pinctrl: stop using gpiod_to_chip() pinctrl: don't include GPIOLIB private header gpiolib: provide gpiochip_dup_line_label() gpio: wm831x: use gpiochip_dup_line_label() gpio: wm8994: use gpiochip_dup_line_label() gpio: stmpe: use gpiochip_dup_line_label() pinctrl: abx500: use gpiochip_dup_line_label() pinctrl: nomadik: use gpiochip_dup_line_label() pinctrl: baytrail: use gpiochip_dup_line_label() pinctrl: sppctl: use gpiochip_dup_line_label() gpiolib: use gpiochip_dup_line_label() in for_each helpers gpiolib: remove gpiochip_is_requested() Claudiu Beznea (5): pinctrl: renesas: rzg2l: Move arg and index in the main function block pinctrl: renesas: rzg2l: Add pin configuration support for pinmux groups pinctrl: renesas: rzg2l: Add support to select power source for Ethernet pins pinctrl: renesas: rzg2l: Add output enable support pinctrl: renesas: rzg2l: Add input enable to the Ethernet pins Esteban Blanc (1): pinctrl: tps6594: Add driver for TPS6594 pinctrl and GPIOs Herve Codina (5): net: wan: Add framer framework support dt-bindings: net: Add the Lantiq PEF2256 E1/T1/J1 framer net: wan: framer: Add support for the Lantiq PEF2256 framer pinctrl: Add support for the Lantic PEF2256 pinmux MAINTAINERS: Add the Lantiq PEF2256 driver entry Jaewon Kim (3): dt-bindings: pinctrl: samsung: add exynosautov920 pinctrl: samsung: support ExynosAuto GPIO structure pinctrl: samsung: add exynosautov920 pinctrl Johan Hovold (1): dt-bindings: pinctrl: qcom,pmic-mpp: clean up example Krzysztof Kozlowski (19): dt-bindings: pinctrl: qcom,sm8650-lpass-lpi-pinctrl: add SM8650 LPASS pinctrl: qcom: sm8650-lpass-lpi: add SM8650 LPASS pinctrl: qcom: lpass-lpi: split slew rate set to separate function pinctrl: qcom: lpass-lpi: allow slew rate bit in main pin config register dt-bindings: pinctrl: samsung: add specific compatibles for existing SoC dt-bindings: pinctrl: samsung: use Exynos7 fallbacks for newer wake-up controllers dt-bindings: pinctrl: qcom,sm8550-lpass-lpi: add X1E80100 LPASS LPI dt-bindings: pinctrl: samsung: correct ExynosAutov920 wake-up compatibles dt-bindings: pinctrl: qcom: create common LPASS LPI schema dt-bindings: pinctrl: qcom,qdu1000-tlmm: restrict number of interrupts dt-bindings: pinctrl: qcom,sa8775p-tlmm: restrict number of interrupts dt-bindings: pinctrl: qcom,sdx75-tlmm: restrict number of interrupts dt-bindings: pinctrl: qcom,sm8550-tlmm: restrict number of interrupts dt-bindings: pinctrl: qcom,sm8650-tlmm: restrict number of interrupts dt-bindings: pinctrl: qcom,x1e80100-tlmm: restrict number of interrupts dt-bindings: pinctrl: qcom,ipq5018-tlmm: use common TLMM bindings dt-bindings: pinctrl: qcom: drop common properties dt-bindings: pinctrl: qcom: drop common properties and allow wakeup-parent pinctrl: samsung: constify iomem pointers Lad Prabhakar (1): pinctrl: renesas: rzg2l: Enhance driver to support interrupt affinity setting Linus Walleij (7): Merge tag 'gpio-device-get-label-for-v6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux into devel Merge tag 'renesas-pinctrl-for-v6.8-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers into devel Merge tag 'gpio-remove-gpiochip_is_requested-for-v6.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux into devel Merge tag 'pef2256-framer' into devel Merge tag 'renesas-pinctrl-for-v6.8-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/renesas-drivers into devel Merge tag 'samsung-pinctrl-6.8' of https://git.kernel.org/pub/scm/linux/kernel/git/pinctrl/samsung into devel Merge tag 'intel-pinctrl-v6.8-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pinctrl/intel into devel Michal Simek (1): dt-bindings: pinctrl: xilinx: Rename *gpio to *gpio-grp Neil Armstrong (3): dt-bindings: pinctrl: document the SM8650 Top Level Mode Multiplexer pinctrl: qcom: handle intr_target_reg wakeup_present/enable bits pinctrl: qcom: Introduce the SM8650 Top Level Mode Multiplexer driver Patrick Rudolph (1): pinctrl: cy8c95x0: Cache muxed registers Peter Griffin (3): dt-bindings: pinctrl: samsung: add google,gs101-pinctrl compatible dt-bindings: pinctrl: samsung: add gs101-wakeup-eint compatible pinctrl: samsung: Add gs101 SoC pinctrl configuration Petr Vorel (1): MAINTAINERS: Remove snawrocki's git tree Raag Jadav (3): pinctrl: intel: allow independent COMPILE_TEST pinctrl: intel: use the correct _PM_OPS() export macro pinctrl: tangier: simplify locking using cleanup helpers Rajendra Nayak (2): dt-bindings: pinctrl: qcom: Add X1E80100 pinctrl pinctrl: qcom: Add X1E80100 pinctrl driver Richard Acayan (1): pinctrl: qcom: fail to retrieve configuration from invalid pin groups Rob Herring (1): dt-bindings: pinctrl: renesas: Drop unneeded quotes Sergey Shtylyov (1): pinctrl: stm32: return errors from stm32_gpio_direction_output() Tengfei Fan (2): dt-bindings: pinctrl: qcom: Add SM4450 pinctrl pinctrl: qcom: sm4450: dd SM4450 pinctrl driver Thierry Reding (1): pinctrl: tegra: Display pin function in pinconf-groups Thomas Richard (2): dt-bindings: pinctrl: pinctrl-single: add ti,j7200-padconf compatible pinctrl: pinctrl-single: add ti,j7200-padconf compatible Tomer Maimon (1): pinctrl: npcm7xx: prevent glitch when setting the GPIO to output high Wang Jinchao (1): pinctrl: qcom: lpass-lpi: remove duplicated include Youngmin Nam (1): pinctrl: samsung: add irq_set_affinity() for non wake up external gpio interrupt .../devicetree/bindings/net/lantiq,pef2256.yaml | 213 +++ .../bindings/pinctrl/pinctrl-single.yaml | 1 + .../bindings/pinctrl/qcom,ipq5018-tlmm.yaml | 12 +- .../bindings/pinctrl/qcom,ipq5332-tlmm.yaml | 9 +- .../bindings/pinctrl/qcom,ipq6018-pinctrl.yaml | 8 +- .../bindings/pinctrl/qcom,ipq8074-pinctrl.yaml | 9 +- .../bindings/pinctrl/qcom,ipq9574-tlmm.yaml | 9 +- .../bindings/pinctrl/qcom,lpass-lpi-common.yaml | 75 + .../bindings/pinctrl/qcom,mdm9607-tlmm.yaml | 18 +- .../bindings/pinctrl/qcom,mdm9615-pinctrl.yaml | 18 +- .../bindings/pinctrl/qcom,msm8226-pinctrl.yaml | 8 +- .../bindings/pinctrl/qcom,msm8660-pinctrl.yaml | 9 +- .../bindings/pinctrl/qcom,msm8909-tlmm.yaml | 18 +- .../bindings/pinctrl/qcom,msm8916-pinctrl.yaml | 9 +- .../bindings/pinctrl/qcom,msm8953-pinctrl.yaml | 7 +- .../bindings/pinctrl/qcom,msm8960-pinctrl.yaml | 9 +- .../bindings/pinctrl/qcom,msm8974-pinctrl.yaml | 9 +- .../bindings/pinctrl/qcom,msm8976-pinctrl.yaml | 9 +- .../bindings/pinctrl/qcom,msm8994-pinctrl.yaml | 9 +- .../bindings/pinctrl/qcom,msm8996-pinctrl.yaml | 9 +- .../bindings/pinctrl/qcom,msm8998-pinctrl.yaml | 9 +- .../devicetree/bindings/pinctrl/qcom,pmic-mpp.yaml | 62 +- .../bindings/pinctrl/qcom,qcm2290-tlmm.yaml | 9 +- .../bindings/pinctrl/qcom,qcs404-pinctrl.yaml | 9 +- .../bindings/pinctrl/qcom,qdu1000-tlmm.yaml | 12 +- .../bindings/pinctrl/qcom,sa8775p-tlmm.yaml | 21 +- .../bindings/pinctrl/qcom,sc7180-pinctrl.yaml | 9 +- .../pinctrl/qcom,sc7280-lpass-lpi-pinctrl.yaml | 49 +- .../bindings/pinctrl/qcom,sc7280-pinctrl.yaml | 30 +- .../bindings/pinctrl/qcom,sc8180x-tlmm.yaml | 20 +- .../pinctrl/qcom,sc8280xp-lpass-lpi-pinctrl.yaml | 49 +- .../bindings/pinctrl/qcom,sc8280xp-tlmm.yaml | 18 +- .../bindings/pinctrl/qcom,sdm630-pinctrl.yaml | 10 +- .../bindings/pinctrl/qcom,sdm670-tlmm.yaml | 19 +- .../bindings/pinctrl/qcom,sdm845-pinctrl.yaml | 10 +- .../bindings/pinctrl/qcom,sdx55-pinctrl.yaml | 8 +- .../bindings/pinctrl/qcom,sdx65-tlmm.yaml | 8 +- .../bindings/pinctrl/qcom,sdx75-tlmm.yaml | 12 +- .../bindings/pinctrl/qcom,sm4450-tlmm.yaml | 151 ++ .../pinctrl/qcom,sm6115-lpass-lpi-pinctrl.yaml | 48 +- .../bindings/pinctrl/qcom,sm6115-tlmm.yaml | 8 +- .../bindings/pinctrl/qcom,sm6125-tlmm.yaml | 20 +- .../bindings/pinctrl/qcom,sm6350-tlmm.yaml | 20 +- .../bindings/pinctrl/qcom,sm6375-tlmm.yaml | 18 +- .../bindings/pinctrl/qcom,sm7150-tlmm.yaml | 9 +- .../bindings/pinctrl/qcom,sm8150-pinctrl.yaml | 9 +- .../pinctrl/qcom,sm8250-lpass-lpi-pinctrl.yaml | 49 +- .../bindings/pinctrl/qcom,sm8250-pinctrl.yaml | 9 +- .../pinctrl/qcom,sm8350-lpass-lpi-pinctrl.yaml | 49 +- .../bindings/pinctrl/qcom,sm8350-tlmm.yaml | 20 +- .../pinctrl/qcom,sm8450-lpass-lpi-pinctrl.yaml | 49 +- .../bindings/pinctrl/qcom,sm8450-tlmm.yaml | 20 +- .../pinctrl/qcom,sm8550-lpass-lpi-pinctrl.yaml | 55 +- .../bindings/pinctrl/qcom,sm8550-tlmm.yaml | 12 +- .../pinctrl/qcom,sm8650-lpass-lpi-pinctrl.yaml | 107 ++ .../bindings/pinctrl/qcom,sm8650-tlmm.yaml | 141 ++ .../bindings/pinctrl/qcom,x1e80100-tlmm.yaml | 137 ++ .../bindings/pinctrl/renesas,rza2-pinctrl.yaml | 2 +- .../pinctrl/samsung,pinctrl-wakeup-interrupt.yaml | 45 +- .../bindings/pinctrl/samsung,pinctrl.yaml | 5 +- .../bindings/pinctrl/xlnx,zynq-pinctrl.yaml | 2 +- .../bindings/pinctrl/xlnx,zynqmp-pinctrl.yaml | 2 +- MAINTAINERS | 9 +- drivers/gpio/gpio-stmpe.c | 6 +- drivers/gpio/gpio-wm831x.c | 14 +- drivers/gpio/gpio-wm8994.c | 13 +- drivers/gpio/gpiolib.c | 49 +- drivers/net/wan/Kconfig | 2 + drivers/net/wan/Makefile | 2 + drivers/net/wan/framer/Kconfig | 42 + drivers/net/wan/framer/Makefile | 7 + drivers/net/wan/framer/framer-core.c | 882 +++++++++ drivers/net/wan/framer/pef2256/Makefile | 8 + drivers/net/wan/framer/pef2256/pef2256-regs.h | 250 +++ drivers/net/wan/framer/pef2256/pef2256.c | 880 +++++++++ drivers/pinctrl/Kconfig | 31 + drivers/pinctrl/Makefile | 2 + drivers/pinctrl/bcm/pinctrl-ns.c | 4 +- drivers/pinctrl/core.c | 59 +- drivers/pinctrl/core.h | 33 +- drivers/pinctrl/devicetree.c | 8 +- drivers/pinctrl/freescale/pinctrl-imx.c | 44 +- drivers/pinctrl/intel/Kconfig | 21 +- drivers/pinctrl/intel/Makefile | 2 + drivers/pinctrl/intel/pinctrl-alderlake.c | 5 +- drivers/pinctrl/intel/pinctrl-baytrail.c | 240 +-- drivers/pinctrl/intel/pinctrl-broxton.c | 5 +- drivers/pinctrl/intel/pinctrl-cannonlake.c | 5 +- drivers/pinctrl/intel/pinctrl-cedarfork.c | 5 +- drivers/pinctrl/intel/pinctrl-denverton.c | 5 +- drivers/pinctrl/intel/pinctrl-elkhartlake.c | 5 +- drivers/pinctrl/intel/pinctrl-emmitsburg.c | 5 +- drivers/pinctrl/intel/pinctrl-geminilake.c | 5 +- drivers/pinctrl/intel/pinctrl-icelake.c | 5 +- drivers/pinctrl/intel/pinctrl-intel-platform.c | 225 +++ drivers/pinctrl/intel/pinctrl-intel.c | 32 +- drivers/pinctrl/intel/pinctrl-intel.h | 14 +- drivers/pinctrl/intel/pinctrl-jasperlake.c | 5 +- drivers/pinctrl/intel/pinctrl-lakefield.c | 5 +- drivers/pinctrl/intel/pinctrl-lewisburg.c | 5 +- drivers/pinctrl/intel/pinctrl-lynxpoint.c | 72 +- drivers/pinctrl/intel/pinctrl-meteorlake.c | 5 +- drivers/pinctrl/intel/pinctrl-meteorpoint.c | 465 +++++ drivers/pinctrl/intel/pinctrl-sunrisepoint.c | 5 +- drivers/pinctrl/intel/pinctrl-tangier.c | 32 +- drivers/pinctrl/intel/pinctrl-tigerlake.c | 5 +- drivers/pinctrl/mediatek/pinctrl-moore.c | 13 +- drivers/pinctrl/mediatek/pinctrl-moore.h | 10 +- drivers/pinctrl/mediatek/pinctrl-mt2701.c | 2 +- drivers/pinctrl/mediatek/pinctrl-mt2712.c | 2 +- drivers/pinctrl/mediatek/pinctrl-mt6795.c | 2 +- drivers/pinctrl/mediatek/pinctrl-mt8167.c | 2 +- drivers/pinctrl/mediatek/pinctrl-mt8173.c | 2 +- drivers/pinctrl/mediatek/pinctrl-mt8183.c | 2 +- drivers/pinctrl/mediatek/pinctrl-mt8186.c | 2 +- drivers/pinctrl/mediatek/pinctrl-mt8188.c | 2 +- drivers/pinctrl/mediatek/pinctrl-mt8192.c | 2 +- drivers/pinctrl/mediatek/pinctrl-mt8195.c | 2 +- drivers/pinctrl/mediatek/pinctrl-mt8365.c | 2 +- drivers/pinctrl/mediatek/pinctrl-mt8516.c | 2 +- drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 5 +- drivers/pinctrl/mediatek/pinctrl-paris.c | 5 +- drivers/pinctrl/mediatek/pinctrl-paris.h | 10 +- drivers/pinctrl/nomadik/pinctrl-abx500.c | 9 +- drivers/pinctrl/nomadik/pinctrl-nomadik.c | 6 +- drivers/pinctrl/nuvoton/pinctrl-npcm7xx.c | 2 +- drivers/pinctrl/nuvoton/pinctrl-wpcm450.c | 9 +- drivers/pinctrl/pinconf-generic.c | 16 +- drivers/pinctrl/pinconf.c | 14 +- drivers/pinctrl/pinconf.h | 10 +- drivers/pinctrl/pinctrl-as3722.c | 17 +- drivers/pinctrl/pinctrl-cy8c95x0.c | 458 +++-- drivers/pinctrl/pinctrl-equilibrium.c | 42 +- drivers/pinctrl/pinctrl-ingenic.c | 35 +- drivers/pinctrl/pinctrl-keembay.c | 6 +- drivers/pinctrl/pinctrl-pef2256.c | 358 ++++ drivers/pinctrl/pinctrl-single.c | 5 + drivers/pinctrl/pinctrl-tps6594.c | 373 ++++ drivers/pinctrl/pinctrl-utils.c | 26 +- drivers/pinctrl/pinctrl-utils.h | 18 +- drivers/pinctrl/pinmux.c | 36 +- drivers/pinctrl/pinmux.h | 20 +- drivers/pinctrl/qcom/Kconfig | 10 + drivers/pinctrl/qcom/Kconfig.msm | 26 + drivers/pinctrl/qcom/Makefile | 4 + drivers/pinctrl/qcom/pinctrl-lpass-lpi.c | 70 +- drivers/pinctrl/qcom/pinctrl-lpass-lpi.h | 13 +- drivers/pinctrl/qcom/pinctrl-msm.c | 46 + drivers/pinctrl/qcom/pinctrl-msm.h | 5 + drivers/pinctrl/qcom/pinctrl-sc7280-lpass-lpi.c | 16 - drivers/pinctrl/qcom/pinctrl-sc8280xp-lpass-lpi.c | 20 - drivers/pinctrl/qcom/pinctrl-sm4450.c | 1014 +++++++++++ drivers/pinctrl/qcom/pinctrl-sm6115-lpass-lpi.c | 20 - drivers/pinctrl/qcom/pinctrl-sm8250-lpass-lpi.c | 15 - drivers/pinctrl/qcom/pinctrl-sm8350-lpass-lpi.c | 16 - drivers/pinctrl/qcom/pinctrl-sm8450-lpass-lpi.c | 24 - drivers/pinctrl/qcom/pinctrl-sm8550-lpass-lpi.c | 24 - drivers/pinctrl/qcom/pinctrl-sm8650-lpass-lpi.c | 231 +++ drivers/pinctrl/qcom/pinctrl-sm8650.c | 1762 ++++++++++++++++++ drivers/pinctrl/qcom/pinctrl-x1e80100.c | 1876 ++++++++++++++++++++ drivers/pinctrl/renesas/pinctrl-rza1.c | 2 +- drivers/pinctrl/renesas/pinctrl-rza2.c | 10 +- drivers/pinctrl/renesas/pinctrl-rzg2l.c | 171 +- drivers/pinctrl/renesas/pinctrl-rzv2m.c | 6 +- drivers/pinctrl/samsung/pinctrl-exynos-arm64.c | 280 +++ drivers/pinctrl/samsung/pinctrl-exynos.c | 111 +- drivers/pinctrl/samsung/pinctrl-exynos.h | 25 + drivers/pinctrl/samsung/pinctrl-samsung.c | 11 +- drivers/pinctrl/samsung/pinctrl-samsung.h | 14 + drivers/pinctrl/starfive/pinctrl-starfive-jh7100.c | 8 +- drivers/pinctrl/starfive/pinctrl-starfive-jh7110.c | 8 +- drivers/pinctrl/stm32/pinctrl-stm32.c | 3 +- drivers/pinctrl/sunplus/sppctl.c | 10 +- drivers/pinctrl/tegra/pinctrl-tegra.c | 8 + include/linux/framer/framer-provider.h | 194 ++ include/linux/framer/framer.h | 205 +++ include/linux/framer/pef2256.h | 31 + include/linux/gpio/driver.h | 40 +- include/linux/pinctrl/machine.h | 6 +- include/linux/pinctrl/pinconf-generic.h | 10 +- include/linux/pinctrl/pinconf.h | 16 +- include/linux/pinctrl/pinctrl.h | 24 +- include/linux/pinctrl/pinmux.h | 22 +- 183 files changed, 11533 insertions(+), 1743 deletions(-) create mode 100644 Documentation/devicetree/bindings/net/lantiq,pef2256.yaml create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,lpass-lpi-common.yaml create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,sm4450-tlmm.yaml create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,sm8650-lpass-lpi-pinctrl.yaml create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,sm8650-tlmm.yaml create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,x1e80100-tlmm.yaml create mode 100644 drivers/net/wan/framer/Kconfig create mode 100644 drivers/net/wan/framer/Makefile create mode 100644 drivers/net/wan/framer/framer-core.c create mode 100644 drivers/net/wan/framer/pef2256/Makefile create mode 100644 drivers/net/wan/framer/pef2256/pef2256-regs.h create mode 100644 drivers/net/wan/framer/pef2256/pef2256.c create mode 100644 drivers/pinctrl/intel/pinctrl-intel-platform.c create mode 100644 drivers/pinctrl/intel/pinctrl-meteorpoint.c create mode 100644 drivers/pinctrl/pinctrl-pef2256.c create mode 100644 drivers/pinctrl/pinctrl-tps6594.c create mode 100644 drivers/pinctrl/qcom/pinctrl-sm4450.c create mode 100644 drivers/pinctrl/qcom/pinctrl-sm8650-lpass-lpi.c create mode 100644 drivers/pinctrl/qcom/pinctrl-sm8650.c create mode 100644 drivers/pinctrl/qcom/pinctrl-x1e80100.c create mode 100644 include/linux/framer/framer-provider.h create mode 100644 include/linux/framer/framer.h create mode 100644 include/linux/framer/pef2256.h