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