blob: a84334a2223cf39bc4509bfd1eaecc40a05f5dca [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
Jingchang Lu78bafc62013-05-28 17:32:08 +0800191config PINCTRL_VF610
192 bool "Freescale Vybrid VF610 pinctrl driver"
Jingchang Lu78bafc62013-05-28 17:32:08 +0800193 depends on SOC_VF610
194 select PINCTRL_IMX
195 help
196 Say Y here to enable the Freescale Vybrid VF610 pinctrl driver
197
John Crispin3f8c50c2012-08-28 12:44:59 +0200198config PINCTRL_LANTIQ
199 bool
200 depends on LANTIQ
201 select PINMUX
202 select PINCONF
203
John Crispine316cb22012-05-20 00:33:56 +0200204config PINCTRL_FALCON
205 bool
206 depends on SOC_FALCON
207 depends on PINCTRL_LANTIQ
208
Shawn Guo17723112012-04-28 13:00:50 +0800209config PINCTRL_MXS
210 bool
Axel Lin90db8a12012-11-12 10:01:56 +0800211 select PINMUX
212 select PINCONF
Shawn Guo17723112012-04-28 13:00:50 +0800213
214config PINCTRL_IMX23
215 bool
Shawn Guo17723112012-04-28 13:00:50 +0800216 select PINCTRL_MXS
217
218config PINCTRL_IMX28
219 bool
Shawn Guo17723112012-04-28 13:00:50 +0800220 select PINCTRL_MXS
221
Bjorn Anderssonf365be02013-12-05 18:10:03 -0800222config PINCTRL_MSM
Josh Cartwright5ba34162014-02-24 12:41:20 -0600223 bool
Bjorn Anderssonf365be02013-12-05 18:10:03 -0800224 select PINMUX
225 select PINCONF
226 select GENERIC_PINCONF
227
Bjorn Anderssone2c802b2014-03-31 14:49:57 -0700228config PINCTRL_APQ8064
229 tristate "Qualcomm APQ8064 pin controller driver"
230 depends on GPIOLIB && OF
231 select PINCTRL_MSM
232 help
233 This is the pinctrl, pinmux, pinconf and gpiolib driver for the
234 Qualcomm TLMM block found in the Qualcomm APQ8064 platform.
235
Andy Grossb4da6572014-04-14 22:10:35 -0500236config PINCTRL_IPQ8064
237 tristate "Qualcomm IPQ8064 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 IPQ8064 platform.
243
Bjorn Andersson55aaf8342013-12-05 18:10:04 -0800244config PINCTRL_MSM8X74
Bjorn Andersson376f4132013-12-14 22:44:33 -0800245 tristate "Qualcomm 8x74 pin controller driver"
Uwe Kleine-Königfb95a942014-04-01 22:25:59 +0200246 depends on GPIOLIB && OF && (ARCH_QCOM || COMPILE_TEST)
Bjorn Andersson55aaf8342013-12-05 18:10:04 -0800247 select PINCTRL_MSM
Bjorn Andersson376f4132013-12-14 22:44:33 -0800248 help
249 This is the pinctrl, pinmux, pinconf and gpiolib driver for the
250 Qualcomm TLMM block found in the Qualcomm 8974 platform.
Bjorn Andersson55aaf8342013-12-05 18:10:04 -0800251
Linus Walleije98ea772012-04-26 23:57:25 +0200252config PINCTRL_NOMADIK
253 bool "Nomadik pin controller driver"
Arnd Bergmann0fa7be42012-05-15 11:24:34 +0000254 depends on ARCH_U8500 || ARCH_NOMADIK
Linus Walleijdbfe8ca2012-05-02 22:56:47 +0200255 select PINMUX
Linus Walleijd41af622012-05-03 15:58:12 +0200256 select PINCONF
Linus Walleije0bc34a2014-03-25 10:44:09 +0100257 select GPIOLIB
258 select OF_GPIO
259 select GPIOLIB_IRQCHIP
Linus Walleije98ea772012-04-26 23:57:25 +0200260
Linus Walleijf79c5ed2012-08-10 00:43:28 +0200261config PINCTRL_STN8815
262 bool "STN8815 pin controller driver"
263 depends on PINCTRL_NOMADIK && ARCH_NOMADIK
264
Linus Walleije98ea772012-04-26 23:57:25 +0200265config PINCTRL_DB8500
266 bool "DB8500 pin controller driver"
267 depends on PINCTRL_NOMADIK && ARCH_U8500
268
Patrice Chotard45a1b532012-07-20 15:45:22 +0200269config PINCTRL_DB8540
270 bool "DB8540 pin controller driver"
271 depends on PINCTRL_NOMADIK && ARCH_U8500
272
Heiko Stübnerd3e51162013-06-10 22:16:22 +0200273config PINCTRL_ROCKCHIP
274 bool
275 select PINMUX
276 select GENERIC_PINCONF
277 select GENERIC_IRQ_CHIP
Heiko Stübner751a99a2014-05-05 13:58:20 +0200278 select MFD_SYSCON
Heiko Stübnerd3e51162013-06-10 22:16:22 +0200279
Tony Lindgren8b8b0912012-07-10 02:05:46 -0700280config PINCTRL_SINGLE
281 tristate "One-register-per-pin type device tree based pinctrl driver"
282 depends on OF
283 select PINMUX
284 select PINCONF
Haojian Zhuang9dddb4d2013-02-17 19:42:55 +0800285 select GENERIC_PINCONF
Tony Lindgren8b8b0912012-07-10 02:05:46 -0700286 help
287 This selects the device tree based generic pinctrl driver.
288
Linus Walleij3bece552011-12-18 23:44:26 +0100289config PINCTRL_SIRF
Barry Songd3e26f22012-09-27 17:56:30 +0800290 bool "CSR SiRFprimaII/SiRFmarco pin controller driver"
291 depends on ARCH_SIRF
Rongjun Ying393daa82011-10-09 03:11:13 -0700292 select PINMUX
Linus Walleij7420d2d2014-04-15 14:43:47 +0800293 select GPIOLIB_IRQCHIP
Rongjun Ying393daa82011-10-09 03:11:13 -0700294
Srinivas KANDAGATLA701016c2013-06-20 15:05:38 +0100295config PINCTRL_ST
296 bool
297 depends on OF
298 select PINMUX
299 select PINCONF
Linus Walleij130cbe32014-04-08 14:45:47 +0200300 select GPIOLIB_IRQCHIP
Srinivas KANDAGATLA701016c2013-06-20 15:05:38 +0100301
Stephen Warren971dac72012-02-01 14:04:47 -0700302config PINCTRL_TEGRA
303 bool
Axel Lin507ccdb2012-11-12 10:00:22 +0800304 select PINMUX
305 select PINCONF
Stephen Warren971dac72012-02-01 14:04:47 -0700306
307config PINCTRL_TEGRA20
308 bool
Stephen Warren971dac72012-02-01 14:04:47 -0700309 select PINCTRL_TEGRA
310
311config PINCTRL_TEGRA30
312 bool
Stephen Warren971dac72012-02-01 14:04:47 -0700313 select PINCTRL_TEGRA
314
Pritesh Raithathab6ae7a22013-01-08 13:02:37 +0530315config PINCTRL_TEGRA114
316 bool
317 select PINCTRL_TEGRA
318
Ashwini Ghuge1a16bee2013-12-10 12:40:56 +0530319config PINCTRL_TEGRA124
320 bool
321 select PINCTRL_TEGRA
322
James Hogand5025f92013-06-20 10:26:27 +0100323config PINCTRL_TZ1090
324 bool "Toumaz Xenif TZ1090 pin control driver"
325 depends on SOC_TZ1090
326 select PINMUX
327 select GENERIC_PINCONF
328
James Hoganb58f0272013-06-20 10:26:29 +0100329config PINCTRL_TZ1090_PDC
330 bool "Toumaz Xenif TZ1090 PDC pin control driver"
331 depends on SOC_TZ1090
332 select PINMUX
333 select PINCONF
334
Linus Walleij3bece552011-12-18 23:44:26 +0100335config PINCTRL_U300
336 bool "U300 pin controller driver"
Linus Walleij98da3522011-05-02 20:54:38 +0200337 depends on ARCH_U300
338 select PINMUX
Linus Walleijdc0b1aa2011-11-16 21:58:10 +0100339 select GENERIC_PINCONF
Linus Walleij45f034e2011-11-05 21:28:46 +0100340
Linus Walleijca402d32011-11-16 09:22:59 +0100341config PINCTRL_COH901
342 bool "ST-Ericsson U300 COH 901 335/571 GPIO"
Linus Walleij3c94d1b2012-06-18 20:07:50 +0200343 depends on GPIOLIB && ARCH_U300 && PINCTRL_U300
Linus Walleij523dcce2014-03-25 13:37:17 +0100344 select GPIOLIB_IRQCHIP
Linus Walleijca402d32011-11-16 09:22:59 +0100345 help
346 Say yes here to support GPIO interface on ST-Ericsson U300.
347 The names of the two IP block variants supported are
348 COH 901 335 and COH 901 571/3. They contain 3, 5 or 7
349 ports of 8 GPIO pins each.
350
Thomas Abraham30574f02012-09-07 06:07:19 +0900351config PINCTRL_SAMSUNG
Arnd Bergmanncbc351a2012-11-15 11:58:24 +0100352 bool
Thomas Abraham30574f02012-09-07 06:07:19 +0900353 select PINMUX
354 select PINCONF
355
Kukjin Kima1ed2672013-01-18 20:35:06 +0100356config PINCTRL_EXYNOS
Doug Anderson83978252013-06-10 18:26:53 +0900357 bool "Pinctrl driver data for Samsung EXYNOS SoCs other than 5440"
Mateusz Krawczuk608a26a2013-08-27 15:08:10 +0200358 depends on OF && GPIOLIB && (ARCH_EXYNOS || ARCH_S5PV210)
Thomas Abraham43b169d2012-09-07 06:07:19 +0900359 select PINCTRL_SAMSUNG
360
Thomas Abrahamf0b9a7e2012-10-10 09:41:12 +0900361config PINCTRL_EXYNOS5440
362 bool "Samsung EXYNOS5440 SoC pinctrl driver"
Doug Anderson83978252013-06-10 18:26:53 +0900363 depends on SOC_EXYNOS5440
Thomas Abrahamf0b9a7e2012-10-10 09:41:12 +0900364 select PINMUX
365 select PINCONF
366
Laxman Dewangan0a8d3e22013-08-06 18:42:35 +0530367config PINCTRL_PALMAS
Mark Brown736658c2013-08-19 16:07:26 +0100368 bool "Pinctrl driver for the PALMAS Series MFD devices"
Laxman Dewangan0a8d3e22013-08-06 18:42:35 +0530369 depends on OF && MFD_PALMAS
Axel Lin63ca8db2013-08-22 14:30:08 +0800370 select PINMUX
Laxman Dewangan0a8d3e22013-08-06 18:42:35 +0530371 select GENERIC_PINCONF
372 help
373 Palmas device supports the configuration of pins for different
374 functionality. This driver supports the pinmux, push-pull and
375 open drain configuration for the Palmas series devices like
376 TPS65913, TPS80036 etc.
377
Heiko Stuebneraf99a752013-05-21 00:56:13 +0900378config PINCTRL_S3C24XX
379 bool "Samsung S3C24XX SoC pinctrl driver"
380 depends on ARCH_S3C24XX
381 select PINCTRL_SAMSUNG
382
Tomasz Figa61dd7262013-03-18 22:31:55 +0100383config PINCTRL_S3C64XX
384 bool "Samsung S3C64XX SoC pinctrl driver"
385 depends on ARCH_S3C64XX
386 select PINCTRL_SAMSUNG
387
Thomas Petazzoni06763c72012-10-24 23:38:58 +0200388source "drivers/pinctrl/mvebu/Kconfig"
Laurent Pinchart6e54d8d2012-12-15 23:51:19 +0100389source "drivers/pinctrl/sh-pfc/Kconfig"
Viresh Kumardeda8282012-03-28 22:27:07 +0530390source "drivers/pinctrl/spear/Kconfig"
Maxime Ripard5f910772014-04-18 18:53:02 +0200391source "drivers/pinctrl/sunxi/Kconfig"
Tony Prisk170c6152013-02-20 09:32:19 +1300392source "drivers/pinctrl/vt8500/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
401 depends on ARC_PLAT_TB10X
402
Linus Walleij45f034e2011-11-05 21:28:46 +0100403endmenu
Linus Walleij98da3522011-05-02 20:54:38 +0200404
Linus Walleij2744e8a2011-05-02 20:50:54 +0200405endif