xref: /linux/drivers/gpio/Kconfig (revision b53bc2819a71099ecfc3d61ba0796b3dcc6be321)
1a9c5fff5SDavid Brownell#
2e849dc04SLinus Walleij# GPIO infrastructure and drivers
3a9c5fff5SDavid Brownell#
4a9c5fff5SDavid Brownell
57563bbf8SMark Brownconfig ARCH_HAVE_CUSTOM_GPIO_H
67563bbf8SMark Brown	bool
77563bbf8SMark Brown	help
87563bbf8SMark Brown	  Selecting this config option from the architecture Kconfig allows
97563bbf8SMark Brown	  the architecture to provide a custom asm/gpio.h implementation
107563bbf8SMark Brown	  overriding the default implementations.  New uses of this are
117563bbf8SMark Brown	  strongly discouraged.
127563bbf8SMark Brown
137444a72eSMichael Bueschconfig ARCH_WANT_OPTIONAL_GPIOLIB
14a9c5fff5SDavid Brownell	bool
15a9c5fff5SDavid Brownell	help
167444a72eSMichael Buesch	  Select this config option from the architecture Kconfig, if
177444a72eSMichael Buesch	  it is possible to use gpiolib on the architecture, but let the
187444a72eSMichael Buesch	  user decide whether to actually build it or not.
197444a72eSMichael Buesch	  Select this instead of ARCH_REQUIRE_GPIOLIB, if your architecture does
207444a72eSMichael Buesch	  not depend on GPIOs being available, but rather let the user
217444a72eSMichael Buesch	  decide whether he needs it or not.
227444a72eSMichael Buesch
237444a72eSMichael Bueschconfig ARCH_REQUIRE_GPIOLIB
247444a72eSMichael Buesch	bool
257444a72eSMichael Buesch	select GPIOLIB
267444a72eSMichael Buesch	help
27a9c5fff5SDavid Brownell	  Platforms select gpiolib if they use this infrastructure
28a9c5fff5SDavid Brownell	  for all their GPIOs, usually starting with ones integrated
29a9c5fff5SDavid Brownell	  into SOC processors.
307444a72eSMichael Buesch	  Selecting this from the architecture code will cause the gpiolib
317444a72eSMichael Buesch	  code to always get built in.
32a9c5fff5SDavid Brownell
337444a72eSMichael Buesch
347444a72eSMichael Buesch
357444a72eSMichael Bueschmenuconfig GPIOLIB
367444a72eSMichael Buesch	bool "GPIO Support"
377444a72eSMichael Buesch	depends on ARCH_WANT_OPTIONAL_GPIOLIB || ARCH_REQUIRE_GPIOLIB
387444a72eSMichael Buesch	select GENERIC_GPIO
397444a72eSMichael Buesch	help
407444a72eSMichael Buesch	  This enables GPIO support through the generic GPIO library.
417444a72eSMichael Buesch	  You only need to enable this, if you also want to enable
42e849dc04SLinus Walleij	  one or more of the GPIO drivers below.
437444a72eSMichael Buesch
447444a72eSMichael Buesch	  If unsure, say N.
457444a72eSMichael Buesch
467444a72eSMichael Bueschif GPIOLIB
47a9c5fff5SDavid Brownell
48f141ed65SGrant Likelyconfig OF_GPIO
49f141ed65SGrant Likely	def_bool y
50f141ed65SGrant Likely	depends on OF && !SPARC
51f141ed65SGrant Likely
52a9c5fff5SDavid Brownellconfig DEBUG_GPIO
53a9c5fff5SDavid Brownell	bool "Debug GPIO calls"
54a9c5fff5SDavid Brownell	depends on DEBUG_KERNEL
55a9c5fff5SDavid Brownell	help
56a9c5fff5SDavid Brownell	  Say Y here to add some extra checks and diagnostics to GPIO calls.
57692105b8SMatt LaPlante	  These checks help ensure that GPIOs have been properly initialized
58692105b8SMatt LaPlante	  before they are used, and that sleeping calls are not made from
59692105b8SMatt LaPlante	  non-sleeping contexts.  They can make bitbanged serial protocols
60a9c5fff5SDavid Brownell	  slower.  The diagnostics help catch the type of setup errors
61a9c5fff5SDavid Brownell	  that are most common when setting up new platforms or boards.
62a9c5fff5SDavid Brownell
63d8f388d8SDavid Brownellconfig GPIO_SYSFS
64d8f388d8SDavid Brownell	bool "/sys/class/gpio/... (sysfs interface)"
65d8f388d8SDavid Brownell	depends on SYSFS && EXPERIMENTAL
66d8f388d8SDavid Brownell	help
67d8f388d8SDavid Brownell	  Say Y here to add a sysfs interface for GPIOs.
68d8f388d8SDavid Brownell
69d8f388d8SDavid Brownell	  This is mostly useful to work around omissions in a system's
70d8f388d8SDavid Brownell	  kernel support.  Those are common in custom and semicustom
71d8f388d8SDavid Brownell	  hardware assembled using standard kernels with a minimum of
72d8f388d8SDavid Brownell	  custom patches.  In those cases, userspace code may import
73d8f388d8SDavid Brownell	  a given GPIO from the kernel, if no kernel driver requested it.
74d8f388d8SDavid Brownell
75d8f388d8SDavid Brownell	  Kernel drivers may also request that a particular GPIO be
76d8f388d8SDavid Brownell	  exported to userspace; this can be useful when debugging.
77d8f388d8SDavid Brownell
78c103de24SGrant Likelyconfig GPIO_GENERIC
79c103de24SGrant Likely	tristate
80c103de24SGrant Likely
81e849dc04SLinus Walleij# put drivers in the right section, in alphabetical order
82a9c5fff5SDavid Brownell
8307bfc915Sashishj3config GPIO_DA9052
8407bfc915Sashishj3	tristate "Dialog DA9052 GPIO"
851c4fe3aaSAxel Lin	depends on PMIC_DA9052
8607bfc915Sashishj3	help
8707bfc915Sashishj3	  Say yes here to enable the GPIO driver for the DA9052 chip.
8807bfc915Sashishj3
8904ed4279SAshish Jangamconfig GPIO_DA9055
9004ed4279SAshish Jangam	tristate "Dialog Semiconductor DA9055 GPIO"
9104ed4279SAshish Jangam	depends on MFD_DA9055
9204ed4279SAshish Jangam	help
9304ed4279SAshish Jangam	  Say yes here to enable the GPIO driver for the DA9055 chip.
9404ed4279SAshish Jangam
9504ed4279SAshish Jangam	  The Dialog DA9055 PMIC chip has 3 GPIO pins that can be
9604ed4279SAshish Jangam	  be controller by this driver.
9704ed4279SAshish Jangam
9804ed4279SAshish Jangam	  If driver is built as a module it will be called gpio-da9055.
9904ed4279SAshish Jangam
100e952805dSWolfram Sangconfig GPIO_MAX730X
101e952805dSWolfram Sang	tristate
102e952805dSWolfram Sang
103e849dc04SLinus Walleijcomment "Memory mapped GPIO drivers:"
1040bcb6069SJohn Linn
105a3b8d4a5SAlexander Shiyanconfig GPIO_CLPS711X
106a3b8d4a5SAlexander Shiyan	def_bool y
107a3b8d4a5SAlexander Shiyan	depends on ARCH_CLPS711X
108a3b8d4a5SAlexander Shiyan
109c103de24SGrant Likelyconfig GPIO_GENERIC_PLATFORM
110c103de24SGrant Likely	tristate "Generic memory-mapped GPIO controller support (MMIO platform device)"
111c103de24SGrant Likely	select GPIO_GENERIC
112280df6b3SJamie Iles	help
113c103de24SGrant Likely	  Say yes here to support basic platform_device memory-mapped GPIO controllers.
114aeec56e3SAnton Vorontsov
1159cc0cb3cSDenis Turischevconfig GPIO_IT8761E
1169cc0cb3cSDenis Turischev	tristate "IT8761E GPIO support"
117265fe02bSGrant Likely	depends on X86  # unconditional access to IO space.
1189cc0cb3cSDenis Turischev	help
1199cc0cb3cSDenis Turischev	  Say yes here to support GPIO functionality of IT8761E super I/O chip.
1209cc0cb3cSDenis Turischev
121a07e103eSMagnus Dammconfig GPIO_EM
122a07e103eSMagnus Damm	tristate "Emma Mobile GPIO"
123a07e103eSMagnus Damm	depends on ARM
124a07e103eSMagnus Damm	help
125a07e103eSMagnus Damm	  Say yes here to support GPIO on Renesas Emma Mobile SoCs.
126a07e103eSMagnus Damm
127c6b52c13SH Hartley Sweetenconfig GPIO_EP93XX
128c6b52c13SH Hartley Sweeten	def_bool y
129c6b52c13SH Hartley Sweeten	depends on ARCH_EP93XX
1301e4c8842SH Hartley Sweeten	select GPIO_GENERIC
131c6b52c13SH Hartley Sweeten
1325238f7bcSJohn Crispinconfig GPIO_MM_LANTIQ
1335238f7bcSJohn Crispin	bool "Lantiq Memory mapped GPIOs"
1345238f7bcSJohn Crispin	depends on LANTIQ && SOC_XWAY
1355238f7bcSJohn Crispin	help
1365238f7bcSJohn Crispin	  This enables support for memory mapped GPIOs on the External Bus Unit
1375238f7bcSJohn Crispin	  (EBU) found on Lantiq SoCs. The gpios are output only as they are
1385238f7bcSJohn Crispin	  created by attaching a 16bit latch to the bus.
1395238f7bcSJohn Crispin
1406eae1aceSGrant Likelyconfig GPIO_MPC5200
1416eae1aceSGrant Likely	def_bool y
1426eae1aceSGrant Likely	depends on PPC_MPC52xx
1436eae1aceSGrant Likely
144c68308ddSWolfram Sangconfig GPIO_MPC8XXX
145c68308ddSWolfram Sang	bool "MPC512x/MPC8xxx GPIO support"
146c68308ddSWolfram Sang	depends on PPC_MPC512x || PPC_MPC831x || PPC_MPC834x || PPC_MPC837x || \
147c68308ddSWolfram Sang		   FSL_SOC_BOOKE || PPC_86xx
148c68308ddSWolfram Sang	help
149c68308ddSWolfram Sang	  Say Y here if you're going to use hardware that connects to the
150c68308ddSWolfram Sang	  MPC512x/831x/834x/837x/8572/8610 GPIOs.
151c68308ddSWolfram Sang
15274d10d74SDavid Brownconfig GPIO_MSM_V1
15374d10d74SDavid Brown	tristate "Qualcomm MSM GPIO v1"
154afcc0f8cSChristian Dietrich	depends on GPIOLIB && ARCH_MSM && (ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50)
15574d10d74SDavid Brown	help
15674d10d74SDavid Brown	  Say yes here to support the GPIO interface on ARM v6 based
15774d10d74SDavid Brown	  Qualcomm MSM chips.  Most of the pins on the MSM can be
15874d10d74SDavid Brown	  selected for GPIO, and are controlled by this driver.
15974d10d74SDavid Brown
1601a5ab4b3SDavid Brownconfig GPIO_MSM_V2
1611a5ab4b3SDavid Brown	tristate "Qualcomm MSM GPIO v2"
1621a5ab4b3SDavid Brown	depends on GPIOLIB && ARCH_MSM
1631a5ab4b3SDavid Brown	help
1641a5ab4b3SDavid Brown	  Say yes here to support the GPIO interface on ARM v7 based
1651a5ab4b3SDavid Brown	  Qualcomm MSM chips.  Most of the pins on the MSM can be
1661a5ab4b3SDavid Brown	  selected for GPIO, and are controlled by this driver.
1671a5ab4b3SDavid Brown
168fefe7b09SThomas Petazzoniconfig GPIO_MVEBU
169fefe7b09SThomas Petazzoni	def_bool y
170fefe7b09SThomas Petazzoni	depends on ARCH_MVEBU
171fefe7b09SThomas Petazzoni	select GPIO_GENERIC
172fefe7b09SThomas Petazzoni	select GENERIC_IRQ_CHIP
173fefe7b09SThomas Petazzoni
174d37a65bbSShawn Guoconfig GPIO_MXC
175d37a65bbSShawn Guo	def_bool y
176d37a65bbSShawn Guo	depends on ARCH_MXC
177c103de24SGrant Likely	select GPIO_GENERIC
178e4ea9333SShawn Guo	select GENERIC_IRQ_CHIP
179c103de24SGrant Likely
180c103de24SGrant Likelyconfig GPIO_MXS
181c103de24SGrant Likely	def_bool y
182c103de24SGrant Likely	depends on ARCH_MXS
18306f88a8aSShawn Guo	select GPIO_GENERIC
184498c17cfSShawn Guo	select GENERIC_IRQ_CHIP
185d37a65bbSShawn Guo
1861e9c2859SBaruch Siachconfig GPIO_PL061
1871e9c2859SBaruch Siach	bool "PrimeCell PL061 GPIO support"
1881e9c2859SBaruch Siach	depends on ARM_AMBA
1893ab52475SRob Herring	select GENERIC_IRQ_CHIP
1901e9c2859SBaruch Siach	help
1911e9c2859SBaruch Siach	  Say yes here to support the PrimeCell PL061 GPIO device
1921e9c2859SBaruch Siach
193157d2644SHaojian Zhuangconfig GPIO_PXA
194157d2644SHaojian Zhuang	bool "PXA GPIO support"
195157d2644SHaojian Zhuang	depends on ARCH_PXA || ARCH_MMP
196157d2644SHaojian Zhuang	help
197157d2644SHaojian Zhuang	  Say yes here to support the PXA GPIO device
198157d2644SHaojian Zhuang
199*b53bc281SShiraz Hashimconfig GPIO_SPEAR_SPICS
200*b53bc281SShiraz Hashim	bool "ST SPEAr13xx SPI Chip Select as GPIO support"
201*b53bc281SShiraz Hashim	depends on PLAT_SPEAR
202*b53bc281SShiraz Hashim	select GENERIC_IRQ_CHIP
203*b53bc281SShiraz Hashim	help
204*b53bc281SShiraz Hashim	  Say yes here to support ST SPEAr SPI Chip Select as GPIO device
205*b53bc281SShiraz Hashim
2067b0d44f3SAlessandro Rubiniconfig GPIO_STA2X11
2077b0d44f3SAlessandro Rubini	bool "STA2x11/ConneXt GPIO support"
2087b0d44f3SAlessandro Rubini	depends on MFD_STA2X11
2097b0d44f3SAlessandro Rubini	select GENERIC_IRQ_CHIP
2107b0d44f3SAlessandro Rubini	help
2117b0d44f3SAlessandro Rubini	  Say yes here to support the STA2x11/ConneXt GPIO device.
2127b0d44f3SAlessandro Rubini	  The GPIO module has 128 GPIO pins with alternate functions.
2137b0d44f3SAlessandro Rubini
2144e48b1c5STony Priskconfig GPIO_VT8500
2154e48b1c5STony Prisk	bool "VIA/Wondermedia SoC GPIO Support"
2164e48b1c5STony Prisk	depends on ARCH_VT8500
2174e48b1c5STony Prisk	help
2184e48b1c5STony Prisk	  Say yes here to support the VT8500/WM8505/WM8650 GPIO controller.
2194e48b1c5STony Prisk
2200bcb6069SJohn Linnconfig GPIO_XILINX
2210bcb6069SJohn Linn	bool "Xilinx GPIO support"
2226fa612b5SMichal Simek	depends on PPC_OF || MICROBLAZE
2230bcb6069SJohn Linn	help
2240bcb6069SJohn Linn	  Say yes here to support the Xilinx FPGA GPIO device
2250bcb6069SJohn Linn
22627fdd325SYoichi Yuasaconfig GPIO_VR41XX
22727fdd325SYoichi Yuasa	tristate "NEC VR4100 series General-purpose I/O Uint support"
22827fdd325SYoichi Yuasa	depends on CPU_VR41XX
22927fdd325SYoichi Yuasa	help
23027fdd325SYoichi Yuasa	  Say yes here to support the NEC VR4100 series General-purpose I/O Uint
23127fdd325SYoichi Yuasa
232be9b06b2SDenis Turischevconfig GPIO_SCH
23377820ffaSSeth Heasley	tristate "Intel SCH/TunnelCreek/Centerton GPIO"
2346cff9e2bSH Hartley Sweeten	depends on PCI && X86
235860fb8c1SRandy Dunlap	select MFD_CORE
236be9b06b2SDenis Turischev	select LPC_SCH
237be9b06b2SDenis Turischev	help
23877820ffaSSeth Heasley	  Say yes here to support GPIO interface on Intel Poulsbo SCH,
23977820ffaSSeth Heasley	  Intel Tunnel Creek processor or Intel Centerton processor.
240be9b06b2SDenis Turischev	  The Intel SCH contains a total of 14 GPIO pins. Ten GPIOs are
241be9b06b2SDenis Turischev	  powered by the core power rail and are turned off during sleep
242be9b06b2SDenis Turischev	  modes (S3 and higher). The remaining four GPIOs are powered by
243be9b06b2SDenis Turischev	  the Intel SCH suspend power supply. These GPIOs remain
244be9b06b2SDenis Turischev	  active during S3. The suspend powered GPIOs can be used to wake the
245be9b06b2SDenis Turischev	  system from the Suspend-to-RAM state.
246f04ddfcdSDenis Turischev	  The Intel Tunnel Creek processor has 5 GPIOs powered by the
247f04ddfcdSDenis Turischev	  core power rail and 9 from suspend power supply.
24877820ffaSSeth Heasley	  The Intel Centerton processor has a total of 30 GPIO pins.
24977820ffaSSeth Heasley	  Twenty-one are powered by the core power rail and 9 from the
25077820ffaSSeth Heasley	  suspend power supply.
251be9b06b2SDenis Turischev
2526ed9f9c4SPeter Tyserconfig GPIO_ICH
2536ed9f9c4SPeter Tyser	tristate "Intel ICH GPIO"
2546ed9f9c4SPeter Tyser	depends on PCI && X86
2556ed9f9c4SPeter Tyser	select MFD_CORE
2566ed9f9c4SPeter Tyser	select LPC_ICH
2576ed9f9c4SPeter Tyser	help
2586ed9f9c4SPeter Tyser	  Say yes here to support the GPIO functionality of a number of Intel
2596ed9f9c4SPeter Tyser	  ICH-based chipsets.  Currently supported devices: ICH6, ICH7, ICH8
2606ed9f9c4SPeter Tyser	  ICH9, ICH10, Series 5/3400 (eg Ibex Peak), Series 6/C200 (eg
2616ed9f9c4SPeter Tyser	  Cougar Point), NM10 (Tiger Point), and 3100 (Whitmore Lake).
2626ed9f9c4SPeter Tyser
2636ed9f9c4SPeter Tyser	  If unsure, say N.
264be9b06b2SDenis Turischev
26599ea2626SDaniel Drakeconfig GPIO_VX855
26699ea2626SDaniel Drake	tristate "VIA VX855/VX875 GPIO"
2678a0a8e8eSArnd Bergmann	depends on PCI
26899ea2626SDaniel Drake	select MFD_CORE
26999ea2626SDaniel Drake	select MFD_VX855
27099ea2626SDaniel Drake	help
27199ea2626SDaniel Drake	  Support access to the VX855/VX875 GPIO lines through the gpio library.
27299ea2626SDaniel Drake
27399ea2626SDaniel Drake	  This driver provides common support for accessing the device,
27499ea2626SDaniel Drake	  additional drivers must be enabled in order to use the
27599ea2626SDaniel Drake	  functionality of the device.
27699ea2626SDaniel Drake
2776518bb69SMartyn Welchconfig GPIO_GE_FPGA
2786518bb69SMartyn Welch	bool "GE FPGA based GPIO"
2796518bb69SMartyn Welch	depends on GE_FPGA
2806518bb69SMartyn Welch	help
2816518bb69SMartyn Welch	  Support for common GPIO functionality provided on some GE Single Board
2826518bb69SMartyn Welch	  Computers.
2836518bb69SMartyn Welch
2846518bb69SMartyn Welch	  This driver provides basic support (configure as input or output, read
2856518bb69SMartyn Welch	  and write pin state) for GPIO implemented in a number of GE single
2866518bb69SMartyn Welch	  board computers.
2876518bb69SMartyn Welch
288a9c5fff5SDavid Brownellcomment "I2C GPIO expanders:"
289a9c5fff5SDavid Brownell
29031ba56f2SMark Brownconfig GPIO_ARIZONA
29131ba56f2SMark Brown	tristate "Wolfson Microelectronics Arizona class devices"
29231ba56f2SMark Brown	depends on MFD_ARIZONA
29331ba56f2SMark Brown	help
29431ba56f2SMark Brown	  Support for GPIOs on Wolfson Arizona class devices.
29531ba56f2SMark Brown
296e952805dSWolfram Sangconfig GPIO_MAX7300
297e952805dSWolfram Sang	tristate "Maxim MAX7300 GPIO expander"
298e952805dSWolfram Sang	depends on I2C
299e952805dSWolfram Sang	select GPIO_MAX730X
300e952805dSWolfram Sang	help
301e952805dSWolfram Sang	  GPIO driver for Maxim MAX7301 I2C-based GPIO expander.
302e952805dSWolfram Sang
303bbcd6d54SEric Miaoconfig GPIO_MAX732X
304bbcd6d54SEric Miao	tristate "MAX7319, MAX7320-7327 I2C Port Expanders"
305bbcd6d54SEric Miao	depends on I2C
306bbcd6d54SEric Miao	help
307bbcd6d54SEric Miao	  Say yes here to support the MAX7319, MAX7320-7327 series of I2C
308bbcd6d54SEric Miao	  Port Expanders. Each IO port on these chips has a fixed role of
309bbcd6d54SEric Miao	  Input (designated by 'I'), Push-Pull Output ('O'), or Open-Drain
310bbcd6d54SEric Miao	  Input and Output (designed by 'P'). The combinations are listed
311bbcd6d54SEric Miao	  below:
312bbcd6d54SEric Miao
313bbcd6d54SEric Miao	  8 bits:	max7319 (8I), max7320 (8O), max7321 (8P),
314bbcd6d54SEric Miao		  	max7322 (4I4O), max7323 (4P4O)
315bbcd6d54SEric Miao
316bbcd6d54SEric Miao	  16 bits:	max7324 (8I8O), max7325 (8P8O),
317bbcd6d54SEric Miao		  	max7326 (4I12O), max7327 (4P12O)
318bbcd6d54SEric Miao
319bbcd6d54SEric Miao	  Board setup code must specify the model to use, and the start
320bbcd6d54SEric Miao	  number for these GPIOs.
321bbcd6d54SEric Miao
322a80a0bbeSMarc Zyngierconfig GPIO_MAX732X_IRQ
323a80a0bbeSMarc Zyngier	bool "Interrupt controller support for MAX732x"
324a80a0bbeSMarc Zyngier	depends on GPIO_MAX732X=y && GENERIC_HARDIRQS
325a80a0bbeSMarc Zyngier	help
326a80a0bbeSMarc Zyngier	  Say yes here to enable the max732x to be used as an interrupt
327a80a0bbeSMarc Zyngier	  controller. It requires the driver to be built in the kernel.
328a80a0bbeSMarc Zyngier
329608589b1Swu guoxingconfig GPIO_MC9S08DZ60
330608589b1Swu guoxing	bool "MX35 3DS BOARD MC9S08DZ60 GPIO functions"
3314c30aa33SAxel Lin	depends on I2C=y && MACH_MX35_3DS
332608589b1Swu guoxing	help
333608589b1Swu guoxing	  Select this to enable the MC9S08DZ60 GPIO driver
334608589b1Swu guoxing
335f3dc3630SGuennadi Liakhovetskiconfig GPIO_PCA953X
336c29985ddSAxel Lin	tristate "PCA953x, PCA955x, PCA957x, TCA64xx, and MAX7310 I/O ports"
3379e60fdcfSeric miao	depends on I2C
3389e60fdcfSeric miao	help
3397059d4b0SDavid Brownell	  Say yes here to provide access to several register-oriented
3407059d4b0SDavid Brownell	  SMBus I/O expanders, made mostly by NXP or TI.  Compatible
3417059d4b0SDavid Brownell	  models include:
3427059d4b0SDavid Brownell
3437059d4b0SDavid Brownell	  4 bits:	pca9536, pca9537
3447059d4b0SDavid Brownell
345c29985ddSAxel Lin	  8 bits:	max7310, max7315, pca6107, pca9534, pca9538, pca9554,
346c29985ddSAxel Lin			pca9556, pca9557, pca9574, tca6408
3477059d4b0SDavid Brownell
348c29985ddSAxel Lin	  16 bits:	max7312, max7313, pca9535, pca9539, pca9555, pca9575,
349c29985ddSAxel Lin			tca6416
3509e60fdcfSeric miao
35189ea8bbeSMarc Zyngierconfig GPIO_PCA953X_IRQ
35289ea8bbeSMarc Zyngier	bool "Interrupt controller support for PCA953x"
35389ea8bbeSMarc Zyngier	depends on GPIO_PCA953X=y
35489ea8bbeSMarc Zyngier	help
35589ea8bbeSMarc Zyngier	  Say yes here to enable the pca953x to be used as an interrupt
35689ea8bbeSMarc Zyngier	  controller. It requires the driver to be built in the kernel.
35789ea8bbeSMarc Zyngier
35815fae37dSDavid Brownellconfig GPIO_PCF857X
3591673ad52SDavid Brownell	tristate "PCF857x, PCA{85,96}7x, and MAX732[89] I2C GPIO expanders"
36015fae37dSDavid Brownell	depends on I2C
361901acf5bSArnd Bergmann	select IRQ_DOMAIN
36215fae37dSDavid Brownell	help
36315fae37dSDavid Brownell	  Say yes here to provide access to most "quasi-bidirectional" I2C
36415fae37dSDavid Brownell	  GPIO expanders used for additional digital outputs or inputs.
36515fae37dSDavid Brownell	  Most of these parts are from NXP, though TI is a second source for
36615fae37dSDavid Brownell	  some of them.  Compatible models include:
36715fae37dSDavid Brownell
36815fae37dSDavid Brownell	  8 bits:   pcf8574, pcf8574a, pca8574, pca8574a,
3691673ad52SDavid Brownell	            pca9670, pca9672, pca9674, pca9674a,
3701673ad52SDavid Brownell	  	    max7328, max7329
37115fae37dSDavid Brownell
37215fae37dSDavid Brownell	  16 bits:  pcf8575, pcf8575c, pca8575,
37315fae37dSDavid Brownell	            pca9671, pca9673, pca9675
37415fae37dSDavid Brownell
37515fae37dSDavid Brownell	  Your board setup code will need to declare the expanders in
37615fae37dSDavid Brownell	  use, and assign numbers to the GPIOs they expose.  Those GPIOs
37715fae37dSDavid Brownell	  can then be used from drivers and other kernel code, just like
37815fae37dSDavid Brownell	  other GPIOs, but only accessible from task contexts.
37915fae37dSDavid Brownell
38015fae37dSDavid Brownell	  This driver provides an in-kernel interface to those GPIOs using
38115fae37dSDavid Brownell	  platform-neutral GPIO calls.
38215fae37dSDavid Brownell
383e9fe32bcSLaxman Dewanganconfig GPIO_RC5T583
384e9fe32bcSLaxman Dewangan	bool "RICOH RC5T583 GPIO"
385e9fe32bcSLaxman Dewangan	depends on MFD_RC5T583
386e9fe32bcSLaxman Dewangan	help
387e9fe32bcSLaxman Dewangan	  Select this option to enable GPIO driver for the Ricoh RC5T583
388e9fe32bcSLaxman Dewangan	  chip family.
389e9fe32bcSLaxman Dewangan	  This driver provides the support for driving/reading the gpio pins
390e9fe32bcSLaxman Dewangan	  of RC5T583 device through standard gpio library.
391e9fe32bcSLaxman Dewangan
392c34f16b7SGregory Beanconfig GPIO_SX150X
393c34f16b7SGregory Bean	bool "Semtech SX150x I2C GPIO expander"
394c34f16b7SGregory Bean	depends on I2C=y
395c34f16b7SGregory Bean	default n
396c34f16b7SGregory Bean	help
397c34f16b7SGregory Bean	  Say yes here to provide support for Semtech SX150-series I2C
398c34f16b7SGregory Bean	  GPIO expanders. Compatible models include:
399c34f16b7SGregory Bean
400c34f16b7SGregory Bean	  8 bits:  sx1508q
401c34f16b7SGregory Bean	  16 bits: sx1509q
402c34f16b7SGregory Bean
40303f822f5SRabin Vincentconfig GPIO_STMPE
40403f822f5SRabin Vincent	bool "STMPE GPIOs"
40503f822f5SRabin Vincent	depends on MFD_STMPE
40603f822f5SRabin Vincent	help
40703f822f5SRabin Vincent	  This enables support for the GPIOs found on the STMPE I/O
40803f822f5SRabin Vincent	  Expanders.
40903f822f5SRabin Vincent
4105238f7bcSJohn Crispinconfig GPIO_STP_XWAY
4115238f7bcSJohn Crispin	bool "XWAY STP GPIOs"
4125238f7bcSJohn Crispin	depends on SOC_XWAY
4135238f7bcSJohn Crispin	help
4145238f7bcSJohn Crispin	  This enables support for the Serial To Parallel (STP) unit found on
4155238f7bcSJohn Crispin	  XWAY SoC. The STP allows the SoC to drive a shift registers cascade,
4165238f7bcSJohn Crispin	  that can be up to 24 bit. This peripheral is aimed at driving leds.
4175238f7bcSJohn Crispin	  Some of the gpios/leds can be auto updated by the soc with dsl and
4185238f7bcSJohn Crispin	  phy status.
4195238f7bcSJohn Crispin
420f4e8afdcSSundar Iyerconfig GPIO_TC3589X
421f4e8afdcSSundar Iyer	bool "TC3589X GPIOs"
422f4e8afdcSSundar Iyer	depends on MFD_TC3589X
423d88b25beSRabin Vincent	help
424f4e8afdcSSundar Iyer	  This enables support for the GPIOs found on the TC3589X
425d88b25beSRabin Vincent	  I/O Expander.
426d88b25beSRabin Vincent
427668a6cc7SMargarita Olayaconfig GPIO_TPS65912
428668a6cc7SMargarita Olaya	tristate "TI TPS65912 GPIO"
429668a6cc7SMargarita Olaya	depends on (MFD_TPS65912_I2C || MFD_TPS65912_SPI)
430668a6cc7SMargarita Olaya	help
431668a6cc7SMargarita Olaya	  This driver supports TPS65912 gpio chip
432668a6cc7SMargarita Olaya
433e9d35947SDavid Brownellconfig GPIO_TWL4030
434e9d35947SDavid Brownell	tristate "TWL4030, TWL5030, and TPS659x0 GPIOs"
435e9d35947SDavid Brownell	depends on TWL4030_CORE
436e9d35947SDavid Brownell	help
437e9d35947SDavid Brownell	  Say yes here to access the GPIO signals of various multi-function
438e9d35947SDavid Brownell	  power management chips from Texas Instruments.
439e9d35947SDavid Brownell
44070ffd691SPeter Ujfalusiconfig GPIO_TWL6040
44170ffd691SPeter Ujfalusi	tristate "TWL6040 GPO"
44270ffd691SPeter Ujfalusi	depends on TWL6040_CORE
44370ffd691SPeter Ujfalusi	help
44470ffd691SPeter Ujfalusi	  Say yes here to access the GPO signals of twl6040
44570ffd691SPeter Ujfalusi	  audio chip from Texas Instruments.
44670ffd691SPeter Ujfalusi
447e4b736f1SMark Brownconfig GPIO_WM831X
448e4b736f1SMark Brown	tristate "WM831x GPIOs"
449e4b736f1SMark Brown	depends on MFD_WM831X
450e4b736f1SMark Brown	help
451e4b736f1SMark Brown	  Say yes here to access the GPIO signals of WM831x power management
452e4b736f1SMark Brown	  chips from Wolfson Microelectronics.
453e4b736f1SMark Brown
45438f6ce45SMark Brownconfig GPIO_WM8350
45538f6ce45SMark Brown	tristate "WM8350 GPIOs"
45638f6ce45SMark Brown	depends on MFD_WM8350
45738f6ce45SMark Brown	help
45838f6ce45SMark Brown	  Say yes here to access the GPIO signals of WM8350 power management
45938f6ce45SMark Brown	  chips from Wolfson Microelectronics.
46038f6ce45SMark Brown
4612955c309SMark Brownconfig GPIO_WM8994
4622955c309SMark Brown	tristate "WM8994 GPIOs"
4632955c309SMark Brown	depends on MFD_WM8994
4642955c309SMark Brown	help
4652955c309SMark Brown	  Say yes here to access the GPIO signals of WM8994 audio hub
4662955c309SMark Brown	  CODECs from Wolfson Microelectronics.
4672955c309SMark Brown
468ef72af40SMichael Hennerichconfig GPIO_ADP5520
469ef72af40SMichael Hennerich	tristate "GPIO Support for ADP5520 PMIC"
470ef72af40SMichael Hennerich	depends on PMIC_ADP5520
471ef72af40SMichael Hennerich	help
472ef72af40SMichael Hennerich	  This option enables support for on-chip GPIO found
473ef72af40SMichael Hennerich	  on Analog Devices ADP5520 PMICs.
474ef72af40SMichael Hennerich
47580884094SMichael Hennerichconfig GPIO_ADP5588
47680884094SMichael Hennerich	tristate "ADP5588 I2C GPIO expander"
47780884094SMichael Hennerich	depends on I2C
47880884094SMichael Hennerich	help
47980884094SMichael Hennerich	  This option enables support for 18 GPIOs found
48080884094SMichael Hennerich	  on Analog Devices ADP5588 GPIO Expanders.
48180884094SMichael Hennerich
482459773aeSMichael Hennerichconfig GPIO_ADP5588_IRQ
483459773aeSMichael Hennerich	bool "Interrupt controller support for ADP5588"
484459773aeSMichael Hennerich	depends on GPIO_ADP5588=y
485459773aeSMichael Hennerich	help
486459773aeSMichael Hennerich	  Say yes here to enable the adp5588 to be used as an interrupt
487459773aeSMichael Hennerich	  controller. It requires the driver to be built in the kernel.
488459773aeSMichael Hennerich
4895e969a40SThierry Redingconfig GPIO_ADNP
4905e969a40SThierry Reding	tristate "Avionic Design N-bit GPIO expander"
4915e969a40SThierry Reding	depends on I2C && OF
4925e969a40SThierry Reding	help
4935e969a40SThierry Reding	  This option enables support for N GPIOs found on Avionic Design
4945e969a40SThierry Reding	  I2C GPIO expanders. The register space will be extended by powers
4955e969a40SThierry Reding	  of two, so the controller will need to accomodate for that. For
4965e969a40SThierry Reding	  example: if a controller provides 48 pins, 6 registers will be
4975e969a40SThierry Reding	  enough to represent all pins, but the driver will assume a
4985e969a40SThierry Reding	  register layout for 64 pins (8 registers).
4995e969a40SThierry Reding
500ff1d5c2fSMichael Bueschcomment "PCI GPIO expanders:"
501ff1d5c2fSMichael Buesch
5025f0a96b0SAndres Salomonconfig GPIO_CS5535
5035f0a96b0SAndres Salomon	tristate "AMD CS5535/CS5536 GPIO support"
504babf000eSPaul Bolle	depends on PCI && X86 && MFD_CS5535
5055f0a96b0SAndres Salomon	help
5065f0a96b0SAndres Salomon	  The AMD CS5535 and CS5536 southbridges support 28 GPIO pins that
5075f0a96b0SAndres Salomon	  can be used for quite a number of things.  The CS5535/6 is found on
5085f0a96b0SAndres Salomon	  AMD Geode and Lemote Yeeloong devices.
5095f0a96b0SAndres Salomon
5105f0a96b0SAndres Salomon	  If unsure, say N.
5115f0a96b0SAndres Salomon
512ff1d5c2fSMichael Bueschconfig GPIO_BT8XX
513ff1d5c2fSMichael Buesch	tristate "BT8XX GPIO abuser"
514ff1d5c2fSMichael Buesch	depends on PCI && VIDEO_BT848=n
515ff1d5c2fSMichael Buesch	help
516ff1d5c2fSMichael Buesch	  The BT8xx frame grabber chip has 24 GPIO pins than can be abused
517ff1d5c2fSMichael Buesch	  as a cheap PCI GPIO card.
518ff1d5c2fSMichael Buesch
519ff1d5c2fSMichael Buesch	  This chip can be found on Miro, Hauppauge and STB TV-cards.
520ff1d5c2fSMichael Buesch
521ff1d5c2fSMichael Buesch	  The card needs to be physically altered for using it as a
522ff1d5c2fSMichael Buesch	  GPIO card. For more information on how to build a GPIO card
523ff1d5c2fSMichael Buesch	  from a BT8xx TV card, see the documentation file at
524ff1d5c2fSMichael Buesch	  Documentation/bt8xxgpio.txt
525ff1d5c2fSMichael Buesch
526ff1d5c2fSMichael Buesch	  If unsure, say N.
527ff1d5c2fSMichael Buesch
528f942a7deSDmitry Eremin-Solenikovconfig GPIO_AMD8111
529f942a7deSDmitry Eremin-Solenikov	tristate "AMD 8111 GPIO driver"
530f942a7deSDmitry Eremin-Solenikov	depends on PCI
531f942a7deSDmitry Eremin-Solenikov	help
532f942a7deSDmitry Eremin-Solenikov	  The AMD 8111 south bridge contains 32 GPIO pins which can be used.
533f942a7deSDmitry Eremin-Solenikov
534f942a7deSDmitry Eremin-Solenikov	  Note, that usually system firmware/ACPI handles GPIO pins on their
535f942a7deSDmitry Eremin-Solenikov	  own and users might easily break their systems with uncarefull usage
536f942a7deSDmitry Eremin-Solenikov	  of this driver!
537f942a7deSDmitry Eremin-Solenikov
538f942a7deSDmitry Eremin-Solenikov	  If unsure, say N
539f942a7deSDmitry Eremin-Solenikov
5408bf02617SAlek Duconfig GPIO_LANGWELL
5418081c84cSAlek Du	bool "Intel Langwell/Penwell GPIO support"
54261ab3fe5SThomas Gleixner	depends on PCI && X86
543465f2bd4SMika Westerberg	select IRQ_DOMAIN
5448bf02617SAlek Du	help
5458081c84cSAlek Du	  Say Y here to support Intel Langwell/Penwell GPIO.
5468bf02617SAlek Du
54704c17aa8STomoya MORINAGAconfig GPIO_PCH
548868fea05STomoya MORINAGA	tristate "Intel EG20T PCH/LAPIS Semiconductor IOH(ML7223/ML7831) GPIO"
54961ab3fe5SThomas Gleixner	depends on PCI && X86
55038eb18a6STomoya MORINAGA	select GENERIC_IRQ_CHIP
55104c17aa8STomoya MORINAGA	help
55204c17aa8STomoya MORINAGA	  This driver is for PCH(Platform controller Hub) GPIO of Intel Topcliff
55304c17aa8STomoya MORINAGA	  which is an IOH(Input/Output Hub) for x86 embedded processor.
55404c17aa8STomoya MORINAGA	  This driver can access PCH GPIO device.
55504c17aa8STomoya MORINAGA
556868fea05STomoya MORINAGA	  This driver also can be used for LAPIS Semiconductor IOH(Input/
557868fea05STomoya MORINAGA	  Output Hub), ML7223 and ML7831.
558bc786cceSTomoya MORINAGA	  ML7223 IOH is for MP(Media Phone) use.
559868fea05STomoya MORINAGA	  ML7831 IOH is for general purpose use.
560868fea05STomoya MORINAGA	  ML7223/ML7831 is companion chip for Intel Atom E6xx series.
561868fea05STomoya MORINAGA	  ML7223/ML7831 is completely compatible for Intel EG20T PCH.
562bc786cceSTomoya MORINAGA
56349a36793STomoya MORINAGAconfig GPIO_ML_IOH
56449a36793STomoya MORINAGA	tristate "OKI SEMICONDUCTOR ML7213 IOH GPIO support"
56549a36793STomoya MORINAGA	depends on PCI
56654be5663STomoya MORINAGA	select GENERIC_IRQ_CHIP
56749a36793STomoya MORINAGA	help
56849a36793STomoya MORINAGA	  ML7213 is companion chip for Intel Atom E6xx series.
56949a36793STomoya MORINAGA	  This driver can be used for OKI SEMICONDUCTOR ML7213 IOH(Input/Output
57049a36793STomoya MORINAGA	  Hub) which is for IVI(In-Vehicle Infotainment) use.
57149a36793STomoya MORINAGA	  This driver can access the IOH's GPIO device.
57249a36793STomoya MORINAGA
573b43ab901SSebastian Andrzej Siewiorconfig GPIO_SODAVILLE
574b43ab901SSebastian Andrzej Siewior	bool "Intel Sodaville GPIO support"
5753ffc9cebSGrant Likely	depends on X86 && PCI && OF
576b43ab901SSebastian Andrzej Siewior	select GPIO_GENERIC
577b43ab901SSebastian Andrzej Siewior	select GENERIC_IRQ_CHIP
578b43ab901SSebastian Andrzej Siewior	help
579b43ab901SSebastian Andrzej Siewior	  Say Y here to support Intel Sodaville GPIO.
580b43ab901SSebastian Andrzej Siewior
58135570ac6SRichard Röjforsconfig GPIO_TIMBERDALE
58235570ac6SRichard Röjfors	bool "Support for timberdale GPIO IP"
5836cff9e2bSH Hartley Sweeten	depends on MFD_TIMBERDALE && HAS_IOMEM
58435570ac6SRichard Röjfors	---help---
58535570ac6SRichard Röjfors	Add support for the GPIO IP in the timberdale FPGA.
58635570ac6SRichard Röjfors
5879956d02dSFlorian Fainelliconfig GPIO_RDC321X
5889956d02dSFlorian Fainelli	tristate "RDC R-321x GPIO support"
5896cff9e2bSH Hartley Sweeten	depends on PCI
590e4be3cb7SRandy Dunlap	select MFD_CORE
5919956d02dSFlorian Fainelli	select MFD_RDC321X
5929956d02dSFlorian Fainelli	help
5939956d02dSFlorian Fainelli	  Support for the RDC R321x SoC GPIOs over southbridge
5949956d02dSFlorian Fainelli	  PCI configuration space.
5959956d02dSFlorian Fainelli
596a9c5fff5SDavid Brownellcomment "SPI GPIO expanders:"
597a9c5fff5SDavid Brownell
5980c36ec31SJuergen Beisertconfig GPIO_MAX7301
5990c36ec31SJuergen Beisert	tristate "Maxim MAX7301 GPIO expander"
6000c36ec31SJuergen Beisert	depends on SPI_MASTER
601e952805dSWolfram Sang	select GPIO_MAX730X
6020c36ec31SJuergen Beisert	help
603e952805dSWolfram Sang	  GPIO driver for Maxim MAX7301 SPI-based GPIO expander.
6040c36ec31SJuergen Beisert
605e58b9e27SDavid Brownellconfig GPIO_MCP23S08
606752ad5e8SPeter Korsgaard	tristate "Microchip MCP23xxx I/O expander"
607752ad5e8SPeter Korsgaard	depends on SPI_MASTER || I2C
608e58b9e27SDavid Brownell	help
609752ad5e8SPeter Korsgaard	  SPI/I2C driver for Microchip MCP23S08/MCP23S17/MCP23008/MCP23017
610752ad5e8SPeter Korsgaard	  I/O expanders.
6110b7bb77fSPeter Korsgaard	  This provides a GPIO interface supporting inputs and outputs.
612e58b9e27SDavid Brownell
6131e5db006SRichard Röjforsconfig GPIO_MC33880
6141e5db006SRichard Röjfors	tristate "Freescale MC33880 high-side/low-side switch"
6151e5db006SRichard Röjfors	depends on SPI_MASTER
6161e5db006SRichard Röjfors	help
6171e5db006SRichard Röjfors	  SPI driver for Freescale MC33880 high-side/low-side switch.
6181e5db006SRichard Röjfors	  This provides GPIO interface supporting inputs and outputs.
6191e5db006SRichard Röjfors
620ead6db08SMiguel Gaioconfig GPIO_74X164
621ead6db08SMiguel Gaio	tristate "74x164 serial-in/parallel-out 8-bits shift register"
622ead6db08SMiguel Gaio	depends on SPI_MASTER
623ead6db08SMiguel Gaio	help
624ead6db08SMiguel Gaio	  Platform driver for 74x164 compatible serial-in/parallel-out
625ead6db08SMiguel Gaio	  8-outputs shift registers. This driver can be used to provide access
626ead6db08SMiguel Gaio	  to more gpio outputs.
627ead6db08SMiguel Gaio
6284cf8e53bSMarek Vasutcomment "AC97 GPIO expanders:"
6294cf8e53bSMarek Vasut
6304cf8e53bSMarek Vasutconfig GPIO_UCB1400
6314cf8e53bSMarek Vasut	bool "Philips UCB1400 GPIO"
6324cf8e53bSMarek Vasut	depends on UCB1400_CORE
6334cf8e53bSMarek Vasut	help
6344cf8e53bSMarek Vasut	  This enables support for the Philips UCB1400 GPIO pins.
6354cf8e53bSMarek Vasut	  The UCB1400 is an AC97 audio codec.
6364cf8e53bSMarek Vasut
637800e69fbSIra W. Snydercomment "MODULbus GPIO expanders:"
638800e69fbSIra W. Snyder
639800e69fbSIra W. Snyderconfig GPIO_JANZ_TTL
640800e69fbSIra W. Snyder	tristate "Janz VMOD-TTL Digital IO Module"
641800e69fbSIra W. Snyder	depends on MFD_JANZ_CMODIO
642800e69fbSIra W. Snyder	help
643800e69fbSIra W. Snyder	  This enables support for the Janz VMOD-TTL Digital IO module.
644800e69fbSIra W. Snyder	  This driver provides support for driving the pins in output
645800e69fbSIra W. Snyder	  mode only. Input mode is not supported.
646800e69fbSIra W. Snyder
647c103de24SGrant Likelyconfig GPIO_AB8500
6480cb3fcd7SBibek Basu	bool "ST-Ericsson AB8500 Mixed Signal Circuit gpio functions"
6499ad198cbSThomas Gleixner	depends on AB8500_CORE && BROKEN
6500cb3fcd7SBibek Basu	help
6510cb3fcd7SBibek Basu	  Select this to enable the AB8500 IC GPIO driver
65283545d83SJorge Eduardo Candelaria
65372bd9860SLaxman Dewanganconfig GPIO_TPS6586X
65472bd9860SLaxman Dewangan	bool "TPS6586X GPIO"
65572bd9860SLaxman Dewangan	depends on MFD_TPS6586X
65672bd9860SLaxman Dewangan	help
65772bd9860SLaxman Dewangan	  Select this option to enable GPIO driver for the TPS6586X
65872bd9860SLaxman Dewangan	  chip family.
65972bd9860SLaxman Dewangan
66083545d83SJorge Eduardo Candelariaconfig GPIO_TPS65910
66183545d83SJorge Eduardo Candelaria	bool "TPS65910 GPIO"
66283545d83SJorge Eduardo Candelaria	depends on MFD_TPS65910
66383545d83SJorge Eduardo Candelaria	help
66483545d83SJorge Eduardo Candelaria	  Select this option to enable GPIO driver for the TPS65910
66583545d83SJorge Eduardo Candelaria	  chip family.
66625cf2507SMathias Nyman
66725cf2507SMathias Nymanconfig GPIO_MSIC
66825cf2507SMathias Nyman	bool "Intel MSIC mixed signal gpio support"
66925cf2507SMathias Nyman	depends on MFD_INTEL_MSIC
67025cf2507SMathias Nyman	help
67125cf2507SMathias Nyman	  Enable support for GPIO on intel MSIC controllers found in
67225cf2507SMathias Nyman	  intel MID devices
67325cf2507SMathias Nyman
6747444a72eSMichael Bueschendif
675