xref: /linux/drivers/pinctrl/Kconfig (revision 8586466e4f11a5879a7c0df5d25da6c6a7d7c672)
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
34b124c8bdSAndy Shevchenkoconfig PINCTRL_AMD
3541ef3c1aSMario Limonciello	bool "AMD GPIO pin control"
36b124c8bdSAndy Shevchenko	depends on HAS_IOMEM
37b124c8bdSAndy Shevchenko	depends on ACPI || COMPILE_TEST
38b124c8bdSAndy Shevchenko	select GPIOLIB
39b124c8bdSAndy Shevchenko	select GPIOLIB_IRQCHIP
40b124c8bdSAndy Shevchenko	select PINMUX
41b124c8bdSAndy Shevchenko	select PINCONF
42b124c8bdSAndy Shevchenko	select GENERIC_PINCONF
43b124c8bdSAndy Shevchenko	help
44b124c8bdSAndy Shevchenko	  The driver for memory mapped GPIO functionality on AMD platforms
45b124c8bdSAndy Shevchenko	  (x86 or arm). Most of the pins are usually muxed to some other
46b124c8bdSAndy Shevchenko	  functionality by firmware, so only a small amount is available
47b124c8bdSAndy Shevchenko	  for GPIO use.
48b124c8bdSAndy Shevchenko
49b124c8bdSAndy Shevchenko	  Requires ACPI/FDT device enumeration code to set up a platform
50b124c8bdSAndy Shevchenko	  device.
51b124c8bdSAndy 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
116b124c8bdSAndy Shevchenkoconfig PINCTRL_AXP209
117b124c8bdSAndy Shevchenko	tristate "X-Powers AXP209 PMIC pinctrl and GPIO Support"
118b124c8bdSAndy Shevchenko	depends on MFD_AXP20X
119b124c8bdSAndy Shevchenko	depends on OF
12083b31c2aSPetr Mladek	select PINMUX
121dbad75ddSKen Xue	select GENERIC_PINCONF
122b124c8bdSAndy Shevchenko	select GPIOLIB
123dbad75ddSKen Xue	help
124b124c8bdSAndy Shevchenko	  AXP PMICs provides multiple GPIOs that can be muxed for different
125b124c8bdSAndy Shevchenko	  functions. This driver bundles a pinctrl driver to select the function
126b124c8bdSAndy Shevchenko	  muxing and a GPIO driver to handle the GPIO when the GPIO function is
127b124c8bdSAndy Shevchenko	  selected.
128b124c8bdSAndy 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
138e6cbbe42SPatrick Rudolphconfig PINCTRL_CY8C95X0
139e6cbbe42SPatrick Rudolph	tristate "Cypress CY8C95X0 I2C pinctrl and GPIO driver"
140*8586466eSAndy Shevchenko	depends on I2C
141e6cbbe42SPatrick Rudolph	select GPIOLIB
142e6cbbe42SPatrick Rudolph	select GPIOLIB_IRQCHIP
143e6cbbe42SPatrick Rudolph	select PINMUX
144e6cbbe42SPatrick Rudolph	select PINCONF
145e6cbbe42SPatrick Rudolph	select GENERIC_PINCONF
146e6cbbe42SPatrick Rudolph	select REGMAP_I2C
147e6cbbe42SPatrick Rudolph	help
148e6cbbe42SPatrick Rudolph	  Support for 20/40/60 pin Cypress Cy8C95x0 pinctrl/gpio I2C expander.
149e6cbbe42SPatrick Rudolph	  This driver can also be built as a module. If so, the module will be
150e6cbbe42SPatrick Rudolph	  called pinctrl-cy8c95x0.
151e6cbbe42SPatrick Rudolph
1521ff91f0aSDavid Lechnerconfig PINCTRL_DA850_PUPD
153b124c8bdSAndy Shevchenko	tristate "TI DA850/OMAP-L138/AM18XX pull-up and pull-down groups"
1541ff91f0aSDavid Lechner	depends on OF && (ARCH_DAVINCI_DA850 || COMPILE_TEST)
1551ff91f0aSDavid Lechner	select PINCONF
1561ff91f0aSDavid Lechner	select GENERIC_PINCONF
1571ff91f0aSDavid Lechner	help
1581ff91f0aSDavid Lechner	  Driver for TI DA850/OMAP-L138/AM18XX pinconf. Used to control
159b124c8bdSAndy Shevchenko	  pull-up and pull-down pin groups.
1601ff91f0aSDavid Lechner
16156cc3af4SMarco Felschconfig PINCTRL_DA9062
16256cc3af4SMarco Felsch	tristate "Dialog Semiconductor DA9062 PMIC pinctrl and GPIO Support"
16356cc3af4SMarco Felsch	depends on MFD_DA9062
16456cc3af4SMarco Felsch	select GPIOLIB
16556cc3af4SMarco Felsch	help
16656cc3af4SMarco Felsch	  The Dialog DA9062 PMIC provides multiple GPIOs that can be muxed for
16756cc3af4SMarco Felsch	  different functions. This driver bundles a pinctrl driver to select the
16856cc3af4SMarco Felsch	  function muxing and a GPIO driver to handle the GPIO when the GPIO
16956cc3af4SMarco Felsch	  function is selected.
17056cc3af4SMarco Felsch
171b124c8bdSAndy Shevchenko	  Say Y to enable pinctrl and GPIO support for the DA9062 PMIC.
17256cc3af4SMarco Felsch
17338b0e507SBaruch Siachconfig PINCTRL_DIGICOLOR
17438b0e507SBaruch Siach	bool
17538b0e507SBaruch Siach	depends on OF && (ARCH_DIGICOLOR || COMPILE_TEST)
17638b0e507SBaruch Siach	select PINMUX
17738b0e507SBaruch Siach	select GENERIC_PINCONF
17838b0e507SBaruch Siach
179b124c8bdSAndy Shevchenkoconfig PINCTRL_EQUILIBRIUM
180b124c8bdSAndy Shevchenko	tristate "Generic pinctrl and GPIO driver for Intel Lightning Mountain SoC"
181b124c8bdSAndy Shevchenko	depends on OF && HAS_IOMEM
182b124c8bdSAndy Shevchenko	depends on X86 || COMPILE_TEST
183b124c8bdSAndy Shevchenko	select PINMUX
184b124c8bdSAndy Shevchenko	select PINCONF
185b124c8bdSAndy Shevchenko	select GPIOLIB
186b124c8bdSAndy Shevchenko	select GPIO_GENERIC
187b124c8bdSAndy Shevchenko	select GPIOLIB_IRQCHIP
188b124c8bdSAndy Shevchenko	select GENERIC_PINCONF
189b124c8bdSAndy Shevchenko	select GENERIC_PINCTRL_GROUPS
190b124c8bdSAndy Shevchenko	select GENERIC_PINMUX_FUNCTIONS
191b124c8bdSAndy Shevchenko	help
192b124c8bdSAndy Shevchenko	  Equilibrium driver is a pinctrl and GPIO driver for Intel Lightning
193b124c8bdSAndy Shevchenko	  Mountain network processor SoC that supports both the GPIO and pin
194b124c8bdSAndy Shevchenko	  control frameworks. It provides interfaces to setup pin muxing, assign
195b124c8bdSAndy Shevchenko	  desired pin functions, configure GPIO attributes for LGM SoC pins.
196b124c8bdSAndy Shevchenko	  Pin muxing and pin config settings are retrieved from device tree.
197b124c8bdSAndy Shevchenko
198b124c8bdSAndy Shevchenkoconfig PINCTRL_GEMINI
199b124c8bdSAndy Shevchenko	bool
200b124c8bdSAndy Shevchenko	depends on ARCH_GEMINI
201b124c8bdSAndy Shevchenko	default ARCH_GEMINI
202b124c8bdSAndy Shevchenko	select PINMUX
203b124c8bdSAndy Shevchenko	select GENERIC_PINCONF
204b124c8bdSAndy Shevchenko	select MFD_SYSCON
205b124c8bdSAndy Shevchenko
206b124c8bdSAndy Shevchenkoconfig PINCTRL_INGENIC
207b124c8bdSAndy Shevchenko	bool "Pinctrl driver for the Ingenic JZ47xx SoCs"
208b124c8bdSAndy Shevchenko	default MACH_INGENIC
209b124c8bdSAndy Shevchenko	depends on OF
210b124c8bdSAndy Shevchenko	depends on MIPS || COMPILE_TEST
211b124c8bdSAndy Shevchenko	select GENERIC_PINCONF
212b124c8bdSAndy Shevchenko	select GENERIC_PINCTRL_GROUPS
213b124c8bdSAndy Shevchenko	select GENERIC_PINMUX_FUNCTIONS
214b124c8bdSAndy Shevchenko	select GPIOLIB
215b124c8bdSAndy Shevchenko	select GPIOLIB_IRQCHIP
216b124c8bdSAndy Shevchenko	select REGMAP_MMIO
217b124c8bdSAndy Shevchenko
218b124c8bdSAndy Shevchenkoconfig PINCTRL_K210
219b124c8bdSAndy Shevchenko	bool "Pinctrl driver for the Canaan Kendryte K210 SoC"
220b124c8bdSAndy Shevchenko	depends on RISCV && SOC_CANAAN && OF
221b124c8bdSAndy Shevchenko	select GENERIC_PINMUX_FUNCTIONS
222b124c8bdSAndy Shevchenko	select GENERIC_PINCONF
223b124c8bdSAndy Shevchenko	select GPIOLIB
224b124c8bdSAndy Shevchenko	select OF_GPIO
225b124c8bdSAndy Shevchenko	select REGMAP_MMIO
226b124c8bdSAndy Shevchenko	default SOC_CANAAN
227b124c8bdSAndy Shevchenko	help
228b124c8bdSAndy Shevchenko	  Add support for the Canaan Kendryte K210 RISC-V SOC Field
229b124c8bdSAndy Shevchenko	  Programmable IO Array (FPIOA) controller.
230b124c8bdSAndy Shevchenko
231b124c8bdSAndy Shevchenkoconfig PINCTRL_KEEMBAY
232b124c8bdSAndy Shevchenko	tristate "Pinctrl driver for Intel Keem Bay SoC"
233b124c8bdSAndy Shevchenko	depends on ARCH_KEEMBAY || (ARM64 && COMPILE_TEST)
234b124c8bdSAndy Shevchenko	depends on HAS_IOMEM
235b124c8bdSAndy Shevchenko	select PINMUX
236b124c8bdSAndy Shevchenko	select PINCONF
237b124c8bdSAndy Shevchenko	select GENERIC_PINCONF
238b124c8bdSAndy Shevchenko	select GENERIC_PINCTRL_GROUPS
239b124c8bdSAndy Shevchenko	select GENERIC_PINMUX_FUNCTIONS
240b124c8bdSAndy Shevchenko	select GPIOLIB
241b124c8bdSAndy Shevchenko	select GPIOLIB_IRQCHIP
242b124c8bdSAndy Shevchenko	select GPIO_GENERIC
243b124c8bdSAndy Shevchenko	help
244b124c8bdSAndy Shevchenko	  This selects pin control driver for the Intel Keem Bay SoC.
245b124c8bdSAndy Shevchenko	  It provides pin config functions such as pull-up, pull-down,
246b124c8bdSAndy Shevchenko	  interrupt, drive strength, sec lock, Schmitt trigger, slew
247b124c8bdSAndy Shevchenko	  rate control and direction control. This module will be
248b124c8bdSAndy Shevchenko	  called as pinctrl-keembay.
249b124c8bdSAndy Shevchenko
2503f8c50c9SJohn Crispinconfig PINCTRL_LANTIQ
2513f8c50c9SJohn Crispin	bool
2523f8c50c9SJohn Crispin	depends on LANTIQ
2533f8c50c9SJohn Crispin	select PINMUX
2543f8c50c9SJohn Crispin	select PINCONF
2553f8c50c9SJohn Crispin
256b124c8bdSAndy Shevchenkoconfig PINCTRL_FALCON
257b124c8bdSAndy Shevchenko	bool
258b124c8bdSAndy Shevchenko	depends on SOC_FALCON
259b124c8bdSAndy Shevchenko	depends on PINCTRL_LANTIQ
260b124c8bdSAndy Shevchenko
261b124c8bdSAndy Shevchenkoconfig PINCTRL_XWAY
262b124c8bdSAndy Shevchenko	bool
263b124c8bdSAndy Shevchenko	depends on SOC_TYPE_XWAY
264b124c8bdSAndy Shevchenko	depends on PINCTRL_LANTIQ
265b124c8bdSAndy Shevchenko
2662f77ac93SJoachim Eastwoodconfig PINCTRL_LPC18XX
2672f77ac93SJoachim Eastwood	bool "NXP LPC18XX/43XX SCU pinctrl driver"
2682f77ac93SJoachim Eastwood	depends on OF && (ARCH_LPC18XX || COMPILE_TEST)
2692f77ac93SJoachim Eastwood	default ARCH_LPC18XX
2702f77ac93SJoachim Eastwood	select PINMUX
2712f77ac93SJoachim Eastwood	select GENERIC_PINCONF
2722f77ac93SJoachim Eastwood	help
2732f77ac93SJoachim Eastwood	  Pinctrl driver for NXP LPC18xx/43xx System Control Unit (SCU).
2742f77ac93SJoachim Eastwood
275b124c8bdSAndy Shevchenkoconfig PINCTRL_MAX77620
276b124c8bdSAndy Shevchenko	tristate "MAX77620/MAX20024 Pincontrol support"
277b124c8bdSAndy Shevchenko	depends on MFD_MAX77620 && OF
27806351d13SLinus Walleij	select PINMUX
2791c5b7f3cSLinus Walleij	select GENERIC_PINCONF
280b124c8bdSAndy Shevchenko	help
281b124c8bdSAndy Shevchenko	  Say Y here to enable Pin control support for Maxim MAX77620 PMIC.
282b124c8bdSAndy Shevchenko	  This PMIC has 8 GPIO pins that work as GPIO as well as special
283b124c8bdSAndy Shevchenko	  function in alternate mode. This driver also configure push-pull,
284b124c8bdSAndy Shevchenko	  open drain, FPS slots etc.
28506351d13SLinus Walleij
2860f04a817SAndy Shevchenkoconfig PINCTRL_MCP23S08_I2C
2870f04a817SAndy Shevchenko	tristate
2880f04a817SAndy Shevchenko	select REGMAP_I2C
2890f04a817SAndy Shevchenko
2900f04a817SAndy Shevchenkoconfig PINCTRL_MCP23S08_SPI
2910f04a817SAndy Shevchenko	tristate
2920f04a817SAndy Shevchenko	select REGMAP_SPI
2930f04a817SAndy Shevchenko
29464ac43e6SSebastian Reichelconfig PINCTRL_MCP23S08
29564ac43e6SSebastian Reichel	tristate "Microchip MCP23xxx I/O expander"
29664ac43e6SSebastian Reichel	depends on SPI_MASTER || I2C
297e2a021d4SLinus Walleij	select GPIOLIB
29864ac43e6SSebastian Reichel	select GPIOLIB_IRQCHIP
29982039d24SSebastian Reichel	select GENERIC_PINCONF
3000f04a817SAndy Shevchenko	select PINCTRL_MCP23S08_I2C if I2C
3010f04a817SAndy Shevchenko	select PINCTRL_MCP23S08_SPI if SPI_MASTER
30264ac43e6SSebastian Reichel	help
3036ff45566SJan Kundrát	  SPI/I2C driver for Microchip MCP23S08 / MCP23S17 / MCP23S18 /
3046ff45566SJan Kundrát	  MCP23008 / MCP23017 / MCP23018 I/O expanders.
3056ff45566SJan Kundrát	  This provides a GPIO interface supporting inputs and outputs and a
3066ff45566SJan Kundrát	  corresponding interrupt-controller.
30764ac43e6SSebastian Reichel
308b124c8bdSAndy Shevchenkoconfig PINCTRL_MICROCHIP_SGPIO
309b124c8bdSAndy Shevchenko	bool "Pinctrl driver for Microsemi/Microchip Serial GPIO"
310b124c8bdSAndy Shevchenko	depends on OF
311b124c8bdSAndy Shevchenko	depends on HAS_IOMEM
312b124c8bdSAndy Shevchenko	select GPIOLIB
313b124c8bdSAndy Shevchenko	select GPIOLIB_IRQCHIP
314b124c8bdSAndy Shevchenko	select GENERIC_PINCONF
315b124c8bdSAndy Shevchenko	select GENERIC_PINCTRL_GROUPS
316b124c8bdSAndy Shevchenko	select GENERIC_PINMUX_FUNCTIONS
317b124c8bdSAndy Shevchenko	select OF_GPIO
318b124c8bdSAndy Shevchenko	help
319b124c8bdSAndy Shevchenko	  Support for the serial GPIO interface used on Microsemi and
320b124c8bdSAndy Shevchenko	  Microchip SoCs. By using a serial interface, the SIO
321b124c8bdSAndy Shevchenko	  controller significantly extends the number of available
322b124c8bdSAndy Shevchenko	  GPIOs with a minimum number of additional pins on the
323b124c8bdSAndy Shevchenko	  device. The primary purpose of the SIO controller is to
324b124c8bdSAndy Shevchenko	  connect control signals from SFP modules and to act as an
325b124c8bdSAndy Shevchenko	  LED controller.
326b124c8bdSAndy Shevchenko
327b124c8bdSAndy Shevchenkoconfig PINCTRL_OCELOT
3284425205eSClément Léger	tristate "Pinctrl driver for the Microsemi Ocelot and Jaguar2 SoCs"
329b124c8bdSAndy Shevchenko	depends on OF
330b124c8bdSAndy Shevchenko	depends on HAS_IOMEM
331b124c8bdSAndy Shevchenko	select GPIOLIB
332b124c8bdSAndy Shevchenko	select GPIOLIB_IRQCHIP
333b124c8bdSAndy Shevchenko	select GENERIC_PINCONF
334b124c8bdSAndy Shevchenko	select GENERIC_PINCTRL_GROUPS
335b124c8bdSAndy Shevchenko	select GENERIC_PINMUX_FUNCTIONS
336b124c8bdSAndy Shevchenko	select OF_GPIO
337b124c8bdSAndy Shevchenko	select REGMAP_MMIO
338b124c8bdSAndy Shevchenko
339611dac1eSNeil Armstrongconfig PINCTRL_OXNAS
340611dac1eSNeil Armstrong	bool
341611dac1eSNeil Armstrong	depends on OF
342611dac1eSNeil Armstrong	select PINMUX
343611dac1eSNeil Armstrong	select PINCONF
344611dac1eSNeil Armstrong	select GENERIC_PINCONF
345611dac1eSNeil Armstrong	select GPIOLIB
346611dac1eSNeil Armstrong	select OF_GPIO
347611dac1eSNeil Armstrong	select GPIOLIB_IRQCHIP
348611dac1eSNeil Armstrong	select MFD_SYSCON
349611dac1eSNeil Armstrong
3500a8d3e24SLaxman Dewanganconfig PINCTRL_PALMAS
351767b8ce3SPaul Gortmaker	tristate "Pinctrl driver for the PALMAS Series MFD devices"
3520a8d3e24SLaxman Dewangan	depends on OF && MFD_PALMAS
35363ca8db7SAxel Lin	select PINMUX
3540a8d3e24SLaxman Dewangan	select GENERIC_PINCONF
3550a8d3e24SLaxman Dewangan	help
3560a8d3e24SLaxman Dewangan	  Palmas device supports the configuration of pins for different
3570a8d3e24SLaxman Dewangan	  functionality. This driver supports the pinmux, push-pull and
3580a8d3e24SLaxman Dewangan	  open drain configuration for the Palmas series devices like
3590a8d3e24SLaxman Dewangan	  TPS65913, TPS80036 etc.
3600a8d3e24SLaxman Dewangan
3612ba384e6SJoshua Hendersonconfig PINCTRL_PIC32
3622ba384e6SJoshua Henderson	bool "Microchip PIC32 pin controller driver"
3632ba384e6SJoshua Henderson	depends on OF
3642ba384e6SJoshua Henderson	depends on MACH_PIC32
3652ba384e6SJoshua Henderson	select PINMUX
3662ba384e6SJoshua Henderson	select GENERIC_PINCONF
3672ba384e6SJoshua Henderson	select GPIOLIB_IRQCHIP
3682ba384e6SJoshua Henderson	select OF_GPIO
3692ba384e6SJoshua Henderson	help
3702ba384e6SJoshua Henderson	  This is the pin controller and gpio driver for Microchip PIC32
3712ba384e6SJoshua Henderson	  microcontrollers. This option is selected automatically when specific
3722ba384e6SJoshua Henderson	  machine and arch are selected to build.
3732ba384e6SJoshua Henderson
3742ba384e6SJoshua Hendersonconfig PINCTRL_PIC32MZDA
3752ba384e6SJoshua Henderson	def_bool y if PIC32MZDA
3762ba384e6SJoshua Henderson	select PINCTRL_PIC32
3772ba384e6SJoshua Henderson
378b124c8bdSAndy Shevchenkoconfig PINCTRL_PISTACHIO
379b124c8bdSAndy Shevchenko	bool "IMG Pistachio SoC pinctrl driver"
380b124c8bdSAndy Shevchenko	depends on OF && (MIPS || COMPILE_TEST)
381b124c8bdSAndy Shevchenko	depends on GPIOLIB
382b124c8bdSAndy Shevchenko	select PINMUX
383b124c8bdSAndy Shevchenko	select GENERIC_PINCONF
384b124c8bdSAndy Shevchenko	select GPIOLIB_IRQCHIP
385b124c8bdSAndy Shevchenko	select OF_GPIO
386b124c8bdSAndy Shevchenko	help
387b124c8bdSAndy Shevchenko	  This support pinctrl and GPIO driver for IMG Pistachio SoC.
388b124c8bdSAndy Shevchenko
389b124c8bdSAndy Shevchenkoconfig PINCTRL_RK805
390b124c8bdSAndy Shevchenko	tristate "Pinctrl and GPIO driver for RK805 PMIC"
391b124c8bdSAndy Shevchenko	depends on MFD_RK808
392b124c8bdSAndy Shevchenko	select GPIOLIB
393b124c8bdSAndy Shevchenko	select PINMUX
394b124c8bdSAndy Shevchenko	select GENERIC_PINCONF
395b124c8bdSAndy Shevchenko	help
396b124c8bdSAndy Shevchenko	  This selects the pinctrl driver for RK805.
397b124c8bdSAndy Shevchenko
398b58f0273SJames Hoganconfig PINCTRL_ROCKCHIP
399b58f0273SJames Hogan	tristate "Rockchip gpio and pinctrl driver"
400b58f0273SJames Hogan	depends on ARCH_ROCKCHIP || COMPILE_TEST
401b58f0273SJames Hogan	depends on OF
402b58f0273SJames Hogan	select GPIOLIB
4033bece55aSLinus Walleij	select PINMUX
4043bece55aSLinus Walleij	select GENERIC_PINCONF
40598da3529SLinus Walleij	select GENERIC_IRQ_CHIP
40698da3529SLinus Walleij	select MFD_SYSCON
407dc0b1aa3SLinus Walleij	select OF_GPIO
40845f034efSLinus Walleij	default ARCH_ROCKCHIP
409ca402d37SLinus Walleij	help
410b124c8bdSAndy Shevchenko          This support pinctrl and GPIO driver for Rockchip SoCs.
411f0b9a7e5SThomas Abraham
412af99a750SHeiko Stuebnerconfig PINCTRL_SINGLE
413af99a750SHeiko Stuebner	tristate "One-register-per-pin type device tree based pinctrl driver"
414af99a750SHeiko Stuebner	depends on OF
415af99a750SHeiko Stuebner	depends on HAS_IOMEM
416af99a750SHeiko Stuebner	select GENERIC_PINCTRL_GROUPS
41761dd7261STomasz Figa	select GENERIC_PINMUX_FUNCTIONS
41861dd7261STomasz Figa	select GENERIC_PINCONF
41961dd7261STomasz Figa	help
42061dd7261STomasz Figa	  This selects the device tree based generic pinctrl driver.
42161dd7261STomasz Figa
422ca402d37SLinus Walleijconfig PINCTRL_ST
423ca402d37SLinus Walleij	bool
424ca402d37SLinus Walleij	depends on OF
425ca402d37SLinus Walleij	select PINMUX
426ca402d37SLinus Walleij	select PINCONF
42730574f0dSThomas Abraham	select GPIOLIB_IRQCHIP
428cbc351abSArnd Bergmann
429ec648f6bSEmil Renner Berthingconfig PINCTRL_STARFIVE
430ec648f6bSEmil Renner Berthing	tristate "Pinctrl and GPIO driver for the StarFive JH7100 SoC"
431ec648f6bSEmil Renner Berthing	depends on SOC_STARFIVE || COMPILE_TEST
432ec648f6bSEmil Renner Berthing	depends on OF
433ec648f6bSEmil Renner Berthing	default SOC_STARFIVE
434ec648f6bSEmil Renner Berthing	select GENERIC_PINCTRL_GROUPS
435ec648f6bSEmil Renner Berthing	select GENERIC_PINMUX_FUNCTIONS
436ec648f6bSEmil Renner Berthing	select GENERIC_PINCONF
437ec648f6bSEmil Renner Berthing	select GPIOLIB
438ec648f6bSEmil Renner Berthing	select GPIOLIB_IRQCHIP
439ec648f6bSEmil Renner Berthing	select OF_GPIO
440ec648f6bSEmil Renner Berthing	help
441ec648f6bSEmil Renner Berthing	  Say yes here to support pin control on the StarFive JH7100 SoC.
442ec648f6bSEmil Renner Berthing	  This also provides an interface to the GPIO pins not used by other
443ec648f6bSEmil Renner Berthing	  peripherals supporting inputs, outputs, configuring pull-up/pull-down
444ec648f6bSEmil Renner Berthing	  and interrupts on input changes.
445ec648f6bSEmil Renner Berthing
44630574f0dSThomas Abrahamconfig PINCTRL_STMFX
44730574f0dSThomas Abraham	tristate "STMicroelectronics STMFX GPIO expander pinctrl driver"
448924da314SAxel Lin	depends on I2C
44930574f0dSThomas Abraham	depends on OF_GPIO
45030574f0dSThomas Abraham	select GENERIC_PINCONF
45130574f0dSThomas Abraham	select GPIOLIB_IRQCHIP
45243b169dbSThomas Abraham	select MFD_STMFX
45343b169dbSThomas Abraham	help
454924da314SAxel Lin	  Driver for STMicroelectronics Multi-Function eXpander (STMFX)
45543b169dbSThomas Abraham	  GPIO expander.
45643b169dbSThomas Abraham	  This provides a GPIO interface supporting inputs and outputs,
45706763c74SThomas Petazzoni	  and configuring push-pull, open-drain, and can also be used as
458463e270fSThomas Petazzoni	  interrupt-controller.
459deda8287SViresh Kumar
460b124c8bdSAndy Shevchenkoconfig PINCTRL_SX150X
461b124c8bdSAndy Shevchenko	bool "Semtech SX150x I2C GPIO expander pinctrl driver"
462b124c8bdSAndy Shevchenko	depends on I2C=y
463deda8287SViresh Kumar	select PINMUX
464b124c8bdSAndy Shevchenko	select PINCONF
4652744e8afSLinus Walleij	select GENERIC_PINCONF
466b124c8bdSAndy Shevchenko	select GPIOLIB
467485dba27SMasahiro Yamada	select GPIOLIB_IRQCHIP
468b124c8bdSAndy Shevchenko	select REGMAP
469b17f2f9bSRay Jui	help
470b124c8bdSAndy Shevchenko	  Say Y here to provide support for Semtech SX150x-series I2C
471b124c8bdSAndy Shevchenko	  GPIO expanders as pinctrl module.
472b124c8bdSAndy Shevchenko	  Compatible models include:
473b124c8bdSAndy Shevchenko	  - 8 bits:  sx1508q, sx1502q
474b124c8bdSAndy Shevchenko	  - 16 bits: sx1509q, sx1506q
4752744e8afSLinus Walleij
476b124c8bdSAndy Shevchenkoconfig PINCTRL_TB10X
477b124c8bdSAndy Shevchenko	bool
478b124c8bdSAndy Shevchenko	depends on OF && ARC_PLAT_TB10X
479b124c8bdSAndy Shevchenko	select GPIOLIB
480b124c8bdSAndy Shevchenko
481b124c8bdSAndy Shevchenkoconfig PINCTRL_THUNDERBAY
482b124c8bdSAndy Shevchenko	tristate "Generic pinctrl and GPIO driver for Intel Thunder Bay SoC"
483b124c8bdSAndy Shevchenko	depends on ARCH_THUNDERBAY || (ARM64 && COMPILE_TEST)
484b124c8bdSAndy Shevchenko	depends on HAS_IOMEM
485b124c8bdSAndy Shevchenko	select PINMUX
486b124c8bdSAndy Shevchenko	select PINCONF
487b124c8bdSAndy Shevchenko	select GENERIC_PINCONF
488b124c8bdSAndy Shevchenko	select GENERIC_PINCTRL_GROUPS
489b124c8bdSAndy Shevchenko	select GENERIC_PINMUX_FUNCTIONS
490b124c8bdSAndy Shevchenko	select GPIOLIB
491b124c8bdSAndy Shevchenko	select GPIOLIB_IRQCHIP
492b124c8bdSAndy Shevchenko	select GPIO_GENERIC
493b124c8bdSAndy Shevchenko	help
494b124c8bdSAndy Shevchenko	  This selects pin control driver for the Intel Thunder Bay SoC.
495b124c8bdSAndy Shevchenko	  It provides pin config functions such as pull-up, pull-down,
496b124c8bdSAndy Shevchenko	  interrupt, drive strength, sec lock, Schmitt trigger, slew
497b124c8bdSAndy Shevchenko	  rate control and direction control. This module will be
498b124c8bdSAndy Shevchenko	  called as pinctrl-thunderbay.
499ebe629a3SSachin Kamat
5002744e8afSLinus Walleijconfig PINCTRL_ZYNQ
5012744e8afSLinus Walleij	bool "Pinctrl driver for Xilinx Zynq"
502aceb16dcSMaxime Coquelin	depends on ARCH_ZYNQ
5035f910777SMaxime Ripard	select PINMUX
50425cbac77SMasahiro Yamada	select GENERIC_PINCONF
5056e908892SMasahiro Yamada	help
506170c6152STony Prisk	  This selects the pinctrl driver for Xilinx Zynq.
507a6df410dSHongzhou Yang
5088b242ca7SSai Krishna Potthuriconfig PINCTRL_ZYNQMP
5098b242ca7SSai Krishna Potthuri	tristate "Pinctrl driver for Xilinx ZynqMP"
5108b242ca7SSai Krishna Potthuri	depends on ZYNQMP_FIRMWARE
5118b242ca7SSai Krishna Potthuri	select PINMUX
5128b242ca7SSai Krishna Potthuri	select GENERIC_PINCONF
5138b242ca7SSai Krishna Potthuri	default ZYNQMP_FIRMWARE
5148b242ca7SSai Krishna Potthuri	help
5158b242ca7SSai Krishna Potthuri	  This selects the pinctrl driver for Xilinx ZynqMP platform.
5168b242ca7SSai Krishna Potthuri	  This driver will query the pin information from the firmware
5178b242ca7SSai Krishna Potthuri	  and allow configuring the pins.
5188b242ca7SSai Krishna Potthuri	  Configuration can include the mux function to select on those
5198b242ca7SSai Krishna Potthuri	  pin(s)/group(s), and various pin configuration parameters
5208b242ca7SSai Krishna Potthuri	  such as pull-up, slew rate, etc.
521fa99e701SSai Krishna Potthuri	  This driver can also be built as a module. If so, the module
522fa99e701SSai Krishna Potthuri	  will be called pinctrl-zynqmp.
5238b242ca7SSai Krishna Potthuri
5242242ddfbSManivannan Sadhasivamsource "drivers/pinctrl/actions/Kconfig"
5254d3d0e42SAndrew Jefferysource "drivers/pinctrl/aspeed/Kconfig"
5262744e8afSLinus Walleijsource "drivers/pinctrl/bcm/Kconfig"
5272744e8afSLinus Walleijsource "drivers/pinctrl/berlin/Kconfig"
528b124c8bdSAndy Shevchenkosource "drivers/pinctrl/cirrus/Kconfig"
5292744e8afSLinus Walleijsource "drivers/pinctrl/freescale/Kconfig"
5302744e8afSLinus Walleijsource "drivers/pinctrl/intel/Kconfig"
531b124c8bdSAndy Shevchenkosource "drivers/pinctrl/mediatek/Kconfig"
532b124c8bdSAndy Shevchenkosource "drivers/pinctrl/meson/Kconfig"
5332744e8afSLinus Walleijsource "drivers/pinctrl/mvebu/Kconfig"
5342744e8afSLinus Walleijsource "drivers/pinctrl/nomadik/Kconfig"
5353b588e43STomer Maimonsource "drivers/pinctrl/nuvoton/Kconfig"
5362744e8afSLinus Walleijsource "drivers/pinctrl/pxa/Kconfig"
5372744e8afSLinus Walleijsource "drivers/pinctrl/qcom/Kconfig"
538518b466aSSergio Paracuellossource "drivers/pinctrl/ralink/Kconfig"
539077365a9SGeert Uytterhoevensource "drivers/pinctrl/renesas/Kconfig"
5402744e8afSLinus Walleijsource "drivers/pinctrl/samsung/Kconfig"
5412744e8afSLinus Walleijsource "drivers/pinctrl/spear/Kconfig"
54241d32cfcSBaolin Wangsource "drivers/pinctrl/sprd/Kconfig"
5432744e8afSLinus Walleijsource "drivers/pinctrl/stm32/Kconfig"
544aa74c44bSWells Lusource "drivers/pinctrl/sunplus/Kconfig"
5452744e8afSLinus Walleijsource "drivers/pinctrl/sunxi/Kconfig"
5462744e8afSLinus Walleijsource "drivers/pinctrl/tegra/Kconfig"
547003910ebSNishanth Menonsource "drivers/pinctrl/ti/Kconfig"
5482744e8afSLinus Walleijsource "drivers/pinctrl/uniphier/Kconfig"
549a68a7844SNobuhiro Iwamatsusource "drivers/pinctrl/visconti/Kconfig"
550b124c8bdSAndy Shevchenkosource "drivers/pinctrl/vt8500/Kconfig"
5511948d5c5SRahul Tanwar
552d219b924SPhil Reidendif
553