Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[sfrench/cifs-2.6.git] / drivers / pinctrl / Kconfig
1 #
2 # PINCTRL infrastructure and drivers
3 #
4
5 menuconfig PINCTRL
6         bool "Pin controllers"
7
8 if PINCTRL
9
10 config GENERIC_PINCTRL_GROUPS
11         bool
12
13 config PINMUX
14         bool "Support pin multiplexing controllers" if COMPILE_TEST
15
16 config GENERIC_PINMUX_FUNCTIONS
17         bool
18         select PINMUX
19
20 config PINCONF
21         bool "Support pin configuration controllers" if COMPILE_TEST
22
23 config GENERIC_PINCONF
24         bool
25         select PINCONF
26
27 config 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
33 config PINCTRL_ARTPEC6
34         bool "Axis ARTPEC-6 pin controller driver"
35         depends on MACH_ARTPEC6
36         select PINMUX
37         select GENERIC_PINCONF
38         help
39           This is the driver for the Axis ARTPEC-6 pin controller. This driver
40           supports pin function multiplexing as well as pin bias and drive
41           strength configuration. Device tree integration instructions can be
42           found in Documentation/devicetree/bindings/pinctrl/axis,artpec6-pinctrl.txt
43
44 config PINCTRL_AS3722
45         tristate "Pinctrl and GPIO driver for ams AS3722 PMIC"
46         depends on MFD_AS3722 && GPIOLIB
47         select PINMUX
48         select GENERIC_PINCONF
49         help
50           AS3722 device supports the configuration of GPIO pins for different
51           functionality. This driver supports the pinmux, push-pull and
52           open drain configuration for the GPIO pins of AS3722 devices. It also
53           supports the GPIO functionality through gpiolib.
54
55 config PINCTRL_AXP209
56         tristate "X-Powers AXP209 PMIC pinctrl and GPIO Support"
57         depends on MFD_AXP20X
58         depends on OF
59         select PINMUX
60         select GENERIC_PINCONF
61         select GPIOLIB
62         help
63           AXP PMICs provides multiple GPIOs that can be muxed for different
64           functions. This driver bundles a pinctrl driver to select the function
65           muxing and a GPIO driver to handle the GPIO when the GPIO function is
66           selected.
67           Say yes to enable pinctrl and GPIO support for the AXP209 PMIC
68
69 config PINCTRL_AT91
70         bool "AT91 pinctrl driver"
71         depends on OF
72         depends on ARCH_AT91
73         select PINMUX
74         select PINCONF
75         select GPIOLIB
76         select OF_GPIO
77         select GPIOLIB_IRQCHIP
78         help
79           Say Y here to enable the at91 pinctrl driver
80
81 config PINCTRL_AT91PIO4
82         bool "AT91 PIO4 pinctrl driver"
83         depends on OF
84         depends on ARCH_AT91
85         select PINMUX
86         select GENERIC_PINCONF
87         select GPIOLIB
88         select GPIOLIB_IRQCHIP
89         select OF_GPIO
90         help
91           Say Y here to enable the at91 pinctrl/gpio driver for Atmel PIO4
92           controller available on sama5d2 SoC.
93
94 config PINCTRL_AMD
95         tristate "AMD GPIO pin control"
96         depends on HAS_IOMEM
97         select GPIOLIB
98         select GPIOLIB_IRQCHIP
99         select PINMUX
100         select PINCONF
101         select GENERIC_PINCONF
102         help
103           driver for memory mapped GPIO functionality on AMD platforms
104           (x86 or arm).Most pins are usually muxed to some other
105           functionality by firmware,so only a small amount is available
106           for gpio use.
107
108           Requires ACPI/FDT device enumeration code to set up a platform
109           device.
110
111 config PINCTRL_DA850_PUPD
112         tristate "TI DA850/OMAP-L138/AM18XX pullup/pulldown groups"
113         depends on OF && (ARCH_DAVINCI_DA850 || COMPILE_TEST)
114         select PINCONF
115         select GENERIC_PINCONF
116         help
117           Driver for TI DA850/OMAP-L138/AM18XX pinconf. Used to control
118           pullup/pulldown pin groups.
119
120 config PINCTRL_DIGICOLOR
121         bool
122         depends on OF && (ARCH_DIGICOLOR || COMPILE_TEST)
123         select PINMUX
124         select GENERIC_PINCONF
125
126 config PINCTRL_LANTIQ
127         bool
128         depends on LANTIQ
129         select PINMUX
130         select PINCONF
131
132 config PINCTRL_LPC18XX
133         bool "NXP LPC18XX/43XX SCU pinctrl driver"
134         depends on OF && (ARCH_LPC18XX || COMPILE_TEST)
135         default ARCH_LPC18XX
136         select PINMUX
137         select GENERIC_PINCONF
138         help
139           Pinctrl driver for NXP LPC18xx/43xx System Control Unit (SCU).
140
141 config PINCTRL_FALCON
142         bool
143         depends on SOC_FALCON
144         depends on PINCTRL_LANTIQ
145
146 config PINCTRL_GEMINI
147         bool
148         depends on ARCH_GEMINI
149         default ARCH_GEMINI
150         select PINMUX
151         select GENERIC_PINCONF
152         select MFD_SYSCON
153
154 config PINCTRL_MCP23S08
155         tristate "Microchip MCP23xxx I/O expander"
156         depends on SPI_MASTER || I2C
157         depends on I2C || I2C=n
158         select GPIOLIB
159         select GPIOLIB_IRQCHIP
160         select REGMAP_I2C if I2C
161         select REGMAP_SPI if SPI_MASTER
162         select GENERIC_PINCONF
163         help
164           SPI/I2C driver for Microchip MCP23S08 / MCP23S17 / MCP23S18 /
165           MCP23008 / MCP23017 / MCP23018 I/O expanders.
166           This provides a GPIO interface supporting inputs and outputs and a
167           corresponding interrupt-controller.
168
169 config PINCTRL_OXNAS
170         bool
171         depends on OF
172         select PINMUX
173         select PINCONF
174         select GENERIC_PINCONF
175         select GPIOLIB
176         select OF_GPIO
177         select GPIOLIB_IRQCHIP
178         select MFD_SYSCON
179
180 config PINCTRL_ROCKCHIP
181         bool
182         select PINMUX
183         select GENERIC_PINCONF
184         select GENERIC_IRQ_CHIP
185         select MFD_SYSCON
186
187 config PINCTRL_RZA1
188         bool "Renesas RZ/A1 gpio and pinctrl driver"
189         depends on OF
190         depends on ARCH_R7S72100 || COMPILE_TEST
191         select GPIOLIB
192         select GENERIC_PINCTRL_GROUPS
193         select GENERIC_PINMUX_FUNCTIONS
194         select GENERIC_PINCONF
195         help
196           This selects pinctrl driver for Renesas RZ/A1 platforms.
197
198 config PINCTRL_RZN1
199         bool "Renesas RZ/N1 pinctrl driver"
200         depends on OF
201         depends on ARCH_RZN1 || COMPILE_TEST
202         select GENERIC_PINCTRL_GROUPS
203         select GENERIC_PINMUX_FUNCTIONS
204         select GENERIC_PINCONF
205         help
206           This selects pinctrl driver for Renesas RZ/N1 devices.
207
208 config PINCTRL_SINGLE
209         tristate "One-register-per-pin type device tree based pinctrl driver"
210         depends on OF
211         depends on HAS_IOMEM
212         select GENERIC_PINCTRL_GROUPS
213         select GENERIC_PINMUX_FUNCTIONS
214         select GENERIC_PINCONF
215         help
216           This selects the device tree based generic pinctrl driver.
217
218 config PINCTRL_SIRF
219         bool "CSR SiRFprimaII pin controller driver"
220         depends on ARCH_SIRF
221         select PINMUX
222         select PINCONF
223         select GENERIC_PINCONF
224         select GPIOLIB_IRQCHIP
225
226 config PINCTRL_SX150X
227         bool "Semtech SX150x I2C GPIO expander pinctrl driver"
228         depends on I2C=y
229         select PINMUX
230         select PINCONF
231         select GENERIC_PINCONF
232         select GPIOLIB
233         select GPIOLIB_IRQCHIP
234         select REGMAP
235         help
236           Say yes here to provide support for Semtech SX150x-series I2C
237           GPIO expanders as pinctrl module.
238           Compatible models include:
239           - 8 bits:  sx1508q, sx1502q
240           - 16 bits: sx1509q, sx1506q
241
242 config PINCTRL_PISTACHIO
243         def_bool y if MACH_PISTACHIO
244         depends on GPIOLIB
245         select PINMUX
246         select GENERIC_PINCONF
247         select GPIOLIB_IRQCHIP
248         select OF_GPIO
249
250 config PINCTRL_ST
251         bool
252         depends on OF
253         select PINMUX
254         select PINCONF
255         select GPIOLIB_IRQCHIP
256
257 config PINCTRL_U300
258         bool "U300 pin controller driver"
259         depends on ARCH_U300
260         select PINMUX
261         select GENERIC_PINCONF
262
263 config PINCTRL_COH901
264         bool "ST-Ericsson U300 COH 901 335/571 GPIO"
265         depends on GPIOLIB && ARCH_U300 && PINCTRL_U300
266         select GPIOLIB_IRQCHIP
267         help
268           Say yes here to support GPIO interface on ST-Ericsson U300.
269           The names of the two IP block variants supported are
270           COH 901 335 and COH 901 571/3. They contain 3, 5 or 7
271           ports of 8 GPIO pins each.
272
273 config PINCTRL_MAX77620
274         tristate "MAX77620/MAX20024 Pincontrol support"
275         depends on MFD_MAX77620 && OF
276         select PINMUX
277         select GENERIC_PINCONF
278         help
279           Say Yes here to enable Pin control support for Maxim PMIC MAX77620.
280           This PMIC has 8 GPIO pins that work as GPIO as well as special
281           function in alternate mode. This driver also configure push-pull,
282           open drain, FPS slots etc.
283
284 config PINCTRL_PALMAS
285         tristate "Pinctrl driver for the PALMAS Series MFD devices"
286         depends on OF && MFD_PALMAS
287         select PINMUX
288         select GENERIC_PINCONF
289         help
290           Palmas device supports the configuration of pins for different
291           functionality. This driver supports the pinmux, push-pull and
292           open drain configuration for the Palmas series devices like
293           TPS65913, TPS80036 etc.
294
295 config PINCTRL_PIC32
296         bool "Microchip PIC32 pin controller driver"
297         depends on OF
298         depends on MACH_PIC32
299         select PINMUX
300         select GENERIC_PINCONF
301         select GPIOLIB_IRQCHIP
302         select OF_GPIO
303         help
304           This is the pin controller and gpio driver for Microchip PIC32
305           microcontrollers. This option is selected automatically when specific
306           machine and arch are selected to build.
307
308 config PINCTRL_PIC32MZDA
309         def_bool y if PIC32MZDA
310         select PINCTRL_PIC32
311
312 config PINCTRL_ZYNQ
313         bool "Pinctrl driver for Xilinx Zynq"
314         depends on ARCH_ZYNQ
315         select PINMUX
316         select GENERIC_PINCONF
317         help
318           This selects the pinctrl driver for Xilinx Zynq.
319
320 config PINCTRL_INGENIC
321         bool "Pinctrl driver for the Ingenic JZ47xx SoCs"
322         default MACH_INGENIC
323         depends on OF
324         depends on MIPS || COMPILE_TEST
325         select GENERIC_PINCONF
326         select GENERIC_PINCTRL_GROUPS
327         select GENERIC_PINMUX_FUNCTIONS
328         select GPIOLIB
329         select GPIOLIB_IRQCHIP
330         select REGMAP_MMIO
331
332 config PINCTRL_RK805
333         tristate "Pinctrl and GPIO driver for RK805 PMIC"
334         depends on MFD_RK808
335         select GPIOLIB
336         select PINMUX
337         select GENERIC_PINCONF
338         help
339           This selects the pinctrl driver for RK805.
340
341 config PINCTRL_OCELOT
342         bool "Pinctrl driver for the Microsemi Ocelot SoCs"
343         default y
344         depends on OF
345         depends on MSCC_OCELOT || COMPILE_TEST
346         select GPIOLIB
347         select GPIOLIB_IRQCHIP
348         select GENERIC_PINCONF
349         select GENERIC_PINCTRL_GROUPS
350         select GENERIC_PINMUX_FUNCTIONS
351         select REGMAP_MMIO
352
353 source "drivers/pinctrl/actions/Kconfig"
354 source "drivers/pinctrl/aspeed/Kconfig"
355 source "drivers/pinctrl/bcm/Kconfig"
356 source "drivers/pinctrl/berlin/Kconfig"
357 source "drivers/pinctrl/freescale/Kconfig"
358 source "drivers/pinctrl/intel/Kconfig"
359 source "drivers/pinctrl/mvebu/Kconfig"
360 source "drivers/pinctrl/nomadik/Kconfig"
361 source "drivers/pinctrl/nuvoton/Kconfig"
362 source "drivers/pinctrl/pxa/Kconfig"
363 source "drivers/pinctrl/qcom/Kconfig"
364 source "drivers/pinctrl/samsung/Kconfig"
365 source "drivers/pinctrl/sh-pfc/Kconfig"
366 source "drivers/pinctrl/spear/Kconfig"
367 source "drivers/pinctrl/sprd/Kconfig"
368 source "drivers/pinctrl/stm32/Kconfig"
369 source "drivers/pinctrl/sunxi/Kconfig"
370 source "drivers/pinctrl/tegra/Kconfig"
371 source "drivers/pinctrl/ti/Kconfig"
372 source "drivers/pinctrl/uniphier/Kconfig"
373 source "drivers/pinctrl/vt8500/Kconfig"
374 source "drivers/pinctrl/mediatek/Kconfig"
375 source "drivers/pinctrl/zte/Kconfig"
376 source "drivers/pinctrl/meson/Kconfig"
377 source "drivers/pinctrl/cirrus/Kconfig"
378
379 config PINCTRL_XWAY
380         bool
381         depends on SOC_TYPE_XWAY
382         depends on PINCTRL_LANTIQ
383
384 config PINCTRL_TB10X
385         bool
386         depends on OF && ARC_PLAT_TB10X
387         select GPIOLIB
388
389 endif