Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1#
2# PINCTRL infrastructure and drivers
3#
4
5menuconfig PINCTRL
6 bool "Pin controllers"
7
8if PINCTRL
9
10config GENERIC_PINCTRL_GROUPS
11 bool
12
13config PINMUX
14 bool "Support pin multiplexing controllers" if COMPILE_TEST
15
16config GENERIC_PINMUX_FUNCTIONS
17 bool
18 select PINMUX
19
20config PINCONF
21 bool "Support pin configuration controllers" if COMPILE_TEST
22
23config GENERIC_PINCONF
24 bool
25 select PINCONF
26
27config 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
33config PINCTRL_ADI2
34 bool "ADI pin controller driver"
35 depends on (BF54x || BF60x)
36 depends on !GPIO_ADI
37 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
44config 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
55config PINCTRL_AS3722
56 tristate "Pinctrl and GPIO driver for ams AS3722 PMIC"
57 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
66config PINCTRL_AXP209
67 tristate "X-Powers AXP209 PMIC pinctrl and GPIO Support"
68 depends on MFD_AXP20X
69 depends on OF
70 select PINMUX
71 select GENERIC_PINCONF
72 select GPIOLIB
73 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
80config 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
88config PINCTRL_AT91
89 bool "AT91 pinctrl driver"
90 depends on OF
91 depends on ARCH_AT91
92 select PINMUX
93 select PINCONF
94 select GPIOLIB
95 select OF_GPIO
96 select GPIOLIB_IRQCHIP
97 help
98 Say Y here to enable the at91 pinctrl driver
99
100config 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
113config PINCTRL_AMD
114 tristate "AMD GPIO pin control"
115 depends on HAS_IOMEM
116 select GPIOLIB
117 select GPIOLIB_IRQCHIP
118 select PINMUX
119 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
130config 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
139config PINCTRL_DIGICOLOR
140 bool
141 depends on OF && (ARCH_DIGICOLOR || COMPILE_TEST)
142 select PINMUX
143 select GENERIC_PINCONF
144
145config PINCTRL_LANTIQ
146 bool
147 depends on LANTIQ
148 select PINMUX
149 select PINCONF
150
151config 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
160config PINCTRL_FALCON
161 bool
162 depends on SOC_FALCON
163 depends on PINCTRL_LANTIQ
164
165config PINCTRL_GEMINI
166 bool
167 depends on ARCH_GEMINI
168 default ARCH_GEMINI
169 select PINMUX
170 select GENERIC_PINCONF
171 select MFD_SYSCON
172
173config PINCTRL_MCP23S08
174 tristate "Microchip MCP23xxx I/O expander"
175 depends on SPI_MASTER || I2C
176 depends on I2C || I2C=n
177 select GPIOLIB
178 select GPIOLIB_IRQCHIP
179 select REGMAP_I2C if I2C
180 select REGMAP_SPI if SPI_MASTER
181 select GENERIC_PINCONF
182 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
188config 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
199config PINCTRL_ROCKCHIP
200 bool
201 select PINMUX
202 select GENERIC_PINCONF
203 select GENERIC_IRQ_CHIP
204 select MFD_SYSCON
205
206config 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
217config PINCTRL_SINGLE
218 tristate "One-register-per-pin type device tree based pinctrl driver"
219 depends on OF
220 depends on HAS_IOMEM
221 select GENERIC_PINCTRL_GROUPS
222 select GENERIC_PINMUX_FUNCTIONS
223 select GENERIC_PINCONF
224 help
225 This selects the device tree based generic pinctrl driver.
226
227config PINCTRL_SIRF
228 bool "CSR SiRFprimaII pin controller driver"
229 depends on ARCH_SIRF
230 select PINMUX
231 select PINCONF
232 select GENERIC_PINCONF
233 select GPIOLIB_IRQCHIP
234
235config PINCTRL_SX150X
236 bool "Semtech SX150x I2C GPIO expander pinctrl driver"
237 depends on I2C=y
238 select PINMUX
239 select PINCONF
240 select GENERIC_PINCONF
241 select GPIOLIB
242 select GPIOLIB_IRQCHIP
243 select REGMAP
244 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
251config 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
259config PINCTRL_ST
260 bool
261 depends on OF
262 select PINMUX
263 select PINCONF
264 select GPIOLIB_IRQCHIP
265
266config PINCTRL_TZ1090
267 bool "Toumaz Xenif TZ1090 pin control driver"
268 depends on SOC_TZ1090
269 select PINMUX
270 select GENERIC_PINCONF
271
272config PINCTRL_TZ1090_PDC
273 bool "Toumaz Xenif TZ1090 PDC pin control driver"
274 depends on SOC_TZ1090
275 select PINMUX
276 select PINCONF
277
278config PINCTRL_U300
279 bool "U300 pin controller driver"
280 depends on ARCH_U300
281 select PINMUX
282 select GENERIC_PINCONF
283
284config PINCTRL_COH901
285 bool "ST-Ericsson U300 COH 901 335/571 GPIO"
286 depends on GPIOLIB && ARCH_U300 && PINCTRL_U300
287 select GPIOLIB_IRQCHIP
288 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
294config PINCTRL_MAX77620
295 tristate "MAX77620/MAX20024 Pincontrol support"
296 depends on MFD_MAX77620 && OF
297 select PINMUX
298 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
305config PINCTRL_PALMAS
306 tristate "Pinctrl driver for the PALMAS Series MFD devices"
307 depends on OF && MFD_PALMAS
308 select PINMUX
309 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
316config 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
333config PINCTRL_ZYNQ
334 bool "Pinctrl driver for Xilinx Zynq"
335 depends on ARCH_ZYNQ
336 select PINMUX
337 select GENERIC_PINCONF
338 help
339 This selects the pinctrl driver for Xilinx Zynq.
340
341config PINCTRL_INGENIC
342 bool "Pinctrl driver for the Ingenic JZ47xx SoCs"
343 default y
344 depends on OF
345 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
351config 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
360config 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
371source "drivers/pinctrl/aspeed/Kconfig"
372source "drivers/pinctrl/bcm/Kconfig"
373source "drivers/pinctrl/berlin/Kconfig"
374source "drivers/pinctrl/freescale/Kconfig"
375source "drivers/pinctrl/intel/Kconfig"
376source "drivers/pinctrl/mvebu/Kconfig"
377source "drivers/pinctrl/nomadik/Kconfig"
378source "drivers/pinctrl/pxa/Kconfig"
379source "drivers/pinctrl/qcom/Kconfig"
380source "drivers/pinctrl/samsung/Kconfig"
381source "drivers/pinctrl/sh-pfc/Kconfig"
382source "drivers/pinctrl/spear/Kconfig"
383source "drivers/pinctrl/sprd/Kconfig"
384source "drivers/pinctrl/stm32/Kconfig"
385source "drivers/pinctrl/sunxi/Kconfig"
386source "drivers/pinctrl/tegra/Kconfig"
387source "drivers/pinctrl/ti/Kconfig"
388source "drivers/pinctrl/uniphier/Kconfig"
389source "drivers/pinctrl/vt8500/Kconfig"
390source "drivers/pinctrl/mediatek/Kconfig"
391source "drivers/pinctrl/zte/Kconfig"
392source "drivers/pinctrl/meson/Kconfig"
393
394config PINCTRL_XWAY
395 bool
396 depends on SOC_TYPE_XWAY
397 depends on PINCTRL_LANTIQ
398
399config PINCTRL_TB10X
400 bool
401 depends on OF && ARC_PLAT_TB10X
402 select GPIOLIB
403
404endif