xref: /linux/drivers/pinctrl/Kconfig (revision b124c8bd50c7550ed966c09f69ffdbaaedc0aa15)
1ec8f24b7SThomas Gleixner# SPDX-License-Identifier: GPL-2.0-only
22744e8afSLinus Walleij#
32744e8afSLinus Walleij# PINCTRL infrastructure and drivers
42744e8afSLinus Walleij#
52744e8afSLinus Walleij
6d219b924SPhil Reidmenuconfig PINCTRL
7d219b924SPhil Reid	bool "Pin controllers"
82744e8afSLinus Walleij
9d219b924SPhil Reidif PINCTRL
1045f034efSLinus Walleij
11c033a718SLinus Walleijconfig GENERIC_PINCTRL_GROUPS
12c7059c5aSTony Lindgren	bool
13c7059c5aSTony Lindgren
142744e8afSLinus Walleijconfig PINMUX
15244e95a7SUwe Kleine-König	bool "Support pin multiplexing controllers" if COMPILE_TEST
16ae6b4d85SLinus Walleij
17a76edc89STony Lindgrenconfig GENERIC_PINMUX_FUNCTIONS
18a76edc89STony Lindgren	bool
19a76edc89STony Lindgren	select PINMUX
20a76edc89STony Lindgren
21ae6b4d85SLinus Walleijconfig PINCONF
22244e95a7SUwe Kleine-König	bool "Support pin configuration controllers" if COMPILE_TEST
232744e8afSLinus Walleij
24394349f7SLinus Walleijconfig GENERIC_PINCONF
25394349f7SLinus Walleij	bool
26394349f7SLinus Walleij	select PINCONF
27394349f7SLinus Walleij
282744e8afSLinus Walleijconfig DEBUG_PINCTRL
292744e8afSLinus Walleij	bool "Debug PINCTRL calls"
302744e8afSLinus Walleij	depends on DEBUG_KERNEL
312744e8afSLinus Walleij	help
322744e8afSLinus Walleij	  Say Y here to add some extra checks and diagnostics to PINCTRL calls.
332744e8afSLinus Walleij
34*b124c8bdSAndy Shevchenkoconfig PINCTRL_AMD
35*b124c8bdSAndy Shevchenko	tristate "AMD GPIO pin control"
36*b124c8bdSAndy Shevchenko	depends on HAS_IOMEM
37*b124c8bdSAndy Shevchenko	depends on ACPI || COMPILE_TEST
38*b124c8bdSAndy Shevchenko	select GPIOLIB
39*b124c8bdSAndy Shevchenko	select GPIOLIB_IRQCHIP
40*b124c8bdSAndy Shevchenko	select PINMUX
41*b124c8bdSAndy Shevchenko	select PINCONF
42*b124c8bdSAndy Shevchenko	select GENERIC_PINCONF
43*b124c8bdSAndy Shevchenko	help
44*b124c8bdSAndy Shevchenko	  The driver for memory mapped GPIO functionality on AMD platforms
45*b124c8bdSAndy Shevchenko	  (x86 or arm). Most of the pins are usually muxed to some other
46*b124c8bdSAndy Shevchenko	  functionality by firmware, so only a small amount is available
47*b124c8bdSAndy Shevchenko	  for GPIO use.
48*b124c8bdSAndy Shevchenko
49*b124c8bdSAndy Shevchenko	  Requires ACPI/FDT device enumeration code to set up a platform
50*b124c8bdSAndy Shevchenko	  device.
51*b124c8bdSAndy Shevchenko
52a0f160ffSJoey Goulyconfig PINCTRL_APPLE_GPIO
53a0f160ffSJoey Gouly	tristate "Apple SoC GPIO pin controller driver"
54a0f160ffSJoey Gouly	depends on ARCH_APPLE
55a0f160ffSJoey Gouly	select PINMUX
56a0f160ffSJoey Gouly	select GPIOLIB
57a0f160ffSJoey Gouly	select GPIOLIB_IRQCHIP
58a0f160ffSJoey Gouly	select GENERIC_PINCTRL_GROUPS
59a0f160ffSJoey Gouly	select GENERIC_PINMUX_FUNCTIONS
60a0f160ffSJoey Gouly	select OF_GPIO
61a0f160ffSJoey Gouly	help
62a0f160ffSJoey Gouly	  This is the driver for the GPIO controller found on Apple ARM SoCs,
63a0f160ffSJoey Gouly	  including M1.
64a0f160ffSJoey Gouly
65a0f160ffSJoey Gouly	  This driver can also be built as a module. If so, the module
66a0f160ffSJoey Gouly	  will be called pinctrl-apple-gpio.
67a0f160ffSJoey Gouly
6800df0582SJesper Nilssonconfig PINCTRL_ARTPEC6
6900df0582SJesper Nilsson	bool "Axis ARTPEC-6 pin controller driver"
7000df0582SJesper Nilsson	depends on MACH_ARTPEC6
7100df0582SJesper Nilsson	select PINMUX
7200df0582SJesper Nilsson	select GENERIC_PINCONF
7300df0582SJesper Nilsson	help
7400df0582SJesper Nilsson	  This is the driver for the Axis ARTPEC-6 pin controller. This driver
7500df0582SJesper Nilsson	  supports pin function multiplexing as well as pin bias and drive
7600df0582SJesper Nilsson	  strength configuration. Device tree integration instructions can be
7700df0582SJesper Nilsson	  found in Documentation/devicetree/bindings/pinctrl/axis,artpec6-pinctrl.txt
7800df0582SJesper Nilsson
79c8ce8782SLaxman Dewanganconfig PINCTRL_AS3722
809385f35dSPaul Gortmaker	tristate "Pinctrl and GPIO driver for ams AS3722 PMIC"
81c8ce8782SLaxman Dewangan	depends on MFD_AS3722 && GPIOLIB
82c8ce8782SLaxman Dewangan	select PINMUX
83c8ce8782SLaxman Dewangan	select GENERIC_PINCONF
84c8ce8782SLaxman Dewangan	help
85c8ce8782SLaxman Dewangan	  AS3722 device supports the configuration of GPIO pins for different
86c8ce8782SLaxman Dewangan	  functionality. This driver supports the pinmux, push-pull and
87c8ce8782SLaxman Dewangan	  open drain configuration for the GPIO pins of AS3722 devices. It also
88c8ce8782SLaxman Dewangan	  supports the GPIO functionality through gpiolib.
89c8ce8782SLaxman Dewangan
906732ae5cSJean-Christophe PLAGNIOL-VILLARDconfig PINCTRL_AT91
916732ae5cSJean-Christophe PLAGNIOL-VILLARD	bool "AT91 pinctrl driver"
926732ae5cSJean-Christophe PLAGNIOL-VILLARD	depends on OF
936732ae5cSJean-Christophe PLAGNIOL-VILLARD	depends on ARCH_AT91
946732ae5cSJean-Christophe PLAGNIOL-VILLARD	select PINMUX
956732ae5cSJean-Christophe PLAGNIOL-VILLARD	select PINCONF
9680cc3732SAlexander Stein	select GPIOLIB
9780cc3732SAlexander Stein	select OF_GPIO
9880cc3732SAlexander Stein	select GPIOLIB_IRQCHIP
996732ae5cSJean-Christophe PLAGNIOL-VILLARD	help
1006732ae5cSJean-Christophe PLAGNIOL-VILLARD	  Say Y here to enable the at91 pinctrl driver
1016732ae5cSJean-Christophe PLAGNIOL-VILLARD
10277618084SLudovic Desrochesconfig PINCTRL_AT91PIO4
10377618084SLudovic Desroches	bool "AT91 PIO4 pinctrl driver"
10477618084SLudovic Desroches	depends on OF
1050a03658dSTiezhu Yang	depends on HAS_IOMEM
106e682fcc7STiezhu Yang	depends on ARCH_AT91 || COMPILE_TEST
10777618084SLudovic Desroches	select PINMUX
10877618084SLudovic Desroches	select GENERIC_PINCONF
10977618084SLudovic Desroches	select GPIOLIB
11077618084SLudovic Desroches	select GPIOLIB_IRQCHIP
11177618084SLudovic Desroches	select OF_GPIO
11277618084SLudovic Desroches	help
11377618084SLudovic Desroches	  Say Y here to enable the at91 pinctrl/gpio driver for Atmel PIO4
11477618084SLudovic Desroches	  controller available on sama5d2 SoC.
11577618084SLudovic Desroches
116*b124c8bdSAndy Shevchenkoconfig PINCTRL_AXP209
117*b124c8bdSAndy Shevchenko	tristate "X-Powers AXP209 PMIC pinctrl and GPIO Support"
118*b124c8bdSAndy Shevchenko	depends on MFD_AXP20X
119*b124c8bdSAndy Shevchenko	depends on OF
12083b31c2aSPetr Mladek	select PINMUX
121dbad75ddSKen Xue	select GENERIC_PINCONF
122*b124c8bdSAndy Shevchenko	select GPIOLIB
123dbad75ddSKen Xue	help
124*b124c8bdSAndy Shevchenko	  AXP PMICs provides multiple GPIOs that can be muxed for different
125*b124c8bdSAndy Shevchenko	  functions. This driver bundles a pinctrl driver to select the function
126*b124c8bdSAndy Shevchenko	  muxing and a GPIO driver to handle the GPIO when the GPIO function is
127*b124c8bdSAndy Shevchenko	  selected.
128*b124c8bdSAndy Shevchenko	  Say Y to enable pinctrl and GPIO support for the AXP209 PMIC.
129dbad75ddSKen Xue
1308f3f0246SManivannan Sadhasivamconfig PINCTRL_BM1880
1318f3f0246SManivannan Sadhasivam	bool "Bitmain BM1880 Pinctrl driver"
1328293b3c6SManivannan Sadhasivam	depends on OF && (ARCH_BITMAIN || COMPILE_TEST)
1338293b3c6SManivannan Sadhasivam	default ARCH_BITMAIN
1348f3f0246SManivannan Sadhasivam	select PINMUX
1358f3f0246SManivannan Sadhasivam	help
1368f3f0246SManivannan Sadhasivam	  Pinctrl driver for Bitmain BM1880 SoC.
1378f3f0246SManivannan Sadhasivam
1381ff91f0aSDavid Lechnerconfig PINCTRL_DA850_PUPD
139*b124c8bdSAndy Shevchenko	tristate "TI DA850/OMAP-L138/AM18XX pull-up and pull-down groups"
1401ff91f0aSDavid Lechner	depends on OF && (ARCH_DAVINCI_DA850 || COMPILE_TEST)
1411ff91f0aSDavid Lechner	select PINCONF
1421ff91f0aSDavid Lechner	select GENERIC_PINCONF
1431ff91f0aSDavid Lechner	help
1441ff91f0aSDavid Lechner	  Driver for TI DA850/OMAP-L138/AM18XX pinconf. Used to control
145*b124c8bdSAndy Shevchenko	  pull-up and pull-down pin groups.
1461ff91f0aSDavid Lechner
14756cc3af4SMarco Felschconfig PINCTRL_DA9062
14856cc3af4SMarco Felsch	tristate "Dialog Semiconductor DA9062 PMIC pinctrl and GPIO Support"
14956cc3af4SMarco Felsch	depends on MFD_DA9062
15056cc3af4SMarco Felsch	select GPIOLIB
15156cc3af4SMarco Felsch	help
15256cc3af4SMarco Felsch	  The Dialog DA9062 PMIC provides multiple GPIOs that can be muxed for
15356cc3af4SMarco Felsch	  different functions. This driver bundles a pinctrl driver to select the
15456cc3af4SMarco Felsch	  function muxing and a GPIO driver to handle the GPIO when the GPIO
15556cc3af4SMarco Felsch	  function is selected.
15656cc3af4SMarco Felsch
157*b124c8bdSAndy Shevchenko	  Say Y to enable pinctrl and GPIO support for the DA9062 PMIC.
15856cc3af4SMarco Felsch
15938b0e507SBaruch Siachconfig PINCTRL_DIGICOLOR
16038b0e507SBaruch Siach	bool
16138b0e507SBaruch Siach	depends on OF && (ARCH_DIGICOLOR || COMPILE_TEST)
16238b0e507SBaruch Siach	select PINMUX
16338b0e507SBaruch Siach	select GENERIC_PINCONF
16438b0e507SBaruch Siach
165*b124c8bdSAndy Shevchenkoconfig PINCTRL_EQUILIBRIUM
166*b124c8bdSAndy Shevchenko	tristate "Generic pinctrl and GPIO driver for Intel Lightning Mountain SoC"
167*b124c8bdSAndy Shevchenko	depends on OF && HAS_IOMEM
168*b124c8bdSAndy Shevchenko	depends on X86 || COMPILE_TEST
169*b124c8bdSAndy Shevchenko	select PINMUX
170*b124c8bdSAndy Shevchenko	select PINCONF
171*b124c8bdSAndy Shevchenko	select GPIOLIB
172*b124c8bdSAndy Shevchenko	select GPIO_GENERIC
173*b124c8bdSAndy Shevchenko	select GPIOLIB_IRQCHIP
174*b124c8bdSAndy Shevchenko	select GENERIC_PINCONF
175*b124c8bdSAndy Shevchenko	select GENERIC_PINCTRL_GROUPS
176*b124c8bdSAndy Shevchenko	select GENERIC_PINMUX_FUNCTIONS
177*b124c8bdSAndy Shevchenko	help
178*b124c8bdSAndy Shevchenko	  Equilibrium driver is a pinctrl and GPIO driver for Intel Lightning
179*b124c8bdSAndy Shevchenko	  Mountain network processor SoC that supports both the GPIO and pin
180*b124c8bdSAndy Shevchenko	  control frameworks. It provides interfaces to setup pin muxing, assign
181*b124c8bdSAndy Shevchenko	  desired pin functions, configure GPIO attributes for LGM SoC pins.
182*b124c8bdSAndy Shevchenko	  Pin muxing and pin config settings are retrieved from device tree.
183*b124c8bdSAndy Shevchenko
184*b124c8bdSAndy Shevchenkoconfig PINCTRL_GEMINI
185*b124c8bdSAndy Shevchenko	bool
186*b124c8bdSAndy Shevchenko	depends on ARCH_GEMINI
187*b124c8bdSAndy Shevchenko	default ARCH_GEMINI
188*b124c8bdSAndy Shevchenko	select PINMUX
189*b124c8bdSAndy Shevchenko	select GENERIC_PINCONF
190*b124c8bdSAndy Shevchenko	select MFD_SYSCON
191*b124c8bdSAndy Shevchenko
192*b124c8bdSAndy Shevchenkoconfig PINCTRL_INGENIC
193*b124c8bdSAndy Shevchenko	bool "Pinctrl driver for the Ingenic JZ47xx SoCs"
194*b124c8bdSAndy Shevchenko	default MACH_INGENIC
195*b124c8bdSAndy Shevchenko	depends on OF
196*b124c8bdSAndy Shevchenko	depends on MIPS || COMPILE_TEST
197*b124c8bdSAndy Shevchenko	select GENERIC_PINCONF
198*b124c8bdSAndy Shevchenko	select GENERIC_PINCTRL_GROUPS
199*b124c8bdSAndy Shevchenko	select GENERIC_PINMUX_FUNCTIONS
200*b124c8bdSAndy Shevchenko	select GPIOLIB
201*b124c8bdSAndy Shevchenko	select GPIOLIB_IRQCHIP
202*b124c8bdSAndy Shevchenko	select REGMAP_MMIO
203*b124c8bdSAndy Shevchenko
204*b124c8bdSAndy Shevchenkoconfig PINCTRL_K210
205*b124c8bdSAndy Shevchenko	bool "Pinctrl driver for the Canaan Kendryte K210 SoC"
206*b124c8bdSAndy Shevchenko	depends on RISCV && SOC_CANAAN && OF
207*b124c8bdSAndy Shevchenko	select GENERIC_PINMUX_FUNCTIONS
208*b124c8bdSAndy Shevchenko	select GENERIC_PINCONF
209*b124c8bdSAndy Shevchenko	select GPIOLIB
210*b124c8bdSAndy Shevchenko	select OF_GPIO
211*b124c8bdSAndy Shevchenko	select REGMAP_MMIO
212*b124c8bdSAndy Shevchenko	default SOC_CANAAN
213*b124c8bdSAndy Shevchenko	help
214*b124c8bdSAndy Shevchenko	  Add support for the Canaan Kendryte K210 RISC-V SOC Field
215*b124c8bdSAndy Shevchenko	  Programmable IO Array (FPIOA) controller.
216*b124c8bdSAndy Shevchenko
217*b124c8bdSAndy Shevchenkoconfig PINCTRL_KEEMBAY
218*b124c8bdSAndy Shevchenko	tristate "Pinctrl driver for Intel Keem Bay SoC"
219*b124c8bdSAndy Shevchenko	depends on ARCH_KEEMBAY || (ARM64 && COMPILE_TEST)
220*b124c8bdSAndy Shevchenko	depends on HAS_IOMEM
221*b124c8bdSAndy Shevchenko	select PINMUX
222*b124c8bdSAndy Shevchenko	select PINCONF
223*b124c8bdSAndy Shevchenko	select GENERIC_PINCONF
224*b124c8bdSAndy Shevchenko	select GENERIC_PINCTRL_GROUPS
225*b124c8bdSAndy Shevchenko	select GENERIC_PINMUX_FUNCTIONS
226*b124c8bdSAndy Shevchenko	select GPIOLIB
227*b124c8bdSAndy Shevchenko	select GPIOLIB_IRQCHIP
228*b124c8bdSAndy Shevchenko	select GPIO_GENERIC
229*b124c8bdSAndy Shevchenko	help
230*b124c8bdSAndy Shevchenko	  This selects pin control driver for the Intel Keem Bay SoC.
231*b124c8bdSAndy Shevchenko	  It provides pin config functions such as pull-up, pull-down,
232*b124c8bdSAndy Shevchenko	  interrupt, drive strength, sec lock, Schmitt trigger, slew
233*b124c8bdSAndy Shevchenko	  rate control and direction control. This module will be
234*b124c8bdSAndy Shevchenko	  called as pinctrl-keembay.
235*b124c8bdSAndy Shevchenko
2363f8c50c9SJohn Crispinconfig PINCTRL_LANTIQ
2373f8c50c9SJohn Crispin	bool
2383f8c50c9SJohn Crispin	depends on LANTIQ
2393f8c50c9SJohn Crispin	select PINMUX
2403f8c50c9SJohn Crispin	select PINCONF
2413f8c50c9SJohn Crispin
242*b124c8bdSAndy Shevchenkoconfig PINCTRL_FALCON
243*b124c8bdSAndy Shevchenko	bool
244*b124c8bdSAndy Shevchenko	depends on SOC_FALCON
245*b124c8bdSAndy Shevchenko	depends on PINCTRL_LANTIQ
246*b124c8bdSAndy Shevchenko
247*b124c8bdSAndy Shevchenkoconfig PINCTRL_XWAY
248*b124c8bdSAndy Shevchenko	bool
249*b124c8bdSAndy Shevchenko	depends on SOC_TYPE_XWAY
250*b124c8bdSAndy Shevchenko	depends on PINCTRL_LANTIQ
251*b124c8bdSAndy Shevchenko
2522f77ac93SJoachim Eastwoodconfig PINCTRL_LPC18XX
2532f77ac93SJoachim Eastwood	bool "NXP LPC18XX/43XX SCU pinctrl driver"
2542f77ac93SJoachim Eastwood	depends on OF && (ARCH_LPC18XX || COMPILE_TEST)
2552f77ac93SJoachim Eastwood	default ARCH_LPC18XX
2562f77ac93SJoachim Eastwood	select PINMUX
2572f77ac93SJoachim Eastwood	select GENERIC_PINCONF
2582f77ac93SJoachim Eastwood	help
2592f77ac93SJoachim Eastwood	  Pinctrl driver for NXP LPC18xx/43xx System Control Unit (SCU).
2602f77ac93SJoachim Eastwood
261*b124c8bdSAndy Shevchenkoconfig PINCTRL_MAX77620
262*b124c8bdSAndy Shevchenko	tristate "MAX77620/MAX20024 Pincontrol support"
263*b124c8bdSAndy Shevchenko	depends on MFD_MAX77620 && OF
26406351d13SLinus Walleij	select PINMUX
2651c5b7f3cSLinus Walleij	select GENERIC_PINCONF
266*b124c8bdSAndy Shevchenko	help
267*b124c8bdSAndy Shevchenko	  Say Y here to enable Pin control support for Maxim MAX77620 PMIC.
268*b124c8bdSAndy Shevchenko	  This PMIC has 8 GPIO pins that work as GPIO as well as special
269*b124c8bdSAndy Shevchenko	  function in alternate mode. This driver also configure push-pull,
270*b124c8bdSAndy Shevchenko	  open drain, FPS slots etc.
27106351d13SLinus Walleij
2720f04a817SAndy Shevchenkoconfig PINCTRL_MCP23S08_I2C
2730f04a817SAndy Shevchenko	tristate
2740f04a817SAndy Shevchenko	select REGMAP_I2C
2750f04a817SAndy Shevchenko
2760f04a817SAndy Shevchenkoconfig PINCTRL_MCP23S08_SPI
2770f04a817SAndy Shevchenko	tristate
2780f04a817SAndy Shevchenko	select REGMAP_SPI
2790f04a817SAndy Shevchenko
28064ac43e6SSebastian Reichelconfig PINCTRL_MCP23S08
28164ac43e6SSebastian Reichel	tristate "Microchip MCP23xxx I/O expander"
28264ac43e6SSebastian Reichel	depends on SPI_MASTER || I2C
283e2a021d4SLinus Walleij	select GPIOLIB
28464ac43e6SSebastian Reichel	select GPIOLIB_IRQCHIP
28582039d24SSebastian Reichel	select GENERIC_PINCONF
2860f04a817SAndy Shevchenko	select PINCTRL_MCP23S08_I2C if I2C
2870f04a817SAndy Shevchenko	select PINCTRL_MCP23S08_SPI if SPI_MASTER
28864ac43e6SSebastian Reichel	help
2896ff45566SJan Kundrát	  SPI/I2C driver for Microchip MCP23S08 / MCP23S17 / MCP23S18 /
2906ff45566SJan Kundrát	  MCP23008 / MCP23017 / MCP23018 I/O expanders.
2916ff45566SJan Kundrát	  This provides a GPIO interface supporting inputs and outputs and a
2926ff45566SJan Kundrát	  corresponding interrupt-controller.
29364ac43e6SSebastian Reichel
294*b124c8bdSAndy Shevchenkoconfig PINCTRL_MICROCHIP_SGPIO
295*b124c8bdSAndy Shevchenko	bool "Pinctrl driver for Microsemi/Microchip Serial GPIO"
296*b124c8bdSAndy Shevchenko	depends on OF
297*b124c8bdSAndy Shevchenko	depends on HAS_IOMEM
298*b124c8bdSAndy Shevchenko	select GPIOLIB
299*b124c8bdSAndy Shevchenko	select GPIOLIB_IRQCHIP
300*b124c8bdSAndy Shevchenko	select GENERIC_PINCONF
301*b124c8bdSAndy Shevchenko	select GENERIC_PINCTRL_GROUPS
302*b124c8bdSAndy Shevchenko	select GENERIC_PINMUX_FUNCTIONS
303*b124c8bdSAndy Shevchenko	select OF_GPIO
304*b124c8bdSAndy Shevchenko	help
305*b124c8bdSAndy Shevchenko	  Support for the serial GPIO interface used on Microsemi and
306*b124c8bdSAndy Shevchenko	  Microchip SoCs. By using a serial interface, the SIO
307*b124c8bdSAndy Shevchenko	  controller significantly extends the number of available
308*b124c8bdSAndy Shevchenko	  GPIOs with a minimum number of additional pins on the
309*b124c8bdSAndy Shevchenko	  device. The primary purpose of the SIO controller is to
310*b124c8bdSAndy Shevchenko	  connect control signals from SFP modules and to act as an
311*b124c8bdSAndy Shevchenko	  LED controller.
312*b124c8bdSAndy Shevchenko
313*b124c8bdSAndy Shevchenkoconfig PINCTRL_OCELOT
314*b124c8bdSAndy Shevchenko	bool "Pinctrl driver for the Microsemi Ocelot and Jaguar2 SoCs"
315*b124c8bdSAndy Shevchenko	depends on OF
316*b124c8bdSAndy Shevchenko	depends on HAS_IOMEM
317*b124c8bdSAndy Shevchenko	select GPIOLIB
318*b124c8bdSAndy Shevchenko	select GPIOLIB_IRQCHIP
319*b124c8bdSAndy Shevchenko	select GENERIC_PINCONF
320*b124c8bdSAndy Shevchenko	select GENERIC_PINCTRL_GROUPS
321*b124c8bdSAndy Shevchenko	select GENERIC_PINMUX_FUNCTIONS
322*b124c8bdSAndy Shevchenko	select OF_GPIO
323*b124c8bdSAndy Shevchenko	select REGMAP_MMIO
324*b124c8bdSAndy Shevchenko
325611dac1eSNeil Armstrongconfig PINCTRL_OXNAS
326611dac1eSNeil Armstrong	bool
327611dac1eSNeil Armstrong	depends on OF
328611dac1eSNeil Armstrong	select PINMUX
329611dac1eSNeil Armstrong	select PINCONF
330611dac1eSNeil Armstrong	select GENERIC_PINCONF
331611dac1eSNeil Armstrong	select GPIOLIB
332611dac1eSNeil Armstrong	select OF_GPIO
333611dac1eSNeil Armstrong	select GPIOLIB_IRQCHIP
334611dac1eSNeil Armstrong	select MFD_SYSCON
335611dac1eSNeil Armstrong
3360a8d3e24SLaxman Dewanganconfig PINCTRL_PALMAS
337767b8ce3SPaul Gortmaker	tristate "Pinctrl driver for the PALMAS Series MFD devices"
3380a8d3e24SLaxman Dewangan	depends on OF && MFD_PALMAS
33963ca8db7SAxel Lin	select PINMUX
3400a8d3e24SLaxman Dewangan	select GENERIC_PINCONF
3410a8d3e24SLaxman Dewangan	help
3420a8d3e24SLaxman Dewangan	  Palmas device supports the configuration of pins for different
3430a8d3e24SLaxman Dewangan	  functionality. This driver supports the pinmux, push-pull and
3440a8d3e24SLaxman Dewangan	  open drain configuration for the Palmas series devices like
3450a8d3e24SLaxman Dewangan	  TPS65913, TPS80036 etc.
3460a8d3e24SLaxman Dewangan
3472ba384e6SJoshua Hendersonconfig PINCTRL_PIC32
3482ba384e6SJoshua Henderson	bool "Microchip PIC32 pin controller driver"
3492ba384e6SJoshua Henderson	depends on OF
3502ba384e6SJoshua Henderson	depends on MACH_PIC32
3512ba384e6SJoshua Henderson	select PINMUX
3522ba384e6SJoshua Henderson	select GENERIC_PINCONF
3532ba384e6SJoshua Henderson	select GPIOLIB_IRQCHIP
3542ba384e6SJoshua Henderson	select OF_GPIO
3552ba384e6SJoshua Henderson	help
3562ba384e6SJoshua Henderson	  This is the pin controller and gpio driver for Microchip PIC32
3572ba384e6SJoshua Henderson	  microcontrollers. This option is selected automatically when specific
3582ba384e6SJoshua Henderson	  machine and arch are selected to build.
3592ba384e6SJoshua Henderson
3602ba384e6SJoshua Hendersonconfig PINCTRL_PIC32MZDA
3612ba384e6SJoshua Henderson	def_bool y if PIC32MZDA
3622ba384e6SJoshua Henderson	select PINCTRL_PIC32
3632ba384e6SJoshua Henderson
364*b124c8bdSAndy Shevchenkoconfig PINCTRL_PISTACHIO
365*b124c8bdSAndy Shevchenko	bool "IMG Pistachio SoC pinctrl driver"
366*b124c8bdSAndy Shevchenko	depends on OF && (MIPS || COMPILE_TEST)
367*b124c8bdSAndy Shevchenko	depends on GPIOLIB
368*b124c8bdSAndy Shevchenko	select PINMUX
369*b124c8bdSAndy Shevchenko	select GENERIC_PINCONF
370*b124c8bdSAndy Shevchenko	select GPIOLIB_IRQCHIP
371*b124c8bdSAndy Shevchenko	select OF_GPIO
372*b124c8bdSAndy Shevchenko	help
373*b124c8bdSAndy Shevchenko	  This support pinctrl and GPIO driver for IMG Pistachio SoC.
374*b124c8bdSAndy Shevchenko
375*b124c8bdSAndy Shevchenkoconfig PINCTRL_RK805
376*b124c8bdSAndy Shevchenko	tristate "Pinctrl and GPIO driver for RK805 PMIC"
377*b124c8bdSAndy Shevchenko	depends on MFD_RK808
378*b124c8bdSAndy Shevchenko	select GPIOLIB
379*b124c8bdSAndy Shevchenko	select PINMUX
380*b124c8bdSAndy Shevchenko	select GENERIC_PINCONF
381*b124c8bdSAndy Shevchenko	help
382*b124c8bdSAndy Shevchenko	  This selects the pinctrl driver for RK805.
383*b124c8bdSAndy Shevchenko
384*b124c8bdSAndy Shevchenkoconfig PINCTRL_ROCKCHIP
385*b124c8bdSAndy Shevchenko	tristate "Rockchip gpio and pinctrl driver"
386*b124c8bdSAndy Shevchenko	depends on ARCH_ROCKCHIP || COMPILE_TEST
387*b124c8bdSAndy Shevchenko	depends on OF
388*b124c8bdSAndy Shevchenko	select GPIOLIB
389*b124c8bdSAndy Shevchenko	select PINMUX
390*b124c8bdSAndy Shevchenko	select GENERIC_PINCONF
391*b124c8bdSAndy Shevchenko	select GENERIC_IRQ_CHIP
392*b124c8bdSAndy Shevchenko	select MFD_SYSCON
393*b124c8bdSAndy Shevchenko	select OF_GPIO
394*b124c8bdSAndy Shevchenko	default ARCH_ROCKCHIP
395*b124c8bdSAndy Shevchenko	help
396*b124c8bdSAndy Shevchenko          This support pinctrl and GPIO driver for Rockchip SoCs.
397*b124c8bdSAndy Shevchenko
398*b124c8bdSAndy Shevchenkoconfig PINCTRL_SINGLE
399*b124c8bdSAndy Shevchenko	tristate "One-register-per-pin type device tree based pinctrl driver"
400*b124c8bdSAndy Shevchenko	depends on OF
401*b124c8bdSAndy Shevchenko	depends on HAS_IOMEM
402*b124c8bdSAndy Shevchenko	select GENERIC_PINCTRL_GROUPS
403*b124c8bdSAndy Shevchenko	select GENERIC_PINMUX_FUNCTIONS
404*b124c8bdSAndy Shevchenko	select GENERIC_PINCONF
405*b124c8bdSAndy Shevchenko	help
406*b124c8bdSAndy Shevchenko	  This selects the device tree based generic pinctrl driver.
407*b124c8bdSAndy Shevchenko
408*b124c8bdSAndy Shevchenkoconfig PINCTRL_ST
409*b124c8bdSAndy Shevchenko	bool
410*b124c8bdSAndy Shevchenko	depends on OF
411*b124c8bdSAndy Shevchenko	select PINMUX
412*b124c8bdSAndy Shevchenko	select PINCONF
413*b124c8bdSAndy Shevchenko	select GPIOLIB_IRQCHIP
414*b124c8bdSAndy Shevchenko
415*b124c8bdSAndy Shevchenkoconfig PINCTRL_STMFX
416*b124c8bdSAndy Shevchenko	tristate "STMicroelectronics STMFX GPIO expander pinctrl driver"
417*b124c8bdSAndy Shevchenko	depends on I2C
418*b124c8bdSAndy Shevchenko	depends on OF_GPIO
419*b124c8bdSAndy Shevchenko	select GENERIC_PINCONF
420*b124c8bdSAndy Shevchenko	select GPIOLIB_IRQCHIP
421*b124c8bdSAndy Shevchenko	select MFD_STMFX
422*b124c8bdSAndy Shevchenko	help
423*b124c8bdSAndy Shevchenko	  Driver for STMicroelectronics Multi-Function eXpander (STMFX)
424*b124c8bdSAndy Shevchenko	  GPIO expander.
425*b124c8bdSAndy Shevchenko	  This provides a GPIO interface supporting inputs and outputs,
426*b124c8bdSAndy Shevchenko	  and configuring push-pull, open-drain, and can also be used as
427*b124c8bdSAndy Shevchenko	  interrupt-controller.
428*b124c8bdSAndy Shevchenko
429*b124c8bdSAndy Shevchenkoconfig PINCTRL_SX150X
430*b124c8bdSAndy Shevchenko	bool "Semtech SX150x I2C GPIO expander pinctrl driver"
431*b124c8bdSAndy Shevchenko	depends on I2C=y
432*b124c8bdSAndy Shevchenko	select PINMUX
433*b124c8bdSAndy Shevchenko	select PINCONF
434*b124c8bdSAndy Shevchenko	select GENERIC_PINCONF
435*b124c8bdSAndy Shevchenko	select GPIOLIB
436*b124c8bdSAndy Shevchenko	select GPIOLIB_IRQCHIP
437*b124c8bdSAndy Shevchenko	select REGMAP
438*b124c8bdSAndy Shevchenko	help
439*b124c8bdSAndy Shevchenko	  Say Y here to provide support for Semtech SX150x-series I2C
440*b124c8bdSAndy Shevchenko	  GPIO expanders as pinctrl module.
441*b124c8bdSAndy Shevchenko	  Compatible models include:
442*b124c8bdSAndy Shevchenko	  - 8 bits:  sx1508q, sx1502q
443*b124c8bdSAndy Shevchenko	  - 16 bits: sx1509q, sx1506q
444*b124c8bdSAndy Shevchenko
445*b124c8bdSAndy Shevchenkoconfig PINCTRL_TB10X
446*b124c8bdSAndy Shevchenko	bool
447*b124c8bdSAndy Shevchenko	depends on OF && ARC_PLAT_TB10X
448*b124c8bdSAndy Shevchenko	select GPIOLIB
449*b124c8bdSAndy Shevchenko
450*b124c8bdSAndy Shevchenkoconfig PINCTRL_THUNDERBAY
451*b124c8bdSAndy Shevchenko	tristate "Generic pinctrl and GPIO driver for Intel Thunder Bay SoC"
452*b124c8bdSAndy Shevchenko	depends on ARCH_THUNDERBAY || (ARM64 && COMPILE_TEST)
453*b124c8bdSAndy Shevchenko	depends on HAS_IOMEM
454*b124c8bdSAndy Shevchenko	select PINMUX
455*b124c8bdSAndy Shevchenko	select PINCONF
456*b124c8bdSAndy Shevchenko	select GENERIC_PINCONF
457*b124c8bdSAndy Shevchenko	select GENERIC_PINCTRL_GROUPS
458*b124c8bdSAndy Shevchenko	select GENERIC_PINMUX_FUNCTIONS
459*b124c8bdSAndy Shevchenko	select GPIOLIB
460*b124c8bdSAndy Shevchenko	select GPIOLIB_IRQCHIP
461*b124c8bdSAndy Shevchenko	select GPIO_GENERIC
462*b124c8bdSAndy Shevchenko	help
463*b124c8bdSAndy Shevchenko	  This selects pin control driver for the Intel Thunder Bay SoC.
464*b124c8bdSAndy Shevchenko	  It provides pin config functions such as pull-up, pull-down,
465*b124c8bdSAndy Shevchenko	  interrupt, drive strength, sec lock, Schmitt trigger, slew
466*b124c8bdSAndy Shevchenko	  rate control and direction control. This module will be
467*b124c8bdSAndy Shevchenko	  called as pinctrl-thunderbay.
468*b124c8bdSAndy Shevchenko
469add958ceSSoren Brinkmannconfig PINCTRL_ZYNQ
470add958ceSSoren Brinkmann	bool "Pinctrl driver for Xilinx Zynq"
471add958ceSSoren Brinkmann	depends on ARCH_ZYNQ
472add958ceSSoren Brinkmann	select PINMUX
473add958ceSSoren Brinkmann	select GENERIC_PINCONF
474add958ceSSoren Brinkmann	help
475485dba27SMasahiro Yamada	  This selects the pinctrl driver for Xilinx Zynq.
476add958ceSSoren Brinkmann
4778b242ca7SSai Krishna Potthuriconfig PINCTRL_ZYNQMP
4788b242ca7SSai Krishna Potthuri	tristate "Pinctrl driver for Xilinx ZynqMP"
4798b242ca7SSai Krishna Potthuri	depends on ZYNQMP_FIRMWARE
4808b242ca7SSai Krishna Potthuri	select PINMUX
4818b242ca7SSai Krishna Potthuri	select GENERIC_PINCONF
4828b242ca7SSai Krishna Potthuri	default ZYNQMP_FIRMWARE
4838b242ca7SSai Krishna Potthuri	help
4848b242ca7SSai Krishna Potthuri	  This selects the pinctrl driver for Xilinx ZynqMP platform.
4858b242ca7SSai Krishna Potthuri	  This driver will query the pin information from the firmware
4868b242ca7SSai Krishna Potthuri	  and allow configuring the pins.
4878b242ca7SSai Krishna Potthuri	  Configuration can include the mux function to select on those
4888b242ca7SSai Krishna Potthuri	  pin(s)/group(s), and various pin configuration parameters
4898b242ca7SSai Krishna Potthuri	  such as pull-up, slew rate, etc.
490fa99e701SSai Krishna Potthuri	  This driver can also be built as a module. If so, the module
491fa99e701SSai Krishna Potthuri	  will be called pinctrl-zynqmp.
4928b242ca7SSai Krishna Potthuri
4932242ddfbSManivannan Sadhasivamsource "drivers/pinctrl/actions/Kconfig"
4944d3d0e42SAndrew Jefferysource "drivers/pinctrl/aspeed/Kconfig"
495b17f2f9bSRay Juisource "drivers/pinctrl/bcm/Kconfig"
4963de68d33SAntoine Tenartsource "drivers/pinctrl/berlin/Kconfig"
497*b124c8bdSAndy Shevchenkosource "drivers/pinctrl/cirrus/Kconfig"
498edad3b2aSLinus Walleijsource "drivers/pinctrl/freescale/Kconfig"
4995fae8b86SMika Westerbergsource "drivers/pinctrl/intel/Kconfig"
500*b124c8bdSAndy Shevchenkosource "drivers/pinctrl/mediatek/Kconfig"
501*b124c8bdSAndy Shevchenkosource "drivers/pinctrl/meson/Kconfig"
50206763c74SThomas Petazzonisource "drivers/pinctrl/mvebu/Kconfig"
5033a198059SLinus Walleijsource "drivers/pinctrl/nomadik/Kconfig"
5043b588e43STomer Maimonsource "drivers/pinctrl/nuvoton/Kconfig"
5054b15ec9dSRobert Jarzmiksource "drivers/pinctrl/pxa/Kconfig"
50669b78b8dSLinus Walleijsource "drivers/pinctrl/qcom/Kconfig"
507518b466aSSergio Paracuellossource "drivers/pinctrl/ralink/Kconfig"
508077365a9SGeert Uytterhoevensource "drivers/pinctrl/renesas/Kconfig"
509ebe629a3SSachin Kamatsource "drivers/pinctrl/samsung/Kconfig"
510deda8287SViresh Kumarsource "drivers/pinctrl/spear/Kconfig"
51141d32cfcSBaolin Wangsource "drivers/pinctrl/sprd/Kconfig"
512aceb16dcSMaxime Coquelinsource "drivers/pinctrl/stm32/Kconfig"
5135f910777SMaxime Ripardsource "drivers/pinctrl/sunxi/Kconfig"
51425cbac77SMasahiro Yamadasource "drivers/pinctrl/tegra/Kconfig"
515003910ebSNishanth Menonsource "drivers/pinctrl/ti/Kconfig"
5166e908892SMasahiro Yamadasource "drivers/pinctrl/uniphier/Kconfig"
517a68a7844SNobuhiro Iwamatsusource "drivers/pinctrl/visconti/Kconfig"
518*b124c8bdSAndy Shevchenkosource "drivers/pinctrl/vt8500/Kconfig"
51912422af8SLakshmi Sowjanya D
520d219b924SPhil Reidendif
521