]>
Commit | Line | Data |
---|---|---|
f1b1f770 AF |
1 | menuconfig SPI |
2 | bool "SPI Support" | |
0c8e6056 JT |
3 | help |
4 | The "Serial Peripheral Interface" is a low level synchronous | |
5 | protocol. Chips that support SPI can have data transfer rates | |
6 | up to several tens of Mbit/sec. Chips are addressed with a | |
7 | controller and a chipselect. Most SPI slaves don't support | |
8 | dynamic device discovery; some are even write-only or read-only. | |
9 | ||
10 | SPI is widely used by microcontrollers to talk with sensors, | |
11 | eeprom and flash memory, codecs and various other controller | |
12 | chips, analog to digital (and d-to-a) converters, and more. | |
13 | MMC and SD cards can be accessed using SPI protocol; and for | |
14 | DataFlash cards used in MMC sockets, SPI must always be used. | |
15 | ||
16 | SPI is one of a family of similar protocols using a four wire | |
17 | interface (select, clock, data in, data out) including Microwire | |
18 | (half duplex), SSP, SSI, and PSP. This driver framework should | |
19 | work with most such devices and controllers. | |
f1b1f770 AF |
20 | |
21 | if SPI | |
de823053 | 22 | |
da333ae7 MY |
23 | config DM_SPI |
24 | bool "Enable Driver Model for SPI drivers" | |
25 | depends on DM | |
26 | help | |
f94a1bed SG |
27 | Enable driver model for SPI. The SPI slave interface |
28 | (spi_setup_slave(), spi_xfer(), etc.) is then implemented by | |
29 | the SPI uclass. Drivers provide methods to access the SPI | |
30 | buses that they control. The uclass interface is defined in | |
31 | include/spi.h. The existing spi_slave structure is attached | |
32 | as 'parent data' to every slave on each bus. Slaves | |
33 | typically use driver-private data instead of extending the | |
34 | spi_slave structure. | |
892cac72 | 35 | |
d13f5b25 BB |
36 | config SPI_MEM |
37 | bool "SPI memory extension" | |
38 | help | |
39 | Enable this option if you want to enable the SPI memory extension. | |
40 | This extension is meant to simplify interaction with SPI memories | |
41 | by providing an high-level interface to send memory-like commands. | |
42 | ||
6430eea6 V |
43 | if DM_SPI |
44 | ||
15a56f9c TC |
45 | config ALTERA_SPI |
46 | bool "Altera SPI driver" | |
47 | help | |
48 | Enable the Altera SPI driver. This driver can be used to | |
49 | access the SPI NOR flash on platforms embedding this Altera | |
50 | IP core. Please find details on the "Embedded Peripherals IP | |
51 | User Guide" of Altera. | |
52 | ||
15927aef JT |
53 | config ATCSPI200_SPI |
54 | bool "Andestech ATCSPI200 SPI driver" | |
55 | help | |
56 | Enable the Andestech ATCSPI200 SPI driver. This driver can be | |
57 | used to access the SPI flash on AE3XX and AE250 platforms embedding | |
58 | this Andestech IP core. | |
59 | ||
b85dc460 WW |
60 | config ATH79_SPI |
61 | bool "Atheros SPI driver" | |
62 | depends on ARCH_ATH79 | |
63 | help | |
64 | Enable the Atheros ar7xxx/ar9xxx SoC SPI driver, it was used | |
65 | to access SPI NOR flash and other SPI peripherals. This driver | |
66 | uses driver model and requires a device tree binding to operate. | |
67 | please refer to doc/device-tree-bindings/spi/spi-ath79.txt. | |
68 | ||
24c8ff46 TA |
69 | config ATMEL_QSPI |
70 | bool "Atmel Quad SPI Controller" | |
71 | depends on ARCH_AT91 | |
72 | help | |
73 | Enable the Atmel Quad SPI controller in master mode. This driver | |
74 | does not support generic SPI. The implementation supports only the | |
75 | spi-mem interface. | |
76 | ||
0eafd4b7 WY |
77 | config ATMEL_SPI |
78 | bool "Atmel SPI driver" | |
89d4fc15 | 79 | default y if ARCH_AT91 |
0eafd4b7 WY |
80 | help |
81 | This enables driver for the Atmel SPI Controller, present on | |
daab59ac AS |
82 | many AT91 (ARM) chips. This driver can be used to access |
83 | the SPI Flash, such as AT25DF321. | |
0eafd4b7 | 84 | |
29cc4368 ÁFR |
85 | config BCM63XX_HSSPI |
86 | bool "BCM63XX HSSPI driver" | |
34fdacb0 PR |
87 | depends on (ARCH_BMIPS || ARCH_BCM68360 || \ |
88 | ARCH_BCM6858 || ARCH_BCM63158) | |
29cc4368 ÁFR |
89 | help |
90 | Enable the BCM6328 HSSPI driver. This driver can be used to | |
91 | access the SPI NOR flash on platforms embedding this Broadcom | |
92 | SPI core. | |
93 | ||
5ac07d29 ÁFR |
94 | config BCM63XX_SPI |
95 | bool "BCM6348 SPI driver" | |
96 | depends on ARCH_BMIPS | |
97 | help | |
98 | Enable the BCM6348/BCM6358 SPI driver. This driver can be used to | |
99 | access the SPI NOR flash on platforms embedding these Broadcom | |
100 | SPI cores. | |
101 | ||
894c3ad2 TF |
102 | config BCMSTB_SPI |
103 | bool "BCMSTB SPI driver" | |
104 | help | |
105 | Enable the Broadcom set-top box SPI driver. This driver can | |
106 | be used to access the SPI flash on platforms embedding this | |
107 | Broadcom SPI core. | |
108 | ||
e4976af8 JT |
109 | config CADENCE_QSPI |
110 | bool "Cadence QSPI driver" | |
111 | help | |
112 | Enable the Cadence Quad-SPI (QSPI) driver. This driver can be | |
113 | used to access the SPI NOR flash on platforms embedding this | |
114 | Cadence IP core. | |
115 | ||
610e316d AD |
116 | config CF_SPI |
117 | bool "ColdFire SPI driver" | |
118 | help | |
119 | Enable the ColdFire SPI driver. This driver can be used on | |
120 | some m68k SoCs. | |
121 | ||
e4976af8 JT |
122 | config DESIGNWARE_SPI |
123 | bool "Designware SPI driver" | |
124 | help | |
125 | Enable the Designware SPI driver. This driver can be used to | |
126 | access the SPI NOR flash on platforms embedding this Designware | |
127 | IP core. | |
128 | ||
c354eee8 JT |
129 | config EXYNOS_SPI |
130 | bool "Samsung Exynos SPI driver" | |
131 | help | |
132 | Enable the Samsung Exynos SPI driver. This driver can be used to | |
133 | access the SPI NOR flash on platforms embedding this Samsung | |
134 | Exynos IP core. | |
135 | ||
94ea308d JT |
136 | config FSL_DSPI |
137 | bool "Freescale DSPI driver" | |
138 | help | |
139 | Enable the Freescale DSPI driver. This driver can be used to | |
140 | access the SPI NOR flash and SPI Data flash on platforms embedding | |
141 | this Freescale DSPI IP core. LS102xA and Colibri VF50/VF61 platforms | |
142 | use this driver. | |
143 | ||
45636010 JT |
144 | config ICH_SPI |
145 | bool "Intel ICH SPI driver" | |
146 | help | |
147 | Enable the Intel ICH SPI driver. This driver can be used to | |
148 | access the SPI NOR flash on platforms embedding this Intel | |
149 | ICH IP core. | |
150 | ||
9d26506a NA |
151 | config MESON_SPIFC |
152 | bool "Amlogic Meson SPI Flash Controller driver" | |
153 | depends on ARCH_MESON | |
154 | help | |
155 | Enable the Amlogic Meson SPI Flash Controller SPIFC) driver. | |
156 | This driver can be used to access the SPI NOR flash chips on | |
157 | Amlogic Meson SoCs. | |
158 | ||
f34d0315 CL |
159 | config MPC8XX_SPI |
160 | bool "MPC8XX SPI Driver" | |
161 | depends on MPC8xx | |
162 | help | |
163 | Enable support for SPI on MPC8XX | |
164 | ||
c1a3f1ee JT |
165 | config MPC8XXX_SPI |
166 | bool "MPC8XXX SPI Driver" | |
167 | help | |
168 | Enable support for SPI on the MPC8XXX PowerPC SoCs. | |
169 | ||
5eee9dee SR |
170 | config MT7621_SPI |
171 | bool "MediaTek MT7621 SPI driver" | |
16b94903 | 172 | depends on SOC_MT7628 |
5eee9dee SR |
173 | help |
174 | Enable the MT7621 SPI driver. This driver can be used to access | |
175 | the SPI NOR flash on platforms embedding this Ralink / MediaTek | |
176 | SPI core, like MT7621/7628/7688. | |
177 | ||
603fcd16 WG |
178 | config MTK_SNFI_SPI |
179 | bool "Mediatek SPI memory controller driver" | |
180 | depends on SPI_MEM | |
181 | help | |
182 | Enable the Mediatek SPI memory controller driver. This driver is | |
183 | originally based on the MediaTek SNFI IP core. It can only be | |
184 | used to access SPI memory devices like SPI-NOR or SPI-NAND on | |
185 | platforms embedding this IP core, like MT7622/M7629. | |
186 | ||
3fda4ef3 SR |
187 | config MVEBU_A3700_SPI |
188 | bool "Marvell Armada 3700 SPI driver" | |
dbbd5bdd | 189 | select CLK_ARMADA_3720 |
3fda4ef3 SR |
190 | help |
191 | Enable the Marvell Armada 3700 SPI driver. This driver can be | |
192 | used to access the SPI NOR flash on platforms embedding this | |
193 | Marvell IP core. | |
194 | ||
383fded7 MW |
195 | config NXP_FSPI |
196 | bool "NXP FlexSPI driver" | |
197 | depends on SPI_MEM | |
198 | help | |
199 | Enable the NXP FlexSPI (FSPI) driver. This driver can be used to | |
200 | access the SPI NOR flash on platforms embedding this NXP IP core. | |
201 | ||
e19b9004 PCM |
202 | config PIC32_SPI |
203 | bool "Microchip PIC32 SPI driver" | |
204 | depends on MACH_PIC32 | |
205 | help | |
206 | Enable the Microchip PIC32 SPI driver. This driver can be used | |
207 | to access the SPI NOR flash, MMC-over-SPI on platforms based on | |
208 | Microchip PIC32 family devices. | |
209 | ||
8a4791fa QS |
210 | config PL022_SPI |
211 | bool "ARM AMBA PL022 SSP controller driver" | |
212 | depends on ARM | |
213 | help | |
214 | This selects the ARM(R) AMBA(R) PrimeCell PL022 SSP | |
215 | controller. If you have an embedded system with an AMBA(R) | |
216 | bus and a PL022 controller, say Y or M here. | |
217 | ||
fbebea27 MV |
218 | config RENESAS_RPC_SPI |
219 | bool "Renesas RPC SPI driver" | |
b5b66567 | 220 | depends on RCAR_GEN3 || RZA1 |
6d825178 | 221 | imply SPI_FLASH_BAR |
fbebea27 MV |
222 | help |
223 | Enable the Renesas RPC SPI driver, used to access SPI NOR flash | |
224 | on Renesas RCar Gen3 SoCs. This uses driver model and requires a | |
225 | device tree binding to operate. | |
226 | ||
1b2fd5bf SG |
227 | config ROCKCHIP_SPI |
228 | bool "Rockchip SPI driver" | |
229 | help | |
230 | Enable the Rockchip SPI driver, used to access SPI NOR flash and | |
231 | other SPI peripherals (such as the Chrome OS EC) on Rockchip SoCs. | |
232 | This uses driver model and requires a device tree binding to | |
233 | operate. | |
234 | ||
892cac72 SG |
235 | config SANDBOX_SPI |
236 | bool "Sandbox SPI driver" | |
237 | depends on SANDBOX && DM | |
238 | help | |
239 | Enable SPI support for sandbox. This is an emulation of a real SPI | |
240 | bus. Devices can be attached to the bus using the device tree | |
241 | which specifies the driver to use. As an example, see this device | |
242 | tree fragment from sandbox.dts. It shows that the SPI bus has a | |
243 | single flash device on chip select 0 which is emulated by the driver | |
244 | for "sandbox,spi-flash", which is in drivers/mtd/spi/sandbox.c. | |
245 | ||
246 | spi@0 { | |
247 | #address-cells = <1>; | |
248 | #size-cells = <0>; | |
249 | reg = <0>; | |
250 | compatible = "sandbox,spi"; | |
251 | cs-gpios = <0>, <&gpio_a 0>; | |
252 | flash@0 { | |
253 | reg = <0>; | |
24c2776b | 254 | compatible = "spansion,m25p16", "jedec,spi-nor"; |
892cac72 SG |
255 | spi-max-frequency = <40000000>; |
256 | sandbox,filename = "spi.bin"; | |
257 | }; | |
e4976af8 | 258 | }; |
f924a209 | 259 | |
a2f32bfd BS |
260 | config SPI_SIFIVE |
261 | bool "SiFive SPI driver" | |
262 | help | |
263 | This driver supports the SiFive SPI IP. If unsure say N. | |
264 | Enable the SiFive SPI controller driver. | |
265 | ||
266 | The SiFive SPI controller driver is found on various SiFive SoCs. | |
267 | ||
a51cd54e JT |
268 | config SPI_SUNXI |
269 | bool "Allwinner SoC SPI controllers" | |
dc738248 | 270 | default ARCH_SUNXI |
a51cd54e JT |
271 | help |
272 | Enable the Allwinner SoC SPi controller driver. | |
273 | ||
274 | Same controller driver can reuse in all Allwinner SoC variants. | |
275 | ||
d4363baa MK |
276 | config STM32_QSPI |
277 | bool "STM32F7 QSPI driver" | |
351d2fef | 278 | depends on STM32F4 || STM32F7 || ARCH_STM32MP |
d4363baa MK |
279 | help |
280 | Enable the STM32F7 Quad-SPI (QSPI) driver. This driver can be | |
281 | used to access the SPI NOR flash chips on platforms embedding | |
282 | this ST IP core. | |
283 | ||
a2a89b2e PC |
284 | config STM32_SPI |
285 | bool "STM32 SPI driver" | |
286 | depends on ARCH_STM32MP | |
287 | help | |
288 | Enable the STM32 Serial Peripheral Interface (SPI) driver for STM32MP | |
289 | SoCs. This uses driver model and requires a device tree binding to | |
290 | operate. | |
291 | ||
5bf9a2d3 JT |
292 | config TEGRA114_SPI |
293 | bool "nVidia Tegra114 SPI driver" | |
294 | help | |
295 | Enable the nVidia Tegra114 SPI driver. This driver can be used to | |
296 | access the SPI NOR flash on platforms embedding this nVidia Tegra114 | |
297 | IP core. | |
298 | ||
299 | This controller is different than the older SoCs SPI controller and | |
300 | also register interface get changed with this controller. | |
301 | ||
2f3e6f8c JT |
302 | config TEGRA20_SFLASH |
303 | bool "nVidia Tegra20 Serial Flash controller driver" | |
304 | help | |
305 | Enable the nVidia Tegra20 Serial Flash controller driver. This driver | |
306 | can be used to access the SPI NOR flash on platforms embedding this | |
307 | nVidia Tegra20 IP core. | |
308 | ||
4495830c JT |
309 | config TEGRA20_SLINK |
310 | bool "nVidia Tegra20/Tegra30 SLINK driver" | |
311 | help | |
312 | Enable the nVidia Tegra20/Tegra30 SLINK driver. This driver can | |
313 | be used to access the SPI NOR flash on platforms embedding this | |
314 | nVidia Tegra20/Tegra30 IP cores. | |
315 | ||
4e675ff2 TW |
316 | config TEGRA210_QSPI |
317 | bool "nVidia Tegra210 QSPI driver" | |
318 | help | |
319 | Enable the Tegra Quad-SPI (QSPI) driver for T210. This driver | |
320 | be used to access SPI chips on platforms embedding this | |
321 | NVIDIA Tegra210 IP core. | |
322 | ||
61ae9782 VR |
323 | config TI_QSPI |
324 | bool "TI QSPI driver" | |
325 | imply TI_EDMA3 | |
326 | help | |
327 | Enable the TI Quad-SPI (QSPI) driver for DRA7xx and AM43xx evms. | |
328 | This driver support spi flash single, quad and memory reads. | |
329 | ||
9424ecd7 KH |
330 | config UNIPHIER_SPI |
331 | bool "Socionext UniPhier SPI driver" | |
332 | depends on ARCH_UNIPHIER | |
333 | help | |
334 | Enable the Socionext UniPhier SPI driver. This driver can | |
335 | be used to access SPI chips on platforms embedding this | |
336 | UniPhier IP core. | |
337 | ||
075143d3 JT |
338 | config XILINX_SPI |
339 | bool "Xilinx SPI driver" | |
075143d3 JT |
340 | help |
341 | Enable the Xilinx SPI driver from the Xilinx EDK. This SPI | |
342 | controller support 8 bit SPI transfers only, with or w/o FIFO. | |
343 | For more info on Xilinx SPI Register Definitions and Overview | |
344 | see driver file - drivers/spi/xilinx_spi.c | |
345 | ||
df30a425 JT |
346 | config ZYNQ_SPI |
347 | bool "Zynq SPI driver" | |
ec48b6c9 | 348 | depends on ARCH_ZYNQ || ARCH_ZYNQMP || ARCH_VERSAL |
df30a425 JT |
349 | help |
350 | Enable the Zynq SPI driver. This driver can be used to | |
351 | access the SPI NOR flash on platforms embedding this Zynq | |
352 | SPI IP core. | |
de823053 | 353 | |
78a025ac JT |
354 | config ZYNQ_QSPI |
355 | bool "Zynq QSPI driver" | |
356 | depends on ARCH_ZYNQ | |
6d825178 | 357 | imply SPI_FLASH_BAR |
78a025ac JT |
358 | help |
359 | Enable the Zynq Quad-SPI (QSPI) driver. This driver can be | |
360 | used to access the SPI NOR flash on platforms embedding this | |
361 | Zynq QSPI IP core. This IP is used to connect the flash in | |
362 | 4-bit qspi, 8-bit dual stacked and shared 4-bit dual parallel. | |
363 | ||
22cca173 SDPP |
364 | config ZYNQMP_GQSPI |
365 | bool "Configure ZynqMP Generic QSPI" | |
ec48b6c9 | 366 | depends on ARCH_ZYNQMP || ARCH_VERSAL |
22cca173 SDPP |
367 | help |
368 | This option is used to enable ZynqMP QSPI controller driver which | |
369 | is used to communicate with qspi flash devices. | |
370 | ||
e4976af8 JT |
371 | endif # if DM_SPI |
372 | ||
41eb8ff5 PF |
373 | config SOFT_SPI |
374 | bool "Soft SPI driver" | |
32f70d67 | 375 | depends on DM_SPI || (DEPRECATED && !DM_SPI) |
41eb8ff5 PF |
376 | help |
377 | Enable Soft SPI driver. This driver is to use GPIO simulate | |
378 | the SPI protocol. | |
379 | ||
fd6e0b05 LP |
380 | config MSCC_BB_SPI |
381 | bool "MSCC bitbang SPI driver" | |
382 | depends on SOC_VCOREIII | |
383 | help | |
384 | Enable MSCC bitbang SPI driver. This driver can be used on | |
385 | MSCC SOCs. | |
386 | ||
3debffa7 JT |
387 | config FSL_ESPI |
388 | bool "Freescale eSPI driver" | |
56e6f810 | 389 | imply SPI_FLASH_BAR |
3debffa7 JT |
390 | help |
391 | Enable the Freescale eSPI driver. This driver can be used to | |
392 | access the SPI interface and SPI NOR flash on platforms embedding | |
393 | this Freescale eSPI IP core. | |
394 | ||
21b1dd18 JT |
395 | config FSL_QSPI |
396 | bool "Freescale QSPI driver" | |
6d825178 | 397 | imply SPI_FLASH_BAR |
21b1dd18 JT |
398 | help |
399 | Enable the Freescale Quad-SPI (QSPI) driver. This driver can be | |
400 | used to access the SPI NOR flash on platforms embedding this | |
401 | Freescale IP core. | |
402 | ||
26410c15 AF |
403 | config DAVINCI_SPI |
404 | bool "Davinci & Keystone SPI driver" | |
405 | depends on ARCH_DAVINCI || ARCH_KEYSTONE | |
406 | help | |
407 | Enable the Davinci SPI driver | |
408 | ||
95d3877a TT |
409 | config SH_SPI |
410 | bool "SuperH SPI driver" | |
e1247592 | 411 | depends on DEPRECATED |
95d3877a TT |
412 | help |
413 | Enable the SuperH SPI controller driver. This driver can be used | |
414 | on various SuperH SoCs, such as SH7757. | |
415 | ||
a5dfabea TT |
416 | config SH_QSPI |
417 | bool "Renesas Quad SPI driver" | |
418 | help | |
419 | Enable the Renesas Quad SPI controller driver. This driver can be | |
420 | used on Renesas SoCs. | |
421 | ||
4a942f49 TT |
422 | config KIRKWOOD_SPI |
423 | bool "Marvell Kirkwood SPI Driver" | |
424 | help | |
425 | Enable support for SPI on various Marvell SoCs, such as | |
426 | Kirkwood and Armada 375. | |
427 | ||
60e54562 TT |
428 | config MXC_SPI |
429 | bool "MXC SPI Driver" | |
430 | help | |
431 | Enable the MXC SPI controller driver. This driver can be used | |
432 | on various i.MX SoCs such as i.MX31/35/51/6/7. | |
433 | ||
7b819b56 TT |
434 | config MXS_SPI |
435 | bool "MXS SPI Driver" | |
436 | help | |
437 | Enable the MXS SPI controller driver. This driver can be used | |
438 | on the i.MX23 and i.MX28 SoCs. | |
439 | ||
a41e3e14 AF |
440 | config OMAP3_SPI |
441 | bool "McSPI driver for OMAP" | |
442 | help | |
443 | SPI master controller for OMAP24XX and later Multichannel SPI | |
444 | (McSPI). This driver be used to access SPI chips on platforms | |
445 | embedding this OMAP3 McSPI IP core. | |
446 | ||
f1b1f770 | 447 | endif # menu "SPI Support" |