gpio: add Intel SCH GPIO controller driver
[safe/jmp/linux-2.6] / drivers / gpio / Kconfig
1 #
2 # GPIO infrastructure and expanders
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 expansion card 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 # put expanders in the right section, in alphabetical order
67
68 config GPIO_MAX730X
69         tristate
70
71 comment "Memory mapped GPIO expanders:"
72
73 config GPIO_IT8761E
74         tristate "IT8761E GPIO support"
75         depends on GPIOLIB
76         help
77           Say yes here to support GPIO functionality of IT8761E super I/O chip.
78
79 config GPIO_PL061
80         bool "PrimeCell PL061 GPIO support"
81         depends on ARM_AMBA
82         help
83           Say yes here to support the PrimeCell PL061 GPIO device
84
85 config GPIO_XILINX
86         bool "Xilinx GPIO support"
87         depends on PPC_OF || MICROBLAZE
88         help
89           Say yes here to support the Xilinx FPGA GPIO device
90
91 config GPIO_VR41XX
92         tristate "NEC VR4100 series General-purpose I/O Uint support"
93         depends on CPU_VR41XX
94         help
95           Say yes here to support the NEC VR4100 series General-purpose I/O Uint
96
97 config GPIO_SCH
98         tristate "Intel SCH GPIO"
99         depends on GPIOLIB
100         select LPC_SCH
101         help
102           Say yes here to support GPIO interface on Intel Poulsbo SCH.
103           The Intel SCH contains a total of 14 GPIO pins. Ten GPIOs are
104           powered by the core power rail and are turned off during sleep
105           modes (S3 and higher). The remaining four GPIOs are powered by
106           the Intel SCH suspend power supply. These GPIOs remain
107           active during S3. The suspend powered GPIOs can be used to wake the
108           system from the Suspend-to-RAM state.
109
110           This driver can also be built as a module. If so, the module
111           will be called sch-gpio.
112
113 comment "I2C GPIO expanders:"
114
115 config GPIO_MAX7300
116         tristate "Maxim MAX7300 GPIO expander"
117         depends on I2C
118         select GPIO_MAX730X
119         help
120           GPIO driver for Maxim MAX7301 I2C-based GPIO expander.
121
122 config GPIO_MAX732X
123         tristate "MAX7319, MAX7320-7327 I2C Port Expanders"
124         depends on I2C
125         help
126           Say yes here to support the MAX7319, MAX7320-7327 series of I2C
127           Port Expanders. Each IO port on these chips has a fixed role of
128           Input (designated by 'I'), Push-Pull Output ('O'), or Open-Drain
129           Input and Output (designed by 'P'). The combinations are listed
130           below:
131
132           8 bits:       max7319 (8I), max7320 (8O), max7321 (8P),
133                         max7322 (4I4O), max7323 (4P4O)
134
135           16 bits:      max7324 (8I8O), max7325 (8P8O),
136                         max7326 (4I12O), max7327 (4P12O)
137
138           Board setup code must specify the model to use, and the start
139           number for these GPIOs.
140
141 config GPIO_PCA953X
142         tristate "PCA953x, PCA955x, TCA64xx, and MAX7310 I/O ports"
143         depends on I2C
144         help
145           Say yes here to provide access to several register-oriented
146           SMBus I/O expanders, made mostly by NXP or TI.  Compatible
147           models include:
148
149           4 bits:       pca9536, pca9537
150
151           8 bits:       max7310, pca9534, pca9538, pca9554, pca9557,
152                         tca6408
153
154           16 bits:      pca9535, pca9539, pca9555, tca6416
155
156           This driver can also be built as a module.  If so, the module
157           will be called pca953x.
158
159 config GPIO_PCA953X_IRQ
160         bool "Interrupt controller support for PCA953x"
161         depends on GPIO_PCA953X=y
162         help
163           Say yes here to enable the pca953x to be used as an interrupt
164           controller. It requires the driver to be built in the kernel.
165
166 config GPIO_PCF857X
167         tristate "PCF857x, PCA{85,96}7x, and MAX732[89] I2C GPIO expanders"
168         depends on I2C
169         help
170           Say yes here to provide access to most "quasi-bidirectional" I2C
171           GPIO expanders used for additional digital outputs or inputs.
172           Most of these parts are from NXP, though TI is a second source for
173           some of them.  Compatible models include:
174
175           8 bits:   pcf8574, pcf8574a, pca8574, pca8574a,
176                     pca9670, pca9672, pca9674, pca9674a,
177                     max7328, max7329
178
179           16 bits:  pcf8575, pcf8575c, pca8575,
180                     pca9671, pca9673, pca9675
181
182           Your board setup code will need to declare the expanders in
183           use, and assign numbers to the GPIOs they expose.  Those GPIOs
184           can then be used from drivers and other kernel code, just like
185           other GPIOs, but only accessible from task contexts.
186
187           This driver provides an in-kernel interface to those GPIOs using
188           platform-neutral GPIO calls.
189
190 config GPIO_TWL4030
191         tristate "TWL4030, TWL5030, and TPS659x0 GPIOs"
192         depends on TWL4030_CORE
193         help
194           Say yes here to access the GPIO signals of various multi-function
195           power management chips from Texas Instruments.
196
197 config GPIO_WM831X
198         tristate "WM831x GPIOs"
199         depends on MFD_WM831X
200         help
201           Say yes here to access the GPIO signals of WM831x power management
202           chips from Wolfson Microelectronics.
203
204 config GPIO_WM8350
205         tristate "WM8350 GPIOs"
206         depends on MFD_WM8350
207         help
208           Say yes here to access the GPIO signals of WM8350 power management
209           chips from Wolfson Microelectronics.
210
211 config GPIO_WM8994
212         tristate "WM8994 GPIOs"
213         depends on MFD_WM8994
214         help
215           Say yes here to access the GPIO signals of WM8994 audio hub
216           CODECs from Wolfson Microelectronics.
217
218 config GPIO_ADP5520
219         tristate "GPIO Support for ADP5520 PMIC"
220         depends on PMIC_ADP5520
221         help
222           This option enables support for on-chip GPIO found
223           on Analog Devices ADP5520 PMICs.
224
225           To compile this driver as a module, choose M here: the module will
226           be called adp5520-gpio.
227
228 config GPIO_ADP5588
229         tristate "ADP5588 I2C GPIO expander"
230         depends on I2C
231         help
232           This option enables support for 18 GPIOs found
233           on Analog Devices ADP5588 GPIO Expanders.
234           To compile this driver as a module, choose M here: the module will be
235           called adp5588-gpio.
236
237 comment "PCI GPIO expanders:"
238
239 config GPIO_CS5535
240         tristate "AMD CS5535/CS5536 GPIO support"
241         depends on PCI && !CS5535_GPIO
242         help
243           The AMD CS5535 and CS5536 southbridges support 28 GPIO pins that
244           can be used for quite a number of things.  The CS5535/6 is found on
245           AMD Geode and Lemote Yeeloong devices.
246
247           If unsure, say N.
248
249 config GPIO_BT8XX
250         tristate "BT8XX GPIO abuser"
251         depends on PCI && VIDEO_BT848=n
252         help
253           The BT8xx frame grabber chip has 24 GPIO pins than can be abused
254           as a cheap PCI GPIO card.
255
256           This chip can be found on Miro, Hauppauge and STB TV-cards.
257
258           The card needs to be physically altered for using it as a
259           GPIO card. For more information on how to build a GPIO card
260           from a BT8xx TV card, see the documentation file at
261           Documentation/bt8xxgpio.txt
262
263           If unsure, say N.
264
265 config GPIO_LANGWELL
266         bool "Intel Moorestown Platform Langwell GPIO support"
267         depends on PCI
268         help
269           Say Y here to support Intel Moorestown platform GPIO.
270
271 config GPIO_TIMBERDALE
272         bool "Support for timberdale GPIO IP"
273         depends on MFD_TIMBERDALE && GPIOLIB && HAS_IOMEM
274         ---help---
275         Add support for the GPIO IP in the timberdale FPGA.
276
277 comment "SPI GPIO expanders:"
278
279 config GPIO_MAX7301
280         tristate "Maxim MAX7301 GPIO expander"
281         depends on SPI_MASTER
282         select GPIO_MAX730X
283         help
284           GPIO driver for Maxim MAX7301 SPI-based GPIO expander.
285
286 config GPIO_MCP23S08
287         tristate "Microchip MCP23S08 I/O expander"
288         depends on SPI_MASTER
289         help
290           SPI driver for Microchip MCP23S08 I/O expander.  This provides
291           a GPIO interface supporting inputs and outputs.
292
293 config GPIO_MC33880
294         tristate "Freescale MC33880 high-side/low-side switch"
295         depends on SPI_MASTER
296         help
297           SPI driver for Freescale MC33880 high-side/low-side switch.
298           This provides GPIO interface supporting inputs and outputs.
299
300 comment "AC97 GPIO expanders:"
301
302 config GPIO_UCB1400
303         bool "Philips UCB1400 GPIO"
304         depends on UCB1400_CORE
305         help
306           This enables support for the Philips UCB1400 GPIO pins.
307           The UCB1400 is an AC97 audio codec.
308
309           To compile this driver as a module, choose M here: the
310           module will be called ucb1400_gpio.
311
312 endif