Merge tag 'fuse-update-5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/mszered...
[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 HAS_IOMEM
86         depends on ARCH_AT91 || COMPILE_TEST
87         select PINMUX
88         select GENERIC_PINCONF
89         select GPIOLIB
90         select GPIOLIB_IRQCHIP
91         select OF_GPIO
92         help
93           Say Y here to enable the at91 pinctrl/gpio driver for Atmel PIO4
94           controller available on sama5d2 SoC.
95
96 config PINCTRL_AMD
97         tristate "AMD GPIO pin control"
98         depends on HAS_IOMEM
99         depends on ACPI || COMPILE_TEST
100         select GPIOLIB
101         select GPIOLIB_IRQCHIP
102         select PINMUX
103         select PINCONF
104         select GENERIC_PINCONF
105         help
106           driver for memory mapped GPIO functionality on AMD platforms
107           (x86 or arm).Most pins are usually muxed to some other
108           functionality by firmware,so only a small amount is available
109           for gpio use.
110
111           Requires ACPI/FDT device enumeration code to set up a platform
112           device.
113
114 config PINCTRL_BM1880
115         bool "Bitmain BM1880 Pinctrl driver"
116         depends on OF && (ARCH_BITMAIN || COMPILE_TEST)
117         default ARCH_BITMAIN
118         select PINMUX
119         help
120           Pinctrl driver for Bitmain BM1880 SoC.
121
122 config PINCTRL_DA850_PUPD
123         tristate "TI DA850/OMAP-L138/AM18XX pullup/pulldown groups"
124         depends on OF && (ARCH_DAVINCI_DA850 || COMPILE_TEST)
125         select PINCONF
126         select GENERIC_PINCONF
127         help
128           Driver for TI DA850/OMAP-L138/AM18XX pinconf. Used to control
129           pullup/pulldown pin groups.
130
131 config PINCTRL_DA9062
132         tristate "Dialog Semiconductor DA9062 PMIC pinctrl and GPIO Support"
133         depends on MFD_DA9062
134         select GPIOLIB
135         help
136           The Dialog DA9062 PMIC provides multiple GPIOs that can be muxed for
137           different functions. This driver bundles a pinctrl driver to select the
138           function muxing and a GPIO driver to handle the GPIO when the GPIO
139           function is selected.
140
141           Say yes to enable pinctrl and GPIO support for the DA9062 PMIC.
142
143 config PINCTRL_DIGICOLOR
144         bool
145         depends on OF && (ARCH_DIGICOLOR || COMPILE_TEST)
146         select PINMUX
147         select GENERIC_PINCONF
148
149 config PINCTRL_LANTIQ
150         bool
151         depends on LANTIQ
152         select PINMUX
153         select PINCONF
154
155 config PINCTRL_LPC18XX
156         bool "NXP LPC18XX/43XX SCU pinctrl driver"
157         depends on OF && (ARCH_LPC18XX || COMPILE_TEST)
158         default ARCH_LPC18XX
159         select PINMUX
160         select GENERIC_PINCONF
161         help
162           Pinctrl driver for NXP LPC18xx/43xx System Control Unit (SCU).
163
164 config PINCTRL_FALCON
165         bool
166         depends on SOC_FALCON
167         depends on PINCTRL_LANTIQ
168
169 config PINCTRL_GEMINI
170         bool
171         depends on ARCH_GEMINI
172         default ARCH_GEMINI
173         select PINMUX
174         select GENERIC_PINCONF
175         select MFD_SYSCON
176
177 config PINCTRL_MCP23S08_I2C
178         tristate
179         select REGMAP_I2C
180
181 config PINCTRL_MCP23S08_SPI
182         tristate
183         select REGMAP_SPI
184
185 config PINCTRL_MCP23S08
186         tristate "Microchip MCP23xxx I/O expander"
187         depends on SPI_MASTER || I2C
188         select GPIOLIB
189         select GPIOLIB_IRQCHIP
190         select GENERIC_PINCONF
191         select PINCTRL_MCP23S08_I2C if I2C
192         select PINCTRL_MCP23S08_SPI if SPI_MASTER
193         help
194           SPI/I2C driver for Microchip MCP23S08 / MCP23S17 / MCP23S18 /
195           MCP23008 / MCP23017 / MCP23018 I/O expanders.
196           This provides a GPIO interface supporting inputs and outputs and a
197           corresponding interrupt-controller.
198
199 config PINCTRL_OXNAS
200         bool
201         depends on OF
202         select PINMUX
203         select PINCONF
204         select GENERIC_PINCONF
205         select GPIOLIB
206         select OF_GPIO
207         select GPIOLIB_IRQCHIP
208         select MFD_SYSCON
209
210 config PINCTRL_ROCKCHIP
211         bool
212         depends on OF
213         select PINMUX
214         select GENERIC_PINCONF
215         select GENERIC_IRQ_CHIP
216         select MFD_SYSCON
217         select OF_GPIO
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_STMFX
269         tristate "STMicroelectronics STMFX GPIO expander pinctrl driver"
270         depends on I2C
271         depends on OF_GPIO
272         select GENERIC_PINCONF
273         select GPIOLIB_IRQCHIP
274         select MFD_STMFX
275         help
276           Driver for STMicroelectronics Multi-Function eXpander (STMFX)
277           GPIO expander.
278           This provides a GPIO interface supporting inputs and outputs,
279           and configuring push-pull, open-drain, and can also be used as
280           interrupt-controller.
281
282 config PINCTRL_U300
283         bool "U300 pin controller driver"
284         depends on ARCH_U300
285         select PINMUX
286         select GENERIC_PINCONF
287
288 config PINCTRL_COH901
289         bool "ST-Ericsson U300 COH 901 335/571 GPIO"
290         depends on GPIOLIB && ARCH_U300 && PINCTRL_U300
291         select GPIOLIB_IRQCHIP
292         help
293           Say yes here to support GPIO interface on ST-Ericsson U300.
294           The names of the two IP block variants supported are
295           COH 901 335 and COH 901 571/3. They contain 3, 5 or 7
296           ports of 8 GPIO pins each.
297
298 config PINCTRL_MAX77620
299         tristate "MAX77620/MAX20024 Pincontrol support"
300         depends on MFD_MAX77620 && OF
301         select PINMUX
302         select GENERIC_PINCONF
303         help
304           Say Yes here to enable Pin control support for Maxim PMIC MAX77620.
305           This PMIC has 8 GPIO pins that work as GPIO as well as special
306           function in alternate mode. This driver also configure push-pull,
307           open drain, FPS slots etc.
308
309 config PINCTRL_PALMAS
310         tristate "Pinctrl driver for the PALMAS Series MFD devices"
311         depends on OF && MFD_PALMAS
312         select PINMUX
313         select GENERIC_PINCONF
314         help
315           Palmas device supports the configuration of pins for different
316           functionality. This driver supports the pinmux, push-pull and
317           open drain configuration for the Palmas series devices like
318           TPS65913, TPS80036 etc.
319
320 config PINCTRL_PIC32
321         bool "Microchip PIC32 pin controller driver"
322         depends on OF
323         depends on MACH_PIC32
324         select PINMUX
325         select GENERIC_PINCONF
326         select GPIOLIB_IRQCHIP
327         select OF_GPIO
328         help
329           This is the pin controller and gpio driver for Microchip PIC32
330           microcontrollers. This option is selected automatically when specific
331           machine and arch are selected to build.
332
333 config PINCTRL_PIC32MZDA
334         def_bool y if PIC32MZDA
335         select PINCTRL_PIC32
336
337 config PINCTRL_ZYNQ
338         bool "Pinctrl driver for Xilinx Zynq"
339         depends on ARCH_ZYNQ
340         select PINMUX
341         select GENERIC_PINCONF
342         help
343           This selects the pinctrl driver for Xilinx Zynq.
344
345 config PINCTRL_INGENIC
346         bool "Pinctrl driver for the Ingenic JZ47xx SoCs"
347         default MACH_INGENIC
348         depends on OF
349         depends on MIPS || COMPILE_TEST
350         select GENERIC_PINCONF
351         select GENERIC_PINCTRL_GROUPS
352         select GENERIC_PINMUX_FUNCTIONS
353         select GPIOLIB
354         select GPIOLIB_IRQCHIP
355         select REGMAP_MMIO
356
357 config PINCTRL_RK805
358         tristate "Pinctrl and GPIO driver for RK805 PMIC"
359         depends on MFD_RK808
360         select GPIOLIB
361         select PINMUX
362         select GENERIC_PINCONF
363         help
364           This selects the pinctrl driver for RK805.
365
366 config PINCTRL_OCELOT
367         bool "Pinctrl driver for the Microsemi Ocelot and Jaguar2 SoCs"
368         depends on OF
369         depends on HAS_IOMEM
370         select GPIOLIB
371         select GPIOLIB_IRQCHIP
372         select GENERIC_PINCONF
373         select GENERIC_PINCTRL_GROUPS
374         select GENERIC_PINMUX_FUNCTIONS
375         select OF_GPIO
376         select REGMAP_MMIO
377
378 config PINCTRL_MICROCHIP_SGPIO
379         bool "Pinctrl driver for Microsemi/Microchip Serial GPIO"
380         depends on OF
381         depends on HAS_IOMEM
382         select GPIOLIB
383         select GPIOLIB_IRQCHIP
384         select GENERIC_PINCONF
385         select GENERIC_PINCTRL_GROUPS
386         select GENERIC_PINMUX_FUNCTIONS
387         select OF_GPIO
388         help
389           Support for the serial GPIO interface used on Microsemi and
390           Microchip SoC's. By using a serial interface, the SIO
391           controller significantly extends the number of available
392           GPIOs with a minimum number of additional pins on the
393           device. The primary purpose of the SIO controller is to
394           connect control signals from SFP modules and to act as an
395           LED controller.
396
397 source "drivers/pinctrl/actions/Kconfig"
398 source "drivers/pinctrl/aspeed/Kconfig"
399 source "drivers/pinctrl/bcm/Kconfig"
400 source "drivers/pinctrl/berlin/Kconfig"
401 source "drivers/pinctrl/freescale/Kconfig"
402 source "drivers/pinctrl/intel/Kconfig"
403 source "drivers/pinctrl/mvebu/Kconfig"
404 source "drivers/pinctrl/nomadik/Kconfig"
405 source "drivers/pinctrl/nuvoton/Kconfig"
406 source "drivers/pinctrl/pxa/Kconfig"
407 source "drivers/pinctrl/qcom/Kconfig"
408 source "drivers/pinctrl/ralink/Kconfig"
409 source "drivers/pinctrl/renesas/Kconfig"
410 source "drivers/pinctrl/samsung/Kconfig"
411 source "drivers/pinctrl/spear/Kconfig"
412 source "drivers/pinctrl/sprd/Kconfig"
413 source "drivers/pinctrl/stm32/Kconfig"
414 source "drivers/pinctrl/sunxi/Kconfig"
415 source "drivers/pinctrl/tegra/Kconfig"
416 source "drivers/pinctrl/ti/Kconfig"
417 source "drivers/pinctrl/uniphier/Kconfig"
418 source "drivers/pinctrl/vt8500/Kconfig"
419 source "drivers/pinctrl/mediatek/Kconfig"
420 source "drivers/pinctrl/zte/Kconfig"
421 source "drivers/pinctrl/meson/Kconfig"
422 source "drivers/pinctrl/cirrus/Kconfig"
423 source "drivers/pinctrl/visconti/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         depends on X86 || COMPILE_TEST
439         select PINMUX
440         select PINCONF
441         select GPIOLIB
442         select GPIO_GENERIC
443         select GPIOLIB_IRQCHIP
444         select GENERIC_PINCONF
445         select GENERIC_PINCTRL_GROUPS
446         select GENERIC_PINMUX_FUNCTIONS
447
448         help
449           Equilibrium pinctrl driver is a pinctrl & GPIO driver for Intel Lightning
450           Mountain network processor SoC that supports both the linux GPIO and pin
451           control frameworks. It provides interfaces to setup pinmux, assign desired
452           pin functions, configure GPIO attributes for LGM SoC pins. Pinmux and
453           pinconf settings are retrieved from device tree.
454
455 endif