blob: 4571cc098b7628961c6b27682e1fdf238a8bcb82 [file] [log] [blame]
Linus Walleij2744e8a2011-05-02 20:50:54 +02001#
2# PINCTRL infrastructure and drivers
3#
4
Phil Reidd219b922017-10-06 13:08:05 +08005menuconfig PINCTRL
6 bool "Pin controllers"
Linus Walleij2744e8a2011-05-02 20:50:54 +02007
Phil Reidd219b922017-10-06 13:08:05 +08008if PINCTRL
Linus Walleij45f034e2011-11-05 21:28:46 +01009
Linus Walleijc033a712016-12-30 15:04:43 +010010config GENERIC_PINCTRL_GROUPS
Tony Lindgrenc7059c52016-12-27 09:20:00 -080011 bool
12
Linus Walleij2744e8a2011-05-02 20:50:54 +020013config PINMUX
Uwe Kleine-König244e95a2014-06-03 10:02:36 +020014 bool "Support pin multiplexing controllers" if COMPILE_TEST
Linus Walleijae6b4d82011-10-19 18:14:33 +020015
Tony Lindgrena76edc82016-12-27 09:20:01 -080016config GENERIC_PINMUX_FUNCTIONS
17 bool
18 select PINMUX
19
Linus Walleijae6b4d82011-10-19 18:14:33 +020020config PINCONF
Uwe Kleine-König244e95a2014-06-03 10:02:36 +020021 bool "Support pin configuration controllers" if COMPILE_TEST
Linus Walleij2744e8a2011-05-02 20:50:54 +020022
Linus Walleij394349f2011-11-24 18:27:15 +010023config GENERIC_PINCONF
24 bool
25 select PINCONF
26
Linus Walleij2744e8a2011-05-02 20:50:54 +020027config DEBUG_PINCTRL
28 bool "Debug PINCTRL calls"
29 depends on DEBUG_KERNEL
30 help
31 Say Y here to add some extra checks and diagnostics to PINCTRL calls.
32
Sonic Zhange9a03ad2013-09-03 16:28:59 +080033config PINCTRL_ADI2
34 bool "ADI pin controller driver"
Linus Walleij1c363532017-10-11 11:57:15 +020035 depends on (BF54x || BF60x)
36 depends on !GPIO_ADI
Sonic Zhange9a03ad2013-09-03 16:28:59 +080037 select PINMUX
38 select IRQ_DOMAIN
39 help
40 This is the pin controller and gpio driver for ADI BF54x, BF60x and
41 future processors. This option is selected automatically when specific
42 machine and arch are selected to build.
43
Jesper Nilsson00df0582017-04-03 14:47:04 +020044config PINCTRL_ARTPEC6
45 bool "Axis ARTPEC-6 pin controller driver"
46 depends on MACH_ARTPEC6
47 select PINMUX
48 select GENERIC_PINCONF
49 help
50 This is the driver for the Axis ARTPEC-6 pin controller. This driver
51 supports pin function multiplexing as well as pin bias and drive
52 strength configuration. Device tree integration instructions can be
53 found in Documentation/devicetree/bindings/pinctrl/axis,artpec6-pinctrl.txt
54
Laxman Dewanganc8ce8782013-10-02 21:20:29 +053055config PINCTRL_AS3722
Paul Gortmaker9385f352016-06-13 17:10:22 -040056 tristate "Pinctrl and GPIO driver for ams AS3722 PMIC"
Laxman Dewanganc8ce8782013-10-02 21:20:29 +053057 depends on MFD_AS3722 && GPIOLIB
58 select PINMUX
59 select GENERIC_PINCONF
60 help
61 AS3722 device supports the configuration of GPIO pins for different
62 functionality. This driver supports the pinmux, push-pull and
63 open drain configuration for the GPIO pins of AS3722 devices. It also
64 supports the GPIO functionality through gpiolib.
65
Sonic Zhange9a03ad2013-09-03 16:28:59 +080066config PINCTRL_BF54x
67 def_bool y if BF54x
68 select PINCTRL_ADI2
69
70config PINCTRL_BF60x
71 def_bool y if BF60x
72 select PINCTRL_ADI2
73
Jean-Christophe PLAGNIOL-VILLARD6732ae52012-07-12 23:35:02 +080074config PINCTRL_AT91
75 bool "AT91 pinctrl driver"
76 depends on OF
77 depends on ARCH_AT91
78 select PINMUX
79 select PINCONF
Alexander Stein80cc3732014-04-15 22:09:41 +020080 select GPIOLIB
81 select OF_GPIO
82 select GPIOLIB_IRQCHIP
Jean-Christophe PLAGNIOL-VILLARD6732ae52012-07-12 23:35:02 +080083 help
84 Say Y here to enable the at91 pinctrl driver
85
Ludovic Desroches77618082015-09-16 17:36:57 +020086config PINCTRL_AT91PIO4
87 bool "AT91 PIO4 pinctrl driver"
88 depends on OF
89 depends on ARCH_AT91
90 select PINMUX
91 select GENERIC_PINCONF
92 select GPIOLIB
93 select GPIOLIB_IRQCHIP
94 select OF_GPIO
95 help
96 Say Y here to enable the at91 pinctrl/gpio driver for Atmel PIO4
97 controller available on sama5d2 SoC.
98
Ken Xuedbad75d2015-03-10 15:02:19 +080099config PINCTRL_AMD
Jean Delvare337ea0f2016-02-11 12:06:37 +0100100 tristate "AMD GPIO pin control"
Linus Walleijfd35b202017-11-13 11:04:27 +0100101 depends on HAS_IOMEM
Linus Walleije2a021d2017-10-11 12:04:35 +0200102 select GPIOLIB
Ken Xuedbad75d2015-03-10 15:02:19 +0800103 select GPIOLIB_IRQCHIP
Petr Mladek83b31c22017-09-26 15:51:28 +0200104 select PINMUX
Ken Xuedbad75d2015-03-10 15:02:19 +0800105 select PINCONF
106 select GENERIC_PINCONF
107 help
108 driver for memory mapped GPIO functionality on AMD platforms
109 (x86 or arm).Most pins are usually muxed to some other
110 functionality by firmware,so only a small amount is available
111 for gpio use.
112
113 Requires ACPI/FDT device enumeration code to set up a platform
114 device.
115
David Lechner1ff91f02016-11-28 10:40:25 -0600116config PINCTRL_DA850_PUPD
117 tristate "TI DA850/OMAP-L138/AM18XX pullup/pulldown groups"
118 depends on OF && (ARCH_DAVINCI_DA850 || COMPILE_TEST)
119 select PINCONF
120 select GENERIC_PINCONF
121 help
122 Driver for TI DA850/OMAP-L138/AM18XX pinconf. Used to control
123 pullup/pulldown pin groups.
124
Baruch Siach38b0e502015-05-05 13:55:10 +0300125config PINCTRL_DIGICOLOR
126 bool
127 depends on OF && (ARCH_DIGICOLOR || COMPILE_TEST)
128 select PINMUX
129 select GENERIC_PINCONF
130
John Crispin3f8c50c2012-08-28 12:44:59 +0200131config PINCTRL_LANTIQ
132 bool
133 depends on LANTIQ
134 select PINMUX
135 select PINCONF
136
Joachim Eastwood2f77ac92015-04-28 00:14:08 +0200137config PINCTRL_LPC18XX
138 bool "NXP LPC18XX/43XX SCU pinctrl driver"
139 depends on OF && (ARCH_LPC18XX || COMPILE_TEST)
140 default ARCH_LPC18XX
141 select PINMUX
142 select GENERIC_PINCONF
143 help
144 Pinctrl driver for NXP LPC18xx/43xx System Control Unit (SCU).
145
John Crispine316cb22012-05-20 00:33:56 +0200146config PINCTRL_FALCON
147 bool
148 depends on SOC_FALCON
149 depends on PINCTRL_LANTIQ
150
Linus Walleij06351d12017-08-05 23:04:08 +0200151config PINCTRL_GEMINI
152 bool
153 depends on ARCH_GEMINI
154 default ARCH_GEMINI
155 select PINMUX
Linus Walleij1c5b7f32017-10-28 15:37:18 +0200156 select GENERIC_PINCONF
Linus Walleij06351d12017-08-05 23:04:08 +0200157 select MFD_SYSCON
158
Sebastian Reichel64ac43e2017-05-15 11:24:25 +0200159config PINCTRL_MCP23S08
160 tristate "Microchip MCP23xxx I/O expander"
Sebastian Reichel64ac43e2017-05-15 11:24:25 +0200161 depends on SPI_MASTER || I2C
Arnd Bergmannadeac772017-05-30 11:11:28 +0200162 depends on I2C || I2C=n
Linus Walleije2a021d2017-10-11 12:04:35 +0200163 select GPIOLIB
Sebastian Reichel64ac43e2017-05-15 11:24:25 +0200164 select GPIOLIB_IRQCHIP
165 select REGMAP_I2C if I2C
166 select REGMAP_SPI if SPI_MASTER
Sebastian Reichel82039d22017-05-15 11:24:26 +0200167 select GENERIC_PINCONF
Sebastian Reichel64ac43e2017-05-15 11:24:25 +0200168 help
169 SPI/I2C driver for Microchip MCP23S08/MCP23S17/MCP23008/MCP23017
170 I/O expanders.
171 This provides a GPIO interface supporting inputs and outputs.
172 The I2C versions of the chips can be used as interrupt-controller.
173
Neil Armstrong611dac12016-05-11 09:34:21 +0200174config PINCTRL_OXNAS
175 bool
176 depends on OF
177 select PINMUX
178 select PINCONF
179 select GENERIC_PINCONF
180 select GPIOLIB
181 select OF_GPIO
182 select GPIOLIB_IRQCHIP
183 select MFD_SYSCON
184
Heiko Stübnerd3e51162013-06-10 22:16:22 +0200185config PINCTRL_ROCKCHIP
186 bool
187 select PINMUX
188 select GENERIC_PINCONF
189 select GENERIC_IRQ_CHIP
Heiko Stübner751a99a2014-05-05 13:58:20 +0200190 select MFD_SYSCON
Heiko Stübnerd3e51162013-06-10 22:16:22 +0200191
Jacopo Mondi5a49b6442017-06-22 16:54:29 +0200192config PINCTRL_RZA1
193 bool "Renesas RZ/A1 gpio and pinctrl driver"
194 depends on OF
195 depends on ARCH_R7S72100 || COMPILE_TEST
196 select GPIOLIB
197 select GENERIC_PINCTRL_GROUPS
198 select GENERIC_PINMUX_FUNCTIONS
199 select GENERIC_PINCONF
200 help
201 This selects pinctrl driver for Renesas RZ/A1 platforms.
202
Tony Lindgren8b8b091b2012-07-10 02:05:46 -0700203config PINCTRL_SINGLE
204 tristate "One-register-per-pin type device tree based pinctrl driver"
205 depends on OF
Linus Walleijfd35b202017-11-13 11:04:27 +0100206 depends on HAS_IOMEM
Tony Lindgrencaeb7742016-12-27 09:20:02 -0800207 select GENERIC_PINCTRL_GROUPS
Tony Lindgren571aec42016-12-27 09:20:03 -0800208 select GENERIC_PINMUX_FUNCTIONS
Haojian Zhuang9dddb4d2013-02-17 19:42:55 +0800209 select GENERIC_PINCONF
Tony Lindgren8b8b091b2012-07-10 02:05:46 -0700210 help
211 This selects the device tree based generic pinctrl driver.
212
Linus Walleij3bece552011-12-18 23:44:26 +0100213config PINCTRL_SIRF
Barry Songa17272a2015-01-11 21:56:41 +0800214 bool "CSR SiRFprimaII pin controller driver"
Barry Songd3e26f22012-09-27 17:56:30 +0800215 depends on ARCH_SIRF
Rongjun Ying393daa82011-10-09 03:11:13 -0700216 select PINMUX
Wei Chenf9367792015-05-18 07:28:32 +0000217 select PINCONF
218 select GENERIC_PINCONF
Linus Walleij7420d2d2014-04-15 14:43:47 +0800219 select GPIOLIB_IRQCHIP
Rongjun Ying393daa82011-10-09 03:11:13 -0700220
Neil Armstrong9e80f902016-10-21 11:09:58 +0200221config PINCTRL_SX150X
222 bool "Semtech SX150x I2C GPIO expander pinctrl driver"
Linus Walleije2a021d2017-10-11 12:04:35 +0200223 depends on I2C=y
Neil Armstrong9e80f902016-10-21 11:09:58 +0200224 select PINMUX
225 select PINCONF
226 select GENERIC_PINCONF
Linus Walleije2a021d2017-10-11 12:04:35 +0200227 select GPIOLIB
Neil Armstrong9e80f902016-10-21 11:09:58 +0200228 select GPIOLIB_IRQCHIP
Andrey Smirnov0db0f262016-11-07 08:53:16 -0800229 select REGMAP
Neil Armstrong9e80f902016-10-21 11:09:58 +0200230 help
231 Say yes here to provide support for Semtech SX150x-series I2C
232 GPIO expanders as pinctrl module.
233 Compatible models include:
234 - 8 bits: sx1508q, sx1502q
235 - 16 bits: sx1509q, sx1506q
236
Andrew Brestickercefc03e2015-05-06 12:59:03 -0700237config PINCTRL_PISTACHIO
238 def_bool y if MACH_PISTACHIO
239 depends on GPIOLIB
240 select PINMUX
241 select GENERIC_PINCONF
242 select GPIOLIB_IRQCHIP
243 select OF_GPIO
244
Srinivas KANDAGATLA701016c2013-06-20 15:05:38 +0100245config PINCTRL_ST
246 bool
247 depends on OF
248 select PINMUX
249 select PINCONF
Linus Walleij130cbe32014-04-08 14:45:47 +0200250 select GPIOLIB_IRQCHIP
Srinivas KANDAGATLA701016c2013-06-20 15:05:38 +0100251
James Hogand5025f92013-06-20 10:26:27 +0100252config PINCTRL_TZ1090
253 bool "Toumaz Xenif TZ1090 pin control driver"
254 depends on SOC_TZ1090
255 select PINMUX
256 select GENERIC_PINCONF
257
James Hoganb58f0272013-06-20 10:26:29 +0100258config PINCTRL_TZ1090_PDC
259 bool "Toumaz Xenif TZ1090 PDC pin control driver"
260 depends on SOC_TZ1090
261 select PINMUX
262 select PINCONF
263
Linus Walleij3bece552011-12-18 23:44:26 +0100264config PINCTRL_U300
265 bool "U300 pin controller driver"
Linus Walleij98da3522011-05-02 20:54:38 +0200266 depends on ARCH_U300
267 select PINMUX
Linus Walleijdc0b1aa2011-11-16 21:58:10 +0100268 select GENERIC_PINCONF
Linus Walleij45f034e2011-11-05 21:28:46 +0100269
Linus Walleijca402d32011-11-16 09:22:59 +0100270config PINCTRL_COH901
271 bool "ST-Ericsson U300 COH 901 335/571 GPIO"
Linus Walleij3c94d1b2012-06-18 20:07:50 +0200272 depends on GPIOLIB && ARCH_U300 && PINCTRL_U300
Linus Walleij523dcce2014-03-25 13:37:17 +0100273 select GPIOLIB_IRQCHIP
Linus Walleijca402d32011-11-16 09:22:59 +0100274 help
275 Say yes here to support GPIO interface on ST-Ericsson U300.
276 The names of the two IP block variants supported are
277 COH 901 335 and COH 901 571/3. They contain 3, 5 or 7
278 ports of 8 GPIO pins each.
279
Laxman Dewangan2df723d42016-05-13 10:49:15 +0530280config PINCTRL_MAX77620
281 tristate "MAX77620/MAX20024 Pincontrol support"
Arnd Bergmann24d6a912016-10-28 10:19:05 +0200282 depends on MFD_MAX77620 && OF
Arnd Bergmann79f28b92016-06-13 17:18:35 +0200283 select PINMUX
Laxman Dewangan2df723d42016-05-13 10:49:15 +0530284 select GENERIC_PINCONF
285 help
286 Say Yes here to enable Pin control support for Maxim PMIC MAX77620.
287 This PMIC has 8 GPIO pins that work as GPIO as well as special
288 function in alternate mode. This driver also configure push-pull,
289 open drain, FPS slots etc.
290
Laxman Dewangan0a8d3e22013-08-06 18:42:35 +0530291config PINCTRL_PALMAS
Paul Gortmaker767b8ce2016-06-13 17:10:21 -0400292 tristate "Pinctrl driver for the PALMAS Series MFD devices"
Laxman Dewangan0a8d3e22013-08-06 18:42:35 +0530293 depends on OF && MFD_PALMAS
Axel Lin63ca8db2013-08-22 14:30:08 +0800294 select PINMUX
Laxman Dewangan0a8d3e22013-08-06 18:42:35 +0530295 select GENERIC_PINCONF
296 help
297 Palmas device supports the configuration of pins for different
298 functionality. This driver supports the pinmux, push-pull and
299 open drain configuration for the Palmas series devices like
300 TPS65913, TPS80036 etc.
301
Joshua Henderson2ba384e2016-02-01 15:48:30 -0700302config PINCTRL_PIC32
303 bool "Microchip PIC32 pin controller driver"
304 depends on OF
305 depends on MACH_PIC32
306 select PINMUX
307 select GENERIC_PINCONF
308 select GPIOLIB_IRQCHIP
309 select OF_GPIO
310 help
311 This is the pin controller and gpio driver for Microchip PIC32
312 microcontrollers. This option is selected automatically when specific
313 machine and arch are selected to build.
314
315config PINCTRL_PIC32MZDA
316 def_bool y if PIC32MZDA
317 select PINCTRL_PIC32
318
Soren Brinkmannadd958c2015-01-09 07:43:48 -0800319config PINCTRL_ZYNQ
320 bool "Pinctrl driver for Xilinx Zynq"
321 depends on ARCH_ZYNQ
322 select PINMUX
323 select GENERIC_PINCONF
324 help
Masahiro Yamada485dba22015-11-30 16:57:35 +0900325 This selects the pinctrl driver for Xilinx Zynq.
Soren Brinkmannadd958c2015-01-09 07:43:48 -0800326
Paul Cercueilb5c23aa2017-05-12 18:52:56 +0200327config PINCTRL_INGENIC
328 bool "Pinctrl driver for the Ingenic JZ47xx SoCs"
329 default y
Linus Walleijc5049852017-05-29 13:40:45 +0200330 depends on OF
Paul Cercueilb5c23aa2017-05-12 18:52:56 +0200331 depends on MACH_INGENIC || COMPILE_TEST
332 select GENERIC_PINCONF
333 select GENERIC_PINCTRL_GROUPS
334 select GENERIC_PINMUX_FUNCTIONS
335 select REGMAP_MMIO
336
Joseph Chenea479992017-08-21 03:28:40 +0200337config PINCTRL_RK805
338 tristate "Pinctrl and GPIO driver for RK805 PMIC"
339 depends on MFD_RK808
340 select GPIOLIB
341 select PINMUX
342 select GENERIC_PINCONF
343 help
344 This selects the pinctrl driver for RK805.
345
Andrew Jeffery4d3d0e422016-08-30 17:24:24 +0930346source "drivers/pinctrl/aspeed/Kconfig"
Ray Juib17f2f92015-03-04 16:35:49 -0800347source "drivers/pinctrl/bcm/Kconfig"
Antoine Tenart3de68d32014-05-19 19:36:29 +0200348source "drivers/pinctrl/berlin/Kconfig"
Linus Walleijedad3b22014-09-03 13:37:38 +0200349source "drivers/pinctrl/freescale/Kconfig"
Mika Westerberg5fae8b82014-10-24 15:16:52 +0300350source "drivers/pinctrl/intel/Kconfig"
Thomas Petazzoni06763c72012-10-24 23:38:58 +0200351source "drivers/pinctrl/mvebu/Kconfig"
Linus Walleij3a198052014-07-11 14:57:06 +0200352source "drivers/pinctrl/nomadik/Kconfig"
Robert Jarzmik4b15ec92015-11-21 19:04:53 +0100353source "drivers/pinctrl/pxa/Kconfig"
Linus Walleij69b78b82014-07-09 13:55:12 +0200354source "drivers/pinctrl/qcom/Kconfig"
Sachin Kamatebe629a2014-07-10 17:33:27 +0530355source "drivers/pinctrl/samsung/Kconfig"
Laurent Pinchart6e54d8d2012-12-15 23:51:19 +0100356source "drivers/pinctrl/sh-pfc/Kconfig"
Viresh Kumardeda8282012-03-28 22:27:07 +0530357source "drivers/pinctrl/spear/Kconfig"
Baolin Wang41d32cf2017-08-17 14:50:38 +0800358source "drivers/pinctrl/sprd/Kconfig"
Maxime Coquelinaceb16d2016-01-14 13:16:30 +0100359source "drivers/pinctrl/stm32/Kconfig"
Maxime Ripard5f910772014-04-18 18:53:02 +0200360source "drivers/pinctrl/sunxi/Kconfig"
Masahiro Yamada25cbac72016-01-24 00:30:08 +0900361source "drivers/pinctrl/tegra/Kconfig"
Nishanth Menon003910e2017-01-05 10:54:14 -0800362source "drivers/pinctrl/ti/Kconfig"
Masahiro Yamada6e908892015-07-14 11:40:01 +0900363source "drivers/pinctrl/uniphier/Kconfig"
Tony Prisk170c6152013-02-20 09:32:19 +1300364source "drivers/pinctrl/vt8500/Kconfig"
Hongzhou Yanga6df4102015-01-21 13:28:15 +0800365source "drivers/pinctrl/mediatek/Kconfig"
Shawn Guocbff0c42017-04-24 21:01:13 +0800366source "drivers/pinctrl/zte/Kconfig"
Jerome Brunet277d14e2017-10-12 14:40:25 +0200367source "drivers/pinctrl/meson/Kconfig"
Viresh Kumardeda8282012-03-28 22:27:07 +0530368
John Crispin3f8c50c2012-08-28 12:44:59 +0200369config PINCTRL_XWAY
370 bool
371 depends on SOC_TYPE_XWAY
372 depends on PINCTRL_LANTIQ
373
Christian Ruppert5aad0db2013-10-15 15:39:38 +0200374config PINCTRL_TB10X
375 bool
Linus Walleijb99e6fb2015-04-15 10:00:35 +0200376 depends on OF && ARC_PLAT_TB10X
377 select GPIOLIB
Christian Ruppert5aad0db2013-10-15 15:39:38 +0200378
Phil Reidd219b922017-10-06 13:08:05 +0800379endif