]> rtime.felk.cvut.cz Git - can-eth-gw-linux.git/blob - drivers/gpio/Kconfig
Merge branch 'pm-devfreq'
[can-eth-gw-linux.git] / drivers / gpio / Kconfig
1 #
2 # GPIO infrastructure and drivers
3 #
4
5 config ARCH_HAVE_CUSTOM_GPIO_H
6         bool
7         help
8           Selecting this config option from the architecture Kconfig allows
9           the architecture to provide a custom asm/gpio.h implementation
10           overriding the default implementations.  New uses of this are
11           strongly discouraged.
12
13 config ARCH_WANT_OPTIONAL_GPIOLIB
14         bool
15         help
16           Select this config option from the architecture Kconfig, if
17           it is possible to use gpiolib on the architecture, but let the
18           user decide whether to actually build it or not.
19           Select this instead of ARCH_REQUIRE_GPIOLIB, if your architecture does
20           not depend on GPIOs being available, but rather let the user
21           decide whether he needs it or not.
22
23 config ARCH_REQUIRE_GPIOLIB
24         bool
25         select GPIOLIB
26         help
27           Platforms select gpiolib if they use this infrastructure
28           for all their GPIOs, usually starting with ones integrated
29           into SOC processors.
30           Selecting this from the architecture code will cause the gpiolib
31           code to always get built in.
32
33
34
35 menuconfig GPIOLIB
36         bool "GPIO Support"
37         depends on ARCH_WANT_OPTIONAL_GPIOLIB || ARCH_REQUIRE_GPIOLIB
38         select GENERIC_GPIO
39         help
40           This enables GPIO support through the generic GPIO library.
41           You only need to enable this, if you also want to enable
42           one or more of the GPIO drivers below.
43
44           If unsure, say N.
45
46 if GPIOLIB
47
48 config OF_GPIO
49         def_bool y
50         depends on OF
51
52 config GPIO_ACPI
53         def_bool y
54         depends on ACPI
55
56 config DEBUG_GPIO
57         bool "Debug GPIO calls"
58         depends on DEBUG_KERNEL
59         help
60           Say Y here to add some extra checks and diagnostics to GPIO calls.
61           These checks help ensure that GPIOs have been properly initialized
62           before they are used, and that sleeping calls are not made from
63           non-sleeping contexts.  They can make bitbanged serial protocols
64           slower.  The diagnostics help catch the type of setup errors
65           that are most common when setting up new platforms or boards.
66
67 config GPIO_SYSFS
68         bool "/sys/class/gpio/... (sysfs interface)"
69         depends on SYSFS && EXPERIMENTAL
70         help
71           Say Y here to add a sysfs interface for GPIOs.
72
73           This is mostly useful to work around omissions in a system's
74           kernel support.  Those are common in custom and semicustom
75           hardware assembled using standard kernels with a minimum of
76           custom patches.  In those cases, userspace code may import
77           a given GPIO from the kernel, if no kernel driver requested it.
78
79           Kernel drivers may also request that a particular GPIO be
80           exported to userspace; this can be useful when debugging.
81
82 config GPIO_GENERIC
83         tristate
84
85 # put drivers in the right section, in alphabetical order
86
87 config GPIO_DA9052
88         tristate "Dialog DA9052 GPIO"
89         depends on PMIC_DA9052
90         help
91           Say yes here to enable the GPIO driver for the DA9052 chip.
92
93 config GPIO_MAX730X
94         tristate
95
96 comment "Memory mapped GPIO drivers:"
97
98 config GPIO_GENERIC_PLATFORM
99         tristate "Generic memory-mapped GPIO controller support (MMIO platform device)"
100         select GPIO_GENERIC
101         help
102           Say yes here to support basic platform_device memory-mapped GPIO controllers.
103
104 config GPIO_IT8761E
105         tristate "IT8761E GPIO support"
106         depends on X86  # unconditional access to IO space.
107         help
108           Say yes here to support GPIO functionality of IT8761E super I/O chip.
109
110 config GPIO_EM
111         tristate "Emma Mobile GPIO"
112         depends on ARM
113         help
114           Say yes here to support GPIO on Renesas Emma Mobile SoCs.
115
116 config GPIO_EP93XX
117         def_bool y
118         depends on ARCH_EP93XX
119         select GPIO_GENERIC
120
121 config GPIO_MM_LANTIQ
122         bool "Lantiq Memory mapped GPIOs"
123         depends on LANTIQ && SOC_XWAY
124         help
125           This enables support for memory mapped GPIOs on the External Bus Unit
126           (EBU) found on Lantiq SoCs. The gpios are output only as they are
127           created by attaching a 16bit latch to the bus.
128
129 config GPIO_MPC5200
130         def_bool y
131         depends on PPC_MPC52xx
132
133 config GPIO_MPC8XXX
134         bool "MPC512x/MPC8xxx GPIO support"
135         depends on PPC_MPC512x || PPC_MPC831x || PPC_MPC834x || PPC_MPC837x || \
136                    FSL_SOC_BOOKE || PPC_86xx
137         help
138           Say Y here if you're going to use hardware that connects to the
139           MPC512x/831x/834x/837x/8572/8610 GPIOs.
140
141 config GPIO_MSM_V1
142         tristate "Qualcomm MSM GPIO v1"
143         depends on GPIOLIB && ARCH_MSM && (ARCH_MSM7X00A || ARCH_MSM7X30 || ARCH_QSD8X50)
144         help
145           Say yes here to support the GPIO interface on ARM v6 based
146           Qualcomm MSM chips.  Most of the pins on the MSM can be
147           selected for GPIO, and are controlled by this driver.
148
149 config GPIO_MSM_V2
150         tristate "Qualcomm MSM GPIO v2"
151         depends on GPIOLIB && ARCH_MSM
152         help
153           Say yes here to support the GPIO interface on ARM v7 based
154           Qualcomm MSM chips.  Most of the pins on the MSM can be
155           selected for GPIO, and are controlled by this driver.
156
157 config GPIO_MVEBU
158         def_bool y
159         depends on ARCH_MVEBU
160         select GPIO_GENERIC
161         select GENERIC_IRQ_CHIP
162
163 config GPIO_MXC
164         def_bool y
165         depends on ARCH_MXC
166         select GPIO_GENERIC
167         select GENERIC_IRQ_CHIP
168
169 config GPIO_MXS
170         def_bool y
171         depends on ARCH_MXS
172         select GPIO_GENERIC
173         select GENERIC_IRQ_CHIP
174
175 config GPIO_PL061
176         bool "PrimeCell PL061 GPIO support"
177         depends on ARM_AMBA
178         select GENERIC_IRQ_CHIP
179         help
180           Say yes here to support the PrimeCell PL061 GPIO device
181
182 config GPIO_PXA
183         bool "PXA GPIO support"
184         depends on ARCH_PXA || ARCH_MMP
185         help
186           Say yes here to support the PXA GPIO device
187
188 config GPIO_STA2X11
189         bool "STA2x11/ConneXt GPIO support"
190         depends on MFD_STA2X11
191         select GENERIC_IRQ_CHIP
192         help
193           Say yes here to support the STA2x11/ConneXt GPIO device.
194           The GPIO module has 128 GPIO pins with alternate functions.
195
196 config GPIO_VT8500
197         bool "VIA/Wondermedia SoC GPIO Support"
198         depends on ARCH_VT8500
199         help
200           Say yes here to support the VT8500/WM8505/WM8650 GPIO controller.
201
202 config GPIO_XILINX
203         bool "Xilinx GPIO support"
204         depends on PPC_OF || MICROBLAZE
205         help
206           Say yes here to support the Xilinx FPGA GPIO device
207
208 config GPIO_VR41XX
209         tristate "NEC VR4100 series General-purpose I/O Uint support"
210         depends on CPU_VR41XX
211         help
212           Say yes here to support the NEC VR4100 series General-purpose I/O Uint
213
214 config GPIO_SCH
215         tristate "Intel SCH/TunnelCreek/Centerton GPIO"
216         depends on PCI && X86
217         select MFD_CORE
218         select LPC_SCH
219         help
220           Say yes here to support GPIO interface on Intel Poulsbo SCH,
221           Intel Tunnel Creek processor or Intel Centerton processor.
222           The Intel SCH contains a total of 14 GPIO pins. Ten GPIOs are
223           powered by the core power rail and are turned off during sleep
224           modes (S3 and higher). The remaining four GPIOs are powered by
225           the Intel SCH suspend power supply. These GPIOs remain
226           active during S3. The suspend powered GPIOs can be used to wake the
227           system from the Suspend-to-RAM state.
228           The Intel Tunnel Creek processor has 5 GPIOs powered by the
229           core power rail and 9 from suspend power supply.
230           The Intel Centerton processor has a total of 30 GPIO pins.
231           Twenty-one are powered by the core power rail and 9 from the
232           suspend power supply.
233
234 config GPIO_ICH
235         tristate "Intel ICH GPIO"
236         depends on PCI && X86
237         select MFD_CORE
238         select LPC_ICH
239         help
240           Say yes here to support the GPIO functionality of a number of Intel
241           ICH-based chipsets.  Currently supported devices: ICH6, ICH7, ICH8
242           ICH9, ICH10, Series 5/3400 (eg Ibex Peak), Series 6/C200 (eg
243           Cougar Point), NM10 (Tiger Point), and 3100 (Whitmore Lake).
244
245           If unsure, say N.
246
247 config GPIO_VX855
248         tristate "VIA VX855/VX875 GPIO"
249         depends on PCI
250         select MFD_CORE
251         select MFD_VX855
252         help
253           Support access to the VX855/VX875 GPIO lines through the gpio library.
254
255           This driver provides common support for accessing the device,
256           additional drivers must be enabled in order to use the
257           functionality of the device.
258
259 config GPIO_GE_FPGA
260         bool "GE FPGA based GPIO"
261         depends on GE_FPGA
262         help
263           Support for common GPIO functionality provided on some GE Single Board
264           Computers.
265
266           This driver provides basic support (configure as input or output, read
267           and write pin state) for GPIO implemented in a number of GE single
268           board computers.
269
270 comment "I2C GPIO expanders:"
271
272 config GPIO_ARIZONA
273         tristate "Wolfson Microelectronics Arizona class devices"
274         depends on MFD_ARIZONA
275         help
276           Support for GPIOs on Wolfson Arizona class devices.
277
278 config GPIO_MAX7300
279         tristate "Maxim MAX7300 GPIO expander"
280         depends on I2C
281         select GPIO_MAX730X
282         help
283           GPIO driver for Maxim MAX7301 I2C-based GPIO expander.
284
285 config GPIO_MAX732X
286         tristate "MAX7319, MAX7320-7327 I2C Port Expanders"
287         depends on I2C
288         help
289           Say yes here to support the MAX7319, MAX7320-7327 series of I2C
290           Port Expanders. Each IO port on these chips has a fixed role of
291           Input (designated by 'I'), Push-Pull Output ('O'), or Open-Drain
292           Input and Output (designed by 'P'). The combinations are listed
293           below:
294
295           8 bits:       max7319 (8I), max7320 (8O), max7321 (8P),
296                         max7322 (4I4O), max7323 (4P4O)
297
298           16 bits:      max7324 (8I8O), max7325 (8P8O),
299                         max7326 (4I12O), max7327 (4P12O)
300
301           Board setup code must specify the model to use, and the start
302           number for these GPIOs.
303
304 config GPIO_MAX732X_IRQ
305         bool "Interrupt controller support for MAX732x"
306         depends on GPIO_MAX732X=y && GENERIC_HARDIRQS
307         help
308           Say yes here to enable the max732x to be used as an interrupt
309           controller. It requires the driver to be built in the kernel.
310
311 config GPIO_MC9S08DZ60
312         bool "MX35 3DS BOARD MC9S08DZ60 GPIO functions"
313         depends on I2C=y && MACH_MX35_3DS
314         help
315           Select this to enable the MC9S08DZ60 GPIO driver
316
317 config GPIO_PCA953X
318         tristate "PCA953x, PCA955x, PCA957x, TCA64xx, and MAX7310 I/O ports"
319         depends on I2C
320         help
321           Say yes here to provide access to several register-oriented
322           SMBus I/O expanders, made mostly by NXP or TI.  Compatible
323           models include:
324
325           4 bits:       pca9536, pca9537
326
327           8 bits:       max7310, max7315, pca6107, pca9534, pca9538, pca9554,
328                         pca9556, pca9557, pca9574, tca6408
329
330           16 bits:      max7312, max7313, pca9535, pca9539, pca9555, pca9575,
331                         tca6416
332
333 config GPIO_PCA953X_IRQ
334         bool "Interrupt controller support for PCA953x"
335         depends on GPIO_PCA953X=y
336         help
337           Say yes here to enable the pca953x to be used as an interrupt
338           controller. It requires the driver to be built in the kernel.
339
340 config GPIO_PCF857X
341         tristate "PCF857x, PCA{85,96}7x, and MAX732[89] I2C GPIO expanders"
342         depends on I2C
343         select IRQ_DOMAIN
344         help
345           Say yes here to provide access to most "quasi-bidirectional" I2C
346           GPIO expanders used for additional digital outputs or inputs.
347           Most of these parts are from NXP, though TI is a second source for
348           some of them.  Compatible models include:
349
350           8 bits:   pcf8574, pcf8574a, pca8574, pca8574a,
351                     pca9670, pca9672, pca9674, pca9674a,
352                     max7328, max7329
353
354           16 bits:  pcf8575, pcf8575c, pca8575,
355                     pca9671, pca9673, pca9675
356
357           Your board setup code will need to declare the expanders in
358           use, and assign numbers to the GPIOs they expose.  Those GPIOs
359           can then be used from drivers and other kernel code, just like
360           other GPIOs, but only accessible from task contexts.
361
362           This driver provides an in-kernel interface to those GPIOs using
363           platform-neutral GPIO calls.
364
365 config GPIO_RC5T583
366         bool "RICOH RC5T583 GPIO"
367         depends on MFD_RC5T583
368         help
369           Select this option to enable GPIO driver for the Ricoh RC5T583
370           chip family.
371           This driver provides the support for driving/reading the gpio pins
372           of RC5T583 device through standard gpio library.
373
374 config GPIO_SX150X
375         bool "Semtech SX150x I2C GPIO expander"
376         depends on I2C=y
377         default n
378         help
379           Say yes here to provide support for Semtech SX150-series I2C
380           GPIO expanders. Compatible models include:
381
382           8 bits:  sx1508q
383           16 bits: sx1509q
384
385 config GPIO_STMPE
386         bool "STMPE GPIOs"
387         depends on MFD_STMPE
388         help
389           This enables support for the GPIOs found on the STMPE I/O
390           Expanders.
391
392 config GPIO_STP_XWAY
393         bool "XWAY STP GPIOs"
394         depends on SOC_XWAY
395         help
396           This enables support for the Serial To Parallel (STP) unit found on
397           XWAY SoC. The STP allows the SoC to drive a shift registers cascade,
398           that can be up to 24 bit. This peripheral is aimed at driving leds.
399           Some of the gpios/leds can be auto updated by the soc with dsl and
400           phy status.
401
402 config GPIO_TC3589X
403         bool "TC3589X GPIOs"
404         depends on MFD_TC3589X
405         help
406           This enables support for the GPIOs found on the TC3589X
407           I/O Expander.
408
409 config GPIO_TPS65912
410         tristate "TI TPS65912 GPIO"
411         depends on (MFD_TPS65912_I2C || MFD_TPS65912_SPI)
412         help
413           This driver supports TPS65912 gpio chip
414
415 config GPIO_TWL4030
416         tristate "TWL4030, TWL5030, and TPS659x0 GPIOs"
417         depends on TWL4030_CORE
418         help
419           Say yes here to access the GPIO signals of various multi-function
420           power management chips from Texas Instruments.
421
422 config GPIO_TWL6040
423         tristate "TWL6040 GPO"
424         depends on TWL6040_CORE
425         help
426           Say yes here to access the GPO signals of twl6040
427           audio chip from Texas Instruments.
428
429 config GPIO_WM831X
430         tristate "WM831x GPIOs"
431         depends on MFD_WM831X
432         help
433           Say yes here to access the GPIO signals of WM831x power management
434           chips from Wolfson Microelectronics.
435
436 config GPIO_WM8350
437         tristate "WM8350 GPIOs"
438         depends on MFD_WM8350
439         help
440           Say yes here to access the GPIO signals of WM8350 power management
441           chips from Wolfson Microelectronics.
442
443 config GPIO_WM8994
444         tristate "WM8994 GPIOs"
445         depends on MFD_WM8994
446         help
447           Say yes here to access the GPIO signals of WM8994 audio hub
448           CODECs from Wolfson Microelectronics.
449
450 config GPIO_ADP5520
451         tristate "GPIO Support for ADP5520 PMIC"
452         depends on PMIC_ADP5520
453         help
454           This option enables support for on-chip GPIO found
455           on Analog Devices ADP5520 PMICs.
456
457 config GPIO_ADP5588
458         tristate "ADP5588 I2C GPIO expander"
459         depends on I2C
460         help
461           This option enables support for 18 GPIOs found
462           on Analog Devices ADP5588 GPIO Expanders.
463
464 config GPIO_ADP5588_IRQ
465         bool "Interrupt controller support for ADP5588"
466         depends on GPIO_ADP5588=y
467         help
468           Say yes here to enable the adp5588 to be used as an interrupt
469           controller. It requires the driver to be built in the kernel.
470
471 config GPIO_ADNP
472         tristate "Avionic Design N-bit GPIO expander"
473         depends on I2C && OF_GPIO
474         help
475           This option enables support for N GPIOs found on Avionic Design
476           I2C GPIO expanders. The register space will be extended by powers
477           of two, so the controller will need to accomodate for that. For
478           example: if a controller provides 48 pins, 6 registers will be
479           enough to represent all pins, but the driver will assume a
480           register layout for 64 pins (8 registers).
481
482 comment "PCI GPIO expanders:"
483
484 config GPIO_CS5535
485         tristate "AMD CS5535/CS5536 GPIO support"
486         depends on PCI && X86 && MFD_CS5535
487         help
488           The AMD CS5535 and CS5536 southbridges support 28 GPIO pins that
489           can be used for quite a number of things.  The CS5535/6 is found on
490           AMD Geode and Lemote Yeeloong devices.
491
492           If unsure, say N.
493
494 config GPIO_BT8XX
495         tristate "BT8XX GPIO abuser"
496         depends on PCI && VIDEO_BT848=n
497         help
498           The BT8xx frame grabber chip has 24 GPIO pins than can be abused
499           as a cheap PCI GPIO card.
500
501           This chip can be found on Miro, Hauppauge and STB TV-cards.
502
503           The card needs to be physically altered for using it as a
504           GPIO card. For more information on how to build a GPIO card
505           from a BT8xx TV card, see the documentation file at
506           Documentation/bt8xxgpio.txt
507
508           If unsure, say N.
509
510 config GPIO_AMD8111
511         tristate "AMD 8111 GPIO driver"
512         depends on PCI
513         help
514           The AMD 8111 south bridge contains 32 GPIO pins which can be used.
515
516           Note, that usually system firmware/ACPI handles GPIO pins on their
517           own and users might easily break their systems with uncarefull usage
518           of this driver!
519
520           If unsure, say N
521
522 config GPIO_LANGWELL
523         bool "Intel Langwell/Penwell GPIO support"
524         depends on PCI && X86
525         select IRQ_DOMAIN
526         help
527           Say Y here to support Intel Langwell/Penwell GPIO.
528
529 config GPIO_PCH
530         tristate "Intel EG20T PCH/LAPIS Semiconductor IOH(ML7223/ML7831) GPIO"
531         depends on PCI && X86
532         select GENERIC_IRQ_CHIP
533         help
534           This driver is for PCH(Platform controller Hub) GPIO of Intel Topcliff
535           which is an IOH(Input/Output Hub) for x86 embedded processor.
536           This driver can access PCH GPIO device.
537
538           This driver also can be used for LAPIS Semiconductor IOH(Input/
539           Output Hub), ML7223 and ML7831.
540           ML7223 IOH is for MP(Media Phone) use.
541           ML7831 IOH is for general purpose use.
542           ML7223/ML7831 is companion chip for Intel Atom E6xx series.
543           ML7223/ML7831 is completely compatible for Intel EG20T PCH.
544
545 config GPIO_ML_IOH
546         tristate "OKI SEMICONDUCTOR ML7213 IOH GPIO support"
547         depends on PCI
548         select GENERIC_IRQ_CHIP
549         help
550           ML7213 is companion chip for Intel Atom E6xx series.
551           This driver can be used for OKI SEMICONDUCTOR ML7213 IOH(Input/Output
552           Hub) which is for IVI(In-Vehicle Infotainment) use.
553           This driver can access the IOH's GPIO device.
554
555 config GPIO_SODAVILLE
556         bool "Intel Sodaville GPIO support"
557         depends on X86 && PCI && OF
558         select GPIO_GENERIC
559         select GENERIC_IRQ_CHIP
560         help
561           Say Y here to support Intel Sodaville GPIO.
562
563 config GPIO_TIMBERDALE
564         bool "Support for timberdale GPIO IP"
565         depends on MFD_TIMBERDALE && HAS_IOMEM
566         ---help---
567         Add support for the GPIO IP in the timberdale FPGA.
568
569 config GPIO_RDC321X
570         tristate "RDC R-321x GPIO support"
571         depends on PCI
572         select MFD_CORE
573         select MFD_RDC321X
574         help
575           Support for the RDC R321x SoC GPIOs over southbridge
576           PCI configuration space.
577
578 comment "SPI GPIO expanders:"
579
580 config GPIO_MAX7301
581         tristate "Maxim MAX7301 GPIO expander"
582         depends on SPI_MASTER
583         select GPIO_MAX730X
584         help
585           GPIO driver for Maxim MAX7301 SPI-based GPIO expander.
586
587 config GPIO_MCP23S08
588         tristate "Microchip MCP23xxx I/O expander"
589         depends on SPI_MASTER || I2C
590         help
591           SPI/I2C driver for Microchip MCP23S08/MCP23S17/MCP23008/MCP23017
592           I/O expanders.
593           This provides a GPIO interface supporting inputs and outputs.
594
595 config GPIO_MC33880
596         tristate "Freescale MC33880 high-side/low-side switch"
597         depends on SPI_MASTER
598         help
599           SPI driver for Freescale MC33880 high-side/low-side switch.
600           This provides GPIO interface supporting inputs and outputs.
601
602 config GPIO_74X164
603         tristate "74x164 serial-in/parallel-out 8-bits shift register"
604         depends on SPI_MASTER
605         help
606           Platform driver for 74x164 compatible serial-in/parallel-out
607           8-outputs shift registers. This driver can be used to provide access
608           to more gpio outputs.
609
610 comment "AC97 GPIO expanders:"
611
612 config GPIO_UCB1400
613         bool "Philips UCB1400 GPIO"
614         depends on UCB1400_CORE
615         help
616           This enables support for the Philips UCB1400 GPIO pins.
617           The UCB1400 is an AC97 audio codec.
618
619 comment "MODULbus GPIO expanders:"
620
621 config GPIO_JANZ_TTL
622         tristate "Janz VMOD-TTL Digital IO Module"
623         depends on MFD_JANZ_CMODIO
624         help
625           This enables support for the Janz VMOD-TTL Digital IO module.
626           This driver provides support for driving the pins in output
627           mode only. Input mode is not supported.
628
629 config GPIO_AB8500
630         bool "ST-Ericsson AB8500 Mixed Signal Circuit gpio functions"
631         depends on AB8500_CORE && BROKEN
632         help
633           Select this to enable the AB8500 IC GPIO driver
634
635 config GPIO_TPS6586X
636         bool "TPS6586X GPIO"
637         depends on MFD_TPS6586X
638         help
639           Select this option to enable GPIO driver for the TPS6586X
640           chip family.
641
642 config GPIO_TPS65910
643         bool "TPS65910 GPIO"
644         depends on MFD_TPS65910
645         help
646           Select this option to enable GPIO driver for the TPS65910
647           chip family.
648
649 config GPIO_MSIC
650         bool "Intel MSIC mixed signal gpio support"
651         depends on MFD_INTEL_MSIC
652         help
653           Enable support for GPIO on intel MSIC controllers found in
654           intel MID devices
655
656 endif