1 |
62 |
marcus.erl |
#
|
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 |
|
|
depends on HAS_IOMEM
|
10 |
|
|
|
11 |
|
|
config SPI
|
12 |
|
|
bool "SPI support"
|
13 |
|
|
help
|
14 |
|
|
The "Serial Peripheral Interface" is a low level synchronous
|
15 |
|
|
protocol. Chips that support SPI can have data transfer rates
|
16 |
|
|
up to several tens of Mbit/sec. Chips are addressed with a
|
17 |
|
|
controller and a chipselect. Most SPI slaves don't support
|
18 |
|
|
dynamic device discovery; some are even write-only or read-only.
|
19 |
|
|
|
20 |
|
|
SPI is widely used by microcontrollers to talk with sensors,
|
21 |
|
|
eeprom and flash memory, codecs and various other controller
|
22 |
|
|
chips, analog to digital (and d-to-a) converters, and more.
|
23 |
|
|
MMC and SD cards can be accessed using SPI protocol; and for
|
24 |
|
|
DataFlash cards used in MMC sockets, SPI must always be used.
|
25 |
|
|
|
26 |
|
|
SPI is one of a family of similar protocols using a four wire
|
27 |
|
|
interface (select, clock, data in, data out) including Microwire
|
28 |
|
|
(half duplex), SSP, SSI, and PSP. This driver framework should
|
29 |
|
|
work with most such devices and controllers.
|
30 |
|
|
|
31 |
|
|
config SPI_DEBUG
|
32 |
|
|
boolean "Debug support for SPI drivers"
|
33 |
|
|
depends on SPI && DEBUG_KERNEL
|
34 |
|
|
help
|
35 |
|
|
Say "yes" to enable debug messaging (like dev_dbg and pr_debug),
|
36 |
|
|
sysfs, and debugfs support in SPI controller and protocol drivers.
|
37 |
|
|
|
38 |
|
|
#
|
39 |
|
|
# MASTER side ... talking to discrete SPI slave chips including microcontrollers
|
40 |
|
|
#
|
41 |
|
|
|
42 |
|
|
config SPI_MASTER
|
43 |
|
|
# boolean "SPI Master Support"
|
44 |
|
|
boolean
|
45 |
|
|
default SPI
|
46 |
|
|
help
|
47 |
|
|
If your system has an master-capable SPI controller (which
|
48 |
|
|
provides the clock and chipselect), you can enable that
|
49 |
|
|
controller and the protocol drivers for the SPI slave chips
|
50 |
|
|
that are connected.
|
51 |
|
|
|
52 |
|
|
comment "SPI Master Controller Drivers"
|
53 |
|
|
depends on SPI_MASTER
|
54 |
|
|
|
55 |
|
|
config SPI_ATMEL
|
56 |
|
|
tristate "Atmel SPI Controller"
|
57 |
|
|
depends on (ARCH_AT91 || AVR32) && SPI_MASTER
|
58 |
|
|
help
|
59 |
|
|
This selects a driver for the Atmel SPI Controller, present on
|
60 |
|
|
many AT32 (AVR32) and AT91 (ARM) chips.
|
61 |
|
|
|
62 |
|
|
config SPI_BFIN
|
63 |
|
|
tristate "SPI controller driver for ADI Blackfin5xx"
|
64 |
|
|
depends on SPI_MASTER && BLACKFIN
|
65 |
|
|
help
|
66 |
|
|
This is the SPI controller master driver for Blackfin 5xx processor.
|
67 |
|
|
|
68 |
|
|
config SPI_AU1550
|
69 |
|
|
tristate "Au1550/Au12x0 SPI Controller"
|
70 |
|
|
depends on SPI_MASTER && (SOC_AU1550 || SOC_AU1200) && EXPERIMENTAL
|
71 |
|
|
select SPI_BITBANG
|
72 |
|
|
help
|
73 |
|
|
If you say yes to this option, support will be included for the
|
74 |
|
|
Au1550 SPI controller (may also work with Au1200,Au1210,Au1250).
|
75 |
|
|
|
76 |
|
|
This driver can also be built as a module. If so, the module
|
77 |
|
|
will be called au1550_spi.
|
78 |
|
|
|
79 |
|
|
config SPI_BITBANG
|
80 |
|
|
tristate "Bitbanging SPI master"
|
81 |
|
|
depends on SPI_MASTER && EXPERIMENTAL
|
82 |
|
|
help
|
83 |
|
|
With a few GPIO pins, your system can bitbang the SPI protocol.
|
84 |
|
|
Select this to get SPI support through I/O pins (GPIO, parallel
|
85 |
|
|
port, etc). Or, some systems' SPI master controller drivers use
|
86 |
|
|
this code to manage the per-word or per-transfer accesses to the
|
87 |
|
|
hardware shift registers.
|
88 |
|
|
|
89 |
|
|
This is library code, and is automatically selected by drivers that
|
90 |
|
|
need it. You only need to select this explicitly to support driver
|
91 |
|
|
modules that aren't part of this kernel tree.
|
92 |
|
|
|
93 |
|
|
config SPI_BUTTERFLY
|
94 |
|
|
tristate "Parallel port adapter for AVR Butterfly (DEVELOPMENT)"
|
95 |
|
|
depends on SPI_MASTER && PARPORT && EXPERIMENTAL
|
96 |
|
|
select SPI_BITBANG
|
97 |
|
|
help
|
98 |
|
|
This uses a custom parallel port cable to connect to an AVR
|
99 |
|
|
Butterfly , an
|
100 |
|
|
inexpensive battery powered microcontroller evaluation board.
|
101 |
|
|
This same cable can be used to flash new firmware.
|
102 |
|
|
|
103 |
|
|
config SPI_IMX
|
104 |
|
|
tristate "Freescale iMX SPI controller"
|
105 |
|
|
depends on SPI_MASTER && ARCH_IMX && EXPERIMENTAL
|
106 |
|
|
help
|
107 |
|
|
This enables using the Freescale iMX SPI controller in master
|
108 |
|
|
mode.
|
109 |
|
|
|
110 |
|
|
config SPI_LM70_LLP
|
111 |
|
|
tristate "Parallel port adapter for LM70 eval board (DEVELOPMENT)"
|
112 |
|
|
depends on SPI_MASTER && PARPORT && EXPERIMENTAL
|
113 |
|
|
select SPI_BITBANG
|
114 |
|
|
help
|
115 |
|
|
This driver supports the NS LM70 LLP Evaluation Board,
|
116 |
|
|
which interfaces to an LM70 temperature sensor using
|
117 |
|
|
a parallel port.
|
118 |
|
|
|
119 |
|
|
config SPI_MPC52xx_PSC
|
120 |
|
|
tristate "Freescale MPC52xx PSC SPI controller"
|
121 |
|
|
depends on SPI_MASTER && PPC_MPC52xx && EXPERIMENTAL
|
122 |
|
|
help
|
123 |
|
|
This enables using the Freescale MPC52xx Programmable Serial
|
124 |
|
|
Controller in master SPI mode.
|
125 |
|
|
|
126 |
|
|
config SPI_MPC83xx
|
127 |
|
|
tristate "Freescale MPC83xx/QUICC Engine SPI controller"
|
128 |
|
|
depends on SPI_MASTER && (PPC_83xx || QUICC_ENGINE) && EXPERIMENTAL
|
129 |
|
|
select SPI_BITBANG
|
130 |
|
|
help
|
131 |
|
|
This enables using the Freescale MPC83xx and QUICC Engine SPI
|
132 |
|
|
controllers in master mode.
|
133 |
|
|
|
134 |
|
|
Note, this driver uniquely supports the SPI controller on the MPC83xx
|
135 |
|
|
family of PowerPC processors, plus processors with QUICC Engine
|
136 |
|
|
technology. This driver uses a simple set of shift registers for data
|
137 |
|
|
(opposed to the CPM based descriptor model).
|
138 |
|
|
|
139 |
|
|
config SPI_OMAP_UWIRE
|
140 |
|
|
tristate "OMAP1 MicroWire"
|
141 |
|
|
depends on SPI_MASTER && ARCH_OMAP1
|
142 |
|
|
select SPI_BITBANG
|
143 |
|
|
help
|
144 |
|
|
This hooks up to the MicroWire controller on OMAP1 chips.
|
145 |
|
|
|
146 |
|
|
config SPI_OMAP24XX
|
147 |
|
|
tristate "McSPI driver for OMAP24xx"
|
148 |
|
|
depends on SPI_MASTER && ARCH_OMAP24XX
|
149 |
|
|
help
|
150 |
|
|
SPI master controller for OMAP24xx Multichannel SPI
|
151 |
|
|
(McSPI) modules.
|
152 |
|
|
|
153 |
|
|
config SPI_PXA2XX
|
154 |
|
|
tristate "PXA2xx SSP SPI master"
|
155 |
|
|
depends on SPI_MASTER && ARCH_PXA && EXPERIMENTAL
|
156 |
|
|
help
|
157 |
|
|
This enables using a PXA2xx SSP port as a SPI master controller.
|
158 |
|
|
The driver can be configured to use any SSP port and additional
|
159 |
|
|
documentation can be found a Documentation/spi/pxa2xx.
|
160 |
|
|
|
161 |
|
|
config SPI_S3C24XX
|
162 |
|
|
tristate "Samsung S3C24XX series SPI"
|
163 |
|
|
depends on SPI_MASTER && ARCH_S3C2410 && EXPERIMENTAL
|
164 |
|
|
select SPI_BITBANG
|
165 |
|
|
help
|
166 |
|
|
SPI driver for Samsung S3C24XX series ARM SoCs
|
167 |
|
|
|
168 |
|
|
config SPI_S3C24XX_GPIO
|
169 |
|
|
tristate "Samsung S3C24XX series SPI by GPIO"
|
170 |
|
|
depends on SPI_MASTER && ARCH_S3C2410 && EXPERIMENTAL
|
171 |
|
|
select SPI_BITBANG
|
172 |
|
|
help
|
173 |
|
|
SPI driver for Samsung S3C24XX series ARM SoCs using
|
174 |
|
|
GPIO lines to provide the SPI bus. This can be used where
|
175 |
|
|
the inbuilt hardware cannot provide the transfer mode, or
|
176 |
|
|
where the board is using non hardware connected pins.
|
177 |
|
|
|
178 |
|
|
config SPI_TXX9
|
179 |
|
|
tristate "Toshiba TXx9 SPI controller"
|
180 |
|
|
depends on SPI_MASTER && GENERIC_GPIO && CPU_TX49XX
|
181 |
|
|
help
|
182 |
|
|
SPI driver for Toshiba TXx9 MIPS SoCs
|
183 |
|
|
|
184 |
|
|
config SPI_XILINX
|
185 |
|
|
tristate "Xilinx SPI controller"
|
186 |
|
|
depends on SPI_MASTER && XILINX_VIRTEX && EXPERIMENTAL
|
187 |
|
|
select SPI_BITBANG
|
188 |
|
|
help
|
189 |
|
|
This exposes the SPI controller IP from the Xilinx EDK.
|
190 |
|
|
|
191 |
|
|
See the "OPB Serial Peripheral Interface (SPI) (v1.00e)"
|
192 |
|
|
Product Specification document (DS464) for hardware details.
|
193 |
|
|
|
194 |
|
|
#
|
195 |
|
|
# Add new SPI master controllers in alphabetical order above this line
|
196 |
|
|
#
|
197 |
|
|
|
198 |
|
|
#
|
199 |
|
|
# There are lots of SPI device types, with sensors and memory
|
200 |
|
|
# being probably the most widely used ones.
|
201 |
|
|
#
|
202 |
|
|
comment "SPI Protocol Masters"
|
203 |
|
|
depends on SPI_MASTER
|
204 |
|
|
|
205 |
|
|
config SPI_AT25
|
206 |
|
|
tristate "SPI EEPROMs from most vendors"
|
207 |
|
|
depends on SPI_MASTER && SYSFS
|
208 |
|
|
help
|
209 |
|
|
Enable this driver to get read/write support to most SPI EEPROMs,
|
210 |
|
|
after you configure the board init code to know about each eeprom
|
211 |
|
|
on your target board.
|
212 |
|
|
|
213 |
|
|
This driver can also be built as a module. If so, the module
|
214 |
|
|
will be called at25.
|
215 |
|
|
|
216 |
|
|
config SPI_SPIDEV
|
217 |
|
|
tristate "User mode SPI device driver support"
|
218 |
|
|
depends on SPI_MASTER && EXPERIMENTAL
|
219 |
|
|
help
|
220 |
|
|
This supports user mode SPI protocol drivers.
|
221 |
|
|
|
222 |
|
|
Note that this application programming interface is EXPERIMENTAL
|
223 |
|
|
and hence SUBJECT TO CHANGE WITHOUT NOTICE while it stabilizes.
|
224 |
|
|
|
225 |
|
|
config SPI_TLE62X0
|
226 |
|
|
tristate "Infineon TLE62X0 (for power switching)"
|
227 |
|
|
depends on SPI_MASTER && SYSFS
|
228 |
|
|
help
|
229 |
|
|
SPI driver for Infineon TLE62X0 series line driver chips,
|
230 |
|
|
such as the TLE6220, TLE6230 and TLE6240. This provides a
|
231 |
|
|
sysfs interface, with each line presented as a kind of GPIO
|
232 |
|
|
exposing both switch control and diagnostic feedback.
|
233 |
|
|
|
234 |
|
|
#
|
235 |
|
|
# Add new SPI protocol masters in alphabetical order above this line
|
236 |
|
|
#
|
237 |
|
|
|
238 |
|
|
# (slave support would go here)
|
239 |
|
|
|
240 |
|
|
endmenu # "SPI support"
|
241 |
|
|
|