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