Merge tag 'vfs-5.8-merge-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux
[linux-2.6-microblaze.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_DA9062
130         tristate "Dialog Semiconductor DA9062 PMIC pinctrl and GPIO Support"
131         depends on MFD_DA9062
132         select GPIOLIB
133         help
134           The Dialog DA9062 PMIC provides multiple GPIOs that can be muxed for
135           different functions. This driver bundles a pinctrl driver to select the
136           function muxing and a GPIO driver to handle the GPIO when the GPIO
137           function is selected.
138
139           Say yes to enable pinctrl and GPIO support for the DA9062 PMIC.
140
141 config PINCTRL_DIGICOLOR
142         bool
143         depends on OF && (ARCH_DIGICOLOR || COMPILE_TEST)
144         select PINMUX
145         select GENERIC_PINCONF
146
147 config PINCTRL_LANTIQ
148         bool
149         depends on LANTIQ
150         select PINMUX
151         select PINCONF
152
153 config PINCTRL_LPC18XX
154         bool "NXP LPC18XX/43XX SCU pinctrl driver"
155         depends on OF && (ARCH_LPC18XX || COMPILE_TEST)
156         default ARCH_LPC18XX
157         select PINMUX
158         select GENERIC_PINCONF
159         help
160           Pinctrl driver for NXP LPC18xx/43xx System Control Unit (SCU).
161
162 config PINCTRL_FALCON
163         bool
164         depends on SOC_FALCON
165         depends on PINCTRL_LANTIQ
166
167 config PINCTRL_GEMINI
168         bool
169         depends on ARCH_GEMINI
170         default ARCH_GEMINI
171         select PINMUX
172         select GENERIC_PINCONF
173         select MFD_SYSCON
174
175 config PINCTRL_MCP23S08
176         tristate "Microchip MCP23xxx I/O expander"
177         depends on SPI_MASTER || I2C
178         depends on I2C || I2C=n
179         select GPIOLIB
180         select GPIOLIB_IRQCHIP
181         select REGMAP_I2C if I2C
182         select REGMAP_SPI if SPI_MASTER
183         select GENERIC_PINCONF
184         help
185           SPI/I2C driver for Microchip MCP23S08 / MCP23S17 / MCP23S18 /
186           MCP23008 / MCP23017 / MCP23018 I/O expanders.
187           This provides a GPIO interface supporting inputs and outputs and a
188           corresponding interrupt-controller.
189
190 config PINCTRL_OXNAS
191         bool
192         depends on OF
193         select PINMUX
194         select PINCONF
195         select GENERIC_PINCONF
196         select GPIOLIB
197         select OF_GPIO
198         select GPIOLIB_IRQCHIP
199         select MFD_SYSCON
200
201 config PINCTRL_ROCKCHIP
202         bool
203         select PINMUX
204         select GENERIC_PINCONF
205         select GENERIC_IRQ_CHIP
206         select MFD_SYSCON
207
208 config PINCTRL_RZA1
209         bool "Renesas RZ/A1 gpio and pinctrl driver"
210         depends on OF
211         depends on ARCH_R7S72100 || COMPILE_TEST
212         select GPIOLIB
213         select GENERIC_PINCTRL_GROUPS
214         select GENERIC_PINMUX_FUNCTIONS
215         select GENERIC_PINCONF
216         help
217           This selects pinctrl driver for Renesas RZ/A1 platforms.
218
219 config PINCTRL_RZA2
220         bool "Renesas RZ/A2 gpio and pinctrl driver"
221         depends on OF
222         depends on ARCH_R7S9210 || COMPILE_TEST
223         select GPIOLIB
224         select GENERIC_PINCTRL_GROUPS
225         select GENERIC_PINMUX_FUNCTIONS
226         select GENERIC_PINCONF
227         help
228           This selects GPIO and pinctrl driver for Renesas RZ/A2 platforms.
229
230 config PINCTRL_RZN1
231         bool "Renesas RZ/N1 pinctrl driver"
232         depends on OF
233         depends on ARCH_RZN1 || COMPILE_TEST
234         select GENERIC_PINCTRL_GROUPS
235         select GENERIC_PINMUX_FUNCTIONS
236         select GENERIC_PINCONF
237         help
238           This selects pinctrl driver for Renesas RZ/N1 devices.
239
240 config PINCTRL_SINGLE
241         tristate "One-register-per-pin type device tree based pinctrl driver"
242         depends on OF
243         depends on HAS_IOMEM
244         select GENERIC_PINCTRL_GROUPS
245         select GENERIC_PINMUX_FUNCTIONS
246         select GENERIC_PINCONF
247         help
248           This selects the device tree based generic pinctrl driver.
249
250 config PINCTRL_SIRF
251         bool "CSR SiRFprimaII pin controller driver"
252         depends on ARCH_SIRF
253         select PINMUX
254         select PINCONF
255         select GENERIC_PINCONF
256         select GPIOLIB_IRQCHIP
257
258 config PINCTRL_SX150X
259         bool "Semtech SX150x I2C GPIO expander pinctrl driver"
260         depends on I2C=y
261         select PINMUX
262         select PINCONF
263         select GENERIC_PINCONF
264         select GPIOLIB
265         select GPIOLIB_IRQCHIP
266         select REGMAP
267         help
268           Say yes here to provide support for Semtech SX150x-series I2C
269           GPIO expanders as pinctrl module.
270           Compatible models include:
271           - 8 bits:  sx1508q, sx1502q
272           - 16 bits: sx1509q, sx1506q
273
274 config PINCTRL_PISTACHIO
275         def_bool y if MACH_PISTACHIO
276         depends on GPIOLIB
277         select PINMUX
278         select GENERIC_PINCONF
279         select GPIOLIB_IRQCHIP
280         select OF_GPIO
281
282 config PINCTRL_ST
283         bool
284         depends on OF
285         select PINMUX
286         select PINCONF
287         select GPIOLIB_IRQCHIP
288
289 config PINCTRL_STMFX
290         tristate "STMicroelectronics STMFX GPIO expander pinctrl driver"
291         depends on I2C
292         depends on OF_GPIO
293         select GENERIC_PINCONF
294         select GPIOLIB_IRQCHIP
295         select MFD_STMFX
296         help
297           Driver for STMicroelectronics Multi-Function eXpander (STMFX)
298           GPIO expander.
299           This provides a GPIO interface supporting inputs and outputs,
300           and configuring push-pull, open-drain, and can also be used as
301           interrupt-controller.
302
303 config PINCTRL_U300
304         bool "U300 pin controller driver"
305         depends on ARCH_U300
306         select PINMUX
307         select GENERIC_PINCONF
308
309 config PINCTRL_COH901
310         bool "ST-Ericsson U300 COH 901 335/571 GPIO"
311         depends on GPIOLIB && ARCH_U300 && PINCTRL_U300
312         select GPIOLIB_IRQCHIP
313         help
314           Say yes here to support GPIO interface on ST-Ericsson U300.
315           The names of the two IP block variants supported are
316           COH 901 335 and COH 901 571/3. They contain 3, 5 or 7
317           ports of 8 GPIO pins each.
318
319 config PINCTRL_MAX77620
320         tristate "MAX77620/MAX20024 Pincontrol support"
321         depends on MFD_MAX77620 && OF
322         select PINMUX
323         select GENERIC_PINCONF
324         help
325           Say Yes here to enable Pin control support for Maxim PMIC MAX77620.
326           This PMIC has 8 GPIO pins that work as GPIO as well as special
327           function in alternate mode. This driver also configure push-pull,
328           open drain, FPS slots etc.
329
330 config PINCTRL_PALMAS
331         tristate "Pinctrl driver for the PALMAS Series MFD devices"
332         depends on OF && MFD_PALMAS
333         select PINMUX
334         select GENERIC_PINCONF
335         help
336           Palmas device supports the configuration of pins for different
337           functionality. This driver supports the pinmux, push-pull and
338           open drain configuration for the Palmas series devices like
339           TPS65913, TPS80036 etc.
340
341 config PINCTRL_PIC32
342         bool "Microchip PIC32 pin controller driver"
343         depends on OF
344         depends on MACH_PIC32
345         select PINMUX
346         select GENERIC_PINCONF
347         select GPIOLIB_IRQCHIP
348         select OF_GPIO
349         help
350           This is the pin controller and gpio driver for Microchip PIC32
351           microcontrollers. This option is selected automatically when specific
352           machine and arch are selected to build.
353
354 config PINCTRL_PIC32MZDA
355         def_bool y if PIC32MZDA
356         select PINCTRL_PIC32
357
358 config PINCTRL_ZYNQ
359         bool "Pinctrl driver for Xilinx Zynq"
360         depends on ARCH_ZYNQ
361         select PINMUX
362         select GENERIC_PINCONF
363         help
364           This selects the pinctrl driver for Xilinx Zynq.
365
366 config PINCTRL_INGENIC
367         bool "Pinctrl driver for the Ingenic JZ47xx SoCs"
368         default MACH_INGENIC
369         depends on OF
370         depends on MIPS || COMPILE_TEST
371         select GENERIC_PINCONF
372         select GENERIC_PINCTRL_GROUPS
373         select GENERIC_PINMUX_FUNCTIONS
374         select GPIOLIB
375         select GPIOLIB_IRQCHIP
376         select REGMAP_MMIO
377
378 config PINCTRL_RK805
379         tristate "Pinctrl and GPIO driver for RK805 PMIC"
380         depends on MFD_RK808
381         select GPIOLIB
382         select PINMUX
383         select GENERIC_PINCONF
384         help
385           This selects the pinctrl driver for RK805.
386
387 config PINCTRL_OCELOT
388         bool "Pinctrl driver for the Microsemi Ocelot and Jaguar2 SoCs"
389         depends on OF
390         depends on HAS_IOMEM
391         select GPIOLIB
392         select GPIOLIB_IRQCHIP
393         select GENERIC_PINCONF
394         select GENERIC_PINCTRL_GROUPS
395         select GENERIC_PINMUX_FUNCTIONS
396         select OF_GPIO
397         select REGMAP_MMIO
398
399 source "drivers/pinctrl/actions/Kconfig"
400 source "drivers/pinctrl/aspeed/Kconfig"
401 source "drivers/pinctrl/bcm/Kconfig"
402 source "drivers/pinctrl/berlin/Kconfig"
403 source "drivers/pinctrl/freescale/Kconfig"
404 source "drivers/pinctrl/intel/Kconfig"
405 source "drivers/pinctrl/mvebu/Kconfig"
406 source "drivers/pinctrl/nomadik/Kconfig"
407 source "drivers/pinctrl/nuvoton/Kconfig"
408 source "drivers/pinctrl/pxa/Kconfig"
409 source "drivers/pinctrl/qcom/Kconfig"
410 source "drivers/pinctrl/samsung/Kconfig"
411 source "drivers/pinctrl/sh-pfc/Kconfig"
412 source "drivers/pinctrl/spear/Kconfig"
413 source "drivers/pinctrl/sprd/Kconfig"
414 source "drivers/pinctrl/stm32/Kconfig"
415 source "drivers/pinctrl/sunxi/Kconfig"
416 source "drivers/pinctrl/tegra/Kconfig"
417 source "drivers/pinctrl/ti/Kconfig"
418 source "drivers/pinctrl/uniphier/Kconfig"
419 source "drivers/pinctrl/vt8500/Kconfig"
420 source "drivers/pinctrl/mediatek/Kconfig"
421 source "drivers/pinctrl/zte/Kconfig"
422 source "drivers/pinctrl/meson/Kconfig"
423 source "drivers/pinctrl/cirrus/Kconfig"
424
425 config PINCTRL_XWAY
426         bool
427         depends on SOC_TYPE_XWAY
428         depends on PINCTRL_LANTIQ
429
430 config PINCTRL_TB10X
431         bool
432         depends on OF && ARC_PLAT_TB10X
433         select GPIOLIB
434
435 config PINCTRL_EQUILIBRIUM
436         tristate "Generic pinctrl and GPIO driver for Intel Lightning Mountain SoC"
437         depends on OF && HAS_IOMEM
438         select PINMUX
439         select PINCONF
440         select GPIOLIB
441         select GPIO_GENERIC
442         select GPIOLIB_IRQCHIP
443         select GENERIC_PINCONF
444         select GENERIC_PINCTRL_GROUPS
445         select GENERIC_PINMUX_FUNCTIONS
446
447         help
448           Equilibrium pinctrl driver is a pinctrl & GPIO driver for Intel Lightning
449           Mountain network processor SoC that supports both the linux GPIO and pin
450           control frameworks. It provides interfaces to setup pinmux, assign desired
451           pin functions, configure GPIO attributes for LGM SoC pins. Pinmux and
452           pinconf settings are retrieved from device tree.
453
454 endif