blob: 0f254b35c378ec0a70d67a89b10433f6535f78d9 [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 Walleij394349f72011-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
Quentin Schulz449317a82017-12-05 15:46:40 +010066config PINCTRL_AXP209
67 tristate "X-Powers AXP209 PMIC pinctrl and GPIO Support"
68 depends on MFD_AXP20X
Quentin Schulz971f1b32017-12-14 10:43:35 +010069 depends on OF
70 select PINMUX
71 select GENERIC_PINCONF
72 select GPIOLIB
Quentin Schulz449317a82017-12-05 15:46:40 +010073 help
74 AXP PMICs provides multiple GPIOs that can be muxed for different
75 functions. This driver bundles a pinctrl driver to select the function
76 muxing and a GPIO driver to handle the GPIO when the GPIO function is
77 selected.
78 Say yes to enable pinctrl and GPIO support for the AXP209 PMIC
79
Sonic Zhange9a03ad2013-09-03 16:28:59 +080080config PINCTRL_BF54x
81 def_bool y if BF54x
82 select PINCTRL_ADI2
83
84config PINCTRL_BF60x
85 def_bool y if BF60x
86 select PINCTRL_ADI2
87
Jean-Christophe PLAGNIOL-VILLARD6732ae52012-07-12 23:35:02 +080088config PINCTRL_AT91
89 bool "AT91 pinctrl driver"
90 depends on OF
91 depends on ARCH_AT91
92 select PINMUX
93 select PINCONF
Alexander Stein80cc3732014-04-15 22:09:41 +020094 select GPIOLIB
95 select OF_GPIO
96 select GPIOLIB_IRQCHIP
Jean-Christophe PLAGNIOL-VILLARD6732ae52012-07-12 23:35:02 +080097 help
98 Say Y here to enable the at91 pinctrl driver
99
Ludovic Desroches77618082015-09-16 17:36:57 +0200100config PINCTRL_AT91PIO4
101 bool "AT91 PIO4 pinctrl driver"
102 depends on OF
103 depends on ARCH_AT91
104 select PINMUX
105 select GENERIC_PINCONF
106 select GPIOLIB
107 select GPIOLIB_IRQCHIP
108 select OF_GPIO
109 help
110 Say Y here to enable the at91 pinctrl/gpio driver for Atmel PIO4
111 controller available on sama5d2 SoC.
112
Ken Xuedbad75d2015-03-10 15:02:19 +0800113config PINCTRL_AMD
Jean Delvare337ea0f2016-02-11 12:06:37 +0100114 tristate "AMD GPIO pin control"
Linus Walleijfd35b202017-11-13 11:04:27 +0100115 depends on HAS_IOMEM
Linus Walleije2a021d2017-10-11 12:04:35 +0200116 select GPIOLIB
Ken Xuedbad75d2015-03-10 15:02:19 +0800117 select GPIOLIB_IRQCHIP
Petr Mladek83b31c22017-09-26 15:51:28 +0200118 select PINMUX
Ken Xuedbad75d2015-03-10 15:02:19 +0800119 select PINCONF
120 select GENERIC_PINCONF
121 help
122 driver for memory mapped GPIO functionality on AMD platforms
123 (x86 or arm).Most pins are usually muxed to some other
124 functionality by firmware,so only a small amount is available
125 for gpio use.
126
127 Requires ACPI/FDT device enumeration code to set up a platform
128 device.
129
David Lechner1ff91f02016-11-28 10:40:25 -0600130config PINCTRL_DA850_PUPD
131 tristate "TI DA850/OMAP-L138/AM18XX pullup/pulldown groups"
132 depends on OF && (ARCH_DAVINCI_DA850 || COMPILE_TEST)
133 select PINCONF
134 select GENERIC_PINCONF
135 help
136 Driver for TI DA850/OMAP-L138/AM18XX pinconf. Used to control
137 pullup/pulldown pin groups.
138
Baruch Siach38b0e502015-05-05 13:55:10 +0300139config PINCTRL_DIGICOLOR
140 bool
141 depends on OF && (ARCH_DIGICOLOR || COMPILE_TEST)
142 select PINMUX
143 select GENERIC_PINCONF
144
John Crispin3f8c50c2012-08-28 12:44:59 +0200145config PINCTRL_LANTIQ
146 bool
147 depends on LANTIQ
148 select PINMUX
149 select PINCONF
150
Joachim Eastwood2f77ac92015-04-28 00:14:08 +0200151config PINCTRL_LPC18XX
152 bool "NXP LPC18XX/43XX SCU pinctrl driver"
153 depends on OF && (ARCH_LPC18XX || COMPILE_TEST)
154 default ARCH_LPC18XX
155 select PINMUX
156 select GENERIC_PINCONF
157 help
158 Pinctrl driver for NXP LPC18xx/43xx System Control Unit (SCU).
159
John Crispine316cb22012-05-20 00:33:56 +0200160config PINCTRL_FALCON
161 bool
162 depends on SOC_FALCON
163 depends on PINCTRL_LANTIQ
164
Linus Walleij06351d12017-08-05 23:04:08 +0200165config PINCTRL_GEMINI
166 bool
167 depends on ARCH_GEMINI
168 default ARCH_GEMINI
169 select PINMUX
Linus Walleij1c5b7f32017-10-28 15:37:18 +0200170 select GENERIC_PINCONF
Linus Walleij06351d12017-08-05 23:04:08 +0200171 select MFD_SYSCON
172
Sebastian Reichel64ac43e2017-05-15 11:24:25 +0200173config PINCTRL_MCP23S08
174 tristate "Microchip MCP23xxx I/O expander"
Sebastian Reichel64ac43e2017-05-15 11:24:25 +0200175 depends on SPI_MASTER || I2C
Arnd Bergmannadeac772017-05-30 11:11:28 +0200176 depends on I2C || I2C=n
Linus Walleije2a021d2017-10-11 12:04:35 +0200177 select GPIOLIB
Sebastian Reichel64ac43e2017-05-15 11:24:25 +0200178 select GPIOLIB_IRQCHIP
179 select REGMAP_I2C if I2C
180 select REGMAP_SPI if SPI_MASTER
Sebastian Reichel82039d22017-05-15 11:24:26 +0200181 select GENERIC_PINCONF
Sebastian Reichel64ac43e2017-05-15 11:24:25 +0200182 help
183 SPI/I2C driver for Microchip MCP23S08/MCP23S17/MCP23008/MCP23017
184 I/O expanders.
185 This provides a GPIO interface supporting inputs and outputs.
186 The I2C versions of the chips can be used as interrupt-controller.
187
Neil Armstrong611dac12016-05-11 09:34:21 +0200188config PINCTRL_OXNAS
189 bool
190 depends on OF
191 select PINMUX
192 select PINCONF
193 select GENERIC_PINCONF
194 select GPIOLIB
195 select OF_GPIO
196 select GPIOLIB_IRQCHIP
197 select MFD_SYSCON
198
Heiko Stübnerd3e51162013-06-10 22:16:22 +0200199config PINCTRL_ROCKCHIP
200 bool
201 select PINMUX
202 select GENERIC_PINCONF
203 select GENERIC_IRQ_CHIP
Heiko Stübner751a99a2014-05-05 13:58:20 +0200204 select MFD_SYSCON
Heiko Stübnerd3e51162013-06-10 22:16:22 +0200205
Jacopo Mondi5a49b6442017-06-22 16:54:29 +0200206config PINCTRL_RZA1
207 bool "Renesas RZ/A1 gpio and pinctrl driver"
208 depends on OF
209 depends on ARCH_R7S72100 || COMPILE_TEST
210 select GPIOLIB
211 select GENERIC_PINCTRL_GROUPS
212 select GENERIC_PINMUX_FUNCTIONS
213 select GENERIC_PINCONF
214 help
215 This selects pinctrl driver for Renesas RZ/A1 platforms.
216
Tony Lindgren8b8b091b2012-07-10 02:05:46 -0700217config PINCTRL_SINGLE
218 tristate "One-register-per-pin type device tree based pinctrl driver"
219 depends on OF
Linus Walleijfd35b202017-11-13 11:04:27 +0100220 depends on HAS_IOMEM
Tony Lindgrencaeb7742016-12-27 09:20:02 -0800221 select GENERIC_PINCTRL_GROUPS
Tony Lindgren571aec42016-12-27 09:20:03 -0800222 select GENERIC_PINMUX_FUNCTIONS
Haojian Zhuang9dddb4d2013-02-17 19:42:55 +0800223 select GENERIC_PINCONF
Tony Lindgren8b8b091b2012-07-10 02:05:46 -0700224 help
225 This selects the device tree based generic pinctrl driver.
226
Linus Walleij3bece552011-12-18 23:44:26 +0100227config PINCTRL_SIRF
Barry Songa17272a2015-01-11 21:56:41 +0800228 bool "CSR SiRFprimaII pin controller driver"
Barry Songd3e26f22012-09-27 17:56:30 +0800229 depends on ARCH_SIRF
Rongjun Ying393daa82011-10-09 03:11:13 -0700230 select PINMUX
Wei Chenf9367792015-05-18 07:28:32 +0000231 select PINCONF
232 select GENERIC_PINCONF
Linus Walleij7420d2d2014-04-15 14:43:47 +0800233 select GPIOLIB_IRQCHIP
Rongjun Ying393daa82011-10-09 03:11:13 -0700234
Neil Armstrong9e80f902016-10-21 11:09:58 +0200235config PINCTRL_SX150X
236 bool "Semtech SX150x I2C GPIO expander pinctrl driver"
Linus Walleije2a021d2017-10-11 12:04:35 +0200237 depends on I2C=y
Neil Armstrong9e80f902016-10-21 11:09:58 +0200238 select PINMUX
239 select PINCONF
240 select GENERIC_PINCONF
Linus Walleije2a021d2017-10-11 12:04:35 +0200241 select GPIOLIB
Neil Armstrong9e80f902016-10-21 11:09:58 +0200242 select GPIOLIB_IRQCHIP
Andrey Smirnov0db0f262016-11-07 08:53:16 -0800243 select REGMAP
Neil Armstrong9e80f902016-10-21 11:09:58 +0200244 help
245 Say yes here to provide support for Semtech SX150x-series I2C
246 GPIO expanders as pinctrl module.
247 Compatible models include:
248 - 8 bits: sx1508q, sx1502q
249 - 16 bits: sx1509q, sx1506q
250
Andrew Brestickercefc03e2015-05-06 12:59:03 -0700251config PINCTRL_PISTACHIO
252 def_bool y if MACH_PISTACHIO
253 depends on GPIOLIB
254 select PINMUX
255 select GENERIC_PINCONF
256 select GPIOLIB_IRQCHIP
257 select OF_GPIO
258
Srinivas KANDAGATLA701016c2013-06-20 15:05:38 +0100259config PINCTRL_ST
260 bool
261 depends on OF
262 select PINMUX
263 select PINCONF
Linus Walleij130cbe32014-04-08 14:45:47 +0200264 select GPIOLIB_IRQCHIP
Srinivas KANDAGATLA701016c2013-06-20 15:05:38 +0100265
James Hogand5025f92013-06-20 10:26:27 +0100266config PINCTRL_TZ1090
267 bool "Toumaz Xenif TZ1090 pin control driver"
268 depends on SOC_TZ1090
269 select PINMUX
270 select GENERIC_PINCONF
271
James Hoganb58f0272013-06-20 10:26:29 +0100272config PINCTRL_TZ1090_PDC
273 bool "Toumaz Xenif TZ1090 PDC pin control driver"
274 depends on SOC_TZ1090
275 select PINMUX
276 select PINCONF
277
Linus Walleij3bece552011-12-18 23:44:26 +0100278config PINCTRL_U300
279 bool "U300 pin controller driver"
Linus Walleij98da3522011-05-02 20:54:38 +0200280 depends on ARCH_U300
281 select PINMUX
Linus Walleijdc0b1aa2011-11-16 21:58:10 +0100282 select GENERIC_PINCONF
Linus Walleij45f034e2011-11-05 21:28:46 +0100283
Linus Walleijca402d32011-11-16 09:22:59 +0100284config PINCTRL_COH901
285 bool "ST-Ericsson U300 COH 901 335/571 GPIO"
Linus Walleij3c94d1b2012-06-18 20:07:50 +0200286 depends on GPIOLIB && ARCH_U300 && PINCTRL_U300
Linus Walleij523dcce2014-03-25 13:37:17 +0100287 select GPIOLIB_IRQCHIP
Linus Walleijca402d32011-11-16 09:22:59 +0100288 help
289 Say yes here to support GPIO interface on ST-Ericsson U300.
290 The names of the two IP block variants supported are
291 COH 901 335 and COH 901 571/3. They contain 3, 5 or 7
292 ports of 8 GPIO pins each.
293
Laxman Dewangan2df723d42016-05-13 10:49:15 +0530294config PINCTRL_MAX77620
295 tristate "MAX77620/MAX20024 Pincontrol support"
Arnd Bergmann24d6a912016-10-28 10:19:05 +0200296 depends on MFD_MAX77620 && OF
Arnd Bergmann79f28b92016-06-13 17:18:35 +0200297 select PINMUX
Laxman Dewangan2df723d42016-05-13 10:49:15 +0530298 select GENERIC_PINCONF
299 help
300 Say Yes here to enable Pin control support for Maxim PMIC MAX77620.
301 This PMIC has 8 GPIO pins that work as GPIO as well as special
302 function in alternate mode. This driver also configure push-pull,
303 open drain, FPS slots etc.
304
Laxman Dewangan0a8d3e22013-08-06 18:42:35 +0530305config PINCTRL_PALMAS
Paul Gortmaker767b8ce2016-06-13 17:10:21 -0400306 tristate "Pinctrl driver for the PALMAS Series MFD devices"
Laxman Dewangan0a8d3e22013-08-06 18:42:35 +0530307 depends on OF && MFD_PALMAS
Axel Lin63ca8db2013-08-22 14:30:08 +0800308 select PINMUX
Laxman Dewangan0a8d3e22013-08-06 18:42:35 +0530309 select GENERIC_PINCONF
310 help
311 Palmas device supports the configuration of pins for different
312 functionality. This driver supports the pinmux, push-pull and
313 open drain configuration for the Palmas series devices like
314 TPS65913, TPS80036 etc.
315
Joshua Henderson2ba384e2016-02-01 15:48:30 -0700316config PINCTRL_PIC32
317 bool "Microchip PIC32 pin controller driver"
318 depends on OF
319 depends on MACH_PIC32
320 select PINMUX
321 select GENERIC_PINCONF
322 select GPIOLIB_IRQCHIP
323 select OF_GPIO
324 help
325 This is the pin controller and gpio driver for Microchip PIC32
326 microcontrollers. This option is selected automatically when specific
327 machine and arch are selected to build.
328
329config PINCTRL_PIC32MZDA
330 def_bool y if PIC32MZDA
331 select PINCTRL_PIC32
332
Soren Brinkmannadd958c2015-01-09 07:43:48 -0800333config PINCTRL_ZYNQ
334 bool "Pinctrl driver for Xilinx Zynq"
335 depends on ARCH_ZYNQ
336 select PINMUX
337 select GENERIC_PINCONF
338 help
Masahiro Yamada485dba22015-11-30 16:57:35 +0900339 This selects the pinctrl driver for Xilinx Zynq.
Soren Brinkmannadd958c2015-01-09 07:43:48 -0800340
Paul Cercueilb5c23aa2017-05-12 18:52:56 +0200341config PINCTRL_INGENIC
342 bool "Pinctrl driver for the Ingenic JZ47xx SoCs"
343 default y
Linus Walleijc5049852017-05-29 13:40:45 +0200344 depends on OF
Paul Cercueilb5c23aa2017-05-12 18:52:56 +0200345 depends on MACH_INGENIC || COMPILE_TEST
346 select GENERIC_PINCONF
347 select GENERIC_PINCTRL_GROUPS
348 select GENERIC_PINMUX_FUNCTIONS
349 select REGMAP_MMIO
350
Joseph Chenea479992017-08-21 03:28:40 +0200351config PINCTRL_RK805
352 tristate "Pinctrl and GPIO driver for RK805 PMIC"
353 depends on MFD_RK808
354 select GPIOLIB
355 select PINMUX
356 select GENERIC_PINCONF
357 help
358 This selects the pinctrl driver for RK805.
359
Alexandre Bellonice8dc092018-01-06 01:09:26 +0100360config PINCTRL_OCELOT
361 bool "Pinctrl driver for the Microsemi Ocelot SoCs"
362 default y
363 depends on OF
364 depends on MSCC_OCELOT || COMPILE_TEST
365 select GPIOLIB
366 select GENERIC_PINCONF
367 select GENERIC_PINCTRL_GROUPS
368 select GENERIC_PINMUX_FUNCTIONS
369 select REGMAP_MMIO
370
Andrew Jeffery4d3d0e422016-08-30 17:24:24 +0930371source "drivers/pinctrl/aspeed/Kconfig"
Ray Juib17f2f92015-03-04 16:35:49 -0800372source "drivers/pinctrl/bcm/Kconfig"
Antoine Tenart3de68d32014-05-19 19:36:29 +0200373source "drivers/pinctrl/berlin/Kconfig"
Linus Walleijedad3b22014-09-03 13:37:38 +0200374source "drivers/pinctrl/freescale/Kconfig"
Mika Westerberg5fae8b82014-10-24 15:16:52 +0300375source "drivers/pinctrl/intel/Kconfig"
Thomas Petazzoni06763c72012-10-24 23:38:58 +0200376source "drivers/pinctrl/mvebu/Kconfig"
Linus Walleij3a198052014-07-11 14:57:06 +0200377source "drivers/pinctrl/nomadik/Kconfig"
Robert Jarzmik4b15ec92015-11-21 19:04:53 +0100378source "drivers/pinctrl/pxa/Kconfig"
Linus Walleij69b78b82014-07-09 13:55:12 +0200379source "drivers/pinctrl/qcom/Kconfig"
Sachin Kamatebe629a2014-07-10 17:33:27 +0530380source "drivers/pinctrl/samsung/Kconfig"
Laurent Pinchart6e54d8d2012-12-15 23:51:19 +0100381source "drivers/pinctrl/sh-pfc/Kconfig"
Viresh Kumardeda8282012-03-28 22:27:07 +0530382source "drivers/pinctrl/spear/Kconfig"
Baolin Wang41d32cf2017-08-17 14:50:38 +0800383source "drivers/pinctrl/sprd/Kconfig"
Maxime Coquelinaceb16d2016-01-14 13:16:30 +0100384source "drivers/pinctrl/stm32/Kconfig"
Maxime Ripard5f910772014-04-18 18:53:02 +0200385source "drivers/pinctrl/sunxi/Kconfig"
Masahiro Yamada25cbac72016-01-24 00:30:08 +0900386source "drivers/pinctrl/tegra/Kconfig"
Nishanth Menon003910e2017-01-05 10:54:14 -0800387source "drivers/pinctrl/ti/Kconfig"
Masahiro Yamada6e908892015-07-14 11:40:01 +0900388source "drivers/pinctrl/uniphier/Kconfig"
Tony Prisk170c6152013-02-20 09:32:19 +1300389source "drivers/pinctrl/vt8500/Kconfig"
Hongzhou Yanga6df4102015-01-21 13:28:15 +0800390source "drivers/pinctrl/mediatek/Kconfig"
Shawn Guocbff0c42017-04-24 21:01:13 +0800391source "drivers/pinctrl/zte/Kconfig"
Jerome Brunet277d14e2017-10-12 14:40:25 +0200392source "drivers/pinctrl/meson/Kconfig"
Viresh Kumardeda8282012-03-28 22:27:07 +0530393
John Crispin3f8c50c2012-08-28 12:44:59 +0200394config PINCTRL_XWAY
395 bool
396 depends on SOC_TYPE_XWAY
397 depends on PINCTRL_LANTIQ
398
Christian Ruppert5aad0db2013-10-15 15:39:38 +0200399config PINCTRL_TB10X
400 bool
Linus Walleijb99e6fb2015-04-15 10:00:35 +0200401 depends on OF && ARC_PLAT_TB10X
402 select GPIOLIB
Christian Ruppert5aad0db2013-10-15 15:39:38 +0200403
Phil Reidd219b922017-10-06 13:08:05 +0800404endif