Revert "tty: fix port buffer locking"
[linux/fpc-iii.git] / drivers / gpio / Kconfig
blob23ca51ee6b28e416bc7472ca5525a71652bbde92
2 # GPIO infrastructure and drivers
5 config ARCH_HAVE_CUSTOM_GPIO_H
6         bool
7         help
8           Selecting this config option from the architecture Kconfig allows
9           the architecture to provide a custom asm/gpio.h implementation
10           overriding the default implementations.  New uses of this are
11           strongly discouraged.
13 menuconfig GPIOLIB
14         bool "GPIO Support"
15         select ANON_INODES
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.
21           If unsure, say N.
23 if GPIOLIB
25 config OF_GPIO
26         def_bool y
27         depends on OF
28         depends on HAS_IOMEM
30 config GPIO_ACPI
31         def_bool y
32         depends on ACPI
34 config GPIOLIB_IRQCHIP
35         select IRQ_DOMAIN
36         bool
38 config DEBUG_GPIO
39         bool "Debug GPIO calls"
40         depends on DEBUG_KERNEL
41         help
42           Say Y here to add some extra checks and diagnostics to GPIO calls.
43           These checks help ensure that GPIOs have been properly initialized
44           before they are used, and that sleeping calls are not made from
45           non-sleeping contexts.  They can make bitbanged serial protocols
46           slower.  The diagnostics help catch the type of setup errors
47           that are most common when setting up new platforms or boards.
49 config GPIO_SYSFS
50         bool "/sys/class/gpio/... (sysfs interface)"
51         depends on SYSFS
52         help
53           Say Y here to add a sysfs interface for GPIOs.
55           This is mostly useful to work around omissions in a system's
56           kernel support.  Those are common in custom and semicustom
57           hardware assembled using standard kernels with a minimum of
58           custom patches.  In those cases, userspace code may import
59           a given GPIO from the kernel, if no kernel driver requested it.
61           Kernel drivers may also request that a particular GPIO be
62           exported to userspace; this can be useful when debugging.
64 config GPIO_GENERIC
65         depends on HAS_IOMEM # Only for IOMEM drivers
66         tristate
68 # put drivers in the right section, in alphabetical order
70 # This symbol is selected by both I2C and SPI expanders
71 config GPIO_MAX730X
72         tristate
74 menu "Memory mapped GPIO drivers"
75         depends on HAS_IOMEM
77 config GPIO_74XX_MMIO
78         tristate "GPIO driver for 74xx-ICs with MMIO access"
79         depends on OF_GPIO
80         select GPIO_GENERIC
81         help
82           Say yes here to support GPIO functionality for 74xx-compatible ICs
83           with MMIO access. Compatible models include:
84             1 bit:      741G125 (Input), 741G74 (Output)
85             2 bits:     742G125 (Input), 7474 (Output)
86             4 bits:     74125 (Input), 74175 (Output)
87             6 bits:     74365 (Input), 74174 (Output)
88             8 bits:     74244 (Input), 74273 (Output)
89             16 bits:    741624 (Input), 7416374 (Output)
91 config GPIO_ALTERA
92         tristate "Altera GPIO"
93         depends on OF_GPIO
94         select GPIOLIB_IRQCHIP
95         help
96           Say Y or M here to build support for the Altera PIO device.
98           If driver is built as a module it will be called gpio-altera.
100 config GPIO_AMDPT
101         tristate "AMD Promontory GPIO support"
102         depends on ACPI
103         select GPIO_GENERIC
104         help
105           driver for GPIO functionality on Promontory IOHub
106           Require ACPI ASL code to enumerate as a platform device.
108 config GPIO_ASPEED
109         tristate "Aspeed GPIO support"
110         depends on (ARCH_ASPEED || COMPILE_TEST) && OF_GPIO
111         select GPIOLIB_IRQCHIP
112         help
113           Say Y here to support Aspeed AST2400 and AST2500 GPIO controllers.
115 config GPIO_ATH79
116         tristate "Atheros AR71XX/AR724X/AR913X GPIO support"
117         default y if ATH79
118         depends on ATH79 || COMPILE_TEST
119         select GPIO_GENERIC
120         select GPIOLIB_IRQCHIP
121         help
122           Select this option to enable GPIO driver for
123           Atheros AR71XX/AR724X/AR913X SoC devices.
125 config GPIO_AXP209
126         tristate "X-Powers AXP209 PMIC GPIO Support"
127         depends on MFD_AXP20X
128         help
129           Say yes to enable GPIO support for the AXP209 PMIC
131 config GPIO_BCM_KONA
132         bool "Broadcom Kona GPIO"
133         depends on OF_GPIO && (ARCH_BCM_MOBILE || COMPILE_TEST)
134         help
135           Turn on GPIO support for Broadcom "Kona" chips.
137 config GPIO_BRCMSTB
138         tristate "BRCMSTB GPIO support"
139         default y if (ARCH_BRCMSTB || BMIPS_GENERIC)
140         depends on OF_GPIO && (ARCH_BRCMSTB || BMIPS_GENERIC || COMPILE_TEST)
141         select GPIO_GENERIC
142         select GPIOLIB_IRQCHIP
143         help
144           Say yes here to enable GPIO support for Broadcom STB (BCM7XXX) SoCs.
146 config GPIO_CLPS711X
147         tristate "CLPS711X GPIO support"
148         depends on ARCH_CLPS711X || COMPILE_TEST
149         select GPIO_GENERIC
150         help
151           Say yes here to support GPIO on CLPS711X SoCs.
153 config GPIO_DAVINCI
154         bool "TI Davinci/Keystone GPIO support"
155         default y if ARCH_DAVINCI
156         depends on ARM && (ARCH_DAVINCI || ARCH_KEYSTONE)
157         help
158           Say yes here to enable GPIO support for TI Davinci/Keystone SoCs.
160 config GPIO_DWAPB
161         tristate "Synopsys DesignWare APB GPIO driver"
162         select GPIO_GENERIC
163         select GENERIC_IRQ_CHIP
164         help
165           Say Y or M here to build support for the Synopsys DesignWare APB
166           GPIO block.
168 config GPIO_EM
169         tristate "Emma Mobile GPIO"
170         depends on (ARCH_EMEV2 || COMPILE_TEST) && OF_GPIO
171         help
172           Say yes here to support GPIO on Renesas Emma Mobile SoCs.
174 config GPIO_EP93XX
175         def_bool y
176         depends on ARCH_EP93XX
177         select GPIO_GENERIC
179 config GPIO_ETRAXFS
180         bool "Axis ETRAX FS General I/O"
181         depends on CRIS || COMPILE_TEST
182         depends on OF_GPIO
183         select GPIO_GENERIC
184         select GPIOLIB_IRQCHIP
185         help
186           Say yes here to support the GPIO controller on Axis ETRAX FS SoCs.
188 config GPIO_EXAR
189         tristate "Support for GPIO pins on XR17V352/354/358"
190         depends on SERIAL_8250_EXAR
191         help
192           Selecting this option will enable handling of GPIO pins present
193           on Exar XR17V352/354/358 chips.
195 config GPIO_GE_FPGA
196         bool "GE FPGA based GPIO"
197         depends on GE_FPGA
198         select GPIO_GENERIC
199         help
200           Support for common GPIO functionality provided on some GE Single Board
201           Computers.
203           This driver provides basic support (configure as input or output, read
204           and write pin state) for GPIO implemented in a number of GE single
205           board computers.
207 config GPIO_FTGPIO010
208         bool "Faraday FTGPIO010 GPIO"
209         depends on OF_GPIO
210         select GPIO_GENERIC
211         select GPIOLIB_IRQCHIP
212         default (ARCH_GEMINI || ARCH_MOXART)
213         help
214           Support for common GPIOs from the Faraday FTGPIO010 IP core, found in
215           Cortina systems Gemini platforms, Moxa ART and others.
217 config GPIO_GENERIC_PLATFORM
218         tristate "Generic memory-mapped GPIO controller support (MMIO platform device)"
219         select GPIO_GENERIC
220         help
221           Say yes here to support basic platform_device memory-mapped GPIO controllers.
223 config GPIO_GRGPIO
224         tristate "Aeroflex Gaisler GRGPIO support"
225         depends on OF_GPIO
226         select GPIO_GENERIC
227         select IRQ_DOMAIN
228         help
229           Select this to support Aeroflex Gaisler GRGPIO cores from the GRLIB
230           VHDL IP core library.
232 config GPIO_ICH
233         tristate "Intel ICH GPIO"
234         depends on PCI && X86
235         select MFD_CORE
236         select LPC_ICH
237         help
238           Say yes here to support the GPIO functionality of a number of Intel
239           ICH-based chipsets.  Currently supported devices: ICH6, ICH7, ICH8
240           ICH9, ICH10, Series 5/3400 (eg Ibex Peak), Series 6/C200 (eg
241           Cougar Point), NM10 (Tiger Point), and 3100 (Whitmore Lake).
243           If unsure, say N.
245 config GPIO_IOP
246         tristate "Intel IOP GPIO"
247         depends on ARCH_IOP32X || ARCH_IOP33X || COMPILE_TEST
248         select GPIO_GENERIC
249         help
250           Say yes here to support the GPIO functionality of a number of Intel
251           IOP32X or IOP33X.
253           If unsure, say N.
255 config GPIO_LOONGSON
256         bool "Loongson-2/3 GPIO support"
257         depends on CPU_LOONGSON2 || CPU_LOONGSON3
258         help
259           driver for GPIO functionality on Loongson-2F/3A/3B processors.
261 config GPIO_LPC18XX
262         tristate "NXP LPC18XX/43XX GPIO support"
263         default y if ARCH_LPC18XX
264         depends on OF_GPIO && (ARCH_LPC18XX || COMPILE_TEST)
265         help
266           Select this option to enable GPIO driver for
267           NXP LPC18XX/43XX devices.
269 config GPIO_LYNXPOINT
270         tristate "Intel Lynxpoint GPIO support"
271         depends on ACPI && X86
272         select GPIOLIB_IRQCHIP
273         help
274           driver for GPIO functionality on Intel Lynxpoint PCH chipset
275           Requires ACPI device enumeration code to set up a platform device.
277 config GPIO_MB86S7X
278         bool "GPIO support for Fujitsu MB86S7x Platforms"
279         depends on ARCH_MB86S7X || COMPILE_TEST
280         help
281           Say yes here to support the GPIO controller in Fujitsu MB86S70 SoCs.
283 config GPIO_MENZ127
284         tristate "MEN 16Z127 GPIO support"
285         depends on MCB
286         select GPIO_GENERIC
287         help
288          Say yes here to support the MEN 16Z127 GPIO Controller
290 config GPIO_MM_LANTIQ
291         bool "Lantiq Memory mapped GPIOs"
292         depends on LANTIQ && SOC_XWAY
293         help
294           This enables support for memory mapped GPIOs on the External Bus Unit
295           (EBU) found on Lantiq SoCs. The gpios are output only as they are
296           created by attaching a 16bit latch to the bus.
298 config GPIO_MOCKUP
299         tristate "GPIO Testing Driver"
300         depends on GPIOLIB && SYSFS
301         select GPIO_SYSFS
302         select GPIOLIB_IRQCHIP
303         select IRQ_WORK
304         help
305           This enables GPIO Testing driver, which provides a way to test GPIO
306           subsystem through sysfs(or char device) and debugfs. GPIO_SYSFS
307           must be selected for this test.
308           User could use it through the script in
309           tools/testing/selftests/gpio/gpio-mockup.sh. Reference the usage in
310           it.
312 config GPIO_MPC5200
313         def_bool y
314         depends on PPC_MPC52xx
316 config GPIO_MPC8XXX
317         bool "MPC512x/MPC8xxx/QorIQ GPIO support"
318         depends on PPC_MPC512x || PPC_MPC831x || PPC_MPC834x || PPC_MPC837x || \
319                    FSL_SOC_BOOKE || PPC_86xx || ARCH_LAYERSCAPE || ARM || \
320                    COMPILE_TEST
321         select GPIO_GENERIC
322         select IRQ_DOMAIN
323         help
324           Say Y here if you're going to use hardware that connects to the
325           MPC512x/831x/834x/837x/8572/8610/QorIQ GPIOs.
327 config GPIO_MVEBU
328         def_bool y
329         depends on PLAT_ORION
330         depends on OF_GPIO
331         select GENERIC_IRQ_CHIP
333 config GPIO_MXC
334         def_bool y
335         depends on ARCH_MXC
336         select GPIO_GENERIC
337         select GENERIC_IRQ_CHIP
339 config GPIO_MXS
340         def_bool y
341         depends on ARCH_MXS
342         select GPIO_GENERIC
343         select GENERIC_IRQ_CHIP
345 config GPIO_OCTEON
346         tristate "Cavium OCTEON GPIO"
347         depends on GPIOLIB && CAVIUM_OCTEON_SOC
348         default y
349         help
350           Say yes here to support the on-chip GPIO lines on the OCTEON
351           family of SOCs.
353 config GPIO_OMAP
354         tristate "TI OMAP GPIO support" if ARCH_OMAP2PLUS || COMPILE_TEST
355         default y if ARCH_OMAP
356         depends on ARM
357         select GENERIC_IRQ_CHIP
358         select GPIOLIB_IRQCHIP
359         help
360           Say yes here to enable GPIO support for TI OMAP SoCs.
362 config GPIO_PL061
363         bool "PrimeCell PL061 GPIO support"
364         depends on ARM_AMBA
365         select IRQ_DOMAIN
366         select GPIOLIB_IRQCHIP
367         help
368           Say yes here to support the PrimeCell PL061 GPIO device
370 config GPIO_PXA
371         bool "PXA GPIO support"
372         depends on ARCH_PXA || ARCH_MMP
373         help
374           Say yes here to support the PXA GPIO device
376 config GPIO_RCAR
377         tristate "Renesas R-Car GPIO"
378         depends on ARCH_RENESAS || COMPILE_TEST
379         select GPIOLIB_IRQCHIP
380         help
381           Say yes here to support GPIO on Renesas R-Car SoCs.
383 config GPIO_REG
384         bool
385         help
386           A 32-bit single register GPIO fixed in/out implementation.  This
387           can be used to represent any register as a set of GPIO signals.
389 config GPIO_SPEAR_SPICS
390         bool "ST SPEAr13xx SPI Chip Select as GPIO support"
391         depends on PLAT_SPEAR
392         select GENERIC_IRQ_CHIP
393         help
394           Say yes here to support ST SPEAr SPI Chip Select as GPIO device
396 config GPIO_STA2X11
397         bool "STA2x11/ConneXt GPIO support"
398         depends on MFD_STA2X11
399         select GENERIC_IRQ_CHIP
400         help
401           Say yes here to support the STA2x11/ConneXt GPIO device.
402           The GPIO module has 128 GPIO pins with alternate functions.
404 config GPIO_STP_XWAY
405         bool "XWAY STP GPIOs"
406         depends on SOC_XWAY
407         help
408           This enables support for the Serial To Parallel (STP) unit found on
409           XWAY SoC. The STP allows the SoC to drive a shift registers cascade,
410           that can be up to 24 bit. This peripheral is aimed at driving leds.
411           Some of the gpios/leds can be auto updated by the soc with dsl and
412           phy status.
414 config GPIO_SYSCON
415         tristate "GPIO based on SYSCON"
416         depends on MFD_SYSCON && OF
417         help
418           Say yes here to support GPIO functionality though SYSCON driver.
420 config GPIO_TB10X
421         bool
422         select GENERIC_IRQ_CHIP
423         select OF_GPIO
425 config GPIO_TEGRA
426         bool "NVIDIA Tegra GPIO support"
427         default ARCH_TEGRA
428         depends on ARCH_TEGRA || COMPILE_TEST
429         depends on OF_GPIO
430         help
431           Say yes here to support GPIO pins on NVIDIA Tegra SoCs.
433 config GPIO_TS4800
434         tristate "TS-4800 DIO blocks and compatibles"
435         depends on OF_GPIO
436         depends on SOC_IMX51 || COMPILE_TEST
437         select GPIO_GENERIC
438         help
439           This driver support TS-4800 FPGA GPIO controllers.
441 config GPIO_TZ1090
442         bool "Toumaz Xenif TZ1090 GPIO support"
443         depends on SOC_TZ1090
444         select GENERIC_IRQ_CHIP
445         default y
446         help
447           Say yes here to support Toumaz Xenif TZ1090 GPIOs.
449 config GPIO_TZ1090_PDC
450         bool "Toumaz Xenif TZ1090 PDC GPIO support"
451         depends on SOC_TZ1090
452         default y
453         help
454           Say yes here to support Toumaz Xenif TZ1090 PDC GPIOs.
456 config GPIO_VF610
457         def_bool y
458         depends on ARCH_MXC && SOC_VF610
459         select GPIOLIB_IRQCHIP
460         help
461           Say yes here to support Vybrid vf610 GPIOs.
463 config GPIO_VR41XX
464         tristate "NEC VR4100 series General-purpose I/O Uint support"
465         depends on CPU_VR41XX
466         help
467           Say yes here to support the NEC VR4100 series General-purpose I/O Uint
469 config GPIO_VX855
470         tristate "VIA VX855/VX875 GPIO"
471         depends on (X86 || COMPILE_TEST) && PCI
472         select MFD_CORE
473         select MFD_VX855
474         help
475           Support access to the VX855/VX875 GPIO lines through the gpio library.
477           This driver provides common support for accessing the device,
478           additional drivers must be enabled in order to use the
479           functionality of the device.
481 config GPIO_XGENE
482         bool "APM X-Gene GPIO controller support"
483         depends on ARM64 && OF_GPIO
484         help
485           This driver is to support the GPIO block within the APM X-Gene SoC
486           platform's generic flash controller. The GPIO pins are muxed with
487           the generic flash controller's address and data pins. Say yes
488           here to enable the GFC GPIO functionality.
490 config GPIO_XGENE_SB
491         tristate "APM X-Gene GPIO standby controller support"
492         depends on ARCH_XGENE && OF_GPIO
493         select GPIO_GENERIC
494         select GPIOLIB_IRQCHIP
495         help
496           This driver supports the GPIO block within the APM X-Gene
497           Standby Domain. Say yes here to enable the GPIO functionality.
499 config GPIO_XILINX
500         tristate "Xilinx GPIO support"
501         depends on OF_GPIO
502         help
503           Say yes here to support the Xilinx FPGA GPIO device
505 config GPIO_XLP
506         tristate "Netlogic XLP GPIO support"
507         depends on OF_GPIO && (CPU_XLP || ARCH_VULCAN || ARCH_THUNDER2 || COMPILE_TEST)
508         select GPIOLIB_IRQCHIP
509         help
510           This driver provides support for GPIO interface on Netlogic XLP MIPS64
511           SoCs. Currently supported XLP variants are XLP8XX, XLP3XX, XLP2XX,
512           XLP9XX and XLP5XX.
514           If unsure, say N.
516 config GPIO_XTENSA
517         bool "Xtensa GPIO32 support"
518         depends on XTENSA
519         depends on HAVE_XTENSA_GPIO32
520         depends on !SMP
521         help
522           Say yes here to support the Xtensa internal GPIO32 IMPWIRE (input)
523           and EXPSTATE (output) ports
525 config GPIO_ZEVIO
526         bool "LSI ZEVIO SoC memory mapped GPIOs"
527         depends on ARM && OF_GPIO
528         help
529           Say yes here to support the GPIO controller in LSI ZEVIO SoCs.
531 config GPIO_ZYNQ
532         tristate "Xilinx Zynq GPIO support"
533         depends on ARCH_ZYNQ || ARCH_ZYNQMP
534         select GPIOLIB_IRQCHIP
535         help
536           Say yes here to support Xilinx Zynq GPIO controller.
538 config GPIO_ZX
539         bool "ZTE ZX GPIO support"
540         depends on ARCH_ZX || COMPILE_TEST
541         select GPIOLIB_IRQCHIP
542         help
543           Say yes here to support the GPIO device on ZTE ZX SoCs.
545 config GPIO_LOONGSON1
546         tristate "Loongson1 GPIO support"
547         depends on MACH_LOONGSON32
548         select GPIO_GENERIC
549         help
550           Say Y or M here to support GPIO on Loongson1 SoCs.
552 endmenu
554 menu "Port-mapped I/O GPIO drivers"
555         depends on X86 # Unconditional I/O space access
557 config GPIO_104_DIO_48E
558         tristate "ACCES 104-DIO-48E GPIO support"
559         depends on PC104 && ISA_BUS_API
560         select GPIOLIB_IRQCHIP
561         help
562           Enables GPIO support for the ACCES 104-DIO-48E series (104-DIO-48E,
563           104-DIO-24E). The base port addresses for the devices may be
564           configured via the base module parameter. The interrupt line numbers
565           for the devices may be configured via the irq module parameter.
567 config GPIO_104_IDIO_16
568         tristate "ACCES 104-IDIO-16 GPIO support"
569         depends on PC104 && ISA_BUS_API
570         select GPIOLIB_IRQCHIP
571         help
572           Enables GPIO support for the ACCES 104-IDIO-16 family (104-IDIO-16,
573           104-IDIO-16E, 104-IDO-16, 104-IDIO-8, 104-IDIO-8E, 104-IDO-8). The
574           base port addresses for the devices may be configured via the base
575           module parameter. The interrupt line numbers for the devices may be
576           configured via the irq module parameter.
578 config GPIO_104_IDI_48
579         tristate "ACCES 104-IDI-48 GPIO support"
580         depends on PC104 && ISA_BUS_API
581         select GPIOLIB_IRQCHIP
582         help
583           Enables GPIO support for the ACCES 104-IDI-48 family (104-IDI-48A,
584           104-IDI-48AC, 104-IDI-48B, 104-IDI-48BC). The base port addresses for
585           the devices may be configured via the base module parameter. The
586           interrupt line numbers for the devices may be configured via the irq
587           module parameter.
589 config GPIO_F7188X
590         tristate "F71869, F71869A, F71882FG, F71889F and F81866 GPIO support"
591         help
592           This option enables support for GPIOs found on Fintek Super-I/O
593           chips F71869, F71869A, F71882FG, F71889F and F81866.
595           To compile this driver as a module, choose M here: the module will
596           be called f7188x-gpio.
598 config GPIO_GPIO_MM
599         tristate "Diamond Systems GPIO-MM GPIO support"
600         depends on PC104 && ISA_BUS_API
601         help
602           Enables GPIO support for the Diamond Systems GPIO-MM and GPIO-MM-12.
604           The Diamond Systems GPIO-MM device features 48 lines of digital I/O
605           via the emulation of dual 82C55A PPI chips. This driver provides GPIO
606           support for these 48 channels of digital I/O.
608           The base port addresses for the devices may be configured via the base
609           array module parameter.
611 config GPIO_IT87
612         tristate "IT87xx GPIO support"
613         help
614           Say yes here to support GPIO functionality of IT87xx Super I/O chips.
616           This driver is tested with ITE IT8728 and IT8732 Super I/O chips, and
617           supports the IT8761E, IT8620E and IT8628E Super I/O chip as well.
619           To compile this driver as a module, choose M here: the module will
620           be called gpio_it87
622 config GPIO_SCH
623         tristate "Intel SCH/TunnelCreek/Centerton/Quark X1000 GPIO"
624         depends on (X86 || COMPILE_TEST) && PCI
625         select MFD_CORE
626         select LPC_SCH
627         help
628           Say yes here to support GPIO interface on Intel Poulsbo SCH,
629           Intel Tunnel Creek processor, Intel Centerton processor or
630           Intel Quark X1000 SoC.
632           The Intel SCH contains a total of 14 GPIO pins. Ten GPIOs are
633           powered by the core power rail and are turned off during sleep
634           modes (S3 and higher). The remaining four GPIOs are powered by
635           the Intel SCH suspend power supply. These GPIOs remain
636           active during S3. The suspend powered GPIOs can be used to wake the
637           system from the Suspend-to-RAM state.
639           The Intel Tunnel Creek processor has 5 GPIOs powered by the
640           core power rail and 9 from suspend power supply.
642           The Intel Centerton processor has a total of 30 GPIO pins.
643           Twenty-one are powered by the core power rail and 9 from the
644           suspend power supply.
646           The Intel Quark X1000 SoC has 2 GPIOs powered by the core
647           power well and 6 from the suspend power well.
649 config GPIO_SCH311X
650         tristate "SMSC SCH311x SuperI/O GPIO"
651         help
652           Driver to enable the GPIOs found on SMSC SMSC SCH3112, SCH3114 and
653           SCH3116 "Super I/O" chipsets.
655           To compile this driver as a module, choose M here: the module will
656           be called gpio-sch311x.
658 config GPIO_TS5500
659         tristate "TS-5500 DIO blocks and compatibles"
660         depends on TS5500 || COMPILE_TEST
661         help
662           This driver supports Digital I/O exposed by pin blocks found on some
663           Technologic Systems platforms. It includes, but is not limited to, 3
664           blocks of the TS-5500: DIO1, DIO2 and the LCD port, and the TS-5600
665           LCD port.
667 config GPIO_WS16C48
668         tristate "WinSystems WS16C48 GPIO support"
669         depends on ISA_BUS_API
670         select GPIOLIB_IRQCHIP
671         help
672           Enables GPIO support for the WinSystems WS16C48. The base port
673           addresses for the devices may be configured via the base module
674           parameter. The interrupt line numbers for the devices may be
675           configured via the irq module parameter.
677 endmenu
679 menu "I2C GPIO expanders"
680         depends on I2C
682 config GPIO_ADP5588
683         tristate "ADP5588 I2C GPIO expander"
684         help
685           This option enables support for 18 GPIOs found
686           on Analog Devices ADP5588 GPIO Expanders.
688 config GPIO_ADP5588_IRQ
689         bool "Interrupt controller support for ADP5588"
690         depends on GPIO_ADP5588=y
691         help
692           Say yes here to enable the adp5588 to be used as an interrupt
693           controller. It requires the driver to be built in the kernel.
695 config GPIO_ADNP
696         tristate "Avionic Design N-bit GPIO expander"
697         depends on OF_GPIO
698         select GPIOLIB_IRQCHIP
699         help
700           This option enables support for N GPIOs found on Avionic Design
701           I2C GPIO expanders. The register space will be extended by powers
702           of two, so the controller will need to accommodate for that. For
703           example: if a controller provides 48 pins, 6 registers will be
704           enough to represent all pins, but the driver will assume a
705           register layout for 64 pins (8 registers).
707 config GPIO_MAX7300
708         tristate "Maxim MAX7300 GPIO expander"
709         select GPIO_MAX730X
710         help
711           GPIO driver for Maxim MAX7300 I2C-based GPIO expander.
713 config GPIO_MAX732X
714         tristate "MAX7319, MAX7320-7327 I2C Port Expanders"
715         help
716           Say yes here to support the MAX7319, MAX7320-7327 series of I2C
717           Port Expanders. Each IO port on these chips has a fixed role of
718           Input (designated by 'I'), Push-Pull Output ('O'), or Open-Drain
719           Input and Output (designed by 'P'). The combinations are listed
720           below:
722           8 bits:       max7319 (8I), max7320 (8O), max7321 (8P),
723                         max7322 (4I4O), max7323 (4P4O)
725           16 bits:      max7324 (8I8O), max7325 (8P8O),
726                         max7326 (4I12O), max7327 (4P12O)
728           Board setup code must specify the model to use, and the start
729           number for these GPIOs.
731 config GPIO_MAX732X_IRQ
732         bool "Interrupt controller support for MAX732x"
733         depends on GPIO_MAX732X=y
734         select GPIOLIB_IRQCHIP
735         help
736           Say yes here to enable the max732x to be used as an interrupt
737           controller. It requires the driver to be built in the kernel.
739 config GPIO_MC9S08DZ60
740         bool "MX35 3DS BOARD MC9S08DZ60 GPIO functions"
741         depends on I2C=y && MACH_MX35_3DS
742         help
743           Select this to enable the MC9S08DZ60 GPIO driver
745 config GPIO_PCA953X
746         tristate "PCA95[357]x, PCA9698, TCA64xx, and MAX7310 I/O ports"
747         help
748           Say yes here to provide access to several register-oriented
749           SMBus I/O expanders, made mostly by NXP or TI.  Compatible
750           models include:
752           4 bits:       pca9536, pca9537
754           8 bits:       max7310, max7315, pca6107, pca9534, pca9538, pca9554,
755                         pca9556, pca9557, pca9574, tca6408, tca9554, xra1202
757           16 bits:      max7312, max7313, pca9535, pca9539, pca9555, pca9575,
758                         tca6416
760           24 bits:      tca6424
762           40 bits:      pca9505, pca9698
764 config GPIO_PCA953X_IRQ
765         bool "Interrupt controller support for PCA953x"
766         depends on GPIO_PCA953X=y
767         select GPIOLIB_IRQCHIP
768         help
769           Say yes here to enable the pca953x to be used as an interrupt
770           controller. It requires the driver to be built in the kernel.
772 config GPIO_PCF857X
773         tristate "PCF857x, PCA{85,96}7x, and MAX732[89] I2C GPIO expanders"
774         select GPIOLIB_IRQCHIP
775         select IRQ_DOMAIN
776         help
777           Say yes here to provide access to most "quasi-bidirectional" I2C
778           GPIO expanders used for additional digital outputs or inputs.
779           Most of these parts are from NXP, though TI is a second source for
780           some of them.  Compatible models include:
782           8 bits:   pcf8574, pcf8574a, pca8574, pca8574a,
783                     pca9670, pca9672, pca9674, pca9674a,
784                     max7328, max7329
786           16 bits:  pcf8575, pcf8575c, pca8575,
787                     pca9671, pca9673, pca9675
789           Your board setup code will need to declare the expanders in
790           use, and assign numbers to the GPIOs they expose.  Those GPIOs
791           can then be used from drivers and other kernel code, just like
792           other GPIOs, but only accessible from task contexts.
794           This driver provides an in-kernel interface to those GPIOs using
795           platform-neutral GPIO calls.
797 config GPIO_SX150X
798         bool "Semtech SX150x I2C GPIO expander (deprecated)"
799         depends on PINCTRL && I2C=y
800         select PINCTRL_SX150X
801         default n
802         help
803           Say yes here to provide support for Semtech SX150x-series I2C
804           GPIO expanders. The GPIO driver was replaced by a Pinctrl version.
806 config GPIO_TPIC2810
807         tristate "TPIC2810 8-Bit I2C GPO expander"
808         help
809           Say yes here to enable the GPO driver for the TI TPIC2810 chip.
811           To compile this driver as a module, choose M here: the module will
812           be called gpio-tpic2810.
814 config GPIO_TS4900
815         tristate "Technologic Systems FPGA I2C GPIO"
816         depends on SOC_IMX6 || COMPILE_TEST
817         select REGMAP_I2C
818         help
819           Say yes here to enabled the GPIO driver for Technologic's FPGA core.
820           Series supported include TS-4100, TS-4900, TS-7970 and TS-7990.
822 endmenu
824 menu "MFD GPIO expanders"
826 config GPIO_ADP5520
827         tristate "GPIO Support for ADP5520 PMIC"
828         depends on PMIC_ADP5520
829         help
830           This option enables support for on-chip GPIO found
831           on Analog Devices ADP5520 PMICs.
833 config GPIO_ALTERA_A10SR
834         tristate "Altera Arria10 System Resource GPIO"
835         depends on MFD_ALTERA_A10SR
836         help
837           Driver for Arria10 Development Kit GPIO expansion which
838           includes reads of pushbuttons and DIP switches as well
839           as writes to LEDs.
841 config GPIO_ARIZONA
842         tristate "Wolfson Microelectronics Arizona class devices"
843         depends on MFD_ARIZONA
844         help
845           Support for GPIOs on Wolfson Arizona class devices.
847 config GPIO_BD9571MWV
848         tristate "ROHM BD9571 GPIO support"
849         depends on MFD_BD9571MWV
850         help
851           Support for GPIOs on ROHM BD9571 PMIC. There are two GPIOs
852           available on the ROHM PMIC in total, both of which can also
853           generate interrupts.
855           This driver can also be built as a module. If so, the module
856           will be called gpio-bd9571mwv.
858 config GPIO_CRYSTAL_COVE
859         tristate "GPIO support for Crystal Cove PMIC"
860         depends on (X86 || COMPILE_TEST) && INTEL_SOC_PMIC
861         select GPIOLIB_IRQCHIP
862         help
863           Support for GPIO pins on Crystal Cove PMIC.
865           Say Yes if you have a Intel SoC based tablet with Crystal Cove PMIC
866           inside.
868           This driver can also be built as a module. If so, the module will be
869           called gpio-crystalcove.
871 config GPIO_CS5535
872         tristate "AMD CS5535/CS5536 GPIO support"
873         depends on X86 || MIPS || COMPILE_TEST
874         depends on MFD_CS5535
875         help
876           The AMD CS5535 and CS5536 southbridges support 28 GPIO pins that
877           can be used for quite a number of things.  The CS5535/6 is found on
878           AMD Geode and Lemote Yeeloong devices.
880           If unsure, say N.
882 config GPIO_DA9052
883         tristate "Dialog DA9052 GPIO"
884         depends on PMIC_DA9052
885         help
886           Say yes here to enable the GPIO driver for the DA9052 chip.
888 config GPIO_DA9055
889         tristate "Dialog Semiconductor DA9055 GPIO"
890         depends on MFD_DA9055
891         help
892           Say yes here to enable the GPIO driver for the DA9055 chip.
894           The Dialog DA9055 PMIC chip has 3 GPIO pins that can be
895           be controller by this driver.
897           If driver is built as a module it will be called gpio-da9055.
899 config GPIO_DLN2
900         tristate "Diolan DLN2 GPIO support"
901         depends on MFD_DLN2
902         select GPIOLIB_IRQCHIP
904         help
905           Select this option to enable GPIO driver for the Diolan DLN2
906           board.
908           This driver can also be built as a module. If so, the module
909           will be called gpio-dln2.
911 config HTC_EGPIO
912         bool "HTC EGPIO support"
913         depends on GPIOLIB && ARM
914         help
915             This driver supports the CPLD egpio chip present on
916             several HTC phones.  It provides basic support for input
917             pins, output pins, and irqs.
919 config GPIO_JANZ_TTL
920         tristate "Janz VMOD-TTL Digital IO Module"
921         depends on MFD_JANZ_CMODIO
922         help
923           This enables support for the Janz VMOD-TTL Digital IO module.
924           This driver provides support for driving the pins in output
925           mode only. Input mode is not supported.
927 config GPIO_KEMPLD
928         tristate "Kontron ETX / COMexpress GPIO"
929         depends on MFD_KEMPLD
930         help
931           This enables support for the PLD GPIO interface on some Kontron ETX
932           and COMexpress (ETXexpress) modules.
934           This driver can also be built as a module. If so, the module will be
935           called gpio-kempld.
937 config GPIO_LP3943
938         tristate "TI/National Semiconductor LP3943 GPIO expander"
939         depends on MFD_LP3943
940         help
941           GPIO driver for LP3943 MFD.
942           LP3943 can be used as a GPIO expander which provides up to 16 GPIOs.
943           Open drain outputs are required for this usage.
945 config GPIO_LP873X
946         tristate "TI LP873X GPO"
947         depends on MFD_TI_LP873X
948         help
949           This driver supports the GPO on TI Lp873x PMICs. 2 GPOs are present
950           on LP873X PMICs.
952           This driver can also be built as a module. If so, the module will be
953           called gpio-lp873x.
955 config GPIO_MAX77620
956         tristate "GPIO support for PMIC MAX77620 and MAX20024"
957         depends on MFD_MAX77620
958         help
959           GPIO driver for MAX77620 and MAX20024 PMIC from Maxim Semiconductor.
960           MAX77620 PMIC has 8 pins that can be configured as GPIOs. The
961           driver also provides interrupt support for each of the gpios.
962           Say yes here to enable the max77620 to be used as gpio controller.
964 config GPIO_MSIC
965         bool "Intel MSIC mixed signal gpio support"
966         depends on (X86 || COMPILE_TEST) && MFD_INTEL_MSIC
967         help
968           Enable support for GPIO on intel MSIC controllers found in
969           intel MID devices
971 config GPIO_PALMAS
972         bool "TI PALMAS series PMICs GPIO"
973         depends on MFD_PALMAS
974         help
975           Select this option to enable GPIO driver for the TI PALMAS
976           series chip family.
978 config GPIO_RC5T583
979         bool "RICOH RC5T583 GPIO"
980         depends on MFD_RC5T583
981         help
982           Select this option to enable GPIO driver for the Ricoh RC5T583
983           chip family.
984           This driver provides the support for driving/reading the gpio pins
985           of RC5T583 device through standard gpio library.
987 config GPIO_STMPE
988         bool "STMPE GPIOs"
989         depends on MFD_STMPE
990         depends on OF_GPIO
991         select GPIOLIB_IRQCHIP
992         help
993           This enables support for the GPIOs found on the STMPE I/O
994           Expanders.
996 config GPIO_TC3589X
997         bool "TC3589X GPIOs"
998         depends on MFD_TC3589X
999         depends on OF_GPIO
1000         select GPIOLIB_IRQCHIP
1001         help
1002           This enables support for the GPIOs found on the TC3589X
1003           I/O Expander.
1005 config GPIO_TIMBERDALE
1006         bool "Support for timberdale GPIO IP"
1007         depends on MFD_TIMBERDALE
1008         ---help---
1009         Add support for the GPIO IP in the timberdale FPGA.
1011 config GPIO_TPS65086
1012         tristate "TI TPS65086 GPO"
1013         depends on MFD_TPS65086
1014         help
1015           This driver supports the GPO on TI TPS65086x PMICs.
1017 config GPIO_TPS65218
1018         tristate "TPS65218 GPIO"
1019         depends on MFD_TPS65218
1020         help
1021           Select this option to enable GPIO driver for the TPS65218
1022           chip family.
1024 config GPIO_TPS6586X
1025         bool "TPS6586X GPIO"
1026         depends on MFD_TPS6586X
1027         help
1028           Select this option to enable GPIO driver for the TPS6586X
1029           chip family.
1031 config GPIO_TPS65910
1032         bool "TPS65910 GPIO"
1033         depends on MFD_TPS65910
1034         help
1035           Select this option to enable GPIO driver for the TPS65910
1036           chip family.
1038 config GPIO_TPS65912
1039         tristate "TI TPS65912 GPIO"
1040         depends on MFD_TPS65912
1041         help
1042           This driver supports TPS65912 gpio chip
1044 config GPIO_TWL4030
1045         tristate "TWL4030, TWL5030, and TPS659x0 GPIOs"
1046         depends on TWL4030_CORE
1047         help
1048           Say yes here to access the GPIO signals of various multi-function
1049           power management chips from Texas Instruments.
1051 config GPIO_TWL6040
1052         tristate "TWL6040 GPO"
1053         depends on TWL6040_CORE
1054         help
1055           Say yes here to access the GPO signals of twl6040
1056           audio chip from Texas Instruments.
1058 config GPIO_UCB1400
1059         tristate "Philips UCB1400 GPIO"
1060         depends on UCB1400_CORE
1061         help
1062           This enables support for the Philips UCB1400 GPIO pins.
1063           The UCB1400 is an AC97 audio codec.
1065 config GPIO_WHISKEY_COVE
1066         tristate "GPIO support for Whiskey Cove PMIC"
1067         depends on (X86 || COMPILE_TEST) && INTEL_SOC_PMIC_BXTWC
1068         select GPIOLIB_IRQCHIP
1069         help
1070           Support for GPIO pins on Whiskey Cove PMIC.
1072           Say Yes if you have a Intel SoC based tablet with Whiskey Cove PMIC
1073           inside.
1075           This driver can also be built as a module. If so, the module will be
1076           called gpio-wcove.
1078 config GPIO_WM831X
1079         tristate "WM831x GPIOs"
1080         depends on MFD_WM831X
1081         help
1082           Say yes here to access the GPIO signals of WM831x power management
1083           chips from Wolfson Microelectronics.
1085 config GPIO_WM8350
1086         tristate "WM8350 GPIOs"
1087         depends on MFD_WM8350
1088         help
1089           Say yes here to access the GPIO signals of WM8350 power management
1090           chips from Wolfson Microelectronics.
1092 config GPIO_WM8994
1093         tristate "WM8994 GPIOs"
1094         depends on MFD_WM8994
1095         help
1096           Say yes here to access the GPIO signals of WM8994 audio hub
1097           CODECs from Wolfson Microelectronics.
1099 endmenu
1101 menu "PCI GPIO expanders"
1102         depends on PCI
1104 config GPIO_AMD8111
1105         tristate "AMD 8111 GPIO driver"
1106         depends on X86 || COMPILE_TEST
1107         help
1108           The AMD 8111 south bridge contains 32 GPIO pins which can be used.
1110           Note, that usually system firmware/ACPI handles GPIO pins on their
1111           own and users might easily break their systems with uncarefull usage
1112           of this driver!
1114           If unsure, say N
1116 config GPIO_BT8XX
1117         tristate "BT8XX GPIO abuser"
1118         depends on VIDEO_BT848=n
1119         help
1120           The BT8xx frame grabber chip has 24 GPIO pins that can be abused
1121           as a cheap PCI GPIO card.
1123           This chip can be found on Miro, Hauppauge and STB TV-cards.
1125           The card needs to be physically altered for using it as a
1126           GPIO card. For more information on how to build a GPIO card
1127           from a BT8xx TV card, see the documentation file at
1128           Documentation/bt8xxgpio.txt
1130           If unsure, say N.
1132 config GPIO_INTEL_MID
1133         bool "Intel MID GPIO support"
1134         depends on X86_INTEL_MID
1135         select GPIOLIB_IRQCHIP
1136         help
1137           Say Y here to support Intel MID GPIO.
1139 config GPIO_MERRIFIELD
1140         tristate "Intel Merrifield GPIO support"
1141         depends on X86_INTEL_MID
1142         select GPIOLIB_IRQCHIP
1143         help
1144           Say Y here to support Intel Merrifield GPIO.
1146 config GPIO_ML_IOH
1147         tristate "OKI SEMICONDUCTOR ML7213 IOH GPIO support"
1148         depends on X86 || COMPILE_TEST
1149         select GENERIC_IRQ_CHIP
1150         help
1151           ML7213 is companion chip for Intel Atom E6xx series.
1152           This driver can be used for OKI SEMICONDUCTOR ML7213 IOH(Input/Output
1153           Hub) which is for IVI(In-Vehicle Infotainment) use.
1154           This driver can access the IOH's GPIO device.
1156 config GPIO_PCH
1157         tristate "Intel EG20T PCH/LAPIS Semiconductor IOH(ML7223/ML7831) GPIO"
1158         depends on X86_32 || MIPS || COMPILE_TEST
1159         select GENERIC_IRQ_CHIP
1160         help
1161           This driver is for PCH(Platform controller Hub) GPIO of Intel Topcliff
1162           which is an IOH(Input/Output Hub) for x86 embedded processor.
1163           This driver can access PCH GPIO device.
1165           This driver also can be used for LAPIS Semiconductor IOH(Input/
1166           Output Hub), ML7223 and ML7831.
1167           ML7223 IOH is for MP(Media Phone) use.
1168           ML7831 IOH is for general purpose use.
1169           ML7223/ML7831 is companion chip for Intel Atom E6xx series.
1170           ML7223/ML7831 is completely compatible for Intel EG20T PCH.
1172 config GPIO_PCI_IDIO_16
1173         tristate "ACCES PCI-IDIO-16 GPIO support"
1174         select GPIOLIB_IRQCHIP
1175         help
1176           Enables GPIO support for the ACCES PCI-IDIO-16. An interrupt is
1177           generated when any of the inputs change state (low to high or high to
1178           low). Input filter control is not supported by this driver, and the
1179           input filters are deactivated by this driver.
1181 config GPIO_RDC321X
1182         tristate "RDC R-321x GPIO support"
1183         select MFD_CORE
1184         select MFD_RDC321X
1185         help
1186           Support for the RDC R321x SoC GPIOs over southbridge
1187           PCI configuration space.
1189 config GPIO_SODAVILLE
1190         bool "Intel Sodaville GPIO support"
1191         depends on X86 && OF
1192         select GPIO_GENERIC
1193         select GENERIC_IRQ_CHIP
1194         help
1195           Say Y here to support Intel Sodaville GPIO.
1197 endmenu
1199 menu "SPI GPIO expanders"
1200         depends on SPI_MASTER
1202 config GPIO_74X164
1203         tristate "74x164 serial-in/parallel-out 8-bits shift register"
1204         depends on OF_GPIO
1205         help
1206           Driver for 74x164 compatible serial-in/parallel-out 8-outputs
1207           shift registers. This driver can be used to provide access
1208           to more gpio outputs.
1210 config GPIO_MAX7301
1211         tristate "Maxim MAX7301 GPIO expander"
1212         select GPIO_MAX730X
1213         help
1214           GPIO driver for Maxim MAX7301 SPI-based GPIO expander.
1216 config GPIO_MC33880
1217         tristate "Freescale MC33880 high-side/low-side switch"
1218         help
1219           SPI driver for Freescale MC33880 high-side/low-side switch.
1220           This provides GPIO interface supporting inputs and outputs.
1222 config GPIO_PISOSR
1223         tristate "Generic parallel-in/serial-out shift register"
1224         help
1225           GPIO driver for SPI compatible parallel-in/serial-out shift
1226           registers. These are input only devices.
1228 endmenu
1230 menu "SPI or I2C GPIO expanders"
1231         depends on (SPI_MASTER && !I2C) || I2C
1233 config GPIO_MCP23S08
1234         tristate "Microchip MCP23xxx I/O expander"
1235         depends on OF_GPIO
1236         select GPIOLIB_IRQCHIP
1237         select REGMAP_I2C if I2C
1238         select REGMAP if SPI_MASTER
1239         help
1240           SPI/I2C driver for Microchip MCP23S08/MCP23S17/MCP23008/MCP23017
1241           I/O expanders.
1242           This provides a GPIO interface supporting inputs and outputs.
1243           The I2C versions of the chips can be used as interrupt-controller.
1245 endmenu
1247 menu "USB GPIO expanders"
1248         depends on USB
1250 config GPIO_VIPERBOARD
1251         tristate "Viperboard GPIO a & b support"
1252         depends on MFD_VIPERBOARD
1253         help
1254           Say yes here to access the GPIO signals of Nano River
1255           Technologies Viperboard. There are two GPIO chips on the
1256           board: gpioa and gpiob.
1257           See viperboard API specification and Nano
1258           River Tech's viperboard.h for detailed meaning
1259           of the module parameters.
1261 endmenu
1263 endif