| # 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 || 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_AMD | 
 | 	tristate "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 | 
 | 	  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_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 yes to enable pinctrl and GPIO support for the DA9062 PMIC. | 
 |  | 
 | 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_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_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 | 
 | 	depends on OF | 
 | 	select PINMUX | 
 | 	select GENERIC_PINCONF | 
 | 	select GENERIC_IRQ_CHIP | 
 | 	select MFD_SYSCON | 
 | 	select OF_GPIO | 
 |  | 
 | 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/renesas/Kconfig" | 
 | source "drivers/pinctrl/samsung/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" | 
 | source "drivers/pinctrl/visconti/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 | 
 |  | 
 | 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 pinctrl driver is a pinctrl & GPIO driver for Intel Lightning | 
 | 	  Mountain network processor SoC that supports both the linux GPIO and pin | 
 | 	  control frameworks. It provides interfaces to setup pinmux, assign desired | 
 | 	  pin functions, configure GPIO attributes for LGM SoC pins. Pinmux and | 
 | 	  pinconf settings are retrieved from device tree. | 
 |  | 
 | endif |