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