xref: /linux/drivers/pinctrl/Kconfig (revision 5a49b644b3075f88126918804601fef40368a4c3)
12744e8afSLinus Walleij#
22744e8afSLinus Walleij# PINCTRL infrastructure and drivers
32744e8afSLinus Walleij#
42744e8afSLinus Walleij
545f034efSLinus Walleijconfig PINCTRL
645f034efSLinus Walleij	bool
72744e8afSLinus Walleij
845f034efSLinus Walleijmenu "Pin controllers"
945f034efSLinus Walleij	depends on 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
34e9a03addSSonic Zhangconfig PINCTRL_ADI2
35e9a03addSSonic Zhang	bool "ADI pin controller driver"
369d7278d0SSonic Zhang	depends on BLACKFIN
37e9a03addSSonic Zhang	select PINMUX
38e9a03addSSonic Zhang	select IRQ_DOMAIN
39e9a03addSSonic Zhang	help
40e9a03addSSonic Zhang	  This is the pin controller and gpio driver for ADI BF54x, BF60x and
41e9a03addSSonic Zhang	  future processors. This option is selected automatically when specific
42e9a03addSSonic Zhang	  machine and arch are selected to build.
43e9a03addSSonic Zhang
4400df0582SJesper Nilssonconfig PINCTRL_ARTPEC6
4500df0582SJesper Nilsson        bool "Axis ARTPEC-6 pin controller driver"
4600df0582SJesper Nilsson        depends on MACH_ARTPEC6
4700df0582SJesper Nilsson        select PINMUX
4800df0582SJesper Nilsson        select GENERIC_PINCONF
4900df0582SJesper Nilsson        help
5000df0582SJesper Nilsson          This is the driver for the Axis ARTPEC-6 pin controller. This driver
5100df0582SJesper Nilsson          supports pin function multiplexing as well as pin bias and drive
5200df0582SJesper Nilsson          strength configuration. Device tree integration instructions can be
5300df0582SJesper Nilsson          found in Documentation/devicetree/bindings/pinctrl/axis,artpec6-pinctrl.txt
5400df0582SJesper Nilsson
55c8ce8782SLaxman Dewanganconfig PINCTRL_AS3722
569385f35dSPaul Gortmaker	tristate "Pinctrl and GPIO driver for ams AS3722 PMIC"
57c8ce8782SLaxman Dewangan	depends on MFD_AS3722 && GPIOLIB
58c8ce8782SLaxman Dewangan	select PINMUX
59c8ce8782SLaxman Dewangan	select GENERIC_PINCONF
60c8ce8782SLaxman Dewangan	help
61c8ce8782SLaxman Dewangan	  AS3722 device supports the configuration of GPIO pins for different
62c8ce8782SLaxman Dewangan	  functionality. This driver supports the pinmux, push-pull and
63c8ce8782SLaxman Dewangan	  open drain configuration for the GPIO pins of AS3722 devices. It also
64c8ce8782SLaxman Dewangan	  supports the GPIO functionality through gpiolib.
65c8ce8782SLaxman Dewangan
66e9a03addSSonic Zhangconfig PINCTRL_BF54x
67e9a03addSSonic Zhang	def_bool y if BF54x
68e9a03addSSonic Zhang	select PINCTRL_ADI2
69e9a03addSSonic Zhang
70e9a03addSSonic Zhangconfig PINCTRL_BF60x
71e9a03addSSonic Zhang	def_bool y if BF60x
72e9a03addSSonic Zhang	select PINCTRL_ADI2
73e9a03addSSonic Zhang
746732ae5cSJean-Christophe PLAGNIOL-VILLARDconfig PINCTRL_AT91
756732ae5cSJean-Christophe PLAGNIOL-VILLARD	bool "AT91 pinctrl driver"
766732ae5cSJean-Christophe PLAGNIOL-VILLARD	depends on OF
776732ae5cSJean-Christophe PLAGNIOL-VILLARD	depends on ARCH_AT91
786732ae5cSJean-Christophe PLAGNIOL-VILLARD	select PINMUX
796732ae5cSJean-Christophe PLAGNIOL-VILLARD	select PINCONF
8080cc3732SAlexander Stein	select GPIOLIB
8180cc3732SAlexander Stein	select OF_GPIO
8280cc3732SAlexander Stein	select GPIOLIB_IRQCHIP
836732ae5cSJean-Christophe PLAGNIOL-VILLARD	help
846732ae5cSJean-Christophe PLAGNIOL-VILLARD	  Say Y here to enable the at91 pinctrl driver
856732ae5cSJean-Christophe PLAGNIOL-VILLARD
8677618084SLudovic Desrochesconfig PINCTRL_AT91PIO4
8777618084SLudovic Desroches	bool "AT91 PIO4 pinctrl driver"
8877618084SLudovic Desroches	depends on OF
8977618084SLudovic Desroches	depends on ARCH_AT91
9077618084SLudovic Desroches	select PINMUX
9177618084SLudovic Desroches	select GENERIC_PINCONF
9277618084SLudovic Desroches	select GPIOLIB
9377618084SLudovic Desroches	select GPIOLIB_IRQCHIP
9477618084SLudovic Desroches	select OF_GPIO
9577618084SLudovic Desroches	help
9677618084SLudovic Desroches	  Say Y here to enable the at91 pinctrl/gpio driver for Atmel PIO4
9777618084SLudovic Desroches	  controller available on sama5d2 SoC.
9877618084SLudovic Desroches
99dbad75ddSKen Xueconfig PINCTRL_AMD
100337ea0fbSJean Delvare	tristate "AMD GPIO pin control"
101dbad75ddSKen Xue	depends on GPIOLIB
102dbad75ddSKen Xue	select GPIOLIB_IRQCHIP
103dbad75ddSKen Xue	select PINCONF
104dbad75ddSKen Xue	select GENERIC_PINCONF
105dbad75ddSKen Xue	help
106dbad75ddSKen Xue	  driver for memory mapped GPIO functionality on AMD platforms
107dbad75ddSKen Xue	  (x86 or arm).Most pins are usually muxed to some other
108dbad75ddSKen Xue	  functionality by firmware,so only a small amount is available
109dbad75ddSKen Xue	  for gpio use.
110dbad75ddSKen Xue
111dbad75ddSKen Xue	  Requires ACPI/FDT device enumeration code to set up a platform
112dbad75ddSKen Xue	  device.
113dbad75ddSKen Xue
1141ff91f0aSDavid Lechnerconfig PINCTRL_DA850_PUPD
1151ff91f0aSDavid Lechner	tristate "TI DA850/OMAP-L138/AM18XX pullup/pulldown groups"
1161ff91f0aSDavid Lechner	depends on OF && (ARCH_DAVINCI_DA850 || COMPILE_TEST)
1171ff91f0aSDavid Lechner	select PINCONF
1181ff91f0aSDavid Lechner	select GENERIC_PINCONF
1191ff91f0aSDavid Lechner	help
1201ff91f0aSDavid Lechner	  Driver for TI DA850/OMAP-L138/AM18XX pinconf. Used to control
1211ff91f0aSDavid Lechner	  pullup/pulldown pin groups.
1221ff91f0aSDavid Lechner
12338b0e507SBaruch Siachconfig PINCTRL_DIGICOLOR
12438b0e507SBaruch Siach	bool
12538b0e507SBaruch Siach	depends on OF && (ARCH_DIGICOLOR || COMPILE_TEST)
12638b0e507SBaruch Siach	select PINMUX
12738b0e507SBaruch Siach	select GENERIC_PINCONF
12838b0e507SBaruch Siach
1293f8c50c9SJohn Crispinconfig PINCTRL_LANTIQ
1303f8c50c9SJohn Crispin	bool
1313f8c50c9SJohn Crispin	depends on LANTIQ
1323f8c50c9SJohn Crispin	select PINMUX
1333f8c50c9SJohn Crispin	select PINCONF
1343f8c50c9SJohn Crispin
1352f77ac93SJoachim Eastwoodconfig PINCTRL_LPC18XX
1362f77ac93SJoachim Eastwood	bool "NXP LPC18XX/43XX SCU pinctrl driver"
1372f77ac93SJoachim Eastwood	depends on OF && (ARCH_LPC18XX || COMPILE_TEST)
1382f77ac93SJoachim Eastwood	default ARCH_LPC18XX
1392f77ac93SJoachim Eastwood	select PINMUX
1402f77ac93SJoachim Eastwood	select GENERIC_PINCONF
1412f77ac93SJoachim Eastwood	help
1422f77ac93SJoachim Eastwood	  Pinctrl driver for NXP LPC18xx/43xx System Control Unit (SCU).
1432f77ac93SJoachim Eastwood
144e316cb2bSJohn Crispinconfig PINCTRL_FALCON
145e316cb2bSJohn Crispin	bool
146e316cb2bSJohn Crispin	depends on SOC_FALCON
147e316cb2bSJohn Crispin	depends on PINCTRL_LANTIQ
148e316cb2bSJohn Crispin
1496ac73095SBeniamino Galvaniconfig PINCTRL_MESON
1506ac73095SBeniamino Galvani	bool
151b99e6fb8SLinus Walleij	depends on OF
1526ac73095SBeniamino Galvani	select PINMUX
1536ac73095SBeniamino Galvani	select PINCONF
1546ac73095SBeniamino Galvani	select GENERIC_PINCONF
155b99e6fb8SLinus Walleij	select GPIOLIB
1566ac73095SBeniamino Galvani	select OF_GPIO
1576ac73095SBeniamino Galvani	select REGMAP_MMIO
1586ac73095SBeniamino Galvani
159611dac1eSNeil Armstrongconfig PINCTRL_OXNAS
160611dac1eSNeil Armstrong	bool
161611dac1eSNeil Armstrong	depends on OF
162611dac1eSNeil Armstrong	select PINMUX
163611dac1eSNeil Armstrong	select PINCONF
164611dac1eSNeil Armstrong	select GENERIC_PINCONF
165611dac1eSNeil Armstrong	select GPIOLIB
166611dac1eSNeil Armstrong	select OF_GPIO
167611dac1eSNeil Armstrong	select GPIOLIB_IRQCHIP
168611dac1eSNeil Armstrong	select MFD_SYSCON
169611dac1eSNeil Armstrong
170d3e51161SHeiko Stübnerconfig PINCTRL_ROCKCHIP
171d3e51161SHeiko Stübner	bool
172d3e51161SHeiko Stübner	select PINMUX
173d3e51161SHeiko Stübner	select GENERIC_PINCONF
174d3e51161SHeiko Stübner	select GENERIC_IRQ_CHIP
175751a99abSHeiko Stübner	select MFD_SYSCON
176d3e51161SHeiko Stübner
177*5a49b644SJacopo Mondiconfig PINCTRL_RZA1
178*5a49b644SJacopo Mondi	bool "Renesas RZ/A1 gpio and pinctrl driver"
179*5a49b644SJacopo Mondi	depends on OF
180*5a49b644SJacopo Mondi	depends on ARCH_R7S72100 || COMPILE_TEST
181*5a49b644SJacopo Mondi	select GPIOLIB
182*5a49b644SJacopo Mondi	select GENERIC_PINCTRL_GROUPS
183*5a49b644SJacopo Mondi	select GENERIC_PINMUX_FUNCTIONS
184*5a49b644SJacopo Mondi	select GENERIC_PINCONF
185*5a49b644SJacopo Mondi	help
186*5a49b644SJacopo Mondi	  This selects pinctrl driver for Renesas RZ/A1 platforms.
187*5a49b644SJacopo Mondi
1888b8b091bSTony Lindgrenconfig PINCTRL_SINGLE
1898b8b091bSTony Lindgren	tristate "One-register-per-pin type device tree based pinctrl driver"
1908b8b091bSTony Lindgren	depends on OF
191caeb774eSTony Lindgren	select GENERIC_PINCTRL_GROUPS
192571aec4dSTony Lindgren	select GENERIC_PINMUX_FUNCTIONS
1939dddb4dfSHaojian Zhuang	select GENERIC_PINCONF
1948b8b091bSTony Lindgren	help
1958b8b091bSTony Lindgren	  This selects the device tree based generic pinctrl driver.
1968b8b091bSTony Lindgren
1973bece55aSLinus Walleijconfig PINCTRL_SIRF
198a17272a4SBarry Song	bool "CSR SiRFprimaII pin controller driver"
199d3e26f2fSBarry Song	depends on ARCH_SIRF
200393daa81SRongjun Ying	select PINMUX
201f9367793SWei Chen	select PINCONF
202f9367793SWei Chen	select GENERIC_PINCONF
2037420d2d0SLinus Walleij	select GPIOLIB_IRQCHIP
204393daa81SRongjun Ying
2059e80f906SNeil Armstrongconfig PINCTRL_SX150X
2069e80f906SNeil Armstrong	bool "Semtech SX150x I2C GPIO expander pinctrl driver"
2079e80f906SNeil Armstrong	depends on GPIOLIB && I2C=y
2089e80f906SNeil Armstrong	select PINMUX
2099e80f906SNeil Armstrong	select PINCONF
2109e80f906SNeil Armstrong	select GENERIC_PINCONF
2119e80f906SNeil Armstrong	select GPIOLIB_IRQCHIP
2120db0f26cSAndrey Smirnov	select REGMAP
2139e80f906SNeil Armstrong	help
2149e80f906SNeil Armstrong	  Say yes here to provide support for Semtech SX150x-series I2C
2159e80f906SNeil Armstrong	  GPIO expanders as pinctrl module.
2169e80f906SNeil Armstrong	  Compatible models include:
2179e80f906SNeil Armstrong	  - 8 bits:  sx1508q, sx1502q
2189e80f906SNeil Armstrong	  - 16 bits: sx1509q, sx1506q
2199e80f906SNeil Armstrong
220cefc03e5SAndrew Brestickerconfig PINCTRL_PISTACHIO
221cefc03e5SAndrew Bresticker	def_bool y if MACH_PISTACHIO
222cefc03e5SAndrew Bresticker	depends on GPIOLIB
223cefc03e5SAndrew Bresticker	select PINMUX
224cefc03e5SAndrew Bresticker	select GENERIC_PINCONF
225cefc03e5SAndrew Bresticker	select GPIOLIB_IRQCHIP
226cefc03e5SAndrew Bresticker	select OF_GPIO
227cefc03e5SAndrew Bresticker
228701016c0SSrinivas KANDAGATLAconfig PINCTRL_ST
229701016c0SSrinivas KANDAGATLA	bool
230701016c0SSrinivas KANDAGATLA	depends on OF
231701016c0SSrinivas KANDAGATLA	select PINMUX
232701016c0SSrinivas KANDAGATLA	select PINCONF
233130cbe30SLinus Walleij	select GPIOLIB_IRQCHIP
234701016c0SSrinivas KANDAGATLA
235d5025f9fSJames Hoganconfig PINCTRL_TZ1090
236d5025f9fSJames Hogan	bool "Toumaz Xenif TZ1090 pin control driver"
237d5025f9fSJames Hogan	depends on SOC_TZ1090
238d5025f9fSJames Hogan	select PINMUX
239d5025f9fSJames Hogan	select GENERIC_PINCONF
240d5025f9fSJames Hogan
241b58f0273SJames Hoganconfig PINCTRL_TZ1090_PDC
242b58f0273SJames Hogan	bool "Toumaz Xenif TZ1090 PDC pin control driver"
243b58f0273SJames Hogan	depends on SOC_TZ1090
244b58f0273SJames Hogan	select PINMUX
245b58f0273SJames Hogan	select PINCONF
246b58f0273SJames Hogan
2473bece55aSLinus Walleijconfig PINCTRL_U300
2483bece55aSLinus Walleij	bool "U300 pin controller driver"
24998da3529SLinus Walleij	depends on ARCH_U300
25098da3529SLinus Walleij	select PINMUX
251dc0b1aa3SLinus Walleij	select GENERIC_PINCONF
25245f034efSLinus Walleij
253ca402d37SLinus Walleijconfig PINCTRL_COH901
254ca402d37SLinus Walleij	bool "ST-Ericsson U300 COH 901 335/571 GPIO"
2553c94d1bbSLinus Walleij	depends on GPIOLIB && ARCH_U300 && PINCTRL_U300
256523dcce7SLinus Walleij	select GPIOLIB_IRQCHIP
257ca402d37SLinus Walleij	help
258ca402d37SLinus Walleij	  Say yes here to support GPIO interface on ST-Ericsson U300.
259ca402d37SLinus Walleij	  The names of the two IP block variants supported are
260ca402d37SLinus Walleij	  COH 901 335 and COH 901 571/3. They contain 3, 5 or 7
261ca402d37SLinus Walleij	  ports of 8 GPIO pins each.
262ca402d37SLinus Walleij
2632df723d4SLaxman Dewanganconfig PINCTRL_MAX77620
2642df723d4SLaxman Dewangan	tristate "MAX77620/MAX20024 Pincontrol support"
26524d6a91cSArnd Bergmann	depends on MFD_MAX77620 && OF
26679f28b9fSArnd Bergmann	select PINMUX
2672df723d4SLaxman Dewangan	select GENERIC_PINCONF
2682df723d4SLaxman Dewangan	help
2692df723d4SLaxman Dewangan	  Say Yes here to enable Pin control support for Maxim PMIC MAX77620.
2702df723d4SLaxman Dewangan	  This PMIC has 8 GPIO pins that work as GPIO as well as special
2712df723d4SLaxman Dewangan	  function in alternate mode. This driver also configure push-pull,
2722df723d4SLaxman Dewangan	  open drain, FPS slots etc.
2732df723d4SLaxman Dewangan
2740a8d3e24SLaxman Dewanganconfig PINCTRL_PALMAS
275767b8ce3SPaul Gortmaker	tristate "Pinctrl driver for the PALMAS Series MFD devices"
2760a8d3e24SLaxman Dewangan	depends on OF && MFD_PALMAS
27763ca8db7SAxel Lin	select PINMUX
2780a8d3e24SLaxman Dewangan	select GENERIC_PINCONF
2790a8d3e24SLaxman Dewangan	help
2800a8d3e24SLaxman Dewangan	  Palmas device supports the configuration of pins for different
2810a8d3e24SLaxman Dewangan	  functionality. This driver supports the pinmux, push-pull and
2820a8d3e24SLaxman Dewangan	  open drain configuration for the Palmas series devices like
2830a8d3e24SLaxman Dewangan	  TPS65913, TPS80036 etc.
2840a8d3e24SLaxman Dewangan
2852ba384e6SJoshua Hendersonconfig PINCTRL_PIC32
2862ba384e6SJoshua Henderson	bool "Microchip PIC32 pin controller driver"
2872ba384e6SJoshua Henderson	depends on OF
2882ba384e6SJoshua Henderson	depends on MACH_PIC32
2892ba384e6SJoshua Henderson	select PINMUX
2902ba384e6SJoshua Henderson	select GENERIC_PINCONF
2912ba384e6SJoshua Henderson	select GPIOLIB_IRQCHIP
2922ba384e6SJoshua Henderson	select OF_GPIO
2932ba384e6SJoshua Henderson	help
2942ba384e6SJoshua Henderson	  This is the pin controller and gpio driver for Microchip PIC32
2952ba384e6SJoshua Henderson	  microcontrollers. This option is selected automatically when specific
2962ba384e6SJoshua Henderson	  machine and arch are selected to build.
2972ba384e6SJoshua Henderson
2982ba384e6SJoshua Hendersonconfig PINCTRL_PIC32MZDA
2992ba384e6SJoshua Henderson	def_bool y if PIC32MZDA
3002ba384e6SJoshua Henderson	select PINCTRL_PIC32
3012ba384e6SJoshua Henderson
302add958ceSSoren Brinkmannconfig PINCTRL_ZYNQ
303add958ceSSoren Brinkmann	bool "Pinctrl driver for Xilinx Zynq"
304add958ceSSoren Brinkmann	depends on ARCH_ZYNQ
305add958ceSSoren Brinkmann	select PINMUX
306add958ceSSoren Brinkmann	select GENERIC_PINCONF
307add958ceSSoren Brinkmann	help
308485dba27SMasahiro Yamada	  This selects the pinctrl driver for Xilinx Zynq.
309add958ceSSoren Brinkmann
3104d3d0e42SAndrew Jefferysource "drivers/pinctrl/aspeed/Kconfig"
311b17f2f9bSRay Juisource "drivers/pinctrl/bcm/Kconfig"
3123de68d33SAntoine Tenartsource "drivers/pinctrl/berlin/Kconfig"
313edad3b2aSLinus Walleijsource "drivers/pinctrl/freescale/Kconfig"
3145fae8b86SMika Westerbergsource "drivers/pinctrl/intel/Kconfig"
31506763c74SThomas Petazzonisource "drivers/pinctrl/mvebu/Kconfig"
3163a198059SLinus Walleijsource "drivers/pinctrl/nomadik/Kconfig"
3174b15ec9dSRobert Jarzmiksource "drivers/pinctrl/pxa/Kconfig"
31869b78b8dSLinus Walleijsource "drivers/pinctrl/qcom/Kconfig"
319ebe629a3SSachin Kamatsource "drivers/pinctrl/samsung/Kconfig"
3206e54d8d2SLaurent Pinchartsource "drivers/pinctrl/sh-pfc/Kconfig"
321deda8287SViresh Kumarsource "drivers/pinctrl/spear/Kconfig"
322aceb16dcSMaxime Coquelinsource "drivers/pinctrl/stm32/Kconfig"
3235f910777SMaxime Ripardsource "drivers/pinctrl/sunxi/Kconfig"
32425cbac77SMasahiro Yamadasource "drivers/pinctrl/tegra/Kconfig"
325003910ebSNishanth Menonsource "drivers/pinctrl/ti/Kconfig"
3266e908892SMasahiro Yamadasource "drivers/pinctrl/uniphier/Kconfig"
327170c6152STony Prisksource "drivers/pinctrl/vt8500/Kconfig"
328a6df410dSHongzhou Yangsource "drivers/pinctrl/mediatek/Kconfig"
329deda8287SViresh Kumar
3303f8c50c9SJohn Crispinconfig PINCTRL_XWAY
3313f8c50c9SJohn Crispin	bool
3323f8c50c9SJohn Crispin	depends on SOC_TYPE_XWAY
3333f8c50c9SJohn Crispin	depends on PINCTRL_LANTIQ
3343f8c50c9SJohn Crispin
3355aad0db1SChristian Ruppertconfig PINCTRL_TB10X
3365aad0db1SChristian Ruppert	bool
337b99e6fb8SLinus Walleij	depends on OF && ARC_PLAT_TB10X
338b99e6fb8SLinus Walleij	select GPIOLIB
3395aad0db1SChristian Ruppert
34045f034efSLinus Walleijendmenu
341