| # SPDX-License-Identifier: GPL-2.0-only |
| # |
| # PINCTRL infrastructure and drivers |
| # |
| |
| menuconfig PINCTRL |
| bool "Pin controllers" |
| |
| if PINCTRL |
| |
| config GENERIC_PINCTRL_GROUPS |
| bool |
| |
| config PINMUX |
| bool "Support pin multiplexing controllers" if COMPILE_TEST |
| |
| config GENERIC_PINMUX_FUNCTIONS |
| bool |
| select PINMUX |
| |
| config PINCONF |
| bool "Support pin configuration controllers" if COMPILE_TEST |
| |
| config GENERIC_PINCONF |
| bool |
| select PINCONF |
| |
| config DEBUG_PINCTRL |
| bool "Debug PINCTRL calls" |
| depends on DEBUG_KERNEL |
| help |
| Say Y here to add some extra checks and diagnostics to PINCTRL calls. |
| |
| config PINCTRL_ARTPEC6 |
| bool "Axis ARTPEC-6 pin controller driver" |
| depends on MACH_ARTPEC6 |
| select PINMUX |
| select GENERIC_PINCONF |
| help |
| This is the driver for the Axis ARTPEC-6 pin controller. This driver |
| supports pin function multiplexing as well as pin bias and drive |
| strength configuration. Device tree integration instructions can be |
| found in Documentation/devicetree/bindings/pinctrl/axis,artpec6-pinctrl.txt |
| |
| config PINCTRL_AS3722 |
| tristate "Pinctrl and GPIO driver for ams AS3722 PMIC" |
| depends on MFD_AS3722 && GPIOLIB |
| select PINMUX |
| select GENERIC_PINCONF |
| help |
| AS3722 device supports the configuration of GPIO pins for different |
| functionality. This driver supports the pinmux, push-pull and |
| open drain configuration for the GPIO pins of AS3722 devices. It also |
| supports the GPIO functionality through gpiolib. |
| |
| config PINCTRL_AXP209 |
| tristate "X-Powers AXP209 PMIC pinctrl and GPIO Support" |
| depends on MFD_AXP20X |
| depends on OF |
| select PINMUX |
| select GENERIC_PINCONF |
| select GPIOLIB |
| help |
| AXP PMICs provides multiple GPIOs that can be muxed for different |
| functions. This driver bundles a pinctrl driver to select the function |
| muxing and a GPIO driver to handle the GPIO when the GPIO function is |
| selected. |
| Say yes to enable pinctrl and GPIO support for the AXP209 PMIC |
| |
| config PINCTRL_AT91 |
| bool "AT91 pinctrl driver" |
| depends on OF |
| depends on ARCH_AT91 |
| select PINMUX |
| select PINCONF |
| select GPIOLIB |
| select OF_GPIO |
| select GPIOLIB_IRQCHIP |
| help |
| Say Y here to enable the at91 pinctrl driver |
| |
| config PINCTRL_AT91PIO4 |
| bool "AT91 PIO4 pinctrl driver" |
| depends on OF |
| depends on ARCH_AT91 |
| select PINMUX |
| select GENERIC_PINCONF |
| select GPIOLIB |
| select GPIOLIB_IRQCHIP |
| select OF_GPIO |
| help |
| Say Y here to enable the at91 pinctrl/gpio driver for Atmel PIO4 |
| controller available on sama5d2 SoC. |
| |
| config PINCTRL_AMD |
| tristate "AMD GPIO pin control" |
| depends on HAS_IOMEM |
| select GPIOLIB |
| select GPIOLIB_IRQCHIP |
| select PINMUX |
| select PINCONF |
| select GENERIC_PINCONF |
| help |
| driver for memory mapped GPIO functionality on AMD platforms |
| (x86 or arm).Most pins are usually muxed to some other |
| functionality by firmware,so only a small amount is available |
| for gpio use. |
| |
| Requires ACPI/FDT device enumeration code to set up a platform |
| device. |
| |
| config PINCTRL_BM1880 |
| bool "Bitmain BM1880 Pinctrl driver" |
| depends on OF && (ARCH_BITMAIN || COMPILE_TEST) |
| default ARCH_BITMAIN |
| select PINMUX |
| help |
| Pinctrl driver for Bitmain BM1880 SoC. |
| |
| config PINCTRL_DA850_PUPD |
| tristate "TI DA850/OMAP-L138/AM18XX pullup/pulldown groups" |
| depends on OF && (ARCH_DAVINCI_DA850 || COMPILE_TEST) |
| select PINCONF |
| select GENERIC_PINCONF |
| help |
| Driver for TI DA850/OMAP-L138/AM18XX pinconf. Used to control |
| pullup/pulldown pin groups. |
| |
| config PINCTRL_DIGICOLOR |
| bool |
| depends on OF && (ARCH_DIGICOLOR || COMPILE_TEST) |
| select PINMUX |
| select GENERIC_PINCONF |
| |
| config PINCTRL_LANTIQ |
| bool |
| depends on LANTIQ |
| select PINMUX |
| select PINCONF |
| |
| config PINCTRL_LPC18XX |
| bool "NXP LPC18XX/43XX SCU pinctrl driver" |
| depends on OF && (ARCH_LPC18XX || COMPILE_TEST) |
| default ARCH_LPC18XX |
| select PINMUX |
| select GENERIC_PINCONF |
| help |
| Pinctrl driver for NXP LPC18xx/43xx System Control Unit (SCU). |
| |
| config PINCTRL_FALCON |
| bool |
| depends on SOC_FALCON |
| depends on PINCTRL_LANTIQ |
| |
| config PINCTRL_GEMINI |
| bool |
| depends on ARCH_GEMINI |
| default ARCH_GEMINI |
| select PINMUX |
| select GENERIC_PINCONF |
| select MFD_SYSCON |
| |
| config PINCTRL_MCP23S08 |
| tristate "Microchip MCP23xxx I/O expander" |
| depends on SPI_MASTER || I2C |
| depends on I2C || I2C=n |
| select GPIOLIB |
| select GPIOLIB_IRQCHIP |
| select REGMAP_I2C if I2C |
| select REGMAP_SPI if SPI_MASTER |
| select GENERIC_PINCONF |
| help |
| SPI/I2C driver for Microchip MCP23S08 / MCP23S17 / MCP23S18 / |
| MCP23008 / MCP23017 / MCP23018 I/O expanders. |
| This provides a GPIO interface supporting inputs and outputs and a |
| corresponding interrupt-controller. |
| |
| config PINCTRL_OXNAS |
| bool |
| depends on OF |
| select PINMUX |
| select PINCONF |
| select GENERIC_PINCONF |
| select GPIOLIB |
| select OF_GPIO |
| select GPIOLIB_IRQCHIP |
| select MFD_SYSCON |
| |
| config PINCTRL_ROCKCHIP |
| bool |
| select PINMUX |
| select GENERIC_PINCONF |
| select GENERIC_IRQ_CHIP |
| select MFD_SYSCON |
| |
| config PINCTRL_RZA1 |
| bool "Renesas RZ/A1 gpio and pinctrl driver" |
| depends on OF |
| depends on ARCH_R7S72100 || COMPILE_TEST |
| select GPIOLIB |
| select GENERIC_PINCTRL_GROUPS |
| select GENERIC_PINMUX_FUNCTIONS |
| select GENERIC_PINCONF |
| help |
| This selects pinctrl driver for Renesas RZ/A1 platforms. |
| |
| config PINCTRL_RZA2 |
| bool "Renesas RZ/A2 gpio and pinctrl driver" |
| depends on OF |
| depends on ARCH_R7S9210 || COMPILE_TEST |
| select GPIOLIB |
| select GENERIC_PINCTRL_GROUPS |
| select GENERIC_PINMUX_FUNCTIONS |
| select GENERIC_PINCONF |
| help |
| This selects GPIO and pinctrl driver for Renesas RZ/A2 platforms. |
| |
| config PINCTRL_RZN1 |
| bool "Renesas RZ/N1 pinctrl driver" |
| depends on OF |
| depends on ARCH_RZN1 || COMPILE_TEST |
| select GENERIC_PINCTRL_GROUPS |
| select GENERIC_PINMUX_FUNCTIONS |
| select GENERIC_PINCONF |
| help |
| This selects pinctrl driver for Renesas RZ/N1 devices. |
| |
| config PINCTRL_SINGLE |
| tristate "One-register-per-pin type device tree based pinctrl driver" |
| depends on OF |
| depends on HAS_IOMEM |
| select GENERIC_PINCTRL_GROUPS |
| select GENERIC_PINMUX_FUNCTIONS |
| select GENERIC_PINCONF |
| help |
| This selects the device tree based generic pinctrl driver. |
| |
| config PINCTRL_SIRF |
| bool "CSR SiRFprimaII pin controller driver" |
| depends on ARCH_SIRF |
| select PINMUX |
| select PINCONF |
| select GENERIC_PINCONF |
| select GPIOLIB_IRQCHIP |
| |
| config PINCTRL_SX150X |
| bool "Semtech SX150x I2C GPIO expander pinctrl driver" |
| depends on I2C=y |
| select PINMUX |
| select PINCONF |
| select GENERIC_PINCONF |
| select GPIOLIB |
| select GPIOLIB_IRQCHIP |
| select REGMAP |
| help |
| Say yes here to provide support for Semtech SX150x-series I2C |
| GPIO expanders as pinctrl module. |
| Compatible models include: |
| - 8 bits: sx1508q, sx1502q |
| - 16 bits: sx1509q, sx1506q |
| |
| config PINCTRL_PISTACHIO |
| def_bool y if MACH_PISTACHIO |
| depends on GPIOLIB |
| select PINMUX |
| select GENERIC_PINCONF |
| select GPIOLIB_IRQCHIP |
| select OF_GPIO |
| |
| config PINCTRL_ST |
| bool |
| depends on OF |
| select PINMUX |
| select PINCONF |
| select GPIOLIB_IRQCHIP |
| |
| config PINCTRL_STMFX |
| tristate "STMicroelectronics STMFX GPIO expander pinctrl driver" |
| depends on I2C |
| depends on OF_GPIO |
| select GENERIC_PINCONF |
| select GPIOLIB_IRQCHIP |
| select MFD_STMFX |
| help |
| Driver for STMicroelectronics Multi-Function eXpander (STMFX) |
| GPIO expander. |
| This provides a GPIO interface supporting inputs and outputs, |
| and configuring push-pull, open-drain, and can also be used as |
| interrupt-controller. |
| |
| config PINCTRL_U300 |
| bool "U300 pin controller driver" |
| depends on ARCH_U300 |
| select PINMUX |
| select GENERIC_PINCONF |
| |
| config PINCTRL_COH901 |
| bool "ST-Ericsson U300 COH 901 335/571 GPIO" |
| depends on GPIOLIB && ARCH_U300 && PINCTRL_U300 |
| select GPIOLIB_IRQCHIP |
| help |
| Say yes here to support GPIO interface on ST-Ericsson U300. |
| The names of the two IP block variants supported are |
| COH 901 335 and COH 901 571/3. They contain 3, 5 or 7 |
| ports of 8 GPIO pins each. |
| |
| config PINCTRL_MAX77620 |
| tristate "MAX77620/MAX20024 Pincontrol support" |
| depends on MFD_MAX77620 && OF |
| select PINMUX |
| select GENERIC_PINCONF |
| help |
| Say Yes here to enable Pin control support for Maxim PMIC MAX77620. |
| This PMIC has 8 GPIO pins that work as GPIO as well as special |
| function in alternate mode. This driver also configure push-pull, |
| open drain, FPS slots etc. |
| |
| config PINCTRL_PALMAS |
| tristate "Pinctrl driver for the PALMAS Series MFD devices" |
| depends on OF && MFD_PALMAS |
| select PINMUX |
| select GENERIC_PINCONF |
| help |
| Palmas device supports the configuration of pins for different |
| functionality. This driver supports the pinmux, push-pull and |
| open drain configuration for the Palmas series devices like |
| TPS65913, TPS80036 etc. |
| |
| config PINCTRL_PIC32 |
| bool "Microchip PIC32 pin controller driver" |
| depends on OF |
| depends on MACH_PIC32 |
| select PINMUX |
| select GENERIC_PINCONF |
| select GPIOLIB_IRQCHIP |
| select OF_GPIO |
| help |
| This is the pin controller and gpio driver for Microchip PIC32 |
| microcontrollers. This option is selected automatically when specific |
| machine and arch are selected to build. |
| |
| config PINCTRL_PIC32MZDA |
| def_bool y if PIC32MZDA |
| select PINCTRL_PIC32 |
| |
| config PINCTRL_ZYNQ |
| bool "Pinctrl driver for Xilinx Zynq" |
| depends on ARCH_ZYNQ |
| select PINMUX |
| select GENERIC_PINCONF |
| help |
| This selects the pinctrl driver for Xilinx Zynq. |
| |
| config PINCTRL_INGENIC |
| bool "Pinctrl driver for the Ingenic JZ47xx SoCs" |
| default MACH_INGENIC |
| depends on OF |
| depends on MIPS || COMPILE_TEST |
| select GENERIC_PINCONF |
| select GENERIC_PINCTRL_GROUPS |
| select GENERIC_PINMUX_FUNCTIONS |
| select GPIOLIB |
| select GPIOLIB_IRQCHIP |
| select REGMAP_MMIO |
| |
| config PINCTRL_RK805 |
| tristate "Pinctrl and GPIO driver for RK805 PMIC" |
| depends on MFD_RK808 |
| select GPIOLIB |
| select PINMUX |
| select GENERIC_PINCONF |
| help |
| This selects the pinctrl driver for RK805. |
| |
| config PINCTRL_OCELOT |
| bool "Pinctrl driver for the Microsemi Ocelot and Jaguar2 SoCs" |
| depends on OF |
| depends on HAS_IOMEM |
| select GPIOLIB |
| select GPIOLIB_IRQCHIP |
| select GENERIC_PINCONF |
| select GENERIC_PINCTRL_GROUPS |
| select GENERIC_PINMUX_FUNCTIONS |
| select OF_GPIO |
| select REGMAP_MMIO |
| |
| source "drivers/pinctrl/actions/Kconfig" |
| source "drivers/pinctrl/aspeed/Kconfig" |
| source "drivers/pinctrl/bcm/Kconfig" |
| source "drivers/pinctrl/berlin/Kconfig" |
| source "drivers/pinctrl/freescale/Kconfig" |
| source "drivers/pinctrl/intel/Kconfig" |
| source "drivers/pinctrl/mvebu/Kconfig" |
| source "drivers/pinctrl/nomadik/Kconfig" |
| source "drivers/pinctrl/nuvoton/Kconfig" |
| source "drivers/pinctrl/pxa/Kconfig" |
| source "drivers/pinctrl/qcom/Kconfig" |
| source "drivers/pinctrl/samsung/Kconfig" |
| source "drivers/pinctrl/sh-pfc/Kconfig" |
| source "drivers/pinctrl/spear/Kconfig" |
| source "drivers/pinctrl/sprd/Kconfig" |
| source "drivers/pinctrl/stm32/Kconfig" |
| source "drivers/pinctrl/sunxi/Kconfig" |
| source "drivers/pinctrl/tegra/Kconfig" |
| source "drivers/pinctrl/ti/Kconfig" |
| source "drivers/pinctrl/uniphier/Kconfig" |
| source "drivers/pinctrl/vt8500/Kconfig" |
| source "drivers/pinctrl/mediatek/Kconfig" |
| source "drivers/pinctrl/zte/Kconfig" |
| source "drivers/pinctrl/meson/Kconfig" |
| source "drivers/pinctrl/cirrus/Kconfig" |
| |
| config PINCTRL_XWAY |
| bool |
| depends on SOC_TYPE_XWAY |
| depends on PINCTRL_LANTIQ |
| |
| config PINCTRL_TB10X |
| bool |
| depends on OF && ARC_PLAT_TB10X |
| select GPIOLIB |
| |
| endif |