xref: /linux/drivers/gpio/Kconfig (revision e4ea933363d39b5858f55682550314b4ea1285cc)
1#
2# GPIO infrastructure and drivers
3#
4
5config 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
15config 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
27menuconfig 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
38if GPIOLIB
39
40config 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
51config 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
66config GPIO_GENERIC
67	tristate
68
69# put drivers in the right section, in alphabetical order
70
71config GPIO_MAX730X
72	tristate
73
74comment "Memory mapped GPIO drivers:"
75
76config GPIO_GENERIC_PLATFORM
77	tristate "Generic memory-mapped GPIO controller support (MMIO platform device)"
78	select GPIO_GENERIC
79	help
80	  Say yes here to support basic platform_device memory-mapped GPIO controllers.
81
82config GPIO_IT8761E
83	tristate "IT8761E GPIO support"
84	help
85	  Say yes here to support GPIO functionality of IT8761E super I/O chip.
86
87config GPIO_EP93XX
88	def_bool y
89	depends on ARCH_EP93XX
90
91config GPIO_EXYNOS4
92	def_bool y
93	depends on CPU_EXYNOS4210
94
95config GPIO_MXC
96	def_bool y
97	depends on ARCH_MXC
98	select GPIO_GENERIC
99	select GENERIC_IRQ_CHIP
100
101config GPIO_MXS
102	def_bool y
103	depends on ARCH_MXS
104
105config GPIO_PLAT_SAMSUNG
106	def_bool y
107	depends on SAMSUNG_GPIOLIB_4BIT
108
109config GPIO_S5PC100
110	def_bool y
111	depends on CPU_S5PC100
112
113config GPIO_S5PV210
114	def_bool y
115	depends on CPU_S5PV210
116
117config GPIO_PL061
118	bool "PrimeCell PL061 GPIO support"
119	depends on ARM_AMBA
120	help
121	  Say yes here to support the PrimeCell PL061 GPIO device
122
123config GPIO_XILINX
124	bool "Xilinx GPIO support"
125	depends on PPC_OF || MICROBLAZE
126	help
127	  Say yes here to support the Xilinx FPGA GPIO device
128
129config GPIO_VR41XX
130	tristate "NEC VR4100 series General-purpose I/O Uint support"
131	depends on CPU_VR41XX
132	help
133	  Say yes here to support the NEC VR4100 series General-purpose I/O Uint
134
135config GPIO_SCH
136	tristate "Intel SCH/TunnelCreek GPIO"
137	depends on PCI && X86
138	select MFD_CORE
139	select LPC_SCH
140	help
141	  Say yes here to support GPIO interface on Intel Poulsbo SCH
142	  or Intel Tunnel Creek processor.
143	  The Intel SCH contains a total of 14 GPIO pins. Ten GPIOs are
144	  powered by the core power rail and are turned off during sleep
145	  modes (S3 and higher). The remaining four GPIOs are powered by
146	  the Intel SCH suspend power supply. These GPIOs remain
147	  active during S3. The suspend powered GPIOs can be used to wake the
148	  system from the Suspend-to-RAM state.
149	  The Intel Tunnel Creek processor has 5 GPIOs powered by the
150	  core power rail and 9 from suspend power supply.
151
152config GPIO_VX855
153	tristate "VIA VX855/VX875 GPIO"
154	depends on MFD_SUPPORT && PCI
155	select MFD_CORE
156	select MFD_VX855
157	help
158	  Support access to the VX855/VX875 GPIO lines through the gpio library.
159
160	  This driver provides common support for accessing the device,
161	  additional drivers must be enabled in order to use the
162	  functionality of the device.
163
164comment "I2C GPIO expanders:"
165
166config GPIO_MAX7300
167	tristate "Maxim MAX7300 GPIO expander"
168	depends on I2C
169	select GPIO_MAX730X
170	help
171	  GPIO driver for Maxim MAX7301 I2C-based GPIO expander.
172
173config GPIO_MAX732X
174	tristate "MAX7319, MAX7320-7327 I2C Port Expanders"
175	depends on I2C
176	help
177	  Say yes here to support the MAX7319, MAX7320-7327 series of I2C
178	  Port Expanders. Each IO port on these chips has a fixed role of
179	  Input (designated by 'I'), Push-Pull Output ('O'), or Open-Drain
180	  Input and Output (designed by 'P'). The combinations are listed
181	  below:
182
183	  8 bits:	max7319 (8I), max7320 (8O), max7321 (8P),
184		  	max7322 (4I4O), max7323 (4P4O)
185
186	  16 bits:	max7324 (8I8O), max7325 (8P8O),
187		  	max7326 (4I12O), max7327 (4P12O)
188
189	  Board setup code must specify the model to use, and the start
190	  number for these GPIOs.
191
192config GPIO_MAX732X_IRQ
193	bool "Interrupt controller support for MAX732x"
194	depends on GPIO_MAX732X=y && GENERIC_HARDIRQS
195	help
196	  Say yes here to enable the max732x to be used as an interrupt
197	  controller. It requires the driver to be built in the kernel.
198
199config GPIO_PCA953X
200	tristate "PCA953x, PCA955x, TCA64xx, and MAX7310 I/O ports"
201	depends on I2C
202	help
203	  Say yes here to provide access to several register-oriented
204	  SMBus I/O expanders, made mostly by NXP or TI.  Compatible
205	  models include:
206
207	  4 bits:	pca9536, pca9537
208
209	  8 bits:	max7310, pca9534, pca9538, pca9554, pca9557,
210	  		tca6408
211
212	  16 bits:	pca9535, pca9539, pca9555, tca6416
213
214config GPIO_PCA953X_IRQ
215	bool "Interrupt controller support for PCA953x"
216	depends on GPIO_PCA953X=y
217	help
218	  Say yes here to enable the pca953x to be used as an interrupt
219	  controller. It requires the driver to be built in the kernel.
220
221config GPIO_PCF857X
222	tristate "PCF857x, PCA{85,96}7x, and MAX732[89] I2C GPIO expanders"
223	depends on I2C
224	help
225	  Say yes here to provide access to most "quasi-bidirectional" I2C
226	  GPIO expanders used for additional digital outputs or inputs.
227	  Most of these parts are from NXP, though TI is a second source for
228	  some of them.  Compatible models include:
229
230	  8 bits:   pcf8574, pcf8574a, pca8574, pca8574a,
231	            pca9670, pca9672, pca9674, pca9674a,
232	  	    max7328, max7329
233
234	  16 bits:  pcf8575, pcf8575c, pca8575,
235	            pca9671, pca9673, pca9675
236
237	  Your board setup code will need to declare the expanders in
238	  use, and assign numbers to the GPIOs they expose.  Those GPIOs
239	  can then be used from drivers and other kernel code, just like
240	  other GPIOs, but only accessible from task contexts.
241
242	  This driver provides an in-kernel interface to those GPIOs using
243	  platform-neutral GPIO calls.
244
245config GPIO_SX150X
246	bool "Semtech SX150x I2C GPIO expander"
247	depends on I2C=y
248	default n
249	help
250	  Say yes here to provide support for Semtech SX150-series I2C
251	  GPIO expanders. Compatible models include:
252
253	  8 bits:  sx1508q
254	  16 bits: sx1509q
255
256config GPIO_STMPE
257	bool "STMPE GPIOs"
258	depends on MFD_STMPE
259	help
260	  This enables support for the GPIOs found on the STMPE I/O
261	  Expanders.
262
263config GPIO_TC3589X
264	bool "TC3589X GPIOs"
265	depends on MFD_TC3589X
266	help
267	  This enables support for the GPIOs found on the TC3589X
268	  I/O Expander.
269
270config GPIO_TWL4030
271	tristate "TWL4030, TWL5030, and TPS659x0 GPIOs"
272	depends on TWL4030_CORE
273	help
274	  Say yes here to access the GPIO signals of various multi-function
275	  power management chips from Texas Instruments.
276
277config GPIO_WM831X
278	tristate "WM831x GPIOs"
279	depends on MFD_WM831X
280	help
281	  Say yes here to access the GPIO signals of WM831x power management
282	  chips from Wolfson Microelectronics.
283
284config GPIO_WM8350
285	tristate "WM8350 GPIOs"
286	depends on MFD_WM8350
287	help
288	  Say yes here to access the GPIO signals of WM8350 power management
289	  chips from Wolfson Microelectronics.
290
291config GPIO_WM8994
292	tristate "WM8994 GPIOs"
293	depends on MFD_WM8994
294	help
295	  Say yes here to access the GPIO signals of WM8994 audio hub
296	  CODECs from Wolfson Microelectronics.
297
298config GPIO_ADP5520
299	tristate "GPIO Support for ADP5520 PMIC"
300	depends on PMIC_ADP5520
301	help
302	  This option enables support for on-chip GPIO found
303	  on Analog Devices ADP5520 PMICs.
304
305config GPIO_ADP5588
306	tristate "ADP5588 I2C GPIO expander"
307	depends on I2C
308	help
309	  This option enables support for 18 GPIOs found
310	  on Analog Devices ADP5588 GPIO Expanders.
311
312config GPIO_ADP5588_IRQ
313	bool "Interrupt controller support for ADP5588"
314	depends on GPIO_ADP5588=y
315	help
316	  Say yes here to enable the adp5588 to be used as an interrupt
317	  controller. It requires the driver to be built in the kernel.
318
319comment "PCI GPIO expanders:"
320
321config GPIO_CS5535
322	tristate "AMD CS5535/CS5536 GPIO support"
323	depends on PCI && X86 && !CS5535_GPIO && MFD_CS5535
324	help
325	  The AMD CS5535 and CS5536 southbridges support 28 GPIO pins that
326	  can be used for quite a number of things.  The CS5535/6 is found on
327	  AMD Geode and Lemote Yeeloong devices.
328
329	  If unsure, say N.
330
331config GPIO_BT8XX
332	tristate "BT8XX GPIO abuser"
333	depends on PCI && VIDEO_BT848=n
334	help
335	  The BT8xx frame grabber chip has 24 GPIO pins than can be abused
336	  as a cheap PCI GPIO card.
337
338	  This chip can be found on Miro, Hauppauge and STB TV-cards.
339
340	  The card needs to be physically altered for using it as a
341	  GPIO card. For more information on how to build a GPIO card
342	  from a BT8xx TV card, see the documentation file at
343	  Documentation/bt8xxgpio.txt
344
345	  If unsure, say N.
346
347config GPIO_LANGWELL
348	bool "Intel Langwell/Penwell GPIO support"
349	depends on PCI && X86
350	help
351	  Say Y here to support Intel Langwell/Penwell GPIO.
352
353config GPIO_PCH
354	tristate "Intel EG20T PCH / OKI SEMICONDUCTOR ML7223 IOH GPIO"
355	depends on PCI && X86
356	help
357	  This driver is for PCH(Platform controller Hub) GPIO of Intel Topcliff
358	  which is an IOH(Input/Output Hub) for x86 embedded processor.
359	  This driver can access PCH GPIO device.
360
361	  This driver also can be used for OKI SEMICONDUCTOR IOH(Input/
362	  Output Hub), ML7223.
363	  ML7223 IOH is for MP(Media Phone) use.
364	  ML7223 is companion chip for Intel Atom E6xx series.
365	  ML7223 is completely compatible for Intel EG20T PCH.
366
367config GPIO_ML_IOH
368	tristate "OKI SEMICONDUCTOR ML7213 IOH GPIO support"
369	depends on PCI
370	help
371	  ML7213 is companion chip for Intel Atom E6xx series.
372	  This driver can be used for OKI SEMICONDUCTOR ML7213 IOH(Input/Output
373	  Hub) which is for IVI(In-Vehicle Infotainment) use.
374	  This driver can access the IOH's GPIO device.
375
376config GPIO_TIMBERDALE
377	bool "Support for timberdale GPIO IP"
378	depends on MFD_TIMBERDALE && HAS_IOMEM
379	---help---
380	Add support for the GPIO IP in the timberdale FPGA.
381
382config GPIO_RDC321X
383	tristate "RDC R-321x GPIO support"
384	depends on PCI
385	select MFD_SUPPORT
386	select MFD_CORE
387	select MFD_RDC321X
388	help
389	  Support for the RDC R321x SoC GPIOs over southbridge
390	  PCI configuration space.
391
392comment "SPI GPIO expanders:"
393
394config GPIO_MAX7301
395	tristate "Maxim MAX7301 GPIO expander"
396	depends on SPI_MASTER
397	select GPIO_MAX730X
398	help
399	  GPIO driver for Maxim MAX7301 SPI-based GPIO expander.
400
401config GPIO_MCP23S08
402	tristate "Microchip MCP23Sxx I/O expander"
403	depends on SPI_MASTER
404	help
405	  SPI driver for Microchip MCP23S08/MPC23S17 I/O expanders.
406	  This provides a GPIO interface supporting inputs and outputs.
407
408config GPIO_MC33880
409	tristate "Freescale MC33880 high-side/low-side switch"
410	depends on SPI_MASTER
411	help
412	  SPI driver for Freescale MC33880 high-side/low-side switch.
413	  This provides GPIO interface supporting inputs and outputs.
414
415config GPIO_74X164
416	tristate "74x164 serial-in/parallel-out 8-bits shift register"
417	depends on SPI_MASTER
418	help
419	  Platform driver for 74x164 compatible serial-in/parallel-out
420	  8-outputs shift registers. This driver can be used to provide access
421	  to more gpio outputs.
422
423comment "AC97 GPIO expanders:"
424
425config GPIO_UCB1400
426	bool "Philips UCB1400 GPIO"
427	depends on UCB1400_CORE
428	help
429	  This enables support for the Philips UCB1400 GPIO pins.
430	  The UCB1400 is an AC97 audio codec.
431
432comment "MODULbus GPIO expanders:"
433
434config GPIO_JANZ_TTL
435	tristate "Janz VMOD-TTL Digital IO Module"
436	depends on MFD_JANZ_CMODIO
437	help
438	  This enables support for the Janz VMOD-TTL Digital IO module.
439	  This driver provides support for driving the pins in output
440	  mode only. Input mode is not supported.
441
442config GPIO_AB8500
443	bool "ST-Ericsson AB8500 Mixed Signal Circuit gpio functions"
444	depends on AB8500_CORE && BROKEN
445	help
446	  Select this to enable the AB8500 IC GPIO driver
447
448config GPIO_TPS65910
449	bool "TPS65910 GPIO"
450	depends on MFD_TPS65910
451	help
452	  Select this option to enable GPIO driver for the TPS65910
453	  chip family.
454endif
455