]> git.karo-electronics.de Git - karo-tx-linux.git/blob - drivers/gpio/Kconfig
Merge branches 'fixes-for-linus', 'generic', 'cavium', 'module.h-fixes', 'next/ath79...
[karo-tx-linux.git] / drivers / gpio / Kconfig
1 #
2 # GPIO infrastructure and drivers
3 #
4
5 config ARCH_WANT_OPTIONAL_GPIOLIB
6         bool
7         help
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.
14
15 config ARCH_REQUIRE_GPIOLIB
16         bool
17         select GPIOLIB
18         help
19           Platforms select gpiolib if they use this infrastructure
20           for all their GPIOs, usually starting with ones integrated
21           into SOC processors.
22           Selecting this from the architecture code will cause the gpiolib
23           code to always get built in.
24
25
26
27 menuconfig GPIOLIB
28         bool "GPIO Support"
29         depends on ARCH_WANT_OPTIONAL_GPIOLIB || ARCH_REQUIRE_GPIOLIB
30         select GENERIC_GPIO
31         help
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.
35
36           If unsure, say N.
37
38 if GPIOLIB
39
40 config DEBUG_GPIO
41         bool "Debug GPIO calls"
42         depends on DEBUG_KERNEL
43         help
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.
50
51 config GPIO_SYSFS
52         bool "/sys/class/gpio/... (sysfs interface)"
53         depends on SYSFS && EXPERIMENTAL
54         help
55           Say Y here to add a sysfs interface for GPIOs.
56
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.
62
63           Kernel drivers may also request that a particular GPIO be
64           exported to userspace; this can be useful when debugging.
65
66 config GPIO_GENERIC
67         tristate
68
69 # put drivers in the right section, in alphabetical order
70
71 config GPIO_DA9052
72         tristate "Dialog DA9052 GPIO"
73         depends on PMIC_DA9052 && BROKEN
74         help
75           Say yes here to enable the GPIO driver for the DA9052 chip.
76
77 config GPIO_MAX730X
78         tristate
79
80 comment "Memory mapped GPIO drivers:"
81
82 config GPIO_GENERIC_PLATFORM
83         tristate "Generic memory-mapped GPIO controller support (MMIO platform device)"
84         select GPIO_GENERIC
85         help
86           Say yes here to support basic platform_device memory-mapped GPIO controllers.
87
88 config GPIO_IT8761E
89         tristate "IT8761E GPIO support"
90         depends on X86  # unconditional access to IO space.
91         help
92           Say yes here to support GPIO functionality of IT8761E super I/O chip.
93
94 config GPIO_EP93XX
95         def_bool y
96         depends on ARCH_EP93XX
97         select GPIO_GENERIC
98
99 config GPIO_MM_LANTIQ
100         bool "Lantiq Memory mapped GPIOs"
101         depends on LANTIQ && SOC_XWAY
102         help
103           This enables support for memory mapped GPIOs on the External Bus Unit
104           (EBU) found on Lantiq SoCs. The gpios are output only as they are
105           created by attaching a 16bit latch to the bus.
106
107 config GPIO_MPC5200
108         def_bool y
109         depends on PPC_MPC52xx
110
111 config GPIO_MPC8XXX
112         bool "MPC512x/MPC8xxx GPIO support"
113         depends on PPC_MPC512x || PPC_MPC831x || PPC_MPC834x || PPC_MPC837x || \
114                    FSL_SOC_BOOKE || PPC_86xx
115         help
116           Say Y here if you're going to use hardware that connects to the
117           MPC512x/831x/834x/837x/8572/8610 GPIOs.
118
119 config GPIO_MSM_V1
120         tristate "Qualcomm MSM GPIO v1"
121         depends on GPIOLIB && ARCH_MSM
122         help
123           Say yes here to support the GPIO interface on ARM v6 based
124           Qualcomm MSM chips.  Most of the pins on the MSM can be
125           selected for GPIO, and are controlled by this driver.
126
127 config GPIO_MSM_V2
128         tristate "Qualcomm MSM GPIO v2"
129         depends on GPIOLIB && ARCH_MSM
130         help
131           Say yes here to support the GPIO interface on ARM v7 based
132           Qualcomm MSM chips.  Most of the pins on the MSM can be
133           selected for GPIO, and are controlled by this driver.
134
135 config GPIO_MXC
136         def_bool y
137         depends on ARCH_MXC
138         select GPIO_GENERIC
139         select GENERIC_IRQ_CHIP
140
141 config GPIO_MXS
142         def_bool y
143         depends on ARCH_MXS
144         select GPIO_GENERIC
145         select GENERIC_IRQ_CHIP
146
147 config GPIO_PL061
148         bool "PrimeCell PL061 GPIO support"
149         depends on ARM_AMBA
150         select GENERIC_IRQ_CHIP
151         help
152           Say yes here to support the PrimeCell PL061 GPIO device
153
154 config GPIO_PXA
155         bool "PXA GPIO support"
156         depends on ARCH_PXA || ARCH_MMP
157         help
158           Say yes here to support the PXA GPIO device
159
160 config GPIO_XILINX
161         bool "Xilinx GPIO support"
162         depends on PPC_OF || MICROBLAZE
163         help
164           Say yes here to support the Xilinx FPGA GPIO device
165
166 config GPIO_VR41XX
167         tristate "NEC VR4100 series General-purpose I/O Uint support"
168         depends on CPU_VR41XX
169         help
170           Say yes here to support the NEC VR4100 series General-purpose I/O Uint
171
172 config GPIO_SCH
173         tristate "Intel SCH/TunnelCreek GPIO"
174         depends on PCI && X86
175         select MFD_CORE
176         select LPC_SCH
177         help
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.
188
189 config GPIO_VX855
190         tristate "VIA VX855/VX875 GPIO"
191         depends on PCI
192         select MFD_CORE
193         select MFD_VX855
194         help
195           Support access to the VX855/VX875 GPIO lines through the gpio library.
196
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.
200
201 config GPIO_GE_FPGA
202         bool "GE FPGA based GPIO"
203         depends on GE_FPGA
204         help
205           Support for common GPIO functionality provided on some GE Single Board
206           Computers.
207
208           This driver provides basic support (configure as input or output, read
209           and write pin state) for GPIO implemented in a number of GE single
210           board computers.
211
212 comment "I2C GPIO expanders:"
213
214 config GPIO_MAX7300
215         tristate "Maxim MAX7300 GPIO expander"
216         depends on I2C
217         select GPIO_MAX730X
218         help
219           GPIO driver for Maxim MAX7301 I2C-based GPIO expander.
220
221 config GPIO_MAX732X
222         tristate "MAX7319, MAX7320-7327 I2C Port Expanders"
223         depends on I2C
224         help
225           Say yes here to support the MAX7319, MAX7320-7327 series of I2C
226           Port Expanders. Each IO port on these chips has a fixed role of
227           Input (designated by 'I'), Push-Pull Output ('O'), or Open-Drain
228           Input and Output (designed by 'P'). The combinations are listed
229           below:
230
231           8 bits:       max7319 (8I), max7320 (8O), max7321 (8P),
232                         max7322 (4I4O), max7323 (4P4O)
233
234           16 bits:      max7324 (8I8O), max7325 (8P8O),
235                         max7326 (4I12O), max7327 (4P12O)
236
237           Board setup code must specify the model to use, and the start
238           number for these GPIOs.
239
240 config GPIO_MAX732X_IRQ
241         bool "Interrupt controller support for MAX732x"
242         depends on GPIO_MAX732X=y && GENERIC_HARDIRQS
243         help
244           Say yes here to enable the max732x to be used as an interrupt
245           controller. It requires the driver to be built in the kernel.
246
247 config GPIO_MC9S08DZ60
248         bool "MX35 3DS BOARD MC9S08DZ60 GPIO functions"
249         depends on I2C && MACH_MX35_3DS
250         help
251           Select this to enable the MC9S08DZ60 GPIO driver
252
253 config GPIO_PCA953X
254         tristate "PCA953x, PCA955x, TCA64xx, and MAX7310 I/O ports"
255         depends on I2C
256         help
257           Say yes here to provide access to several register-oriented
258           SMBus I/O expanders, made mostly by NXP or TI.  Compatible
259           models include:
260
261           4 bits:       pca9536, pca9537
262
263           8 bits:       max7310, pca9534, pca9538, pca9554, pca9557,
264                         tca6408
265
266           16 bits:      pca9535, pca9539, pca9555, tca6416
267
268 config GPIO_PCA953X_IRQ
269         bool "Interrupt controller support for PCA953x"
270         depends on GPIO_PCA953X=y
271         help
272           Say yes here to enable the pca953x to be used as an interrupt
273           controller. It requires the driver to be built in the kernel.
274
275 config GPIO_PCF857X
276         tristate "PCF857x, PCA{85,96}7x, and MAX732[89] I2C GPIO expanders"
277         depends on I2C
278         help
279           Say yes here to provide access to most "quasi-bidirectional" I2C
280           GPIO expanders used for additional digital outputs or inputs.
281           Most of these parts are from NXP, though TI is a second source for
282           some of them.  Compatible models include:
283
284           8 bits:   pcf8574, pcf8574a, pca8574, pca8574a,
285                     pca9670, pca9672, pca9674, pca9674a,
286                     max7328, max7329
287
288           16 bits:  pcf8575, pcf8575c, pca8575,
289                     pca9671, pca9673, pca9675
290
291           Your board setup code will need to declare the expanders in
292           use, and assign numbers to the GPIOs they expose.  Those GPIOs
293           can then be used from drivers and other kernel code, just like
294           other GPIOs, but only accessible from task contexts.
295
296           This driver provides an in-kernel interface to those GPIOs using
297           platform-neutral GPIO calls.
298
299 config GPIO_SX150X
300         bool "Semtech SX150x I2C GPIO expander"
301         depends on I2C=y
302         default n
303         help
304           Say yes here to provide support for Semtech SX150-series I2C
305           GPIO expanders. Compatible models include:
306
307           8 bits:  sx1508q
308           16 bits: sx1509q
309
310 config GPIO_STMPE
311         bool "STMPE GPIOs"
312         depends on MFD_STMPE
313         help
314           This enables support for the GPIOs found on the STMPE I/O
315           Expanders.
316
317 config GPIO_STP_XWAY
318         bool "XWAY STP GPIOs"
319         depends on SOC_XWAY
320         help
321           This enables support for the Serial To Parallel (STP) unit found on
322           XWAY SoC. The STP allows the SoC to drive a shift registers cascade,
323           that can be up to 24 bit. This peripheral is aimed at driving leds.
324           Some of the gpios/leds can be auto updated by the soc with dsl and
325           phy status.
326
327 config GPIO_TC3589X
328         bool "TC3589X GPIOs"
329         depends on MFD_TC3589X
330         help
331           This enables support for the GPIOs found on the TC3589X
332           I/O Expander.
333
334 config GPIO_TPS65912
335         tristate "TI TPS65912 GPIO"
336         depends on (MFD_TPS65912_I2C || MFD_TPS65912_SPI)
337         help
338           This driver supports TPS65912 gpio chip
339
340 config GPIO_TWL4030
341         tristate "TWL4030, TWL5030, and TPS659x0 GPIOs"
342         depends on TWL4030_CORE
343         help
344           Say yes here to access the GPIO signals of various multi-function
345           power management chips from Texas Instruments.
346
347 config GPIO_WM831X
348         tristate "WM831x GPIOs"
349         depends on MFD_WM831X
350         help
351           Say yes here to access the GPIO signals of WM831x power management
352           chips from Wolfson Microelectronics.
353
354 config GPIO_WM8350
355         tristate "WM8350 GPIOs"
356         depends on MFD_WM8350
357         help
358           Say yes here to access the GPIO signals of WM8350 power management
359           chips from Wolfson Microelectronics.
360
361 config GPIO_WM8994
362         tristate "WM8994 GPIOs"
363         depends on MFD_WM8994
364         help
365           Say yes here to access the GPIO signals of WM8994 audio hub
366           CODECs from Wolfson Microelectronics.
367
368 config GPIO_ADP5520
369         tristate "GPIO Support for ADP5520 PMIC"
370         depends on PMIC_ADP5520
371         help
372           This option enables support for on-chip GPIO found
373           on Analog Devices ADP5520 PMICs.
374
375 config GPIO_ADP5588
376         tristate "ADP5588 I2C GPIO expander"
377         depends on I2C
378         help
379           This option enables support for 18 GPIOs found
380           on Analog Devices ADP5588 GPIO Expanders.
381
382 config GPIO_ADP5588_IRQ
383         bool "Interrupt controller support for ADP5588"
384         depends on GPIO_ADP5588=y
385         help
386           Say yes here to enable the adp5588 to be used as an interrupt
387           controller. It requires the driver to be built in the kernel.
388
389 comment "PCI GPIO expanders:"
390
391 config GPIO_CS5535
392         tristate "AMD CS5535/CS5536 GPIO support"
393         depends on PCI && X86 && MFD_CS5535
394         help
395           The AMD CS5535 and CS5536 southbridges support 28 GPIO pins that
396           can be used for quite a number of things.  The CS5535/6 is found on
397           AMD Geode and Lemote Yeeloong devices.
398
399           If unsure, say N.
400
401 config GPIO_BT8XX
402         tristate "BT8XX GPIO abuser"
403         depends on PCI && VIDEO_BT848=n
404         help
405           The BT8xx frame grabber chip has 24 GPIO pins than can be abused
406           as a cheap PCI GPIO card.
407
408           This chip can be found on Miro, Hauppauge and STB TV-cards.
409
410           The card needs to be physically altered for using it as a
411           GPIO card. For more information on how to build a GPIO card
412           from a BT8xx TV card, see the documentation file at
413           Documentation/bt8xxgpio.txt
414
415           If unsure, say N.
416
417 config GPIO_LANGWELL
418         bool "Intel Langwell/Penwell GPIO support"
419         depends on PCI && X86
420         help
421           Say Y here to support Intel Langwell/Penwell GPIO.
422
423 config GPIO_PCH
424         tristate "Intel EG20T PCH/LAPIS Semiconductor IOH(ML7223/ML7831) GPIO"
425         depends on PCI && X86
426         select GENERIC_IRQ_CHIP
427         help
428           This driver is for PCH(Platform controller Hub) GPIO of Intel Topcliff
429           which is an IOH(Input/Output Hub) for x86 embedded processor.
430           This driver can access PCH GPIO device.
431
432           This driver also can be used for LAPIS Semiconductor IOH(Input/
433           Output Hub), ML7223 and ML7831.
434           ML7223 IOH is for MP(Media Phone) use.
435           ML7831 IOH is for general purpose use.
436           ML7223/ML7831 is companion chip for Intel Atom E6xx series.
437           ML7223/ML7831 is completely compatible for Intel EG20T PCH.
438
439 config GPIO_ML_IOH
440         tristate "OKI SEMICONDUCTOR ML7213 IOH GPIO support"
441         depends on PCI
442         select GENERIC_IRQ_CHIP
443         help
444           ML7213 is companion chip for Intel Atom E6xx series.
445           This driver can be used for OKI SEMICONDUCTOR ML7213 IOH(Input/Output
446           Hub) which is for IVI(In-Vehicle Infotainment) use.
447           This driver can access the IOH's GPIO device.
448
449 config GPIO_SODAVILLE
450         bool "Intel Sodaville GPIO support"
451         depends on X86 && PCI && OF
452         select GPIO_GENERIC
453         select GENERIC_IRQ_CHIP
454         help
455           Say Y here to support Intel Sodaville GPIO.
456
457 config GPIO_TIMBERDALE
458         bool "Support for timberdale GPIO IP"
459         depends on MFD_TIMBERDALE && HAS_IOMEM
460         ---help---
461         Add support for the GPIO IP in the timberdale FPGA.
462
463 config GPIO_RDC321X
464         tristate "RDC R-321x GPIO support"
465         depends on PCI
466         select MFD_CORE
467         select MFD_RDC321X
468         help
469           Support for the RDC R321x SoC GPIOs over southbridge
470           PCI configuration space.
471
472 comment "SPI GPIO expanders:"
473
474 config GPIO_MAX7301
475         tristate "Maxim MAX7301 GPIO expander"
476         depends on SPI_MASTER
477         select GPIO_MAX730X
478         help
479           GPIO driver for Maxim MAX7301 SPI-based GPIO expander.
480
481 config GPIO_MCP23S08
482         tristate "Microchip MCP23xxx I/O expander"
483         depends on SPI_MASTER || I2C
484         help
485           SPI/I2C driver for Microchip MCP23S08/MCP23S17/MCP23008/MCP23017
486           I/O expanders.
487           This provides a GPIO interface supporting inputs and outputs.
488
489 config GPIO_MC33880
490         tristate "Freescale MC33880 high-side/low-side switch"
491         depends on SPI_MASTER
492         help
493           SPI driver for Freescale MC33880 high-side/low-side switch.
494           This provides GPIO interface supporting inputs and outputs.
495
496 config GPIO_74X164
497         tristate "74x164 serial-in/parallel-out 8-bits shift register"
498         depends on SPI_MASTER
499         help
500           Platform driver for 74x164 compatible serial-in/parallel-out
501           8-outputs shift registers. This driver can be used to provide access
502           to more gpio outputs.
503
504 comment "AC97 GPIO expanders:"
505
506 config GPIO_UCB1400
507         bool "Philips UCB1400 GPIO"
508         depends on UCB1400_CORE
509         help
510           This enables support for the Philips UCB1400 GPIO pins.
511           The UCB1400 is an AC97 audio codec.
512
513 comment "MODULbus GPIO expanders:"
514
515 config GPIO_JANZ_TTL
516         tristate "Janz VMOD-TTL Digital IO Module"
517         depends on MFD_JANZ_CMODIO
518         help
519           This enables support for the Janz VMOD-TTL Digital IO module.
520           This driver provides support for driving the pins in output
521           mode only. Input mode is not supported.
522
523 config GPIO_AB8500
524         bool "ST-Ericsson AB8500 Mixed Signal Circuit gpio functions"
525         depends on AB8500_CORE && BROKEN
526         help
527           Select this to enable the AB8500 IC GPIO driver
528
529 config GPIO_TPS65910
530         bool "TPS65910 GPIO"
531         depends on MFD_TPS65910
532         help
533           Select this option to enable GPIO driver for the TPS65910
534           chip family.
535 endif