Merge tag 'rtc-4.21' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux
[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_RZA2
199         bool "Renesas RZ/A2 gpio and pinctrl driver"
200         depends on OF
201         depends on ARCH_R7S9210 || COMPILE_TEST
202         select GPIOLIB
203         select GENERIC_PINCTRL_GROUPS
204         select GENERIC_PINMUX_FUNCTIONS
205         select GENERIC_PINCONF
206         help
207           This selects GPIO and pinctrl driver for Renesas RZ/A2 platforms.
208
209 config PINCTRL_RZN1
210         bool "Renesas RZ/N1 pinctrl driver"
211         depends on OF
212         depends on ARCH_RZN1 || COMPILE_TEST
213         select GENERIC_PINCTRL_GROUPS
214         select GENERIC_PINMUX_FUNCTIONS
215         select GENERIC_PINCONF
216         help
217           This selects pinctrl driver for Renesas RZ/N1 devices.
218
219 config PINCTRL_SINGLE
220         tristate "One-register-per-pin type device tree based pinctrl driver"
221         depends on OF
222         depends on HAS_IOMEM
223         select GENERIC_PINCTRL_GROUPS
224         select GENERIC_PINMUX_FUNCTIONS
225         select GENERIC_PINCONF
226         help
227           This selects the device tree based generic pinctrl driver.
228
229 config PINCTRL_SIRF
230         bool "CSR SiRFprimaII pin controller driver"
231         depends on ARCH_SIRF
232         select PINMUX
233         select PINCONF
234         select GENERIC_PINCONF
235         select GPIOLIB_IRQCHIP
236
237 config PINCTRL_SX150X
238         bool "Semtech SX150x I2C GPIO expander pinctrl driver"
239         depends on I2C=y
240         select PINMUX
241         select PINCONF
242         select GENERIC_PINCONF
243         select GPIOLIB
244         select GPIOLIB_IRQCHIP
245         select REGMAP
246         help
247           Say yes here to provide support for Semtech SX150x-series I2C
248           GPIO expanders as pinctrl module.
249           Compatible models include:
250           - 8 bits:  sx1508q, sx1502q
251           - 16 bits: sx1509q, sx1506q
252
253 config PINCTRL_PISTACHIO
254         def_bool y if MACH_PISTACHIO
255         depends on GPIOLIB
256         select PINMUX
257         select GENERIC_PINCONF
258         select GPIOLIB_IRQCHIP
259         select OF_GPIO
260
261 config PINCTRL_ST
262         bool
263         depends on OF
264         select PINMUX
265         select PINCONF
266         select GPIOLIB_IRQCHIP
267
268 config PINCTRL_U300
269         bool "U300 pin controller driver"
270         depends on ARCH_U300
271         select PINMUX
272         select GENERIC_PINCONF
273
274 config PINCTRL_COH901
275         bool "ST-Ericsson U300 COH 901 335/571 GPIO"
276         depends on GPIOLIB && ARCH_U300 && PINCTRL_U300
277         select GPIOLIB_IRQCHIP
278         help
279           Say yes here to support GPIO interface on ST-Ericsson U300.
280           The names of the two IP block variants supported are
281           COH 901 335 and COH 901 571/3. They contain 3, 5 or 7
282           ports of 8 GPIO pins each.
283
284 config PINCTRL_MAX77620
285         tristate "MAX77620/MAX20024 Pincontrol support"
286         depends on MFD_MAX77620 && OF
287         select PINMUX
288         select GENERIC_PINCONF
289         help
290           Say Yes here to enable Pin control support for Maxim PMIC MAX77620.
291           This PMIC has 8 GPIO pins that work as GPIO as well as special
292           function in alternate mode. This driver also configure push-pull,
293           open drain, FPS slots etc.
294
295 config PINCTRL_PALMAS
296         tristate "Pinctrl driver for the PALMAS Series MFD devices"
297         depends on OF && MFD_PALMAS
298         select PINMUX
299         select GENERIC_PINCONF
300         help
301           Palmas device supports the configuration of pins for different
302           functionality. This driver supports the pinmux, push-pull and
303           open drain configuration for the Palmas series devices like
304           TPS65913, TPS80036 etc.
305
306 config PINCTRL_PIC32
307         bool "Microchip PIC32 pin controller driver"
308         depends on OF
309         depends on MACH_PIC32
310         select PINMUX
311         select GENERIC_PINCONF
312         select GPIOLIB_IRQCHIP
313         select OF_GPIO
314         help
315           This is the pin controller and gpio driver for Microchip PIC32
316           microcontrollers. This option is selected automatically when specific
317           machine and arch are selected to build.
318
319 config PINCTRL_PIC32MZDA
320         def_bool y if PIC32MZDA
321         select PINCTRL_PIC32
322
323 config PINCTRL_ZYNQ
324         bool "Pinctrl driver for Xilinx Zynq"
325         depends on ARCH_ZYNQ
326         select PINMUX
327         select GENERIC_PINCONF
328         help
329           This selects the pinctrl driver for Xilinx Zynq.
330
331 config PINCTRL_INGENIC
332         bool "Pinctrl driver for the Ingenic JZ47xx SoCs"
333         default MACH_INGENIC
334         depends on OF
335         depends on MIPS || COMPILE_TEST
336         select GENERIC_PINCONF
337         select GENERIC_PINCTRL_GROUPS
338         select GENERIC_PINMUX_FUNCTIONS
339         select GPIOLIB
340         select GPIOLIB_IRQCHIP
341         select REGMAP_MMIO
342
343 config PINCTRL_RK805
344         tristate "Pinctrl and GPIO driver for RK805 PMIC"
345         depends on MFD_RK808
346         select GPIOLIB
347         select PINMUX
348         select GENERIC_PINCONF
349         help
350           This selects the pinctrl driver for RK805.
351
352 config PINCTRL_OCELOT
353         bool "Pinctrl driver for the Microsemi Ocelot and Jaguar2 SoCs"
354         depends on OF
355         depends on HAS_IOMEM
356         select GPIOLIB
357         select GPIOLIB_IRQCHIP
358         select GENERIC_PINCONF
359         select GENERIC_PINCTRL_GROUPS
360         select GENERIC_PINMUX_FUNCTIONS
361         select OF_GPIO
362         select REGMAP_MMIO
363
364 source "drivers/pinctrl/actions/Kconfig"
365 source "drivers/pinctrl/aspeed/Kconfig"
366 source "drivers/pinctrl/bcm/Kconfig"
367 source "drivers/pinctrl/berlin/Kconfig"
368 source "drivers/pinctrl/freescale/Kconfig"
369 source "drivers/pinctrl/intel/Kconfig"
370 source "drivers/pinctrl/mvebu/Kconfig"
371 source "drivers/pinctrl/nomadik/Kconfig"
372 source "drivers/pinctrl/nuvoton/Kconfig"
373 source "drivers/pinctrl/pxa/Kconfig"
374 source "drivers/pinctrl/qcom/Kconfig"
375 source "drivers/pinctrl/samsung/Kconfig"
376 source "drivers/pinctrl/sh-pfc/Kconfig"
377 source "drivers/pinctrl/spear/Kconfig"
378 source "drivers/pinctrl/sprd/Kconfig"
379 source "drivers/pinctrl/stm32/Kconfig"
380 source "drivers/pinctrl/sunxi/Kconfig"
381 source "drivers/pinctrl/tegra/Kconfig"
382 source "drivers/pinctrl/ti/Kconfig"
383 source "drivers/pinctrl/uniphier/Kconfig"
384 source "drivers/pinctrl/vt8500/Kconfig"
385 source "drivers/pinctrl/mediatek/Kconfig"
386 source "drivers/pinctrl/zte/Kconfig"
387 source "drivers/pinctrl/meson/Kconfig"
388 source "drivers/pinctrl/cirrus/Kconfig"
389
390 config PINCTRL_XWAY
391         bool
392         depends on SOC_TYPE_XWAY
393         depends on PINCTRL_LANTIQ
394
395 config PINCTRL_TB10X
396         bool
397         depends on OF && ARC_PLAT_TB10X
398         select GPIOLIB
399
400 endif