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