162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci#
362306a36Sopenharmony_ci# PINCTRL infrastructure and drivers
462306a36Sopenharmony_ci#
562306a36Sopenharmony_ci
662306a36Sopenharmony_cimenuconfig PINCTRL
762306a36Sopenharmony_ci	bool "Pin controllers"
862306a36Sopenharmony_ci
962306a36Sopenharmony_ciif PINCTRL
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ciconfig GENERIC_PINCTRL_GROUPS
1262306a36Sopenharmony_ci	bool
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ciconfig PINMUX
1562306a36Sopenharmony_ci	bool "Support pin multiplexing controllers" if COMPILE_TEST
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ciconfig GENERIC_PINMUX_FUNCTIONS
1862306a36Sopenharmony_ci	bool
1962306a36Sopenharmony_ci	select PINMUX
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ciconfig PINCONF
2262306a36Sopenharmony_ci	bool "Support pin configuration controllers" if COMPILE_TEST
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ciconfig GENERIC_PINCONF
2562306a36Sopenharmony_ci	bool
2662306a36Sopenharmony_ci	select PINCONF
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ciconfig DEBUG_PINCTRL
2962306a36Sopenharmony_ci	bool "Debug PINCTRL calls"
3062306a36Sopenharmony_ci	depends on DEBUG_KERNEL
3162306a36Sopenharmony_ci	help
3262306a36Sopenharmony_ci	  Say Y here to add some extra checks and diagnostics to PINCTRL calls.
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ciconfig PINCTRL_AMD
3562306a36Sopenharmony_ci	bool "AMD GPIO pin control"
3662306a36Sopenharmony_ci	depends on HAS_IOMEM
3762306a36Sopenharmony_ci	depends on ACPI || COMPILE_TEST
3862306a36Sopenharmony_ci	select GPIOLIB
3962306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
4062306a36Sopenharmony_ci	select PINMUX
4162306a36Sopenharmony_ci	select PINCONF
4262306a36Sopenharmony_ci	select GENERIC_PINCONF
4362306a36Sopenharmony_ci	help
4462306a36Sopenharmony_ci	  The driver for memory mapped GPIO functionality on AMD platforms
4562306a36Sopenharmony_ci	  (x86 or arm). Most of the pins are usually muxed to some other
4662306a36Sopenharmony_ci	  functionality by firmware, so only a small amount is available
4762306a36Sopenharmony_ci	  for GPIO use.
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci	  Requires ACPI/FDT device enumeration code to set up a platform
5062306a36Sopenharmony_ci	  device.
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ciconfig PINCTRL_APPLE_GPIO
5362306a36Sopenharmony_ci	tristate "Apple SoC GPIO pin controller driver"
5462306a36Sopenharmony_ci	depends on ARCH_APPLE
5562306a36Sopenharmony_ci	select PINMUX
5662306a36Sopenharmony_ci	select GPIOLIB
5762306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
5862306a36Sopenharmony_ci	select GENERIC_PINCTRL_GROUPS
5962306a36Sopenharmony_ci	select GENERIC_PINMUX_FUNCTIONS
6062306a36Sopenharmony_ci	select OF_GPIO
6162306a36Sopenharmony_ci	help
6262306a36Sopenharmony_ci	  This is the driver for the GPIO controller found on Apple ARM SoCs,
6362306a36Sopenharmony_ci	  including M1.
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_ci	  This driver can also be built as a module. If so, the module
6662306a36Sopenharmony_ci	  will be called pinctrl-apple-gpio.
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_ciconfig PINCTRL_ARTPEC6
6962306a36Sopenharmony_ci	bool "Axis ARTPEC-6 pin controller driver"
7062306a36Sopenharmony_ci	depends on MACH_ARTPEC6
7162306a36Sopenharmony_ci	select PINMUX
7262306a36Sopenharmony_ci	select GENERIC_PINCONF
7362306a36Sopenharmony_ci	help
7462306a36Sopenharmony_ci	  This is the driver for the Axis ARTPEC-6 pin controller. This driver
7562306a36Sopenharmony_ci	  supports pin function multiplexing as well as pin bias and drive
7662306a36Sopenharmony_ci	  strength configuration. Device tree integration instructions can be
7762306a36Sopenharmony_ci	  found in Documentation/devicetree/bindings/pinctrl/axis,artpec6-pinctrl.txt
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ciconfig PINCTRL_AS3722
8062306a36Sopenharmony_ci	tristate "Pinctrl and GPIO driver for ams AS3722 PMIC"
8162306a36Sopenharmony_ci	depends on MFD_AS3722 && GPIOLIB
8262306a36Sopenharmony_ci	select PINMUX
8362306a36Sopenharmony_ci	select GENERIC_PINCONF
8462306a36Sopenharmony_ci	help
8562306a36Sopenharmony_ci	  AS3722 device supports the configuration of GPIO pins for different
8662306a36Sopenharmony_ci	  functionality. This driver supports the pinmux, push-pull and
8762306a36Sopenharmony_ci	  open drain configuration for the GPIO pins of AS3722 devices. It also
8862306a36Sopenharmony_ci	  supports the GPIO functionality through gpiolib.
8962306a36Sopenharmony_ci
9062306a36Sopenharmony_ciconfig PINCTRL_AT91
9162306a36Sopenharmony_ci	bool "AT91 pinctrl driver"
9262306a36Sopenharmony_ci	depends on OF
9362306a36Sopenharmony_ci	depends on ARCH_AT91
9462306a36Sopenharmony_ci	select PINMUX
9562306a36Sopenharmony_ci	select PINCONF
9662306a36Sopenharmony_ci	select GPIOLIB
9762306a36Sopenharmony_ci	select OF_GPIO
9862306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
9962306a36Sopenharmony_ci	help
10062306a36Sopenharmony_ci	  Say Y here to enable the at91 pinctrl driver
10162306a36Sopenharmony_ci
10262306a36Sopenharmony_ciconfig PINCTRL_AT91PIO4
10362306a36Sopenharmony_ci	bool "AT91 PIO4 pinctrl driver"
10462306a36Sopenharmony_ci	depends on OF
10562306a36Sopenharmony_ci	depends on HAS_IOMEM
10662306a36Sopenharmony_ci	depends on ARCH_AT91 || COMPILE_TEST
10762306a36Sopenharmony_ci	select PINMUX
10862306a36Sopenharmony_ci	select GENERIC_PINCONF
10962306a36Sopenharmony_ci	select GPIOLIB
11062306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
11162306a36Sopenharmony_ci	select OF_GPIO
11262306a36Sopenharmony_ci	help
11362306a36Sopenharmony_ci	  Say Y here to enable the at91 pinctrl/gpio driver for Atmel PIO4
11462306a36Sopenharmony_ci	  controller available on sama5d2 SoC.
11562306a36Sopenharmony_ci
11662306a36Sopenharmony_ciconfig PINCTRL_AXP209
11762306a36Sopenharmony_ci	tristate "X-Powers AXP209 PMIC pinctrl and GPIO Support"
11862306a36Sopenharmony_ci	depends on MFD_AXP20X
11962306a36Sopenharmony_ci	depends on OF
12062306a36Sopenharmony_ci	select PINMUX
12162306a36Sopenharmony_ci	select GENERIC_PINCONF
12262306a36Sopenharmony_ci	select GPIOLIB
12362306a36Sopenharmony_ci	help
12462306a36Sopenharmony_ci	  AXP PMICs provides multiple GPIOs that can be muxed for different
12562306a36Sopenharmony_ci	  functions. This driver bundles a pinctrl driver to select the function
12662306a36Sopenharmony_ci	  muxing and a GPIO driver to handle the GPIO when the GPIO function is
12762306a36Sopenharmony_ci	  selected.
12862306a36Sopenharmony_ci	  Say Y to enable pinctrl and GPIO support for the AXP209 PMIC.
12962306a36Sopenharmony_ci
13062306a36Sopenharmony_ciconfig PINCTRL_BM1880
13162306a36Sopenharmony_ci	bool "Bitmain BM1880 Pinctrl driver"
13262306a36Sopenharmony_ci	depends on OF && (ARCH_BITMAIN || COMPILE_TEST)
13362306a36Sopenharmony_ci	default ARCH_BITMAIN
13462306a36Sopenharmony_ci	select PINMUX
13562306a36Sopenharmony_ci	help
13662306a36Sopenharmony_ci	  Pinctrl driver for Bitmain BM1880 SoC.
13762306a36Sopenharmony_ci
13862306a36Sopenharmony_ciconfig PINCTRL_CY8C95X0
13962306a36Sopenharmony_ci	tristate "Cypress CY8C95X0 I2C pinctrl and GPIO driver"
14062306a36Sopenharmony_ci	depends on I2C
14162306a36Sopenharmony_ci	select GPIOLIB
14262306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
14362306a36Sopenharmony_ci	select PINMUX
14462306a36Sopenharmony_ci	select PINCONF
14562306a36Sopenharmony_ci	select GENERIC_PINCONF
14662306a36Sopenharmony_ci	select REGMAP_I2C
14762306a36Sopenharmony_ci	help
14862306a36Sopenharmony_ci	  Support for 20/40/60 pin Cypress Cy8C95x0 pinctrl/gpio I2C expander.
14962306a36Sopenharmony_ci	  This driver can also be built as a module. If so, the module will be
15062306a36Sopenharmony_ci	  called pinctrl-cy8c95x0.
15162306a36Sopenharmony_ci
15262306a36Sopenharmony_ciconfig PINCTRL_DA850_PUPD
15362306a36Sopenharmony_ci	tristate "TI DA850/OMAP-L138/AM18XX pull-up and pull-down groups"
15462306a36Sopenharmony_ci	depends on OF && (ARCH_DAVINCI_DA850 || COMPILE_TEST)
15562306a36Sopenharmony_ci	select PINCONF
15662306a36Sopenharmony_ci	select GENERIC_PINCONF
15762306a36Sopenharmony_ci	help
15862306a36Sopenharmony_ci	  Driver for TI DA850/OMAP-L138/AM18XX pinconf. Used to control
15962306a36Sopenharmony_ci	  pull-up and pull-down pin groups.
16062306a36Sopenharmony_ci
16162306a36Sopenharmony_ciconfig PINCTRL_DA9062
16262306a36Sopenharmony_ci	tristate "Dialog Semiconductor DA9062 PMIC pinctrl and GPIO Support"
16362306a36Sopenharmony_ci	depends on MFD_DA9062
16462306a36Sopenharmony_ci	select GPIOLIB
16562306a36Sopenharmony_ci	help
16662306a36Sopenharmony_ci	  The Dialog DA9062 PMIC provides multiple GPIOs that can be muxed for
16762306a36Sopenharmony_ci	  different functions. This driver bundles a pinctrl driver to select the
16862306a36Sopenharmony_ci	  function muxing and a GPIO driver to handle the GPIO when the GPIO
16962306a36Sopenharmony_ci	  function is selected.
17062306a36Sopenharmony_ci
17162306a36Sopenharmony_ci	  Say Y to enable pinctrl and GPIO support for the DA9062 PMIC.
17262306a36Sopenharmony_ci
17362306a36Sopenharmony_ciconfig PINCTRL_DIGICOLOR
17462306a36Sopenharmony_ci	bool
17562306a36Sopenharmony_ci	depends on ARCH_DIGICOLOR || COMPILE_TEST
17662306a36Sopenharmony_ci	select PINMUX
17762306a36Sopenharmony_ci	select GENERIC_PINCONF
17862306a36Sopenharmony_ci
17962306a36Sopenharmony_ciconfig PINCTRL_EQUILIBRIUM
18062306a36Sopenharmony_ci	tristate "Generic pinctrl and GPIO driver for Intel Lightning Mountain SoC"
18162306a36Sopenharmony_ci	depends on OF && HAS_IOMEM
18262306a36Sopenharmony_ci	depends on X86 || COMPILE_TEST
18362306a36Sopenharmony_ci	select PINMUX
18462306a36Sopenharmony_ci	select PINCONF
18562306a36Sopenharmony_ci	select GPIOLIB
18662306a36Sopenharmony_ci	select GPIO_GENERIC
18762306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
18862306a36Sopenharmony_ci	select GENERIC_PINCONF
18962306a36Sopenharmony_ci	select GENERIC_PINCTRL_GROUPS
19062306a36Sopenharmony_ci	select GENERIC_PINMUX_FUNCTIONS
19162306a36Sopenharmony_ci	help
19262306a36Sopenharmony_ci	  Equilibrium driver is a pinctrl and GPIO driver for Intel Lightning
19362306a36Sopenharmony_ci	  Mountain network processor SoC that supports both the GPIO and pin
19462306a36Sopenharmony_ci	  control frameworks. It provides interfaces to setup pin muxing, assign
19562306a36Sopenharmony_ci	  desired pin functions, configure GPIO attributes for LGM SoC pins.
19662306a36Sopenharmony_ci	  Pin muxing and pin config settings are retrieved from device tree.
19762306a36Sopenharmony_ci
19862306a36Sopenharmony_ciconfig PINCTRL_GEMINI
19962306a36Sopenharmony_ci	bool
20062306a36Sopenharmony_ci	depends on ARCH_GEMINI
20162306a36Sopenharmony_ci	default ARCH_GEMINI
20262306a36Sopenharmony_ci	select PINMUX
20362306a36Sopenharmony_ci	select GENERIC_PINCONF
20462306a36Sopenharmony_ci	select MFD_SYSCON
20562306a36Sopenharmony_ci
20662306a36Sopenharmony_ciconfig PINCTRL_INGENIC
20762306a36Sopenharmony_ci	bool "Pinctrl driver for the Ingenic JZ47xx SoCs"
20862306a36Sopenharmony_ci	default MACH_INGENIC
20962306a36Sopenharmony_ci	depends on OF
21062306a36Sopenharmony_ci	depends on MIPS || COMPILE_TEST
21162306a36Sopenharmony_ci	select GENERIC_PINCONF
21262306a36Sopenharmony_ci	select GENERIC_PINCTRL_GROUPS
21362306a36Sopenharmony_ci	select GENERIC_PINMUX_FUNCTIONS
21462306a36Sopenharmony_ci	select GPIOLIB
21562306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
21662306a36Sopenharmony_ci	select REGMAP_MMIO
21762306a36Sopenharmony_ci
21862306a36Sopenharmony_ciconfig PINCTRL_K210
21962306a36Sopenharmony_ci	bool "Pinctrl driver for the Canaan Kendryte K210 SoC"
22062306a36Sopenharmony_ci	depends on RISCV && SOC_CANAAN && OF
22162306a36Sopenharmony_ci	select GENERIC_PINMUX_FUNCTIONS
22262306a36Sopenharmony_ci	select GENERIC_PINCONF
22362306a36Sopenharmony_ci	select GPIOLIB
22462306a36Sopenharmony_ci	select OF_GPIO
22562306a36Sopenharmony_ci	select REGMAP_MMIO
22662306a36Sopenharmony_ci	default SOC_CANAAN
22762306a36Sopenharmony_ci	help
22862306a36Sopenharmony_ci	  Add support for the Canaan Kendryte K210 RISC-V SOC Field
22962306a36Sopenharmony_ci	  Programmable IO Array (FPIOA) controller.
23062306a36Sopenharmony_ci
23162306a36Sopenharmony_ciconfig PINCTRL_KEEMBAY
23262306a36Sopenharmony_ci	tristate "Pinctrl driver for Intel Keem Bay SoC"
23362306a36Sopenharmony_ci	depends on ARCH_KEEMBAY || (ARM64 && COMPILE_TEST)
23462306a36Sopenharmony_ci	depends on HAS_IOMEM
23562306a36Sopenharmony_ci	select PINMUX
23662306a36Sopenharmony_ci	select PINCONF
23762306a36Sopenharmony_ci	select GENERIC_PINCONF
23862306a36Sopenharmony_ci	select GENERIC_PINCTRL_GROUPS
23962306a36Sopenharmony_ci	select GENERIC_PINMUX_FUNCTIONS
24062306a36Sopenharmony_ci	select GPIOLIB
24162306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
24262306a36Sopenharmony_ci	select GPIO_GENERIC
24362306a36Sopenharmony_ci	help
24462306a36Sopenharmony_ci	  This selects pin control driver for the Intel Keem Bay SoC.
24562306a36Sopenharmony_ci	  It provides pin config functions such as pull-up, pull-down,
24662306a36Sopenharmony_ci	  interrupt, drive strength, sec lock, Schmitt trigger, slew
24762306a36Sopenharmony_ci	  rate control and direction control. This module will be
24862306a36Sopenharmony_ci	  called as pinctrl-keembay.
24962306a36Sopenharmony_ci
25062306a36Sopenharmony_ciconfig PINCTRL_LANTIQ
25162306a36Sopenharmony_ci	bool
25262306a36Sopenharmony_ci	depends on LANTIQ
25362306a36Sopenharmony_ci	select PINMUX
25462306a36Sopenharmony_ci	select PINCONF
25562306a36Sopenharmony_ci
25662306a36Sopenharmony_ciconfig PINCTRL_FALCON
25762306a36Sopenharmony_ci	bool
25862306a36Sopenharmony_ci	depends on SOC_FALCON
25962306a36Sopenharmony_ci	depends on PINCTRL_LANTIQ
26062306a36Sopenharmony_ci
26162306a36Sopenharmony_ciconfig PINCTRL_LOONGSON2
26262306a36Sopenharmony_ci	tristate "Pinctrl driver for the Loongson-2 SoC"
26362306a36Sopenharmony_ci	depends on OF && (LOONGARCH || COMPILE_TEST)
26462306a36Sopenharmony_ci	select PINMUX
26562306a36Sopenharmony_ci	select GENERIC_PINCONF
26662306a36Sopenharmony_ci	help
26762306a36Sopenharmony_ci	 This selects pin control driver for the Loongson-2 SoC. It
26862306a36Sopenharmony_ci	 provides pin config functions multiplexing.  GPIO pin pull-up,
26962306a36Sopenharmony_ci	 pull-down functions are not supported. Say yes to enable
27062306a36Sopenharmony_ci	 pinctrl for Loongson-2 SoC.
27162306a36Sopenharmony_ci
27262306a36Sopenharmony_ciconfig PINCTRL_XWAY
27362306a36Sopenharmony_ci	bool
27462306a36Sopenharmony_ci	depends on SOC_TYPE_XWAY
27562306a36Sopenharmony_ci	depends on PINCTRL_LANTIQ
27662306a36Sopenharmony_ci
27762306a36Sopenharmony_ciconfig PINCTRL_LPC18XX
27862306a36Sopenharmony_ci	bool "NXP LPC18XX/43XX SCU pinctrl driver"
27962306a36Sopenharmony_ci	depends on OF && (ARCH_LPC18XX || COMPILE_TEST)
28062306a36Sopenharmony_ci	default ARCH_LPC18XX
28162306a36Sopenharmony_ci	select PINMUX
28262306a36Sopenharmony_ci	select GENERIC_PINCONF
28362306a36Sopenharmony_ci	help
28462306a36Sopenharmony_ci	  Pinctrl driver for NXP LPC18xx/43xx System Control Unit (SCU).
28562306a36Sopenharmony_ci
28662306a36Sopenharmony_ciconfig PINCTRL_MAX77620
28762306a36Sopenharmony_ci	tristate "MAX77620/MAX20024 Pincontrol support"
28862306a36Sopenharmony_ci	depends on MFD_MAX77620 && OF
28962306a36Sopenharmony_ci	select PINMUX
29062306a36Sopenharmony_ci	select GENERIC_PINCONF
29162306a36Sopenharmony_ci	help
29262306a36Sopenharmony_ci	  Say Y here to enable Pin control support for Maxim MAX77620 PMIC.
29362306a36Sopenharmony_ci	  This PMIC has 8 GPIO pins that work as GPIO as well as special
29462306a36Sopenharmony_ci	  function in alternate mode. This driver also configure push-pull,
29562306a36Sopenharmony_ci	  open drain, FPS slots etc.
29662306a36Sopenharmony_ci
29762306a36Sopenharmony_ciconfig PINCTRL_MCP23S08_I2C
29862306a36Sopenharmony_ci	tristate
29962306a36Sopenharmony_ci	select REGMAP_I2C
30062306a36Sopenharmony_ci
30162306a36Sopenharmony_ciconfig PINCTRL_MCP23S08_SPI
30262306a36Sopenharmony_ci	tristate
30362306a36Sopenharmony_ci	select REGMAP_SPI
30462306a36Sopenharmony_ci
30562306a36Sopenharmony_ciconfig PINCTRL_MCP23S08
30662306a36Sopenharmony_ci	tristate "Microchip MCP23xxx I/O expander"
30762306a36Sopenharmony_ci	depends on SPI_MASTER || I2C
30862306a36Sopenharmony_ci	select GPIOLIB
30962306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
31062306a36Sopenharmony_ci	select GENERIC_PINCONF
31162306a36Sopenharmony_ci	select PINCTRL_MCP23S08_I2C if I2C
31262306a36Sopenharmony_ci	select PINCTRL_MCP23S08_SPI if SPI_MASTER
31362306a36Sopenharmony_ci	help
31462306a36Sopenharmony_ci	  SPI/I2C driver for Microchip MCP23S08 / MCP23S17 / MCP23S18 /
31562306a36Sopenharmony_ci	  MCP23008 / MCP23017 / MCP23018 I/O expanders.
31662306a36Sopenharmony_ci	  This provides a GPIO interface supporting inputs and outputs and a
31762306a36Sopenharmony_ci	  corresponding interrupt-controller.
31862306a36Sopenharmony_ci
31962306a36Sopenharmony_ciconfig PINCTRL_MICROCHIP_SGPIO
32062306a36Sopenharmony_ci	tristate "Pinctrl driver for Microsemi/Microchip Serial GPIO"
32162306a36Sopenharmony_ci	depends on OF
32262306a36Sopenharmony_ci	depends on HAS_IOMEM
32362306a36Sopenharmony_ci	select GPIOLIB
32462306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
32562306a36Sopenharmony_ci	select GENERIC_PINCONF
32662306a36Sopenharmony_ci	select GENERIC_PINCTRL_GROUPS
32762306a36Sopenharmony_ci	select GENERIC_PINMUX_FUNCTIONS
32862306a36Sopenharmony_ci	select OF_GPIO
32962306a36Sopenharmony_ci	help
33062306a36Sopenharmony_ci	  Support for the serial GPIO interface used on Microsemi and
33162306a36Sopenharmony_ci	  Microchip SoCs. By using a serial interface, the SIO
33262306a36Sopenharmony_ci	  controller significantly extends the number of available
33362306a36Sopenharmony_ci	  GPIOs with a minimum number of additional pins on the
33462306a36Sopenharmony_ci	  device. The primary purpose of the SIO controller is to
33562306a36Sopenharmony_ci	  connect control signals from SFP modules and to act as an
33662306a36Sopenharmony_ci	  LED controller.
33762306a36Sopenharmony_ci
33862306a36Sopenharmony_ci	  If compiled as a module, the module name will be
33962306a36Sopenharmony_ci	  pinctrl-microchip-sgpio.
34062306a36Sopenharmony_ci
34162306a36Sopenharmony_ciconfig PINCTRL_OCELOT
34262306a36Sopenharmony_ci	tristate "Pinctrl driver for the Microsemi Ocelot and Jaguar2 SoCs"
34362306a36Sopenharmony_ci	depends on OF
34462306a36Sopenharmony_ci	depends on HAS_IOMEM
34562306a36Sopenharmony_ci	select GPIOLIB
34662306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
34762306a36Sopenharmony_ci	select GENERIC_PINCONF
34862306a36Sopenharmony_ci	select GENERIC_PINCTRL_GROUPS
34962306a36Sopenharmony_ci	select GENERIC_PINMUX_FUNCTIONS
35062306a36Sopenharmony_ci	select OF_GPIO
35162306a36Sopenharmony_ci	select REGMAP_MMIO
35262306a36Sopenharmony_ci	help
35362306a36Sopenharmony_ci	  Support for the internal GPIO interfaces on Microsemi Ocelot and
35462306a36Sopenharmony_ci	  Jaguar2 SoCs.
35562306a36Sopenharmony_ci
35662306a36Sopenharmony_ci	  If conpiled as a module, the module name will be pinctrl-ocelot.
35762306a36Sopenharmony_ci
35862306a36Sopenharmony_ciconfig PINCTRL_PALMAS
35962306a36Sopenharmony_ci	tristate "Pinctrl driver for the PALMAS Series MFD devices"
36062306a36Sopenharmony_ci	depends on OF && MFD_PALMAS
36162306a36Sopenharmony_ci	select PINMUX
36262306a36Sopenharmony_ci	select GENERIC_PINCONF
36362306a36Sopenharmony_ci	help
36462306a36Sopenharmony_ci	  Palmas device supports the configuration of pins for different
36562306a36Sopenharmony_ci	  functionality. This driver supports the pinmux, push-pull and
36662306a36Sopenharmony_ci	  open drain configuration for the Palmas series devices like
36762306a36Sopenharmony_ci	  TPS65913, TPS80036 etc.
36862306a36Sopenharmony_ci
36962306a36Sopenharmony_ciconfig PINCTRL_PIC32
37062306a36Sopenharmony_ci	bool "Microchip PIC32 pin controller driver"
37162306a36Sopenharmony_ci	depends on OF
37262306a36Sopenharmony_ci	depends on MACH_PIC32
37362306a36Sopenharmony_ci	select PINMUX
37462306a36Sopenharmony_ci	select GENERIC_PINCONF
37562306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
37662306a36Sopenharmony_ci	select OF_GPIO
37762306a36Sopenharmony_ci	help
37862306a36Sopenharmony_ci	  This is the pin controller and gpio driver for Microchip PIC32
37962306a36Sopenharmony_ci	  microcontrollers. This option is selected automatically when specific
38062306a36Sopenharmony_ci	  machine and arch are selected to build.
38162306a36Sopenharmony_ci
38262306a36Sopenharmony_ciconfig PINCTRL_PIC32MZDA
38362306a36Sopenharmony_ci	def_bool y if PIC32MZDA
38462306a36Sopenharmony_ci	select PINCTRL_PIC32
38562306a36Sopenharmony_ci
38662306a36Sopenharmony_ciconfig PINCTRL_PISTACHIO
38762306a36Sopenharmony_ci	bool "IMG Pistachio SoC pinctrl driver"
38862306a36Sopenharmony_ci	depends on OF && (MIPS || COMPILE_TEST)
38962306a36Sopenharmony_ci	depends on GPIOLIB
39062306a36Sopenharmony_ci	select PINMUX
39162306a36Sopenharmony_ci	select GENERIC_PINCONF
39262306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
39362306a36Sopenharmony_ci	select OF_GPIO
39462306a36Sopenharmony_ci	help
39562306a36Sopenharmony_ci	  This support pinctrl and GPIO driver for IMG Pistachio SoC.
39662306a36Sopenharmony_ci
39762306a36Sopenharmony_ciconfig PINCTRL_RK805
39862306a36Sopenharmony_ci	tristate "Pinctrl and GPIO driver for RK805 PMIC"
39962306a36Sopenharmony_ci	depends on MFD_RK8XX
40062306a36Sopenharmony_ci	select GPIOLIB
40162306a36Sopenharmony_ci	select PINMUX
40262306a36Sopenharmony_ci	select GENERIC_PINCONF
40362306a36Sopenharmony_ci	help
40462306a36Sopenharmony_ci	  This selects the pinctrl driver for RK805.
40562306a36Sopenharmony_ci
40662306a36Sopenharmony_ciconfig PINCTRL_ROCKCHIP
40762306a36Sopenharmony_ci	tristate "Rockchip gpio and pinctrl driver"
40862306a36Sopenharmony_ci	depends on ARCH_ROCKCHIP || COMPILE_TEST
40962306a36Sopenharmony_ci	depends on OF
41062306a36Sopenharmony_ci	select GPIOLIB
41162306a36Sopenharmony_ci	select PINMUX
41262306a36Sopenharmony_ci	select GENERIC_PINCONF
41362306a36Sopenharmony_ci	select GENERIC_IRQ_CHIP
41462306a36Sopenharmony_ci	select MFD_SYSCON
41562306a36Sopenharmony_ci	select OF_GPIO
41662306a36Sopenharmony_ci	default ARCH_ROCKCHIP
41762306a36Sopenharmony_ci	help
41862306a36Sopenharmony_ci          This support pinctrl and GPIO driver for Rockchip SoCs.
41962306a36Sopenharmony_ci
42062306a36Sopenharmony_ciconfig PINCTRL_SINGLE
42162306a36Sopenharmony_ci	tristate "One-register-per-pin type device tree based pinctrl driver"
42262306a36Sopenharmony_ci	depends on OF
42362306a36Sopenharmony_ci	depends on HAS_IOMEM
42462306a36Sopenharmony_ci	select GENERIC_PINCTRL_GROUPS
42562306a36Sopenharmony_ci	select GENERIC_PINMUX_FUNCTIONS
42662306a36Sopenharmony_ci	select GENERIC_PINCONF
42762306a36Sopenharmony_ci	help
42862306a36Sopenharmony_ci	  This selects the device tree based generic pinctrl driver.
42962306a36Sopenharmony_ci
43062306a36Sopenharmony_ciconfig PINCTRL_ST
43162306a36Sopenharmony_ci	bool
43262306a36Sopenharmony_ci	depends on OF
43362306a36Sopenharmony_ci	select PINMUX
43462306a36Sopenharmony_ci	select PINCONF
43562306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
43662306a36Sopenharmony_ci
43762306a36Sopenharmony_ciconfig PINCTRL_STMFX
43862306a36Sopenharmony_ci	tristate "STMicroelectronics STMFX GPIO expander pinctrl driver"
43962306a36Sopenharmony_ci	depends on I2C
44062306a36Sopenharmony_ci	depends on OF_GPIO
44162306a36Sopenharmony_ci	select GENERIC_PINCONF
44262306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
44362306a36Sopenharmony_ci	select MFD_STMFX
44462306a36Sopenharmony_ci	help
44562306a36Sopenharmony_ci	  Driver for STMicroelectronics Multi-Function eXpander (STMFX)
44662306a36Sopenharmony_ci	  GPIO expander.
44762306a36Sopenharmony_ci	  This provides a GPIO interface supporting inputs and outputs,
44862306a36Sopenharmony_ci	  and configuring push-pull, open-drain, and can also be used as
44962306a36Sopenharmony_ci	  interrupt-controller.
45062306a36Sopenharmony_ci
45162306a36Sopenharmony_ciconfig PINCTRL_SX150X
45262306a36Sopenharmony_ci	bool "Semtech SX150x I2C GPIO expander pinctrl driver"
45362306a36Sopenharmony_ci	depends on I2C=y
45462306a36Sopenharmony_ci	select PINMUX
45562306a36Sopenharmony_ci	select PINCONF
45662306a36Sopenharmony_ci	select GENERIC_PINCONF
45762306a36Sopenharmony_ci	select GPIOLIB
45862306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
45962306a36Sopenharmony_ci	select REGMAP
46062306a36Sopenharmony_ci	help
46162306a36Sopenharmony_ci	  Say Y here to provide support for Semtech SX150x-series I2C
46262306a36Sopenharmony_ci	  GPIO expanders as pinctrl module.
46362306a36Sopenharmony_ci	  Compatible models include:
46462306a36Sopenharmony_ci	  - 8 bits:  sx1508q, sx1502q
46562306a36Sopenharmony_ci	  - 16 bits: sx1509q, sx1506q
46662306a36Sopenharmony_ci
46762306a36Sopenharmony_ciconfig PINCTRL_TB10X
46862306a36Sopenharmony_ci	bool
46962306a36Sopenharmony_ci	depends on OF && ARC_PLAT_TB10X
47062306a36Sopenharmony_ci	select GPIOLIB
47162306a36Sopenharmony_ci
47262306a36Sopenharmony_ciconfig PINCTRL_ZYNQ
47362306a36Sopenharmony_ci	bool "Pinctrl driver for Xilinx Zynq"
47462306a36Sopenharmony_ci	depends on ARCH_ZYNQ
47562306a36Sopenharmony_ci	select PINMUX
47662306a36Sopenharmony_ci	select GENERIC_PINCONF
47762306a36Sopenharmony_ci	help
47862306a36Sopenharmony_ci	  This selects the pinctrl driver for Xilinx Zynq.
47962306a36Sopenharmony_ci
48062306a36Sopenharmony_ciconfig PINCTRL_ZYNQMP
48162306a36Sopenharmony_ci	tristate "Pinctrl driver for Xilinx ZynqMP"
48262306a36Sopenharmony_ci	depends on ZYNQMP_FIRMWARE
48362306a36Sopenharmony_ci	select PINMUX
48462306a36Sopenharmony_ci	select GENERIC_PINCONF
48562306a36Sopenharmony_ci	default ZYNQMP_FIRMWARE
48662306a36Sopenharmony_ci	help
48762306a36Sopenharmony_ci	  This selects the pinctrl driver for Xilinx ZynqMP platform.
48862306a36Sopenharmony_ci	  This driver will query the pin information from the firmware
48962306a36Sopenharmony_ci	  and allow configuring the pins.
49062306a36Sopenharmony_ci	  Configuration can include the mux function to select on those
49162306a36Sopenharmony_ci	  pin(s)/group(s), and various pin configuration parameters
49262306a36Sopenharmony_ci	  such as pull-up, slew rate, etc.
49362306a36Sopenharmony_ci	  This driver can also be built as a module. If so, the module
49462306a36Sopenharmony_ci	  will be called pinctrl-zynqmp.
49562306a36Sopenharmony_ci
49662306a36Sopenharmony_ciconfig PINCTRL_MLXBF3
49762306a36Sopenharmony_ci	tristate "NVIDIA BlueField-3 SoC Pinctrl driver"
49862306a36Sopenharmony_ci	depends on (MELLANOX_PLATFORM && ARM64) || COMPILE_TEST
49962306a36Sopenharmony_ci	select PINMUX
50062306a36Sopenharmony_ci	select GPIOLIB
50162306a36Sopenharmony_ci	select GPIOLIB_IRQCHIP
50262306a36Sopenharmony_ci	help
50362306a36Sopenharmony_ci	  Say Y to select the pinctrl driver for BlueField-3 SoCs.
50462306a36Sopenharmony_ci	  This pin controller allows selecting the mux function for
50562306a36Sopenharmony_ci	  each pin. This driver can also be built as a module called
50662306a36Sopenharmony_ci	  pinctrl-mlxbf3.
50762306a36Sopenharmony_ci
50862306a36Sopenharmony_cisource "drivers/pinctrl/actions/Kconfig"
50962306a36Sopenharmony_cisource "drivers/pinctrl/aspeed/Kconfig"
51062306a36Sopenharmony_cisource "drivers/pinctrl/bcm/Kconfig"
51162306a36Sopenharmony_cisource "drivers/pinctrl/berlin/Kconfig"
51262306a36Sopenharmony_cisource "drivers/pinctrl/cirrus/Kconfig"
51362306a36Sopenharmony_cisource "drivers/pinctrl/freescale/Kconfig"
51462306a36Sopenharmony_cisource "drivers/pinctrl/intel/Kconfig"
51562306a36Sopenharmony_cisource "drivers/pinctrl/mediatek/Kconfig"
51662306a36Sopenharmony_cisource "drivers/pinctrl/meson/Kconfig"
51762306a36Sopenharmony_cisource "drivers/pinctrl/mvebu/Kconfig"
51862306a36Sopenharmony_cisource "drivers/pinctrl/nomadik/Kconfig"
51962306a36Sopenharmony_cisource "drivers/pinctrl/nuvoton/Kconfig"
52062306a36Sopenharmony_cisource "drivers/pinctrl/nxp/Kconfig"
52162306a36Sopenharmony_cisource "drivers/pinctrl/pxa/Kconfig"
52262306a36Sopenharmony_cisource "drivers/pinctrl/qcom/Kconfig"
52362306a36Sopenharmony_cisource "drivers/pinctrl/renesas/Kconfig"
52462306a36Sopenharmony_cisource "drivers/pinctrl/samsung/Kconfig"
52562306a36Sopenharmony_cisource "drivers/pinctrl/spear/Kconfig"
52662306a36Sopenharmony_cisource "drivers/pinctrl/sprd/Kconfig"
52762306a36Sopenharmony_cisource "drivers/pinctrl/starfive/Kconfig"
52862306a36Sopenharmony_cisource "drivers/pinctrl/stm32/Kconfig"
52962306a36Sopenharmony_cisource "drivers/pinctrl/sunplus/Kconfig"
53062306a36Sopenharmony_cisource "drivers/pinctrl/sunxi/Kconfig"
53162306a36Sopenharmony_cisource "drivers/pinctrl/tegra/Kconfig"
53262306a36Sopenharmony_cisource "drivers/pinctrl/ti/Kconfig"
53362306a36Sopenharmony_cisource "drivers/pinctrl/uniphier/Kconfig"
53462306a36Sopenharmony_cisource "drivers/pinctrl/visconti/Kconfig"
53562306a36Sopenharmony_cisource "drivers/pinctrl/vt8500/Kconfig"
53662306a36Sopenharmony_ci
53762306a36Sopenharmony_ciendif
538