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