]> Git Repo - linux.git/blob - drivers/pinctrl/Kconfig
x86/kaslr: Expose and use the end of the physical memory address space
[linux.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_AMD
35         bool "AMD GPIO pin control"
36         depends on HAS_IOMEM
37         depends on ACPI || COMPILE_TEST
38         select GPIOLIB
39         select GPIOLIB_IRQCHIP
40         select PINMUX
41         select PINCONF
42         select GENERIC_PINCONF
43         help
44           The driver for memory mapped GPIO functionality on AMD platforms
45           (x86 or arm). Most of the pins are usually muxed to some other
46           functionality by firmware, so only a small amount is available
47           for GPIO use.
48
49           Requires ACPI/FDT device enumeration code to set up a platform
50           device.
51
52 config PINCTRL_APPLE_GPIO
53         tristate "Apple SoC GPIO pin controller driver"
54         depends on ARCH_APPLE
55         select PINMUX
56         select GPIOLIB
57         select GPIOLIB_IRQCHIP
58         select GENERIC_PINCTRL_GROUPS
59         select GENERIC_PINMUX_FUNCTIONS
60         select OF_GPIO
61         help
62           This is the driver for the GPIO controller found on Apple ARM SoCs,
63           including M1.
64
65           This driver can also be built as a module. If so, the module
66           will be called pinctrl-apple-gpio.
67
68 config PINCTRL_ARTPEC6
69         bool "Axis ARTPEC-6 pin controller driver"
70         depends on MACH_ARTPEC6
71         select PINMUX
72         select GENERIC_PINCONF
73         help
74           This is the driver for the Axis ARTPEC-6 pin controller. This driver
75           supports pin function multiplexing as well as pin bias and drive
76           strength configuration. Device tree integration instructions can be
77           found in Documentation/devicetree/bindings/pinctrl/axis,artpec6-pinctrl.txt
78
79 config PINCTRL_AS3722
80         tristate "Pinctrl and GPIO driver for ams AS3722 PMIC"
81         depends on MFD_AS3722 && GPIOLIB
82         select PINMUX
83         select GENERIC_PINCONF
84         help
85           AS3722 device supports the configuration of GPIO pins for different
86           functionality. This driver supports the pinmux, push-pull and
87           open drain configuration for the GPIO pins of AS3722 devices. It also
88           supports the GPIO functionality through gpiolib.
89
90 config PINCTRL_AT91
91         bool "AT91 pinctrl driver"
92         depends on OF
93         depends on ARCH_AT91
94         select PINMUX
95         select PINCONF
96         select GPIOLIB
97         select OF_GPIO
98         select GPIOLIB_IRQCHIP
99         help
100           Say Y here to enable the at91 pinctrl driver
101
102 config PINCTRL_AT91PIO4
103         bool "AT91 PIO4 pinctrl driver"
104         depends on OF
105         depends on HAS_IOMEM
106         depends on ARCH_AT91 || COMPILE_TEST
107         select PINMUX
108         select GENERIC_PINCONF
109         select GPIOLIB
110         select GPIOLIB_IRQCHIP
111         select OF_GPIO
112         help
113           Say Y here to enable the at91 pinctrl/gpio driver for Atmel PIO4
114           controller available on sama5d2 SoC.
115
116 config PINCTRL_AXP209
117         tristate "X-Powers AXP209 PMIC pinctrl and GPIO Support"
118         depends on MFD_AXP20X
119         depends on OF
120         select PINMUX
121         select GENERIC_PINCONF
122         select GPIOLIB
123         help
124           AXP PMICs provides multiple GPIOs that can be muxed for different
125           functions. This driver bundles a pinctrl driver to select the function
126           muxing and a GPIO driver to handle the GPIO when the GPIO function is
127           selected.
128           Say Y to enable pinctrl and GPIO support for the AXP209 PMIC.
129
130 config PINCTRL_AW9523
131         tristate "Awinic AW9523/AW9523B I2C GPIO expander pinctrl driver"
132         depends on OF && I2C
133         select PINMUX
134         select PINCONF
135         select GENERIC_PINCONF
136         select GPIOLIB
137         select GPIOLIB_IRQCHIP
138         select REGMAP
139         select REGMAP_I2C
140         help
141           The Awinic AW9523/AW9523B is a multi-function I2C GPIO
142           expander with PWM functionality. This driver bundles a
143           pinctrl driver to select the function muxing and a GPIO
144           driver to handle GPIO, when the GPIO function is selected.
145
146           Say yes to enable pinctrl and GPIO support for the AW9523(B).
147
148 config PINCTRL_BM1880
149         bool "Bitmain BM1880 Pinctrl driver"
150         depends on OF && (ARCH_BITMAIN || COMPILE_TEST)
151         default ARCH_BITMAIN
152         select PINMUX
153         help
154           Pinctrl driver for Bitmain BM1880 SoC.
155
156 config PINCTRL_CY8C95X0
157         tristate "Cypress CY8C95X0 I2C pinctrl and GPIO driver"
158         depends on I2C
159         select GPIOLIB
160         select GPIOLIB_IRQCHIP
161         select PINMUX
162         select PINCONF
163         select GENERIC_PINCONF
164         select REGMAP_I2C
165         help
166           Support for 20/40/60 pin Cypress Cy8C95x0 pinctrl/gpio I2C expander.
167           This driver can also be built as a module. If so, the module will be
168           called pinctrl-cy8c95x0.
169
170 config PINCTRL_DA850_PUPD
171         tristate "TI DA850/OMAP-L138/AM18XX pull-up and pull-down groups"
172         depends on OF && (ARCH_DAVINCI_DA850 || COMPILE_TEST)
173         select PINCONF
174         select GENERIC_PINCONF
175         help
176           Driver for TI DA850/OMAP-L138/AM18XX pinconf. Used to control
177           pull-up and pull-down pin groups.
178
179 config PINCTRL_DA9062
180         tristate "Dialog Semiconductor DA9062 PMIC pinctrl and GPIO Support"
181         depends on MFD_DA9062
182         select GPIOLIB
183         help
184           The Dialog DA9062 PMIC provides multiple GPIOs that can be muxed for
185           different functions. This driver bundles a pinctrl driver to select the
186           function muxing and a GPIO driver to handle the GPIO when the GPIO
187           function is selected.
188
189           Say Y to enable pinctrl and GPIO support for the DA9062 PMIC.
190
191 config PINCTRL_DIGICOLOR
192         bool
193         depends on ARCH_DIGICOLOR || COMPILE_TEST
194         select PINMUX
195         select GENERIC_PINCONF
196
197 config PINCTRL_EQUILIBRIUM
198         tristate "Generic pinctrl and GPIO driver for Intel Lightning Mountain SoC"
199         depends on OF && HAS_IOMEM
200         depends on X86 || COMPILE_TEST
201         select PINMUX
202         select PINCONF
203         select GPIOLIB
204         select GPIO_GENERIC
205         select GPIOLIB_IRQCHIP
206         select GENERIC_PINCONF
207         select GENERIC_PINCTRL_GROUPS
208         select GENERIC_PINMUX_FUNCTIONS
209         help
210           Equilibrium driver is a pinctrl and GPIO driver for Intel Lightning
211           Mountain network processor SoC that supports both the GPIO and pin
212           control frameworks. It provides interfaces to setup pin muxing, assign
213           desired pin functions, configure GPIO attributes for LGM SoC pins.
214           Pin muxing and pin config settings are retrieved from device tree.
215
216 config PINCTRL_GEMINI
217         bool
218         depends on ARCH_GEMINI
219         default ARCH_GEMINI
220         select PINMUX
221         select GENERIC_PINCONF
222         select MFD_SYSCON
223
224 config PINCTRL_INGENIC
225         bool "Pinctrl driver for the Ingenic JZ47xx SoCs"
226         default MACH_INGENIC
227         depends on OF
228         depends on MIPS || COMPILE_TEST
229         select GENERIC_PINCONF
230         select GENERIC_PINCTRL_GROUPS
231         select GENERIC_PINMUX_FUNCTIONS
232         select GPIOLIB
233         select GPIOLIB_IRQCHIP
234         select REGMAP_MMIO
235
236 config PINCTRL_K210
237         bool "Pinctrl driver for the Canaan Kendryte K210 SoC"
238         depends on RISCV && SOC_CANAAN_K210 && OF
239         select GENERIC_PINMUX_FUNCTIONS
240         select GENERIC_PINCONF
241         select GPIOLIB
242         select OF_GPIO
243         select REGMAP_MMIO
244         default SOC_CANAAN_K210
245         help
246           Add support for the Canaan Kendryte K210 RISC-V SOC Field
247           Programmable IO Array (FPIOA) controller.
248
249 config PINCTRL_KEEMBAY
250         tristate "Pinctrl driver for Intel Keem Bay SoC"
251         depends on ARCH_KEEMBAY || (ARM64 && COMPILE_TEST)
252         depends on HAS_IOMEM
253         select PINMUX
254         select PINCONF
255         select GENERIC_PINCONF
256         select GENERIC_PINCTRL_GROUPS
257         select GENERIC_PINMUX_FUNCTIONS
258         select GPIOLIB
259         select GPIOLIB_IRQCHIP
260         select GPIO_GENERIC
261         help
262           This selects pin control driver for the Intel Keem Bay SoC.
263           It provides pin config functions such as pull-up, pull-down,
264           interrupt, drive strength, sec lock, Schmitt trigger, slew
265           rate control and direction control. This module will be
266           called as pinctrl-keembay.
267
268 config PINCTRL_LANTIQ
269         bool
270         depends on LANTIQ
271         select PINMUX
272         select PINCONF
273
274 config PINCTRL_FALCON
275         bool
276         depends on SOC_FALCON
277         depends on PINCTRL_LANTIQ
278
279 config PINCTRL_LOONGSON2
280         tristate "Pinctrl driver for the Loongson-2 SoC"
281         depends on OF && (LOONGARCH || COMPILE_TEST)
282         select PINMUX
283         select GENERIC_PINCONF
284         help
285          This selects pin control driver for the Loongson-2 SoC. It
286          provides pin config functions multiplexing.  GPIO pin pull-up,
287          pull-down functions are not supported. Say yes to enable
288          pinctrl for Loongson-2 SoC.
289
290 config PINCTRL_XWAY
291         bool
292         depends on SOC_TYPE_XWAY
293         depends on PINCTRL_LANTIQ
294
295 config PINCTRL_LPC18XX
296         bool "NXP LPC18XX/43XX SCU pinctrl driver"
297         depends on OF && (ARCH_LPC18XX || COMPILE_TEST)
298         default ARCH_LPC18XX
299         select PINMUX
300         select GENERIC_PINCONF
301         help
302           Pinctrl driver for NXP LPC18xx/43xx System Control Unit (SCU).
303
304 config PINCTRL_MAX77620
305         tristate "MAX77620/MAX20024 Pincontrol support"
306         depends on MFD_MAX77620 && OF
307         select PINMUX
308         select GENERIC_PINCONF
309         help
310           Say Y here to enable Pin control support for Maxim MAX77620 PMIC.
311           This PMIC has 8 GPIO pins that work as GPIO as well as special
312           function in alternate mode. This driver also configure push-pull,
313           open drain, FPS slots etc.
314
315 config PINCTRL_MCP23S08_I2C
316         tristate
317         select REGMAP_I2C
318
319 config PINCTRL_MCP23S08_SPI
320         tristate
321         select REGMAP_SPI
322
323 config PINCTRL_MCP23S08
324         tristate "Microchip MCP23xxx I/O expander"
325         depends on SPI_MASTER || I2C
326         select GPIOLIB
327         select GPIOLIB_IRQCHIP
328         select GENERIC_PINCONF
329         select PINCTRL_MCP23S08_I2C if I2C
330         select PINCTRL_MCP23S08_SPI if SPI_MASTER
331         help
332           SPI/I2C driver for Microchip MCP23S08 / MCP23S17 / MCP23S18 /
333           MCP23008 / MCP23017 / MCP23018 I/O expanders.
334           This provides a GPIO interface supporting inputs and outputs and a
335           corresponding interrupt-controller.
336
337 config PINCTRL_MICROCHIP_SGPIO
338         tristate "Pinctrl driver for Microsemi/Microchip Serial GPIO"
339         depends on OF
340         depends on HAS_IOMEM
341         select GPIOLIB
342         select GPIOLIB_IRQCHIP
343         select GENERIC_PINCONF
344         select GENERIC_PINCTRL_GROUPS
345         select GENERIC_PINMUX_FUNCTIONS
346         select OF_GPIO
347         help
348           Support for the serial GPIO interface used on Microsemi and
349           Microchip SoCs. By using a serial interface, the SIO
350           controller significantly extends the number of available
351           GPIOs with a minimum number of additional pins on the
352           device. The primary purpose of the SIO controller is to
353           connect control signals from SFP modules and to act as an
354           LED controller.
355
356           If compiled as a module, the module name will be
357           pinctrl-microchip-sgpio.
358
359 config PINCTRL_OCELOT
360         tristate "Pinctrl driver for the Microsemi Ocelot and Jaguar2 SoCs"
361         depends on OF
362         depends on HAS_IOMEM
363         select GPIOLIB
364         select GPIOLIB_IRQCHIP
365         select GENERIC_PINCONF
366         select GENERIC_PINCTRL_GROUPS
367         select GENERIC_PINMUX_FUNCTIONS
368         select OF_GPIO
369         select REGMAP_MMIO
370         help
371           Support for the internal GPIO interfaces on Microsemi Ocelot and
372           Jaguar2 SoCs.
373
374           If conpiled as a module, the module name will be pinctrl-ocelot.
375
376 config PINCTRL_PALMAS
377         tristate "Pinctrl driver for the PALMAS Series MFD devices"
378         depends on OF && MFD_PALMAS
379         select PINMUX
380         select GENERIC_PINCONF
381         help
382           Palmas device supports the configuration of pins for different
383           functionality. This driver supports the pinmux, push-pull and
384           open drain configuration for the Palmas series devices like
385           TPS65913, TPS80036 etc.
386
387 config PINCTRL_PEF2256
388         tristate "Lantiq PEF2256 (FALC56) pin controller driver"
389         depends on OF && FRAMER_PEF2256
390         select PINMUX
391         select PINCONF
392         select GENERIC_PINCONF
393         help
394           This option enables the pin controller support for the Lantiq PEF2256
395           framer, also known as FALC56.
396
397           If unsure, say N.
398
399           To compile this driver as a module, choose M here: the
400           module will be called pinctrl-pef2256.
401
402 config PINCTRL_PIC32
403         bool "Microchip PIC32 pin controller driver"
404         depends on OF
405         depends on MACH_PIC32
406         select PINMUX
407         select GENERIC_PINCONF
408         select GPIOLIB_IRQCHIP
409         select OF_GPIO
410         help
411           This is the pin controller and gpio driver for Microchip PIC32
412           microcontrollers. This option is selected automatically when specific
413           machine and arch are selected to build.
414
415 config PINCTRL_PIC32MZDA
416         def_bool y if PIC32MZDA
417         select PINCTRL_PIC32
418
419 config PINCTRL_PISTACHIO
420         bool "IMG Pistachio SoC pinctrl driver"
421         depends on OF && (MIPS || COMPILE_TEST)
422         depends on GPIOLIB
423         select PINMUX
424         select GENERIC_PINCONF
425         select GPIOLIB_IRQCHIP
426         select OF_GPIO
427         help
428           This support pinctrl and GPIO driver for IMG Pistachio SoC.
429
430 config PINCTRL_RK805
431         tristate "Pinctrl and GPIO driver for RK805 PMIC"
432         depends on MFD_RK8XX
433         select GPIOLIB
434         select PINMUX
435         select GENERIC_PINCONF
436         help
437           This selects the pinctrl driver for RK805.
438
439 config PINCTRL_ROCKCHIP
440         tristate "Rockchip gpio and pinctrl driver"
441         depends on ARCH_ROCKCHIP || COMPILE_TEST
442         depends on OF
443         select GPIOLIB
444         select PINMUX
445         select GENERIC_PINCONF
446         select GENERIC_IRQ_CHIP
447         select MFD_SYSCON
448         select OF_GPIO
449         default ARCH_ROCKCHIP
450         help
451           This support pinctrl and GPIO driver for Rockchip SoCs.
452
453 config PINCTRL_SCMI
454         tristate "Pinctrl driver using SCMI protocol interface"
455         depends on ARM_SCMI_PROTOCOL || COMPILE_TEST
456         select PINMUX
457         select GENERIC_PINCONF
458         help
459           This driver provides support for pinctrl which is controlled
460           by firmware that implements the SCMI interface.
461           It uses SCMI Message Protocol to interact with the
462           firmware providing all the pinctrl controls.
463
464 config PINCTRL_SINGLE
465         tristate "One-register-per-pin type device tree based pinctrl driver"
466         depends on OF
467         depends on HAS_IOMEM
468         select GENERIC_PINCTRL_GROUPS
469         select GENERIC_PINMUX_FUNCTIONS
470         select GENERIC_PINCONF
471         help
472           This selects the device tree based generic pinctrl driver.
473
474 config PINCTRL_ST
475         bool
476         depends on OF
477         select PINMUX
478         select PINCONF
479         select GPIOLIB_IRQCHIP
480
481 config PINCTRL_STMFX
482         tristate "STMicroelectronics STMFX GPIO expander pinctrl driver"
483         depends on I2C
484         depends on OF_GPIO
485         select GENERIC_PINCONF
486         select GPIOLIB_IRQCHIP
487         select MFD_STMFX
488         help
489           Driver for STMicroelectronics Multi-Function eXpander (STMFX)
490           GPIO expander.
491           This provides a GPIO interface supporting inputs and outputs,
492           and configuring push-pull, open-drain, and can also be used as
493           interrupt-controller.
494
495 config PINCTRL_SX150X
496         bool "Semtech SX150x I2C GPIO expander pinctrl driver"
497         depends on I2C=y
498         select PINMUX
499         select PINCONF
500         select GENERIC_PINCONF
501         select GPIOLIB
502         select GPIOLIB_IRQCHIP
503         select REGMAP
504         help
505           Say Y here to provide support for Semtech SX150x-series I2C
506           GPIO expanders as pinctrl module.
507           Compatible models include:
508           - 8 bits:  sx1508q, sx1502q
509           - 16 bits: sx1509q, sx1506q
510
511 config PINCTRL_TB10X
512         bool
513         depends on OF && ARC_PLAT_TB10X
514         select GPIOLIB
515
516 config PINCTRL_TPS6594
517         tristate "Pinctrl and GPIO driver for TI TPS6594 PMIC"
518         depends on OF && MFD_TPS6594
519         default MFD_TPS6594
520         select PINMUX
521         select GPIOLIB
522         select REGMAP
523         select GPIO_REGMAP
524         select GENERIC_PINCONF
525         help
526           Say Y to select the pinmuxing and GPIOs driver for the TPS6594
527           PMICs chip family.
528
529           This driver can also be built as a module
530           called tps6594-pinctrl.
531
532 config PINCTRL_ZYNQ
533         bool "Pinctrl driver for Xilinx Zynq"
534         depends on ARCH_ZYNQ
535         select PINMUX
536         select GENERIC_PINCONF
537         help
538           This selects the pinctrl driver for Xilinx Zynq.
539
540 config PINCTRL_ZYNQMP
541         tristate "Pinctrl driver for Xilinx ZynqMP"
542         depends on ZYNQMP_FIRMWARE
543         select PINMUX
544         select GENERIC_PINCONF
545         default ZYNQMP_FIRMWARE
546         help
547           This selects the pinctrl driver for Xilinx ZynqMP platform.
548           This driver will query the pin information from the firmware
549           and allow configuring the pins.
550           Configuration can include the mux function to select on those
551           pin(s)/group(s), and various pin configuration parameters
552           such as pull-up, slew rate, etc.
553           This driver can also be built as a module. If so, the module
554           will be called pinctrl-zynqmp.
555
556 config PINCTRL_MLXBF3
557         tristate "NVIDIA BlueField-3 SoC Pinctrl driver"
558         depends on (MELLANOX_PLATFORM && ARM64) || COMPILE_TEST
559         select PINMUX
560         select GPIOLIB
561         select GPIOLIB_IRQCHIP
562         help
563           Say Y to select the pinctrl driver for BlueField-3 SoCs.
564           This pin controller allows selecting the mux function for
565           each pin. This driver can also be built as a module called
566           pinctrl-mlxbf3.
567
568 source "drivers/pinctrl/actions/Kconfig"
569 source "drivers/pinctrl/aspeed/Kconfig"
570 source "drivers/pinctrl/bcm/Kconfig"
571 source "drivers/pinctrl/berlin/Kconfig"
572 source "drivers/pinctrl/cirrus/Kconfig"
573 source "drivers/pinctrl/freescale/Kconfig"
574 source "drivers/pinctrl/intel/Kconfig"
575 source "drivers/pinctrl/mediatek/Kconfig"
576 source "drivers/pinctrl/meson/Kconfig"
577 source "drivers/pinctrl/mvebu/Kconfig"
578 source "drivers/pinctrl/nomadik/Kconfig"
579 source "drivers/pinctrl/nuvoton/Kconfig"
580 source "drivers/pinctrl/nxp/Kconfig"
581 source "drivers/pinctrl/pxa/Kconfig"
582 source "drivers/pinctrl/qcom/Kconfig"
583 source "drivers/pinctrl/realtek/Kconfig"
584 source "drivers/pinctrl/renesas/Kconfig"
585 source "drivers/pinctrl/samsung/Kconfig"
586 source "drivers/pinctrl/spear/Kconfig"
587 source "drivers/pinctrl/sprd/Kconfig"
588 source "drivers/pinctrl/starfive/Kconfig"
589 source "drivers/pinctrl/stm32/Kconfig"
590 source "drivers/pinctrl/sunplus/Kconfig"
591 source "drivers/pinctrl/sunxi/Kconfig"
592 source "drivers/pinctrl/tegra/Kconfig"
593 source "drivers/pinctrl/ti/Kconfig"
594 source "drivers/pinctrl/uniphier/Kconfig"
595 source "drivers/pinctrl/visconti/Kconfig"
596 source "drivers/pinctrl/vt8500/Kconfig"
597
598 endif
This page took 0.066209 seconds and 4 git commands to generate.