]>
Commit | Line | Data |
---|---|---|
a9c5fff5 DB |
1 | # |
2 | # GPIO infrastructure and expanders | |
3 | # | |
4 | ||
5 | config HAVE_GPIO_LIB | |
6 | bool | |
7 | help | |
8 | Platforms select gpiolib if they use this infrastructure | |
9 | for all their GPIOs, usually starting with ones integrated | |
10 | into SOC processors. | |
11 | ||
12 | menu "GPIO Support" | |
13 | depends on HAVE_GPIO_LIB | |
14 | ||
15 | config DEBUG_GPIO | |
16 | bool "Debug GPIO calls" | |
17 | depends on DEBUG_KERNEL | |
18 | help | |
19 | Say Y here to add some extra checks and diagnostics to GPIO calls. | |
20 | The checks help ensure that GPIOs have been properly initialized | |
21 | before they are used and that sleeping calls aren not made from | |
22 | nonsleeping contexts. They can make bitbanged serial protocols | |
23 | slower. The diagnostics help catch the type of setup errors | |
24 | that are most common when setting up new platforms or boards. | |
25 | ||
26 | # put expanders in the right section, in alphabetical order | |
27 | ||
28 | comment "I2C GPIO expanders:" | |
29 | ||
f3dc3630 GL |
30 | config GPIO_PCA953X |
31 | tristate "PCA953x I/O ports" | |
9e60fdcf | 32 | depends on I2C |
33 | help | |
f3dc3630 GL |
34 | Say yes here to support the PCA9534 (8-bit), PCA9535 (16-bit), |
35 | PCA9536 (4-bit), PCA9537 (4-bit), PCA9538 (8-bit), and PCA9539 | |
36 | (16-bit) I/O ports. These parts are made by NXP and TI. | |
9e60fdcf | 37 | |
38 | This driver can also be built as a module. If so, the module | |
f3dc3630 | 39 | will be called pca953x. |
9e60fdcf | 40 | |
15fae37d DB |
41 | config GPIO_PCF857X |
42 | tristate "PCF857x, PCA857x, and PCA967x I2C GPIO expanders" | |
43 | depends on I2C | |
44 | help | |
45 | Say yes here to provide access to most "quasi-bidirectional" I2C | |
46 | GPIO expanders used for additional digital outputs or inputs. | |
47 | Most of these parts are from NXP, though TI is a second source for | |
48 | some of them. Compatible models include: | |
49 | ||
50 | 8 bits: pcf8574, pcf8574a, pca8574, pca8574a, | |
51 | pca9670, pca9672, pca9674, pca9674a | |
52 | ||
53 | 16 bits: pcf8575, pcf8575c, pca8575, | |
54 | pca9671, pca9673, pca9675 | |
55 | ||
56 | Your board setup code will need to declare the expanders in | |
57 | use, and assign numbers to the GPIOs they expose. Those GPIOs | |
58 | can then be used from drivers and other kernel code, just like | |
59 | other GPIOs, but only accessible from task contexts. | |
60 | ||
61 | This driver provides an in-kernel interface to those GPIOs using | |
62 | platform-neutral GPIO calls. | |
63 | ||
a9c5fff5 DB |
64 | comment "SPI GPIO expanders:" |
65 | ||
e58b9e27 DB |
66 | config GPIO_MCP23S08 |
67 | tristate "Microchip MCP23S08 I/O expander" | |
68 | depends on SPI_MASTER | |
69 | help | |
70 | SPI driver for Microchip MCP23S08 I/O expander. This provides | |
71 | a GPIO interface supporting inputs and outputs. | |
72 | ||
a9c5fff5 | 73 | endmenu |