Merge tag 'spi-fix-v5.9-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi
[sfrench/cifs-2.6.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 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_PCA9570
966         tristate "PCA9570 4-Bit I2C GPO expander"
967         help
968           Say yes here to enable the GPO driver for the NXP PCA9570 chip.
969
970           To compile this driver as a module, choose M here: the module will
971           be called gpio-pca9570.
972
973 config GPIO_PCF857X
974         tristate "PCF857x, PCA{85,96}7x, and MAX732[89] I2C GPIO expanders"
975         select GPIOLIB_IRQCHIP
976         select IRQ_DOMAIN
977         help
978           Say yes here to provide access to most "quasi-bidirectional" I2C
979           GPIO expanders used for additional digital outputs or inputs.
980           Most of these parts are from NXP, though TI is a second source for
981           some of them.  Compatible models include:
982
983           8 bits:   pcf8574, pcf8574a, pca8574, pca8574a,
984                     pca9670, pca9672, pca9674, pca9674a,
985                     max7328, max7329
986
987           16 bits:  pcf8575, pcf8575c, pca8575,
988                     pca9671, pca9673, pca9675
989
990           Your board setup code will need to declare the expanders in
991           use, and assign numbers to the GPIOs they expose.  Those GPIOs
992           can then be used from drivers and other kernel code, just like
993           other GPIOs, but only accessible from task contexts.
994
995           This driver provides an in-kernel interface to those GPIOs using
996           platform-neutral GPIO calls.
997
998 config GPIO_TPIC2810
999         tristate "TPIC2810 8-Bit I2C GPO expander"
1000         help
1001           Say yes here to enable the GPO driver for the TI TPIC2810 chip.
1002
1003           To compile this driver as a module, choose M here: the module will
1004           be called gpio-tpic2810.
1005
1006 config GPIO_TS4900
1007         tristate "Technologic Systems FPGA I2C GPIO"
1008         depends on SOC_IMX6 || COMPILE_TEST
1009         select REGMAP_I2C
1010         help
1011           Say yes here to enabled the GPIO driver for Technologic's FPGA core.
1012           Series supported include TS-4100, TS-4900, TS-7970 and TS-7990.
1013
1014 endmenu
1015
1016 menu "MFD GPIO expanders"
1017
1018 config GPIO_ADP5520
1019         tristate "GPIO Support for ADP5520 PMIC"
1020         depends on PMIC_ADP5520
1021         help
1022           This option enables support for on-chip GPIO found
1023           on Analog Devices ADP5520 PMICs.
1024
1025 config GPIO_ALTERA_A10SR
1026         tristate "Altera Arria10 System Resource GPIO"
1027         depends on MFD_ALTERA_A10SR
1028         help
1029           Driver for Arria10 Development Kit GPIO expansion which
1030           includes reads of pushbuttons and DIP switches as well
1031           as writes to LEDs.
1032
1033 config GPIO_ARIZONA
1034         tristate "Wolfson Microelectronics Arizona class devices"
1035         depends on MFD_ARIZONA
1036         help
1037           Support for GPIOs on Wolfson Arizona class devices.
1038
1039 config GPIO_BD70528
1040         tristate "ROHM BD70528 GPIO support"
1041         depends on MFD_ROHM_BD70528
1042         help
1043           Support for GPIOs on ROHM BD70528 PMIC. There are four GPIOs
1044           available on the ROHM PMIC in total. The GPIOs can also
1045           generate interrupts.
1046
1047           This driver can also be built as a module. If so, the module
1048           will be called gpio-bd70528.
1049
1050 config GPIO_BD71828
1051         tristate "ROHM BD71828 GPIO support"
1052         depends on MFD_ROHM_BD71828
1053         help
1054           Support for GPIOs on ROHM BD71828 PMIC. There are three GPIOs
1055           available on the ROHM PMIC in total. The GPIOs are limited to
1056           outputs only and pins must be configured to GPIO outputs by
1057           OTP. Enable this only if you want to use these pins as outputs.
1058
1059           This driver can also be built as a module. If so, the module
1060           will be called gpio-bd71828.
1061
1062 config GPIO_BD9571MWV
1063         tristate "ROHM BD9571 GPIO support"
1064         depends on MFD_BD9571MWV
1065         help
1066           Support for GPIOs on ROHM BD9571 PMIC. There are two GPIOs
1067           available on the ROHM PMIC in total, both of which can also
1068           generate interrupts.
1069
1070           This driver can also be built as a module. If so, the module
1071           will be called gpio-bd9571mwv.
1072
1073 config GPIO_CRYSTAL_COVE
1074         tristate "GPIO support for Crystal Cove PMIC"
1075         depends on (X86 || COMPILE_TEST) && INTEL_SOC_PMIC
1076         select GPIOLIB_IRQCHIP
1077         help
1078           Support for GPIO pins on Crystal Cove PMIC.
1079
1080           Say Yes if you have a Intel SoC based tablet with Crystal Cove PMIC
1081           inside.
1082
1083           This driver can also be built as a module. If so, the module will be
1084           called gpio-crystalcove.
1085
1086 config GPIO_CS5535
1087         tristate "AMD CS5535/CS5536 GPIO support"
1088         depends on X86 || MIPS || COMPILE_TEST
1089         depends on MFD_CS5535
1090         help
1091           The AMD CS5535 and CS5536 southbridges support 28 GPIO pins that
1092           can be used for quite a number of things.  The CS5535/6 is found on
1093           AMD Geode and Lemote Yeeloong devices.
1094
1095           If unsure, say N.
1096
1097 config GPIO_DA9052
1098         tristate "Dialog DA9052 GPIO"
1099         depends on PMIC_DA9052
1100         help
1101           Say yes here to enable the GPIO driver for the DA9052 chip.
1102
1103 config GPIO_DA9055
1104         tristate "Dialog Semiconductor DA9055 GPIO"
1105         depends on MFD_DA9055
1106         help
1107           Say yes here to enable the GPIO driver for the DA9055 chip.
1108
1109           The Dialog DA9055 PMIC chip has 3 GPIO pins that can be
1110           be controller by this driver.
1111
1112           If driver is built as a module it will be called gpio-da9055.
1113
1114 config GPIO_DLN2
1115         tristate "Diolan DLN2 GPIO support"
1116         depends on MFD_DLN2
1117         select GPIOLIB_IRQCHIP
1118
1119         help
1120           Select this option to enable GPIO driver for the Diolan DLN2
1121           board.
1122
1123           This driver can also be built as a module. If so, the module
1124           will be called gpio-dln2.
1125
1126 config HTC_EGPIO
1127         bool "HTC EGPIO support"
1128         depends on ARM
1129         help
1130           This driver supports the CPLD egpio chip present on
1131           several HTC phones.  It provides basic support for input
1132           pins, output pins, and irqs.
1133
1134 config GPIO_JANZ_TTL
1135         tristate "Janz VMOD-TTL Digital IO Module"
1136         depends on MFD_JANZ_CMODIO
1137         help
1138           This enables support for the Janz VMOD-TTL Digital IO module.
1139           This driver provides support for driving the pins in output
1140           mode only. Input mode is not supported.
1141
1142 config GPIO_KEMPLD
1143         tristate "Kontron ETX / COMexpress GPIO"
1144         depends on MFD_KEMPLD
1145         help
1146           This enables support for the PLD GPIO interface on some Kontron ETX
1147           and COMexpress (ETXexpress) modules.
1148
1149           This driver can also be built as a module. If so, the module will be
1150           called gpio-kempld.
1151
1152 config GPIO_LP3943
1153         tristate "TI/National Semiconductor LP3943 GPIO expander"
1154         depends on MFD_LP3943
1155         help
1156           GPIO driver for LP3943 MFD.
1157           LP3943 can be used as a GPIO expander which provides up to 16 GPIOs.
1158           Open drain outputs are required for this usage.
1159
1160 config GPIO_LP873X
1161         tristate "TI LP873X GPO"
1162         depends on MFD_TI_LP873X
1163         help
1164           This driver supports the GPO on TI Lp873x PMICs. 2 GPOs are present
1165           on LP873X PMICs.
1166
1167           This driver can also be built as a module. If so, the module will be
1168           called gpio-lp873x.
1169
1170 config GPIO_LP87565
1171         tristate "TI LP87565 GPIO"
1172         depends on MFD_TI_LP87565
1173         help
1174           This driver supports the GPIO on TI Lp873565 PMICs. 3 GPIOs are present
1175           on LP87565 PMICs.
1176
1177           This driver can also be built as a module. If so, the module will be
1178           called gpio-lp87565.
1179
1180 config GPIO_MADERA
1181         tristate "Cirrus Logic Madera class codecs"
1182         depends on PINCTRL_MADERA
1183         help
1184           Support for GPIOs on Cirrus Logic Madera class codecs.
1185
1186 config GPIO_MAX77620
1187         tristate "GPIO support for PMIC MAX77620 and MAX20024"
1188         depends on MFD_MAX77620
1189         select GPIOLIB_IRQCHIP
1190         help
1191           GPIO driver for MAX77620 and MAX20024 PMIC from Maxim Semiconductor.
1192           MAX77620 PMIC has 8 pins that can be configured as GPIOs. The
1193           driver also provides interrupt support for each of the gpios.
1194           Say yes here to enable the max77620 to be used as gpio controller.
1195
1196 config GPIO_MAX77650
1197         tristate "Maxim MAX77650/77651 GPIO support"
1198         depends on MFD_MAX77650
1199         help
1200           GPIO driver for MAX77650/77651 PMIC from Maxim Semiconductor.
1201           These chips have a single pin that can be configured as GPIO.
1202
1203 config GPIO_MSIC
1204         bool "Intel MSIC mixed signal gpio support"
1205         depends on (X86 || COMPILE_TEST) && MFD_INTEL_MSIC
1206         help
1207           Enable support for GPIO on intel MSIC controllers found in
1208           intel MID devices
1209
1210 config GPIO_PALMAS
1211         bool "TI PALMAS series PMICs GPIO"
1212         depends on MFD_PALMAS
1213         help
1214           Select this option to enable GPIO driver for the TI PALMAS
1215           series chip family.
1216
1217 config GPIO_RC5T583
1218         bool "RICOH RC5T583 GPIO"
1219         depends on MFD_RC5T583
1220         help
1221           Select this option to enable GPIO driver for the Ricoh RC5T583
1222           chip family.
1223           This driver provides the support for driving/reading the gpio pins
1224           of RC5T583 device through standard gpio library.
1225
1226 config GPIO_STMPE
1227         bool "STMPE GPIOs"
1228         depends on MFD_STMPE
1229         depends on OF_GPIO
1230         select GPIOLIB_IRQCHIP
1231         help
1232           This enables support for the GPIOs found on the STMPE I/O
1233           Expanders.
1234
1235 config GPIO_TC3589X
1236         bool "TC3589X GPIOs"
1237         depends on MFD_TC3589X
1238         depends on OF_GPIO
1239         select GPIOLIB_IRQCHIP
1240         help
1241           This enables support for the GPIOs found on the TC3589X
1242           I/O Expander.
1243
1244 config GPIO_TIMBERDALE
1245         bool "Support for timberdale GPIO IP"
1246         depends on MFD_TIMBERDALE
1247         help
1248         Add support for the GPIO IP in the timberdale FPGA.
1249
1250 config GPIO_TPS65086
1251         tristate "TI TPS65086 GPO"
1252         depends on MFD_TPS65086
1253         help
1254           This driver supports the GPO on TI TPS65086x PMICs.
1255
1256 config GPIO_TPS65218
1257         tristate "TPS65218 GPIO"
1258         depends on MFD_TPS65218
1259         help
1260           Select this option to enable GPIO driver for the TPS65218
1261           chip family.
1262
1263 config GPIO_TPS6586X
1264         bool "TPS6586X GPIO"
1265         depends on MFD_TPS6586X
1266         help
1267           Select this option to enable GPIO driver for the TPS6586X
1268           chip family.
1269
1270 config GPIO_TPS65910
1271         bool "TPS65910 GPIO"
1272         depends on MFD_TPS65910
1273         help
1274           Select this option to enable GPIO driver for the TPS65910
1275           chip family.
1276
1277 config GPIO_TPS65912
1278         tristate "TI TPS65912 GPIO"
1279         depends on MFD_TPS65912
1280         help
1281           This driver supports TPS65912 gpio chip
1282
1283 config GPIO_TPS68470
1284         bool "TPS68470 GPIO"
1285         depends on MFD_TPS68470
1286         help
1287           Select this option to enable GPIO driver for the TPS68470
1288           chip family.
1289           There are 7 GPIOs and few sensor related GPIOs supported
1290           by the TPS68470. While the 7 GPIOs can be configured as
1291           input or output as appropriate, the sensor related GPIOs
1292           are "output only" GPIOs.
1293
1294           This driver config is bool, as the GPIO functionality
1295           of the TPS68470 must be available before dependent
1296           drivers are loaded.
1297
1298 config GPIO_TQMX86
1299         tristate "TQ-Systems QTMX86 GPIO"
1300         depends on MFD_TQMX86 || COMPILE_TEST
1301         select GPIOLIB_IRQCHIP
1302         help
1303           This driver supports GPIO on the TQMX86 IO controller.
1304
1305 config GPIO_TWL4030
1306         tristate "TWL4030, TWL5030, and TPS659x0 GPIOs"
1307         depends on TWL4030_CORE
1308         help
1309           Say yes here to access the GPIO signals of various multi-function
1310           power management chips from Texas Instruments.
1311
1312 config GPIO_TWL6040
1313         tristate "TWL6040 GPO"
1314         depends on TWL6040_CORE
1315         help
1316           Say yes here to access the GPO signals of twl6040
1317           audio chip from Texas Instruments.
1318
1319 config GPIO_UCB1400
1320         tristate "Philips UCB1400 GPIO"
1321         depends on UCB1400_CORE
1322         help
1323           This enables support for the Philips UCB1400 GPIO pins.
1324           The UCB1400 is an AC97 audio codec.
1325
1326 config GPIO_WHISKEY_COVE
1327         tristate "GPIO support for Whiskey Cove PMIC"
1328         depends on (X86 || COMPILE_TEST) && INTEL_SOC_PMIC_BXTWC
1329         select GPIOLIB_IRQCHIP
1330         help
1331           Support for GPIO pins on Whiskey Cove PMIC.
1332
1333           Say Yes if you have a Intel SoC based tablet with Whiskey Cove PMIC
1334           inside.
1335
1336           This driver can also be built as a module. If so, the module will be
1337           called gpio-wcove.
1338
1339 config GPIO_WM831X
1340         tristate "WM831x GPIOs"
1341         depends on MFD_WM831X
1342         help
1343           Say yes here to access the GPIO signals of WM831x power management
1344           chips from Wolfson Microelectronics.
1345
1346 config GPIO_WM8350
1347         tristate "WM8350 GPIOs"
1348         depends on MFD_WM8350
1349         help
1350           Say yes here to access the GPIO signals of WM8350 power management
1351           chips from Wolfson Microelectronics.
1352
1353 config GPIO_WM8994
1354         tristate "WM8994 GPIOs"
1355         depends on MFD_WM8994
1356         help
1357           Say yes here to access the GPIO signals of WM8994 audio hub
1358           CODECs from Wolfson Microelectronics.
1359
1360 endmenu
1361
1362 menu "PCI GPIO expanders"
1363         depends on PCI
1364
1365 config GPIO_AMD8111
1366         tristate "AMD 8111 GPIO driver"
1367         depends on X86 || COMPILE_TEST
1368         help
1369           The AMD 8111 south bridge contains 32 GPIO pins which can be used.
1370
1371           Note, that usually system firmware/ACPI handles GPIO pins on their
1372           own and users might easily break their systems with uncarefull usage
1373           of this driver!
1374
1375           If unsure, say N
1376
1377 config GPIO_BT8XX
1378         tristate "BT8XX GPIO abuser"
1379         depends on VIDEO_BT848=n
1380         help
1381           The BT8xx frame grabber chip has 24 GPIO pins that can be abused
1382           as a cheap PCI GPIO card.
1383
1384           This chip can be found on Miro, Hauppauge and STB TV-cards.
1385
1386           The card needs to be physically altered for using it as a
1387           GPIO card. For more information on how to build a GPIO card
1388           from a BT8xx TV card, see the documentation file at
1389           Documentation/driver-api/gpio/bt8xxgpio.rst
1390
1391           If unsure, say N.
1392
1393 config GPIO_INTEL_MID
1394         bool "Intel MID GPIO support"
1395         depends on X86_INTEL_MID
1396         select GPIOLIB_IRQCHIP
1397         help
1398           Say Y here to support Intel MID GPIO.
1399
1400 config GPIO_MERRIFIELD
1401         tristate "Intel Merrifield GPIO support"
1402         depends on X86_INTEL_MID
1403         select GPIOLIB_IRQCHIP
1404         help
1405           Say Y here to support Intel Merrifield GPIO.
1406
1407 config GPIO_MLXBF
1408         tristate "Mellanox BlueField SoC GPIO"
1409         depends on (MELLANOX_PLATFORM && ARM64 && ACPI) || (64BIT && COMPILE_TEST)
1410         select GPIO_GENERIC
1411         help
1412           Say Y here if you want GPIO support on Mellanox BlueField SoC.
1413
1414 config GPIO_MLXBF2
1415         tristate "Mellanox BlueField 2 SoC GPIO"
1416         depends on (MELLANOX_PLATFORM && ARM64 && ACPI) || (64BIT && COMPILE_TEST)
1417         select GPIO_GENERIC
1418         help
1419           Say Y here if you want GPIO support on Mellanox BlueField 2 SoC.
1420
1421 config GPIO_ML_IOH
1422         tristate "OKI SEMICONDUCTOR ML7213 IOH GPIO support"
1423         depends on X86 || COMPILE_TEST
1424         select GENERIC_IRQ_CHIP
1425         help
1426           ML7213 is companion chip for Intel Atom E6xx series.
1427           This driver can be used for OKI SEMICONDUCTOR ML7213 IOH(Input/Output
1428           Hub) which is for IVI(In-Vehicle Infotainment) use.
1429           This driver can access the IOH's GPIO device.
1430
1431 config GPIO_PCH
1432         tristate "Intel EG20T PCH/LAPIS Semiconductor IOH(ML7223/ML7831) GPIO"
1433         depends on X86_32 || MIPS || COMPILE_TEST
1434         select GENERIC_IRQ_CHIP
1435         help
1436           This driver is for PCH(Platform controller Hub) GPIO of Intel Topcliff
1437           which is an IOH(Input/Output Hub) for x86 embedded processor.
1438           This driver can access PCH GPIO device.
1439
1440           This driver also can be used for LAPIS Semiconductor IOH(Input/
1441           Output Hub), ML7223 and ML7831.
1442           ML7223 IOH is for MP(Media Phone) use.
1443           ML7831 IOH is for general purpose use.
1444           ML7223/ML7831 is companion chip for Intel Atom E6xx series.
1445           ML7223/ML7831 is completely compatible for Intel EG20T PCH.
1446
1447 config GPIO_PCI_IDIO_16
1448         tristate "ACCES PCI-IDIO-16 GPIO support"
1449         select GPIOLIB_IRQCHIP
1450         help
1451           Enables GPIO support for the ACCES PCI-IDIO-16. An interrupt is
1452           generated when any of the inputs change state (low to high or high to
1453           low). Input filter control is not supported by this driver, and the
1454           input filters are deactivated by this driver.
1455
1456 config GPIO_PCIE_IDIO_24
1457         tristate "ACCES PCIe-IDIO-24 GPIO support"
1458         select GPIOLIB_IRQCHIP
1459         help
1460           Enables GPIO support for the ACCES PCIe-IDIO-24 family (PCIe-IDIO-24,
1461           PCIe-IDI-24, PCIe-IDO-24, PCIe-IDIO-12). An interrupt is generated
1462           when any of the inputs change state (low to high or high to low).
1463           Input filter control is not supported by this driver, and the input
1464           filters are deactivated by this driver.
1465
1466 config GPIO_RDC321X
1467         tristate "RDC R-321x GPIO support"
1468         select MFD_CORE
1469         select MFD_RDC321X
1470         help
1471           Support for the RDC R321x SoC GPIOs over southbridge
1472           PCI configuration space.
1473
1474 config GPIO_SODAVILLE
1475         bool "Intel Sodaville GPIO support"
1476         depends on X86 && OF
1477         select GPIO_GENERIC
1478         select GENERIC_IRQ_CHIP
1479         help
1480           Say Y here to support Intel Sodaville GPIO.
1481
1482 endmenu
1483
1484 menu "SPI GPIO expanders"
1485         depends on SPI_MASTER
1486
1487 config GPIO_74X164
1488         tristate "74x164 serial-in/parallel-out 8-bits shift register"
1489         depends on OF_GPIO
1490         help
1491           Driver for 74x164 compatible serial-in/parallel-out 8-outputs
1492           shift registers. This driver can be used to provide access
1493           to more gpio outputs.
1494
1495 config GPIO_MAX3191X
1496         tristate "Maxim MAX3191x industrial serializer"
1497         select CRC8
1498         help
1499           GPIO driver for Maxim MAX31910, MAX31911, MAX31912, MAX31913,
1500           MAX31953 and MAX31963 industrial serializer, a daisy-chainable
1501           chip to make 8 digital 24V inputs available via SPI.  Supports
1502           CRC checksums to guard against electromagnetic interference,
1503           as well as undervoltage and overtemperature detection.
1504
1505 config GPIO_MAX7301
1506         tristate "Maxim MAX7301 GPIO expander"
1507         select GPIO_MAX730X
1508         help
1509           GPIO driver for Maxim MAX7301 SPI-based GPIO expander.
1510
1511 config GPIO_MC33880
1512         tristate "Freescale MC33880 high-side/low-side switch"
1513         help
1514           SPI driver for Freescale MC33880 high-side/low-side switch.
1515           This provides GPIO interface supporting inputs and outputs.
1516
1517 config GPIO_PISOSR
1518         tristate "Generic parallel-in/serial-out shift register"
1519         help
1520           GPIO driver for SPI compatible parallel-in/serial-out shift
1521           registers. These are input only devices.
1522
1523 config GPIO_XRA1403
1524         tristate "EXAR XRA1403 16-bit GPIO expander"
1525         select REGMAP_SPI
1526         help
1527           GPIO driver for EXAR XRA1403 16-bit SPI-based GPIO expander.
1528
1529 config GPIO_MOXTET
1530         tristate "Turris Mox Moxtet bus GPIO expander"
1531         depends on MOXTET
1532         help
1533           Say yes here if you are building for the Turris Mox router.
1534           This is the driver needed for configuring the GPIOs via the Moxtet
1535           bus. For example the Mox module with SFP cage needs this driver
1536           so that phylink can use corresponding GPIOs.
1537
1538 endmenu
1539
1540 menu "USB GPIO expanders"
1541         depends on USB
1542
1543 config GPIO_VIPERBOARD
1544         tristate "Viperboard GPIO a & b support"
1545         depends on MFD_VIPERBOARD
1546         help
1547           Say yes here to access the GPIO signals of Nano River
1548           Technologies Viperboard. There are two GPIO chips on the
1549           board: gpioa and gpiob.
1550           See viperboard API specification and Nano
1551           River Tech's viperboard.h for detailed meaning
1552           of the module parameters.
1553
1554 endmenu
1555
1556 config GPIO_AGGREGATOR
1557         tristate "GPIO Aggregator"
1558         help
1559           Say yes here to enable the GPIO Aggregator, which provides a way to
1560           aggregate existing GPIO lines into a new virtual GPIO chip.
1561           This can serve the following purposes:
1562             - Assign permissions for a collection of GPIO lines to a user,
1563             - Export a collection of GPIO lines to a virtual machine,
1564             - Provide a generic driver for a GPIO-operated device in an
1565               industrial control context, to be operated from userspace using
1566               the GPIO chardev interface.
1567
1568 config GPIO_MOCKUP
1569         tristate "GPIO Testing Driver"
1570         select IRQ_SIM
1571         help
1572           This enables GPIO Testing driver, which provides a way to test GPIO
1573           subsystem through sysfs(or char device) and debugfs. GPIO_SYSFS
1574           must be selected for this test.
1575           User could use it through the script in
1576           tools/testing/selftests/gpio/gpio-mockup.sh. Reference the usage in
1577           it.
1578
1579 endif