xref: /linux/drivers/pinctrl/Kconfig (revision 2d32fba02e0e5b67fb3a4ea51dde80c0db83f1c1)
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
130576623d7SAngeloGioacchino Del Regnoconfig PINCTRL_AW9523
131d295ad7eSLinus Walleij	tristate "Awinic AW9523/AW9523B I2C GPIO expander pinctrl driver"
132576623d7SAngeloGioacchino Del Regno	depends on OF && I2C
133576623d7SAngeloGioacchino Del Regno	select PINMUX
134576623d7SAngeloGioacchino Del Regno	select PINCONF
135576623d7SAngeloGioacchino Del Regno	select GENERIC_PINCONF
136576623d7SAngeloGioacchino Del Regno	select GPIOLIB
137576623d7SAngeloGioacchino Del Regno	select GPIOLIB_IRQCHIP
138576623d7SAngeloGioacchino Del Regno	select REGMAP
139576623d7SAngeloGioacchino Del Regno	select REGMAP_I2C
140576623d7SAngeloGioacchino Del Regno	help
141576623d7SAngeloGioacchino Del Regno	  The Awinic AW9523/AW9523B is a multi-function I2C GPIO
142576623d7SAngeloGioacchino Del Regno	  expander with PWM functionality. This driver bundles a
143576623d7SAngeloGioacchino Del Regno	  pinctrl driver to select the function muxing and a GPIO
144576623d7SAngeloGioacchino Del Regno	  driver to handle GPIO, when the GPIO function is selected.
145576623d7SAngeloGioacchino Del Regno
146576623d7SAngeloGioacchino Del Regno	  Say yes to enable pinctrl and GPIO support for the AW9523(B).
147576623d7SAngeloGioacchino Del Regno
1488f3f0246SManivannan Sadhasivamconfig PINCTRL_BM1880
1498f3f0246SManivannan Sadhasivam	bool "Bitmain BM1880 Pinctrl driver"
1508293b3c6SManivannan Sadhasivam	depends on OF && (ARCH_BITMAIN || COMPILE_TEST)
1518293b3c6SManivannan Sadhasivam	default ARCH_BITMAIN
1528f3f0246SManivannan Sadhasivam	select PINMUX
1538f3f0246SManivannan Sadhasivam	help
1548f3f0246SManivannan Sadhasivam	  Pinctrl driver for Bitmain BM1880 SoC.
1558f3f0246SManivannan Sadhasivam
156e6cbbe42SPatrick Rudolphconfig PINCTRL_CY8C95X0
157e6cbbe42SPatrick Rudolph	tristate "Cypress CY8C95X0 I2C pinctrl and GPIO driver"
1588586466eSAndy Shevchenko	depends on I2C
159e6cbbe42SPatrick Rudolph	select GPIOLIB
160e6cbbe42SPatrick Rudolph	select GPIOLIB_IRQCHIP
161e6cbbe42SPatrick Rudolph	select PINMUX
162e6cbbe42SPatrick Rudolph	select PINCONF
163e6cbbe42SPatrick Rudolph	select GENERIC_PINCONF
164e6cbbe42SPatrick Rudolph	select REGMAP_I2C
165e6cbbe42SPatrick Rudolph	help
166e6cbbe42SPatrick Rudolph	  Support for 20/40/60 pin Cypress Cy8C95x0 pinctrl/gpio I2C expander.
167e6cbbe42SPatrick Rudolph	  This driver can also be built as a module. If so, the module will be
168e6cbbe42SPatrick Rudolph	  called pinctrl-cy8c95x0.
169e6cbbe42SPatrick Rudolph
1701ff91f0aSDavid Lechnerconfig PINCTRL_DA850_PUPD
171b124c8bdSAndy Shevchenko	tristate "TI DA850/OMAP-L138/AM18XX pull-up and pull-down groups"
1721ff91f0aSDavid Lechner	depends on OF && (ARCH_DAVINCI_DA850 || COMPILE_TEST)
1731ff91f0aSDavid Lechner	select PINCONF
1741ff91f0aSDavid Lechner	select GENERIC_PINCONF
1751ff91f0aSDavid Lechner	help
1761ff91f0aSDavid Lechner	  Driver for TI DA850/OMAP-L138/AM18XX pinconf. Used to control
177b124c8bdSAndy Shevchenko	  pull-up and pull-down pin groups.
1781ff91f0aSDavid Lechner
17956cc3af4SMarco Felschconfig PINCTRL_DA9062
18056cc3af4SMarco Felsch	tristate "Dialog Semiconductor DA9062 PMIC pinctrl and GPIO Support"
18156cc3af4SMarco Felsch	depends on MFD_DA9062
18256cc3af4SMarco Felsch	select GPIOLIB
18356cc3af4SMarco Felsch	help
18456cc3af4SMarco Felsch	  The Dialog DA9062 PMIC provides multiple GPIOs that can be muxed for
18556cc3af4SMarco Felsch	  different functions. This driver bundles a pinctrl driver to select the
18656cc3af4SMarco Felsch	  function muxing and a GPIO driver to handle the GPIO when the GPIO
18756cc3af4SMarco Felsch	  function is selected.
18856cc3af4SMarco Felsch
189b124c8bdSAndy Shevchenko	  Say Y to enable pinctrl and GPIO support for the DA9062 PMIC.
19056cc3af4SMarco Felsch
19138b0e507SBaruch Siachconfig PINCTRL_DIGICOLOR
19238b0e507SBaruch Siach	bool
193083b0230SAndy Shevchenko	depends on ARCH_DIGICOLOR || COMPILE_TEST
19438b0e507SBaruch Siach	select PINMUX
19538b0e507SBaruch Siach	select GENERIC_PINCONF
19638b0e507SBaruch Siach
197035f9007SNikita Shubinconfig PINCTRL_EP93XX
198035f9007SNikita Shubin	bool
199035f9007SNikita Shubin	depends on ARCH_EP93XX || COMPILE_TEST
200035f9007SNikita Shubin	select PINMUX
201035f9007SNikita Shubin	select GENERIC_PINCONF
202035f9007SNikita Shubin	select MFD_SYSCON
203035f9007SNikita Shubin
204b124c8bdSAndy Shevchenkoconfig PINCTRL_EQUILIBRIUM
205b124c8bdSAndy Shevchenko	tristate "Generic pinctrl and GPIO driver for Intel Lightning Mountain SoC"
206b124c8bdSAndy Shevchenko	depends on OF && HAS_IOMEM
207b124c8bdSAndy Shevchenko	depends on X86 || COMPILE_TEST
208b124c8bdSAndy Shevchenko	select PINMUX
209b124c8bdSAndy Shevchenko	select PINCONF
210b124c8bdSAndy Shevchenko	select GPIOLIB
211b124c8bdSAndy Shevchenko	select GPIO_GENERIC
212b124c8bdSAndy Shevchenko	select GPIOLIB_IRQCHIP
213b124c8bdSAndy Shevchenko	select GENERIC_PINCONF
214b124c8bdSAndy Shevchenko	select GENERIC_PINCTRL_GROUPS
215b124c8bdSAndy Shevchenko	select GENERIC_PINMUX_FUNCTIONS
216b124c8bdSAndy Shevchenko	help
217b124c8bdSAndy Shevchenko	  Equilibrium driver is a pinctrl and GPIO driver for Intel Lightning
218b124c8bdSAndy Shevchenko	  Mountain network processor SoC that supports both the GPIO and pin
219b124c8bdSAndy Shevchenko	  control frameworks. It provides interfaces to setup pin muxing, assign
220b124c8bdSAndy Shevchenko	  desired pin functions, configure GPIO attributes for LGM SoC pins.
221b124c8bdSAndy Shevchenko	  Pin muxing and pin config settings are retrieved from device tree.
222b124c8bdSAndy Shevchenko
22341795aa1SThéo Lebrunconfig PINCTRL_EYEQ5
22441795aa1SThéo Lebrun	bool "Mobileye EyeQ5 pinctrl driver"
22541795aa1SThéo Lebrun	depends on OF
22641795aa1SThéo Lebrun	depends on MACH_EYEQ5 || COMPILE_TEST
22741795aa1SThéo Lebrun	select PINMUX
22841795aa1SThéo Lebrun	select GENERIC_PINCONF
22941795aa1SThéo Lebrun	select AUXILIARY_BUS
23041795aa1SThéo Lebrun	default MACH_EYEQ5
23141795aa1SThéo Lebrun	help
23241795aa1SThéo Lebrun	  Pin controller driver for the Mobileye EyeQ5 platform. It does both
23341795aa1SThéo Lebrun	  pin config & pin muxing. It does not handle GPIO.
23441795aa1SThéo Lebrun
23541795aa1SThéo Lebrun	  Pin muxing supports two functions for each pin: first is GPIO, second
23641795aa1SThéo Lebrun	  is pin-dependent. Pin config is about bias & drive strength.
23741795aa1SThéo Lebrun
238b124c8bdSAndy Shevchenkoconfig PINCTRL_GEMINI
239b124c8bdSAndy Shevchenko	bool
240b124c8bdSAndy Shevchenko	depends on ARCH_GEMINI
241b124c8bdSAndy Shevchenko	default ARCH_GEMINI
242b124c8bdSAndy Shevchenko	select PINMUX
243b124c8bdSAndy Shevchenko	select GENERIC_PINCONF
244b124c8bdSAndy Shevchenko	select MFD_SYSCON
245b124c8bdSAndy Shevchenko
246b124c8bdSAndy Shevchenkoconfig PINCTRL_INGENIC
247b124c8bdSAndy Shevchenko	bool "Pinctrl driver for the Ingenic JZ47xx SoCs"
248b124c8bdSAndy Shevchenko	default MACH_INGENIC
249b124c8bdSAndy Shevchenko	depends on OF
250b124c8bdSAndy Shevchenko	depends on MIPS || COMPILE_TEST
251b124c8bdSAndy Shevchenko	select GENERIC_PINCONF
252b124c8bdSAndy Shevchenko	select GENERIC_PINCTRL_GROUPS
253b124c8bdSAndy Shevchenko	select GENERIC_PINMUX_FUNCTIONS
254b124c8bdSAndy Shevchenko	select GPIOLIB
255b124c8bdSAndy Shevchenko	select GPIOLIB_IRQCHIP
256b124c8bdSAndy Shevchenko	select REGMAP_MMIO
257b124c8bdSAndy Shevchenko
258b124c8bdSAndy Shevchenkoconfig PINCTRL_K210
259b124c8bdSAndy Shevchenko	bool "Pinctrl driver for the Canaan Kendryte K210 SoC"
260c1556a9bSYangyu Chen	depends on RISCV && SOC_CANAAN_K210 && OF
261b124c8bdSAndy Shevchenko	select GENERIC_PINMUX_FUNCTIONS
262b124c8bdSAndy Shevchenko	select GENERIC_PINCONF
263b124c8bdSAndy Shevchenko	select GPIOLIB
264b124c8bdSAndy Shevchenko	select OF_GPIO
265b124c8bdSAndy Shevchenko	select REGMAP_MMIO
266c1556a9bSYangyu Chen	default SOC_CANAAN_K210
267b124c8bdSAndy Shevchenko	help
268b124c8bdSAndy Shevchenko	  Add support for the Canaan Kendryte K210 RISC-V SOC Field
269b124c8bdSAndy Shevchenko	  Programmable IO Array (FPIOA) controller.
270b124c8bdSAndy Shevchenko
271545887eaSZe Huangconfig PINCTRL_K230
272545887eaSZe Huang	bool "Pinctrl driver for the Canaan Kendryte K230 SoC"
273545887eaSZe Huang	depends on OF
274642490b5SGeert Uytterhoeven	depends on ARCH_CANAAN || COMPILE_TEST
275545887eaSZe Huang	select GENERIC_PINCTRL_GROUPS
276545887eaSZe Huang	select GENERIC_PINMUX_FUNCTIONS
277545887eaSZe Huang	select GENERIC_PINCONF
278545887eaSZe Huang	select REGMAP_MMIO
279545887eaSZe Huang	help
280545887eaSZe Huang	  Add support for the Canaan Kendryte K230 RISC-V SOC pin controller.
281545887eaSZe Huang
282b124c8bdSAndy Shevchenkoconfig PINCTRL_KEEMBAY
283b124c8bdSAndy Shevchenko	tristate "Pinctrl driver for Intel Keem Bay SoC"
284b124c8bdSAndy Shevchenko	depends on ARCH_KEEMBAY || (ARM64 && COMPILE_TEST)
285b124c8bdSAndy Shevchenko	depends on HAS_IOMEM
286b124c8bdSAndy Shevchenko	select PINMUX
287b124c8bdSAndy Shevchenko	select PINCONF
288b124c8bdSAndy Shevchenko	select GENERIC_PINCONF
289b124c8bdSAndy Shevchenko	select GENERIC_PINCTRL_GROUPS
290b124c8bdSAndy Shevchenko	select GENERIC_PINMUX_FUNCTIONS
291b124c8bdSAndy Shevchenko	select GPIOLIB
292b124c8bdSAndy Shevchenko	select GPIOLIB_IRQCHIP
293b124c8bdSAndy Shevchenko	select GPIO_GENERIC
294b124c8bdSAndy Shevchenko	help
295b124c8bdSAndy Shevchenko	  This selects pin control driver for the Intel Keem Bay SoC.
296b124c8bdSAndy Shevchenko	  It provides pin config functions such as pull-up, pull-down,
297b124c8bdSAndy Shevchenko	  interrupt, drive strength, sec lock, Schmitt trigger, slew
298b124c8bdSAndy Shevchenko	  rate control and direction control. This module will be
299b124c8bdSAndy Shevchenko	  called as pinctrl-keembay.
300b124c8bdSAndy Shevchenko
3013f8c50c9SJohn Crispinconfig PINCTRL_LANTIQ
3023f8c50c9SJohn Crispin	bool
3033f8c50c9SJohn Crispin	depends on LANTIQ
3043f8c50c9SJohn Crispin	select PINMUX
3053f8c50c9SJohn Crispin	select PINCONF
3063f8c50c9SJohn Crispin
307b124c8bdSAndy Shevchenkoconfig PINCTRL_FALCON
308b124c8bdSAndy Shevchenko	bool
309b124c8bdSAndy Shevchenko	depends on SOC_FALCON
310b124c8bdSAndy Shevchenko	depends on PINCTRL_LANTIQ
311b124c8bdSAndy Shevchenko
312f73f88acSzhanghongchenconfig PINCTRL_LOONGSON2
313f73f88acSzhanghongchen	tristate "Pinctrl driver for the Loongson-2 SoC"
314c0f358fdSRen Zhijie	depends on OF && (LOONGARCH || COMPILE_TEST)
315f73f88acSzhanghongchen	select PINMUX
316f73f88acSzhanghongchen	select GENERIC_PINCONF
317f73f88acSzhanghongchen	help
318f73f88acSzhanghongchen	 This selects pin control driver for the Loongson-2 SoC. It
319f73f88acSzhanghongchen	 provides pin config functions multiplexing.  GPIO pin pull-up,
320f73f88acSzhanghongchen	 pull-down functions are not supported. Say yes to enable
321f73f88acSzhanghongchen	 pinctrl for Loongson-2 SoC.
322f73f88acSzhanghongchen
323b124c8bdSAndy Shevchenkoconfig PINCTRL_XWAY
324b124c8bdSAndy Shevchenko	bool
325b124c8bdSAndy Shevchenko	depends on SOC_TYPE_XWAY
326b124c8bdSAndy Shevchenko	depends on PINCTRL_LANTIQ
327b124c8bdSAndy Shevchenko
3282f77ac93SJoachim Eastwoodconfig PINCTRL_LPC18XX
3292f77ac93SJoachim Eastwood	bool "NXP LPC18XX/43XX SCU pinctrl driver"
3302f77ac93SJoachim Eastwood	depends on OF && (ARCH_LPC18XX || COMPILE_TEST)
3312f77ac93SJoachim Eastwood	default ARCH_LPC18XX
3322f77ac93SJoachim Eastwood	select PINMUX
3332f77ac93SJoachim Eastwood	select GENERIC_PINCONF
3342f77ac93SJoachim Eastwood	help
3352f77ac93SJoachim Eastwood	  Pinctrl driver for NXP LPC18xx/43xx System Control Unit (SCU).
3362f77ac93SJoachim Eastwood
337b124c8bdSAndy Shevchenkoconfig PINCTRL_MAX77620
338b124c8bdSAndy Shevchenko	tristate "MAX77620/MAX20024 Pincontrol support"
339b124c8bdSAndy Shevchenko	depends on MFD_MAX77620 && OF
34006351d13SLinus Walleij	select PINMUX
3411c5b7f3cSLinus Walleij	select GENERIC_PINCONF
342b124c8bdSAndy Shevchenko	help
343b124c8bdSAndy Shevchenko	  Say Y here to enable Pin control support for Maxim MAX77620 PMIC.
344b124c8bdSAndy Shevchenko	  This PMIC has 8 GPIO pins that work as GPIO as well as special
345b124c8bdSAndy Shevchenko	  function in alternate mode. This driver also configure push-pull,
346b124c8bdSAndy Shevchenko	  open drain, FPS slots etc.
34706351d13SLinus Walleij
3480f04a817SAndy Shevchenkoconfig PINCTRL_MCP23S08_I2C
3490f04a817SAndy Shevchenko	tristate
3500f04a817SAndy Shevchenko	select REGMAP_I2C
3510f04a817SAndy Shevchenko
3520f04a817SAndy Shevchenkoconfig PINCTRL_MCP23S08_SPI
3530f04a817SAndy Shevchenko	tristate
3540f04a817SAndy Shevchenko	select REGMAP_SPI
3550f04a817SAndy Shevchenko
35664ac43e6SSebastian Reichelconfig PINCTRL_MCP23S08
35764ac43e6SSebastian Reichel	tristate "Microchip MCP23xxx I/O expander"
35864ac43e6SSebastian Reichel	depends on SPI_MASTER || I2C
359e2a021d4SLinus Walleij	select GPIOLIB
36064ac43e6SSebastian Reichel	select GPIOLIB_IRQCHIP
36182039d24SSebastian Reichel	select GENERIC_PINCONF
3620f04a817SAndy Shevchenko	select PINCTRL_MCP23S08_I2C if I2C
3630f04a817SAndy Shevchenko	select PINCTRL_MCP23S08_SPI if SPI_MASTER
36464ac43e6SSebastian Reichel	help
3656ff45566SJan Kundrát	  SPI/I2C driver for Microchip MCP23S08 / MCP23S17 / MCP23S18 /
3666ff45566SJan Kundrát	  MCP23008 / MCP23017 / MCP23018 I/O expanders.
3676ff45566SJan Kundrát	  This provides a GPIO interface supporting inputs and outputs and a
3686ff45566SJan Kundrát	  corresponding interrupt-controller.
36964ac43e6SSebastian Reichel
370b124c8bdSAndy Shevchenkoconfig PINCTRL_MICROCHIP_SGPIO
3712f65923cSColin Foster	tristate "Pinctrl driver for Microsemi/Microchip Serial GPIO"
372b124c8bdSAndy Shevchenko	depends on OF
373b124c8bdSAndy Shevchenko	depends on HAS_IOMEM
374b124c8bdSAndy Shevchenko	select GPIOLIB
375b124c8bdSAndy Shevchenko	select GPIOLIB_IRQCHIP
376b124c8bdSAndy Shevchenko	select GENERIC_PINCONF
377b124c8bdSAndy Shevchenko	select GENERIC_PINCTRL_GROUPS
378b124c8bdSAndy Shevchenko	select GENERIC_PINMUX_FUNCTIONS
379b124c8bdSAndy Shevchenko	select OF_GPIO
380b124c8bdSAndy Shevchenko	help
381b124c8bdSAndy Shevchenko	  Support for the serial GPIO interface used on Microsemi and
382b124c8bdSAndy Shevchenko	  Microchip SoCs. By using a serial interface, the SIO
383b124c8bdSAndy Shevchenko	  controller significantly extends the number of available
384b124c8bdSAndy Shevchenko	  GPIOs with a minimum number of additional pins on the
385b124c8bdSAndy Shevchenko	  device. The primary purpose of the SIO controller is to
386b124c8bdSAndy Shevchenko	  connect control signals from SFP modules and to act as an
387b124c8bdSAndy Shevchenko	  LED controller.
388b124c8bdSAndy Shevchenko
3892f65923cSColin Foster	  If compiled as a module, the module name will be
3902f65923cSColin Foster	  pinctrl-microchip-sgpio.
3912f65923cSColin Foster
392b124c8bdSAndy Shevchenkoconfig PINCTRL_OCELOT
3934425205eSClément Léger	tristate "Pinctrl driver for the Microsemi Ocelot and Jaguar2 SoCs"
394b124c8bdSAndy Shevchenko	depends on OF
395b124c8bdSAndy Shevchenko	depends on HAS_IOMEM
396b124c8bdSAndy Shevchenko	select GPIOLIB
397b124c8bdSAndy Shevchenko	select GPIOLIB_IRQCHIP
398b124c8bdSAndy Shevchenko	select GENERIC_PINCONF
399b124c8bdSAndy Shevchenko	select GENERIC_PINCTRL_GROUPS
400b124c8bdSAndy Shevchenko	select GENERIC_PINMUX_FUNCTIONS
401b124c8bdSAndy Shevchenko	select OF_GPIO
402b124c8bdSAndy Shevchenko	select REGMAP_MMIO
4033f668365SColin Foster	help
4043f668365SColin Foster	  Support for the internal GPIO interfaces on Microsemi Ocelot and
4053f668365SColin Foster	  Jaguar2 SoCs.
4063f668365SColin Foster
4073f668365SColin Foster	  If conpiled as a module, the module name will be pinctrl-ocelot.
408b124c8bdSAndy Shevchenko
4090a8d3e24SLaxman Dewanganconfig PINCTRL_PALMAS
410767b8ce3SPaul Gortmaker	tristate "Pinctrl driver for the PALMAS Series MFD devices"
4110a8d3e24SLaxman Dewangan	depends on OF && MFD_PALMAS
41263ca8db7SAxel Lin	select PINMUX
4130a8d3e24SLaxman Dewangan	select GENERIC_PINCONF
4140a8d3e24SLaxman Dewangan	help
4150a8d3e24SLaxman Dewangan	  Palmas device supports the configuration of pins for different
4160a8d3e24SLaxman Dewangan	  functionality. This driver supports the pinmux, push-pull and
4170a8d3e24SLaxman Dewangan	  open drain configuration for the Palmas series devices like
4180a8d3e24SLaxman Dewangan	  TPS65913, TPS80036 etc.
4190a8d3e24SLaxman Dewangan
42037c646dcSHerve Codinaconfig PINCTRL_PEF2256
42137c646dcSHerve Codina	tristate "Lantiq PEF2256 (FALC56) pin controller driver"
42237c646dcSHerve Codina	depends on OF && FRAMER_PEF2256
42337c646dcSHerve Codina	select PINMUX
42437c646dcSHerve Codina	select PINCONF
42537c646dcSHerve Codina	select GENERIC_PINCONF
42637c646dcSHerve Codina	help
42737c646dcSHerve Codina	  This option enables the pin controller support for the Lantiq PEF2256
42837c646dcSHerve Codina	  framer, also known as FALC56.
42937c646dcSHerve Codina
43037c646dcSHerve Codina	  If unsure, say N.
43137c646dcSHerve Codina
43237c646dcSHerve Codina	  To compile this driver as a module, choose M here: the
43337c646dcSHerve Codina	  module will be called pinctrl-pef2256.
43437c646dcSHerve Codina
4352ba384e6SJoshua Hendersonconfig PINCTRL_PIC32
4362ba384e6SJoshua Henderson	bool "Microchip PIC32 pin controller driver"
4372ba384e6SJoshua Henderson	depends on OF
4382ba384e6SJoshua Henderson	depends on MACH_PIC32
4392ba384e6SJoshua Henderson	select PINMUX
4402ba384e6SJoshua Henderson	select GENERIC_PINCONF
4412ba384e6SJoshua Henderson	select GPIOLIB_IRQCHIP
4422ba384e6SJoshua Henderson	select OF_GPIO
4432ba384e6SJoshua Henderson	help
4442ba384e6SJoshua Henderson	  This is the pin controller and gpio driver for Microchip PIC32
4452ba384e6SJoshua Henderson	  microcontrollers. This option is selected automatically when specific
4462ba384e6SJoshua Henderson	  machine and arch are selected to build.
4472ba384e6SJoshua Henderson
4482ba384e6SJoshua Hendersonconfig PINCTRL_PIC32MZDA
4492ba384e6SJoshua Henderson	def_bool y if PIC32MZDA
4502ba384e6SJoshua Henderson	select PINCTRL_PIC32
4512ba384e6SJoshua Henderson
452b124c8bdSAndy Shevchenkoconfig PINCTRL_PISTACHIO
453b124c8bdSAndy Shevchenko	bool "IMG Pistachio SoC pinctrl driver"
454b124c8bdSAndy Shevchenko	depends on OF && (MIPS || COMPILE_TEST)
455b124c8bdSAndy Shevchenko	depends on GPIOLIB
456b124c8bdSAndy Shevchenko	select PINMUX
457b124c8bdSAndy Shevchenko	select GENERIC_PINCONF
458b124c8bdSAndy Shevchenko	select GPIOLIB_IRQCHIP
459b124c8bdSAndy Shevchenko	select OF_GPIO
460b124c8bdSAndy Shevchenko	help
461b124c8bdSAndy Shevchenko	  This support pinctrl and GPIO driver for IMG Pistachio SoC.
462b124c8bdSAndy Shevchenko
463b124c8bdSAndy Shevchenkoconfig PINCTRL_RK805
464b124c8bdSAndy Shevchenko	tristate "Pinctrl and GPIO driver for RK805 PMIC"
465c20e8c5bSSebastian Reichel	depends on MFD_RK8XX
466b124c8bdSAndy Shevchenko	select GPIOLIB
467b124c8bdSAndy Shevchenko	select PINMUX
468b124c8bdSAndy Shevchenko	select GENERIC_PINCONF
469b124c8bdSAndy Shevchenko	help
470b124c8bdSAndy Shevchenko	  This selects the pinctrl driver for RK805.
471b124c8bdSAndy Shevchenko
472b58f0273SJames Hoganconfig PINCTRL_ROCKCHIP
473b58f0273SJames Hogan	tristate "Rockchip gpio and pinctrl driver"
474b58f0273SJames Hogan	depends on ARCH_ROCKCHIP || COMPILE_TEST
475b58f0273SJames Hogan	depends on OF
476b58f0273SJames Hogan	select GPIOLIB
4773bece55aSLinus Walleij	select PINMUX
4783bece55aSLinus Walleij	select GENERIC_PINCONF
47998da3529SLinus Walleij	select GENERIC_IRQ_CHIP
48098da3529SLinus Walleij	select MFD_SYSCON
481dc0b1aa3SLinus Walleij	select OF_GPIO
48245f034efSLinus Walleij	default ARCH_ROCKCHIP
483ca402d37SLinus Walleij	help
484b124c8bdSAndy Shevchenko          This support pinctrl and GPIO driver for Rockchip SoCs.
485f0b9a7e5SThomas Abraham
486eb524cb6SPeng Fanconfig PINCTRL_SCMI
487eb524cb6SPeng Fan	tristate "Pinctrl driver using SCMI protocol interface"
488eb524cb6SPeng Fan	depends on ARM_SCMI_PROTOCOL || COMPILE_TEST
489eb524cb6SPeng Fan	select PINMUX
490eb524cb6SPeng Fan	select GENERIC_PINCONF
491eb524cb6SPeng Fan	help
492eb524cb6SPeng Fan	  This driver provides support for pinctrl which is controlled
493eb524cb6SPeng Fan	  by firmware that implements the SCMI interface.
494eb524cb6SPeng Fan	  It uses SCMI Message Protocol to interact with the
495eb524cb6SPeng Fan	  firmware providing all the pinctrl controls.
496eb524cb6SPeng Fan
497af99a750SHeiko Stuebnerconfig PINCTRL_SINGLE
498af99a750SHeiko Stuebner	tristate "One-register-per-pin type device tree based pinctrl driver"
499af99a750SHeiko Stuebner	depends on OF
500af99a750SHeiko Stuebner	depends on HAS_IOMEM
50161dd7261STomasz Figa	select GENERIC_PINCTRL_GROUPS
50261dd7261STomasz Figa	select GENERIC_PINMUX_FUNCTIONS
50361dd7261STomasz Figa	select GENERIC_PINCONF
50461dd7261STomasz Figa	help
50561dd7261STomasz Figa	  This selects the device tree based generic pinctrl driver.
50606763c74SThomas Petazzoni
507ca402d37SLinus Walleijconfig PINCTRL_ST
508ca402d37SLinus Walleij	bool
509ca402d37SLinus Walleij	depends on OF
51030574f0dSThomas Abraham	select PINMUX
511cbc351abSArnd Bergmann	select PINCONF
512924da314SAxel Lin	select GPIOLIB_IRQCHIP
51330574f0dSThomas Abraham
51430574f0dSThomas Abrahamconfig PINCTRL_STMFX
51530574f0dSThomas Abraham	tristate "STMicroelectronics STMFX GPIO expander pinctrl driver"
51643b169dbSThomas Abraham	depends on I2C
51743b169dbSThomas Abraham	depends on OF_GPIO
518924da314SAxel Lin	select GENERIC_PINCONF
51943b169dbSThomas Abraham	select GPIOLIB_IRQCHIP
52043b169dbSThomas Abraham	select MFD_STMFX
5217e8d9415SSebastian Hesselbarth	help
5227e8d9415SSebastian Hesselbarth	  Driver for STMicroelectronics Multi-Function eXpander (STMFX)
5237e8d9415SSebastian Hesselbarth	  GPIO expander.
5247e8d9415SSebastian Hesselbarth	  This provides a GPIO interface supporting inputs and outputs,
5257e8d9415SSebastian Hesselbarth	  and configuring push-pull, open-drain, and can also be used as
5267e8d9415SSebastian Hesselbarth	  interrupt-controller.
527c9f95cedSSebastian Hesselbarth
528b124c8bdSAndy Shevchenkoconfig PINCTRL_SX150X
529b124c8bdSAndy Shevchenko	bool "Semtech SX150x I2C GPIO expander pinctrl driver"
530b124c8bdSAndy Shevchenko	depends on I2C=y
531deda8287SViresh Kumar	select PINMUX
532b124c8bdSAndy Shevchenko	select PINCONF
5332744e8afSLinus Walleij	select GENERIC_PINCONF
534b124c8bdSAndy Shevchenko	select GPIOLIB
535485dba27SMasahiro Yamada	select GPIOLIB_IRQCHIP
536b124c8bdSAndy Shevchenko	select REGMAP
537b17f2f9bSRay Jui	help
538b124c8bdSAndy Shevchenko	  Say Y here to provide support for Semtech SX150x-series I2C
539b124c8bdSAndy Shevchenko	  GPIO expanders as pinctrl module.
540b124c8bdSAndy Shevchenko	  Compatible models include:
541b124c8bdSAndy Shevchenko	  - 8 bits:  sx1508q, sx1502q
542b124c8bdSAndy Shevchenko	  - 16 bits: sx1509q, sx1506q
5432744e8afSLinus Walleij
544b124c8bdSAndy Shevchenkoconfig PINCTRL_TB10X
545b124c8bdSAndy Shevchenko	bool
546b124c8bdSAndy Shevchenko	depends on OF && ARC_PLAT_TB10X
547b124c8bdSAndy Shevchenko	select GPIOLIB
548b124c8bdSAndy Shevchenko
549901b277eSEsteban Blancconfig PINCTRL_TPS6594
550901b277eSEsteban Blanc	tristate "Pinctrl and GPIO driver for TI TPS6594 PMIC"
551901b277eSEsteban Blanc	depends on OF && MFD_TPS6594
552901b277eSEsteban Blanc	default MFD_TPS6594
553901b277eSEsteban Blanc	select PINMUX
554901b277eSEsteban Blanc	select GPIOLIB
555901b277eSEsteban Blanc	select REGMAP
556901b277eSEsteban Blanc	select GPIO_REGMAP
557901b277eSEsteban Blanc	select GENERIC_PINCONF
558901b277eSEsteban Blanc	help
559901b277eSEsteban Blanc	  Say Y to select the pinmuxing and GPIOs driver for the TPS6594
560901b277eSEsteban Blanc	  PMICs chip family.
561901b277eSEsteban Blanc
562901b277eSEsteban Blanc	  This driver can also be built as a module
563901b277eSEsteban Blanc	  called tps6594-pinctrl.
564901b277eSEsteban Blanc
565bed5cd6fSEmil Renner Berthingconfig PINCTRL_TH1520
566bed5cd6fSEmil Renner Berthing	tristate "Pinctrl driver for the T-Head TH1520 SoC"
567bed5cd6fSEmil Renner Berthing	depends on ARCH_THEAD || COMPILE_TEST
56860ba5da2SArnd Bergmann	depends on OF
569bed5cd6fSEmil Renner Berthing	select GENERIC_PINMUX_FUNCTIONS
570bed5cd6fSEmil Renner Berthing	select GENERIC_PINCONF
571bed5cd6fSEmil Renner Berthing	select PINMUX
572bed5cd6fSEmil Renner Berthing	help
573bed5cd6fSEmil Renner Berthing	  This is the driver for the pin controller blocks on the
574bed5cd6fSEmil Renner Berthing	  T-Head TH1520 SoC.
575bed5cd6fSEmil Renner Berthing
576bed5cd6fSEmil Renner Berthing	  This driver is needed for RISC-V development boards like
577bed5cd6fSEmil Renner Berthing	  the BeagleV Ahead and the LicheePi 4A.
578bed5cd6fSEmil Renner Berthing
5792744e8afSLinus Walleijconfig PINCTRL_ZYNQ
5802744e8afSLinus Walleij	bool "Pinctrl driver for Xilinx Zynq"
5812744e8afSLinus Walleij	depends on ARCH_ZYNQ
5822744e8afSLinus Walleij	select PINMUX
5832744e8afSLinus Walleij	select GENERIC_PINCONF
5842744e8afSLinus Walleij	help
5852744e8afSLinus Walleij	  This selects the pinctrl driver for Xilinx Zynq.
5862744e8afSLinus Walleij
5878b242ca7SSai Krishna Potthuriconfig PINCTRL_ZYNQMP
5888b242ca7SSai Krishna Potthuri	tristate "Pinctrl driver for Xilinx ZynqMP"
5898b242ca7SSai Krishna Potthuri	depends on ZYNQMP_FIRMWARE
5908b242ca7SSai Krishna Potthuri	select PINMUX
5918b242ca7SSai Krishna Potthuri	select GENERIC_PINCONF
5928b242ca7SSai Krishna Potthuri	default ZYNQMP_FIRMWARE
5938b242ca7SSai Krishna Potthuri	help
5948b242ca7SSai Krishna Potthuri	  This selects the pinctrl driver for Xilinx ZynqMP platform.
5958b242ca7SSai Krishna Potthuri	  This driver will query the pin information from the firmware
5968b242ca7SSai Krishna Potthuri	  and allow configuring the pins.
5978b242ca7SSai Krishna Potthuri	  Configuration can include the mux function to select on those
5988b242ca7SSai Krishna Potthuri	  pin(s)/group(s), and various pin configuration parameters
5998b242ca7SSai Krishna Potthuri	  such as pull-up, slew rate, etc.
600fa99e701SSai Krishna Potthuri	  This driver can also be built as a module. If so, the module
601fa99e701SSai Krishna Potthuri	  will be called pinctrl-zynqmp.
6028b242ca7SSai Krishna Potthuri
603d11f9328SAsmaa Mnebhiconfig PINCTRL_MLXBF3
604d11f9328SAsmaa Mnebhi	tristate "NVIDIA BlueField-3 SoC Pinctrl driver"
605d11f9328SAsmaa Mnebhi	depends on (MELLANOX_PLATFORM && ARM64) || COMPILE_TEST
606d11f9328SAsmaa Mnebhi	select PINMUX
607d11f9328SAsmaa Mnebhi	select GPIOLIB
608d11f9328SAsmaa Mnebhi	select GPIOLIB_IRQCHIP
609d11f9328SAsmaa Mnebhi	help
610d11f9328SAsmaa Mnebhi	  Say Y to select the pinctrl driver for BlueField-3 SoCs.
611d11f9328SAsmaa Mnebhi	  This pin controller allows selecting the mux function for
612d11f9328SAsmaa Mnebhi	  each pin. This driver can also be built as a module called
613d11f9328SAsmaa Mnebhi	  pinctrl-mlxbf3.
614d11f9328SAsmaa Mnebhi
6152242ddfbSManivannan Sadhasivamsource "drivers/pinctrl/actions/Kconfig"
6164d3d0e42SAndrew Jefferysource "drivers/pinctrl/aspeed/Kconfig"
6172744e8afSLinus Walleijsource "drivers/pinctrl/bcm/Kconfig"
6182744e8afSLinus Walleijsource "drivers/pinctrl/berlin/Kconfig"
619b124c8bdSAndy Shevchenkosource "drivers/pinctrl/cirrus/Kconfig"
6202744e8afSLinus Walleijsource "drivers/pinctrl/freescale/Kconfig"
6212744e8afSLinus Walleijsource "drivers/pinctrl/intel/Kconfig"
622b124c8bdSAndy Shevchenkosource "drivers/pinctrl/mediatek/Kconfig"
623b124c8bdSAndy Shevchenkosource "drivers/pinctrl/meson/Kconfig"
6242744e8afSLinus Walleijsource "drivers/pinctrl/mvebu/Kconfig"
6253a198059SLinus Walleijsource "drivers/pinctrl/nomadik/Kconfig"
6263b588e43STomer Maimonsource "drivers/pinctrl/nuvoton/Kconfig"
627fd84aaa8SChester Linsource "drivers/pinctrl/nxp/Kconfig"
6284b15ec9dSRobert Jarzmiksource "drivers/pinctrl/pxa/Kconfig"
62969b78b8dSLinus Walleijsource "drivers/pinctrl/qcom/Kconfig"
630e99ce780STzuyi Changsource "drivers/pinctrl/realtek/Kconfig"
631077365a9SGeert Uytterhoevensource "drivers/pinctrl/renesas/Kconfig"
632ebe629a3SSachin Kamatsource "drivers/pinctrl/samsung/Kconfig"
633a29d8e93SInochi Amaotosource "drivers/pinctrl/sophgo/Kconfig"
634*a83c29e1SYixun Lansource "drivers/pinctrl/spacemit/Kconfig"
6352744e8afSLinus Walleijsource "drivers/pinctrl/spear/Kconfig"
63641d32cfcSBaolin Wangsource "drivers/pinctrl/sprd/Kconfig"
637ba7fdf88SJianlong Huangsource "drivers/pinctrl/starfive/Kconfig"
638aceb16dcSMaxime Coquelinsource "drivers/pinctrl/stm32/Kconfig"
639aa74c44bSWells Lusource "drivers/pinctrl/sunplus/Kconfig"
6405f910777SMaxime Ripardsource "drivers/pinctrl/sunxi/Kconfig"
64125cbac77SMasahiro Yamadasource "drivers/pinctrl/tegra/Kconfig"
642003910ebSNishanth Menonsource "drivers/pinctrl/ti/Kconfig"
6436e908892SMasahiro Yamadasource "drivers/pinctrl/uniphier/Kconfig"
644a68a7844SNobuhiro Iwamatsusource "drivers/pinctrl/visconti/Kconfig"
645b124c8bdSAndy Shevchenkosource "drivers/pinctrl/vt8500/Kconfig"
6461948d5c5SRahul Tanwar
647d219b924SPhil Reidendif
648