]>
Commit | Line | Data |
---|---|---|
8ae12a0d DB |
1 | # |
2 | # SPI driver configuration | |
3 | # | |
4 | # NOTE: the reason this doesn't show SPI slave support is mostly that | |
5 | # nobody's needed a slave side API yet. The master-role API is not | |
6 | # fully appropriate there, so it'd need some thought to do well. | |
7 | # | |
8 | menu "SPI support" | |
9 | ||
10 | config SPI | |
11 | bool "SPI support" | |
12 | help | |
13 | The "Serial Peripheral Interface" is a low level synchronous | |
14 | protocol. Chips that support SPI can have data transfer rates | |
15 | up to several tens of Mbit/sec. Chips are addressed with a | |
16 | controller and a chipselect. Most SPI slaves don't support | |
17 | dynamic device discovery; some are even write-only or read-only. | |
18 | ||
3cb2fccc | 19 | SPI is widely used by microcontrollers to talk with sensors, |
8ae12a0d DB |
20 | eeprom and flash memory, codecs and various other controller |
21 | chips, analog to digital (and d-to-a) converters, and more. | |
22 | MMC and SD cards can be accessed using SPI protocol; and for | |
23 | DataFlash cards used in MMC sockets, SPI must always be used. | |
24 | ||
25 | SPI is one of a family of similar protocols using a four wire | |
26 | interface (select, clock, data in, data out) including Microwire | |
27 | (half duplex), SSP, SSI, and PSP. This driver framework should | |
28 | work with most such devices and controllers. | |
29 | ||
30 | config SPI_DEBUG | |
31 | boolean "Debug support for SPI drivers" | |
32 | depends on SPI && DEBUG_KERNEL | |
33 | help | |
34 | Say "yes" to enable debug messaging (like dev_dbg and pr_debug), | |
35 | sysfs, and debugfs support in SPI controller and protocol drivers. | |
36 | ||
37 | # | |
38 | # MASTER side ... talking to discrete SPI slave chips including microcontrollers | |
39 | # | |
40 | ||
41 | config SPI_MASTER | |
42 | # boolean "SPI Master Support" | |
43 | boolean | |
44 | default SPI | |
45 | help | |
46 | If your system has an master-capable SPI controller (which | |
47 | provides the clock and chipselect), you can enable that | |
48 | controller and the protocol drivers for the SPI slave chips | |
49 | that are connected. | |
50 | ||
51 | comment "SPI Master Controller Drivers" | |
52 | depends on SPI_MASTER | |
53 | ||
9904f22a DB |
54 | config SPI_BITBANG |
55 | tristate "Bitbanging SPI master" | |
56 | depends on SPI_MASTER && EXPERIMENTAL | |
57 | help | |
58 | With a few GPIO pins, your system can bitbang the SPI protocol. | |
59 | Select this to get SPI support through I/O pins (GPIO, parallel | |
60 | port, etc). Or, some systems' SPI master controller drivers use | |
61 | this code to manage the per-word or per-transfer accesses to the | |
62 | hardware shift registers. | |
63 | ||
64 | This is library code, and is automatically selected by drivers that | |
65 | need it. You only need to select this explicitly to support driver | |
66 | modules that aren't part of this kernel tree. | |
8ae12a0d | 67 | |
7111763d DB |
68 | config SPI_BUTTERFLY |
69 | tristate "Parallel port adapter for AVR Butterfly (DEVELOPMENT)" | |
70 | depends on SPI_MASTER && PARPORT && EXPERIMENTAL | |
71 | select SPI_BITBANG | |
72 | help | |
73 | This uses a custom parallel port cable to connect to an AVR | |
74 | Butterfly <http://www.atmel.com/products/avr/butterfly>, an | |
75 | inexpensive battery powered microcontroller evaluation board. | |
76 | This same cable can be used to flash new firmware. | |
77 | ||
69c202af AP |
78 | config SPI_IMX |
79 | tristate "Freescale iMX SPI controller" | |
80 | depends on SPI_MASTER && ARCH_IMX && EXPERIMENTAL | |
81 | help | |
82 | This enables using the Freescale iMX SPI controller in master | |
83 | mode. | |
84 | ||
ccf06998 KG |
85 | config SPI_MPC83xx |
86 | tristate "Freescale MPC83xx SPI controller" | |
87 | depends on SPI_MASTER && PPC_83xx && EXPERIMENTAL | |
88 | select SPI_BITBANG | |
89 | help | |
90 | This enables using the Freescale MPC83xx SPI controller in master | |
91 | mode. | |
92 | ||
93 | Note, this driver uniquely supports the SPI controller on the MPC83xx | |
94 | family of PowerPC processors. The MPC83xx uses a simple set of shift | |
95 | registers for data (opposed to the CPM based descriptor model). | |
96 | ||
fdb3c18d DB |
97 | config SPI_OMAP_UWIRE |
98 | tristate "OMAP1 MicroWire" | |
99 | depends on SPI_MASTER && ARCH_OMAP1 | |
100 | select SPI_BITBANG | |
101 | help | |
102 | This hooks up to the MicroWire controller on OMAP1 chips. | |
103 | ||
69c202af | 104 | |
e0c9905e SS |
105 | config SPI_PXA2XX |
106 | tristate "PXA2xx SSP SPI master" | |
107 | depends on SPI_MASTER && ARCH_PXA && EXPERIMENTAL | |
108 | help | |
109 | This enables using a PXA2xx SSP port as a SPI master controller. | |
110 | The driver can be configured to use any SSP port and additional | |
111 | documentation can be found a Documentation/spi/pxa2xx. | |
112 | ||
85abfaa7 DB |
113 | config SPI_S3C24XX |
114 | tristate "Samsung S3C24XX series SPI" | |
115 | depends on SPI_MASTER && ARCH_S3C2410 && EXPERIMENTAL | |
116 | help | |
117 | SPI driver for Samsung S3C24XX series ARM SoCs | |
118 | ||
1fc7547d BD |
119 | config SPI_S3C24XX_GPIO |
120 | tristate "Samsung S3C24XX series SPI by GPIO" | |
121 | depends on SPI_MASTER && ARCH_S3C2410 && SPI_BITBANG && EXPERIMENTAL | |
122 | help | |
123 | SPI driver for Samsung S3C24XX series ARM SoCs using | |
124 | GPIO lines to provide the SPI bus. This can be used where | |
125 | the inbuilt hardware cannot provide the transfer mode, or | |
126 | where the board is using non hardware connected pins. | |
8ae12a0d DB |
127 | # |
128 | # Add new SPI master controllers in alphabetical order above this line | |
129 | # | |
130 | ||
8ae12a0d DB |
131 | # |
132 | # There are lots of SPI device types, with sensors and memory | |
133 | # being probably the most widely used ones. | |
134 | # | |
135 | comment "SPI Protocol Masters" | |
136 | depends on SPI_MASTER | |
137 | ||
b587b13a DB |
138 | config SPI_AT25 |
139 | tristate "SPI EEPROMs from most vendors" | |
140 | depends on SPI_MASTER && SYSFS | |
141 | help | |
142 | Enable this driver to get read/write support to most SPI EEPROMs, | |
143 | after you configure the board init code to know about each eeprom | |
144 | on your target board. | |
145 | ||
146 | This driver can also be built as a module. If so, the module | |
147 | will be called at25. | |
8ae12a0d DB |
148 | |
149 | # | |
150 | # Add new SPI protocol masters in alphabetical order above this line | |
151 | # | |
152 | ||
153 | ||
154 | # (slave support would go here) | |
155 | ||
156 | endmenu # "SPI support" | |
157 |