gpio: move mpc8xxx/512x gpio driver to drivers/gpio
[pandora-kernel.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
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         help
91           Say yes here to support GPIO functionality of IT8761E super I/O chip.
92
93 config GPIO_EP93XX
94         def_bool y
95         depends on ARCH_EP93XX
96         select GPIO_GENERIC
97
98 config GPIO_EXYNOS4
99         def_bool y
100         depends on CPU_EXYNOS4210
101
102 config GPIO_MPC5200
103         def_bool y
104         depends on PPC_MPC52xx
105
106 config GPIO_MPC8XXX
107         bool "MPC512x/MPC8xxx GPIO support"
108         depends on PPC_MPC512x || PPC_MPC831x || PPC_MPC834x || PPC_MPC837x || \
109                    FSL_SOC_BOOKE || PPC_86xx
110         help
111           Say Y here if you're going to use hardware that connects to the
112           MPC512x/831x/834x/837x/8572/8610 GPIOs.
113
114 config GPIO_MSM_V1
115         tristate "Qualcomm MSM GPIO v1"
116         depends on GPIOLIB && ARCH_MSM
117         help
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.
121
122 config GPIO_MSM_V2
123         tristate "Qualcomm MSM GPIO v2"
124         depends on GPIOLIB && ARCH_MSM
125         help
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.
129
130 config GPIO_MXC
131         def_bool y
132         depends on ARCH_MXC
133         select GPIO_GENERIC
134         select GENERIC_IRQ_CHIP
135
136 config GPIO_MXS
137         def_bool y
138         depends on ARCH_MXS
139         select GPIO_GENERIC
140         select GENERIC_IRQ_CHIP
141
142 config GPIO_PLAT_SAMSUNG
143         def_bool y
144         depends on SAMSUNG_GPIOLIB_4BIT
145
146 config GPIO_S5PC100
147         def_bool y
148         depends on CPU_S5PC100
149
150 config GPIO_S5PV210
151         def_bool y
152         depends on CPU_S5PV210
153
154 config GPIO_PL061
155         bool "PrimeCell PL061 GPIO support"
156         depends on ARM_AMBA
157         help
158           Say yes here to support the PrimeCell PL061 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 MFD_SUPPORT && 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 comment "I2C GPIO expanders:"
202
203 config GPIO_MAX7300
204         tristate "Maxim MAX7300 GPIO expander"
205         depends on I2C
206         select GPIO_MAX730X
207         help
208           GPIO driver for Maxim MAX7301 I2C-based GPIO expander.
209
210 config GPIO_MAX732X
211         tristate "MAX7319, MAX7320-7327 I2C Port Expanders"
212         depends on I2C
213         help
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
218           below:
219
220           8 bits:       max7319 (8I), max7320 (8O), max7321 (8P),
221                         max7322 (4I4O), max7323 (4P4O)
222
223           16 bits:      max7324 (8I8O), max7325 (8P8O),
224                         max7326 (4I12O), max7327 (4P12O)
225
226           Board setup code must specify the model to use, and the start
227           number for these GPIOs.
228
229 config GPIO_MAX732X_IRQ
230         bool "Interrupt controller support for MAX732x"
231         depends on GPIO_MAX732X=y && GENERIC_HARDIRQS
232         help
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.
235
236 config GPIO_PCA953X
237         tristate "PCA953x, PCA955x, TCA64xx, and MAX7310 I/O ports"
238         depends on I2C
239         help
240           Say yes here to provide access to several register-oriented
241           SMBus I/O expanders, made mostly by NXP or TI.  Compatible
242           models include:
243
244           4 bits:       pca9536, pca9537
245
246           8 bits:       max7310, pca9534, pca9538, pca9554, pca9557,
247                         tca6408
248
249           16 bits:      pca9535, pca9539, pca9555, tca6416
250
251 config GPIO_PCA953X_IRQ
252         bool "Interrupt controller support for PCA953x"
253         depends on GPIO_PCA953X=y
254         help
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.
257
258 config GPIO_PCF857X
259         tristate "PCF857x, PCA{85,96}7x, and MAX732[89] I2C GPIO expanders"
260         depends on I2C
261         help
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:
266
267           8 bits:   pcf8574, pcf8574a, pca8574, pca8574a,
268                     pca9670, pca9672, pca9674, pca9674a,
269                     max7328, max7329
270
271           16 bits:  pcf8575, pcf8575c, pca8575,
272                     pca9671, pca9673, pca9675
273
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.
278
279           This driver provides an in-kernel interface to those GPIOs using
280           platform-neutral GPIO calls.
281
282 config GPIO_SX150X
283         bool "Semtech SX150x I2C GPIO expander"
284         depends on I2C=y
285         default n
286         help
287           Say yes here to provide support for Semtech SX150-series I2C
288           GPIO expanders. Compatible models include:
289
290           8 bits:  sx1508q
291           16 bits: sx1509q
292
293 config GPIO_STMPE
294         bool "STMPE GPIOs"
295         depends on MFD_STMPE
296         help
297           This enables support for the GPIOs found on the STMPE I/O
298           Expanders.
299
300 config GPIO_TC3589X
301         bool "TC3589X GPIOs"
302         depends on MFD_TC3589X
303         help
304           This enables support for the GPIOs found on the TC3589X
305           I/O Expander.
306
307 config GPIO_TPS65912
308         tristate "TI TPS65912 GPIO"
309         depends on (MFD_TPS65912_I2C || MFD_TPS65912_SPI)
310         help
311           This driver supports TPS65912 gpio chip
312
313 config GPIO_TWL4030
314         tristate "TWL4030, TWL5030, and TPS659x0 GPIOs"
315         depends on TWL4030_CORE
316         help
317           Say yes here to access the GPIO signals of various multi-function
318           power management chips from Texas Instruments.
319
320 config GPIO_WM831X
321         tristate "WM831x GPIOs"
322         depends on MFD_WM831X
323         help
324           Say yes here to access the GPIO signals of WM831x power management
325           chips from Wolfson Microelectronics.
326
327 config GPIO_WM8350
328         tristate "WM8350 GPIOs"
329         depends on MFD_WM8350
330         help
331           Say yes here to access the GPIO signals of WM8350 power management
332           chips from Wolfson Microelectronics.
333
334 config GPIO_WM8994
335         tristate "WM8994 GPIOs"
336         depends on MFD_WM8994
337         help
338           Say yes here to access the GPIO signals of WM8994 audio hub
339           CODECs from Wolfson Microelectronics.
340
341 config GPIO_ADP5520
342         tristate "GPIO Support for ADP5520 PMIC"
343         depends on PMIC_ADP5520
344         help
345           This option enables support for on-chip GPIO found
346           on Analog Devices ADP5520 PMICs.
347
348 config GPIO_ADP5588
349         tristate "ADP5588 I2C GPIO expander"
350         depends on I2C
351         help
352           This option enables support for 18 GPIOs found
353           on Analog Devices ADP5588 GPIO Expanders.
354
355 config GPIO_ADP5588_IRQ
356         bool "Interrupt controller support for ADP5588"
357         depends on GPIO_ADP5588=y
358         help
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.
361
362 comment "PCI GPIO expanders:"
363
364 config GPIO_CS5535
365         tristate "AMD CS5535/CS5536 GPIO support"
366         depends on PCI && X86 && !CS5535_GPIO && MFD_CS5535
367         help
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.
371
372           If unsure, say N.
373
374 config GPIO_BT8XX
375         tristate "BT8XX GPIO abuser"
376         depends on PCI && VIDEO_BT848=n
377         help
378           The BT8xx frame grabber chip has 24 GPIO pins than can be abused
379           as a cheap PCI GPIO card.
380
381           This chip can be found on Miro, Hauppauge and STB TV-cards.
382
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
387
388           If unsure, say N.
389
390 config GPIO_LANGWELL
391         bool "Intel Langwell/Penwell GPIO support"
392         depends on PCI && X86
393         help
394           Say Y here to support Intel Langwell/Penwell GPIO.
395
396 config GPIO_PCH
397         tristate "Intel EG20T PCH / OKI SEMICONDUCTOR ML7223 IOH GPIO"
398         depends on PCI && X86
399         help
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.
403
404           This driver also can be used for OKI SEMICONDUCTOR IOH(Input/
405           Output Hub), ML7223.
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.
409
410 config GPIO_ML_IOH
411         tristate "OKI SEMICONDUCTOR ML7213 IOH GPIO support"
412         depends on PCI
413         help
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.
418
419 config GPIO_TIMBERDALE
420         bool "Support for timberdale GPIO IP"
421         depends on MFD_TIMBERDALE && HAS_IOMEM
422         ---help---
423         Add support for the GPIO IP in the timberdale FPGA.
424
425 config GPIO_RDC321X
426         tristate "RDC R-321x GPIO support"
427         depends on PCI
428         select MFD_SUPPORT
429         select MFD_CORE
430         select MFD_RDC321X
431         help
432           Support for the RDC R321x SoC GPIOs over southbridge
433           PCI configuration space.
434
435 comment "SPI GPIO expanders:"
436
437 config GPIO_MAX7301
438         tristate "Maxim MAX7301 GPIO expander"
439         depends on SPI_MASTER
440         select GPIO_MAX730X
441         help
442           GPIO driver for Maxim MAX7301 SPI-based GPIO expander.
443
444 config GPIO_MCP23S08
445         tristate "Microchip MCP23xxx I/O expander"
446         depends on SPI_MASTER || I2C
447         help
448           SPI/I2C driver for Microchip MCP23S08/MCP23S17/MCP23008/MCP23017
449           I/O expanders.
450           This provides a GPIO interface supporting inputs and outputs.
451
452 config GPIO_MC33880
453         tristate "Freescale MC33880 high-side/low-side switch"
454         depends on SPI_MASTER
455         help
456           SPI driver for Freescale MC33880 high-side/low-side switch.
457           This provides GPIO interface supporting inputs and outputs.
458
459 config GPIO_74X164
460         tristate "74x164 serial-in/parallel-out 8-bits shift register"
461         depends on SPI_MASTER
462         help
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.
466
467 comment "AC97 GPIO expanders:"
468
469 config GPIO_UCB1400
470         bool "Philips UCB1400 GPIO"
471         depends on UCB1400_CORE
472         help
473           This enables support for the Philips UCB1400 GPIO pins.
474           The UCB1400 is an AC97 audio codec.
475
476 comment "MODULbus GPIO expanders:"
477
478 config GPIO_JANZ_TTL
479         tristate "Janz VMOD-TTL Digital IO Module"
480         depends on MFD_JANZ_CMODIO
481         help
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.
485
486 config GPIO_AB8500
487         bool "ST-Ericsson AB8500 Mixed Signal Circuit gpio functions"
488         depends on AB8500_CORE && BROKEN
489         help
490           Select this to enable the AB8500 IC GPIO driver
491
492 config GPIO_TPS65910
493         bool "TPS65910 GPIO"
494         depends on MFD_TPS65910
495         help
496           Select this option to enable GPIO driver for the TPS65910
497           chip family.
498 endif