spi: Merge up old fix
[linux-2.6-block.git] / drivers / pinctrl / Kconfig
CommitLineData
ec8f24b7 1# SPDX-License-Identifier: GPL-2.0-only
2744e8af
LW
2#
3# PINCTRL infrastructure and drivers
4#
5
d219b924
PR
6menuconfig PINCTRL
7 bool "Pin controllers"
2744e8af 8
d219b924 9if PINCTRL
45f034ef 10
c033a718 11config GENERIC_PINCTRL_GROUPS
c7059c5a
TL
12 bool
13
2744e8af 14config PINMUX
244e95a7 15 bool "Support pin multiplexing controllers" if COMPILE_TEST
ae6b4d85 16
a76edc89
TL
17config GENERIC_PINMUX_FUNCTIONS
18 bool
19 select PINMUX
20
ae6b4d85 21config PINCONF
244e95a7 22 bool "Support pin configuration controllers" if COMPILE_TEST
2744e8af 23
394349f7
LW
24config GENERIC_PINCONF
25 bool
26 select PINCONF
27
2744e8af
LW
28config 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
b124c8bd 34config PINCTRL_AMD
41ef3c1a 35 bool "AMD GPIO pin control"
b124c8bd
AS
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
a0f160ff
JG
52config 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
00df0582 68config PINCTRL_ARTPEC6
2635adb4
KK
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
00df0582 78
c8ce8782 79config PINCTRL_AS3722
9385f35d 80 tristate "Pinctrl and GPIO driver for ams AS3722 PMIC"
c8ce8782
LD
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
6732ae5c
JCPV
90config PINCTRL_AT91
91 bool "AT91 pinctrl driver"
92 depends on OF
93 depends on ARCH_AT91
94 select PINMUX
95 select PINCONF
80cc3732
AS
96 select GPIOLIB
97 select OF_GPIO
98 select GPIOLIB_IRQCHIP
6732ae5c
JCPV
99 help
100 Say Y here to enable the at91 pinctrl driver
101
77618084
LD
102config PINCTRL_AT91PIO4
103 bool "AT91 PIO4 pinctrl driver"
104 depends on OF
0a03658d 105 depends on HAS_IOMEM
e682fcc7 106 depends on ARCH_AT91 || COMPILE_TEST
77618084
LD
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
b124c8bd
AS
116config PINCTRL_AXP209
117 tristate "X-Powers AXP209 PMIC pinctrl and GPIO Support"
118 depends on MFD_AXP20X
119 depends on OF
83b31c2a 120 select PINMUX
dbad75dd 121 select GENERIC_PINCONF
b124c8bd 122 select GPIOLIB
dbad75dd 123 help
b124c8bd
AS
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.
dbad75dd 129
8f3f0246
MS
130config PINCTRL_BM1880
131 bool "Bitmain BM1880 Pinctrl driver"
8293b3c6
MS
132 depends on OF && (ARCH_BITMAIN || COMPILE_TEST)
133 default ARCH_BITMAIN
8f3f0246
MS
134 select PINMUX
135 help
136 Pinctrl driver for Bitmain BM1880 SoC.
137
e6cbbe42
PR
138config PINCTRL_CY8C95X0
139 tristate "Cypress CY8C95X0 I2C pinctrl and GPIO driver"
8586466e 140 depends on I2C
e6cbbe42
PR
141 select GPIOLIB
142 select GPIOLIB_IRQCHIP
143 select PINMUX
144 select PINCONF
145 select GENERIC_PINCONF
146 select REGMAP_I2C
147 help
148 Support for 20/40/60 pin Cypress Cy8C95x0 pinctrl/gpio I2C expander.
149 This driver can also be built as a module. If so, the module will be
150 called pinctrl-cy8c95x0.
151
1ff91f0a 152config PINCTRL_DA850_PUPD
b124c8bd 153 tristate "TI DA850/OMAP-L138/AM18XX pull-up and pull-down groups"
1ff91f0a
DL
154 depends on OF && (ARCH_DAVINCI_DA850 || COMPILE_TEST)
155 select PINCONF
156 select GENERIC_PINCONF
157 help
158 Driver for TI DA850/OMAP-L138/AM18XX pinconf. Used to control
b124c8bd 159 pull-up and pull-down pin groups.
1ff91f0a 160
56cc3af4
MF
161config PINCTRL_DA9062
162 tristate "Dialog Semiconductor DA9062 PMIC pinctrl and GPIO Support"
163 depends on MFD_DA9062
164 select GPIOLIB
165 help
166 The Dialog DA9062 PMIC provides multiple GPIOs that can be muxed for
167 different functions. This driver bundles a pinctrl driver to select the
168 function muxing and a GPIO driver to handle the GPIO when the GPIO
169 function is selected.
170
b124c8bd 171 Say Y to enable pinctrl and GPIO support for the DA9062 PMIC.
56cc3af4 172
38b0e507
BS
173config PINCTRL_DIGICOLOR
174 bool
083b0230 175 depends on ARCH_DIGICOLOR || COMPILE_TEST
38b0e507
BS
176 select PINMUX
177 select GENERIC_PINCONF
178
b124c8bd
AS
179config PINCTRL_EQUILIBRIUM
180 tristate "Generic pinctrl and GPIO driver for Intel Lightning Mountain SoC"
181 depends on OF && HAS_IOMEM
182 depends on X86 || COMPILE_TEST
183 select PINMUX
184 select PINCONF
185 select GPIOLIB
186 select GPIO_GENERIC
187 select GPIOLIB_IRQCHIP
188 select GENERIC_PINCONF
189 select GENERIC_PINCTRL_GROUPS
190 select GENERIC_PINMUX_FUNCTIONS
191 help
192 Equilibrium driver is a pinctrl and GPIO driver for Intel Lightning
193 Mountain network processor SoC that supports both the GPIO and pin
194 control frameworks. It provides interfaces to setup pin muxing, assign
195 desired pin functions, configure GPIO attributes for LGM SoC pins.
196 Pin muxing and pin config settings are retrieved from device tree.
197
198config PINCTRL_GEMINI
199 bool
200 depends on ARCH_GEMINI
201 default ARCH_GEMINI
202 select PINMUX
203 select GENERIC_PINCONF
204 select MFD_SYSCON
205
206config PINCTRL_INGENIC
207 bool "Pinctrl driver for the Ingenic JZ47xx SoCs"
208 default MACH_INGENIC
209 depends on OF
210 depends on MIPS || COMPILE_TEST
211 select GENERIC_PINCONF
212 select GENERIC_PINCTRL_GROUPS
213 select GENERIC_PINMUX_FUNCTIONS
214 select GPIOLIB
215 select GPIOLIB_IRQCHIP
216 select REGMAP_MMIO
217
218config PINCTRL_K210
219 bool "Pinctrl driver for the Canaan Kendryte K210 SoC"
220 depends on RISCV && SOC_CANAAN && OF
221 select GENERIC_PINMUX_FUNCTIONS
222 select GENERIC_PINCONF
223 select GPIOLIB
224 select OF_GPIO
225 select REGMAP_MMIO
226 default SOC_CANAAN
227 help
228 Add support for the Canaan Kendryte K210 RISC-V SOC Field
229 Programmable IO Array (FPIOA) controller.
230
231config PINCTRL_KEEMBAY
232 tristate "Pinctrl driver for Intel Keem Bay SoC"
233 depends on ARCH_KEEMBAY || (ARM64 && COMPILE_TEST)
234 depends on HAS_IOMEM
235 select PINMUX
236 select PINCONF
237 select GENERIC_PINCONF
238 select GENERIC_PINCTRL_GROUPS
239 select GENERIC_PINMUX_FUNCTIONS
240 select GPIOLIB
241 select GPIOLIB_IRQCHIP
242 select GPIO_GENERIC
243 help
244 This selects pin control driver for the Intel Keem Bay SoC.
245 It provides pin config functions such as pull-up, pull-down,
246 interrupt, drive strength, sec lock, Schmitt trigger, slew
247 rate control and direction control. This module will be
248 called as pinctrl-keembay.
249
3f8c50c9
JC
250config PINCTRL_LANTIQ
251 bool
252 depends on LANTIQ
253 select PINMUX
254 select PINCONF
255
b124c8bd
AS
256config PINCTRL_FALCON
257 bool
258 depends on SOC_FALCON
259 depends on PINCTRL_LANTIQ
260
f73f88ac 261config PINCTRL_LOONGSON2
262 tristate "Pinctrl driver for the Loongson-2 SoC"
c0f358fd 263 depends on OF && (LOONGARCH || COMPILE_TEST)
f73f88ac 264 select PINMUX
265 select GENERIC_PINCONF
266 help
267 This selects pin control driver for the Loongson-2 SoC. It
268 provides pin config functions multiplexing. GPIO pin pull-up,
269 pull-down functions are not supported. Say yes to enable
270 pinctrl for Loongson-2 SoC.
271
b124c8bd
AS
272config PINCTRL_XWAY
273 bool
274 depends on SOC_TYPE_XWAY
275 depends on PINCTRL_LANTIQ
276
2f77ac93
JE
277config PINCTRL_LPC18XX
278 bool "NXP LPC18XX/43XX SCU pinctrl driver"
279 depends on OF && (ARCH_LPC18XX || COMPILE_TEST)
280 default ARCH_LPC18XX
281 select PINMUX
282 select GENERIC_PINCONF
283 help
284 Pinctrl driver for NXP LPC18xx/43xx System Control Unit (SCU).
285
b124c8bd
AS
286config PINCTRL_MAX77620
287 tristate "MAX77620/MAX20024 Pincontrol support"
288 depends on MFD_MAX77620 && OF
06351d13 289 select PINMUX
1c5b7f3c 290 select GENERIC_PINCONF
b124c8bd
AS
291 help
292 Say Y here to enable Pin control support for Maxim MAX77620 PMIC.
293 This PMIC has 8 GPIO pins that work as GPIO as well as special
294 function in alternate mode. This driver also configure push-pull,
295 open drain, FPS slots etc.
06351d13 296
0f04a817
AS
297config PINCTRL_MCP23S08_I2C
298 tristate
299 select REGMAP_I2C
300
301config PINCTRL_MCP23S08_SPI
302 tristate
303 select REGMAP_SPI
304
64ac43e6
SR
305config PINCTRL_MCP23S08
306 tristate "Microchip MCP23xxx I/O expander"
64ac43e6 307 depends on SPI_MASTER || I2C
e2a021d4 308 select GPIOLIB
64ac43e6 309 select GPIOLIB_IRQCHIP
82039d24 310 select GENERIC_PINCONF
0f04a817
AS
311 select PINCTRL_MCP23S08_I2C if I2C
312 select PINCTRL_MCP23S08_SPI if SPI_MASTER
64ac43e6 313 help
6ff45566
JK
314 SPI/I2C driver for Microchip MCP23S08 / MCP23S17 / MCP23S18 /
315 MCP23008 / MCP23017 / MCP23018 I/O expanders.
316 This provides a GPIO interface supporting inputs and outputs and a
317 corresponding interrupt-controller.
64ac43e6 318
b124c8bd 319config PINCTRL_MICROCHIP_SGPIO
2f65923c 320 tristate "Pinctrl driver for Microsemi/Microchip Serial GPIO"
611dac1e 321 depends on OF
b124c8bd 322 depends on HAS_IOMEM
611dac1e 323 select GPIOLIB
611dac1e 324 select GPIOLIB_IRQCHIP
d3e51161 325 select GENERIC_PINCONF
b124c8bd
AS
326 select GENERIC_PINCTRL_GROUPS
327 select GENERIC_PINMUX_FUNCTIONS
0662e4a1 328 select OF_GPIO
25fda51c 329 help
b124c8bd
AS
330 Support for the serial GPIO interface used on Microsemi and
331 Microchip SoCs. By using a serial interface, the SIO
332 controller significantly extends the number of available
333 GPIOs with a minimum number of additional pins on the
334 device. The primary purpose of the SIO controller is to
335 connect control signals from SFP modules and to act as an
336 LED controller.
d3e51161 337
2f65923c
CF
338 If compiled as a module, the module name will be
339 pinctrl-microchip-sgpio.
340
b124c8bd 341config PINCTRL_OCELOT
4425205e 342 tristate "Pinctrl driver for the Microsemi Ocelot and Jaguar2 SoCs"
8b8b091b 343 depends on OF
fd35b202 344 depends on HAS_IOMEM
e2a021d4 345 select GPIOLIB
9e80f906 346 select GPIOLIB_IRQCHIP
cefc03e5 347 select GENERIC_PINCONF
b124c8bd
AS
348 select GENERIC_PINCTRL_GROUPS
349 select GENERIC_PINMUX_FUNCTIONS
cefc03e5 350 select OF_GPIO
b124c8bd 351 select REGMAP_MMIO
3f668365
CF
352 help
353 Support for the internal GPIO interfaces on Microsemi Ocelot and
354 Jaguar2 SoCs.
355
356 If conpiled as a module, the module name will be pinctrl-ocelot.
cefc03e5 357
0a8d3e24 358config PINCTRL_PALMAS
767b8ce3 359 tristate "Pinctrl driver for the PALMAS Series MFD devices"
0a8d3e24 360 depends on OF && MFD_PALMAS
63ca8db7 361 select PINMUX
0a8d3e24
LD
362 select GENERIC_PINCONF
363 help
364 Palmas device supports the configuration of pins for different
365 functionality. This driver supports the pinmux, push-pull and
366 open drain configuration for the Palmas series devices like
367 TPS65913, TPS80036 etc.
368
2ba384e6
JH
369config PINCTRL_PIC32
370 bool "Microchip PIC32 pin controller driver"
371 depends on OF
372 depends on MACH_PIC32
373 select PINMUX
374 select GENERIC_PINCONF
375 select GPIOLIB_IRQCHIP
376 select OF_GPIO
377 help
378 This is the pin controller and gpio driver for Microchip PIC32
379 microcontrollers. This option is selected automatically when specific
380 machine and arch are selected to build.
381
382config PINCTRL_PIC32MZDA
383 def_bool y if PIC32MZDA
384 select PINCTRL_PIC32
385
b124c8bd
AS
386config PINCTRL_PISTACHIO
387 bool "IMG Pistachio SoC pinctrl driver"
388 depends on OF && (MIPS || COMPILE_TEST)
389 depends on GPIOLIB
8b242ca7
SKP
390 select PINMUX
391 select GENERIC_PINCONF
e72394e2 392 select GPIOLIB_IRQCHIP
b124c8bd
AS
393 select OF_GPIO
394 help
395 This support pinctrl and GPIO driver for IMG Pistachio SoC.
b5c23aa4 396
ea479996
JC
397config PINCTRL_RK805
398 tristate "Pinctrl and GPIO driver for RK805 PMIC"
c20e8c5b 399 depends on MFD_RK8XX
ea479996
JC
400 select GPIOLIB
401 select PINMUX
402 select GENERIC_PINCONF
403 help
404 This selects the pinctrl driver for RK805.
405
d3e51161 406config PINCTRL_ROCKCHIP
be786ac5 407 tristate "Rockchip gpio and pinctrl driver"
febb4ee2 408 depends on ARCH_ROCKCHIP || COMPILE_TEST
0662e4a1 409 depends on OF
25fda51c 410 select GPIOLIB
d3e51161
HS
411 select PINMUX
412 select GENERIC_PINCONF
413 select GENERIC_IRQ_CHIP
751a99ab 414 select MFD_SYSCON
0662e4a1 415 select OF_GPIO
25fda51c
JX
416 default ARCH_ROCKCHIP
417 help
b124c8bd 418 This support pinctrl and GPIO driver for Rockchip SoCs.
d3e51161 419
8b8b091b
TL
420config PINCTRL_SINGLE
421 tristate "One-register-per-pin type device tree based pinctrl driver"
422 depends on OF
fd35b202 423 depends on HAS_IOMEM
caeb774e 424 select GENERIC_PINCTRL_GROUPS
571aec4d 425 select GENERIC_PINMUX_FUNCTIONS
9dddb4df 426 select GENERIC_PINCONF
8b8b091b
TL
427 help
428 This selects the device tree based generic pinctrl driver.
429
701016c0
SK
430config PINCTRL_ST
431 bool
432 depends on OF
433 select PINMUX
434 select PINCONF
130cbe30 435 select GPIOLIB_IRQCHIP
701016c0 436
1490d9f8
AD
437config PINCTRL_STMFX
438 tristate "STMicroelectronics STMFX GPIO expander pinctrl driver"
9af2de76 439 depends on I2C
ec2e0f4f 440 depends on OF_GPIO
1490d9f8
AD
441 select GENERIC_PINCONF
442 select GPIOLIB_IRQCHIP
443 select MFD_STMFX
444 help
445 Driver for STMicroelectronics Multi-Function eXpander (STMFX)
446 GPIO expander.
447 This provides a GPIO interface supporting inputs and outputs,
448 and configuring push-pull, open-drain, and can also be used as
449 interrupt-controller.
450
b124c8bd
AS
451config PINCTRL_SX150X
452 bool "Semtech SX150x I2C GPIO expander pinctrl driver"
453 depends on I2C=y
79f28b9f 454 select PINMUX
b124c8bd 455 select PINCONF
2df723d4 456 select GENERIC_PINCONF
d4c34d09 457 select GPIOLIB
b124c8bd
AS
458 select GPIOLIB_IRQCHIP
459 select REGMAP
2df723d4 460 help
b124c8bd
AS
461 Say Y here to provide support for Semtech SX150x-series I2C
462 GPIO expanders as pinctrl module.
463 Compatible models include:
464 - 8 bits: sx1508q, sx1502q
465 - 16 bits: sx1509q, sx1506q
2df723d4 466
b124c8bd
AS
467config PINCTRL_TB10X
468 bool
469 depends on OF && ARC_PLAT_TB10X
470 select GPIOLIB
0a8d3e24 471
add958ce
SB
472config PINCTRL_ZYNQ
473 bool "Pinctrl driver for Xilinx Zynq"
474 depends on ARCH_ZYNQ
475 select PINMUX
476 select GENERIC_PINCONF
477 help
485dba27 478 This selects the pinctrl driver for Xilinx Zynq.
add958ce 479
8b242ca7
SKP
480config PINCTRL_ZYNQMP
481 tristate "Pinctrl driver for Xilinx ZynqMP"
482 depends on ZYNQMP_FIRMWARE
483 select PINMUX
484 select GENERIC_PINCONF
485 default ZYNQMP_FIRMWARE
486 help
487 This selects the pinctrl driver for Xilinx ZynqMP platform.
488 This driver will query the pin information from the firmware
489 and allow configuring the pins.
490 Configuration can include the mux function to select on those
491 pin(s)/group(s), and various pin configuration parameters
492 such as pull-up, slew rate, etc.
fa99e701
SKP
493 This driver can also be built as a module. If so, the module
494 will be called pinctrl-zynqmp.
8b242ca7 495
d11f9328
AM
496config PINCTRL_MLXBF3
497 tristate "NVIDIA BlueField-3 SoC Pinctrl driver"
498 depends on (MELLANOX_PLATFORM && ARM64) || COMPILE_TEST
499 select PINMUX
500 select GPIOLIB
501 select GPIOLIB_IRQCHIP
d11f9328
AM
502 help
503 Say Y to select the pinctrl driver for BlueField-3 SoCs.
504 This pin controller allows selecting the mux function for
505 each pin. This driver can also be built as a module called
506 pinctrl-mlxbf3.
507
2242ddfb 508source "drivers/pinctrl/actions/Kconfig"
4d3d0e42 509source "drivers/pinctrl/aspeed/Kconfig"
b17f2f9b 510source "drivers/pinctrl/bcm/Kconfig"
3de68d33 511source "drivers/pinctrl/berlin/Kconfig"
b124c8bd 512source "drivers/pinctrl/cirrus/Kconfig"
edad3b2a 513source "drivers/pinctrl/freescale/Kconfig"
5fae8b86 514source "drivers/pinctrl/intel/Kconfig"
b124c8bd
AS
515source "drivers/pinctrl/mediatek/Kconfig"
516source "drivers/pinctrl/meson/Kconfig"
06763c74 517source "drivers/pinctrl/mvebu/Kconfig"
3a198059 518source "drivers/pinctrl/nomadik/Kconfig"
3b588e43 519source "drivers/pinctrl/nuvoton/Kconfig"
fd84aaa8 520source "drivers/pinctrl/nxp/Kconfig"
4b15ec9d 521source "drivers/pinctrl/pxa/Kconfig"
69b78b8d 522source "drivers/pinctrl/qcom/Kconfig"
077365a9 523source "drivers/pinctrl/renesas/Kconfig"
ebe629a3 524source "drivers/pinctrl/samsung/Kconfig"
deda8287 525source "drivers/pinctrl/spear/Kconfig"
41d32cfc 526source "drivers/pinctrl/sprd/Kconfig"
ba7fdf88 527source "drivers/pinctrl/starfive/Kconfig"
aceb16dc 528source "drivers/pinctrl/stm32/Kconfig"
aa74c44b 529source "drivers/pinctrl/sunplus/Kconfig"
5f910777 530source "drivers/pinctrl/sunxi/Kconfig"
25cbac77 531source "drivers/pinctrl/tegra/Kconfig"
003910eb 532source "drivers/pinctrl/ti/Kconfig"
6e908892 533source "drivers/pinctrl/uniphier/Kconfig"
a68a7844 534source "drivers/pinctrl/visconti/Kconfig"
b124c8bd 535source "drivers/pinctrl/vt8500/Kconfig"
1948d5c5 536
d219b924 537endif