Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf
[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         tristate "Rockchip gpio and pinctrl driver"
212         depends on ARCH_ROCKCHIP || COMPILE_TEST
213         depends on OF
214         select GPIOLIB
215         select PINMUX
216         select GENERIC_PINCONF
217         select GENERIC_IRQ_CHIP
218         select MFD_SYSCON
219         select OF_GPIO
220         default ARCH_ROCKCHIP
221         help
222           This support pinctrl and gpio driver for Rockchip SoCs.
223
224 config PINCTRL_SINGLE
225         tristate "One-register-per-pin type device tree based pinctrl driver"
226         depends on OF
227         depends on HAS_IOMEM
228         select GENERIC_PINCTRL_GROUPS
229         select GENERIC_PINMUX_FUNCTIONS
230         select GENERIC_PINCONF
231         help
232           This selects the device tree based generic pinctrl driver.
233
234 config PINCTRL_SX150X
235         bool "Semtech SX150x I2C GPIO expander pinctrl driver"
236         depends on I2C=y
237         select PINMUX
238         select PINCONF
239         select GENERIC_PINCONF
240         select GPIOLIB
241         select GPIOLIB_IRQCHIP
242         select REGMAP
243         help
244           Say yes here to provide support for Semtech SX150x-series I2C
245           GPIO expanders as pinctrl module.
246           Compatible models include:
247           - 8 bits:  sx1508q, sx1502q
248           - 16 bits: sx1509q, sx1506q
249
250 config PINCTRL_PISTACHIO
251         def_bool y if MACH_PISTACHIO
252         depends on GPIOLIB
253         select PINMUX
254         select GENERIC_PINCONF
255         select GPIOLIB_IRQCHIP
256         select OF_GPIO
257
258 config PINCTRL_ST
259         bool
260         depends on OF
261         select PINMUX
262         select PINCONF
263         select GPIOLIB_IRQCHIP
264
265 config PINCTRL_STMFX
266         tristate "STMicroelectronics STMFX GPIO expander pinctrl driver"
267         depends on I2C
268         depends on OF_GPIO
269         select GENERIC_PINCONF
270         select GPIOLIB_IRQCHIP
271         select MFD_STMFX
272         help
273           Driver for STMicroelectronics Multi-Function eXpander (STMFX)
274           GPIO expander.
275           This provides a GPIO interface supporting inputs and outputs,
276           and configuring push-pull, open-drain, and can also be used as
277           interrupt-controller.
278
279 config PINCTRL_MAX77620
280         tristate "MAX77620/MAX20024 Pincontrol support"
281         depends on MFD_MAX77620 && OF
282         select PINMUX
283         select GENERIC_PINCONF
284         help
285           Say Yes here to enable Pin control support for Maxim PMIC MAX77620.
286           This PMIC has 8 GPIO pins that work as GPIO as well as special
287           function in alternate mode. This driver also configure push-pull,
288           open drain, FPS slots etc.
289
290 config PINCTRL_PALMAS
291         tristate "Pinctrl driver for the PALMAS Series MFD devices"
292         depends on OF && MFD_PALMAS
293         select PINMUX
294         select GENERIC_PINCONF
295         help
296           Palmas device supports the configuration of pins for different
297           functionality. This driver supports the pinmux, push-pull and
298           open drain configuration for the Palmas series devices like
299           TPS65913, TPS80036 etc.
300
301 config PINCTRL_PIC32
302         bool "Microchip PIC32 pin controller driver"
303         depends on OF
304         depends on MACH_PIC32
305         select PINMUX
306         select GENERIC_PINCONF
307         select GPIOLIB_IRQCHIP
308         select OF_GPIO
309         help
310           This is the pin controller and gpio driver for Microchip PIC32
311           microcontrollers. This option is selected automatically when specific
312           machine and arch are selected to build.
313
314 config PINCTRL_PIC32MZDA
315         def_bool y if PIC32MZDA
316         select PINCTRL_PIC32
317
318 config PINCTRL_ZYNQ
319         bool "Pinctrl driver for Xilinx Zynq"
320         depends on ARCH_ZYNQ
321         select PINMUX
322         select GENERIC_PINCONF
323         help
324           This selects the pinctrl driver for Xilinx Zynq.
325
326 config PINCTRL_ZYNQMP
327         tristate "Pinctrl driver for Xilinx ZynqMP"
328         depends on ZYNQMP_FIRMWARE
329         select PINMUX
330         select GENERIC_PINCONF
331         default ZYNQMP_FIRMWARE
332         help
333           This selects the pinctrl driver for Xilinx ZynqMP platform.
334           This driver will query the pin information from the firmware
335           and allow configuring the pins.
336           Configuration can include the mux function to select on those
337           pin(s)/group(s), and various pin configuration parameters
338           such as pull-up, slew rate, etc.
339           This driver can also be built as a module. If so, the module
340           will be called pinctrl-zynqmp.
341
342 config PINCTRL_INGENIC
343         bool "Pinctrl driver for the Ingenic JZ47xx SoCs"
344         default MACH_INGENIC
345         depends on OF
346         depends on MIPS || COMPILE_TEST
347         select GENERIC_PINCONF
348         select GENERIC_PINCTRL_GROUPS
349         select GENERIC_PINMUX_FUNCTIONS
350         select GPIOLIB
351         select GPIOLIB_IRQCHIP
352         select REGMAP_MMIO
353
354 config PINCTRL_RK805
355         tristate "Pinctrl and GPIO driver for RK805 PMIC"
356         depends on MFD_RK808
357         select GPIOLIB
358         select PINMUX
359         select GENERIC_PINCONF
360         help
361           This selects the pinctrl driver for RK805.
362
363 config PINCTRL_OCELOT
364         bool "Pinctrl driver for the Microsemi Ocelot and Jaguar2 SoCs"
365         depends on OF
366         depends on HAS_IOMEM
367         select GPIOLIB
368         select GPIOLIB_IRQCHIP
369         select GENERIC_PINCONF
370         select GENERIC_PINCTRL_GROUPS
371         select GENERIC_PINMUX_FUNCTIONS
372         select OF_GPIO
373         select REGMAP_MMIO
374
375 config PINCTRL_MICROCHIP_SGPIO
376         bool "Pinctrl driver for Microsemi/Microchip Serial GPIO"
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         help
386           Support for the serial GPIO interface used on Microsemi and
387           Microchip SoC's. By using a serial interface, the SIO
388           controller significantly extends the number of available
389           GPIOs with a minimum number of additional pins on the
390           device. The primary purpose of the SIO controller is to
391           connect control signals from SFP modules and to act as an
392           LED controller.
393
394 config PINCTRL_K210
395         bool "Pinctrl driver for the Canaan Kendryte K210 SoC"
396         depends on RISCV && SOC_CANAAN && OF
397         select GENERIC_PINMUX_FUNCTIONS
398         select GENERIC_PINCONF
399         select GPIOLIB
400         select OF_GPIO
401         select REGMAP_MMIO
402         default SOC_CANAAN
403         help
404           Add support for the Canaan Kendryte K210 RISC-V SOC Field
405           Programmable IO Array (FPIOA) controller.
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/ralink/Kconfig"
419 source "drivers/pinctrl/renesas/Kconfig"
420 source "drivers/pinctrl/samsung/Kconfig"
421 source "drivers/pinctrl/spear/Kconfig"
422 source "drivers/pinctrl/sprd/Kconfig"
423 source "drivers/pinctrl/stm32/Kconfig"
424 source "drivers/pinctrl/sunxi/Kconfig"
425 source "drivers/pinctrl/tegra/Kconfig"
426 source "drivers/pinctrl/ti/Kconfig"
427 source "drivers/pinctrl/uniphier/Kconfig"
428 source "drivers/pinctrl/vt8500/Kconfig"
429 source "drivers/pinctrl/mediatek/Kconfig"
430 source "drivers/pinctrl/meson/Kconfig"
431 source "drivers/pinctrl/cirrus/Kconfig"
432 source "drivers/pinctrl/visconti/Kconfig"
433
434 config PINCTRL_XWAY
435         bool
436         depends on SOC_TYPE_XWAY
437         depends on PINCTRL_LANTIQ
438
439 config PINCTRL_TB10X
440         bool
441         depends on OF && ARC_PLAT_TB10X
442         select GPIOLIB
443
444 config PINCTRL_EQUILIBRIUM
445         tristate "Generic pinctrl and GPIO driver for Intel Lightning Mountain SoC"
446         depends on OF && HAS_IOMEM
447         depends on X86 || COMPILE_TEST
448         select PINMUX
449         select PINCONF
450         select GPIOLIB
451         select GPIO_GENERIC
452         select GPIOLIB_IRQCHIP
453         select GENERIC_PINCONF
454         select GENERIC_PINCTRL_GROUPS
455         select GENERIC_PINMUX_FUNCTIONS
456
457         help
458           Equilibrium pinctrl driver is a pinctrl & GPIO driver for Intel Lightning
459           Mountain network processor SoC that supports both the linux GPIO and pin
460           control frameworks. It provides interfaces to setup pinmux, assign desired
461           pin functions, configure GPIO attributes for LGM SoC pins. Pinmux and
462           pinconf settings are retrieved from device tree.
463
464 endif