2 # GPIO infrastructure and drivers
5 config ARCH_WANT_OPTIONAL_GPIOLIB
8 Select this config option from the architecture Kconfig, if
9 it is possible to use gpiolib on the architecture, but let the
10 user decide whether to actually build it or not.
11 Select this instead of ARCH_REQUIRE_GPIOLIB, if your architecture does
12 not depend on GPIOs being available, but rather let the user
13 decide whether he needs it or not.
15 config ARCH_REQUIRE_GPIOLIB
19 Platforms select gpiolib if they use this infrastructure
20 for all their GPIOs, usually starting with ones integrated
22 Selecting this from the architecture code will cause the gpiolib
23 code to always get built in.
29 depends on ARCH_WANT_OPTIONAL_GPIOLIB || ARCH_REQUIRE_GPIOLIB
32 This enables GPIO support through the generic GPIO library.
33 You only need to enable this, if you also want to enable
34 one or more of the GPIO drivers below.
41 bool "Debug GPIO calls"
42 depends on DEBUG_KERNEL
44 Say Y here to add some extra checks and diagnostics to GPIO calls.
45 These checks help ensure that GPIOs have been properly initialized
46 before they are used, and that sleeping calls are not made from
47 non-sleeping contexts. They can make bitbanged serial protocols
48 slower. The diagnostics help catch the type of setup errors
49 that are most common when setting up new platforms or boards.
52 bool "/sys/class/gpio/... (sysfs interface)"
53 depends on SYSFS && EXPERIMENTAL
55 Say Y here to add a sysfs interface for GPIOs.
57 This is mostly useful to work around omissions in a system's
58 kernel support. Those are common in custom and semicustom
59 hardware assembled using standard kernels with a minimum of
60 custom patches. In those cases, userspace code may import
61 a given GPIO from the kernel, if no kernel driver requested it.
63 Kernel drivers may also request that a particular GPIO be
64 exported to userspace; this can be useful when debugging.
69 # put drivers in the right section, in alphabetical order
72 tristate "Dialog DA9052 GPIO"
73 depends on PMIC_DA9052
75 Say yes here to enable the GPIO driver for the DA9052 chip.
80 comment "Memory mapped GPIO drivers:"
82 config GPIO_GENERIC_PLATFORM
83 tristate "Generic memory-mapped GPIO controller support (MMIO platform device)"
86 Say yes here to support basic platform_device memory-mapped GPIO controllers.
89 tristate "IT8761E GPIO support"
91 Say yes here to support GPIO functionality of IT8761E super I/O chip.
95 depends on ARCH_EP93XX
100 depends on CPU_EXYNOS4210
104 depends on PPC_MPC52xx
107 bool "MPC512x/MPC8xxx GPIO support"
108 depends on PPC_MPC512x || PPC_MPC831x || PPC_MPC834x || PPC_MPC837x || \
109 FSL_SOC_BOOKE || PPC_86xx
111 Say Y here if you're going to use hardware that connects to the
112 MPC512x/831x/834x/837x/8572/8610 GPIOs.
115 tristate "Qualcomm MSM GPIO v1"
116 depends on GPIOLIB && ARCH_MSM
118 Say yes here to support the GPIO interface on ARM v6 based
119 Qualcomm MSM chips. Most of the pins on the MSM can be
120 selected for GPIO, and are controlled by this driver.
123 tristate "Qualcomm MSM GPIO v2"
124 depends on GPIOLIB && ARCH_MSM
126 Say yes here to support the GPIO interface on ARM v7 based
127 Qualcomm MSM chips. Most of the pins on the MSM can be
128 selected for GPIO, and are controlled by this driver.
134 select GENERIC_IRQ_CHIP
140 select GENERIC_IRQ_CHIP
142 config GPIO_PLAT_SAMSUNG
144 depends on SAMSUNG_GPIOLIB_4BIT
148 depends on CPU_S5PC100
152 depends on CPU_S5PV210
155 bool "PrimeCell PL061 GPIO support"
158 Say yes here to support the PrimeCell PL061 GPIO device
161 bool "Xilinx GPIO support"
162 depends on PPC_OF || MICROBLAZE
164 Say yes here to support the Xilinx FPGA GPIO device
167 tristate "NEC VR4100 series General-purpose I/O Uint support"
168 depends on CPU_VR41XX
170 Say yes here to support the NEC VR4100 series General-purpose I/O Uint
173 tristate "Intel SCH/TunnelCreek GPIO"
174 depends on PCI && X86
178 Say yes here to support GPIO interface on Intel Poulsbo SCH
179 or Intel Tunnel Creek processor.
180 The Intel SCH contains a total of 14 GPIO pins. Ten GPIOs are
181 powered by the core power rail and are turned off during sleep
182 modes (S3 and higher). The remaining four GPIOs are powered by
183 the Intel SCH suspend power supply. These GPIOs remain
184 active during S3. The suspend powered GPIOs can be used to wake the
185 system from the Suspend-to-RAM state.
186 The Intel Tunnel Creek processor has 5 GPIOs powered by the
187 core power rail and 9 from suspend power supply.
190 tristate "VIA VX855/VX875 GPIO"
191 depends on MFD_SUPPORT && PCI
195 Support access to the VX855/VX875 GPIO lines through the gpio library.
197 This driver provides common support for accessing the device,
198 additional drivers must be enabled in order to use the
199 functionality of the device.
201 comment "I2C GPIO expanders:"
204 tristate "Maxim MAX7300 GPIO expander"
208 GPIO driver for Maxim MAX7301 I2C-based GPIO expander.
211 tristate "MAX7319, MAX7320-7327 I2C Port Expanders"
214 Say yes here to support the MAX7319, MAX7320-7327 series of I2C
215 Port Expanders. Each IO port on these chips has a fixed role of
216 Input (designated by 'I'), Push-Pull Output ('O'), or Open-Drain
217 Input and Output (designed by 'P'). The combinations are listed
220 8 bits: max7319 (8I), max7320 (8O), max7321 (8P),
221 max7322 (4I4O), max7323 (4P4O)
223 16 bits: max7324 (8I8O), max7325 (8P8O),
224 max7326 (4I12O), max7327 (4P12O)
226 Board setup code must specify the model to use, and the start
227 number for these GPIOs.
229 config GPIO_MAX732X_IRQ
230 bool "Interrupt controller support for MAX732x"
231 depends on GPIO_MAX732X=y && GENERIC_HARDIRQS
233 Say yes here to enable the max732x to be used as an interrupt
234 controller. It requires the driver to be built in the kernel.
237 tristate "PCA953x, PCA955x, TCA64xx, and MAX7310 I/O ports"
240 Say yes here to provide access to several register-oriented
241 SMBus I/O expanders, made mostly by NXP or TI. Compatible
244 4 bits: pca9536, pca9537
246 8 bits: max7310, pca9534, pca9538, pca9554, pca9557,
249 16 bits: pca9535, pca9539, pca9555, tca6416
251 config GPIO_PCA953X_IRQ
252 bool "Interrupt controller support for PCA953x"
253 depends on GPIO_PCA953X=y
255 Say yes here to enable the pca953x to be used as an interrupt
256 controller. It requires the driver to be built in the kernel.
259 tristate "PCF857x, PCA{85,96}7x, and MAX732[89] I2C GPIO expanders"
262 Say yes here to provide access to most "quasi-bidirectional" I2C
263 GPIO expanders used for additional digital outputs or inputs.
264 Most of these parts are from NXP, though TI is a second source for
265 some of them. Compatible models include:
267 8 bits: pcf8574, pcf8574a, pca8574, pca8574a,
268 pca9670, pca9672, pca9674, pca9674a,
271 16 bits: pcf8575, pcf8575c, pca8575,
272 pca9671, pca9673, pca9675
274 Your board setup code will need to declare the expanders in
275 use, and assign numbers to the GPIOs they expose. Those GPIOs
276 can then be used from drivers and other kernel code, just like
277 other GPIOs, but only accessible from task contexts.
279 This driver provides an in-kernel interface to those GPIOs using
280 platform-neutral GPIO calls.
283 bool "Semtech SX150x I2C GPIO expander"
287 Say yes here to provide support for Semtech SX150-series I2C
288 GPIO expanders. Compatible models include:
297 This enables support for the GPIOs found on the STMPE I/O
302 depends on MFD_TC3589X
304 This enables support for the GPIOs found on the TC3589X
308 tristate "TI TPS65912 GPIO"
309 depends on (MFD_TPS65912_I2C || MFD_TPS65912_SPI)
311 This driver supports TPS65912 gpio chip
314 tristate "TWL4030, TWL5030, and TPS659x0 GPIOs"
315 depends on TWL4030_CORE
317 Say yes here to access the GPIO signals of various multi-function
318 power management chips from Texas Instruments.
321 tristate "WM831x GPIOs"
322 depends on MFD_WM831X
324 Say yes here to access the GPIO signals of WM831x power management
325 chips from Wolfson Microelectronics.
328 tristate "WM8350 GPIOs"
329 depends on MFD_WM8350
331 Say yes here to access the GPIO signals of WM8350 power management
332 chips from Wolfson Microelectronics.
335 tristate "WM8994 GPIOs"
336 depends on MFD_WM8994
338 Say yes here to access the GPIO signals of WM8994 audio hub
339 CODECs from Wolfson Microelectronics.
342 tristate "GPIO Support for ADP5520 PMIC"
343 depends on PMIC_ADP5520
345 This option enables support for on-chip GPIO found
346 on Analog Devices ADP5520 PMICs.
349 tristate "ADP5588 I2C GPIO expander"
352 This option enables support for 18 GPIOs found
353 on Analog Devices ADP5588 GPIO Expanders.
355 config GPIO_ADP5588_IRQ
356 bool "Interrupt controller support for ADP5588"
357 depends on GPIO_ADP5588=y
359 Say yes here to enable the adp5588 to be used as an interrupt
360 controller. It requires the driver to be built in the kernel.
362 comment "PCI GPIO expanders:"
365 tristate "AMD CS5535/CS5536 GPIO support"
366 depends on PCI && X86 && !CS5535_GPIO && MFD_CS5535
368 The AMD CS5535 and CS5536 southbridges support 28 GPIO pins that
369 can be used for quite a number of things. The CS5535/6 is found on
370 AMD Geode and Lemote Yeeloong devices.
375 tristate "BT8XX GPIO abuser"
376 depends on PCI && VIDEO_BT848=n
378 The BT8xx frame grabber chip has 24 GPIO pins than can be abused
379 as a cheap PCI GPIO card.
381 This chip can be found on Miro, Hauppauge and STB TV-cards.
383 The card needs to be physically altered for using it as a
384 GPIO card. For more information on how to build a GPIO card
385 from a BT8xx TV card, see the documentation file at
386 Documentation/bt8xxgpio.txt
391 bool "Intel Langwell/Penwell GPIO support"
392 depends on PCI && X86
394 Say Y here to support Intel Langwell/Penwell GPIO.
397 tristate "Intel EG20T PCH / OKI SEMICONDUCTOR ML7223 IOH GPIO"
398 depends on PCI && X86
400 This driver is for PCH(Platform controller Hub) GPIO of Intel Topcliff
401 which is an IOH(Input/Output Hub) for x86 embedded processor.
402 This driver can access PCH GPIO device.
404 This driver also can be used for OKI SEMICONDUCTOR IOH(Input/
406 ML7223 IOH is for MP(Media Phone) use.
407 ML7223 is companion chip for Intel Atom E6xx series.
408 ML7223 is completely compatible for Intel EG20T PCH.
411 tristate "OKI SEMICONDUCTOR ML7213 IOH GPIO support"
414 ML7213 is companion chip for Intel Atom E6xx series.
415 This driver can be used for OKI SEMICONDUCTOR ML7213 IOH(Input/Output
416 Hub) which is for IVI(In-Vehicle Infotainment) use.
417 This driver can access the IOH's GPIO device.
419 config GPIO_TIMBERDALE
420 bool "Support for timberdale GPIO IP"
421 depends on MFD_TIMBERDALE && HAS_IOMEM
423 Add support for the GPIO IP in the timberdale FPGA.
426 tristate "RDC R-321x GPIO support"
432 Support for the RDC R321x SoC GPIOs over southbridge
433 PCI configuration space.
435 comment "SPI GPIO expanders:"
438 tristate "Maxim MAX7301 GPIO expander"
439 depends on SPI_MASTER
442 GPIO driver for Maxim MAX7301 SPI-based GPIO expander.
445 tristate "Microchip MCP23xxx I/O expander"
446 depends on SPI_MASTER || I2C
448 SPI/I2C driver for Microchip MCP23S08/MCP23S17/MCP23008/MCP23017
450 This provides a GPIO interface supporting inputs and outputs.
453 tristate "Freescale MC33880 high-side/low-side switch"
454 depends on SPI_MASTER
456 SPI driver for Freescale MC33880 high-side/low-side switch.
457 This provides GPIO interface supporting inputs and outputs.
460 tristate "74x164 serial-in/parallel-out 8-bits shift register"
461 depends on SPI_MASTER
463 Platform driver for 74x164 compatible serial-in/parallel-out
464 8-outputs shift registers. This driver can be used to provide access
465 to more gpio outputs.
467 comment "AC97 GPIO expanders:"
470 bool "Philips UCB1400 GPIO"
471 depends on UCB1400_CORE
473 This enables support for the Philips UCB1400 GPIO pins.
474 The UCB1400 is an AC97 audio codec.
476 comment "MODULbus GPIO expanders:"
479 tristate "Janz VMOD-TTL Digital IO Module"
480 depends on MFD_JANZ_CMODIO
482 This enables support for the Janz VMOD-TTL Digital IO module.
483 This driver provides support for driving the pins in output
484 mode only. Input mode is not supported.
487 bool "ST-Ericsson AB8500 Mixed Signal Circuit gpio functions"
488 depends on AB8500_CORE && BROKEN
490 Select this to enable the AB8500 IC GPIO driver
494 depends on MFD_TPS65910
496 Select this option to enable GPIO driver for the TPS65910