1 # SPDX-License-Identifier: GPL-2.0-only
2 #
3 # GPIO infrastructure and drivers
4 #
5 
6 menuconfig GPIOLIB
7 	bool "GPIO Support"
8 	help
9 	  This enables GPIO support through the generic GPIO library.
10 	  You only need to enable this if you also want to enable
11 	  one or more of the GPIO drivers below.
12 
13 	  If unsure, say N.
14 
15 if GPIOLIB
16 
17 config GPIOLIB_FASTPATH_LIMIT
18 	int "Maximum number of GPIOs for fast path"
19 	range 32 512
20 	default 512
21 	help
22 	  This adjusts the point at which certain APIs will switch from
23 	  using a stack allocated buffer to a dynamically allocated buffer.
24 
25 	  You shouldn't need to change this unless you really need to
26 	  optimize either stack space or performance. Change this carefully
27 	  since setting an incorrect value could cause stack corruption.
28 
29 config OF_GPIO
30 	def_bool y
31 	depends on OF
32 	depends on HAS_IOMEM
33 
34 config GPIO_ACPI
35 	def_bool y
36 	depends on ACPI
37 
38 config GPIOLIB_IRQCHIP
39 	select IRQ_DOMAIN
40 	bool
41 
42 config OF_GPIO_MM_GPIOCHIP
43 	bool
44 	help
45 	  This adds support for the legacy 'struct of_mm_gpio_chip' interface
46 	  from PowerPC. Existing drivers using this interface need to select
47 	  this symbol, but new drivers should use the generic gpio-regmap
48 	  infrastructure instead.
49 
50 config 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.
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
58 	  slower.  The diagnostics help catch the type of setup errors
59 	  that are most common when setting up new platforms or boards.
60 
61 config GPIO_SYSFS
62 	bool "/sys/class/gpio/... (sysfs interface)" if EXPERT
63 	depends on SYSFS
64 	select GPIO_CDEV # We need to encourage the new ABI
65 	help
66 	  Say Y here to add the legacy sysfs interface for GPIOs.
67 
68 	  This ABI is deprecated. If you want to use GPIO from userspace,
69 	  use the character device /dev/gpiochipN with the appropriate
70 	  ioctl() operations instead.
71 
72 config GPIO_CDEV
73 	bool
74 	prompt "Character device (/dev/gpiochipN) support" if EXPERT
75 	default y
76 	help
77 	  Say Y here to add the character device /dev/gpiochipN interface
78 	  for GPIOs. The character device allows userspace to control GPIOs
79 	  using ioctl() operations.
80 
81 	  Only say N if you are sure that the GPIO character device is not
82 	  required.
83 
84 	  If unsure, say Y.
85 
86 config GPIO_CDEV_V1
87 	bool "Support GPIO ABI Version 1"
88 	default y
89 	depends on GPIO_CDEV
90 	help
91 	  Say Y here to support version 1 of the GPIO CDEV ABI.
92 
93 	  This ABI version is deprecated.
94 	  Please use the latest ABI for new developments.
95 
96 	  If unsure, say Y.
97 
98 config GPIO_GENERIC
99 	depends on HAS_IOMEM # Only for IOMEM drivers
100 	tristate
101 
102 config GPIO_REGMAP
103 	select REGMAP
104 	tristate
105 
106 config GPIO_SWNODE_UNDEFINED
107 	bool
108 	help
109 	  This adds a special place holder for software nodes to contain an
110 	  undefined GPIO reference, this is primarily used by SPI to allow a
111 	  list of GPIO chip selects to mark a certain chip select as being
112 	  controlled the SPI device's internal chip select mechanism and not
113 	  a GPIO.
114 
115 # put drivers in the right section, in alphabetical order
116 
117 # This symbol is selected by both I2C and SPI expanders
118 config GPIO_MAX730X
119 	tristate
120 
121 config GPIO_IDIO_16
122 	tristate
123 	select REGMAP_IRQ
124 	select GPIOLIB_IRQCHIP
125 	select GPIO_REGMAP
126 	help
127 	  Enables support for the idio-16 library functions. The idio-16 library
128 	  provides functions to facilitate communication with devices within the
129 	  ACCES IDIO-16 family such as the 104-IDIO-16 and the PCI-IDIO-16.
130 
131 	  If built as a module its name will be gpio-idio-16.
132 
133 menu "Memory mapped GPIO drivers"
134 	depends on HAS_IOMEM
135 
136 config GPIO_74XX_MMIO
137 	tristate "GPIO driver for 74xx-ICs with MMIO access"
138 	depends on OF_GPIO
139 	select GPIO_GENERIC
140 	help
141 	  Say yes here to support GPIO functionality for 74xx-compatible ICs
142 	  with MMIO access. Compatible models include:
143 	    1 bit:	741G125 (Input), 741G74 (Output)
144 	    2 bits:	742G125 (Input), 7474 (Output)
145 	    4 bits:	74125 (Input), 74175 (Output)
146 	    6 bits:	74365 (Input), 74174 (Output)
147 	    8 bits:	74244 (Input), 74273 (Output)
148 	    16 bits:	741624 (Input), 7416374 (Output)
149 
150 config GPIO_ALTERA
151 	tristate "Altera GPIO"
152 	depends on OF_GPIO
153 	select GPIOLIB_IRQCHIP
154 	select OF_GPIO_MM_GPIOCHIP
155 	help
156 	  Say Y or M here to build support for the Altera PIO device.
157 
158 	  If driver is built as a module it will be called gpio-altera.
159 
160 config GPIO_AMDPT
161 	tristate "AMD Promontory GPIO support"
162 	depends on ACPI
163 	select GPIO_GENERIC
164 	help
165 	  Driver for GPIO functionality on Promontory IOHub.
166 	  Requires ACPI ASL code to enumerate as a platform device.
167 
168 config GPIO_ASPEED
169 	tristate "Aspeed GPIO support"
170 	depends on (ARCH_ASPEED || COMPILE_TEST) && OF_GPIO
171 	select GPIOLIB_IRQCHIP
172 	help
173 	  Say Y here to support Aspeed AST2400 and AST2500 GPIO controllers.
174 
175 config GPIO_ASPEED_SGPIO
176 	bool "Aspeed SGPIO support"
177 	depends on (ARCH_ASPEED || COMPILE_TEST) && OF_GPIO
178 	select GPIO_GENERIC
179 	select GPIOLIB_IRQCHIP
180 	help
181 	  Say Y here to support Aspeed AST2500 SGPIO functionality.
182 
183 config GPIO_ATH79
184 	tristate "Atheros AR71XX/AR724X/AR913X GPIO support"
185 	default y if ATH79
186 	depends on ATH79 || COMPILE_TEST
187 	select GPIO_GENERIC
188 	select GPIOLIB_IRQCHIP
189 	help
190 	  Select this option to enable GPIO driver for
191 	  Atheros AR71XX/AR724X/AR913X SoC devices.
192 
193 config GPIO_RASPBERRYPI_EXP
194 	tristate "Raspberry Pi 3 GPIO Expander"
195 	default RASPBERRYPI_FIRMWARE
196 	depends on OF_GPIO
197 	# Make sure not 'y' when RASPBERRYPI_FIRMWARE is 'm'. This can only
198 	# happen when COMPILE_TEST=y, hence the added !RASPBERRYPI_FIRMWARE.
199 	depends on (ARCH_BCM2835 && RASPBERRYPI_FIRMWARE) || (COMPILE_TEST && !RASPBERRYPI_FIRMWARE)
200 	help
201 	  Turn on GPIO support for the expander on Raspberry Pi 3 boards, using
202 	  the firmware mailbox to communicate with VideoCore on BCM283x chips.
203 
204 config GPIO_BCM_KONA
205 	bool "Broadcom Kona GPIO"
206 	depends on ARCH_BCM_MOBILE || COMPILE_TEST
207 	help
208 	  Turn on GPIO support for Broadcom "Kona" chips.
209 
210 config GPIO_BCM_XGS_IPROC
211 	tristate "BRCM XGS iProc GPIO support"
212 	depends on OF_GPIO && (ARCH_BCM_IPROC || COMPILE_TEST)
213 	select GPIO_GENERIC
214 	select GPIOLIB_IRQCHIP
215 	default ARCH_BCM_IPROC
216 	help
217 	  Say yes here to enable GPIO support for Broadcom XGS iProc SoCs.
218 
219 config GPIO_BRCMSTB
220 	tristate "BRCMSTB GPIO support"
221 	default y if (ARCH_BRCMSTB || BMIPS_GENERIC)
222 	depends on OF_GPIO && (ARCH_BRCMSTB || ARCH_BCM2835 || BMIPS_GENERIC || COMPILE_TEST)
223 	select GPIO_GENERIC
224 	select IRQ_DOMAIN
225 	help
226 	  Say yes here to enable GPIO support for Broadcom STB (BCM7XXX) SoCs.
227 
228 config GPIO_CADENCE
229 	tristate "Cadence GPIO support"
230 	depends on OF_GPIO
231 	select GPIO_GENERIC
232 	select GPIOLIB_IRQCHIP
233 	help
234 	  Say yes here to enable support for Cadence GPIO controller.
235 
236 config GPIO_CLPS711X
237 	tristate "CLPS711X GPIO support"
238 	depends on ARCH_CLPS711X || COMPILE_TEST
239 	select GPIO_GENERIC
240 	help
241 	  Say yes here to support GPIO on CLPS711X SoCs.
242 
243 config GPIO_DAVINCI
244 	tristate "TI Davinci/Keystone GPIO support"
245 	default y if ARCH_DAVINCI
246 	depends on (ARM || ARM64) && (ARCH_DAVINCI || ARCH_KEYSTONE || ARCH_K3)
247 	help
248 	  Say yes here to enable GPIO support for TI Davinci/Keystone SoCs.
249 
250 config GPIO_DWAPB
251 	tristate "Synopsys DesignWare APB GPIO driver"
252 	select GPIO_GENERIC
253 	select GPIOLIB_IRQCHIP
254 	help
255 	  Say Y or M here to build support for the Synopsys DesignWare APB
256 	  GPIO block.
257 
258 config GPIO_EIC_SPRD
259 	tristate "Spreadtrum EIC support"
260 	depends on ARCH_SPRD || COMPILE_TEST
261 	depends on OF_GPIO
262 	select GPIOLIB_IRQCHIP
263 	help
264 	  Say yes here to support Spreadtrum EIC device.
265 
266 config GPIO_EM
267 	tristate "Emma Mobile GPIO"
268 	depends on (ARCH_EMEV2 || COMPILE_TEST) && OF_GPIO
269 	help
270 	  Say yes here to support GPIO on Renesas Emma Mobile SoCs.
271 
272 config GPIO_EN7523
273 	tristate "Airoha GPIO support"
274 	depends on ARCH_AIROHA
275 	default ARCH_AIROHA
276 	select GPIO_GENERIC
277 	select GPIOLIB_IRQCHIP
278 	help
279 	  Say Y or M here to support the GPIO controller block on the
280 	  Airoha EN7523 SoC. It supports two banks of 32 GPIOs.
281 
282 config GPIO_EP93XX
283 	def_bool y
284 	depends on ARCH_EP93XX
285 	select GPIO_GENERIC
286 	select GPIOLIB_IRQCHIP
287 
288 config GPIO_EXAR
289 	tristate "Support for GPIO pins on XR17V352/354/358"
290 	depends on SERIAL_8250_EXAR
291 	select REGMAP_MMIO
292 	help
293 	  Selecting this option will enable handling of GPIO pins present
294 	  on Exar XR17V352/354/358 chips.
295 
296 config GPIO_GE_FPGA
297 	bool "GE FPGA based GPIO"
298 	depends on GE_FPGA || COMPILE_TEST
299 	select GPIO_GENERIC
300 	help
301 	  Support for common GPIO functionality provided on some GE Single Board
302 	  Computers.
303 
304 	  This driver provides basic support (configure as input or output, read
305 	  and write pin state) for GPIO implemented in a number of GE single
306 	  board computers.
307 
308 config GPIO_FTGPIO010
309 	bool "Faraday FTGPIO010 GPIO"
310 	depends on OF_GPIO
311 	select GPIO_GENERIC
312 	select GPIOLIB_IRQCHIP
313 	default (ARCH_GEMINI || ARCH_MOXART)
314 	help
315 	  Support for common GPIOs from the Faraday FTGPIO010 IP core, found in
316 	  Cortina systems Gemini platforms, Moxa ART and others.
317 
318 config GPIO_GENERIC_PLATFORM
319 	tristate "Generic memory-mapped GPIO controller support (MMIO platform device)"
320 	select GPIO_GENERIC
321 	help
322 	  Say yes here to support basic platform_device memory-mapped GPIO controllers.
323 
324 config GPIO_GRANITERAPIDS
325 	tristate "Intel Granite Rapids-D vGPIO support"
326 	depends on X86 || COMPILE_TEST
327 	select GPIOLIB_IRQCHIP
328 	help
329 	  Select this to enable virtual GPIO support on platforms with the
330 	  following SoCs:
331 
332 	  - Intel Granite Rapids-D
333 
334 	  The driver enables basic GPIO functionality and implements interrupt
335 	  support. The virtual GPIO driver controls GPIO lines via a firmware
336 	  interface. The physical GPIO pins reside on device that is external
337 	  from the main SoC package, such as a BMC or a CPLD.
338 
339 	  To compile this driver as a module, choose M here: the module will
340 	  be called gpio-graniterapids.
341 
342 config GPIO_GRGPIO
343 	tristate "Aeroflex Gaisler GRGPIO support"
344 	depends on OF_GPIO
345 	select GPIO_GENERIC
346 	select IRQ_DOMAIN
347 	help
348 	  Select this to support Aeroflex Gaisler GRGPIO cores from the GRLIB
349 	  VHDL IP core library.
350 
351 config GPIO_HISI
352 	tristate "HiSilicon GPIO controller driver"
353 	depends on ARM64 || COMPILE_TEST
354 	select GPIO_GENERIC
355 	select GPIOLIB_IRQCHIP
356 	help
357 	  Say Y or M here to build support for the HiSilicon GPIO controller
358 	  driver GPIO block.
359 	  This GPIO controller supports double-edge interrupt and multi-core
360 	  concurrent access.
361 
362 config GPIO_HLWD
363 	tristate "Nintendo Wii (Hollywood) GPIO"
364 	depends on OF_GPIO
365 	select GPIO_GENERIC
366 	select GPIOLIB_IRQCHIP
367 	help
368 	  Select this to support the GPIO controller of the Nintendo Wii.
369 
370 	  If unsure, say N.
371 
372 config GPIO_ICH
373 	tristate "Intel ICH GPIO"
374 	depends on X86
375 	depends on LPC_ICH
376 	help
377 	  Say yes here to support the GPIO functionality of a number of Intel
378 	  ICH-based chipsets.  Currently supported devices: ICH6, ICH7, ICH8
379 	  ICH9, ICH10, Series 5/3400 (e.g. Ibex Peak), Series 6/C200 (e.g.
380 	  Cougar Point), NM10 (Tiger Point), and 3100 (Whitmore Lake).
381 
382 	  If unsure, say N.
383 
384 config GPIO_IMX_SCU
385        def_bool y
386        depends on IMX_SCU
387 
388 config GPIO_IXP4XX
389 	bool "Intel IXP4xx GPIO"
390 	depends on ARCH_IXP4XX
391 	depends on OF
392 	select GPIO_GENERIC
393 	select GPIOLIB_IRQCHIP
394 	select IRQ_DOMAIN_HIERARCHY
395 	help
396 	  Say yes here to support the GPIO functionality of a number of Intel
397 	  IXP4xx series of chips.
398 
399 	  If unsure, say N.
400 
401 config GPIO_LOGICVC
402 	tristate "Xylon LogiCVC GPIO support"
403 	depends on MFD_SYSCON && OF
404 	help
405 	  Say yes here to support GPIO functionality of the Xylon LogiCVC
406 	  programmable logic block.
407 
408 config GPIO_LOONGSON
409 	bool "Loongson-2/3 GPIO support"
410 	depends on CPU_LOONGSON2EF || CPU_LOONGSON64
411 	help
412 	  Driver for GPIO functionality on Loongson-2F/3A/3B processors.
413 
414 config GPIO_LOONGSON_64BIT
415 	tristate "Loongson 64 bit GPIO support"
416 	depends on LOONGARCH || COMPILE_TEST
417 	depends on OF_GPIO
418 	select GPIO_GENERIC
419 	help
420 	  Say yes here to support the GPIO functionality of a number of
421 	  Loongson series of chips. The Loongson GPIO controller supports
422 	  up to 60 GPIOS in total, 4 of which are dedicated GPIO pins, and
423 	  the remaining 56 are reused with other functions, with edge or
424 	  level triggered interrupts.
425 
426 config GPIO_LPC18XX
427 	tristate "NXP LPC18XX/43XX GPIO support"
428 	default y if ARCH_LPC18XX
429 	depends on OF_GPIO && (ARCH_LPC18XX || COMPILE_TEST)
430 	select IRQ_DOMAIN_HIERARCHY
431 	help
432 	  Select this option to enable GPIO driver for
433 	  NXP LPC18XX/43XX devices.
434 
435 config GPIO_LPC32XX
436 	tristate "NXP LPC32XX GPIO support"
437 	depends on OF_GPIO && (ARCH_LPC32XX || COMPILE_TEST)
438 	help
439 	  Select this option to enable GPIO driver for
440 	  NXP LPC32XX devices.
441 
442 config GPIO_MB86S7X
443 	tristate "GPIO support for Fujitsu MB86S7x Platforms"
444 	help
445 	  Say yes here to support the GPIO controller in Fujitsu MB86S70 SoCs.
446 
447 config GPIO_MENZ127
448 	tristate "MEN 16Z127 GPIO support"
449 	depends on MCB
450 	select GPIO_GENERIC
451 	help
452 	  Say yes here to support the MEN 16Z127 GPIO Controller.
453 
454 config GPIO_MM_LANTIQ
455 	bool "Lantiq Memory mapped GPIOs"
456 	depends on LANTIQ && SOC_XWAY
457 	select OF_GPIO_MM_GPIOCHIP
458 	help
459 	  This enables support for memory mapped GPIOs on the External Bus Unit
460 	  (EBU) found on Lantiq SoCs. The GPIOs are output only as they are
461 	  created by attaching a 16-bit latch to the bus.
462 
463 config GPIO_MPC5200
464 	def_bool y
465 	depends on PPC_MPC52xx
466 	select OF_GPIO_MM_GPIOCHIP
467 
468 config GPIO_MPC8XXX
469 	bool "MPC512x/MPC8xxx/QorIQ GPIO support"
470 	depends on PPC_MPC512x || PPC_MPC831x || PPC_MPC834x || PPC_MPC837x || \
471 		   FSL_SOC_BOOKE || PPC_86xx || ARCH_LAYERSCAPE || ARM || \
472 		   COMPILE_TEST
473 	select GPIO_GENERIC
474 	select IRQ_DOMAIN
475 	help
476 	  Say Y here if you're going to use hardware that connects to the
477 	  MPC512x/831x/834x/837x/8572/8610/QorIQ GPIOs.
478 
479 config GPIO_MT7621
480 	bool "Mediatek MT7621 GPIO Support"
481 	depends on SOC_MT7620 || SOC_MT7621 || COMPILE_TEST
482 	depends on OF_GPIO
483 	select GPIO_GENERIC
484 	select GPIOLIB_IRQCHIP
485 	help
486 	  Say yes here to support the Mediatek MT7621 SoC GPIO device.
487 
488 config GPIO_MVEBU
489 	def_bool y
490 	depends on PLAT_ORION || ARCH_MVEBU
491 	depends on OF_GPIO
492 	select GENERIC_IRQ_CHIP
493 	select REGMAP_MMIO
494 
495 config GPIO_MXC
496 	tristate "i.MX GPIO support"
497 	depends on ARCH_MXC || COMPILE_TEST
498 	select GPIO_GENERIC
499 	select GENERIC_IRQ_CHIP
500 
501 config GPIO_MXS
502 	bool "Freescale MXS GPIO support" if COMPILE_TEST
503 	depends on ARCH_MXS || COMPILE_TEST
504 	default y if ARCH_MXS
505 	select GPIO_GENERIC
506 	select GENERIC_IRQ_CHIP
507 
508 config GPIO_NOMADIK
509 	bool "Nomadik GPIO driver"
510 	depends on ARCH_U8500 || ARCH_NOMADIK || MACH_EYEQ5 || COMPILE_TEST
511 	select GPIOLIB_IRQCHIP
512 	help
513 	  Say yes here to support the Nomadik SoC GPIO block. This block is also
514 	  used by the Mobileye EyeQ5 SoC.
515 
516 	  It handles up to 32 GPIOs per bank, that can all be interrupt sources.
517 	  It is deeply interconnected with the associated pinctrl driver as GPIO
518 	  registers handle muxing ("alternate functions") as well.
519 
520 config GPIO_NPCM_SGPIO
521 	bool "Nuvoton SGPIO support"
522 	depends on ARCH_NPCM || COMPILE_TEST
523 	select GPIOLIB_IRQCHIP
524 	help
525 	  Say Y here to support Nuvoton NPCM7XX/NPCM8XX SGPIO functionality.
526 
527 config GPIO_OCTEON
528 	tristate "Cavium OCTEON GPIO"
529 	depends on CAVIUM_OCTEON_SOC
530 	default y
531 	help
532 	  Say yes here to support the on-chip GPIO lines on the OCTEON
533 	  family of SOCs.
534 
535 config GPIO_OMAP
536 	tristate "TI OMAP GPIO support" if ARCH_OMAP2PLUS || COMPILE_TEST
537 	default y if ARCH_OMAP
538 	depends on ARM
539 	select GENERIC_IRQ_CHIP
540 	select GPIOLIB_IRQCHIP
541 	help
542 	  Say yes here to enable GPIO support for TI OMAP SoCs.
543 
544 config GPIO_PL061
545 	tristate "PrimeCell PL061 GPIO support"
546 	depends on ARM_AMBA
547 	select IRQ_DOMAIN
548 	select GPIOLIB_IRQCHIP
549 	help
550 	  Say yes here to support the PrimeCell PL061 GPIO device.
551 
552 config GPIO_PXA
553 	bool "PXA GPIO support"
554 	depends on ARCH_PXA || ARCH_MMP || COMPILE_TEST
555 	help
556 	  Say yes here to support the PXA GPIO device.
557 
558 config GPIO_RCAR
559 	tristate "Renesas R-Car and RZ/G GPIO support"
560 	depends on ARCH_RENESAS || COMPILE_TEST
561 	select GPIOLIB_IRQCHIP
562 	help
563 	  Say yes here to support GPIO on Renesas R-Car or RZ/G SoCs.
564 
565 config GPIO_RDA
566 	bool "RDA Micro GPIO controller support"
567 	depends on ARCH_RDA || COMPILE_TEST
568 	depends on OF_GPIO
569 	select GPIO_GENERIC
570 	select GPIOLIB_IRQCHIP
571 	help
572 	  Say Y here to support RDA Micro GPIO controller.
573 
574 config GPIO_REALTEK_OTTO
575 	tristate "Realtek Otto GPIO support"
576 	depends on MACH_REALTEK_RTL
577 	default MACH_REALTEK_RTL
578 	select GPIO_GENERIC
579 	select GPIOLIB_IRQCHIP
580 	help
581 	  The GPIO controller on the Otto MIPS platform supports up to two
582 	  banks of 32 GPIOs, with edge triggered interrupts. The 32 GPIOs
583 	  are grouped in four 8-bit wide ports.
584 
585 	  When built as a module, the module will be called realtek_otto_gpio.
586 
587 config GPIO_REG
588 	bool
589 	help
590 	  A 32-bit single register GPIO fixed in/out implementation.  This
591 	  can be used to represent any register as a set of GPIO signals.
592 
593 config GPIO_ROCKCHIP
594 	tristate "Rockchip GPIO support"
595 	depends on ARCH_ROCKCHIP || COMPILE_TEST
596 	select GENERIC_IRQ_CHIP
597 	select GPIOLIB_IRQCHIP
598 	default ARCH_ROCKCHIP
599 	help
600 	  Say yes here to support GPIO on Rockchip SoCs.
601 
602 config GPIO_RTD
603 	tristate "Realtek DHC GPIO support"
604 	depends on ARCH_REALTEK
605 	default y
606 	select GPIOLIB_IRQCHIP
607 	help
608 	  This option enables support for GPIOs found on Realtek DHC(Digital
609 	  Home Center) SoCs family, including RTD1295, RTD1315E, RTD1319,
610 	  RTD1319D, RTD1395, RTD1619 and RTD1619B.
611 
612 	  Say yes here to support GPIO functionality and GPIO interrupt on
613 	  Realtek DHC SoCs.
614 
615 config GPIO_SAMA5D2_PIOBU
616 	tristate "SAMA5D2 PIOBU GPIO support"
617 	depends on MFD_SYSCON
618 	depends on OF_GPIO
619 	depends on ARCH_AT91 || COMPILE_TEST
620 	select GPIO_SYSCON
621 	help
622 	  Say yes here to use the PIOBU pins as GPIOs.
623 
624 	  PIOBU pins on the SAMA5D2 can be used as GPIOs.
625 	  The difference from regular GPIOs is that they
626 	  maintain their value during backup/self-refresh.
627 
628 config GPIO_SIFIVE
629 	tristate "SiFive GPIO support"
630 	depends on OF_GPIO
631 	select IRQ_DOMAIN_HIERARCHY
632 	select GPIO_GENERIC
633 	select GPIOLIB_IRQCHIP
634 	select REGMAP_MMIO
635 	help
636 	  Say yes here to support the GPIO device on SiFive SoCs.
637 
638 config GPIO_SIOX
639 	tristate "SIOX GPIO support"
640 	depends on SIOX
641 	select GPIOLIB_IRQCHIP
642 	help
643 	  Say yes here to support SIOX I/O devices. These are units connected
644 	  via a SIOX bus and have a number of fixed-direction I/O lines.
645 
646 config GPIO_SNPS_CREG
647 	bool "Synopsys GPIO via CREG (Control REGisters) driver"
648 	depends on ARC || COMPILE_TEST
649 	depends on OF_GPIO
650 	help
651 	  This driver supports GPIOs via CREG on various Synopsys SoCs.
652 	  This is a single-register MMIO GPIO driver for complex cases
653 	  where only several fields in register belong to GPIO lines and
654 	  each GPIO line owns a field with different length and on/off value.
655 
656 config GPIO_SPEAR_SPICS
657 	bool "ST SPEAr13xx SPI Chip Select as GPIO support"
658 	depends on PLAT_SPEAR
659 	select GENERIC_IRQ_CHIP
660 	help
661 	  Say yes here to support ST SPEAr SPI Chip Select as GPIO device.
662 
663 config GPIO_SPRD
664 	tristate "Spreadtrum GPIO support"
665 	depends on ARCH_SPRD || COMPILE_TEST
666 	depends on OF_GPIO
667 	select GPIOLIB_IRQCHIP
668 	help
669 	  Say yes here to support Spreadtrum GPIO device.
670 
671 config GPIO_STP_XWAY
672 	bool "XWAY STP GPIOs"
673 	depends on SOC_XWAY || COMPILE_TEST
674 	depends on OF_GPIO
675 	help
676 	  This enables support for the Serial To Parallel (STP) unit found on
677 	  XWAY SoC. The STP allows the SoC to drive a shift registers cascade,
678 	  that can be up to 24 bits. This peripheral is aimed at driving LEDs.
679 	  Some of the GPIOs/LEDs can be auto updated by the SoC with DSL and
680 	  phy status.
681 
682 config GPIO_SYSCON
683 	tristate "GPIO based on SYSCON"
684 	depends on MFD_SYSCON && OF
685 	help
686 	  Say yes here to support GPIO functionality though SYSCON driver.
687 
688 config GPIO_TANGIER
689 	tristate
690 	select GPIOLIB_IRQCHIP
691 	help
692 	  GPIO support for Intel Tangier and compatible platforms.
693 	  Currently supported:
694 	   - Elkhart Lake
695 	   - Merrifield
696 
697 	  If built as a module its name will be gpio-tangier.
698 
699 config GPIO_TB10X
700 	bool
701 	select GPIO_GENERIC
702 	select GENERIC_IRQ_CHIP
703 	select OF_GPIO
704 
705 config GPIO_TEGRA
706 	tristate "NVIDIA Tegra GPIO support"
707 	default ARCH_TEGRA
708 	depends on ARCH_TEGRA || COMPILE_TEST
709 	depends on OF_GPIO
710 	select GPIOLIB_IRQCHIP
711 	select IRQ_DOMAIN_HIERARCHY
712 	help
713 	  Say yes here to support GPIO pins on NVIDIA Tegra SoCs.
714 
715 config GPIO_TEGRA186
716 	tristate "NVIDIA Tegra186 GPIO support"
717 	default ARCH_TEGRA_186_SOC || ARCH_TEGRA_194_SOC
718 	depends on ARCH_TEGRA_186_SOC || ARCH_TEGRA_194_SOC || COMPILE_TEST
719 	depends on OF_GPIO
720 	select GPIOLIB_IRQCHIP
721 	select IRQ_DOMAIN_HIERARCHY
722 	help
723 	  Say yes here to support GPIO pins on NVIDIA Tegra186 SoCs.
724 
725 config GPIO_TS4800
726 	tristate "TS-4800 DIO blocks and compatibles"
727 	depends on OF_GPIO
728 	depends on SOC_IMX51 || COMPILE_TEST
729 	select GPIO_GENERIC
730 	help
731 	  This driver support TS-4800 FPGA GPIO controllers.
732 
733 config GPIO_THUNDERX
734 	tristate "Cavium ThunderX/OCTEON-TX GPIO"
735 	depends on ARCH_THUNDER || (64BIT && COMPILE_TEST)
736 	depends on PCI_MSI
737 	select GPIOLIB_IRQCHIP
738 	select IRQ_DOMAIN_HIERARCHY
739 	select IRQ_FASTEOI_HIERARCHY_HANDLERS
740 	help
741 	  Say yes here to support the on-chip GPIO lines on the ThunderX
742 	  and OCTEON-TX families of SoCs.
743 
744 config GPIO_UNIPHIER
745 	tristate "UniPhier GPIO support"
746 	depends on ARCH_UNIPHIER || COMPILE_TEST
747 	depends on OF_GPIO
748 	select IRQ_DOMAIN_HIERARCHY
749 	help
750 	  Say yes here to support UniPhier GPIOs.
751 
752 config GPIO_VF610
753 	bool "VF610 GPIO support"
754 	default y if SOC_VF610
755 	depends on ARCH_MXC || COMPILE_TEST
756 	select GPIOLIB_IRQCHIP
757 	help
758 	  Say yes here to support i.MX or Vybrid vf610 GPIOs.
759 
760 config GPIO_VISCONTI
761 	tristate "Toshiba Visconti GPIO support"
762 	depends on ARCH_VISCONTI || COMPILE_TEST
763 	depends on OF_GPIO
764 	select GPIOLIB_IRQCHIP
765 	select GPIO_GENERIC
766 	select IRQ_DOMAIN_HIERARCHY
767 	help
768 	  Say yes here to support GPIO on Tohisba Visconti.
769 
770 config GPIO_WCD934X
771 	tristate "Qualcomm Technologies Inc WCD9340/WCD9341 GPIO controller driver"
772 	depends on MFD_WCD934X && OF_GPIO
773 	help
774          This driver is to support GPIO block found on the Qualcomm Technologies
775 	 Inc WCD9340/WCD9341 Audio Codec.
776 
777 config GPIO_XGENE
778 	bool "APM X-Gene GPIO controller support"
779 	depends on ARM64 && OF_GPIO
780 	help
781 	  This driver is to support the GPIO block within the APM X-Gene SoC
782 	  platform's generic flash controller. The GPIO pins are muxed with
783 	  the generic flash controller's address and data pins. Say yes
784 	  here to enable the GFC GPIO functionality.
785 
786 config GPIO_XGENE_SB
787 	tristate "APM X-Gene GPIO standby controller support"
788 	depends on (ARCH_XGENE || COMPILE_TEST)
789 	select GPIO_GENERIC
790 	select GPIOLIB_IRQCHIP
791 	select IRQ_DOMAIN_HIERARCHY
792 	help
793 	  This driver supports the GPIO block within the APM X-Gene
794 	  Standby Domain. Say yes here to enable the GPIO functionality.
795 
796 config GPIO_XILINX
797 	tristate "Xilinx GPIO support"
798 	select GPIOLIB_IRQCHIP
799 	depends on OF_GPIO
800 	help
801 	  Say yes here to support the Xilinx FPGA GPIO device.
802 
803 config GPIO_XLP
804 	tristate "Cavium ThunderX2 GPIO support"
805 	depends on ARCH_THUNDER2 || COMPILE_TEST
806 	select GPIOLIB_IRQCHIP
807 	help
808 	  This driver provides support for GPIO interface on Cavium's ThunderX2
809 	  CN99XX SoCs (Originally from Netlogic XLP).
810 
811 	  If unsure, say N.
812 
813 config GPIO_XTENSA
814 	bool "Xtensa GPIO32 support"
815 	depends on XTENSA
816 	depends on HAVE_XTENSA_GPIO32
817 	depends on !SMP
818 	help
819 	  Say yes here to support the Xtensa internal GPIO32 IMPWIRE (input)
820 	  and EXPSTATE (output) ports.
821 
822 config GPIO_ZEVIO
823 	bool "LSI ZEVIO SoC memory mapped GPIOs"
824 	depends on ARM
825 	help
826 	  Say yes here to support the GPIO controller in LSI ZEVIO SoCs.
827 
828 config GPIO_ZYNQ
829 	tristate "Xilinx Zynq GPIO support"
830 	depends on ARCH_ZYNQ || ARCH_ZYNQMP
831 	select GPIOLIB_IRQCHIP
832 	help
833 	  Say yes here to support Xilinx Zynq GPIO controller.
834 
835 config GPIO_ZYNQMP_MODEPIN
836 	tristate "ZynqMP ps-mode pin GPIO configuration driver"
837 	depends on ZYNQMP_FIRMWARE
838 	default ZYNQMP_FIRMWARE
839 	help
840 	  Say yes here to support the ZynqMP ps-mode pin GPIO configuration
841 	  driver.
842 
843 	  This ps-mode pin GPIO driver is based on GPIO framework. PS_MODE
844 	  is 4-bits boot mode pins. It sets and gets the status of
845 	  the ps-mode pin. Every pin can be configured as input/output.
846 
847 config GPIO_LOONGSON1
848 	tristate "Loongson1 GPIO support"
849 	depends on MACH_LOONGSON32
850 	select GPIO_GENERIC
851 	help
852 	  Say Y or M here to support GPIO on Loongson1 SoCs.
853 
854 config GPIO_AMD_FCH
855 	tristate "GPIO support for AMD Fusion Controller Hub (G-series SOCs)"
856 	help
857 	  This option enables driver for GPIO on AMD's Fusion Controller Hub,
858 	  as found on G-series SOCs (e.g. GX-412TC).
859 
860 	  Note: This driver doesn't register itself automatically, as it
861 	  needs to be provided with platform-specific configuration.
862 	  (See e.g. CONFIG_PCENGINES_APU2.)
863 
864 config GPIO_MSC313
865 	bool "MStar MSC313 GPIO support"
866 	depends on ARCH_MSTARV7
867 	default ARCH_MSTARV7
868 	select GPIOLIB_IRQCHIP
869 	select IRQ_DOMAIN_HIERARCHY
870 	help
871 	  Say Y here to support the main GPIO block on MStar/SigmaStar
872 	  ARMv7-based SoCs.
873 
874 config GPIO_IDT3243X
875 	tristate "IDT 79RC3243X GPIO support"
876 	depends on MIKROTIK_RB532 || COMPILE_TEST
877 	select GPIO_GENERIC
878 	select GPIOLIB_IRQCHIP
879 	help
880 	  Select this option to enable GPIO driver for
881 	  IDT 79RC3243X-based devices like Mikrotik RB532.
882 
883 	  To compile this driver as a module, choose M here: the module will
884 	  be called gpio-idt3243x.
885 
886 endmenu
887 
888 menu "Port-mapped I/O GPIO drivers"
889 	depends on X86 && HAS_IOPORT # I/O space access
890 
891 config GPIO_VX855
892 	tristate "VIA VX855/VX875 GPIO"
893 	depends on PCI
894 	select MFD_CORE
895 	select MFD_VX855
896 	help
897 	  Support access to the VX855/VX875 GPIO lines through the GPIO library.
898 
899 	  This driver provides common support for accessing the device.
900 	  Additional drivers must be enabled in order to use the
901 	  functionality of the device.
902 
903 config GPIO_I8255
904 	tristate
905 	select GPIO_REGMAP
906 	help
907 	  Enables support for the i8255 interface library functions. The i8255
908 	  interface library provides functions to facilitate communication with
909 	  interfaces compatible with the venerable Intel 8255 Programmable
910 	  Peripheral Interface (PPI). The Intel 8255 PPI chip was first released
911 	  in the early 1970s but compatible interfaces are nowadays typically
912 	  found embedded in larger VLSI processing chips and FPGA components.
913 
914 	  If built as a module its name will be gpio-i8255.
915 
916 config GPIO_104_DIO_48E
917 	tristate "ACCES 104-DIO-48E GPIO support"
918 	depends on PC104
919 	select ISA_BUS_API
920 	select REGMAP_MMIO
921 	select REGMAP_IRQ
922 	select GPIOLIB_IRQCHIP
923 	select GPIO_I8255
924 	select I8254
925 	help
926 	  Enables GPIO support for the ACCES 104-DIO-48E series (104-DIO-48E,
927 	  104-DIO-24E). The base port addresses for the devices may be
928 	  configured via the base module parameter. The interrupt line numbers
929 	  for the devices may be configured via the irq module parameter.
930 
931 config GPIO_104_IDIO_16
932 	tristate "ACCES 104-IDIO-16 GPIO support"
933 	depends on PC104
934 	select ISA_BUS_API
935 	select REGMAP_MMIO
936 	select GPIO_IDIO_16
937 	help
938 	  Enables GPIO support for the ACCES 104-IDIO-16 family (104-IDIO-16,
939 	  104-IDIO-16E, 104-IDO-16, 104-IDIO-8, 104-IDIO-8E, 104-IDO-8). The
940 	  base port addresses for the devices may be configured via the base
941 	  module parameter. The interrupt line numbers for the devices may be
942 	  configured via the irq module parameter.
943 
944 config GPIO_104_IDI_48
945 	tristate "ACCES 104-IDI-48 GPIO support"
946 	depends on PC104
947 	select ISA_BUS_API
948 	select REGMAP_MMIO
949 	select REGMAP_IRQ
950 	select GPIOLIB_IRQCHIP
951 	select GPIO_REGMAP
952 	help
953 	  Enables GPIO support for the ACCES 104-IDI-48 family (104-IDI-48A,
954 	  104-IDI-48AC, 104-IDI-48B, 104-IDI-48BC). The base port addresses for
955 	  the devices may be configured via the base module parameter. The
956 	  interrupt line numbers for the devices may be configured via the irq
957 	  module parameter.
958 
959 config GPIO_F7188X
960 	tristate "Fintek and Nuvoton Super-I/O GPIO support"
961 	help
962 	  This option enables support for GPIOs found on Fintek Super-I/O
963 	  chips F71869, F71869A, F71882FG, F71889F and F81866.
964 	  As well as Nuvoton Super-I/O chip NCT6126D.
965 
966 	  To compile this driver as a module, choose M here: the module will
967 	  be called f7188x-gpio.
968 
969 config GPIO_GPIO_MM
970 	tristate "Diamond Systems GPIO-MM GPIO support"
971 	depends on PC104
972 	select ISA_BUS_API
973 	select REGMAP_MMIO
974 	select GPIO_I8255
975 	help
976 	  Enables GPIO support for the Diamond Systems GPIO-MM and GPIO-MM-12.
977 
978 	  The Diamond Systems GPIO-MM device features 48 lines of digital I/O
979 	  via the emulation of dual 82C55A PPI chips. This driver provides GPIO
980 	  support for these 48 channels of digital I/O.
981 
982 	  The base port addresses for the devices may be configured via the base
983 	  array module parameter.
984 
985 config GPIO_IT87
986 	tristate "IT87xx GPIO support"
987 	help
988 	  Say yes here to support GPIO functionality of IT87xx Super I/O chips.
989 
990 	  This driver is tested with ITE IT8728 and IT8732 Super I/O chips, and
991 	  supports the IT8761E, IT8613, IT8620E, and IT8628E Super I/O chips as
992 	  well.
993 
994 	  To compile this driver as a module, choose M here: the module will
995 	  be called gpio_it87.
996 
997 config GPIO_SCH
998 	tristate "Intel SCH/TunnelCreek/Centerton/Quark X1000 GPIO"
999 	depends on (X86 || COMPILE_TEST) && ACPI
1000 	depends on LPC_SCH
1001 	select GPIOLIB_IRQCHIP
1002 	help
1003 	  Say yes here to support GPIO interface on Intel Poulsbo SCH,
1004 	  Intel Tunnel Creek processor, Intel Centerton processor or
1005 	  Intel Quark X1000 SoC.
1006 
1007 	  The Intel SCH contains a total of 14 GPIO pins. Ten GPIOs are
1008 	  powered by the core power rail and are turned off during sleep
1009 	  modes (S3 and higher). The remaining four GPIOs are powered by
1010 	  the Intel SCH suspend power supply. These GPIOs remain
1011 	  active during S3. The suspend-powered GPIOs can be used to wake the
1012 	  system from the Suspend-to-RAM state.
1013 
1014 	  The Intel Tunnel Creek processor has 5 GPIOs powered by the
1015 	  core power rail and 9 from suspend power supply.
1016 
1017 	  The Intel Centerton processor has a total of 30 GPIO pins.
1018 	  Twenty-one are powered by the core power rail and 9 from the
1019 	  suspend power supply.
1020 
1021 	  The Intel Quark X1000 SoC has 2 GPIOs powered by the core
1022 	  power well and 6 from the suspend power well.
1023 
1024 config GPIO_SCH311X
1025 	tristate "SMSC SCH311x SuperI/O GPIO"
1026 	help
1027 	  Driver to enable the GPIOs found on SMSC SMSC SCH3112, SCH3114 and
1028 	  SCH3116 "Super I/O" chipsets.
1029 
1030 	  To compile this driver as a module, choose M here: the module will
1031 	  be called gpio-sch311x.
1032 
1033 config GPIO_TS5500
1034 	tristate "TS-5500 DIO blocks and compatibles"
1035 	depends on TS5500 || COMPILE_TEST
1036 	help
1037 	  This driver supports Digital I/O exposed by pin blocks found on some
1038 	  Technologic Systems platforms. It includes, but is not limited to, 3
1039 	  blocks of the TS-5500: DIO1, DIO2 and the LCD port, and the TS-5600
1040 	  LCD port.
1041 
1042 config GPIO_WINBOND
1043 	tristate "Winbond Super I/O GPIO support"
1044 	select ISA_BUS_API
1045 	help
1046 	  This option enables support for GPIOs found on Winbond Super I/O
1047 	  chips.
1048 	  Currently, only W83627UHG (also known as Nuvoton NCT6627UD) is
1049 	  supported.
1050 
1051 	  You will need to provide a module parameter "gpios", or a
1052 	  boot-time parameter "gpio_winbond.gpios" with a bitmask of GPIO
1053 	  ports to enable (bit 0 is GPIO1, bit 1 is GPIO2, etc.).
1054 
1055 	  To compile this driver as a module, choose M here: the module will
1056 	  be called gpio-winbond.
1057 
1058 config GPIO_WS16C48
1059 	tristate "WinSystems WS16C48 GPIO support"
1060 	select ISA_BUS_API
1061 	select REGMAP_IRQ
1062 	select REGMAP_MMIO
1063 	select GPIOLIB_IRQCHIP
1064 	select GPIO_REGMAP
1065 	help
1066 	  Enables GPIO support for the WinSystems WS16C48. The base port
1067 	  addresses for the devices may be configured via the base module
1068 	  parameter. The interrupt line numbers for the devices may be
1069 	  configured via the irq module parameter.
1070 
1071 endmenu
1072 
1073 menu "I2C GPIO expanders"
1074 	depends on I2C
1075 
1076 config GPIO_ADNP
1077 	tristate "Avionic Design N-bit GPIO expander"
1078 	depends on OF_GPIO
1079 	select GPIOLIB_IRQCHIP
1080 	help
1081 	  This option enables support for N GPIOs found on Avionic Design
1082 	  I2C GPIO expanders. The register space will be extended by powers
1083 	  of two, so the controller will need to accommodate for that. For
1084 	  example: if a controller provides 48 pins, 6 registers will be
1085 	  enough to represent all pins, but the driver will assume a
1086 	  register layout for 64 pins (8 registers).
1087 
1088 config GPIO_FXL6408
1089 	tristate "FXL6408 I2C GPIO expander"
1090 	select GPIO_REGMAP
1091 	select REGMAP_I2C
1092 	help
1093 	  GPIO driver for Fairchild Semiconductor FXL6408 GPIO expander.
1094 
1095 	  To compile this driver as a module, choose M here: the module will
1096 	  be called gpio-fxl6408.
1097 
1098 config GPIO_DS4520
1099 	tristate "DS4520 I2C GPIO expander"
1100 	select REGMAP_I2C
1101 	select GPIO_REGMAP
1102 	help
1103 	  GPIO driver for ADI DS4520 I2C-based GPIO expander.
1104 	  Say yes here to enable the GPIO driver for the ADI DS4520 chip.
1105 
1106 	  To compile this driver as a module, choose M here: the module will
1107 	  be called gpio-ds4520.
1108 
1109 config GPIO_GW_PLD
1110 	tristate "Gateworks PLD GPIO Expander"
1111 	depends on OF_GPIO
1112 	help
1113 	  Say yes here to provide access to the Gateworks I2C PLD GPIO
1114 	  Expander. This is used at least on the Cambria GW2358-4.
1115 
1116 config GPIO_MAX7300
1117 	tristate "Maxim MAX7300 GPIO expander"
1118 	select GPIO_MAX730X
1119 	help
1120 	  GPIO driver for Maxim MAX7300 I2C-based GPIO expander.
1121 
1122 config GPIO_MAX732X
1123 	tristate "MAX7319, MAX7320-7327 I2C Port Expanders"
1124 	help
1125 	  Say yes here to support the MAX7319, MAX7320-7327 series of I2C
1126 	  Port Expanders. Each IO port on these chips has a fixed role of
1127 	  Input (designated by 'I'), Push-Pull Output ('O'), or Open-Drain
1128 	  Input and Output (designed by 'P'). The combinations are listed
1129 	  below:
1130 
1131 	  8 bits:       max7319 (8I), max7320 (8O), max7321 (8P),
1132 	                max7322 (4I4O), max7323 (4P4O)
1133 
1134 	  16 bits:      max7324 (8I8O), max7325 (8P8O),
1135 	                max7326 (4I12O), max7327 (4P12O)
1136 
1137 	  Board setup code must specify the model to use, and the start
1138 	  number for these GPIOs.
1139 
1140 config GPIO_MAX732X_IRQ
1141 	bool "Interrupt controller support for MAX732x"
1142 	depends on GPIO_MAX732X=y
1143 	select GPIOLIB_IRQCHIP
1144 	help
1145 	  Say yes here to enable the max732x to be used as an interrupt
1146 	  controller. It requires the driver to be built in the kernel.
1147 
1148 config GPIO_PCA953X
1149 	tristate "PCA95[357]x, PCA9698, TCA64xx, and MAX7310 I/O ports"
1150 	select REGMAP_I2C
1151 	help
1152 	  Say yes here to provide access to several register-oriented
1153 	  SMBus I/O expanders, made mostly by NXP or TI.  Compatible
1154 	  models include:
1155 
1156 	  4 bits:       pca9536, pca9537
1157 
1158 	  8 bits:       max7310, max7315, pca6107, pca9534, pca9538, pca9554,
1159 	                pca9556, pca9557, pca9574, tca6408, tca9554, xra1202
1160 
1161 	  16 bits:      max7312, max7313, pca9535, pca9539, pca9555, pca9575,
1162 	                tca6416
1163 
1164 	  24 bits:      tca6424
1165 
1166 	  40 bits:      pca9505, pca9698
1167 
1168 config GPIO_PCA953X_IRQ
1169 	bool "Interrupt controller support for PCA953x"
1170 	depends on GPIO_PCA953X
1171 	select GPIOLIB_IRQCHIP
1172 	help
1173 	  Say yes here to enable the pca953x to be used as an interrupt
1174 	  controller.
1175 
1176 config GPIO_PCA9570
1177 	tristate "PCA9570 4-Bit I2C GPO expander"
1178 	help
1179 	  Say yes here to enable the GPO driver for the NXP PCA9570 chip.
1180 
1181 	  To compile this driver as a module, choose M here: the module will
1182 	  be called gpio-pca9570.
1183 
1184 config GPIO_PCF857X
1185 	tristate "PCF857x, PCA{85,96}7x, and MAX732[89] I2C GPIO expanders"
1186 	select GPIOLIB_IRQCHIP
1187 	select IRQ_DOMAIN
1188 	help
1189 	  Say yes here to provide access to most "quasi-bidirectional" I2C
1190 	  GPIO expanders used for additional digital outputs or inputs.
1191 	  Most of these parts are from NXP, though TI is a second source for
1192 	  some of them.  Compatible models include:
1193 
1194 	  8 bits:   pcf8574, pcf8574a, pca8574, pca8574a,
1195 	            pca9670, pca9672, pca9674, pca9674a,
1196 	            max7328, max7329
1197 
1198 	  16 bits:  pcf8575, pcf8575c, pca8575,
1199 	            pca9671, pca9673, pca9675
1200 
1201 	  Your board setup code will need to declare the expanders in
1202 	  use, and assign numbers to the GPIOs they expose.  Those GPIOs
1203 	  can then be used from drivers and other kernel code, just like
1204 	  other GPIOs, but only accessible from task contexts.
1205 
1206 	  This driver provides an in-kernel interface to those GPIOs using
1207 	  platform-neutral GPIO calls.
1208 
1209 config GPIO_TPIC2810
1210 	tristate "TPIC2810 8-Bit I2C GPO expander"
1211 	help
1212 	  Say yes here to enable the GPO driver for the TI TPIC2810 chip.
1213 
1214 	  To compile this driver as a module, choose M here: the module will
1215 	  be called gpio-tpic2810.
1216 
1217 config GPIO_TS4900
1218 	tristate "Technologic Systems FPGA I2C GPIO"
1219 	depends on SOC_IMX6 || COMPILE_TEST
1220 	select REGMAP_I2C
1221 	help
1222 	  Say yes here to enabled the GPIO driver for Technologic's FPGA core.
1223 	  Series supported include TS-4100, TS-4900, TS-7970 and TS-7990.
1224 
1225 endmenu
1226 
1227 menu "MFD GPIO expanders"
1228 
1229 config GPIO_ADP5520
1230 	tristate "GPIO Support for ADP5520 PMIC"
1231 	depends on PMIC_ADP5520
1232 	help
1233 	  This option enables support for on-chip GPIO found
1234 	  on Analog Devices ADP5520 PMICs.
1235 
1236 config GPIO_ADP5585
1237 	tristate "GPIO Support for ADP5585"
1238 	depends on MFD_ADP5585
1239 	help
1240 	  This option enables support for the GPIO function found in the Analog
1241 	  Devices ADP5585.
1242 
1243 config GPIO_ALTERA_A10SR
1244 	tristate "Altera Arria10 System Resource GPIO"
1245 	depends on MFD_ALTERA_A10SR
1246 	help
1247 	  Driver for Arria10 Development Kit GPIO expansion which
1248 	  includes reads of pushbuttons and DIP switches as well
1249 	  as writes to LEDs.
1250 
1251 config GPIO_ARIZONA
1252 	tristate "Wolfson Microelectronics Arizona class devices"
1253 	depends on MFD_ARIZONA
1254 	help
1255 	  Support for GPIOs on Wolfson Arizona class devices.
1256 
1257 config GPIO_BD71815
1258 	tristate "ROHM BD71815 PMIC GPIO support"
1259 	depends on MFD_ROHM_BD71828
1260 	help
1261 	  Support for GPO(s) on ROHM BD71815 PMIC. There are two GPOs
1262 	  available on the ROHM PMIC.
1263 
1264 	  This driver can also be built as a module. If so, the module
1265 	  will be called gpio-bd71815.
1266 
1267 config GPIO_BD71828
1268 	tristate "ROHM BD71828 GPIO support"
1269 	depends on MFD_ROHM_BD71828
1270 	help
1271 	  Support for GPIOs on ROHM BD71828 PMIC. There are three GPIOs
1272 	  available on the ROHM PMIC in total. The GPIOs are limited to
1273 	  outputs only and pins must be configured to GPIO outputs by
1274 	  OTP. Enable this only if you want to use these pins as outputs.
1275 
1276 	  This driver can also be built as a module. If so, the module
1277 	  will be called gpio-bd71828.
1278 
1279 config GPIO_BD9571MWV
1280 	tristate "ROHM BD9571 GPIO support"
1281 	depends on MFD_BD9571MWV
1282 	help
1283 	  Support for GPIOs on ROHM BD9571 PMIC. There are two GPIOs
1284 	  available on the ROHM PMIC in total, both of which can also
1285 	  generate interrupts.
1286 
1287 	  This driver can also be built as a module. If so, the module
1288 	  will be called gpio-bd9571mwv.
1289 
1290 config GPIO_CROS_EC
1291 	tristate "ChromeOS EC GPIO support"
1292 	depends on CROS_EC
1293 	help
1294 	  GPIO driver for the ChromeOS Embedded Controller (EC). GPIOs
1295 	  cannot be set unless the system is unlocked.
1296 
1297 	  This driver can also be built as a module. If so, the module
1298 	  will be called gpio-cros-ec.
1299 
1300 config GPIO_CRYSTAL_COVE
1301 	tristate "GPIO support for Crystal Cove PMIC"
1302 	depends on (X86 || COMPILE_TEST) && INTEL_SOC_PMIC
1303 	select GPIOLIB_IRQCHIP
1304 	help
1305 	  Support for GPIO pins on Crystal Cove PMIC.
1306 
1307 	  Say Yes if you have a Intel SoC-based tablet with Crystal Cove PMIC
1308 	  inside.
1309 
1310 	  This driver can also be built as a module. If so, the module will be
1311 	  called gpio-crystalcove.
1312 
1313 config GPIO_CS5535
1314 	tristate "AMD CS5535/CS5536 GPIO support"
1315 	depends on X86 || MIPS || COMPILE_TEST
1316 	depends on MFD_CS5535
1317 	help
1318 	  The AMD CS5535 and CS5536 southbridges support 28 GPIO pins that
1319 	  can be used for quite a number of things.  The CS5535/6 is found on
1320 	  AMD Geode and Lemote Yeeloong devices.
1321 
1322 	  If unsure, say N.
1323 
1324 config GPIO_DA9052
1325 	tristate "Dialog DA9052 GPIO"
1326 	depends on PMIC_DA9052
1327 	help
1328 	  Say yes here to enable the GPIO driver for the DA9052 chip.
1329 
1330 config GPIO_DA9055
1331 	tristate "Dialog Semiconductor DA9055 GPIO"
1332 	depends on MFD_DA9055
1333 	help
1334 	  Say yes here to enable the GPIO driver for the DA9055 chip.
1335 
1336 	  The Dialog DA9055 PMIC chip has 3 GPIO pins that can be
1337 	  be controlled by this driver.
1338 
1339 	  If driver is built as a module it will be called gpio-da9055.
1340 
1341 config GPIO_DLN2
1342 	tristate "Diolan DLN2 GPIO support"
1343 	depends on MFD_DLN2
1344 	select GPIOLIB_IRQCHIP
1345 
1346 	help
1347 	  Select this option to enable GPIO driver for the Diolan DLN2
1348 	  board.
1349 
1350 	  This driver can also be built as a module. If so, the module
1351 	  will be called gpio-dln2.
1352 
1353 config HTC_EGPIO
1354 	bool "HTC EGPIO support"
1355 	depends on ARM
1356 	help
1357 	  This driver supports the CPLD egpio chip present on
1358 	  several HTC phones.  It provides basic support for input
1359 	  pins, output pins, and IRQs.
1360 
1361 config GPIO_ELKHARTLAKE
1362 	tristate "Intel Elkhart Lake PSE GPIO support"
1363 	depends on X86 || COMPILE_TEST
1364 	select GPIO_TANGIER
1365 	help
1366 	  Select this option to enable GPIO support for Intel Elkhart Lake
1367 	  PSE GPIO IP.
1368 
1369 	  To compile this driver as a module, choose M here: the module will
1370 	  be called gpio-elkhartlake.
1371 
1372 config GPIO_JANZ_TTL
1373 	tristate "Janz VMOD-TTL Digital IO Module"
1374 	depends on MFD_JANZ_CMODIO
1375 	help
1376 	  This enables support for the Janz VMOD-TTL Digital IO module.
1377 	  This driver provides support for driving the pins in output
1378 	  mode only. Input mode is not supported.
1379 
1380 config GPIO_KEMPLD
1381 	tristate "Kontron ETX / COMexpress GPIO"
1382 	depends on MFD_KEMPLD
1383 	help
1384 	  This enables support for the PLD GPIO interface on some Kontron ETX
1385 	  and COMexpress (ETXexpress) modules.
1386 
1387 	  This driver can also be built as a module. If so, the module will be
1388 	  called gpio-kempld.
1389 
1390 config GPIO_LJCA
1391 	tristate "INTEL La Jolla Cove Adapter GPIO support"
1392 	depends on USB_LJCA
1393 	select GPIOLIB_IRQCHIP
1394 	default USB_LJCA
1395 	help
1396 	  Select this option to enable GPIO driver for the INTEL
1397 	  La Jolla Cove Adapter (LJCA) board.
1398 
1399 	  This driver can also be built as a module. If so, the module
1400 	  will be called gpio-ljca.
1401 
1402 config GPIO_LP3943
1403 	tristate "TI/National Semiconductor LP3943 GPIO expander"
1404 	depends on MFD_LP3943
1405 	help
1406 	  GPIO driver for LP3943 MFD.
1407 	  LP3943 can be used as a GPIO expander which provides up to 16 GPIOs.
1408 	  Open drain outputs are required for this usage.
1409 
1410 config GPIO_LP873X
1411 	tristate "TI LP873X GPO"
1412 	depends on MFD_TI_LP873X
1413 	help
1414 	  This driver supports the GPO on TI Lp873x PMICs. 2 GPOs are present
1415 	  on LP873X PMICs.
1416 
1417 	  This driver can also be built as a module. If so, the module will be
1418 	  called gpio-lp873x.
1419 
1420 config GPIO_LP87565
1421 	tristate "TI LP87565 GPIO"
1422 	depends on MFD_TI_LP87565
1423 	help
1424 	  This driver supports the GPIO on TI Lp873565 PMICs. 3 GPIOs are present
1425 	  on LP87565 PMICs.
1426 
1427 	  This driver can also be built as a module. If so, the module will be
1428 	  called gpio-lp87565.
1429 
1430 config GPIO_MADERA
1431 	tristate "Cirrus Logic Madera class codecs"
1432 	depends on PINCTRL_MADERA
1433 	help
1434 	  Support for GPIOs on Cirrus Logic Madera class codecs.
1435 
1436 config GPIO_MAX77620
1437 	tristate "GPIO support for PMIC MAX77620 and MAX20024"
1438 	depends on MFD_MAX77620
1439 	select GPIOLIB_IRQCHIP
1440 	help
1441 	  GPIO driver for MAX77620 and MAX20024 PMIC from Maxim Semiconductor.
1442 	  MAX77620 PMIC has 8 pins that can be configured as GPIOs. The
1443 	  driver also provides interrupt support for each of the GPIOs.
1444 	  Say yes here to enable the max77620 to be used as GPIO controller.
1445 
1446 config GPIO_MAX77650
1447 	tristate "Maxim MAX77650/77651 GPIO support"
1448 	depends on MFD_MAX77650
1449 	help
1450 	  GPIO driver for MAX77650/77651 PMIC from Maxim Semiconductor.
1451 	  These chips have a single pin that can be configured as GPIO.
1452 
1453 config GPIO_PALMAS
1454 	bool "TI PALMAS series PMICs GPIO"
1455 	depends on MFD_PALMAS
1456 	help
1457 	  Select this option to enable GPIO driver for the TI PALMAS
1458 	  series chip family.
1459 
1460 config GPIO_PMIC_EIC_SPRD
1461 	tristate "Spreadtrum PMIC EIC support"
1462 	depends on MFD_SC27XX_PMIC || COMPILE_TEST
1463 	depends on OF_GPIO
1464 	select GPIOLIB_IRQCHIP
1465 	help
1466 	  Say yes here to support Spreadtrum PMIC EIC device.
1467 
1468 config GPIO_RC5T583
1469 	bool "RICOH RC5T583 GPIO"
1470 	depends on MFD_RC5T583
1471 	help
1472 	  Select this option to enable GPIO driver for the Ricoh RC5T583
1473 	  chip family.
1474 	  This driver provides the support for driving/reading the GPIO pins
1475 	  of RC5T583 device through standard GPIO library.
1476 
1477 config GPIO_SL28CPLD
1478 	tristate "Kontron sl28cpld GPIO support"
1479 	depends on MFD_SL28CPLD || COMPILE_TEST
1480 	select GPIO_REGMAP
1481 	select GPIOLIB_IRQCHIP
1482 	select REGMAP_IRQ
1483 	help
1484 	  This enables support for the GPIOs found on the Kontron sl28 CPLD.
1485 
1486 	  This driver can also be built as a module. If so, the module will be
1487 	  called gpio-sl28cpld.
1488 
1489 config GPIO_STMPE
1490 	bool "STMPE GPIOs"
1491 	depends on MFD_STMPE
1492 	depends on OF_GPIO
1493 	select GPIOLIB_IRQCHIP
1494 	help
1495 	  This enables support for the GPIOs found on the STMPE I/O
1496 	  Expanders.
1497 
1498 config GPIO_TC3589X
1499 	bool "TC3589X GPIOs"
1500 	depends on MFD_TC3589X
1501 	depends on OF_GPIO
1502 	select GPIOLIB_IRQCHIP
1503 	help
1504 	  This enables support for the GPIOs found on the TC3589X
1505 	  I/O Expander.
1506 
1507 config GPIO_TIMBERDALE
1508 	bool "Support for timberdale GPIO IP"
1509 	depends on MFD_TIMBERDALE
1510 	help
1511 	Add support for the GPIO IP in the timberdale FPGA.
1512 
1513 config GPIO_TN48M_CPLD
1514 	tristate "Delta Networks TN48M switch CPLD GPIO driver"
1515 	depends on MFD_TN48M_CPLD
1516 	select GPIO_REGMAP
1517 	help
1518 	  This enables support for the GPIOs found on the Delta
1519 	  Networks TN48M switch Lattice CPLD. It provides 12 pins in total,
1520 	  they are input-only or output-only type.
1521 
1522 	  This driver can also be built as a module. If so, the
1523 	  module will be called gpio-tn48m.
1524 
1525 config GPIO_TPS65086
1526 	tristate "TI TPS65086 GPO"
1527 	depends on MFD_TPS65086
1528 	help
1529 	  This driver supports the GPO on TI TPS65086x PMICs.
1530 
1531 config GPIO_TPS65218
1532 	tristate "TPS65218 GPIO"
1533 	depends on MFD_TPS65218
1534 	help
1535 	  Select this option to enable GPIO driver for the TPS65218
1536 	  chip family.
1537 
1538 config GPIO_TPS65219
1539 	tristate "TPS65219 GPIO"
1540 	depends on MFD_TPS65219
1541 	default MFD_TPS65219
1542 	help
1543 	  Select this option to enable GPIO driver for the TPS65219 chip
1544 	  family.
1545 	  GPIO0 is statically configured as either input or output prior to
1546 	  Linux boot. It is used for MULTI_DEVICE_ENABLE function. This setting
1547 	  is statically configured by NVM. GPIO0 can't be used as a generic
1548 	  GPIO. It's either a GPO when MULTI_DEVICE_EN=0 or a GPI when
1549 	  MULTI_DEVICE_EN=1.
1550 
1551 	  This driver can also be built as a module. If so, the module will be
1552 	  called gpio_tps65219.
1553 
1554 config GPIO_TPS6586X
1555 	bool "TPS6586X GPIO"
1556 	depends on MFD_TPS6586X
1557 	help
1558 	  Select this option to enable GPIO driver for the TPS6586X
1559 	  chip family.
1560 
1561 config GPIO_TPS65910
1562 	bool "TPS65910 GPIO"
1563 	depends on MFD_TPS65910
1564 	help
1565 	  Select this option to enable GPIO driver for the TPS65910
1566 	  chip family.
1567 
1568 config GPIO_TPS65912
1569 	tristate "TI TPS65912 GPIO"
1570 	depends on MFD_TPS65912
1571 	help
1572 	  This driver supports TPS65912 GPIO chip.
1573 
1574 config GPIO_TPS68470
1575 	tristate "TPS68470 GPIO"
1576 	depends on INTEL_SKL_INT3472
1577 	help
1578 	  Select this option to enable GPIO driver for the TPS68470
1579 	  chip family.
1580 	  There are 7 GPIOs and few sensor-related GPIOs supported
1581 	  by the TPS68470. While the 7 GPIOs can be configured as
1582 	  input or output as appropriate, the sensor related GPIOs
1583 	  are "output only" GPIOs.
1584 
1585 config GPIO_TQMX86
1586 	tristate "TQ-Systems TQMx86 GPIO"
1587 	depends on MFD_TQMX86 || COMPILE_TEST
1588 	depends on HAS_IOPORT_MAP
1589 	select GPIOLIB_IRQCHIP
1590 	help
1591 	  This driver supports GPIO on the TQMX86 IO controller.
1592 
1593 config GPIO_TWL4030
1594 	tristate "TWL4030, TWL5030, and TPS659x0 GPIOs"
1595 	depends on TWL4030_CORE
1596 	help
1597 	  Say yes here to access the GPIO signals of various multi-function
1598 	  power management chips from Texas Instruments.
1599 
1600 config GPIO_TWL6040
1601 	tristate "TWL6040 GPO"
1602 	depends on TWL6040_CORE
1603 	help
1604 	  Say yes here to access the GPO signals of twl6040
1605 	  audio chip from Texas Instruments.
1606 
1607 config GPIO_WHISKEY_COVE
1608 	tristate "GPIO support for Whiskey Cove PMIC"
1609 	depends on (X86 || COMPILE_TEST) && INTEL_SOC_PMIC_BXTWC
1610 	select GPIOLIB_IRQCHIP
1611 	help
1612 	  Support for GPIO pins on Whiskey Cove PMIC.
1613 
1614 	  Say Yes if you have an Intel SoC-based tablet with Whiskey Cove PMIC
1615 	  inside.
1616 
1617 	  This driver can also be built as a module. If so, the module will be
1618 	  called gpio-wcove.
1619 
1620 config GPIO_WM831X
1621 	tristate "WM831x GPIOs"
1622 	depends on MFD_WM831X
1623 	help
1624 	  Say yes here to access the GPIO signals of WM831x power management
1625 	  chips from Wolfson Microelectronics.
1626 
1627 config GPIO_WM8350
1628 	tristate "WM8350 GPIOs"
1629 	depends on MFD_WM8350
1630 	help
1631 	  Say yes here to access the GPIO signals of WM8350 power management
1632 	  chips from Wolfson Microelectronics.
1633 
1634 config GPIO_WM8994
1635 	tristate "WM8994 GPIOs"
1636 	depends on MFD_WM8994
1637 	help
1638 	  Say yes here to access the GPIO signals of WM8994 audio hub
1639 	  CODECs from Wolfson Microelectronics.
1640 
1641 endmenu
1642 
1643 menu "PCI GPIO expanders"
1644 	depends on PCI
1645 
1646 config GPIO_AMD8111
1647 	tristate "AMD 8111 GPIO driver"
1648 	depends on X86 || COMPILE_TEST
1649 	depends on HAS_IOPORT_MAP
1650 	help
1651 	  The AMD 8111 southbridge contains 32 GPIO pins which can be used.
1652 
1653 	  Note that usually system firmware/ACPI handles GPIO pins on their
1654 	  own and users might easily break their systems with uncareful usage
1655 	  of this driver!
1656 
1657 	  If unsure, say N
1658 
1659 config GPIO_BT8XX
1660 	tristate "BT8XX GPIO abuser"
1661 	depends on VIDEO_BT848=n
1662 	help
1663 	  The BT8xx frame grabber chip has 24 GPIO pins that can be abused
1664 	  as a cheap PCI GPIO card.
1665 
1666 	  This chip can be found on Miro, Hauppauge and STB TV-cards.
1667 
1668 	  The card needs to be physically altered for using it as a
1669 	  GPIO card. For more information on how to build a GPIO card
1670 	  from a BT8xx TV card, see the documentation file at
1671 	  Documentation/driver-api/gpio/bt8xxgpio.rst
1672 
1673 	  If unsure, say N.
1674 
1675 config GPIO_MERRIFIELD
1676 	tristate "Intel Merrifield GPIO support"
1677 	depends on X86_INTEL_MID
1678 	select GPIO_TANGIER
1679 	help
1680 	  Say Y here to support Intel Merrifield GPIO.
1681 
1682 config GPIO_MLXBF
1683 	tristate "Mellanox BlueField SoC GPIO"
1684 	depends on (MELLANOX_PLATFORM && ARM64 && ACPI) || (64BIT && COMPILE_TEST)
1685 	select GPIO_GENERIC
1686 	help
1687 	  Say Y here if you want GPIO support on Mellanox BlueField SoC.
1688 
1689 config GPIO_MLXBF2
1690 	tristate "Mellanox BlueField 2 SoC GPIO"
1691 	depends on (MELLANOX_PLATFORM && ARM64 && ACPI) || (64BIT && COMPILE_TEST)
1692 	select GPIO_GENERIC
1693 	select GPIOLIB_IRQCHIP
1694 	help
1695 	  Say Y here if you want GPIO support on Mellanox BlueField 2 SoC.
1696 
1697 config GPIO_MLXBF3
1698 	tristate "Mellanox BlueField 3 SoC GPIO"
1699 	depends on (MELLANOX_PLATFORM && ARM64) || COMPILE_TEST
1700 	select GPIO_GENERIC
1701 	select GPIOLIB_IRQCHIP
1702 	help
1703 	  Say Y if you want GPIO support on Mellanox BlueField 3 SoC.
1704 	  This GPIO controller supports interrupt handling and enables the
1705 	  manipulation of certain GPIO pins.
1706 	  This controller should be used in parallel with pinctrl-mlxbf3 to
1707 	  control the desired GPIOs.
1708 	  This driver can also be built as a module called mlxbf3-gpio.
1709 
1710 config GPIO_ML_IOH
1711 	tristate "OKI SEMICONDUCTOR ML7213 IOH GPIO support"
1712 	depends on X86 || COMPILE_TEST
1713 	select GENERIC_IRQ_CHIP
1714 	help
1715 	  ML7213 is companion chip for Intel Atom E6xx series.
1716 	  This driver can be used for OKI SEMICONDUCTOR ML7213 IOH (Input/Output
1717 	  Hub) which is for IVI (In-Vehicle Infotainment) use.
1718 	  This driver can access the IOH's GPIO device.
1719 
1720 config GPIO_PCH
1721 	tristate "Intel EG20T PCH/LAPIS Semiconductor IOH (ML7223/ML7831) GPIO"
1722 	depends on X86_32 || MIPS || COMPILE_TEST
1723 	select GENERIC_IRQ_CHIP
1724 	help
1725 	  This driver is for PCH (Platform Controller Hub) GPIO of Intel Topcliff,
1726 	  which is an IOH (Input/Output Hub) for x86 embedded processor.
1727 	  This driver can access PCH GPIO device.
1728 
1729 	  This driver also can be used for LAPIS Semiconductor IOH (Input/
1730 	  Output Hub), ML7223 and ML7831.
1731 	  ML7223 IOH is for MP (Media Phone) use.
1732 	  ML7831 IOH is for general purpose use.
1733 	  ML7223/ML7831 is companion chip for Intel Atom E6xx series.
1734 	  ML7223/ML7831 is completely compatible for Intel EG20T PCH.
1735 
1736 config GPIO_PCI_IDIO_16
1737 	tristate "ACCES PCI-IDIO-16 GPIO support"
1738 	select REGMAP_MMIO
1739 	select GPIO_IDIO_16
1740 	help
1741 	  Enables GPIO support for the ACCES PCI-IDIO-16. An interrupt is
1742 	  generated when any of the inputs change state (low to high or high to
1743 	  low). Input filter control is not supported by this driver, and the
1744 	  input filters are deactivated by this driver.
1745 
1746 config GPIO_PCIE_IDIO_24
1747 	tristate "ACCES PCIe-IDIO-24 GPIO support"
1748 	select REGMAP_IRQ
1749 	select REGMAP_MMIO
1750 	select GPIOLIB_IRQCHIP
1751 	select GPIO_REGMAP
1752 	help
1753 	  Enables GPIO support for the ACCES PCIe-IDIO-24 family (PCIe-IDIO-24,
1754 	  PCIe-IDI-24, PCIe-IDO-24, PCIe-IDIO-12). An interrupt is generated
1755 	  when any of the inputs change state (low to high or high to low).
1756 	  Input filter control is not supported by this driver, and the input
1757 	  filters are deactivated by this driver.
1758 
1759 config GPIO_RDC321X
1760 	tristate "RDC R-321x GPIO support"
1761 	select MFD_CORE
1762 	select MFD_RDC321X
1763 	help
1764 	  Support for the RDC R321x SoC GPIOs over southbridge
1765 	  PCI configuration space.
1766 
1767 config GPIO_SODAVILLE
1768 	bool "Intel Sodaville GPIO support"
1769 	depends on X86 && OF
1770 	select GPIO_GENERIC
1771 	select GENERIC_IRQ_CHIP
1772 	help
1773 	  Say Y here to support Intel Sodaville GPIO.
1774 
1775 endmenu
1776 
1777 menu "SPI GPIO expanders"
1778 	depends on SPI_MASTER
1779 
1780 config GPIO_74X164
1781 	tristate "74x164 serial-in/parallel-out 8-bits shift register"
1782 	depends on OF_GPIO
1783 	help
1784 	  Driver for 74x164 compatible serial-in/parallel-out 8-outputs
1785 	  shift registers. This driver can be used to provide access
1786 	  to more GPIO outputs.
1787 
1788 config GPIO_MAX3191X
1789 	tristate "Maxim MAX3191x industrial serializer"
1790 	select CRC8
1791 	help
1792 	  GPIO driver for Maxim MAX31910, MAX31911, MAX31912, MAX31913,
1793 	  MAX31953 and MAX31963 industrial serializer, a daisy-chainable
1794 	  chip to make 8 digital 24V inputs available via SPI.  Supports
1795 	  CRC checksums to guard against electromagnetic interference,
1796 	  as well as undervoltage and overtemperature detection.
1797 
1798 config GPIO_MAX7301
1799 	tristate "Maxim MAX7301 GPIO expander"
1800 	select GPIO_MAX730X
1801 	help
1802 	  GPIO driver for Maxim MAX7301 SPI-based GPIO expander.
1803 
1804 config GPIO_MC33880
1805 	tristate "Freescale MC33880 high-side/low-side switch"
1806 	help
1807 	  SPI driver for Freescale MC33880 high-side/low-side switch.
1808 	  This provides GPIO interface supporting inputs and outputs.
1809 
1810 config GPIO_PISOSR
1811 	tristate "Generic parallel-in/serial-out shift register"
1812 	help
1813 	  GPIO driver for SPI compatible parallel-in/serial-out shift
1814 	  registers. These are input only devices.
1815 
1816 config GPIO_XRA1403
1817 	tristate "EXAR XRA1403 16-bit GPIO expander"
1818 	select REGMAP_SPI
1819 	help
1820 	  GPIO driver for EXAR XRA1403 16-bit SPI-based GPIO expander.
1821 
1822 config GPIO_MOXTET
1823 	tristate "Turris Mox Moxtet bus GPIO expander"
1824 	depends on MOXTET
1825 	help
1826 	  Say yes here if you are building for the Turris Mox router.
1827 	  This is the driver needed for configuring the GPIOs via the Moxtet
1828 	  bus. For example the Mox module with SFP cage needs this driver
1829 	  so that phylink can use corresponding GPIOs.
1830 
1831 endmenu
1832 
1833 menu "USB GPIO expanders"
1834 	depends on USB
1835 
1836 config GPIO_VIPERBOARD
1837 	tristate "Viperboard GPIO a & b support"
1838 	depends on MFD_VIPERBOARD
1839 	help
1840 	  Say yes here to access the GPIO signals of Nano River
1841 	  Technologies Viperboard. There are two GPIO chips on the
1842 	  board: gpioa and gpiob.
1843 	  See viperboard API specification and Nano
1844 	  River Tech's viperboard.h for detailed meaning
1845 	  of the module parameters.
1846 
1847 endmenu
1848 
1849 menu "Virtual GPIO drivers"
1850 
1851 config GPIO_AGGREGATOR
1852 	tristate "GPIO Aggregator"
1853 	help
1854 	  Say yes here to enable the GPIO Aggregator, which provides a way to
1855 	  aggregate existing GPIO lines into a new virtual GPIO chip.
1856 	  This can serve the following purposes:
1857 	    - Assign permissions for a collection of GPIO lines to a user,
1858 	    - Export a collection of GPIO lines to a virtual machine,
1859 	    - Provide a generic driver for a GPIO-operated device in an
1860 	      industrial control context, to be operated from userspace using
1861 	      the GPIO chardev interface.
1862 
1863 config GPIO_LATCH
1864 	tristate "GPIO latch driver"
1865 	help
1866 	  Say yes here to enable a driver for GPIO multiplexers based on latches
1867 	  connected to other GPIOs.
1868 
1869 config GPIO_MOCKUP
1870 	tristate "GPIO Testing Driver (DEPRECATED)"
1871 	select IRQ_SIM
1872 	help
1873 	  This module is DEPRECATED. Please consider using gpio-sim instead.
1874 
1875 	  This enables GPIO Testing driver, which provides a way to test GPIO
1876 	  subsystem through sysfs (or char device) and debugfs.
1877 	  User could use it through the script in
1878 	  tools/testing/selftests/gpio/gpio-mockup.sh. Reference the usage in
1879 	  it.
1880 
1881 config GPIO_VIRTIO
1882 	tristate "VirtIO GPIO support"
1883 	depends on VIRTIO
1884 	select GPIOLIB_IRQCHIP
1885 	help
1886 	  Say Y here to enable guest support for virtio-based GPIO controllers.
1887 
1888 	  These virtual GPIOs can be routed to real GPIOs or attached to
1889 	  simulators on the host (like QEMU).
1890 
1891 config GPIO_SIM
1892 	tristate "GPIO Simulator Module"
1893 	select IRQ_SIM
1894 	select CONFIGFS_FS
1895 	help
1896 	  This enables the GPIO simulator - a configfs-based GPIO testing
1897 	  driver.
1898 
1899 endmenu
1900 
1901 menu "GPIO Debugging utilities"
1902 
1903 config GPIO_SLOPPY_LOGIC_ANALYZER
1904 	tristate "Sloppy GPIO logic analyzer"
1905 	depends on (GPIOLIB || COMPILE_TEST) && CPUSETS && DEBUG_FS && EXPERT
1906 	help
1907 	  This option enables support for a sloppy logic analyzer using polled
1908 	  GPIOs. Use the 'tools/gpio/gpio-sloppy-logic-analyzer' script with
1909 	  this driver. The script will make it easier to use and will also
1910 	  isolate a CPU for the polling task. Note that this is a last resort
1911 	  analyzer which can be affected by latencies, non-deterministic code
1912 	  paths, or NMIs. However, for e.g. remote development, it may be useful
1913 	  to get a first view and aid further debugging.
1914 
1915 	  If this driver is built as a module it will be called
1916 	  'gpio-sloppy-logic-analyzer'.
1917 
1918 config GPIO_VIRTUSER
1919 	tristate "GPIO Virtual User Testing Module"
1920 	select DEBUG_FS
1921 	select CONFIGFS_FS
1922 	select IRQ_WORK
1923 	help
1924 	  Say Y here to enable the configurable, configfs-based virtual GPIO
1925 	  consumer testing driver.
1926 
1927 	  This driver is aimed as a helper in spotting any regressions in
1928 	  hot-unplug handling in GPIOLIB.
1929 
1930 endmenu
1931 
1932 endif
1933