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