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