blob: 0042ccb46b9a1277fa2824845e2affb9844505a4 [file] [log] [blame]
Linus Walleij2744e8a2011-05-02 20:50:54 +02001#
2# PINCTRL infrastructure and drivers
3#
4
Linus Walleij45f034e2011-11-05 21:28:46 +01005config PINCTRL
6 bool
Linus Walleij2744e8a2011-05-02 20:50:54 +02007
8if PINCTRL
9
Linus Walleij45f034e2011-11-05 21:28:46 +010010menu "Pin controllers"
11 depends on PINCTRL
12
Linus Walleij2744e8a2011-05-02 20:50:54 +020013config PINMUX
Linus Walleijae6b4d82011-10-19 18:14:33 +020014 bool "Support pin multiplexing controllers"
15
16config PINCONF
17 bool "Support pin configuration controllers"
Linus Walleij2744e8a2011-05-02 20:50:54 +020018
Linus Walleij394349f2011-11-24 18:27:15 +010019config GENERIC_PINCONF
20 bool
21 select PINCONF
22
Linus Walleij2744e8a2011-05-02 20:50:54 +020023config DEBUG_PINCTRL
24 bool "Debug PINCTRL calls"
25 depends on DEBUG_KERNEL
26 help
27 Say Y here to add some extra checks and diagnostics to PINCTRL calls.
28
Patrice Chotard0493e642013-01-08 10:41:02 +010029config PINCTRL_ABX500
30 bool "ST-Ericsson ABx500 family Mixed Signal Circuit gpio functions"
31 depends on AB8500_CORE
32 select GENERIC_PINCONF
33 help
34 Select this to enable the ABx500 family IC GPIO driver
35
Patrice Chotard3c937992013-01-08 10:59:53 +010036config PINCTRL_AB8500
37 bool "AB8500 pin controller driver"
38 depends on PINCTRL_ABX500 && ARCH_U8500
39
Patrice Chotarda8f96e42013-01-28 14:35:19 +010040config PINCTRL_AB8540
41 bool "AB8540 pin controller driver"
42 depends on PINCTRL_ABX500 && ARCH_U8500
43
Patrice Chotard09dbec32013-01-28 14:29:35 +010044config PINCTRL_AB9540
45 bool "AB9540 pin controller driver"
46 depends on PINCTRL_ABX500 && ARCH_U8500
47
Patrice Chotard1aa2d8d2013-01-28 14:23:45 +010048config PINCTRL_AB8505
49 bool "AB8505 pin controller driver"
50 depends on PINCTRL_ABX500 && ARCH_U8500
51
Sonic Zhange9a03ad2013-09-03 16:28:59 +080052config PINCTRL_ADI2
53 bool "ADI pin controller driver"
Sonic Zhang9d7278d2013-09-23 11:57:00 +080054 depends on BLACKFIN
Sonic Zhange9a03ad2013-09-03 16:28:59 +080055 select PINMUX
56 select IRQ_DOMAIN
57 help
58 This is the pin controller and gpio driver for ADI BF54x, BF60x and
59 future processors. This option is selected automatically when specific
60 machine and arch are selected to build.
61
Laxman Dewanganc8ce8782013-10-02 21:20:29 +053062config PINCTRL_AS3722
63 bool "Pinctrl and GPIO driver for ams AS3722 PMIC"
64 depends on MFD_AS3722 && GPIOLIB
65 select PINMUX
66 select GENERIC_PINCONF
67 help
68 AS3722 device supports the configuration of GPIO pins for different
69 functionality. This driver supports the pinmux, push-pull and
70 open drain configuration for the GPIO pins of AS3722 devices. It also
71 supports the GPIO functionality through gpiolib.
72
Sonic Zhange9a03ad2013-09-03 16:28:59 +080073config PINCTRL_BF54x
74 def_bool y if BF54x
75 select PINCTRL_ADI2
76
77config PINCTRL_BF60x
78 def_bool y if BF60x
79 select PINCTRL_ADI2
80
Jean-Christophe PLAGNIOL-VILLARD6732ae52012-07-12 23:35:02 +080081config PINCTRL_AT91
82 bool "AT91 pinctrl driver"
83 depends on OF
84 depends on ARCH_AT91
85 select PINMUX
86 select PINCONF
Alexander Stein80cc3732014-04-15 22:09:41 +020087 select GPIOLIB
88 select OF_GPIO
89 select GPIOLIB_IRQCHIP
Jean-Christophe PLAGNIOL-VILLARD6732ae52012-07-12 23:35:02 +080090 help
91 Say Y here to enable the at91 pinctrl driver
92
Mathias Nymana5d811b2013-06-18 14:33:02 +030093config PINCTRL_BAYTRAIL
94 bool "Intel Baytrail GPIO pin control"
95 depends on GPIOLIB && ACPI && X86
Andy Shevchenkoec243322013-07-10 14:55:36 +030096 select IRQ_DOMAIN
Mathias Nymana5d811b2013-06-18 14:33:02 +030097 help
98 driver for memory mapped GPIO functionality on Intel Baytrail
99 platforms. Supports 3 banks with 102, 28 and 44 gpios.
100 Most pins are usually muxed to some other functionality by firmware,
101 so only a small amount is available for gpio use.
102
103 Requires ACPI device enumeration code to set up a platform device.
104
Simon Arlotte1b2dc72012-09-27 22:10:11 -0600105config PINCTRL_BCM2835
106 bool
107 select PINMUX
108 select PINCONF
109
Sherman Yin7418b5c2014-04-02 15:40:37 -0700110config PINCTRL_BCM281XX
111 bool "Broadcom BCM281xx pinctrl driver"
Linus Walleijfe0ec0e2014-01-16 23:41:38 +0100112 depends on OF
Sherman Yin54b1aa52013-12-20 18:13:35 -0800113 select PINMUX
114 select PINCONF
115 select GENERIC_PINCONF
116 select REGMAP_MMIO
117 help
Sherman Yin7418b5c2014-04-02 15:40:37 -0700118 Say Y here to support Broadcom BCM281xx pinctrl driver, which is used
119 for the BCM281xx SoC family, including BCM11130, BCM11140, BCM11351,
Sherman Yin54b1aa52013-12-20 18:13:35 -0800120 BCM28145, and BCM28155 SoCs. This driver requires the pinctrl
121 framework. GPIO is provided by a separate GPIO driver.
122
Dong Aishengae75ff82012-04-27 20:26:16 +0800123config PINCTRL_IMX
124 bool
125 select PINMUX
126 select PINCONF
127
Markus Pargmann30612cd92013-10-28 10:00:36 +0100128config PINCTRL_IMX1_CORE
129 bool
130 select PINMUX
131 select PINCONF
132
Markus Pargmanne16dbf62013-10-29 15:32:19 +0100133config PINCTRL_IMX27
134 bool "IMX27 pinctrl driver"
Markus Pargmanne16dbf62013-10-29 15:32:19 +0100135 depends on SOC_IMX27
136 select PINCTRL_IMX1_CORE
137 help
138 Say Y here to enable the imx27 pinctrl driver
139
Denis Cariklib4a87c92013-11-06 09:52:15 +0100140
141config PINCTRL_IMX25
142 bool "IMX25 pinctrl driver"
143 depends on OF
144 depends on SOC_IMX25
145 select PINCTRL_IMX
146 help
147 Say Y here to enable the imx25 pinctrl driver
148
Uwe Kleine-Königb9aa8f12012-08-09 18:23:32 +0200149config PINCTRL_IMX35
150 bool "IMX35 pinctrl driver"
Uwe Kleine-Königb9aa8f12012-08-09 18:23:32 +0200151 depends on SOC_IMX35
152 select PINCTRL_IMX
153 help
154 Say Y here to enable the imx35 pinctrl driver
155
Greg Ungerer9da83122013-11-05 23:11:51 +1000156config PINCTRL_IMX50
157 bool "IMX50 pinctrl driver"
Greg Ungerer9da83122013-11-05 23:11:51 +1000158 depends on SOC_IMX50
159 select PINCTRL_IMX
160 help
161 Say Y here to enable the imx50 pinctrl driver
162
Dong Aisheng4f6a16b2012-05-15 15:49:03 +0800163config PINCTRL_IMX51
164 bool "IMX51 pinctrl driver"
Dong Aisheng4f6a16b2012-05-15 15:49:03 +0800165 depends on SOC_IMX51
166 select PINCTRL_IMX
167 help
168 Say Y here to enable the imx51 pinctrl driver
169
Dong Aisheng93fbd3c2012-05-15 15:49:02 +0800170config PINCTRL_IMX53
171 bool "IMX53 pinctrl driver"
Dong Aisheng93fbd3c2012-05-15 15:49:02 +0800172 depends on SOC_IMX53
173 select PINCTRL_IMX
174 help
175 Say Y here to enable the imx53 pinctrl driver
176
Dong Aishengd8fe3572012-04-27 20:26:17 +0800177config PINCTRL_IMX6Q
Shawn Guo3f551d62013-03-21 21:55:41 +0800178 bool "IMX6Q/DL pinctrl driver"
Dong Aishengd8fe3572012-04-27 20:26:17 +0800179 depends on SOC_IMX6Q
180 select PINCTRL_IMX
181 help
Shawn Guo3f551d62013-03-21 21:55:41 +0800182 Say Y here to enable the imx6q/dl pinctrl driver
Dong Aishengd8fe3572012-04-27 20:26:17 +0800183
Shawn Guo21e59122013-03-21 22:10:36 +0800184config PINCTRL_IMX6SL
185 bool "IMX6SL pinctrl driver"
Shawn Guo21e59122013-03-21 22:10:36 +0800186 depends on SOC_IMX6SL
187 select PINCTRL_IMX
188 help
189 Say Y here to enable the imx6sl pinctrl driver
Haojian Zhuangf4e66982012-01-04 10:26:33 +0800190
Anson Huang2cc140f2014-05-12 23:10:35 +0800191config PINCTRL_IMX6SX
192 bool "IMX6SX pinctrl driver"
193 depends on SOC_IMX6SX
194 select PINCTRL_IMX
195 help
196 Say Y here to enable the imx6sx pinctrl driver
197
Jingchang Lu78bafc62013-05-28 17:32:08 +0800198config PINCTRL_VF610
199 bool "Freescale Vybrid VF610 pinctrl driver"
Jingchang Lu78bafc62013-05-28 17:32:08 +0800200 depends on SOC_VF610
201 select PINCTRL_IMX
202 help
203 Say Y here to enable the Freescale Vybrid VF610 pinctrl driver
204
John Crispin3f8c50c2012-08-28 12:44:59 +0200205config PINCTRL_LANTIQ
206 bool
207 depends on LANTIQ
208 select PINMUX
209 select PINCONF
210
John Crispine316cb22012-05-20 00:33:56 +0200211config PINCTRL_FALCON
212 bool
213 depends on SOC_FALCON
214 depends on PINCTRL_LANTIQ
215
Shawn Guo17723112012-04-28 13:00:50 +0800216config PINCTRL_MXS
217 bool
Axel Lin90db8a12012-11-12 10:01:56 +0800218 select PINMUX
219 select PINCONF
Shawn Guo17723112012-04-28 13:00:50 +0800220
221config PINCTRL_IMX23
222 bool
Shawn Guo17723112012-04-28 13:00:50 +0800223 select PINCTRL_MXS
224
225config PINCTRL_IMX28
226 bool
Shawn Guo17723112012-04-28 13:00:50 +0800227 select PINCTRL_MXS
228
Bjorn Anderssonf365be02013-12-05 18:10:03 -0800229config PINCTRL_MSM
Josh Cartwright5ba34162014-02-24 12:41:20 -0600230 bool
Bjorn Anderssonf365be02013-12-05 18:10:03 -0800231 select PINMUX
232 select PINCONF
233 select GENERIC_PINCONF
Linus Walleijcdcb0ab2014-04-29 11:00:40 -0700234 select GPIOLIB_IRQCHIP
Bjorn Anderssonf365be02013-12-05 18:10:03 -0800235
Bjorn Anderssone2c802b2014-03-31 14:49:57 -0700236config PINCTRL_APQ8064
237 tristate "Qualcomm APQ8064 pin controller driver"
238 depends on GPIOLIB && OF
239 select PINCTRL_MSM
240 help
241 This is the pinctrl, pinmux, pinconf and gpiolib driver for the
242 Qualcomm TLMM block found in the Qualcomm APQ8064 platform.
243
Andy Grossb4da6572014-04-14 22:10:35 -0500244config PINCTRL_IPQ8064
245 tristate "Qualcomm IPQ8064 pin controller driver"
246 depends on GPIOLIB && OF
247 select PINCTRL_MSM
248 help
249 This is the pinctrl, pinmux, pinconf and gpiolib driver for the
250 Qualcomm TLMM block found in the Qualcomm IPQ8064 platform.
251
Bjorn Andersson55aaf8342013-12-05 18:10:04 -0800252config PINCTRL_MSM8X74
Bjorn Andersson376f4132013-12-14 22:44:33 -0800253 tristate "Qualcomm 8x74 pin controller driver"
Uwe Kleine-Königfb95a942014-04-01 22:25:59 +0200254 depends on GPIOLIB && OF && (ARCH_QCOM || COMPILE_TEST)
Bjorn Andersson55aaf8342013-12-05 18:10:04 -0800255 select PINCTRL_MSM
Bjorn Andersson376f4132013-12-14 22:44:33 -0800256 help
257 This is the pinctrl, pinmux, pinconf and gpiolib driver for the
258 Qualcomm TLMM block found in the Qualcomm 8974 platform.
Bjorn Andersson55aaf8342013-12-05 18:10:04 -0800259
Linus Walleije98ea772012-04-26 23:57:25 +0200260config PINCTRL_NOMADIK
261 bool "Nomadik pin controller driver"
Arnd Bergmann0fa7be42012-05-15 11:24:34 +0000262 depends on ARCH_U8500 || ARCH_NOMADIK
Linus Walleijdbfe8ca2012-05-02 22:56:47 +0200263 select PINMUX
Linus Walleijd41af622012-05-03 15:58:12 +0200264 select PINCONF
Linus Walleije0bc34a2014-03-25 10:44:09 +0100265 select GPIOLIB
266 select OF_GPIO
267 select GPIOLIB_IRQCHIP
Linus Walleije98ea772012-04-26 23:57:25 +0200268
Linus Walleijf79c5ed2012-08-10 00:43:28 +0200269config PINCTRL_STN8815
270 bool "STN8815 pin controller driver"
271 depends on PINCTRL_NOMADIK && ARCH_NOMADIK
272
Linus Walleije98ea772012-04-26 23:57:25 +0200273config PINCTRL_DB8500
274 bool "DB8500 pin controller driver"
275 depends on PINCTRL_NOMADIK && ARCH_U8500
276
Patrice Chotard45a1b532012-07-20 15:45:22 +0200277config PINCTRL_DB8540
278 bool "DB8540 pin controller driver"
279 depends on PINCTRL_NOMADIK && ARCH_U8500
280
Heiko Stübnerd3e51162013-06-10 22:16:22 +0200281config PINCTRL_ROCKCHIP
282 bool
283 select PINMUX
284 select GENERIC_PINCONF
285 select GENERIC_IRQ_CHIP
Heiko Stübner751a99a2014-05-05 13:58:20 +0200286 select MFD_SYSCON
Heiko Stübnerd3e51162013-06-10 22:16:22 +0200287
Tony Lindgren8b8b0912012-07-10 02:05:46 -0700288config PINCTRL_SINGLE
289 tristate "One-register-per-pin type device tree based pinctrl driver"
290 depends on OF
291 select PINMUX
292 select PINCONF
Haojian Zhuang9dddb4d2013-02-17 19:42:55 +0800293 select GENERIC_PINCONF
Tony Lindgren8b8b0912012-07-10 02:05:46 -0700294 help
295 This selects the device tree based generic pinctrl driver.
296
Linus Walleij3bece552011-12-18 23:44:26 +0100297config PINCTRL_SIRF
Barry Songd3e26f22012-09-27 17:56:30 +0800298 bool "CSR SiRFprimaII/SiRFmarco pin controller driver"
299 depends on ARCH_SIRF
Rongjun Ying393daa82011-10-09 03:11:13 -0700300 select PINMUX
Linus Walleij7420d2d2014-04-15 14:43:47 +0800301 select GPIOLIB_IRQCHIP
Rongjun Ying393daa82011-10-09 03:11:13 -0700302
Srinivas KANDAGATLA701016c2013-06-20 15:05:38 +0100303config PINCTRL_ST
304 bool
305 depends on OF
306 select PINMUX
307 select PINCONF
Linus Walleij130cbe32014-04-08 14:45:47 +0200308 select GPIOLIB_IRQCHIP
Srinivas KANDAGATLA701016c2013-06-20 15:05:38 +0100309
Stephen Warren971dac72012-02-01 14:04:47 -0700310config PINCTRL_TEGRA
311 bool
Axel Lin507ccdb2012-11-12 10:00:22 +0800312 select PINMUX
313 select PINCONF
Stephen Warren971dac72012-02-01 14:04:47 -0700314
315config PINCTRL_TEGRA20
316 bool
Stephen Warren971dac72012-02-01 14:04:47 -0700317 select PINCTRL_TEGRA
318
319config PINCTRL_TEGRA30
320 bool
Stephen Warren971dac72012-02-01 14:04:47 -0700321 select PINCTRL_TEGRA
322
Pritesh Raithathab6ae7a22013-01-08 13:02:37 +0530323config PINCTRL_TEGRA114
324 bool
325 select PINCTRL_TEGRA
326
Ashwini Ghuge1a16bee2013-12-10 12:40:56 +0530327config PINCTRL_TEGRA124
328 bool
329 select PINCTRL_TEGRA
330
James Hogand5025f92013-06-20 10:26:27 +0100331config PINCTRL_TZ1090
332 bool "Toumaz Xenif TZ1090 pin control driver"
333 depends on SOC_TZ1090
334 select PINMUX
335 select GENERIC_PINCONF
336
James Hoganb58f0272013-06-20 10:26:29 +0100337config PINCTRL_TZ1090_PDC
338 bool "Toumaz Xenif TZ1090 PDC pin control driver"
339 depends on SOC_TZ1090
340 select PINMUX
341 select PINCONF
342
Linus Walleij3bece552011-12-18 23:44:26 +0100343config PINCTRL_U300
344 bool "U300 pin controller driver"
Linus Walleij98da3522011-05-02 20:54:38 +0200345 depends on ARCH_U300
346 select PINMUX
Linus Walleijdc0b1aa2011-11-16 21:58:10 +0100347 select GENERIC_PINCONF
Linus Walleij45f034e2011-11-05 21:28:46 +0100348
Linus Walleijca402d32011-11-16 09:22:59 +0100349config PINCTRL_COH901
350 bool "ST-Ericsson U300 COH 901 335/571 GPIO"
Linus Walleij3c94d1b2012-06-18 20:07:50 +0200351 depends on GPIOLIB && ARCH_U300 && PINCTRL_U300
Linus Walleij523dcce2014-03-25 13:37:17 +0100352 select GPIOLIB_IRQCHIP
Linus Walleijca402d32011-11-16 09:22:59 +0100353 help
354 Say yes here to support GPIO interface on ST-Ericsson U300.
355 The names of the two IP block variants supported are
356 COH 901 335 and COH 901 571/3. They contain 3, 5 or 7
357 ports of 8 GPIO pins each.
358
Thomas Abraham30574f02012-09-07 06:07:19 +0900359config PINCTRL_SAMSUNG
Arnd Bergmanncbc351a2012-11-15 11:58:24 +0100360 bool
Thomas Abraham30574f02012-09-07 06:07:19 +0900361 select PINMUX
362 select PINCONF
363
Kukjin Kima1ed2672013-01-18 20:35:06 +0100364config PINCTRL_EXYNOS
Doug Anderson83978252013-06-10 18:26:53 +0900365 bool "Pinctrl driver data for Samsung EXYNOS SoCs other than 5440"
Mateusz Krawczuk608a26a2013-08-27 15:08:10 +0200366 depends on OF && GPIOLIB && (ARCH_EXYNOS || ARCH_S5PV210)
Thomas Abraham43b169d2012-09-07 06:07:19 +0900367 select PINCTRL_SAMSUNG
368
Thomas Abrahamf0b9a7e2012-10-10 09:41:12 +0900369config PINCTRL_EXYNOS5440
370 bool "Samsung EXYNOS5440 SoC pinctrl driver"
Doug Anderson83978252013-06-10 18:26:53 +0900371 depends on SOC_EXYNOS5440
Thomas Abrahamf0b9a7e2012-10-10 09:41:12 +0900372 select PINMUX
373 select PINCONF
374
Laxman Dewangan0a8d3e22013-08-06 18:42:35 +0530375config PINCTRL_PALMAS
Mark Brown736658c2013-08-19 16:07:26 +0100376 bool "Pinctrl driver for the PALMAS Series MFD devices"
Laxman Dewangan0a8d3e22013-08-06 18:42:35 +0530377 depends on OF && MFD_PALMAS
Axel Lin63ca8db2013-08-22 14:30:08 +0800378 select PINMUX
Laxman Dewangan0a8d3e22013-08-06 18:42:35 +0530379 select GENERIC_PINCONF
380 help
381 Palmas device supports the configuration of pins for different
382 functionality. This driver supports the pinmux, push-pull and
383 open drain configuration for the Palmas series devices like
384 TPS65913, TPS80036 etc.
385
Heiko Stuebneraf99a752013-05-21 00:56:13 +0900386config PINCTRL_S3C24XX
387 bool "Samsung S3C24XX SoC pinctrl driver"
388 depends on ARCH_S3C24XX
389 select PINCTRL_SAMSUNG
390
Tomasz Figa61dd7262013-03-18 22:31:55 +0100391config PINCTRL_S3C64XX
392 bool "Samsung S3C64XX SoC pinctrl driver"
393 depends on ARCH_S3C64XX
394 select PINCTRL_SAMSUNG
395
Antoine Tenart3de68d32014-05-19 19:36:29 +0200396source "drivers/pinctrl/berlin/Kconfig"
Thomas Petazzoni06763c72012-10-24 23:38:58 +0200397source "drivers/pinctrl/mvebu/Kconfig"
Laurent Pinchart6e54d8d2012-12-15 23:51:19 +0100398source "drivers/pinctrl/sh-pfc/Kconfig"
Viresh Kumardeda8282012-03-28 22:27:07 +0530399source "drivers/pinctrl/spear/Kconfig"
Maxime Ripard5f910772014-04-18 18:53:02 +0200400source "drivers/pinctrl/sunxi/Kconfig"
Tony Prisk170c6152013-02-20 09:32:19 +1300401source "drivers/pinctrl/vt8500/Kconfig"
Viresh Kumardeda8282012-03-28 22:27:07 +0530402
John Crispin3f8c50c2012-08-28 12:44:59 +0200403config PINCTRL_XWAY
404 bool
405 depends on SOC_TYPE_XWAY
406 depends on PINCTRL_LANTIQ
407
Christian Ruppert5aad0db2013-10-15 15:39:38 +0200408config PINCTRL_TB10X
409 bool
410 depends on ARC_PLAT_TB10X
411
Linus Walleij45f034e2011-11-05 21:28:46 +0100412endmenu
Linus Walleij98da3522011-05-02 20:54:38 +0200413
Linus Walleij2744e8a2011-05-02 20:50:54 +0200414endif