# 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_AW9523
	tristate "Awinic AW9523/AW9523B I2C GPIO expander pinctrl driver"
	depends on OF && I2C
	select PINMUX
	select PINCONF
	select GENERIC_PINCONF
	select GPIOLIB
	select GPIOLIB_IRQCHIP
	select REGMAP
	select REGMAP_I2C
	help
	  The Awinic AW9523/AW9523B is a multi-function I2C GPIO
	  expander with PWM functionality. This driver bundles a
	  pinctrl driver to select the function muxing and a GPIO
	  driver to handle GPIO, when the GPIO function is selected.

	  Say yes to enable pinctrl and GPIO support for the AW9523(B).

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
