blob: fd5cb3694f67c6a46c54d7644f00a88603aa20e6 [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
Masahiro Yamada57ad8ee2014-10-23 22:26:09 +090023config DM_SPI
24 bool "Enable Driver Model for SPI drivers"
25 depends on DM
26 help
Simon Glassd8b771d2015-02-05 21:41:35 -070027 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.
Simon Glass4b322d32015-03-06 13:19:05 -070035
Boris Brezillon32473fe2018-08-16 17:30:11 +020036config 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
Chin-Ting Kuoa891be82022-08-19 17:01:08 +080043config SPI_DIRMAP
44 bool "SPI direct mapping"
45 depends on SPI_MEM
46 help
47 Enable the SPI direct mapping API. Most modern SPI controllers can
48 directly map a SPI memory (or a portion of the SPI memory) in the CPU
49 address space. Most of the time this brings significant performance
50 improvements as it automates the whole process of sending SPI memory
51 operations every time a new region is accessed.
52
Vignesh R4e341d32019-02-05 11:29:15 +053053if DM_SPI
54
Thomas Chouc5899542015-10-14 08:33:34 +080055config ALTERA_SPI
56 bool "Altera SPI driver"
57 help
58 Enable the Altera SPI driver. This driver can be used to
59 access the SPI NOR flash on platforms embedding this Altera
60 IP core. Please find details on the "Embedded Peripherals IP
61 User Guide" of Altera.
62
Mark Kettenis0c3e9242022-01-23 16:48:12 +010063config APPLE_SPI
64 bool "Apple SPI driver"
65 default y if ARCH_APPLE
66 help
67 Enable the Apple SPI driver. This driver can be used to
68 access the SPI flash and keyboard on machines based on Apple SoCs.
69
Jagan Teki353dffb2018-03-07 10:33:33 +053070config ATCSPI200_SPI
71 bool "Andestech ATCSPI200 SPI driver"
72 help
73 Enable the Andestech ATCSPI200 SPI driver. This driver can be
74 used to access the SPI flash on AE3XX and AE250 platforms embedding
75 this Andestech IP core.
76
Wills Wangf5021482016-03-16 16:59:58 +080077config ATH79_SPI
78 bool "Atheros SPI driver"
79 depends on ARCH_ATH79
80 help
81 Enable the Atheros ar7xxx/ar9xxx SoC SPI driver, it was used
82 to access SPI NOR flash and other SPI peripherals. This driver
83 uses driver model and requires a device tree binding to operate.
84 please refer to doc/device-tree-bindings/spi/spi-ath79.txt.
85
Tudor Ambarus88151bb2019-06-18 08:51:50 +000086config ATMEL_QSPI
87 bool "Atmel Quad SPI Controller"
88 depends on ARCH_AT91
89 help
90 Enable the Atmel Quad SPI controller in master mode. This driver
91 does not support generic SPI. The implementation supports only the
92 spi-mem interface.
93
Wenyou Yangda8ee982016-10-28 14:17:49 +080094config ATMEL_SPI
95 bool "Atmel SPI driver"
John Watts60dcbc22024-04-27 15:40:40 +100096 depends on ARCH_AT91
Jagan Teki1d831b62018-03-14 18:46:44 +053097 default y if ARCH_AT91
Wenyou Yangda8ee982016-10-28 14:17:49 +080098 help
99 This enables driver for the Atmel SPI Controller, present on
Andy Shevchenko8cb5cdd2017-07-05 16:25:22 +0300100 many AT91 (ARM) chips. This driver can be used to access
101 the SPI Flash, such as AT25DF321.
Wenyou Yangda8ee982016-10-28 14:17:49 +0800102
Álvaro Fernández Rojas55d96ec2018-01-20 02:13:38 +0100103config BCM63XX_HSSPI
104 bool "BCM63XX HSSPI driver"
William Zhang96c65fa2023-06-07 16:37:01 -0700105 depends on (ARCH_BMIPS || ARCH_BCMBCA)
Álvaro Fernández Rojas55d96ec2018-01-20 02:13:38 +0100106 help
William Zhang96c65fa2023-06-07 16:37:01 -0700107 Enable the BCM63XX HSSPI driver. This driver can be used to
Álvaro Fernández Rojas55d96ec2018-01-20 02:13:38 +0100108 access the SPI NOR flash on platforms embedding this Broadcom
109 SPI core.
110
William Zhang7ff58552023-06-07 16:37:05 -0700111config BCMBCA_HSSPI
112 bool "BCMBCA HSSPI driver"
113 depends on ARCH_BCMBCA && HAVE_SPI_CS_CTRL
114 help
115 This enables support for the High Speed SPI controller present on
116 newer Broadcom BCMBCA SoCs. These SoCs include an updated SPI controller
117 that adds the capability to allow the driver to control chip select
118 explicitly.
119
Álvaro Fernández Rojascc243c62018-01-23 17:14:58 +0100120config BCM63XX_SPI
121 bool "BCM6348 SPI driver"
122 depends on ARCH_BMIPS
123 help
124 Enable the BCM6348/BCM6358 SPI driver. This driver can be used to
125 access the SPI NOR flash on platforms embedding these Broadcom
126 SPI cores.
127
Thomas Fitzsimmons919646d2018-06-08 17:59:45 -0400128config BCMSTB_SPI
129 bool "BCMSTB SPI driver"
John Watts60dcbc22024-04-27 15:40:40 +1000130 depends on ARCH_BCMSTB
Thomas Fitzsimmons919646d2018-06-08 17:59:45 -0400131 help
132 Enable the Broadcom set-top box SPI driver. This driver can
133 be used to access the SPI flash on platforms embedding this
134 Broadcom SPI core.
135
Pengpeng Chen8f04b522020-07-30 12:52:45 -0700136config CORTINA_SFLASH
137 bool "Cortina-Access Serial Flash controller driver"
138 depends on DM_SPI && SPI_MEM
139 help
140 Enable the Cortina-Access Serial Flash controller driver. This driver
141 can be used to access the SPI NOR/NAND flash on platforms embedding this
142 Cortina-Access IP core.
143
Jagan Teki15a932c2015-06-27 22:37:00 +0530144config CADENCE_QSPI
145 bool "Cadence QSPI driver"
146 help
147 Enable the Cadence Quad-SPI (QSPI) driver. This driver can be
148 used to access the SPI NOR flash on platforms embedding this
149 Cadence IP core.
150
Tom Rini3fb5b2f2022-03-30 18:07:23 -0400151config HAS_CQSPI_REF_CLK
152 bool "Cadence QSPI static reference clock"
153 depends on CADENCE_QSPI
154
155config CQSPI_REF_CLK
156 int "Cadence QSPI reference clock value in Hz"
157 depends on HAS_CQSPI_REF_CLK
158
T Karthik Reddy73701e72022-05-12 04:05:32 -0600159config CADENCE_OSPI_VERSAL
160 bool "Configure Versal OSPI"
Michal Simek71bfd392024-05-29 16:48:01 +0200161 depends on (ARCH_VERSAL || ARCH_VERSAL_NET || ARCH_VERSAL2) && CADENCE_QSPI
T Karthik Reddy73701e72022-05-12 04:05:32 -0600162 imply DM_GPIO
163 help
164 This option is used to enable Versal OSPI DMA operations which
165 are used for ospi flash read using cadence qspi controller.
166
Angelo Dureghello72e9be32019-03-13 21:46:46 +0100167config CF_SPI
168 bool "ColdFire SPI driver"
John Watts60dcbc22024-04-27 15:40:40 +1000169 depends on M68K
Angelo Dureghello72e9be32019-03-13 21:46:46 +0100170 help
171 Enable the ColdFire SPI driver. This driver can be used on
172 some m68k SoCs.
173
Kongyang Liu61c9f282024-04-20 15:08:23 +0800174config CV1800B_SPIF
175 bool "Sophgo cv1800b SPI Flash Controller driver"
176 depends on SPI_MEM
177 help
178 Enable the Sophgo cv1800b SPI Flash Controller driver. This driver
179 can be used to access the SPI NOR flash on platforms embedding this
180 Sophgo cv1800b IP core.
181
Jagan Teki97c18ed2020-05-26 13:34:26 +0530182config DAVINCI_SPI
183 bool "Davinci & Keystone SPI driver"
184 depends on ARCH_DAVINCI || ARCH_KEYSTONE
185 help
186 Enable the Davinci SPI driver
187
Jagan Teki15a932c2015-06-27 22:37:00 +0530188config DESIGNWARE_SPI
189 bool "Designware SPI driver"
190 help
191 Enable the Designware SPI driver. This driver can be used to
192 access the SPI NOR flash on platforms embedding this Designware
193 IP core.
194
Jagan Teki6274bf92015-06-27 15:32:19 +0530195config EXYNOS_SPI
196 bool "Samsung Exynos SPI driver"
John Watts60dcbc22024-04-27 15:40:40 +1000197 depends on ARCH_EXYNOS
Jagan Teki6274bf92015-06-27 15:32:19 +0530198 help
199 Enable the Samsung Exynos SPI driver. This driver can be used to
200 access the SPI NOR flash on platforms embedding this Samsung
201 Exynos IP core.
202
Jagan Tekiae30c022015-06-27 14:17:06 +0530203config FSL_DSPI
204 bool "Freescale DSPI driver"
John Watts60dcbc22024-04-27 15:40:40 +1000205 depends on FSL_LAYERSCAPE || ARCH_VF610 || ARCH_LS1021A || ARCH_LS1028A
Jagan Tekiae30c022015-06-27 14:17:06 +0530206 help
207 Enable the Freescale DSPI driver. This driver can be used to
208 access the SPI NOR flash and SPI Data flash on platforms embedding
209 this Freescale DSPI IP core. LS102xA and Colibri VF50/VF61 platforms
210 use this driver.
211
Jagan Teki72cedd42020-05-26 00:24:19 +0530212config FSL_QSPI
213 bool "Freescale QSPI driver"
214 imply SPI_FLASH_BAR
215 help
216 Enable the Freescale Quad-SPI (QSPI) driver. This driver can be
217 used to access the SPI NOR flash on platforms embedding this
218 Freescale IP core.
219
Ye Lid7e3c9a2020-06-09 00:59:06 -0700220config FSL_QSPI_AHB_FULL_MAP
221 bool "Use full AHB memory map space"
222 depends on FSL_QSPI
223 default y if ARCH_MX6 || ARCH_MX7 || ARCH_MX7ULP || ARCH_IMX8M
224 help
225 Enable the Freescale QSPI driver to use full AHB memory map space for
226 flash access.
227
Nick Hawkins2ccea3a2022-06-08 16:21:36 -0500228config GXP_SPI
229 bool "SPI driver for GXP"
230 imply SPI_FLASH_BAR
231 help
232 Enable support for SPI on GXP.
233
Jagan Teki3872b7c2015-06-27 15:43:27 +0530234config ICH_SPI
235 bool "Intel ICH SPI driver"
John Watts60dcbc22024-04-27 15:40:40 +1000236 depends on X86
Jagan Teki3872b7c2015-06-27 15:43:27 +0530237 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"
John Watts60dcbc22024-04-27 15:40:40 +1000250 depends on ARCH_KIRKWOOD || ARCH_MVEBU
Bhargav Shah83a26312020-06-18 23:15:13 +0530251 help
252 Enable support for SPI on various Marvell SoCs, such as
253 Kirkwood and Armada 375.
254
Neil Armstrong5c162172018-11-22 11:01:05 +0100255config MESON_SPIFC
256 bool "Amlogic Meson SPI Flash Controller driver"
257 depends on ARCH_MESON
258 help
259 Enable the Amlogic Meson SPI Flash Controller SPIFC) driver.
260 This driver can be used to access the SPI NOR flash chips on
261 Amlogic Meson SoCs.
262
Padmarao Begari32678b02022-10-27 11:32:01 +0530263config MICROCHIP_COREQSPI
264 bool "Microchip FPGA QSPI Controller driver"
265 help
266 Enable the QSPI driver for Microchip FPGA QSPI controllers.
267 This driver can be used on Polarfire SoC.
268
Igor Prusov3f027752023-10-25 01:51:39 +0300269config MESON_SPIFC_A1
270 bool "Amlogic Meson A1 SPI Flash Controller driver"
271 depends on ARCH_MESON
272 help
273 Enable the Amlogic A1 SPI Flash Controller (SPIFC) driver.
274 This driver can be used to access the SPI NOR/NAND flash chips
275 with STR mode frequency up to 98MHz. Dual and quad modes are
276 supported by controller.
277
Christophe Leroy847362b2018-11-21 08:51:57 +0000278config MPC8XX_SPI
279 bool "MPC8XX SPI Driver"
Christophe Leroybc6a4572024-04-02 19:20:07 +0200280 depends on MPC8xx && DM_GPIO
Christophe Leroy847362b2018-11-21 08:51:57 +0000281 help
282 Enable support for SPI on MPC8XX
283
Jagan Teki52515d52019-04-29 01:58:53 +0530284config MPC8XXX_SPI
285 bool "MPC8XXX SPI Driver"
John Watts60dcbc22024-04-27 15:40:40 +1000286 depends on MPC83xx || MPC85xx
Jagan Teki52515d52019-04-29 01:58:53 +0530287 help
288 Enable support for SPI on the MPC8XXX PowerPC SoCs.
289
Jagan Teki72cedd42020-05-26 00:24:19 +0530290config MSCC_BB_SPI
291 bool "MSCC bitbang SPI driver"
292 depends on SOC_VCOREIII
293 help
294 Enable MSCC bitbang SPI driver. This driver can be used on
295 MSCC SOCs.
296
developer2dfdc3f2020-11-12 16:36:42 +0800297config MT7620_SPI
298 bool "MediaTek MT7620 SPI driver"
299 depends on SOC_MT7620
300 help
301 Enable the MT7620 SPI driver. This driver can be used to access
302 generic SPI devices on MediaTek MT7620 SoC.
303
Stefan Roese8adb8cb2018-08-16 10:48:48 +0200304config MT7621_SPI
305 bool "MediaTek MT7621 SPI driver"
developer005064e2022-05-20 11:23:08 +0800306 depends on SOC_MT7621 || SOC_MT7628
Stefan Roese8adb8cb2018-08-16 10:48:48 +0200307 help
308 Enable the MT7621 SPI driver. This driver can be used to access
309 the SPI NOR flash on platforms embedding this Ralink / MediaTek
310 SPI core, like MT7621/7628/7688.
311
developerf33cf3c2021-01-20 15:31:33 +0800312config MTK_SNOR
313 bool "Mediatek SPI-NOR controller driver"
314 depends on SPI_MEM
315 help
316 Enable the Mediatek SPINOR controller driver. This driver has
317 better read/write performance with NOR.
318
developer8a78b4d2019-07-22 17:09:01 +0530319config MTK_SNFI_SPI
320 bool "Mediatek SPI memory controller driver"
321 depends on SPI_MEM
322 help
323 Enable the Mediatek SPI memory controller driver. This driver is
324 originally based on the MediaTek SNFI IP core. It can only be
325 used to access SPI memory devices like SPI-NOR or SPI-NAND on
326 platforms embedding this IP core, like MT7622/M7629.
327
developer24202202022-09-09 19:59:45 +0800328config MTK_SPIM
329 bool "Mediatek SPI-MEM master controller driver"
330 depends on SPI_MEM
331 help
332 Enable MediaTek SPI-MEM master controller driver. This driver mainly
333 supports SPI flashes. You can use single, dual or quad mode
334 transmission on this controller.
335
Stefan Roese9ec1c782016-05-19 15:56:44 +0200336config MVEBU_A3700_SPI
337 bool "Marvell Armada 3700 SPI driver"
Marek Behún0afd9342018-04-24 17:21:26 +0200338 select CLK_ARMADA_3720
Stefan Roese9ec1c782016-05-19 15:56:44 +0200339 help
340 Enable the Marvell Armada 3700 SPI driver. This driver can be
341 used to access the SPI NOR flash on platforms embedding this
342 Marvell IP core.
343
Jagan Teki2174d852020-05-25 23:24:23 +0530344config MXS_SPI
345 bool "MXS SPI Driver"
John Watts60dcbc22024-04-27 15:40:40 +1000346 depends on MACH_IMX
Jagan Teki2174d852020-05-25 23:24:23 +0530347 help
348 Enable the MXS SPI controller driver. This driver can be used
349 on the i.MX23 and i.MX28 SoCs.
350
Zhengxunc93136b2021-06-23 17:15:15 +0000351config SPI_MXIC
352 bool "Macronix MX25F0A SPI controller"
353 help
354 Enable the Macronix MX25F0A SPI controller driver. This driver
355 can be used to access the SPI flash on platforms embedding
356 this Macronix IP core.
357
Jim Liu464b7cd2022-04-26 16:52:45 +0800358config NPCM_FIU_SPI
359 bool "FIU driver for Nuvoton NPCM SoC"
360 help
361 This enables support for the Flash Interface Unit SPI controller
362 in master mode.
363
Jim Liu68d29122022-05-31 18:14:02 +0800364config NPCM_PSPI
365 bool "PSPI driver for Nuvoton NPCM SoC"
366 help
367 PSPI driver for NPCM SoC
368
Michael Walled3967f32019-12-18 00:09:58 +0100369config NXP_FSPI
370 bool "NXP FlexSPI driver"
371 depends on SPI_MEM
372 help
373 Enable the NXP FlexSPI (FSPI) driver. This driver can be used to
374 access the SPI NOR flash on platforms embedding this NXP IP core.
375
Suneel Garapati41717772020-07-30 13:56:18 +0200376config OCTEON_SPI
377 bool "Octeon SPI driver"
Simon Glass3933d292021-08-01 18:54:44 -0600378 depends on ARCH_OCTEON || ARCH_OCTEONTX || ARCH_OCTEONTX2
Suneel Garapati41717772020-07-30 13:56:18 +0200379 help
380 Enable the Octeon SPI driver. This driver can be used to
381 access the SPI NOR flash on Octeon II/III and OcteonTX/TX2
382 SoC platforms.
383
Jagan Teki99899c52020-05-27 18:26:36 +0530384config OMAP3_SPI
385 bool "McSPI driver for OMAP"
386 help
387 SPI master controller for OMAP24XX and later Multichannel SPI
388 (McSPI). This driver be used to access SPI chips on platforms
389 embedding this OMAP3 McSPI IP core.
390
Purna Chandra Mandalffa54422016-06-02 14:26:08 +0530391config PIC32_SPI
392 bool "Microchip PIC32 SPI driver"
393 depends on MACH_PIC32
394 help
395 Enable the Microchip PIC32 SPI driver. This driver can be used
396 to access the SPI NOR flash, MMC-over-SPI on platforms based on
397 Microchip PIC32 family devices.
398
Quentin Schulz3add62d2018-08-31 16:28:29 +0200399config PL022_SPI
400 bool "ARM AMBA PL022 SSP controller driver"
401 depends on ARM
402 help
403 This selects the ARM(R) AMBA(R) PrimeCell PL022 SSP
404 controller. If you have an embedded system with an AMBA(R)
405 bus and a PL022 controller, say Y or M here.
406
Robert Markoe4b17a72020-10-08 22:05:09 +0200407config SPI_QUP
408 bool "Qualcomm SPI controller with QUP interface"
409 depends on ARCH_IPQ40XX
410 help
411 Qualcomm Universal Peripheral (QUP) core is an AHB slave that
412 provides a common data path (an output FIFO and an input FIFO)
413 for serial peripheral interface (SPI) mini-core. SPI in master
414 mode supports up to 50MHz, up to four chip selects, programmable
415 data path from 4 bits to 32 bits and numerous protocol variants.
416
Marek Vasut6ca967b2017-11-29 06:29:46 +0100417config RENESAS_RPC_SPI
418 bool "Renesas RPC SPI driver"
Marek Vasut47c4f502023-02-28 22:28:30 +0100419 depends on RCAR_64 || RZA1
Hai Pham64f3ca82022-08-25 10:32:56 +0700420 imply SPI_FLASH_SFDP_SUPPORT
Marek Vasut6ca967b2017-11-29 06:29:46 +0100421 help
422 Enable the Renesas RPC SPI driver, used to access SPI NOR flash
423 on Renesas RCar Gen3 SoCs. This uses driver model and requires a
424 device tree binding to operate.
425
Chris Morgan3afbc762021-08-05 16:26:38 +0800426config ROCKCHIP_SFC
427 bool "Rockchip SFC Driver"
John Wattsa94e31c2024-04-27 15:40:43 +1000428 select BOUNCE_BUFFER
Chris Morgan3afbc762021-08-05 16:26:38 +0800429 help
430 Enable the Rockchip SFC Driver for SPI NOR flash. This device is
431 a limited purpose SPI controller for driving NOR flash on certain
432 Rockchip SoCs. This uses driver model and requires a device tree
433 binding to operate.
434
Simon Glassd1c13772015-09-01 19:19:37 -0600435config ROCKCHIP_SPI
436 bool "Rockchip SPI driver"
437 help
438 Enable the Rockchip SPI driver, used to access SPI NOR flash and
439 other SPI peripherals (such as the Chrome OS EC) on Rockchip SoCs.
440 This uses driver model and requires a device tree binding to
441 operate.
442
Simon Glass4b322d32015-03-06 13:19:05 -0700443config SANDBOX_SPI
444 bool "Sandbox SPI driver"
445 depends on SANDBOX && DM
446 help
447 Enable SPI support for sandbox. This is an emulation of a real SPI
448 bus. Devices can be attached to the bus using the device tree
449 which specifies the driver to use. As an example, see this device
450 tree fragment from sandbox.dts. It shows that the SPI bus has a
451 single flash device on chip select 0 which is emulated by the driver
452 for "sandbox,spi-flash", which is in drivers/mtd/spi/sandbox.c.
453
454 spi@0 {
455 #address-cells = <1>;
456 #size-cells = <0>;
457 reg = <0>;
458 compatible = "sandbox,spi";
459 cs-gpios = <0>, <&gpio_a 0>;
460 flash@0 {
461 reg = <0>;
Simon Glass7e368682019-05-18 11:59:49 -0600462 compatible = "spansion,m25p16", "jedec,spi-nor";
Simon Glass4b322d32015-03-06 13:19:05 -0700463 spi-max-frequency = <40000000>;
464 sandbox,filename = "spi.bin";
465 };
Jagan Teki15a932c2015-06-27 22:37:00 +0530466 };
Jagan Tekidd32f512015-06-27 04:41:11 +0530467
Tom Rini8f0dfd42022-12-02 16:42:43 -0500468config SANDBOX_SPI_MAX_BUS
469 int
470 depends on SANDBOX
471 default 1
472
473config SANDBOX_SPI_MAX_CS
474 int
475 depends on SANDBOX
476 default 10
477
Chin-Ting Kuo4d2caaf2022-08-19 17:01:04 +0800478config SPI_ASPEED_SMC
479 bool "ASPEED SPI flash controller driver"
480 depends on DM_SPI && SPI_MEM
Chin-Ting Kuo4d2caaf2022-08-19 17:01:04 +0800481 help
482 Enable ASPEED SPI flash controller driver for AST2500
483 and AST2600 SoCs.
484
Bhargav Shah3c34f752019-07-17 04:23:43 +0000485config SPI_SIFIVE
486 bool "SiFive SPI driver"
487 help
488 This driver supports the SiFive SPI IP. If unsure say N.
489 Enable the SiFive SPI controller driver.
490
491 The SiFive SPI controller driver is found on various SiFive SoCs.
492
Jagan Tekie5762442020-05-26 08:34:37 +0530493config SOFT_SPI
494 bool "Soft SPI driver"
495 help
496 Enable Soft SPI driver. This driver is to use GPIO simulate
497 the SPI protocol.
498
Kunihiko Hayashi7509ea12022-11-29 11:17:09 +0900499config SPI_SN_F_OSPI
500 tristate "Socionext F_OSPI SPI flash controller"
501 depends on SPI_MEM
502 help
503 This enables support for the Socionext F_OSPI controller
504 for connecting an SPI flash memory over up to 8-bit wide bus.
505 It supports indirect access mode only.
506
Jagan Teki7b68ef42019-02-27 20:02:13 +0530507config SPI_SUNXI
508 bool "Allwinner SoC SPI controllers"
Jagan Teki9f6eafd2019-10-16 18:05:56 +0530509 default ARCH_SUNXI
Jagan Teki7b68ef42019-02-27 20:02:13 +0530510 help
511 Enable the Allwinner SoC SPi controller driver.
512
513 Same controller driver can reuse in all Allwinner SoC variants.
514
Michael Kurz337ff2a2017-01-22 16:04:30 +0100515config STM32_QSPI
516 bool "STM32F7 QSPI driver"
Patrice Chotardd43c4962019-04-30 16:09:18 +0200517 depends on STM32F4 || STM32F7 || ARCH_STM32MP
Michael Kurz337ff2a2017-01-22 16:04:30 +0100518 help
519 Enable the STM32F7 Quad-SPI (QSPI) driver. This driver can be
520 used to access the SPI NOR flash chips on platforms embedding
521 this ST IP core.
522
Patrice Chotard0b08bf82019-04-30 18:08:28 +0200523config STM32_SPI
524 bool "STM32 SPI driver"
525 depends on ARCH_STM32MP
526 help
527 Enable the STM32 Serial Peripheral Interface (SPI) driver for STM32MP
528 SoCs. This uses driver model and requires a device tree binding to
529 operate.
530
Jagan Teki7977d662015-06-27 15:57:53 +0530531config TEGRA114_SPI
532 bool "nVidia Tegra114 SPI driver"
John Watts60dcbc22024-04-27 15:40:40 +1000533 depends on ARCH_TEGRA
Jagan Teki7977d662015-06-27 15:57:53 +0530534 help
535 Enable the nVidia Tegra114 SPI driver. This driver can be used to
536 access the SPI NOR flash on platforms embedding this nVidia Tegra114
537 IP core.
538
539 This controller is different than the older SoCs SPI controller and
540 also register interface get changed with this controller.
541
Jagan Tekia900d402015-06-27 16:04:05 +0530542config TEGRA20_SFLASH
543 bool "nVidia Tegra20 Serial Flash controller driver"
John Watts60dcbc22024-04-27 15:40:40 +1000544 depends on ARCH_TEGRA
Jagan Tekia900d402015-06-27 16:04:05 +0530545 help
546 Enable the nVidia Tegra20 Serial Flash controller driver. This driver
547 can be used to access the SPI NOR flash on platforms embedding this
548 nVidia Tegra20 IP core.
549
Jagan Teki271aa562015-06-27 16:07:54 +0530550config TEGRA20_SLINK
551 bool "nVidia Tegra20/Tegra30 SLINK driver"
John Watts60dcbc22024-04-27 15:40:40 +1000552 depends on ARCH_TEGRA
Jagan Teki271aa562015-06-27 16:07:54 +0530553 help
554 Enable the nVidia Tegra20/Tegra30 SLINK driver. This driver can
555 be used to access the SPI NOR flash on platforms embedding this
556 nVidia Tegra20/Tegra30 IP cores.
557
Tom Warren5fb0c842015-10-12 14:50:54 -0700558config TEGRA210_QSPI
559 bool "nVidia Tegra210 QSPI driver"
John Watts60dcbc22024-04-27 15:40:40 +1000560 depends on ARCH_TEGRA
Tom Warren5fb0c842015-10-12 14:50:54 -0700561 help
562 Enable the Tegra Quad-SPI (QSPI) driver for T210. This driver
563 be used to access SPI chips on platforms embedding this
564 NVIDIA Tegra210 IP core.
565
Vignesh Raghavendraf3603b82019-04-16 21:31:59 +0530566config TI_QSPI
567 bool "TI QSPI driver"
568 imply TI_EDMA3
John Watts60dcbc22024-04-27 15:40:40 +1000569 depends on ARCH_OMAP2PLUS
Vignesh Raghavendraf3603b82019-04-16 21:31:59 +0530570 help
571 Enable the TI Quad-SPI (QSPI) driver for DRA7xx and AM43xx evms.
572 This driver support spi flash single, quad and memory reads.
573
Kunihiko Hayashi7a40ec02019-07-05 10:03:18 +0900574config UNIPHIER_SPI
575 bool "Socionext UniPhier SPI driver"
576 depends on ARCH_UNIPHIER
577 help
578 Enable the Socionext UniPhier SPI driver. This driver can
579 be used to access SPI chips on platforms embedding this
580 UniPhier IP core.
581
Jagan Tekicd70d7d2015-06-27 04:32:43 +0530582config XILINX_SPI
583 bool "Xilinx SPI driver"
Jagan Tekicd70d7d2015-06-27 04:32:43 +0530584 help
585 Enable the Xilinx SPI driver from the Xilinx EDK. This SPI
586 controller support 8 bit SPI transfers only, with or w/o FIFO.
587 For more info on Xilinx SPI Register Definitions and Overview
588 see driver file - drivers/spi/xilinx_spi.c
589
Jagan Tekicad526f2015-06-27 00:51:38 +0530590config ZYNQ_SPI
591 bool "Zynq SPI driver"
Jagan Tekicad526f2015-06-27 00:51:38 +0530592 help
593 Enable the Zynq SPI driver. This driver can be used to
594 access the SPI NOR flash on platforms embedding this Zynq
595 SPI IP core.
Jagan Tekibfd3f8b2015-06-27 22:35:14 +0530596
Jagan Tekif2e1c412015-08-16 00:19:38 +0530597config ZYNQ_QSPI
598 bool "Zynq QSPI driver"
Vignesh R1f66bca2019-02-05 11:29:28 +0530599 imply SPI_FLASH_BAR
Jagan Tekif2e1c412015-08-16 00:19:38 +0530600 help
601 Enable the Zynq Quad-SPI (QSPI) driver. This driver can be
602 used to access the SPI NOR flash on platforms embedding this
603 Zynq QSPI IP core. This IP is used to connect the flash in
604 4-bit qspi, 8-bit dual stacked and shared 4-bit dual parallel.
605
Siva Durga Prasad Paladugu76597382018-07-04 17:31:23 +0530606config ZYNQMP_GQSPI
607 bool "Configure ZynqMP Generic QSPI"
Siva Durga Prasad Paladugu76597382018-07-04 17:31:23 +0530608 help
609 This option is used to enable ZynqMP QSPI controller driver which
610 is used to communicate with qspi flash devices.
611
Marek Vasut41bd9232024-10-26 22:16:25 +0200612config SPI_STACKED_PARALLEL
613 bool "Enable support for stacked or parallel memories"
614 help
615 Enable support for stacked/or parallel memories. This functionality
616 may appear on Xilinx hardware. By default this is disabled.
617
Jagan Teki15a932c2015-06-27 22:37:00 +0530618endif # if DM_SPI
619
Jagan Tekia0497a32015-06-27 15:21:36 +0530620config FSL_ESPI
621 bool "Freescale eSPI driver"
Corentin Guilleviccffcee92023-03-24 10:54:19 +0100622 depends on MPC85xx
Xiaowei Bao72817cd2019-10-31 14:34:40 +0800623 imply SPI_FLASH_BAR
Jagan Tekia0497a32015-06-27 15:21:36 +0530624 help
625 Enable the Freescale eSPI driver. This driver can be used to
626 access the SPI interface and SPI NOR flash on platforms embedding
627 this Freescale eSPI IP core.
628
Tuomas Tynkkynenfa8fdfd2018-02-07 02:42:17 +0200629config SH_QSPI
630 bool "Renesas Quad SPI driver"
John Watts60dcbc22024-04-27 15:40:40 +1000631 depends on ARCH_RENESAS
Tuomas Tynkkynenfa8fdfd2018-02-07 02:42:17 +0200632 help
633 Enable the Renesas Quad SPI controller driver. This driver can be
634 used on Renesas SoCs.
635
Tuomas Tynkkynend3958792018-02-07 02:42:19 +0200636config MXC_SPI
637 bool "MXC SPI Driver"
John Watts60dcbc22024-04-27 15:40:40 +1000638 depends on MACH_IMX
Tuomas Tynkkynend3958792018-02-07 02:42:19 +0200639 help
640 Enable the MXC SPI controller driver. This driver can be used
641 on various i.MX SoCs such as i.MX31/35/51/6/7.
642
Jassi Brar717bab22021-06-04 18:44:27 +0900643config SYNQUACER_SPI
644 bool "Socionext SynQuacer HS-SPI driver"
645 depends on ARCH_SYNQUACER
646 help
647 Enable the Socionext HS-SPI driver for SynQuacer. This driver can
648 be used to access the SPI interface and SPI NOR flash on platforms
649 embedding this HS-SPI IP core.
650
Adam Ford4e96ff82018-04-15 13:51:26 -0400651endif # menu "SPI Support"