blob: 18dfd1796fc51d1b25928ce3cd2569eb920f1446 [file] [log] [blame]
Adam Ford4e96ff82018-04-15 13:51:26 -04001menuconfig SPI
2 bool "SPI Support"
Jagan Teki38d91fe2019-10-16 18:04:13 +05303 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.
Adam Ford4e96ff82018-04-15 13:51:26 -040020
21if SPI
Jagan Tekibfd3f8b2015-06-27 22:35:14 +053022
Venkatesh Yadav Abbarapubc8c88b2024-09-26 10:25:02 +053023config SPI_ADVANCE
24 bool "Enable the advance feature"
25 help
26 Enable the SPI advance feature support. By default this is disabled.
27 If you intend to use the advance feature support you should enable.
28
Masahiro Yamada57ad8ee2014-10-23 22:26:09 +090029config DM_SPI
30 bool "Enable Driver Model for SPI drivers"
31 depends on DM
32 help
Simon Glassd8b771d2015-02-05 21:41:35 -070033 Enable driver model for SPI. The SPI slave interface
34 (spi_setup_slave(), spi_xfer(), etc.) is then implemented by
35 the SPI uclass. Drivers provide methods to access the SPI
36 buses that they control. The uclass interface is defined in
37 include/spi.h. The existing spi_slave structure is attached
38 as 'parent data' to every slave on each bus. Slaves
39 typically use driver-private data instead of extending the
40 spi_slave structure.
Simon Glass4b322d32015-03-06 13:19:05 -070041
Boris Brezillon32473fe2018-08-16 17:30:11 +020042config SPI_MEM
43 bool "SPI memory extension"
44 help
45 Enable this option if you want to enable the SPI memory extension.
46 This extension is meant to simplify interaction with SPI memories
47 by providing an high-level interface to send memory-like commands.
48
Chin-Ting Kuoa891be82022-08-19 17:01:08 +080049config SPI_DIRMAP
50 bool "SPI direct mapping"
51 depends on SPI_MEM
52 help
53 Enable the SPI direct mapping API. Most modern SPI controllers can
54 directly map a SPI memory (or a portion of the SPI memory) in the CPU
55 address space. Most of the time this brings significant performance
56 improvements as it automates the whole process of sending SPI memory
57 operations every time a new region is accessed.
58
Vignesh R4e341d32019-02-05 11:29:15 +053059if DM_SPI
60
Thomas Chouc5899542015-10-14 08:33:34 +080061config ALTERA_SPI
62 bool "Altera SPI driver"
63 help
64 Enable the Altera SPI driver. This driver can be used to
65 access the SPI NOR flash on platforms embedding this Altera
66 IP core. Please find details on the "Embedded Peripherals IP
67 User Guide" of Altera.
68
Mark Kettenis0c3e9242022-01-23 16:48:12 +010069config APPLE_SPI
70 bool "Apple SPI driver"
71 default y if ARCH_APPLE
72 help
73 Enable the Apple SPI driver. This driver can be used to
74 access the SPI flash and keyboard on machines based on Apple SoCs.
75
Jagan Teki353dffb2018-03-07 10:33:33 +053076config ATCSPI200_SPI
77 bool "Andestech ATCSPI200 SPI driver"
78 help
79 Enable the Andestech ATCSPI200 SPI driver. This driver can be
80 used to access the SPI flash on AE3XX and AE250 platforms embedding
81 this Andestech IP core.
82
Wills Wangf5021482016-03-16 16:59:58 +080083config ATH79_SPI
84 bool "Atheros SPI driver"
85 depends on ARCH_ATH79
86 help
87 Enable the Atheros ar7xxx/ar9xxx SoC SPI driver, it was used
88 to access SPI NOR flash and other SPI peripherals. This driver
89 uses driver model and requires a device tree binding to operate.
90 please refer to doc/device-tree-bindings/spi/spi-ath79.txt.
91
Tudor Ambarus88151bb2019-06-18 08:51:50 +000092config ATMEL_QSPI
93 bool "Atmel Quad SPI Controller"
94 depends on ARCH_AT91
95 help
96 Enable the Atmel Quad SPI controller in master mode. This driver
97 does not support generic SPI. The implementation supports only the
98 spi-mem interface.
99
Wenyou Yangda8ee982016-10-28 14:17:49 +0800100config ATMEL_SPI
101 bool "Atmel SPI driver"
Jagan Teki1d831b62018-03-14 18:46:44 +0530102 default y if ARCH_AT91
Wenyou Yangda8ee982016-10-28 14:17:49 +0800103 help
104 This enables driver for the Atmel SPI Controller, present on
Andy Shevchenko8cb5cdd2017-07-05 16:25:22 +0300105 many AT91 (ARM) chips. This driver can be used to access
106 the SPI Flash, such as AT25DF321.
Wenyou Yangda8ee982016-10-28 14:17:49 +0800107
Álvaro Fernández Rojas55d96ec2018-01-20 02:13:38 +0100108config BCM63XX_HSSPI
109 bool "BCM63XX HSSPI driver"
William Zhang96c65fa2023-06-07 16:37:01 -0700110 depends on (ARCH_BMIPS || ARCH_BCMBCA)
Álvaro Fernández Rojas55d96ec2018-01-20 02:13:38 +0100111 help
William Zhang96c65fa2023-06-07 16:37:01 -0700112 Enable the BCM63XX HSSPI driver. This driver can be used to
Álvaro Fernández Rojas55d96ec2018-01-20 02:13:38 +0100113 access the SPI NOR flash on platforms embedding this Broadcom
114 SPI core.
115
William Zhang7ff58552023-06-07 16:37:05 -0700116config BCMBCA_HSSPI
117 bool "BCMBCA HSSPI driver"
118 depends on ARCH_BCMBCA && HAVE_SPI_CS_CTRL
119 help
120 This enables support for the High Speed SPI controller present on
121 newer Broadcom BCMBCA SoCs. These SoCs include an updated SPI controller
122 that adds the capability to allow the driver to control chip select
123 explicitly.
124
Álvaro Fernández Rojascc243c62018-01-23 17:14:58 +0100125config BCM63XX_SPI
126 bool "BCM6348 SPI driver"
127 depends on ARCH_BMIPS
128 help
129 Enable the BCM6348/BCM6358 SPI driver. This driver can be used to
130 access the SPI NOR flash on platforms embedding these Broadcom
131 SPI cores.
132
Thomas Fitzsimmons919646d2018-06-08 17:59:45 -0400133config BCMSTB_SPI
134 bool "BCMSTB SPI driver"
135 help
136 Enable the Broadcom set-top box SPI driver. This driver can
137 be used to access the SPI flash on platforms embedding this
138 Broadcom SPI core.
139
Pengpeng Chen8f04b522020-07-30 12:52:45 -0700140config CORTINA_SFLASH
141 bool "Cortina-Access Serial Flash controller driver"
142 depends on DM_SPI && SPI_MEM
143 help
144 Enable the Cortina-Access Serial Flash controller driver. This driver
145 can be used to access the SPI NOR/NAND flash on platforms embedding this
146 Cortina-Access IP core.
147
Jagan Teki15a932c2015-06-27 22:37:00 +0530148config CADENCE_QSPI
149 bool "Cadence QSPI driver"
150 help
151 Enable the Cadence Quad-SPI (QSPI) driver. This driver can be
152 used to access the SPI NOR flash on platforms embedding this
153 Cadence IP core.
154
Tom Rini3fb5b2f2022-03-30 18:07:23 -0400155config HAS_CQSPI_REF_CLK
156 bool "Cadence QSPI static reference clock"
157 depends on CADENCE_QSPI
158
159config CQSPI_REF_CLK
160 int "Cadence QSPI reference clock value in Hz"
161 depends on HAS_CQSPI_REF_CLK
162
T Karthik Reddy73701e72022-05-12 04:05:32 -0600163config CADENCE_OSPI_VERSAL
164 bool "Configure Versal OSPI"
Michal Simek71bfd392024-05-29 16:48:01 +0200165 depends on (ARCH_VERSAL || ARCH_VERSAL_NET || ARCH_VERSAL2) && CADENCE_QSPI
T Karthik Reddy73701e72022-05-12 04:05:32 -0600166 imply DM_GPIO
167 help
168 This option is used to enable Versal OSPI DMA operations which
169 are used for ospi flash read using cadence qspi controller.
170
Angelo Dureghello72e9be32019-03-13 21:46:46 +0100171config CF_SPI
172 bool "ColdFire SPI driver"
173 help
174 Enable the ColdFire SPI driver. This driver can be used on
175 some m68k SoCs.
176
Kongyang Liu61c9f282024-04-20 15:08:23 +0800177config CV1800B_SPIF
178 bool "Sophgo cv1800b SPI Flash Controller driver"
179 depends on SPI_MEM
180 help
181 Enable the Sophgo cv1800b SPI Flash Controller driver. This driver
182 can be used to access the SPI NOR flash on platforms embedding this
183 Sophgo cv1800b IP core.
184
Jagan Teki97c18ed2020-05-26 13:34:26 +0530185config DAVINCI_SPI
186 bool "Davinci & Keystone SPI driver"
187 depends on ARCH_DAVINCI || ARCH_KEYSTONE
188 help
189 Enable the Davinci SPI driver
190
Jagan Teki15a932c2015-06-27 22:37:00 +0530191config DESIGNWARE_SPI
192 bool "Designware SPI driver"
193 help
194 Enable the Designware SPI driver. This driver can be used to
195 access the SPI NOR flash on platforms embedding this Designware
196 IP core.
197
Jagan Teki6274bf92015-06-27 15:32:19 +0530198config EXYNOS_SPI
199 bool "Samsung Exynos SPI driver"
200 help
201 Enable the Samsung Exynos SPI driver. This driver can be used to
202 access the SPI NOR flash on platforms embedding this Samsung
203 Exynos IP core.
204
Jagan Tekiae30c022015-06-27 14:17:06 +0530205config FSL_DSPI
206 bool "Freescale DSPI driver"
207 help
208 Enable the Freescale DSPI driver. This driver can be used to
209 access the SPI NOR flash and SPI Data flash on platforms embedding
210 this Freescale DSPI IP core. LS102xA and Colibri VF50/VF61 platforms
211 use this driver.
212
Jagan Teki72cedd42020-05-26 00:24:19 +0530213config FSL_QSPI
214 bool "Freescale QSPI driver"
215 imply SPI_FLASH_BAR
216 help
217 Enable the Freescale Quad-SPI (QSPI) driver. This driver can be
218 used to access the SPI NOR flash on platforms embedding this
219 Freescale IP core.
220
Ye Lid7e3c9a2020-06-09 00:59:06 -0700221config FSL_QSPI_AHB_FULL_MAP
222 bool "Use full AHB memory map space"
223 depends on FSL_QSPI
224 default y if ARCH_MX6 || ARCH_MX7 || ARCH_MX7ULP || ARCH_IMX8M
225 help
226 Enable the Freescale QSPI driver to use full AHB memory map space for
227 flash access.
228
Nick Hawkins2ccea3a2022-06-08 16:21:36 -0500229config GXP_SPI
230 bool "SPI driver for GXP"
231 imply SPI_FLASH_BAR
232 help
233 Enable support for SPI on GXP.
234
Jagan Teki3872b7c2015-06-27 15:43:27 +0530235config ICH_SPI
236 bool "Intel ICH SPI driver"
237 help
238 Enable the Intel ICH SPI driver. This driver can be used to
239 access the SPI NOR flash on platforms embedding this Intel
240 ICH IP core.
241
Rayagonda Kokatanur1969f2b2022-02-09 14:16:13 -0800242config IPROC_QSPI
243 bool "Broadcom iProc QSPI Flash Controller driver"
244 help
245 Enable Broadcom iProc QSPI Flash Controller driver.
246 This driver can be used to access the SPI NOR flash.
247
Bhargav Shah83a26312020-06-18 23:15:13 +0530248config KIRKWOOD_SPI
249 bool "Marvell Kirkwood SPI Driver"
250 help
251 Enable support for SPI on various Marvell SoCs, such as
252 Kirkwood and Armada 375.
253
Neil Armstrong5c162172018-11-22 11:01:05 +0100254config MESON_SPIFC
255 bool "Amlogic Meson SPI Flash Controller driver"
256 depends on ARCH_MESON
257 help
258 Enable the Amlogic Meson SPI Flash Controller SPIFC) driver.
259 This driver can be used to access the SPI NOR flash chips on
260 Amlogic Meson SoCs.
261
Padmarao Begari32678b02022-10-27 11:32:01 +0530262config MICROCHIP_COREQSPI
263 bool "Microchip FPGA QSPI Controller driver"
264 help
265 Enable the QSPI driver for Microchip FPGA QSPI controllers.
266 This driver can be used on Polarfire SoC.
267
Igor Prusov3f027752023-10-25 01:51:39 +0300268config MESON_SPIFC_A1
269 bool "Amlogic Meson A1 SPI Flash Controller driver"
270 depends on ARCH_MESON
271 help
272 Enable the Amlogic A1 SPI Flash Controller (SPIFC) driver.
273 This driver can be used to access the SPI NOR/NAND flash chips
274 with STR mode frequency up to 98MHz. Dual and quad modes are
275 supported by controller.
276
Christophe Leroy847362b2018-11-21 08:51:57 +0000277config MPC8XX_SPI
278 bool "MPC8XX SPI Driver"
Christophe Leroybc6a4572024-04-02 19:20:07 +0200279 depends on MPC8xx && DM_GPIO
Christophe Leroy847362b2018-11-21 08:51:57 +0000280 help
281 Enable support for SPI on MPC8XX
282
Jagan Teki52515d52019-04-29 01:58:53 +0530283config MPC8XXX_SPI
284 bool "MPC8XXX SPI Driver"
285 help
286 Enable support for SPI on the MPC8XXX PowerPC SoCs.
287
Jagan Teki72cedd42020-05-26 00:24:19 +0530288config MSCC_BB_SPI
289 bool "MSCC bitbang SPI driver"
290 depends on SOC_VCOREIII
291 help
292 Enable MSCC bitbang SPI driver. This driver can be used on
293 MSCC SOCs.
294
developer2dfdc3f2020-11-12 16:36:42 +0800295config MT7620_SPI
296 bool "MediaTek MT7620 SPI driver"
297 depends on SOC_MT7620
298 help
299 Enable the MT7620 SPI driver. This driver can be used to access
300 generic SPI devices on MediaTek MT7620 SoC.
301
Stefan Roese8adb8cb2018-08-16 10:48:48 +0200302config MT7621_SPI
303 bool "MediaTek MT7621 SPI driver"
developer005064e2022-05-20 11:23:08 +0800304 depends on SOC_MT7621 || SOC_MT7628
Stefan Roese8adb8cb2018-08-16 10:48:48 +0200305 help
306 Enable the MT7621 SPI driver. This driver can be used to access
307 the SPI NOR flash on platforms embedding this Ralink / MediaTek
308 SPI core, like MT7621/7628/7688.
309
developerf33cf3c2021-01-20 15:31:33 +0800310config MTK_SNOR
311 bool "Mediatek SPI-NOR controller driver"
312 depends on SPI_MEM
313 help
314 Enable the Mediatek SPINOR controller driver. This driver has
315 better read/write performance with NOR.
316
developer8a78b4d2019-07-22 17:09:01 +0530317config MTK_SNFI_SPI
318 bool "Mediatek SPI memory controller driver"
319 depends on SPI_MEM
320 help
321 Enable the Mediatek SPI memory controller driver. This driver is
322 originally based on the MediaTek SNFI IP core. It can only be
323 used to access SPI memory devices like SPI-NOR or SPI-NAND on
324 platforms embedding this IP core, like MT7622/M7629.
325
developer24202202022-09-09 19:59:45 +0800326config MTK_SPIM
327 bool "Mediatek SPI-MEM master controller driver"
328 depends on SPI_MEM
329 help
330 Enable MediaTek SPI-MEM master controller driver. This driver mainly
331 supports SPI flashes. You can use single, dual or quad mode
332 transmission on this controller.
333
Stefan Roese9ec1c782016-05-19 15:56:44 +0200334config MVEBU_A3700_SPI
335 bool "Marvell Armada 3700 SPI driver"
Marek Behún0afd9342018-04-24 17:21:26 +0200336 select CLK_ARMADA_3720
Stefan Roese9ec1c782016-05-19 15:56:44 +0200337 help
338 Enable the Marvell Armada 3700 SPI driver. This driver can be
339 used to access the SPI NOR flash on platforms embedding this
340 Marvell IP core.
341
Jagan Teki2174d852020-05-25 23:24:23 +0530342config MXS_SPI
343 bool "MXS SPI Driver"
344 help
345 Enable the MXS SPI controller driver. This driver can be used
346 on the i.MX23 and i.MX28 SoCs.
347
Zhengxunc93136b2021-06-23 17:15:15 +0000348config SPI_MXIC
349 bool "Macronix MX25F0A SPI controller"
350 help
351 Enable the Macronix MX25F0A SPI controller driver. This driver
352 can be used to access the SPI flash on platforms embedding
353 this Macronix IP core.
354
Jim Liu464b7cd2022-04-26 16:52:45 +0800355config NPCM_FIU_SPI
356 bool "FIU driver for Nuvoton NPCM SoC"
357 help
358 This enables support for the Flash Interface Unit SPI controller
359 in master mode.
360
Jim Liu68d29122022-05-31 18:14:02 +0800361config NPCM_PSPI
362 bool "PSPI driver for Nuvoton NPCM SoC"
363 help
364 PSPI driver for NPCM SoC
365
Michael Walled3967f32019-12-18 00:09:58 +0100366config NXP_FSPI
367 bool "NXP FlexSPI driver"
368 depends on SPI_MEM
369 help
370 Enable the NXP FlexSPI (FSPI) driver. This driver can be used to
371 access the SPI NOR flash on platforms embedding this NXP IP core.
372
Suneel Garapati41717772020-07-30 13:56:18 +0200373config OCTEON_SPI
374 bool "Octeon SPI driver"
Simon Glass3933d292021-08-01 18:54:44 -0600375 depends on ARCH_OCTEON || ARCH_OCTEONTX || ARCH_OCTEONTX2
Suneel Garapati41717772020-07-30 13:56:18 +0200376 help
377 Enable the Octeon SPI driver. This driver can be used to
378 access the SPI NOR flash on Octeon II/III and OcteonTX/TX2
379 SoC platforms.
380
Jagan Teki99899c52020-05-27 18:26:36 +0530381config OMAP3_SPI
382 bool "McSPI driver for OMAP"
383 help
384 SPI master controller for OMAP24XX and later Multichannel SPI
385 (McSPI). This driver be used to access SPI chips on platforms
386 embedding this OMAP3 McSPI IP core.
387
Purna Chandra Mandalffa54422016-06-02 14:26:08 +0530388config PIC32_SPI
389 bool "Microchip PIC32 SPI driver"
390 depends on MACH_PIC32
391 help
392 Enable the Microchip PIC32 SPI driver. This driver can be used
393 to access the SPI NOR flash, MMC-over-SPI on platforms based on
394 Microchip PIC32 family devices.
395
Quentin Schulz3add62d2018-08-31 16:28:29 +0200396config PL022_SPI
397 bool "ARM AMBA PL022 SSP controller driver"
398 depends on ARM
399 help
400 This selects the ARM(R) AMBA(R) PrimeCell PL022 SSP
401 controller. If you have an embedded system with an AMBA(R)
402 bus and a PL022 controller, say Y or M here.
403
Robert Markoe4b17a72020-10-08 22:05:09 +0200404config SPI_QUP
405 bool "Qualcomm SPI controller with QUP interface"
406 depends on ARCH_IPQ40XX
407 help
408 Qualcomm Universal Peripheral (QUP) core is an AHB slave that
409 provides a common data path (an output FIFO and an input FIFO)
410 for serial peripheral interface (SPI) mini-core. SPI in master
411 mode supports up to 50MHz, up to four chip selects, programmable
412 data path from 4 bits to 32 bits and numerous protocol variants.
413
Marek Vasut6ca967b2017-11-29 06:29:46 +0100414config RENESAS_RPC_SPI
415 bool "Renesas RPC SPI driver"
Marek Vasut47c4f502023-02-28 22:28:30 +0100416 depends on RCAR_64 || RZA1
Hai Pham64f3ca82022-08-25 10:32:56 +0700417 imply SPI_FLASH_SFDP_SUPPORT
Marek Vasut6ca967b2017-11-29 06:29:46 +0100418 help
419 Enable the Renesas RPC SPI driver, used to access SPI NOR flash
420 on Renesas RCar Gen3 SoCs. This uses driver model and requires a
421 device tree binding to operate.
422
Chris Morgan3afbc762021-08-05 16:26:38 +0800423config ROCKCHIP_SFC
424 bool "Rockchip SFC Driver"
425 help
426 Enable the Rockchip SFC Driver for SPI NOR flash. This device is
427 a limited purpose SPI controller for driving NOR flash on certain
428 Rockchip SoCs. This uses driver model and requires a device tree
429 binding to operate.
430
Simon Glassd1c13772015-09-01 19:19:37 -0600431config ROCKCHIP_SPI
432 bool "Rockchip SPI driver"
433 help
434 Enable the Rockchip SPI driver, used to access SPI NOR flash and
435 other SPI peripherals (such as the Chrome OS EC) on Rockchip SoCs.
436 This uses driver model and requires a device tree binding to
437 operate.
438
Simon Glass4b322d32015-03-06 13:19:05 -0700439config SANDBOX_SPI
440 bool "Sandbox SPI driver"
441 depends on SANDBOX && DM
442 help
443 Enable SPI support for sandbox. This is an emulation of a real SPI
444 bus. Devices can be attached to the bus using the device tree
445 which specifies the driver to use. As an example, see this device
446 tree fragment from sandbox.dts. It shows that the SPI bus has a
447 single flash device on chip select 0 which is emulated by the driver
448 for "sandbox,spi-flash", which is in drivers/mtd/spi/sandbox.c.
449
450 spi@0 {
451 #address-cells = <1>;
452 #size-cells = <0>;
453 reg = <0>;
454 compatible = "sandbox,spi";
455 cs-gpios = <0>, <&gpio_a 0>;
456 flash@0 {
457 reg = <0>;
Simon Glass7e368682019-05-18 11:59:49 -0600458 compatible = "spansion,m25p16", "jedec,spi-nor";
Simon Glass4b322d32015-03-06 13:19:05 -0700459 spi-max-frequency = <40000000>;
460 sandbox,filename = "spi.bin";
461 };
Jagan Teki15a932c2015-06-27 22:37:00 +0530462 };
Jagan Tekidd32f512015-06-27 04:41:11 +0530463
Tom Rini8f0dfd42022-12-02 16:42:43 -0500464config SANDBOX_SPI_MAX_BUS
465 int
466 depends on SANDBOX
467 default 1
468
469config SANDBOX_SPI_MAX_CS
470 int
471 depends on SANDBOX
472 default 10
473
Chin-Ting Kuo4d2caaf2022-08-19 17:01:04 +0800474config SPI_ASPEED_SMC
475 bool "ASPEED SPI flash controller driver"
476 depends on DM_SPI && SPI_MEM
Chin-Ting Kuo4d2caaf2022-08-19 17:01:04 +0800477 help
478 Enable ASPEED SPI flash controller driver for AST2500
479 and AST2600 SoCs.
480
Bhargav Shah3c34f752019-07-17 04:23:43 +0000481config SPI_SIFIVE
482 bool "SiFive SPI driver"
483 help
484 This driver supports the SiFive SPI IP. If unsure say N.
485 Enable the SiFive SPI controller driver.
486
487 The SiFive SPI controller driver is found on various SiFive SoCs.
488
Jagan Tekie5762442020-05-26 08:34:37 +0530489config SOFT_SPI
490 bool "Soft SPI driver"
491 help
492 Enable Soft SPI driver. This driver is to use GPIO simulate
493 the SPI protocol.
494
Kunihiko Hayashi7509ea12022-11-29 11:17:09 +0900495config SPI_SN_F_OSPI
496 tristate "Socionext F_OSPI SPI flash controller"
497 depends on SPI_MEM
498 help
499 This enables support for the Socionext F_OSPI controller
500 for connecting an SPI flash memory over up to 8-bit wide bus.
501 It supports indirect access mode only.
502
Jagan Teki7b68ef42019-02-27 20:02:13 +0530503config SPI_SUNXI
504 bool "Allwinner SoC SPI controllers"
Jagan Teki9f6eafd2019-10-16 18:05:56 +0530505 default ARCH_SUNXI
Jagan Teki7b68ef42019-02-27 20:02:13 +0530506 help
507 Enable the Allwinner SoC SPi controller driver.
508
509 Same controller driver can reuse in all Allwinner SoC variants.
510
Michael Kurz337ff2a2017-01-22 16:04:30 +0100511config STM32_QSPI
512 bool "STM32F7 QSPI driver"
Patrice Chotardd43c4962019-04-30 16:09:18 +0200513 depends on STM32F4 || STM32F7 || ARCH_STM32MP
Michael Kurz337ff2a2017-01-22 16:04:30 +0100514 help
515 Enable the STM32F7 Quad-SPI (QSPI) driver. This driver can be
516 used to access the SPI NOR flash chips on platforms embedding
517 this ST IP core.
518
Patrice Chotard0b08bf82019-04-30 18:08:28 +0200519config STM32_SPI
520 bool "STM32 SPI driver"
521 depends on ARCH_STM32MP
522 help
523 Enable the STM32 Serial Peripheral Interface (SPI) driver for STM32MP
524 SoCs. This uses driver model and requires a device tree binding to
525 operate.
526
Jagan Teki7977d662015-06-27 15:57:53 +0530527config TEGRA114_SPI
528 bool "nVidia Tegra114 SPI driver"
529 help
530 Enable the nVidia Tegra114 SPI driver. This driver can be used to
531 access the SPI NOR flash on platforms embedding this nVidia Tegra114
532 IP core.
533
534 This controller is different than the older SoCs SPI controller and
535 also register interface get changed with this controller.
536
Jagan Tekia900d402015-06-27 16:04:05 +0530537config TEGRA20_SFLASH
538 bool "nVidia Tegra20 Serial Flash controller driver"
539 help
540 Enable the nVidia Tegra20 Serial Flash controller driver. This driver
541 can be used to access the SPI NOR flash on platforms embedding this
542 nVidia Tegra20 IP core.
543
Jagan Teki271aa562015-06-27 16:07:54 +0530544config TEGRA20_SLINK
545 bool "nVidia Tegra20/Tegra30 SLINK driver"
546 help
547 Enable the nVidia Tegra20/Tegra30 SLINK driver. This driver can
548 be used to access the SPI NOR flash on platforms embedding this
549 nVidia Tegra20/Tegra30 IP cores.
550
Tom Warren5fb0c842015-10-12 14:50:54 -0700551config TEGRA210_QSPI
552 bool "nVidia Tegra210 QSPI driver"
553 help
554 Enable the Tegra Quad-SPI (QSPI) driver for T210. This driver
555 be used to access SPI chips on platforms embedding this
556 NVIDIA Tegra210 IP core.
557
Vignesh Raghavendraf3603b82019-04-16 21:31:59 +0530558config TI_QSPI
559 bool "TI QSPI driver"
560 imply TI_EDMA3
561 help
562 Enable the TI Quad-SPI (QSPI) driver for DRA7xx and AM43xx evms.
563 This driver support spi flash single, quad and memory reads.
564
Kunihiko Hayashi7a40ec02019-07-05 10:03:18 +0900565config UNIPHIER_SPI
566 bool "Socionext UniPhier SPI driver"
567 depends on ARCH_UNIPHIER
568 help
569 Enable the Socionext UniPhier SPI driver. This driver can
570 be used to access SPI chips on platforms embedding this
571 UniPhier IP core.
572
Jagan Tekicd70d7d2015-06-27 04:32:43 +0530573config XILINX_SPI
574 bool "Xilinx SPI driver"
Jagan Tekicd70d7d2015-06-27 04:32:43 +0530575 help
576 Enable the Xilinx SPI driver from the Xilinx EDK. This SPI
577 controller support 8 bit SPI transfers only, with or w/o FIFO.
578 For more info on Xilinx SPI Register Definitions and Overview
579 see driver file - drivers/spi/xilinx_spi.c
580
Jagan Tekicad526f2015-06-27 00:51:38 +0530581config ZYNQ_SPI
582 bool "Zynq SPI driver"
Jagan Tekicad526f2015-06-27 00:51:38 +0530583 help
584 Enable the Zynq SPI driver. This driver can be used to
585 access the SPI NOR flash on platforms embedding this Zynq
586 SPI IP core.
Jagan Tekibfd3f8b2015-06-27 22:35:14 +0530587
Jagan Tekif2e1c412015-08-16 00:19:38 +0530588config ZYNQ_QSPI
589 bool "Zynq QSPI driver"
Vignesh R1f66bca2019-02-05 11:29:28 +0530590 imply SPI_FLASH_BAR
Jagan Tekif2e1c412015-08-16 00:19:38 +0530591 help
592 Enable the Zynq Quad-SPI (QSPI) driver. This driver can be
593 used to access the SPI NOR flash on platforms embedding this
594 Zynq QSPI IP core. This IP is used to connect the flash in
595 4-bit qspi, 8-bit dual stacked and shared 4-bit dual parallel.
596
Siva Durga Prasad Paladugu76597382018-07-04 17:31:23 +0530597config ZYNQMP_GQSPI
598 bool "Configure ZynqMP Generic QSPI"
Siva Durga Prasad Paladugu76597382018-07-04 17:31:23 +0530599 help
600 This option is used to enable ZynqMP QSPI controller driver which
601 is used to communicate with qspi flash devices.
602
Jagan Teki15a932c2015-06-27 22:37:00 +0530603endif # if DM_SPI
604
Jagan Tekia0497a32015-06-27 15:21:36 +0530605config FSL_ESPI
606 bool "Freescale eSPI driver"
Corentin Guilleviccffcee92023-03-24 10:54:19 +0100607 depends on MPC85xx
Xiaowei Bao72817cd2019-10-31 14:34:40 +0800608 imply SPI_FLASH_BAR
Jagan Tekia0497a32015-06-27 15:21:36 +0530609 help
610 Enable the Freescale eSPI driver. This driver can be used to
611 access the SPI interface and SPI NOR flash on platforms embedding
612 this Freescale eSPI IP core.
613
Tuomas Tynkkynenfa8fdfd2018-02-07 02:42:17 +0200614config SH_QSPI
615 bool "Renesas Quad SPI driver"
616 help
617 Enable the Renesas Quad SPI controller driver. This driver can be
618 used on Renesas SoCs.
619
Tuomas Tynkkynend3958792018-02-07 02:42:19 +0200620config MXC_SPI
621 bool "MXC SPI Driver"
622 help
623 Enable the MXC SPI controller driver. This driver can be used
624 on various i.MX SoCs such as i.MX31/35/51/6/7.
625
Jassi Brar717bab22021-06-04 18:44:27 +0900626config SYNQUACER_SPI
627 bool "Socionext SynQuacer HS-SPI driver"
628 depends on ARCH_SYNQUACER
629 help
630 Enable the Socionext HS-SPI driver for SynQuacer. This driver can
631 be used to access the SPI interface and SPI NOR flash on platforms
632 embedding this HS-SPI IP core.
633
Adam Ford4e96ff82018-04-15 13:51:26 -0400634endif # menu "SPI Support"