gpio: max77620: Fix interrupt handling
[linux-2.6-block.git] / drivers / gpio / Kconfig
CommitLineData
ec8f24b7 1# SPDX-License-Identifier: GPL-2.0-only
a9c5fff5 2#
e849dc04 3# GPIO infrastructure and drivers
a9c5fff5
DB
4#
5
7563bbf8
MB
6config ARCH_HAVE_CUSTOM_GPIO_H
7 bool
8 help
9 Selecting this config option from the architecture Kconfig allows
10 the architecture to provide a custom asm/gpio.h implementation
11 overriding the default implementations. New uses of this are
12 strongly discouraged.
13
7444a72e
MB
14menuconfig GPIOLIB
15 bool "GPIO Support"
7444a72e
MB
16 help
17 This enables GPIO support through the generic GPIO library.
18 You only need to enable this, if you also want to enable
e849dc04 19 one or more of the GPIO drivers below.
7444a72e
MB
20
21 If unsure, say N.
a9c5fff5 22
7444a72e 23if GPIOLIB
a9c5fff5 24
3027743f
LA
25config GPIOLIB_FASTPATH_LIMIT
26 int "Maximum number of GPIOs for fast path"
27 range 32 512
28 default 512
29 help
c42e34c9
EWI
30 This adjusts the point at which certain APIs will switch from
31 using a stack allocated buffer to a dynamically allocated buffer.
3027743f 32
c42e34c9
EWI
33 You shouldn't need to change this unless you really need to
34 optimize either stack space or performance. Change this carefully
35 since setting an incorrect value could cause stack corruption.
3027743f 36
f141ed65
GL
37config OF_GPIO
38 def_bool y
92c74bce 39 depends on OF
2527ecc9 40 depends on HAS_IOMEM
f141ed65 41
e29482e8
MN
42config GPIO_ACPI
43 def_bool y
44 depends on ACPI
45
14250520 46config GPIOLIB_IRQCHIP
fc346270 47 select IRQ_DOMAIN
14250520
LW
48 bool
49
a9c5fff5
DB
50config DEBUG_GPIO
51 bool "Debug GPIO calls"
52 depends on DEBUG_KERNEL
53 help
54 Say Y here to add some extra checks and diagnostics to GPIO calls.
692105b8
ML
55 These checks help ensure that GPIOs have been properly initialized
56 before they are used, and that sleeping calls are not made from
57 non-sleeping contexts. They can make bitbanged serial protocols
a9c5fff5
DB
58 slower. The diagnostics help catch the type of setup errors
59 that are most common when setting up new platforms or boards.
60
d8f388d8
DB
61config GPIO_SYSFS
62 bool "/sys/class/gpio/... (sysfs interface)"
4c0ea233 63 depends on SYSFS
d8f388d8 64 help
db9477f8 65 Say Y here to add the legacy sysfs interface for GPIOs.
d8f388d8 66
db9477f8
LW
67 This ABI is deprecated. If you want to use GPIO from userspace,
68 use the character device /dev/gpiochipN with the appropriate
69 ioctl() operations instead. The character device is always
70 available.
d8f388d8 71
c103de24 72config GPIO_GENERIC
3085a4a4 73 depends on HAS_IOMEM # Only for IOMEM drivers
c103de24
GL
74 tristate
75
e849dc04 76# put drivers in the right section, in alphabetical order
a9c5fff5 77
177b0381 78# This symbol is selected by both I2C and SPI expanders
e952805d
WS
79config GPIO_MAX730X
80 tristate
81
177b0381 82menu "Memory mapped GPIO drivers"
3085a4a4 83 depends on HAS_IOMEM
0bcb6069 84
af0a33e2
AS
85config GPIO_74XX_MMIO
86 tristate "GPIO driver for 74xx-ICs with MMIO access"
87 depends on OF_GPIO
88 select GPIO_GENERIC
89 help
90 Say yes here to support GPIO functionality for 74xx-compatible ICs
91 with MMIO access. Compatible models include:
92 1 bit: 741G125 (Input), 741G74 (Output)
93 2 bits: 742G125 (Input), 7474 (Output)
94 4 bits: 74125 (Input), 74175 (Output)
95 6 bits: 74365 (Input), 74174 (Output)
96 8 bits: 74244 (Input), 74273 (Output)
97 16 bits: 741624 (Input), 7416374 (Output)
98
223fa272
LW
99config GPIO_ALTERA
100 tristate "Altera GPIO"
101 depends on OF_GPIO
223fa272
LW
102 select GPIOLIB_IRQCHIP
103 help
104 Say Y or M here to build support for the Altera PIO device.
105
106 If driver is built as a module it will be called gpio-altera.
107
6057d40f
YT
108config GPIO_AMDPT
109 tristate "AMD Promontory GPIO support"
110 depends on ACPI
574b782e 111 select GPIO_GENERIC
6057d40f
YT
112 help
113 driver for GPIO functionality on Promontory IOHub
114 Require ACPI ASL code to enumerate as a platform device.
115
361b7911
JS
116config GPIO_ASPEED
117 tristate "Aspeed GPIO support"
118 depends on (ARCH_ASPEED || COMPILE_TEST) && OF_GPIO
119 select GPIOLIB_IRQCHIP
120 help
121 Say Y here to support Aspeed AST2400 and AST2500 GPIO controllers.
122
f8b410e3
LW
123config GPIO_ASPEED_SGPIO
124 bool "Aspeed SGPIO support"
125 depends on (ARCH_ASPEED || COMPILE_TEST) && OF_GPIO
126 select GPIO_GENERIC
127 select GPIOLIB_IRQCHIP
128 help
129 Say Y here to support Aspeed AST2500 SGPIO functionality.
130
ab32770e
AB
131config GPIO_ATH79
132 tristate "Atheros AR71XX/AR724X/AR913X GPIO support"
133 default y if ATH79
409d8783 134 depends on ATH79 || COMPILE_TEST
ab32770e 135 select GPIO_GENERIC
2b8f89e1 136 select GPIOLIB_IRQCHIP
ab32770e
AB
137 help
138 Select this option to enable GPIO driver for
139 Atheros AR71XX/AR724X/AR913X SoC devices.
140
a98d90e7
DS
141config GPIO_RASPBERRYPI_EXP
142 tristate "Raspberry Pi 3 GPIO Expander"
143 default RASPBERRYPI_FIRMWARE
144 depends on OF_GPIO
94337b72
BS
145 # Make sure not 'y' when RASPBERRYPI_FIRMWARE is 'm'. This can only
146 # happen when COMPILE_TEST=y, hence the added !RASPBERRYPI_FIRMWARE.
7ed91505 147 depends on (ARCH_BCM2835 && RASPBERRYPI_FIRMWARE) || (COMPILE_TEST && !RASPBERRYPI_FIRMWARE)
a98d90e7
DS
148 help
149 Turn on GPIO support for the expander on Raspberry Pi 3 boards, using
150 the firmware mailbox to communicate with VideoCore on BCM283x chips.
151
ea948cff
LW
152config GPIO_BCM_KONA
153 bool "Broadcom Kona GPIO"
154 depends on OF_GPIO && (ARCH_BCM_MOBILE || COMPILE_TEST)
155 help
156 Turn on GPIO support for Broadcom "Kona" chips.
157
3b0213d5
GF
158config GPIO_BRCMSTB
159 tristate "BRCMSTB GPIO support"
a02588a0
FF
160 default y if (ARCH_BRCMSTB || BMIPS_GENERIC)
161 depends on OF_GPIO && (ARCH_BRCMSTB || BMIPS_GENERIC || COMPILE_TEST)
3b0213d5 162 select GPIO_GENERIC
0ba31dc2 163 select IRQ_DOMAIN
3b0213d5
GF
164 help
165 Say yes here to enable GPIO support for Broadcom STB (BCM7XXX) SoCs.
166
72ab2f76
JK
167config GPIO_CADENCE
168 tristate "Cadence GPIO support"
169 depends on OF_GPIO
170 select GPIO_GENERIC
171 select GPIOLIB_IRQCHIP
172 help
173 Say yes here to enable support for Cadence GPIO controller.
174
a3b8d4a5 175config GPIO_CLPS711X
55fe14ab 176 tristate "CLPS711X GPIO support"
ffd4bf1a 177 depends on ARCH_CLPS711X || COMPILE_TEST
55fe14ab
AS
178 select GPIO_GENERIC
179 help
180 Say yes here to support GPIO on CLPS711X SoCs.
a3b8d4a5 181
ee89cf63
GS
182config GPIO_DAVINCI
183 bool "TI Davinci/Keystone GPIO support"
184 default y if ARCH_DAVINCI
6eeea326 185 depends on (ARM || ARM64) && (ARCH_DAVINCI || ARCH_KEYSTONE || ARCH_K3)
ee89cf63
GS
186 help
187 Say yes here to enable GPIO support for TI Davinci/Keystone SoCs.
188
7779b345
JI
189config GPIO_DWAPB
190 tristate "Synopsys DesignWare APB GPIO driver"
191 select GPIO_GENERIC
192 select GENERIC_IRQ_CHIP
7779b345
JI
193 help
194 Say Y or M here to build support for the Synopsys DesignWare APB
195 GPIO block.
196
25518e02
BW
197config GPIO_EIC_SPRD
198 tristate "Spreadtrum EIC support"
199 depends on ARCH_SPRD || COMPILE_TEST
200 depends on OF_GPIO
201 select GPIOLIB_IRQCHIP
202 help
203 Say yes here to support Spreadtrum EIC device.
204
a07e103e
MD
205config GPIO_EM
206 tristate "Emma Mobile GPIO"
22eaf13c 207 depends on (ARCH_EMEV2 || COMPILE_TEST) && OF_GPIO
a07e103e
MD
208 help
209 Say yes here to support GPIO on Renesas Emma Mobile SoCs.
210
c6b52c13
HS
211config GPIO_EP93XX
212 def_bool y
213 depends on ARCH_EP93XX
1e4c8842 214 select GPIO_GENERIC
a419a3d9 215 select GPIOLIB_IRQCHIP
c6b52c13 216
6596e59e
SM
217config GPIO_EXAR
218 tristate "Support for GPIO pins on XR17V352/354/358"
219 depends on SERIAL_8250_EXAR
220 help
221 Selecting this option will enable handling of GPIO pins present
222 on Exar XR17V352/354/358 chips.
223
223fa272
LW
224config GPIO_GE_FPGA
225 bool "GE FPGA based GPIO"
226 depends on GE_FPGA
227 select GPIO_GENERIC
228 help
229 Support for common GPIO functionality provided on some GE Single Board
230 Computers.
231
232 This driver provides basic support (configure as input or output, read
233 and write pin state) for GPIO implemented in a number of GE single
234 board computers.
235
9d3a15aa
LW
236config GPIO_FTGPIO010
237 bool "Faraday FTGPIO010 GPIO"
49cec4d8
LW
238 depends on OF_GPIO
239 select GPIO_GENERIC
240 select GPIOLIB_IRQCHIP
d8307c09 241 default (ARCH_GEMINI || ARCH_MOXART)
49cec4d8 242 help
9d3a15aa
LW
243 Support for common GPIOs from the Faraday FTGPIO010 IP core, found in
244 Cortina systems Gemini platforms, Moxa ART and others.
49cec4d8 245
223fa272
LW
246config GPIO_GENERIC_PLATFORM
247 tristate "Generic memory-mapped GPIO controller support (MMIO platform device)"
248 select GPIO_GENERIC
249 help
250 Say yes here to support basic platform_device memory-mapped GPIO controllers.
251
252config GPIO_GRGPIO
253 tristate "Aeroflex Gaisler GRGPIO support"
048c28c9 254 depends on OF_GPIO
223fa272
LW
255 select GPIO_GENERIC
256 select IRQ_DOMAIN
257 help
258 Select this to support Aeroflex Gaisler GRGPIO cores from the GRLIB
259 VHDL IP core library.
260
8f55fed3
JN
261config GPIO_HLWD
262 tristate "Nintendo Wii (Hollywood) GPIO"
263 depends on OF_GPIO
264 select GPIO_GENERIC
588de43c 265 select GPIOLIB_IRQCHIP
8f55fed3
JN
266 help
267 Select this to support the GPIO controller of the Nintendo Wii.
268
269 If unsure, say N.
270
223fa272
LW
271config GPIO_ICH
272 tristate "Intel ICH GPIO"
273 depends on PCI && X86
274 select MFD_CORE
275 select LPC_ICH
276 help
277 Say yes here to support the GPIO functionality of a number of Intel
278 ICH-based chipsets. Currently supported devices: ICH6, ICH7, ICH8
279 ICH9, ICH10, Series 5/3400 (eg Ibex Peak), Series 6/C200 (eg
280 Cougar Point), NM10 (Tiger Point), and 3100 (Whitmore Lake).
281
282 If unsure, say N.
283
284config GPIO_IOP
285 tristate "Intel IOP GPIO"
59d3ae9a 286 depends on ARCH_IOP32X || COMPILE_TEST
6d125412 287 select GPIO_GENERIC
223fa272
LW
288 help
289 Say yes here to support the GPIO functionality of a number of Intel
290 IOP32X or IOP33X.
291
292 If unsure, say N.
293
813e7d36
LW
294config GPIO_IXP4XX
295 bool "Intel IXP4xx GPIO"
296 depends on ARM # For <asm/mach-types.h>
297 depends on ARCH_IXP4XX
298 select GPIO_GENERIC
aa7d618a 299 select GPIOLIB_IRQCHIP
813e7d36
LW
300 select IRQ_DOMAIN_HIERARCHY
301 help
302 Say yes here to support the GPIO functionality of a number of Intel
303 IXP4xx series of chips.
304
305 If unsure, say N.
306
223fa272
LW
307config GPIO_LOONGSON
308 bool "Loongson-2/3 GPIO support"
309 depends on CPU_LOONGSON2 || CPU_LOONGSON3
310 help
311 driver for GPIO functionality on Loongson-2F/3A/3B processors.
312
13a43fd9 313config GPIO_LPC18XX
54b72998 314 tristate "NXP LPC18XX/43XX GPIO support"
13a43fd9
JE
315 default y if ARCH_LPC18XX
316 depends on OF_GPIO && (ARCH_LPC18XX || COMPILE_TEST)
5ddabfe8 317 select IRQ_DOMAIN_HIERARCHY
13a43fd9
JE
318 help
319 Select this option to enable GPIO driver for
320 NXP LPC18XX/43XX devices.
321
f2ee7314
AB
322config GPIO_LPC32XX
323 tristate "NXP LPC32XX GPIO support"
324 depends on OF_GPIO && (ARCH_LPC32XX || COMPILE_TEST)
325 help
326 Select this option to enable GPIO driver for
327 NXP LPC32XX devices.
328
223fa272
LW
329config GPIO_LYNXPOINT
330 tristate "Intel Lynxpoint GPIO support"
331 depends on ACPI && X86
332 select GPIOLIB_IRQCHIP
333 help
334 driver for GPIO functionality on Intel Lynxpoint PCH chipset
335 Requires ACPI device enumeration code to set up a platform device.
336
0da094d8 337config GPIO_MB86S7X
e1289dba 338 tristate "GPIO support for Fujitsu MB86S7x Platforms"
0da094d8
JB
339 help
340 Say yes here to support the GPIO controller in Fujitsu MB86S70 SoCs.
341
f436bc27
AW
342config GPIO_MENZ127
343 tristate "MEN 16Z127 GPIO support"
344 depends on MCB
345 select GPIO_GENERIC
346 help
c42e34c9 347 Say yes here to support the MEN 16Z127 GPIO Controller
f436bc27 348
223fa272
LW
349config GPIO_MM_LANTIQ
350 bool "Lantiq Memory mapped GPIOs"
351 depends on LANTIQ && SOC_XWAY
352 help
353 This enables support for memory mapped GPIOs on the External Bus Unit
354 (EBU) found on Lantiq SoCs. The gpios are output only as they are
355 created by attaching a 16bit latch to the bus.
356
6eae1ace
GL
357config GPIO_MPC5200
358 def_bool y
359 depends on PPC_MPC52xx
360
c68308dd 361config GPIO_MPC8XXX
5df7fd46 362 bool "MPC512x/MPC8xxx/QorIQ GPIO support"
c68308dd 363 depends on PPC_MPC512x || PPC_MPC831x || PPC_MPC834x || PPC_MPC837x || \
5df7fd46
LG
364 FSL_SOC_BOOKE || PPC_86xx || ARCH_LAYERSCAPE || ARM || \
365 COMPILE_TEST
366 select GPIO_GENERIC
a8fa91a7 367 select IRQ_DOMAIN
c68308dd
WS
368 help
369 Say Y here if you're going to use hardware that connects to the
5df7fd46 370 MPC512x/831x/834x/837x/8572/8610/QorIQ GPIOs.
c68308dd 371
4ba9c3af
SP
372config GPIO_MT7621
373 bool "Mediatek MT7621 GPIO Support"
374 depends on SOC_MT7620 || SOC_MT7621 || COMPILE_TEST
7a9a5df0 375 depends on OF_GPIO
4ba9c3af
SP
376 select GPIO_GENERIC
377 select GPIOLIB_IRQCHIP
378 help
379 Say yes here to support the Mediatek MT7621 SoC GPIO device
380
fefe7b09
TP
381config GPIO_MVEBU
382 def_bool y
3b4c94bb 383 depends on PLAT_ORION || ARCH_MVEBU
048c28c9 384 depends on OF_GPIO
fefe7b09 385 select GENERIC_IRQ_CHIP
f37e335f 386 select REGMAP_MMIO
fefe7b09 387
d37a65bb
SG
388config GPIO_MXC
389 def_bool y
390 depends on ARCH_MXC
c103de24 391 select GPIO_GENERIC
e4ea9333 392 select GENERIC_IRQ_CHIP
c103de24
GL
393
394config GPIO_MXS
395 def_bool y
396 depends on ARCH_MXS
06f88a8a 397 select GPIO_GENERIC
498c17cf 398 select GENERIC_IRQ_CHIP
d37a65bb 399
aca58a66
DD
400config GPIO_OCTEON
401 tristate "Cavium OCTEON GPIO"
402 depends on GPIOLIB && CAVIUM_OCTEON_SOC
403 default y
404 help
405 Say yes here to support the on-chip GPIO lines on the OCTEON
406 family of SOCs.
407
cd0a3748 408config GPIO_OMAP
cac089f9 409 tristate "TI OMAP GPIO support" if ARCH_OMAP2PLUS || COMPILE_TEST
cd0a3748 410 default y if ARCH_OMAP
9d5d96ef
AB
411 depends on ARM
412 select GENERIC_IRQ_CHIP
fb655f57 413 select GPIOLIB_IRQCHIP
cd0a3748
JMC
414 help
415 Say yes here to enable GPIO support for TI OMAP SoCs.
416
1e9c2859
BS
417config GPIO_PL061
418 bool "PrimeCell PL061 GPIO support"
8a242842 419 depends on ARM_AMBA
a5d6d271 420 select IRQ_DOMAIN
8d5b24bd 421 select GPIOLIB_IRQCHIP
1e9c2859
BS
422 help
423 Say yes here to support the PrimeCell PL061 GPIO device
424
348f3cde
BW
425config GPIO_PMIC_EIC_SPRD
426 tristate "Spreadtrum PMIC EIC support"
427 depends on MFD_SC27XX_PMIC || COMPILE_TEST
428 depends on OF_GPIO
429 select GPIOLIB_IRQCHIP
430 help
431 Say yes here to support Spreadtrum PMIC EIC device.
432
157d2644
HZ
433config GPIO_PXA
434 bool "PXA GPIO support"
435 depends on ARCH_PXA || ARCH_MMP
436 help
437 Say yes here to support the PXA GPIO device
438
119f5e44
MD
439config GPIO_RCAR
440 tristate "Renesas R-Car GPIO"
2af66e1d 441 depends on ARCH_RENESAS || COMPILE_TEST
c7f3c5d3 442 select GPIOLIB_IRQCHIP
119f5e44
MD
443 help
444 Say yes here to support GPIO on Renesas R-Car SoCs.
445
380639c7
RK
446config GPIO_REG
447 bool
448 help
449 A 32-bit single register GPIO fixed in/out implementation. This
450 can be used to represent any register as a set of GPIO signals.
451
fb0b35d3
AS
452config GPIO_SAMA5D2_PIOBU
453 tristate "SAMA5D2 PIOBU GPIO support"
454 depends on MFD_SYSCON
a7c23f8d 455 depends on OF_GPIO
fb0b35d3
AS
456 select GPIO_SYSCON
457 help
458 Say yes here to use the PIOBU pins as GPIOs.
459
460 PIOBU pins on the SAMA5D2 can be used as GPIOs.
461 The difference from regular GPIOs is that they
462 maintain their value during backup/self-refresh.
463
be8c8fac
UKK
464config GPIO_SIOX
465 tristate "SIOX GPIO support"
466 depends on SIOX
467 select GPIOLIB_IRQCHIP
468 help
469 Say yes here to support SIOX I/O devices. These are units connected
470 via a SIOX bus and have a number of fixed-direction I/O lines.
471
2505c7b0
EP
472config GPIO_SNPS_CREG
473 bool "Synopsys GPIO via CREG (Control REGisters) driver"
474 depends on ARC || COMPILE_TEST
a7c0b4b8 475 depends on OF_GPIO
2505c7b0
EP
476 help
477 This driver supports GPIOs via CREG on various Synopsys SoCs.
478 This is a single-register MMIO GPIO driver for complex cases
479 where only several fields in register belong to GPIO lines and
480 each GPIO line owns a field with different length and on/off value.
481
b53bc281
SH
482config GPIO_SPEAR_SPICS
483 bool "ST SPEAr13xx SPI Chip Select as GPIO support"
484 depends on PLAT_SPEAR
485 select GENERIC_IRQ_CHIP
486 help
487 Say yes here to support ST SPEAr SPI Chip Select as GPIO device
488
9a3821c2
BW
489config GPIO_SPRD
490 tristate "Spreadtrum GPIO support"
491 depends on ARCH_SPRD || COMPILE_TEST
492 depends on OF_GPIO
493 select GPIOLIB_IRQCHIP
494 help
495 Say yes here to support Spreadtrum GPIO device.
496
7b0d44f3
AR
497config GPIO_STA2X11
498 bool "STA2x11/ConneXt GPIO support"
499 depends on MFD_STA2X11
500 select GENERIC_IRQ_CHIP
501 help
502 Say yes here to support the STA2x11/ConneXt GPIO device.
503 The GPIO module has 128 GPIO pins with alternate functions.
504
be9cab5b
LW
505config GPIO_STP_XWAY
506 bool "XWAY STP GPIOs"
5099837d
MB
507 depends on SOC_XWAY || COMPILE_TEST
508 depends on OF_GPIO
be9cab5b
LW
509 help
510 This enables support for the Serial To Parallel (STP) unit found on
511 XWAY SoC. The STP allows the SoC to drive a shift registers cascade,
512 that can be up to 24 bit. This peripheral is aimed at driving leds.
513 Some of the gpios/leds can be auto updated by the soc with dsl and
514 phy status.
515
6a8a0c1d
AS
516config GPIO_SYSCON
517 tristate "GPIO based on SYSCON"
518 depends on MFD_SYSCON && OF
519 help
520 Say yes here to support GPIO functionality though SYSCON driver.
521
223fa272
LW
522config GPIO_TB10X
523 bool
0d1e31ab 524 select GPIO_GENERIC
223fa272
LW
525 select GENERIC_IRQ_CHIP
526 select OF_GPIO
527
4dd4dd1d 528config GPIO_TEGRA
0bfb85c6
AB
529 bool "NVIDIA Tegra GPIO support"
530 default ARCH_TEGRA
4dd4dd1d 531 depends on ARCH_TEGRA || COMPILE_TEST
048c28c9 532 depends on OF_GPIO
0bfb85c6
AB
533 help
534 Say yes here to support GPIO pins on NVIDIA Tegra SoCs.
4dd4dd1d 535
5b2b135a
TR
536config GPIO_TEGRA186
537 tristate "NVIDIA Tegra186 GPIO support"
538 default ARCH_TEGRA_186_SOC
539 depends on ARCH_TEGRA_186_SOC || COMPILE_TEST
540 depends on OF_GPIO
541 select GPIOLIB_IRQCHIP
542 help
543 Say yes here to support GPIO pins on NVIDIA Tegra186 SoCs.
544
5041e791
JG
545config GPIO_TS4800
546 tristate "TS-4800 DIO blocks and compatibles"
547 depends on OF_GPIO
6dcfd729 548 depends on SOC_IMX51 || COMPILE_TEST
5041e791
JG
549 select GPIO_GENERIC
550 help
551 This driver support TS-4800 FPGA GPIO controllers.
552
5a2a3002
DD
553config GPIO_THUNDERX
554 tristate "Cavium ThunderX/OCTEON-TX GPIO"
555 depends on ARCH_THUNDER || (64BIT && COMPILE_TEST)
311de3ce 556 depends on PCI_MSI
a7fc89f9 557 select GPIOLIB_IRQCHIP
311de3ce 558 select IRQ_DOMAIN_HIERARCHY
5a2a3002
DD
559 select IRQ_FASTEOI_HIERARCHY_HANDLERS
560 help
561 Say yes here to support the on-chip GPIO lines on the ThunderX
562 and OCTEON-TX families of SoCs.
563
dbe776c2
MY
564config GPIO_UNIPHIER
565 tristate "UniPhier GPIO support"
566 depends on ARCH_UNIPHIER || COMPILE_TEST
567 depends on OF_GPIO
568 select IRQ_DOMAIN_HIERARCHY
569 help
570 Say yes here to support UniPhier GPIOs.
571
7f2691a1
SA
572config GPIO_VF610
573 def_bool y
574 depends on ARCH_MXC && SOC_VF610
575 select GPIOLIB_IRQCHIP
576 help
577 Say yes here to support Vybrid vf610 GPIOs.
578
223fa272
LW
579config GPIO_VR41XX
580 tristate "NEC VR4100 series General-purpose I/O Uint support"
581 depends on CPU_VR41XX
582 help
583 Say yes here to support the NEC VR4100 series General-purpose I/O Uint
584
585config GPIO_VX855
586 tristate "VIA VX855/VX875 GPIO"
72aba2e2 587 depends on (X86 || COMPILE_TEST) && PCI
223fa272
LW
588 select MFD_CORE
589 select MFD_VX855
590 help
591 Support access to the VX855/VX875 GPIO lines through the gpio library.
592
593 This driver provides common support for accessing the device,
594 additional drivers must be enabled in order to use the
595 functionality of the device.
596
29cbf458
FK
597config GPIO_XGENE
598 bool "APM X-Gene GPIO controller support"
599 depends on ARM64 && OF_GPIO
600 help
601 This driver is to support the GPIO block within the APM X-Gene SoC
602 platform's generic flash controller. The GPIO pins are muxed with
603 the generic flash controller's address and data pins. Say yes
604 here to enable the GFC GPIO functionality.
605
b2b35e10
V
606config GPIO_XGENE_SB
607 tristate "APM X-Gene GPIO standby controller support"
608 depends on ARCH_XGENE && OF_GPIO
609 select GPIO_GENERIC
e5f7e312 610 select GPIOLIB_IRQCHIP
c23d200f 611 select IRQ_DOMAIN_HIERARCHY
b2b35e10
V
612 help
613 This driver supports the GPIO block within the APM X-Gene
614 Standby Domain. Say yes here to enable the GPIO functionality.
615
0bcb6069 616config GPIO_XILINX
c54c58ba 617 tristate "Xilinx GPIO support"
0bcb6069
JL
618 help
619 Say yes here to support the Xilinx FPGA GPIO device
620
ff718800
KP
621config GPIO_XLP
622 tristate "Netlogic XLP GPIO support"
240d3d5b 623 depends on OF_GPIO && (CPU_XLP || ARCH_THUNDER2 || COMPILE_TEST)
ff718800
KP
624 select GPIOLIB_IRQCHIP
625 help
626 This driver provides support for GPIO interface on Netlogic XLP MIPS64
627 SoCs. Currently supported XLP variants are XLP8XX, XLP3XX, XLP2XX,
240d3d5b
J
628 XLP9XX and XLP5XX. The same GPIO controller block is also present in
629 Cavium's ThunderX2 CN99XX SoCs.
ff718800
KP
630
631 If unsure, say N.
632
3b31d0ec
BS
633config GPIO_XTENSA
634 bool "Xtensa GPIO32 support"
635 depends on XTENSA
a1a2bdec 636 depends on HAVE_XTENSA_GPIO32
3b31d0ec
BS
637 depends on !SMP
638 help
639 Say yes here to support the Xtensa internal GPIO32 IMPWIRE (input)
640 and EXPSTATE (output) ports
641
223fa272
LW
642config GPIO_ZEVIO
643 bool "LSI ZEVIO SoC memory mapped GPIOs"
644 depends on ARM && OF_GPIO
27fdd325 645 help
223fa272 646 Say yes here to support the GPIO controller in LSI ZEVIO SoCs.
27fdd325 647
223fa272
LW
648config GPIO_ZYNQ
649 tristate "Xilinx Zynq GPIO support"
bdf7a4ae 650 depends on ARCH_ZYNQ || ARCH_ZYNQMP
7f87210e 651 select GPIOLIB_IRQCHIP
be9b06b2 652 help
223fa272 653 Say yes here to support Xilinx Zynq GPIO controller.
92021490 654
0963670a
LW
655config GPIO_ZX
656 bool "ZTE ZX GPIO support"
752fda89 657 depends on ARCH_ZX || COMPILE_TEST
0963670a
LW
658 select GPIOLIB_IRQCHIP
659 help
660 Say yes here to support the GPIO device on ZTE ZX SoCs.
661
bd37c999
KC
662config GPIO_LOONGSON1
663 tristate "Loongson1 GPIO support"
664 depends on MACH_LOONGSON32
665 select GPIO_GENERIC
666 help
667 Say Y or M here to support GPIO on Loongson1 SoCs.
668
e09d168f
EWI
669config GPIO_AMD_FCH
670 tristate "GPIO support for AMD Fusion Controller Hub (G-series SOCs)"
671 help
672 This option enables driver for GPIO on AMDs Fusion Controller Hub,
673 as found on G-series SOCs (eg. GX-412TC)
674
675 Note: This driver doesn't registers itself automatically, as it
676 needs to be provided with platform specific configuration.
677 (See eg. CONFIG_PCENGINES_APU2.)
177b0381 678endmenu
be9b06b2 679
bc6a73bb 680menu "Port-mapped I/O GPIO drivers"
7768feb0 681 depends on X86 # Unconditional I/O space access
bc6a73bb 682
1b06d64f
WBG
683config GPIO_104_DIO_48E
684 tristate "ACCES 104-DIO-48E GPIO support"
35decc80
WBG
685 depends on PC104
686 select ISA_BUS_API
1b06d64f
WBG
687 select GPIOLIB_IRQCHIP
688 help
4c23db0f
WBG
689 Enables GPIO support for the ACCES 104-DIO-48E series (104-DIO-48E,
690 104-DIO-24E). The base port addresses for the devices may be
691 configured via the base module parameter. The interrupt line numbers
692 for the devices may be configured via the irq module parameter.
1b06d64f 693
bc6a73bb
LW
694config GPIO_104_IDIO_16
695 tristate "ACCES 104-IDIO-16 GPIO support"
35decc80
WBG
696 depends on PC104
697 select ISA_BUS_API
a1184147 698 select GPIOLIB_IRQCHIP
bc6a73bb 699 help
86ea8a95
WBG
700 Enables GPIO support for the ACCES 104-IDIO-16 family (104-IDIO-16,
701 104-IDIO-16E, 104-IDO-16, 104-IDIO-8, 104-IDIO-8E, 104-IDO-8). The
702 base port addresses for the devices may be configured via the base
703 module parameter. The interrupt line numbers for the devices may be
704 configured via the irq module parameter.
bc6a73bb 705
6ddcf9b4
WBG
706config GPIO_104_IDI_48
707 tristate "ACCES 104-IDI-48 GPIO support"
35decc80
WBG
708 depends on PC104
709 select ISA_BUS_API
6ddcf9b4
WBG
710 select GPIOLIB_IRQCHIP
711 help
72bf7443
WBG
712 Enables GPIO support for the ACCES 104-IDI-48 family (104-IDI-48A,
713 104-IDI-48AC, 104-IDI-48B, 104-IDI-48BC). The base port addresses for
714 the devices may be configured via the base module parameter. The
715 interrupt line numbers for the devices may be configured via the irq
716 module parameter.
6ddcf9b4 717
bc6a73bb 718config GPIO_F7188X
1920906f 719 tristate "F71869, F71869A, F71882FG, F71889F and F81866 GPIO support"
bc6a73bb
LW
720 help
721 This option enables support for GPIOs found on Fintek Super-I/O
1920906f 722 chips F71869, F71869A, F71882FG, F71889F and F81866.
bc6a73bb
LW
723
724 To compile this driver as a module, choose M here: the module will
725 be called f7188x-gpio.
726
6ea5dcdf
WBG
727config GPIO_GPIO_MM
728 tristate "Diamond Systems GPIO-MM GPIO support"
35decc80
WBG
729 depends on PC104
730 select ISA_BUS_API
6ea5dcdf
WBG
731 help
732 Enables GPIO support for the Diamond Systems GPIO-MM and GPIO-MM-12.
733
734 The Diamond Systems GPIO-MM device features 48 lines of digital I/O
735 via the emulation of dual 82C55A PPI chips. This driver provides GPIO
736 support for these 48 channels of digital I/O.
737
738 The base port addresses for the devices may be configured via the base
739 array module parameter.
740
bc6a73bb
LW
741config GPIO_IT87
742 tristate "IT87xx GPIO support"
bc6a73bb
LW
743 help
744 Say yes here to support GPIO functionality of IT87xx Super I/O chips.
745
746 This driver is tested with ITE IT8728 and IT8732 Super I/O chips, and
a5ec96dd
LB
747 supports the IT8761E, IT8613, IT8620E, and IT8628E Super I/O chips as
748 well.
bc6a73bb
LW
749
750 To compile this driver as a module, choose M here: the module will
751 be called gpio_it87
752
753config GPIO_SCH
754 tristate "Intel SCH/TunnelCreek/Centerton/Quark X1000 GPIO"
72aba2e2 755 depends on (X86 || COMPILE_TEST) && PCI
bc6a73bb
LW
756 select MFD_CORE
757 select LPC_SCH
758 help
759 Say yes here to support GPIO interface on Intel Poulsbo SCH,
760 Intel Tunnel Creek processor, Intel Centerton processor or
761 Intel Quark X1000 SoC.
762
763 The Intel SCH contains a total of 14 GPIO pins. Ten GPIOs are
764 powered by the core power rail and are turned off during sleep
765 modes (S3 and higher). The remaining four GPIOs are powered by
766 the Intel SCH suspend power supply. These GPIOs remain
767 active during S3. The suspend powered GPIOs can be used to wake the
768 system from the Suspend-to-RAM state.
769
770 The Intel Tunnel Creek processor has 5 GPIOs powered by the
771 core power rail and 9 from suspend power supply.
772
773 The Intel Centerton processor has a total of 30 GPIO pins.
774 Twenty-one are powered by the core power rail and 9 from the
775 suspend power supply.
776
777 The Intel Quark X1000 SoC has 2 GPIOs powered by the core
778 power well and 6 from the suspend power well.
779
780config GPIO_SCH311X
781 tristate "SMSC SCH311x SuperI/O GPIO"
782 help
783 Driver to enable the GPIOs found on SMSC SMSC SCH3112, SCH3114 and
784 SCH3116 "Super I/O" chipsets.
785
786 To compile this driver as a module, choose M here: the module will
787 be called gpio-sch311x.
788
789config GPIO_TS5500
790 tristate "TS-5500 DIO blocks and compatibles"
791 depends on TS5500 || COMPILE_TEST
792 help
793 This driver supports Digital I/O exposed by pin blocks found on some
794 Technologic Systems platforms. It includes, but is not limited to, 3
795 blocks of the TS-5500: DIO1, DIO2 and the LCD port, and the TS-5600
796 LCD port.
797
a0d65009
MS
798config GPIO_WINBOND
799 tristate "Winbond Super I/O GPIO support"
b995ff3b 800 select ISA_BUS_API
a0d65009
MS
801 help
802 This option enables support for GPIOs found on Winbond Super I/O
803 chips.
804 Currently, only W83627UHG (also known as Nuvoton NCT6627UD) is
805 supported.
806
807 You will need to provide a module parameter "gpios", or a
808 boot-time parameter "gpio_winbond.gpios" with a bitmask of GPIO
809 ports to enable (bit 0 is GPIO1, bit 1 is GPIO2, etc.).
810
811 To compile this driver as a module, choose M here: the module will
812 be called gpio-winbond.
813
9c26df9b
WBG
814config GPIO_WS16C48
815 tristate "WinSystems WS16C48 GPIO support"
35decc80 816 select ISA_BUS_API
9c26df9b
WBG
817 select GPIOLIB_IRQCHIP
818 help
cc736607
WBG
819 Enables GPIO support for the WinSystems WS16C48. The base port
820 addresses for the devices may be configured via the base module
821 parameter. The interrupt line numbers for the devices may be
822 configured via the irq module parameter.
9c26df9b 823
bc6a73bb
LW
824endmenu
825
177b0381
LW
826menu "I2C GPIO expanders"
827 depends on I2C
92021490 828
bf5a16ba
LW
829config GPIO_ADP5588
830 tristate "ADP5588 I2C GPIO expander"
6ed9f9c4 831 help
bf5a16ba
LW
832 This option enables support for 18 GPIOs found
833 on Analog Devices ADP5588 GPIO Expanders.
be9b06b2 834
bf5a16ba
LW
835config GPIO_ADP5588_IRQ
836 bool "Interrupt controller support for ADP5588"
837 depends on GPIO_ADP5588=y
e9646f0f 838 select GPIOLIB_IRQCHIP
e9004f50 839 help
bf5a16ba
LW
840 Say yes here to enable the adp5588 to be used as an interrupt
841 controller. It requires the driver to be built in the kernel.
31ba56f2 842
bf5a16ba
LW
843config GPIO_ADNP
844 tristate "Avionic Design N-bit GPIO expander"
269a46f8 845 depends on OF_GPIO
104fb1d5
ZL
846 select GPIOLIB_IRQCHIP
847 help
bf5a16ba
LW
848 This option enables support for N GPIOs found on Avionic Design
849 I2C GPIO expanders. The register space will be extended by powers
850 of two, so the controller will need to accommodate for that. For
851 example: if a controller provides 48 pins, 6 registers will be
852 enough to represent all pins, but the driver will assume a
853 register layout for 64 pins (8 registers).
0cc59b9d 854
2a0b0a57
LW
855config GPIO_GW_PLD
856 tristate "Gateworks PLD GPIO Expander"
857 depends on OF_GPIO
858 help
859 Say yes here to provide access to the Gateworks I2C PLD GPIO
860 Expander. This is used at least on the Cambria GW2358-4.
861
e952805d
WS
862config GPIO_MAX7300
863 tristate "Maxim MAX7300 GPIO expander"
e952805d
WS
864 select GPIO_MAX730X
865 help
2b861f4b 866 GPIO driver for Maxim MAX7300 I2C-based GPIO expander.
e952805d 867
bbcd6d54
EM
868config GPIO_MAX732X
869 tristate "MAX7319, MAX7320-7327 I2C Port Expanders"
bbcd6d54
EM
870 help
871 Say yes here to support the MAX7319, MAX7320-7327 series of I2C
872 Port Expanders. Each IO port on these chips has a fixed role of
873 Input (designated by 'I'), Push-Pull Output ('O'), or Open-Drain
874 Input and Output (designed by 'P'). The combinations are listed
875 below:
876
c42e34c9
EWI
877 8 bits: max7319 (8I), max7320 (8O), max7321 (8P),
878 max7322 (4I4O), max7323 (4P4O)
bbcd6d54 879
c42e34c9
EWI
880 16 bits: max7324 (8I8O), max7325 (8P8O),
881 max7326 (4I12O), max7327 (4P12O)
bbcd6d54
EM
882
883 Board setup code must specify the model to use, and the start
884 number for these GPIOs.
885
a80a0bbe
MZ
886config GPIO_MAX732X_IRQ
887 bool "Interrupt controller support for MAX732x"
0244ad00 888 depends on GPIO_MAX732X=y
984f6643 889 select GPIOLIB_IRQCHIP
a80a0bbe
MZ
890 help
891 Say yes here to enable the max732x to be used as an interrupt
892 controller. It requires the driver to be built in the kernel.
893
608589b1 894config GPIO_MC9S08DZ60
895 bool "MX35 3DS BOARD MC9S08DZ60 GPIO functions"
4c30aa33 896 depends on I2C=y && MACH_MX35_3DS
608589b1 897 help
898 Select this to enable the MC9S08DZ60 GPIO driver
899
f3dc3630 900config GPIO_PCA953X
eb32b5aa 901 tristate "PCA95[357]x, PCA9698, TCA64xx, and MAX7310 I/O ports"
4bc16f9d 902 select REGMAP_I2C
9e60fdcf 903 help
7059d4b0
DB
904 Say yes here to provide access to several register-oriented
905 SMBus I/O expanders, made mostly by NXP or TI. Compatible
906 models include:
907
c42e34c9 908 4 bits: pca9536, pca9537
7059d4b0 909
c42e34c9
EWI
910 8 bits: max7310, max7315, pca6107, pca9534, pca9538, pca9554,
911 pca9556, pca9557, pca9574, tca6408, tca9554, xra1202
7059d4b0 912
c42e34c9
EWI
913 16 bits: max7312, max7313, pca9535, pca9539, pca9555, pca9575,
914 tca6416
9e60fdcf 915
c42e34c9 916 24 bits: tca6424
1e191695 917
c42e34c9 918 40 bits: pca9505, pca9698
1e191695 919
89ea8bbe
MZ
920config GPIO_PCA953X_IRQ
921 bool "Interrupt controller support for PCA953x"
922 depends on GPIO_PCA953X=y
7bcbce55 923 select GPIOLIB_IRQCHIP
89ea8bbe
MZ
924 help
925 Say yes here to enable the pca953x to be used as an interrupt
926 controller. It requires the driver to be built in the kernel.
927
15fae37d 928config GPIO_PCF857X
1673ad52 929 tristate "PCF857x, PCA{85,96}7x, and MAX732[89] I2C GPIO expanders"
a39294bd 930 select GPIOLIB_IRQCHIP
901acf5b 931 select IRQ_DOMAIN
15fae37d
DB
932 help
933 Say yes here to provide access to most "quasi-bidirectional" I2C
934 GPIO expanders used for additional digital outputs or inputs.
935 Most of these parts are from NXP, though TI is a second source for
936 some of them. Compatible models include:
937
938 8 bits: pcf8574, pcf8574a, pca8574, pca8574a,
1673ad52 939 pca9670, pca9672, pca9674, pca9674a,
c42e34c9 940 max7328, max7329
15fae37d
DB
941
942 16 bits: pcf8575, pcf8575c, pca8575,
943 pca9671, pca9673, pca9675
944
945 Your board setup code will need to declare the expanders in
946 use, and assign numbers to the GPIOs they expose. Those GPIOs
947 can then be used from drivers and other kernel code, just like
948 other GPIOs, but only accessible from task contexts.
949
950 This driver provides an in-kernel interface to those GPIOs using
951 platform-neutral GPIO calls.
952
b866526d
AD
953config GPIO_TPIC2810
954 tristate "TPIC2810 8-Bit I2C GPO expander"
955 help
956 Say yes here to enable the GPO driver for the TI TPIC2810 chip.
957
958 To compile this driver as a module, choose M here: the module will
959 be called gpio-tpic2810.
960
9c668632
LQ
961config GPIO_TS4900
962 tristate "Technologic Systems FPGA I2C GPIO"
4c5f15b7 963 depends on SOC_IMX6 || COMPILE_TEST
9c668632
LQ
964 select REGMAP_I2C
965 help
966 Say yes here to enabled the GPIO driver for Technologic's FPGA core.
967 Series supported include TS-4100, TS-4900, TS-7970 and TS-7990.
968
177b0381
LW
969endmenu
970
971menu "MFD GPIO expanders"
be9cab5b
LW
972
973config GPIO_ADP5520
974 tristate "GPIO Support for ADP5520 PMIC"
975 depends on PMIC_ADP5520
976 help
977 This option enables support for on-chip GPIO found
978 on Analog Devices ADP5520 PMICs.
979
26a48c4c
TT
980config GPIO_ALTERA_A10SR
981 tristate "Altera Arria10 System Resource GPIO"
982 depends on MFD_ALTERA_A10SR
983 help
984 Driver for Arria10 Development Kit GPIO expansion which
985 includes reads of pushbuttons and DIP switches as well
986 as writes to LEDs.
987
be9cab5b
LW
988config GPIO_ARIZONA
989 tristate "Wolfson Microelectronics Arizona class devices"
990 depends on MFD_ARIZONA
991 help
992 Support for GPIOs on Wolfson Arizona class devices.
993
18bc64b3
MV
994config GPIO_BD70528
995 tristate "ROHM BD70528 GPIO support"
996 depends on MFD_ROHM_BD70528
997 help
998 Support for GPIOs on ROHM BD70528 PMIC. There are four GPIOs
999 available on the ROHM PMIC in total. The GPIOs can also
1000 generate interrupts.
1001
1002 This driver can also be built as a module. If so, the module
1003 will be called gpio-bd70528.
1004
93847930
MV
1005config GPIO_BD9571MWV
1006 tristate "ROHM BD9571 GPIO support"
1007 depends on MFD_BD9571MWV
1008 help
1009 Support for GPIOs on ROHM BD9571 PMIC. There are two GPIOs
1010 available on the ROHM PMIC in total, both of which can also
1011 generate interrupts.
1012
1013 This driver can also be built as a module. If so, the module
1014 will be called gpio-bd9571mwv.
1015
be9cab5b
LW
1016config GPIO_CRYSTAL_COVE
1017 tristate "GPIO support for Crystal Cove PMIC"
72aba2e2 1018 depends on (X86 || COMPILE_TEST) && INTEL_SOC_PMIC
be9cab5b
LW
1019 select GPIOLIB_IRQCHIP
1020 help
1021 Support for GPIO pins on Crystal Cove PMIC.
1022
1023 Say Yes if you have a Intel SoC based tablet with Crystal Cove PMIC
1024 inside.
1025
1026 This driver can also be built as a module. If so, the module will be
1027 called gpio-crystalcove.
1028
1029config GPIO_CS5535
1030 tristate "AMD CS5535/CS5536 GPIO support"
72aba2e2 1031 depends on X86 || MIPS || COMPILE_TEST
be9cab5b
LW
1032 depends on MFD_CS5535
1033 help
1034 The AMD CS5535 and CS5536 southbridges support 28 GPIO pins that
1035 can be used for quite a number of things. The CS5535/6 is found on
1036 AMD Geode and Lemote Yeeloong devices.
1037
1038 If unsure, say N.
1039
1040config GPIO_DA9052
1041 tristate "Dialog DA9052 GPIO"
1042 depends on PMIC_DA9052
1043 help
1044 Say yes here to enable the GPIO driver for the DA9052 chip.
1045
1046config GPIO_DA9055
1047 tristate "Dialog Semiconductor DA9055 GPIO"
1048 depends on MFD_DA9055
1049 help
1050 Say yes here to enable the GPIO driver for the DA9055 chip.
1051
1052 The Dialog DA9055 PMIC chip has 3 GPIO pins that can be
1053 be controller by this driver.
1054
1055 If driver is built as a module it will be called gpio-da9055.
1056
1057config GPIO_DLN2
1058 tristate "Diolan DLN2 GPIO support"
1059 depends on MFD_DLN2
1060 select GPIOLIB_IRQCHIP
1061
1062 help
1063 Select this option to enable GPIO driver for the Diolan DLN2
1064 board.
1065
1066 This driver can also be built as a module. If so, the module
1067 will be called gpio-dln2.
1068
3c6e8d05
LW
1069config HTC_EGPIO
1070 bool "HTC EGPIO support"
1071 depends on GPIOLIB && ARM
1072 help
c42e34c9
EWI
1073 This driver supports the CPLD egpio chip present on
1074 several HTC phones. It provides basic support for input
1075 pins, output pins, and irqs.
3c6e8d05 1076
be9cab5b
LW
1077config GPIO_JANZ_TTL
1078 tristate "Janz VMOD-TTL Digital IO Module"
1079 depends on MFD_JANZ_CMODIO
1080 help
1081 This enables support for the Janz VMOD-TTL Digital IO module.
1082 This driver provides support for driving the pins in output
1083 mode only. Input mode is not supported.
1084
1085config GPIO_KEMPLD
1086 tristate "Kontron ETX / COMexpress GPIO"
1087 depends on MFD_KEMPLD
1088 help
1089 This enables support for the PLD GPIO interface on some Kontron ETX
1090 and COMexpress (ETXexpress) modules.
1091
1092 This driver can also be built as a module. If so, the module will be
1093 called gpio-kempld.
1094
1095config GPIO_LP3943
1096 tristate "TI/National Semiconductor LP3943 GPIO expander"
1097 depends on MFD_LP3943
1098 help
1099 GPIO driver for LP3943 MFD.
1100 LP3943 can be used as a GPIO expander which provides up to 16 GPIOs.
1101 Open drain outputs are required for this usage.
1102
83f14103
K
1103config GPIO_LP873X
1104 tristate "TI LP873X GPO"
1105 depends on MFD_TI_LP873X
1106 help
1107 This driver supports the GPO on TI Lp873x PMICs. 2 GPOs are present
1108 on LP873X PMICs.
1109
1110 This driver can also be built as a module. If so, the module will be
c42e34c9 1111 called gpio-lp873x.
83f14103 1112
5c7f2c76
K
1113config GPIO_LP87565
1114 tristate "TI LP87565 GPIO"
1115 depends on MFD_TI_LP87565
1116 help
1117 This driver supports the GPIO on TI Lp873565 PMICs. 3 GPIOs are present
1118 on LP87565 PMICs.
1119
1120 This driver can also be built as a module. If so, the module will be
1121 called gpio-lp87565.
1122
aca429ff
RF
1123config GPIO_MADERA
1124 tristate "Cirrus Logic Madera class codecs"
1125 depends on PINCTRL_MADERA
1126 help
1127 Support for GPIOs on Cirrus Logic Madera class codecs.
1128
02c5ba1e
LD
1129config GPIO_MAX77620
1130 tristate "GPIO support for PMIC MAX77620 and MAX20024"
1131 depends on MFD_MAX77620
1132 help
1133 GPIO driver for MAX77620 and MAX20024 PMIC from Maxim Semiconductor.
1134 MAX77620 PMIC has 8 pins that can be configured as GPIOs. The
1135 driver also provides interrupt support for each of the gpios.
1136 Say yes here to enable the max77620 to be used as gpio controller.
1137
72b5135b
BG
1138config GPIO_MAX77650
1139 tristate "Maxim MAX77650/77651 GPIO support"
1140 depends on MFD_MAX77650
1141 help
1142 GPIO driver for MAX77650/77651 PMIC from Maxim Semiconductor.
1143 These chips have a single pin that can be configured as GPIO.
1144
be9cab5b
LW
1145config GPIO_MSIC
1146 bool "Intel MSIC mixed signal gpio support"
72aba2e2 1147 depends on (X86 || COMPILE_TEST) && MFD_INTEL_MSIC
be9cab5b
LW
1148 help
1149 Enable support for GPIO on intel MSIC controllers found in
1150 intel MID devices
1151
1152config GPIO_PALMAS
1153 bool "TI PALMAS series PMICs GPIO"
1154 depends on MFD_PALMAS
1155 help
1156 Select this option to enable GPIO driver for the TI PALMAS
1157 series chip family.
1158
e9fe32bc
LD
1159config GPIO_RC5T583
1160 bool "RICOH RC5T583 GPIO"
1161 depends on MFD_RC5T583
1162 help
1163 Select this option to enable GPIO driver for the Ricoh RC5T583
1164 chip family.
1165 This driver provides the support for driving/reading the gpio pins
1166 of RC5T583 device through standard gpio library.
1167
03f822f5
RV
1168config GPIO_STMPE
1169 bool "STMPE GPIOs"
1170 depends on MFD_STMPE
1dfb4a0d 1171 depends on OF_GPIO
fe44e70d 1172 select GPIOLIB_IRQCHIP
03f822f5
RV
1173 help
1174 This enables support for the GPIOs found on the STMPE I/O
1175 Expanders.
1176
f4e8afdc
SI
1177config GPIO_TC3589X
1178 bool "TC3589X GPIOs"
1179 depends on MFD_TC3589X
1422731d 1180 depends on OF_GPIO
cf42f1cf 1181 select GPIOLIB_IRQCHIP
d88b25be 1182 help
f4e8afdc 1183 This enables support for the GPIOs found on the TC3589X
d88b25be
RV
1184 I/O Expander.
1185
be9cab5b
LW
1186config GPIO_TIMBERDALE
1187 bool "Support for timberdale GPIO IP"
1188 depends on MFD_TIMBERDALE
1189 ---help---
1190 Add support for the GPIO IP in the timberdale FPGA.
1191
99f0fd54
AD
1192config GPIO_TPS65086
1193 tristate "TI TPS65086 GPO"
1194 depends on MFD_TPS65086
1195 help
1196 This driver supports the GPO on TI TPS65086x PMICs.
1197
c366c76a
NSJ
1198config GPIO_TPS65218
1199 tristate "TPS65218 GPIO"
1200 depends on MFD_TPS65218
1201 help
1202 Select this option to enable GPIO driver for the TPS65218
1203 chip family.
1204
be9cab5b
LW
1205config GPIO_TPS6586X
1206 bool "TPS6586X GPIO"
1207 depends on MFD_TPS6586X
1208 help
1209 Select this option to enable GPIO driver for the TPS6586X
1210 chip family.
1211
1212config GPIO_TPS65910
1213 bool "TPS65910 GPIO"
1214 depends on MFD_TPS65910
1215 help
1216 Select this option to enable GPIO driver for the TPS65910
1217 chip family.
1218
668a6cc7
MO
1219config GPIO_TPS65912
1220 tristate "TI TPS65912 GPIO"
ca801a22 1221 depends on MFD_TPS65912
668a6cc7
MO
1222 help
1223 This driver supports TPS65912 gpio chip
1224
275b13a6
RM
1225config GPIO_TPS68470
1226 bool "TPS68470 GPIO"
1227 depends on MFD_TPS68470
1228 help
1229 Select this option to enable GPIO driver for the TPS68470
1230 chip family.
1231 There are 7 GPIOs and few sensor related GPIOs supported
1232 by the TPS68470. While the 7 GPIOs can be configured as
1233 input or output as appropriate, the sensor related GPIOs
1234 are "output only" GPIOs.
1235
1236 This driver config is bool, as the GPIO functionality
1237 of the TPS68470 must be available before dependent
1238 drivers are loaded.
1239
b868db94
AL
1240config GPIO_TQMX86
1241 tristate "TQ-Systems QTMX86 GPIO"
1242 depends on MFD_TQMX86 || COMPILE_TEST
1243 select GPIOLIB_IRQCHIP
1244 help
1245 This driver supports GPIO on the TQMX86 IO controller.
1246
e9d35947
DB
1247config GPIO_TWL4030
1248 tristate "TWL4030, TWL5030, and TPS659x0 GPIOs"
1249 depends on TWL4030_CORE
1250 help
1251 Say yes here to access the GPIO signals of various multi-function
1252 power management chips from Texas Instruments.
1253
70ffd691
PU
1254config GPIO_TWL6040
1255 tristate "TWL6040 GPO"
1256 depends on TWL6040_CORE
1257 help
1258 Say yes here to access the GPO signals of twl6040
1259 audio chip from Texas Instruments.
1260
be9cab5b
LW
1261config GPIO_UCB1400
1262 tristate "Philips UCB1400 GPIO"
1263 depends on UCB1400_CORE
1264 help
1265 This enables support for the Philips UCB1400 GPIO pins.
1266 The UCB1400 is an AC97 audio codec.
1267
0ba19cfc
BG
1268config GPIO_WHISKEY_COVE
1269 tristate "GPIO support for Whiskey Cove PMIC"
b5238b41 1270 depends on (X86 || COMPILE_TEST) && INTEL_SOC_PMIC_BXTWC
0ba19cfc
BG
1271 select GPIOLIB_IRQCHIP
1272 help
1273 Support for GPIO pins on Whiskey Cove PMIC.
1274
1275 Say Yes if you have a Intel SoC based tablet with Whiskey Cove PMIC
1276 inside.
1277
1278 This driver can also be built as a module. If so, the module will be
1279 called gpio-wcove.
1280
e4b736f1
MB
1281config GPIO_WM831X
1282 tristate "WM831x GPIOs"
1283 depends on MFD_WM831X
1284 help
1285 Say yes here to access the GPIO signals of WM831x power management
1286 chips from Wolfson Microelectronics.
1287
38f6ce45
MB
1288config GPIO_WM8350
1289 tristate "WM8350 GPIOs"
1290 depends on MFD_WM8350
1291 help
1292 Say yes here to access the GPIO signals of WM8350 power management
1293 chips from Wolfson Microelectronics.
1294
2955c309
MB
1295config GPIO_WM8994
1296 tristate "WM8994 GPIOs"
1297 depends on MFD_WM8994
1298 help
1299 Say yes here to access the GPIO signals of WM8994 audio hub
1300 CODECs from Wolfson Microelectronics.
1301
177b0381 1302endmenu
ef72af40 1303
177b0381
LW
1304menu "PCI GPIO expanders"
1305 depends on PCI
459773ae 1306
92c33ef7
LW
1307config GPIO_AMD8111
1308 tristate "AMD 8111 GPIO driver"
72aba2e2 1309 depends on X86 || COMPILE_TEST
5e969a40 1310 help
92c33ef7 1311 The AMD 8111 south bridge contains 32 GPIO pins which can be used.
ff1d5c2f 1312
92c33ef7
LW
1313 Note, that usually system firmware/ACPI handles GPIO pins on their
1314 own and users might easily break their systems with uncarefull usage
1315 of this driver!
5f0a96b0 1316
92c33ef7 1317 If unsure, say N
5f0a96b0 1318
ff1d5c2f
MB
1319config GPIO_BT8XX
1320 tristate "BT8XX GPIO abuser"
03744529 1321 depends on VIDEO_BT848=n
ff1d5c2f 1322 help
22520edc 1323 The BT8xx frame grabber chip has 24 GPIO pins that can be abused
ff1d5c2f
MB
1324 as a cheap PCI GPIO card.
1325
1326 This chip can be found on Miro, Hauppauge and STB TV-cards.
1327
1328 The card needs to be physically altered for using it as a
1329 GPIO card. For more information on how to build a GPIO card
1330 from a BT8xx TV card, see the documentation file at
baa293e9 1331 Documentation/driver-api/bt8xxgpio.rst
ff1d5c2f
MB
1332
1333 If unsure, say N.
1334
84743ea3 1335config GPIO_INTEL_MID
c78e3cf1
AS
1336 bool "Intel MID GPIO support"
1337 depends on X86_INTEL_MID
fc346270 1338 select GPIOLIB_IRQCHIP
8bf02617 1339 help
c78e3cf1 1340 Say Y here to support Intel MID GPIO.
8bf02617 1341
ccf6fd6d
AS
1342config GPIO_MERRIFIELD
1343 tristate "Intel Merrifield GPIO support"
1344 depends on X86_INTEL_MID
fc346270 1345 select GPIOLIB_IRQCHIP
8bf02617 1346 help
ccf6fd6d 1347 Say Y here to support Intel Merrifield GPIO.
8bf02617 1348
c78c42d7
SKR
1349config GPIO_MLXBF
1350 tristate "Mellanox BlueField SoC GPIO"
cbe706b0 1351 depends on (MELLANOX_PLATFORM && ARM64 && ACPI) || (64BIT && COMPILE_TEST)
c78c42d7
SKR
1352 select GPIO_GENERIC
1353 help
1354 Say Y here if you want GPIO support on Mellanox BlueField SoC.
1355
92c33ef7
LW
1356config GPIO_ML_IOH
1357 tristate "OKI SEMICONDUCTOR ML7213 IOH GPIO support"
72aba2e2 1358 depends on X86 || COMPILE_TEST
92c33ef7
LW
1359 select GENERIC_IRQ_CHIP
1360 help
1361 ML7213 is companion chip for Intel Atom E6xx series.
1362 This driver can be used for OKI SEMICONDUCTOR ML7213 IOH(Input/Output
1363 Hub) which is for IVI(In-Vehicle Infotainment) use.
1364 This driver can access the IOH's GPIO device.
1365
04c17aa8 1366config GPIO_PCH
868fea05 1367 tristate "Intel EG20T PCH/LAPIS Semiconductor IOH(ML7223/ML7831) GPIO"
03744529 1368 depends on X86_32 || MIPS || COMPILE_TEST
38eb18a6 1369 select GENERIC_IRQ_CHIP
04c17aa8
TM
1370 help
1371 This driver is for PCH(Platform controller Hub) GPIO of Intel Topcliff
1372 which is an IOH(Input/Output Hub) for x86 embedded processor.
1373 This driver can access PCH GPIO device.
1374
868fea05
TM
1375 This driver also can be used for LAPIS Semiconductor IOH(Input/
1376 Output Hub), ML7223 and ML7831.
bc786cce 1377 ML7223 IOH is for MP(Media Phone) use.
868fea05
TM
1378 ML7831 IOH is for general purpose use.
1379 ML7223/ML7831 is companion chip for Intel Atom E6xx series.
1380 ML7223/ML7831 is completely compatible for Intel EG20T PCH.
bc786cce 1381
02e74fc0
WBG
1382config GPIO_PCI_IDIO_16
1383 tristate "ACCES PCI-IDIO-16 GPIO support"
1384 select GPIOLIB_IRQCHIP
1385 help
1386 Enables GPIO support for the ACCES PCI-IDIO-16. An interrupt is
1387 generated when any of the inputs change state (low to high or high to
1388 low). Input filter control is not supported by this driver, and the
1389 input filters are deactivated by this driver.
1390
58556204
WBG
1391config GPIO_PCIE_IDIO_24
1392 tristate "ACCES PCIe-IDIO-24 GPIO support"
1393 select GPIOLIB_IRQCHIP
1394 help
1395 Enables GPIO support for the ACCES PCIe-IDIO-24 family (PCIe-IDIO-24,
1396 PCIe-IDI-24, PCIe-IDO-24, PCIe-IDIO-12). An interrupt is generated
1397 when any of the inputs change state (low to high or high to low).
1398 Input filter control is not supported by this driver, and the input
1399 filters are deactivated by this driver.
1400
92c33ef7
LW
1401config GPIO_RDC321X
1402 tristate "RDC R-321x GPIO support"
92c33ef7
LW
1403 select MFD_CORE
1404 select MFD_RDC321X
49a36793 1405 help
92c33ef7
LW
1406 Support for the RDC R321x SoC GPIOs over southbridge
1407 PCI configuration space.
49a36793 1408
b43ab901
SAS
1409config GPIO_SODAVILLE
1410 bool "Intel Sodaville GPIO support"
03744529 1411 depends on X86 && OF
b43ab901
SAS
1412 select GPIO_GENERIC
1413 select GENERIC_IRQ_CHIP
1414 help
1415 Say Y here to support Intel Sodaville GPIO.
1416
177b0381 1417endmenu
35570ac6 1418
177b0381
LW
1419menu "SPI GPIO expanders"
1420 depends on SPI_MASTER
9956d02d 1421
a7ec2e7f
LW
1422config GPIO_74X164
1423 tristate "74x164 serial-in/parallel-out 8-bits shift register"
048c28c9 1424 depends on OF_GPIO
a7ec2e7f
LW
1425 help
1426 Driver for 74x164 compatible serial-in/parallel-out 8-outputs
1427 shift registers. This driver can be used to provide access
1428 to more gpio outputs.
a9c5fff5 1429
b2f68edf
LW
1430config GPIO_MAX3191X
1431 tristate "Maxim MAX3191x industrial serializer"
1432 select CRC8
1433 help
1434 GPIO driver for Maxim MAX31910, MAX31911, MAX31912, MAX31913,
1435 MAX31953 and MAX31963 industrial serializer, a daisy-chainable
1436 chip to make 8 digital 24V inputs available via SPI. Supports
1437 CRC checksums to guard against electromagnetic interference,
1438 as well as undervoltage and overtemperature detection.
1439
0c36ec31
JB
1440config GPIO_MAX7301
1441 tristate "Maxim MAX7301 GPIO expander"
e952805d 1442 select GPIO_MAX730X
0c36ec31 1443 help
e952805d 1444 GPIO driver for Maxim MAX7301 SPI-based GPIO expander.
0c36ec31 1445
1e5db006
RR
1446config GPIO_MC33880
1447 tristate "Freescale MC33880 high-side/low-side switch"
1e5db006
RR
1448 help
1449 SPI driver for Freescale MC33880 high-side/low-side switch.
1450 This provides GPIO interface supporting inputs and outputs.
1451
df6df93c
AD
1452config GPIO_PISOSR
1453 tristate "Generic parallel-in/serial-out shift register"
1454 help
1455 GPIO driver for SPI compatible parallel-in/serial-out shift
1456 registers. These are input only devices.
1457
5704520d
NH
1458config GPIO_XRA1403
1459 tristate "EXAR XRA1403 16-bit GPIO expander"
665dff99 1460 select REGMAP_SPI
5704520d
NH
1461 help
1462 GPIO driver for EXAR XRA1403 16-bit SPI-based GPIO expander.
1463
856ed97a
MB
1464config GPIO_MOXTET
1465 tristate "Turris Mox Moxtet bus GPIO expander"
1466 depends on MOXTET
1467 help
1468 Say yes here if you are building for the Turris Mox router.
1469 This is the driver needed for configuring the GPIOs via the Moxtet
1470 bus. For example the Mox module with SFP cage needs this driver
1471 so that phylink can use corresponding GPIOs.
1472
0963670a
LW
1473endmenu
1474
177b0381
LW
1475menu "USB GPIO expanders"
1476 depends on USB
9d5b72de
LP
1477
1478config GPIO_VIPERBOARD
1479 tristate "Viperboard GPIO a & b support"
03744529 1480 depends on MFD_VIPERBOARD
9d5b72de
LP
1481 help
1482 Say yes here to access the GPIO signals of Nano River
1483 Technologies Viperboard. There are two GPIO chips on the
1484 board: gpioa and gpiob.
c42e34c9
EWI
1485 See viperboard API specification and Nano
1486 River Tech's viperboard.h for detailed meaning
1487 of the module parameters.
9d5b72de 1488
177b0381 1489endmenu
6732127f 1490
6e4484ee
BG
1491config GPIO_MOCKUP
1492 tristate "GPIO Testing Driver"
6e4484ee
BG
1493 select IRQ_SIM
1494 help
1495 This enables GPIO Testing driver, which provides a way to test GPIO
1496 subsystem through sysfs(or char device) and debugfs. GPIO_SYSFS
1497 must be selected for this test.
1498 User could use it through the script in
1499 tools/testing/selftests/gpio/gpio-mockup.sh. Reference the usage in
1500 it.
1501
7444a72e 1502endif