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