blob: a3513f0a3ef812845db31e44393a695361599c57 [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
Nathan Barrett-Morrison88720e72025-02-26 12:30:33 -050055config ADI_SPI3
56 bool "Enable ADI SPI Driver"
57 depends on ARCH_SC5XX
58 help
59 Enable the ADI (Analog Devices) SPI controller driver. This
60 driver enables the support for SC5XX spi controller.
61
Christian Marangi50da3da2025-04-07 22:01:56 +020062config AIROHA_SNFI_SPI
63 bool "Airoha SPI memory controller driver"
64 depends on SPI_MEM
65 help
66 Enable the Airoha SPI memory controller driver. This driver is
67 originally based on the Airoha SNFI IP core. It can only be
68 used to access SPI memory devices like SPI-NOR or SPI-NAND on
69 platforms embedding this IP core, like AN7581.
70
Thomas Chouc5899542015-10-14 08:33:34 +080071config ALTERA_SPI
72 bool "Altera SPI driver"
73 help
74 Enable the Altera SPI driver. This driver can be used to
75 access the SPI NOR flash on platforms embedding this Altera
76 IP core. Please find details on the "Embedded Peripherals IP
77 User Guide" of Altera.
78
Mark Kettenis0c3e9242022-01-23 16:48:12 +010079config APPLE_SPI
80 bool "Apple SPI driver"
81 default y if ARCH_APPLE
82 help
83 Enable the Apple SPI driver. This driver can be used to
84 access the SPI flash and keyboard on machines based on Apple SoCs.
85
Jagan Teki353dffb2018-03-07 10:33:33 +053086config ATCSPI200_SPI
87 bool "Andestech ATCSPI200 SPI driver"
88 help
89 Enable the Andestech ATCSPI200 SPI driver. This driver can be
90 used to access the SPI flash on AE3XX and AE250 platforms embedding
91 this Andestech IP core.
92
Wills Wangf5021482016-03-16 16:59:58 +080093config ATH79_SPI
94 bool "Atheros SPI driver"
95 depends on ARCH_ATH79
96 help
97 Enable the Atheros ar7xxx/ar9xxx SoC SPI driver, it was used
98 to access SPI NOR flash and other SPI peripherals. This driver
99 uses driver model and requires a device tree binding to operate.
100 please refer to doc/device-tree-bindings/spi/spi-ath79.txt.
101
Tudor Ambarus88151bb2019-06-18 08:51:50 +0000102config ATMEL_QSPI
103 bool "Atmel Quad SPI Controller"
Alexander Dahl9f1fac22025-01-23 08:37:13 +0100104 depends on ARCH_AT91 && SPI_MEM
Tudor Ambarus88151bb2019-06-18 08:51:50 +0000105 help
106 Enable the Atmel Quad SPI controller in master mode. This driver
107 does not support generic SPI. The implementation supports only the
108 spi-mem interface.
109
Wenyou Yangda8ee982016-10-28 14:17:49 +0800110config ATMEL_SPI
111 bool "Atmel SPI driver"
John Watts60dcbc22024-04-27 15:40:40 +1000112 depends on ARCH_AT91
Jagan Teki1d831b62018-03-14 18:46:44 +0530113 default y if ARCH_AT91
Wenyou Yangda8ee982016-10-28 14:17:49 +0800114 help
115 This enables driver for the Atmel SPI Controller, present on
Andy Shevchenko8cb5cdd2017-07-05 16:25:22 +0300116 many AT91 (ARM) chips. This driver can be used to access
117 the SPI Flash, such as AT25DF321.
Wenyou Yangda8ee982016-10-28 14:17:49 +0800118
Álvaro Fernández Rojas55d96ec2018-01-20 02:13:38 +0100119config BCM63XX_HSSPI
120 bool "BCM63XX HSSPI driver"
William Zhang96c65fa2023-06-07 16:37:01 -0700121 depends on (ARCH_BMIPS || ARCH_BCMBCA)
Álvaro Fernández Rojas55d96ec2018-01-20 02:13:38 +0100122 help
William Zhang96c65fa2023-06-07 16:37:01 -0700123 Enable the BCM63XX HSSPI driver. This driver can be used to
Álvaro Fernández Rojas55d96ec2018-01-20 02:13:38 +0100124 access the SPI NOR flash on platforms embedding this Broadcom
125 SPI core.
126
William Zhang7ff58552023-06-07 16:37:05 -0700127config BCMBCA_HSSPI
128 bool "BCMBCA HSSPI driver"
129 depends on ARCH_BCMBCA && HAVE_SPI_CS_CTRL
130 help
131 This enables support for the High Speed SPI controller present on
132 newer Broadcom BCMBCA SoCs. These SoCs include an updated SPI controller
133 that adds the capability to allow the driver to control chip select
134 explicitly.
135
Álvaro Fernández Rojascc243c62018-01-23 17:14:58 +0100136config BCM63XX_SPI
137 bool "BCM6348 SPI driver"
138 depends on ARCH_BMIPS
139 help
140 Enable the BCM6348/BCM6358 SPI driver. This driver can be used to
141 access the SPI NOR flash on platforms embedding these Broadcom
142 SPI cores.
143
Thomas Fitzsimmons919646d2018-06-08 17:59:45 -0400144config BCMSTB_SPI
145 bool "BCMSTB SPI driver"
John Watts60dcbc22024-04-27 15:40:40 +1000146 depends on ARCH_BCMSTB
Thomas Fitzsimmons919646d2018-06-08 17:59:45 -0400147 help
148 Enable the Broadcom set-top box SPI driver. This driver can
149 be used to access the SPI flash on platforms embedding this
150 Broadcom SPI core.
151
Pengpeng Chen8f04b522020-07-30 12:52:45 -0700152config CORTINA_SFLASH
153 bool "Cortina-Access Serial Flash controller driver"
Alexander Dahl71743de2025-01-23 08:37:12 +0100154 depends on SPI_MEM
Pengpeng Chen8f04b522020-07-30 12:52:45 -0700155 help
156 Enable the Cortina-Access Serial Flash controller driver. This driver
157 can be used to access the SPI NOR/NAND flash on platforms embedding this
158 Cortina-Access IP core.
159
Jagan Teki15a932c2015-06-27 22:37:00 +0530160config CADENCE_QSPI
161 bool "Cadence QSPI driver"
162 help
163 Enable the Cadence Quad-SPI (QSPI) driver. This driver can be
164 used to access the SPI NOR flash on platforms embedding this
165 Cadence IP core.
166
Tom Rini3fb5b2f2022-03-30 18:07:23 -0400167config HAS_CQSPI_REF_CLK
168 bool "Cadence QSPI static reference clock"
169 depends on CADENCE_QSPI
170
171config CQSPI_REF_CLK
172 int "Cadence QSPI reference clock value in Hz"
173 depends on HAS_CQSPI_REF_CLK
174
T Karthik Reddy73701e72022-05-12 04:05:32 -0600175config CADENCE_OSPI_VERSAL
176 bool "Configure Versal OSPI"
Michal Simek71bfd392024-05-29 16:48:01 +0200177 depends on (ARCH_VERSAL || ARCH_VERSAL_NET || ARCH_VERSAL2) && CADENCE_QSPI
T Karthik Reddy73701e72022-05-12 04:05:32 -0600178 imply DM_GPIO
179 help
180 This option is used to enable Versal OSPI DMA operations which
181 are used for ospi flash read using cadence qspi controller.
182
Angelo Dureghello72e9be32019-03-13 21:46:46 +0100183config CF_SPI
184 bool "ColdFire SPI driver"
John Watts60dcbc22024-04-27 15:40:40 +1000185 depends on M68K
Angelo Dureghello72e9be32019-03-13 21:46:46 +0100186 help
187 Enable the ColdFire SPI driver. This driver can be used on
188 some m68k SoCs.
189
Kongyang Liu61c9f282024-04-20 15:08:23 +0800190config CV1800B_SPIF
191 bool "Sophgo cv1800b SPI Flash Controller driver"
192 depends on SPI_MEM
193 help
194 Enable the Sophgo cv1800b SPI Flash Controller driver. This driver
195 can be used to access the SPI NOR flash on platforms embedding this
196 Sophgo cv1800b IP core.
197
Jagan Teki97c18ed2020-05-26 13:34:26 +0530198config DAVINCI_SPI
199 bool "Davinci & Keystone SPI driver"
200 depends on ARCH_DAVINCI || ARCH_KEYSTONE
201 help
202 Enable the Davinci SPI driver
203
Jagan Teki15a932c2015-06-27 22:37:00 +0530204config DESIGNWARE_SPI
205 bool "Designware SPI driver"
206 help
207 Enable the Designware SPI driver. This driver can be used to
208 access the SPI NOR flash on platforms embedding this Designware
209 IP core.
210
Jagan Teki6274bf92015-06-27 15:32:19 +0530211config EXYNOS_SPI
212 bool "Samsung Exynos SPI driver"
John Watts60dcbc22024-04-27 15:40:40 +1000213 depends on ARCH_EXYNOS
Jagan Teki6274bf92015-06-27 15:32:19 +0530214 help
215 Enable the Samsung Exynos SPI driver. This driver can be used to
216 access the SPI NOR flash on platforms embedding this Samsung
217 Exynos IP core.
218
Jagan Tekiae30c022015-06-27 14:17:06 +0530219config FSL_DSPI
220 bool "Freescale DSPI driver"
John Watts60dcbc22024-04-27 15:40:40 +1000221 depends on FSL_LAYERSCAPE || ARCH_VF610 || ARCH_LS1021A || ARCH_LS1028A
Jagan Tekiae30c022015-06-27 14:17:06 +0530222 help
223 Enable the Freescale DSPI driver. This driver can be used to
224 access the SPI NOR flash and SPI Data flash on platforms embedding
225 this Freescale DSPI IP core. LS102xA and Colibri VF50/VF61 platforms
226 use this driver.
227
Jagan Teki72cedd42020-05-26 00:24:19 +0530228config FSL_QSPI
229 bool "Freescale QSPI driver"
230 imply SPI_FLASH_BAR
231 help
232 Enable the Freescale Quad-SPI (QSPI) driver. This driver can be
233 used to access the SPI NOR flash on platforms embedding this
234 Freescale IP core.
235
Ye Lid7e3c9a2020-06-09 00:59:06 -0700236config FSL_QSPI_AHB_FULL_MAP
237 bool "Use full AHB memory map space"
238 depends on FSL_QSPI
239 default y if ARCH_MX6 || ARCH_MX7 || ARCH_MX7ULP || ARCH_IMX8M
240 help
241 Enable the Freescale QSPI driver to use full AHB memory map space for
242 flash access.
243
Nick Hawkins2ccea3a2022-06-08 16:21:36 -0500244config GXP_SPI
245 bool "SPI driver for GXP"
246 imply SPI_FLASH_BAR
247 help
248 Enable support for SPI on GXP.
249
Jagan Teki3872b7c2015-06-27 15:43:27 +0530250config ICH_SPI
251 bool "Intel ICH SPI driver"
John Watts60dcbc22024-04-27 15:40:40 +1000252 depends on X86
Jagan Teki3872b7c2015-06-27 15:43:27 +0530253 help
254 Enable the Intel ICH SPI driver. This driver can be used to
255 access the SPI NOR flash on platforms embedding this Intel
256 ICH IP core.
257
Rayagonda Kokatanur1969f2b2022-02-09 14:16:13 -0800258config IPROC_QSPI
259 bool "Broadcom iProc QSPI Flash Controller driver"
260 help
261 Enable Broadcom iProc QSPI Flash Controller driver.
262 This driver can be used to access the SPI NOR flash.
263
Bhargav Shah83a26312020-06-18 23:15:13 +0530264config KIRKWOOD_SPI
265 bool "Marvell Kirkwood SPI Driver"
John Watts60dcbc22024-04-27 15:40:40 +1000266 depends on ARCH_KIRKWOOD || ARCH_MVEBU
Bhargav Shah83a26312020-06-18 23:15:13 +0530267 help
268 Enable support for SPI on various Marvell SoCs, such as
269 Kirkwood and Armada 375.
270
Neil Armstrong5c162172018-11-22 11:01:05 +0100271config MESON_SPIFC
272 bool "Amlogic Meson SPI Flash Controller driver"
273 depends on ARCH_MESON
274 help
275 Enable the Amlogic Meson SPI Flash Controller SPIFC) driver.
276 This driver can be used to access the SPI NOR flash chips on
277 Amlogic Meson SoCs.
278
Padmarao Begari32678b02022-10-27 11:32:01 +0530279config MICROCHIP_COREQSPI
280 bool "Microchip FPGA QSPI Controller driver"
281 help
282 Enable the QSPI driver for Microchip FPGA QSPI controllers.
283 This driver can be used on Polarfire SoC.
284
Igor Prusov3f027752023-10-25 01:51:39 +0300285config MESON_SPIFC_A1
286 bool "Amlogic Meson A1 SPI Flash Controller driver"
287 depends on ARCH_MESON
288 help
289 Enable the Amlogic A1 SPI Flash Controller (SPIFC) driver.
290 This driver can be used to access the SPI NOR/NAND flash chips
291 with STR mode frequency up to 98MHz. Dual and quad modes are
292 supported by controller.
293
Christophe Leroy847362b2018-11-21 08:51:57 +0000294config MPC8XX_SPI
295 bool "MPC8XX SPI Driver"
Christophe Leroybc6a4572024-04-02 19:20:07 +0200296 depends on MPC8xx && DM_GPIO
Christophe Leroy847362b2018-11-21 08:51:57 +0000297 help
298 Enable support for SPI on MPC8XX
299
Jagan Teki52515d52019-04-29 01:58:53 +0530300config MPC8XXX_SPI
301 bool "MPC8XXX SPI Driver"
John Watts60dcbc22024-04-27 15:40:40 +1000302 depends on MPC83xx || MPC85xx
Jagan Teki52515d52019-04-29 01:58:53 +0530303 help
304 Enable support for SPI on the MPC8XXX PowerPC SoCs.
305
Jagan Teki72cedd42020-05-26 00:24:19 +0530306config MSCC_BB_SPI
307 bool "MSCC bitbang SPI driver"
308 depends on SOC_VCOREIII
309 help
310 Enable MSCC bitbang SPI driver. This driver can be used on
311 MSCC SOCs.
312
developer2dfdc3f2020-11-12 16:36:42 +0800313config MT7620_SPI
314 bool "MediaTek MT7620 SPI driver"
315 depends on SOC_MT7620
316 help
317 Enable the MT7620 SPI driver. This driver can be used to access
318 generic SPI devices on MediaTek MT7620 SoC.
319
Stefan Roese8adb8cb2018-08-16 10:48:48 +0200320config MT7621_SPI
321 bool "MediaTek MT7621 SPI driver"
developer005064e2022-05-20 11:23:08 +0800322 depends on SOC_MT7621 || SOC_MT7628
Stefan Roese8adb8cb2018-08-16 10:48:48 +0200323 help
324 Enable the MT7621 SPI driver. This driver can be used to access
325 the SPI NOR flash on platforms embedding this Ralink / MediaTek
326 SPI core, like MT7621/7628/7688.
327
developerf33cf3c2021-01-20 15:31:33 +0800328config MTK_SNOR
329 bool "Mediatek SPI-NOR controller driver"
330 depends on SPI_MEM
331 help
332 Enable the Mediatek SPINOR controller driver. This driver has
333 better read/write performance with NOR.
334
developer8a78b4d2019-07-22 17:09:01 +0530335config MTK_SNFI_SPI
336 bool "Mediatek SPI memory controller driver"
337 depends on SPI_MEM
338 help
339 Enable the Mediatek SPI memory controller driver. This driver is
340 originally based on the MediaTek SNFI IP core. It can only be
341 used to access SPI memory devices like SPI-NOR or SPI-NAND on
342 platforms embedding this IP core, like MT7622/M7629.
343
developer24202202022-09-09 19:59:45 +0800344config MTK_SPIM
345 bool "Mediatek SPI-MEM master controller driver"
346 depends on SPI_MEM
347 help
348 Enable MediaTek SPI-MEM master controller driver. This driver mainly
349 supports SPI flashes. You can use single, dual or quad mode
350 transmission on this controller.
351
Stefan Roese9ec1c782016-05-19 15:56:44 +0200352config MVEBU_A3700_SPI
353 bool "Marvell Armada 3700 SPI driver"
Marek Behún0afd9342018-04-24 17:21:26 +0200354 select CLK_ARMADA_3720
Stefan Roese9ec1c782016-05-19 15:56:44 +0200355 help
356 Enable the Marvell Armada 3700 SPI driver. This driver can be
357 used to access the SPI NOR flash on platforms embedding this
358 Marvell IP core.
359
Jagan Teki2174d852020-05-25 23:24:23 +0530360config MXS_SPI
361 bool "MXS SPI Driver"
John Watts60dcbc22024-04-27 15:40:40 +1000362 depends on MACH_IMX
Jagan Teki2174d852020-05-25 23:24:23 +0530363 help
364 Enable the MXS SPI controller driver. This driver can be used
365 on the i.MX23 and i.MX28 SoCs.
366
Zhengxunc93136b2021-06-23 17:15:15 +0000367config SPI_MXIC
368 bool "Macronix MX25F0A SPI controller"
369 help
370 Enable the Macronix MX25F0A SPI controller driver. This driver
371 can be used to access the SPI flash on platforms embedding
372 this Macronix IP core.
373
Jim Liu464b7cd2022-04-26 16:52:45 +0800374config NPCM_FIU_SPI
375 bool "FIU driver for Nuvoton NPCM SoC"
376 help
377 This enables support for the Flash Interface Unit SPI controller
378 in master mode.
379
Jim Liu68d29122022-05-31 18:14:02 +0800380config NPCM_PSPI
381 bool "PSPI driver for Nuvoton NPCM SoC"
382 help
383 PSPI driver for NPCM SoC
384
Michael Walled3967f32019-12-18 00:09:58 +0100385config NXP_FSPI
386 bool "NXP FlexSPI driver"
387 depends on SPI_MEM
388 help
389 Enable the NXP FlexSPI (FSPI) driver. This driver can be used to
390 access the SPI NOR flash on platforms embedding this NXP IP core.
391
Suneel Garapati41717772020-07-30 13:56:18 +0200392config OCTEON_SPI
393 bool "Octeon SPI driver"
Simon Glass3933d292021-08-01 18:54:44 -0600394 depends on ARCH_OCTEON || ARCH_OCTEONTX || ARCH_OCTEONTX2
Suneel Garapati41717772020-07-30 13:56:18 +0200395 help
396 Enable the Octeon SPI driver. This driver can be used to
397 access the SPI NOR flash on Octeon II/III and OcteonTX/TX2
398 SoC platforms.
399
Jagan Teki99899c52020-05-27 18:26:36 +0530400config OMAP3_SPI
401 bool "McSPI driver for OMAP"
402 help
403 SPI master controller for OMAP24XX and later Multichannel SPI
404 (McSPI). This driver be used to access SPI chips on platforms
405 embedding this OMAP3 McSPI IP core.
406
Purna Chandra Mandalffa54422016-06-02 14:26:08 +0530407config PIC32_SPI
408 bool "Microchip PIC32 SPI driver"
409 depends on MACH_PIC32
410 help
411 Enable the Microchip PIC32 SPI driver. This driver can be used
412 to access the SPI NOR flash, MMC-over-SPI on platforms based on
413 Microchip PIC32 family devices.
414
Quentin Schulz3add62d2018-08-31 16:28:29 +0200415config PL022_SPI
416 bool "ARM AMBA PL022 SSP controller driver"
417 depends on ARM
418 help
419 This selects the ARM(R) AMBA(R) PrimeCell PL022 SSP
420 controller. If you have an embedded system with an AMBA(R)
421 bus and a PL022 controller, say Y or M here.
422
Robert Markoe4b17a72020-10-08 22:05:09 +0200423config SPI_QUP
424 bool "Qualcomm SPI controller with QUP interface"
425 depends on ARCH_IPQ40XX
426 help
427 Qualcomm Universal Peripheral (QUP) core is an AHB slave that
428 provides a common data path (an output FIFO and an input FIFO)
429 for serial peripheral interface (SPI) mini-core. SPI in master
430 mode supports up to 50MHz, up to four chip selects, programmable
431 data path from 4 bits to 32 bits and numerous protocol variants.
432
Marek Vasut6ca967b2017-11-29 06:29:46 +0100433config RENESAS_RPC_SPI
434 bool "Renesas RPC SPI driver"
Marek Vasut47c4f502023-02-28 22:28:30 +0100435 depends on RCAR_64 || RZA1
Hai Pham64f3ca82022-08-25 10:32:56 +0700436 imply SPI_FLASH_SFDP_SUPPORT
Marek Vasut6ca967b2017-11-29 06:29:46 +0100437 help
438 Enable the Renesas RPC SPI driver, used to access SPI NOR flash
Marek Vasut81a505f2024-12-11 08:30:36 +0100439 on Renesas R-Car Gen3 SoCs. This uses driver model and requires a
Marek Vasut6ca967b2017-11-29 06:29:46 +0100440 device tree binding to operate.
441
Chris Morgan3afbc762021-08-05 16:26:38 +0800442config ROCKCHIP_SFC
443 bool "Rockchip SFC Driver"
John Wattsa94e31c2024-04-27 15:40:43 +1000444 select BOUNCE_BUFFER
Chris Morgan3afbc762021-08-05 16:26:38 +0800445 help
446 Enable the Rockchip SFC Driver for SPI NOR flash. This device is
447 a limited purpose SPI controller for driving NOR flash on certain
448 Rockchip SoCs. This uses driver model and requires a device tree
449 binding to operate.
450
Simon Glassd1c13772015-09-01 19:19:37 -0600451config ROCKCHIP_SPI
452 bool "Rockchip SPI driver"
453 help
454 Enable the Rockchip SPI driver, used to access SPI NOR flash and
455 other SPI peripherals (such as the Chrome OS EC) on Rockchip SoCs.
456 This uses driver model and requires a device tree binding to
457 operate.
458
Simon Glass4b322d32015-03-06 13:19:05 -0700459config SANDBOX_SPI
460 bool "Sandbox SPI driver"
461 depends on SANDBOX && DM
462 help
463 Enable SPI support for sandbox. This is an emulation of a real SPI
464 bus. Devices can be attached to the bus using the device tree
465 which specifies the driver to use. As an example, see this device
466 tree fragment from sandbox.dts. It shows that the SPI bus has a
467 single flash device on chip select 0 which is emulated by the driver
468 for "sandbox,spi-flash", which is in drivers/mtd/spi/sandbox.c.
469
470 spi@0 {
471 #address-cells = <1>;
472 #size-cells = <0>;
473 reg = <0>;
474 compatible = "sandbox,spi";
475 cs-gpios = <0>, <&gpio_a 0>;
476 flash@0 {
477 reg = <0>;
Simon Glass7e368682019-05-18 11:59:49 -0600478 compatible = "spansion,m25p16", "jedec,spi-nor";
Simon Glass4b322d32015-03-06 13:19:05 -0700479 spi-max-frequency = <40000000>;
480 sandbox,filename = "spi.bin";
481 };
Jagan Teki15a932c2015-06-27 22:37:00 +0530482 };
Jagan Tekidd32f512015-06-27 04:41:11 +0530483
Tom Rini8f0dfd42022-12-02 16:42:43 -0500484config SANDBOX_SPI_MAX_BUS
485 int
486 depends on SANDBOX
487 default 1
488
489config SANDBOX_SPI_MAX_CS
490 int
491 depends on SANDBOX
492 default 10
493
Chin-Ting Kuo4d2caaf2022-08-19 17:01:04 +0800494config SPI_ASPEED_SMC
495 bool "ASPEED SPI flash controller driver"
496 depends on DM_SPI && SPI_MEM
Chin-Ting Kuo4d2caaf2022-08-19 17:01:04 +0800497 help
498 Enable ASPEED SPI flash controller driver for AST2500
499 and AST2600 SoCs.
500
Bhargav Shah3c34f752019-07-17 04:23:43 +0000501config SPI_SIFIVE
502 bool "SiFive SPI driver"
503 help
504 This driver supports the SiFive SPI IP. If unsure say N.
505 Enable the SiFive SPI controller driver.
506
507 The SiFive SPI controller driver is found on various SiFive SoCs.
508
Jagan Tekie5762442020-05-26 08:34:37 +0530509config SOFT_SPI
510 bool "Soft SPI driver"
511 help
512 Enable Soft SPI driver. This driver is to use GPIO simulate
513 the SPI protocol.
514
Kunihiko Hayashi7509ea12022-11-29 11:17:09 +0900515config SPI_SN_F_OSPI
516 tristate "Socionext F_OSPI SPI flash controller"
517 depends on SPI_MEM
518 help
519 This enables support for the Socionext F_OSPI controller
520 for connecting an SPI flash memory over up to 8-bit wide bus.
521 It supports indirect access mode only.
522
Jagan Teki7b68ef42019-02-27 20:02:13 +0530523config SPI_SUNXI
524 bool "Allwinner SoC SPI controllers"
Jagan Teki9f6eafd2019-10-16 18:05:56 +0530525 default ARCH_SUNXI
Jagan Teki7b68ef42019-02-27 20:02:13 +0530526 help
527 Enable the Allwinner SoC SPi controller driver.
528
529 Same controller driver can reuse in all Allwinner SoC variants.
530
Michael Kurz337ff2a2017-01-22 16:04:30 +0100531config STM32_QSPI
532 bool "STM32F7 QSPI driver"
Patrice Chotardd43c4962019-04-30 16:09:18 +0200533 depends on STM32F4 || STM32F7 || ARCH_STM32MP
Michael Kurz337ff2a2017-01-22 16:04:30 +0100534 help
535 Enable the STM32F7 Quad-SPI (QSPI) driver. This driver can be
536 used to access the SPI NOR flash chips on platforms embedding
537 this ST IP core.
538
Patrice Chotard0b08bf82019-04-30 18:08:28 +0200539config STM32_SPI
540 bool "STM32 SPI driver"
541 depends on ARCH_STM32MP
542 help
543 Enable the STM32 Serial Peripheral Interface (SPI) driver for STM32MP
544 SoCs. This uses driver model and requires a device tree binding to
545 operate.
546
Jagan Teki7977d662015-06-27 15:57:53 +0530547config TEGRA114_SPI
548 bool "nVidia Tegra114 SPI driver"
John Watts60dcbc22024-04-27 15:40:40 +1000549 depends on ARCH_TEGRA
Jagan Teki7977d662015-06-27 15:57:53 +0530550 help
551 Enable the nVidia Tegra114 SPI driver. This driver can be used to
552 access the SPI NOR flash on platforms embedding this nVidia Tegra114
553 IP core.
554
555 This controller is different than the older SoCs SPI controller and
556 also register interface get changed with this controller.
557
Jagan Tekia900d402015-06-27 16:04:05 +0530558config TEGRA20_SFLASH
559 bool "nVidia Tegra20 Serial Flash controller driver"
John Watts60dcbc22024-04-27 15:40:40 +1000560 depends on ARCH_TEGRA
Jagan Tekia900d402015-06-27 16:04:05 +0530561 help
562 Enable the nVidia Tegra20 Serial Flash controller driver. This driver
563 can be used to access the SPI NOR flash on platforms embedding this
564 nVidia Tegra20 IP core.
565
Jagan Teki271aa562015-06-27 16:07:54 +0530566config TEGRA20_SLINK
567 bool "nVidia Tegra20/Tegra30 SLINK driver"
John Watts60dcbc22024-04-27 15:40:40 +1000568 depends on ARCH_TEGRA
Jagan Teki271aa562015-06-27 16:07:54 +0530569 help
570 Enable the nVidia Tegra20/Tegra30 SLINK driver. This driver can
571 be used to access the SPI NOR flash on platforms embedding this
572 nVidia Tegra20/Tegra30 IP cores.
573
Tom Warren5fb0c842015-10-12 14:50:54 -0700574config TEGRA210_QSPI
575 bool "nVidia Tegra210 QSPI driver"
John Watts60dcbc22024-04-27 15:40:40 +1000576 depends on ARCH_TEGRA
Tom Warren5fb0c842015-10-12 14:50:54 -0700577 help
578 Enable the Tegra Quad-SPI (QSPI) driver for T210. This driver
579 be used to access SPI chips on platforms embedding this
580 NVIDIA Tegra210 IP core.
581
Vignesh Raghavendraf3603b82019-04-16 21:31:59 +0530582config TI_QSPI
583 bool "TI QSPI driver"
584 imply TI_EDMA3
John Watts60dcbc22024-04-27 15:40:40 +1000585 depends on ARCH_OMAP2PLUS
Vignesh Raghavendraf3603b82019-04-16 21:31:59 +0530586 help
587 Enable the TI Quad-SPI (QSPI) driver for DRA7xx and AM43xx evms.
588 This driver support spi flash single, quad and memory reads.
589
Kunihiko Hayashi7a40ec02019-07-05 10:03:18 +0900590config UNIPHIER_SPI
591 bool "Socionext UniPhier SPI driver"
592 depends on ARCH_UNIPHIER
593 help
594 Enable the Socionext UniPhier SPI driver. This driver can
595 be used to access SPI chips on platforms embedding this
596 UniPhier IP core.
597
Jagan Tekicd70d7d2015-06-27 04:32:43 +0530598config XILINX_SPI
599 bool "Xilinx SPI driver"
Jagan Tekicd70d7d2015-06-27 04:32:43 +0530600 help
601 Enable the Xilinx SPI driver from the Xilinx EDK. This SPI
602 controller support 8 bit SPI transfers only, with or w/o FIFO.
603 For more info on Xilinx SPI Register Definitions and Overview
604 see driver file - drivers/spi/xilinx_spi.c
605
Jagan Tekicad526f2015-06-27 00:51:38 +0530606config ZYNQ_SPI
607 bool "Zynq SPI driver"
Jagan Tekicad526f2015-06-27 00:51:38 +0530608 help
609 Enable the Zynq SPI driver. This driver can be used to
610 access the SPI NOR flash on platforms embedding this Zynq
611 SPI IP core.
Jagan Tekibfd3f8b2015-06-27 22:35:14 +0530612
Jagan Tekif2e1c412015-08-16 00:19:38 +0530613config ZYNQ_QSPI
614 bool "Zynq QSPI driver"
Vignesh R1f66bca2019-02-05 11:29:28 +0530615 imply SPI_FLASH_BAR
Jagan Tekif2e1c412015-08-16 00:19:38 +0530616 help
617 Enable the Zynq Quad-SPI (QSPI) driver. This driver can be
618 used to access the SPI NOR flash on platforms embedding this
619 Zynq QSPI IP core. This IP is used to connect the flash in
620 4-bit qspi, 8-bit dual stacked and shared 4-bit dual parallel.
621
Siva Durga Prasad Paladugu76597382018-07-04 17:31:23 +0530622config ZYNQMP_GQSPI
623 bool "Configure ZynqMP Generic QSPI"
Siva Durga Prasad Paladugu76597382018-07-04 17:31:23 +0530624 help
625 This option is used to enable ZynqMP QSPI controller driver which
626 is used to communicate with qspi flash devices.
627
Marek Vasut41bd9232024-10-26 22:16:25 +0200628config SPI_STACKED_PARALLEL
629 bool "Enable support for stacked or parallel memories"
630 help
631 Enable support for stacked/or parallel memories. This functionality
632 may appear on Xilinx hardware. By default this is disabled.
633
Jagan Teki15a932c2015-06-27 22:37:00 +0530634endif # if DM_SPI
635
Jagan Tekia0497a32015-06-27 15:21:36 +0530636config FSL_ESPI
637 bool "Freescale eSPI driver"
Corentin Guilleviccffcee92023-03-24 10:54:19 +0100638 depends on MPC85xx
Xiaowei Bao72817cd2019-10-31 14:34:40 +0800639 imply SPI_FLASH_BAR
Jagan Tekia0497a32015-06-27 15:21:36 +0530640 help
641 Enable the Freescale eSPI driver. This driver can be used to
642 access the SPI interface and SPI NOR flash on platforms embedding
643 this Freescale eSPI IP core.
644
Tuomas Tynkkynenfa8fdfd2018-02-07 02:42:17 +0200645config SH_QSPI
646 bool "Renesas Quad SPI driver"
John Watts60dcbc22024-04-27 15:40:40 +1000647 depends on ARCH_RENESAS
Tuomas Tynkkynenfa8fdfd2018-02-07 02:42:17 +0200648 help
649 Enable the Renesas Quad SPI controller driver. This driver can be
650 used on Renesas SoCs.
651
Tuomas Tynkkynend3958792018-02-07 02:42:19 +0200652config MXC_SPI
653 bool "MXC SPI Driver"
John Watts60dcbc22024-04-27 15:40:40 +1000654 depends on MACH_IMX
Tuomas Tynkkynend3958792018-02-07 02:42:19 +0200655 help
656 Enable the MXC SPI controller driver. This driver can be used
657 on various i.MX SoCs such as i.MX31/35/51/6/7.
658
Jassi Brar717bab22021-06-04 18:44:27 +0900659config SYNQUACER_SPI
660 bool "Socionext SynQuacer HS-SPI driver"
661 depends on ARCH_SYNQUACER
662 help
663 Enable the Socionext HS-SPI driver for SynQuacer. This driver can
664 be used to access the SPI interface and SPI NOR flash on platforms
665 embedding this HS-SPI IP core.
666
Adam Ford4e96ff82018-04-15 13:51:26 -0400667endif # menu "SPI Support"