| # 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_AMD | |
| bool "AMD GPIO pin control" | |
| depends on HAS_IOMEM | |
| depends on ACPI || COMPILE_TEST | |
| select GPIOLIB | |
| select GPIOLIB_IRQCHIP | |
| select PINMUX | |
| select PINCONF | |
| select GENERIC_PINCONF | |
| help | |
| The driver for memory mapped GPIO functionality on AMD platforms | |
| (x86 or arm). Most of the 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_APPLE_GPIO | |
| tristate "Apple SoC GPIO pin controller driver" | |
| depends on ARCH_APPLE | |
| select PINMUX | |
| select GPIOLIB | |
| select GPIOLIB_IRQCHIP | |
| select GENERIC_PINCTRL_GROUPS | |
| select GENERIC_PINMUX_FUNCTIONS | |
| select OF_GPIO | |
| help | |
| This is the driver for the GPIO controller found on Apple ARM SoCs, | |
| including M1. | |
| This driver can also be built as a module. If so, the module | |
| will be called pinctrl-apple-gpio. | |
| 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_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 HAS_IOMEM | |
| depends on ARCH_AT91 || COMPILE_TEST | |
| 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_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 Y to enable pinctrl and GPIO support for the AXP209 PMIC. | |
| 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_CY8C95X0 | |
| tristate "Cypress CY8C95X0 I2C pinctrl and GPIO driver" | |
| depends on I2C | |
| select GPIOLIB | |
| select GPIOLIB_IRQCHIP | |
| select PINMUX | |
| select PINCONF | |
| select GENERIC_PINCONF | |
| select REGMAP_I2C | |
| help | |
| Support for 20/40/60 pin Cypress Cy8C95x0 pinctrl/gpio I2C expander. | |
| This driver can also be built as a module. If so, the module will be | |
| called pinctrl-cy8c95x0. | |
| config PINCTRL_DA850_PUPD | |
| tristate "TI DA850/OMAP-L138/AM18XX pull-up and pull-down 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 | |
| pull-up and pull-down pin groups. | |
| config PINCTRL_DA9062 | |
| tristate "Dialog Semiconductor DA9062 PMIC pinctrl and GPIO Support" | |
| depends on MFD_DA9062 | |
| select GPIOLIB | |
| help | |
| The Dialog DA9062 PMIC 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 Y to enable pinctrl and GPIO support for the DA9062 PMIC. | |
| config PINCTRL_DIGICOLOR | |
| bool | |
| depends on ARCH_DIGICOLOR || COMPILE_TEST | |
| select PINMUX | |
| select GENERIC_PINCONF | |
| config PINCTRL_EQUILIBRIUM | |
| tristate "Generic pinctrl and GPIO driver for Intel Lightning Mountain SoC" | |
| depends on OF && HAS_IOMEM | |
| depends on X86 || COMPILE_TEST | |
| select PINMUX | |
| select PINCONF | |
| select GPIOLIB | |
| select GPIO_GENERIC | |
| select GPIOLIB_IRQCHIP | |
| select GENERIC_PINCONF | |
| select GENERIC_PINCTRL_GROUPS | |
| select GENERIC_PINMUX_FUNCTIONS | |
| help | |
| Equilibrium driver is a pinctrl and GPIO driver for Intel Lightning | |
| Mountain network processor SoC that supports both the GPIO and pin | |
| control frameworks. It provides interfaces to setup pin muxing, assign | |
| desired pin functions, configure GPIO attributes for LGM SoC pins. | |
| Pin muxing and pin config settings are retrieved from device tree. | |
| config PINCTRL_GEMINI | |
| bool | |
| depends on ARCH_GEMINI | |
| default ARCH_GEMINI | |
| select PINMUX | |
| select GENERIC_PINCONF | |
| select MFD_SYSCON | |
| 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_K210 | |
| bool "Pinctrl driver for the Canaan Kendryte K210 SoC" | |
| depends on RISCV && SOC_CANAAN && OF | |
| select GENERIC_PINMUX_FUNCTIONS | |
| select GENERIC_PINCONF | |
| select GPIOLIB | |
| select OF_GPIO | |
| select REGMAP_MMIO | |
| default SOC_CANAAN | |
| help | |
| Add support for the Canaan Kendryte K210 RISC-V SOC Field | |
| Programmable IO Array (FPIOA) controller. | |
| config PINCTRL_KEEMBAY | |
| tristate "Pinctrl driver for Intel Keem Bay SoC" | |
| depends on ARCH_KEEMBAY || (ARM64 && COMPILE_TEST) | |
| depends on HAS_IOMEM | |
| select PINMUX | |
| select PINCONF | |
| select GENERIC_PINCONF | |
| select GENERIC_PINCTRL_GROUPS | |
| select GENERIC_PINMUX_FUNCTIONS | |
| select GPIOLIB | |
| select GPIOLIB_IRQCHIP | |
| select GPIO_GENERIC | |
| help | |
| This selects pin control driver for the Intel Keem Bay SoC. | |
| It provides pin config functions such as pull-up, pull-down, | |
| interrupt, drive strength, sec lock, Schmitt trigger, slew | |
| rate control and direction control. This module will be | |
| called as pinctrl-keembay. | |
| config PINCTRL_LANTIQ | |
| bool | |
| depends on LANTIQ | |
| select PINMUX | |
| select PINCONF | |
| config PINCTRL_FALCON | |
| bool | |
| depends on SOC_FALCON | |
| depends on PINCTRL_LANTIQ | |
| config PINCTRL_LOONGSON2 | |
| tristate "Pinctrl driver for the Loongson-2 SoC" | |
| depends on OF && (LOONGARCH || COMPILE_TEST) | |
| select PINMUX | |
| select GENERIC_PINCONF | |
| help | |
| This selects pin control driver for the Loongson-2 SoC. It | |
| provides pin config functions multiplexing. GPIO pin pull-up, | |
| pull-down functions are not supported. Say yes to enable | |
| pinctrl for Loongson-2 SoC. | |
| config PINCTRL_XWAY | |
| bool | |
| depends on SOC_TYPE_XWAY | |
| depends on PINCTRL_LANTIQ | |
| 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_MAX77620 | |
| tristate "MAX77620/MAX20024 Pincontrol support" | |
| depends on MFD_MAX77620 && OF | |
| select PINMUX | |
| select GENERIC_PINCONF | |
| help | |
| Say Y here to enable Pin control support for Maxim MAX77620 PMIC. | |
| 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_MCP23S08_I2C | |
| tristate | |
| select REGMAP_I2C | |
| config PINCTRL_MCP23S08_SPI | |
| tristate | |
| select REGMAP_SPI | |
| config PINCTRL_MCP23S08 | |
| tristate "Microchip MCP23xxx I/O expander" | |
| depends on SPI_MASTER || I2C | |
| select GPIOLIB | |
| select GPIOLIB_IRQCHIP | |
| select GENERIC_PINCONF | |
| select PINCTRL_MCP23S08_I2C if I2C | |
| select PINCTRL_MCP23S08_SPI if SPI_MASTER | |
| 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_MICROCHIP_SGPIO | |
| tristate "Pinctrl driver for Microsemi/Microchip Serial GPIO" | |
| 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 | |
| help | |
| Support for the serial GPIO interface used on Microsemi and | |
| Microchip SoCs. By using a serial interface, the SIO | |
| controller significantly extends the number of available | |
| GPIOs with a minimum number of additional pins on the | |
| device. The primary purpose of the SIO controller is to | |
| connect control signals from SFP modules and to act as an | |
| LED controller. | |
| If compiled as a module, the module name will be | |
| pinctrl-microchip-sgpio. | |
| config PINCTRL_OCELOT | |
| tristate "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 | |
| help | |
| Support for the internal GPIO interfaces on Microsemi Ocelot and | |
| Jaguar2 SoCs. | |
| If conpiled as a module, the module name will be pinctrl-ocelot. | |
| 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_PEF2256 | |
| tristate "Lantiq PEF2256 (FALC56) pin controller driver" | |
| depends on OF && FRAMER_PEF2256 | |
| select PINMUX | |
| select PINCONF | |
| select GENERIC_PINCONF | |
| help | |
| This option enables the pin controller support for the Lantiq PEF2256 | |
| framer, also known as FALC56. | |
| If unsure, say N. | |
| To compile this driver as a module, choose M here: the | |
| module will be called pinctrl-pef2256. | |
| 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_PISTACHIO | |
| bool "IMG Pistachio SoC pinctrl driver" | |
| depends on OF && (MIPS || COMPILE_TEST) | |
| depends on GPIOLIB | |
| select PINMUX | |
| select GENERIC_PINCONF | |
| select GPIOLIB_IRQCHIP | |
| select OF_GPIO | |
| help | |
| This support pinctrl and GPIO driver for IMG Pistachio SoC. | |
| config PINCTRL_RK805 | |
| tristate "Pinctrl and GPIO driver for RK805 PMIC" | |
| depends on MFD_RK8XX | |
| select GPIOLIB | |
| select PINMUX | |
| select GENERIC_PINCONF | |
| help | |
| This selects the pinctrl driver for RK805. | |
| config PINCTRL_ROCKCHIP | |
| tristate "Rockchip gpio and pinctrl driver" | |
| depends on ARCH_ROCKCHIP || COMPILE_TEST | |
| depends on OF | |
| select GPIOLIB | |
| select PINMUX | |
| select GENERIC_PINCONF | |
| select GENERIC_IRQ_CHIP | |
| select MFD_SYSCON | |
| select OF_GPIO | |
| default ARCH_ROCKCHIP | |
| help | |
| This support pinctrl and GPIO driver for Rockchip SoCs. | |
| 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_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_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 Y 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_TB10X | |
| bool | |
| depends on OF && ARC_PLAT_TB10X | |
| select GPIOLIB | |
| config PINCTRL_TPS6594 | |
| tristate "Pinctrl and GPIO driver for TI TPS6594 PMIC" | |
| depends on OF && MFD_TPS6594 | |
| default MFD_TPS6594 | |
| select PINMUX | |
| select GPIOLIB | |
| select REGMAP | |
| select GPIO_REGMAP | |
| select GENERIC_PINCONF | |
| help | |
| Say Y to select the pinmuxing and GPIOs driver for the TPS6594 | |
| PMICs chip family. | |
| This driver can also be built as a module | |
| called tps6594-pinctrl. | |
| 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_ZYNQMP | |
| tristate "Pinctrl driver for Xilinx ZynqMP" | |
| depends on ZYNQMP_FIRMWARE | |
| select PINMUX | |
| select GENERIC_PINCONF | |
| default ZYNQMP_FIRMWARE | |
| help | |
| This selects the pinctrl driver for Xilinx ZynqMP platform. | |
| This driver will query the pin information from the firmware | |
| and allow configuring the pins. | |
| Configuration can include the mux function to select on those | |
| pin(s)/group(s), and various pin configuration parameters | |
| such as pull-up, slew rate, etc. | |
| This driver can also be built as a module. If so, the module | |
| will be called pinctrl-zynqmp. | |
| config PINCTRL_MLXBF3 | |
| tristate "NVIDIA BlueField-3 SoC Pinctrl driver" | |
| depends on (MELLANOX_PLATFORM && ARM64) || COMPILE_TEST | |
| select PINMUX | |
| select GPIOLIB | |
| select GPIOLIB_IRQCHIP | |
| help | |
| Say Y to select the pinctrl driver for BlueField-3 SoCs. | |
| This pin controller allows selecting the mux function for | |
| each pin. This driver can also be built as a module called | |
| pinctrl-mlxbf3. | |
| source "drivers/pinctrl/actions/Kconfig" | |
| source "drivers/pinctrl/aspeed/Kconfig" | |
| source "drivers/pinctrl/bcm/Kconfig" | |
| source "drivers/pinctrl/berlin/Kconfig" | |
| source "drivers/pinctrl/cirrus/Kconfig" | |
| source "drivers/pinctrl/freescale/Kconfig" | |
| source "drivers/pinctrl/intel/Kconfig" | |
| source "drivers/pinctrl/mediatek/Kconfig" | |
| source "drivers/pinctrl/meson/Kconfig" | |
| source "drivers/pinctrl/mvebu/Kconfig" | |
| source "drivers/pinctrl/nomadik/Kconfig" | |
| source "drivers/pinctrl/nuvoton/Kconfig" | |
| source "drivers/pinctrl/nxp/Kconfig" | |
| source "drivers/pinctrl/pxa/Kconfig" | |
| source "drivers/pinctrl/qcom/Kconfig" | |
| source "drivers/pinctrl/realtek/Kconfig" | |
| source "drivers/pinctrl/renesas/Kconfig" | |
| source "drivers/pinctrl/samsung/Kconfig" | |
| source "drivers/pinctrl/spear/Kconfig" | |
| source "drivers/pinctrl/sprd/Kconfig" | |
| source "drivers/pinctrl/starfive/Kconfig" | |
| source "drivers/pinctrl/stm32/Kconfig" | |
| source "drivers/pinctrl/sunplus/Kconfig" | |
| source "drivers/pinctrl/sunxi/Kconfig" | |
| source "drivers/pinctrl/tegra/Kconfig" | |
| source "drivers/pinctrl/ti/Kconfig" | |
| source "drivers/pinctrl/uniphier/Kconfig" | |
| source "drivers/pinctrl/visconti/Kconfig" | |
| source "drivers/pinctrl/vt8500/Kconfig" | |
| endif |