blob: 7a4b319f0d9f07283e21951f60a8fe1fc4133c9e [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 Simek2895a222022-09-19 14:21:03 +0200161 depends on (ARCH_VERSAL || ARCH_VERSAL_NET) && 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
Jagan Teki97c18ed2020-05-26 13:34:26 +0530174config DAVINCI_SPI
175 bool "Davinci & Keystone SPI driver"
176 depends on ARCH_DAVINCI || ARCH_KEYSTONE
177 help
178 Enable the Davinci SPI driver
179
Jagan Teki15a932c2015-06-27 22:37:00 +0530180config DESIGNWARE_SPI
181 bool "Designware SPI driver"
182 help
183 Enable the Designware SPI driver. This driver can be used to
184 access the SPI NOR flash on platforms embedding this Designware
185 IP core.
186
Jagan Teki6274bf92015-06-27 15:32:19 +0530187config EXYNOS_SPI
188 bool "Samsung Exynos SPI driver"
John Watts60dcbc22024-04-27 15:40:40 +1000189 depends on ARCH_EXYNOS
Jagan Teki6274bf92015-06-27 15:32:19 +0530190 help
191 Enable the Samsung Exynos SPI driver. This driver can be used to
192 access the SPI NOR flash on platforms embedding this Samsung
193 Exynos IP core.
194
Jagan Tekiae30c022015-06-27 14:17:06 +0530195config FSL_DSPI
196 bool "Freescale DSPI driver"
John Watts60dcbc22024-04-27 15:40:40 +1000197 depends on FSL_LAYERSCAPE || ARCH_VF610 || ARCH_LS1021A || ARCH_LS1028A
Jagan Tekiae30c022015-06-27 14:17:06 +0530198 help
199 Enable the Freescale DSPI driver. This driver can be used to
200 access the SPI NOR flash and SPI Data flash on platforms embedding
201 this Freescale DSPI IP core. LS102xA and Colibri VF50/VF61 platforms
202 use this driver.
203
Jagan Teki72cedd42020-05-26 00:24:19 +0530204config FSL_QSPI
205 bool "Freescale QSPI driver"
206 imply SPI_FLASH_BAR
207 help
208 Enable the Freescale Quad-SPI (QSPI) driver. This driver can be
209 used to access the SPI NOR flash on platforms embedding this
210 Freescale IP core.
211
Ye Lid7e3c9a2020-06-09 00:59:06 -0700212config FSL_QSPI_AHB_FULL_MAP
213 bool "Use full AHB memory map space"
214 depends on FSL_QSPI
215 default y if ARCH_MX6 || ARCH_MX7 || ARCH_MX7ULP || ARCH_IMX8M
216 help
217 Enable the Freescale QSPI driver to use full AHB memory map space for
218 flash access.
219
Nick Hawkins2ccea3a2022-06-08 16:21:36 -0500220config GXP_SPI
221 bool "SPI driver for GXP"
222 imply SPI_FLASH_BAR
223 help
224 Enable support for SPI on GXP.
225
Jagan Teki3872b7c2015-06-27 15:43:27 +0530226config ICH_SPI
227 bool "Intel ICH SPI driver"
John Watts60dcbc22024-04-27 15:40:40 +1000228 depends on X86
Jagan Teki3872b7c2015-06-27 15:43:27 +0530229 help
230 Enable the Intel ICH SPI driver. This driver can be used to
231 access the SPI NOR flash on platforms embedding this Intel
232 ICH IP core.
233
Rayagonda Kokatanur1969f2b2022-02-09 14:16:13 -0800234config IPROC_QSPI
235 bool "Broadcom iProc QSPI Flash Controller driver"
236 help
237 Enable Broadcom iProc QSPI Flash Controller driver.
238 This driver can be used to access the SPI NOR flash.
239
Bhargav Shah83a26312020-06-18 23:15:13 +0530240config KIRKWOOD_SPI
241 bool "Marvell Kirkwood SPI Driver"
John Watts60dcbc22024-04-27 15:40:40 +1000242 depends on ARCH_KIRKWOOD || ARCH_MVEBU
Bhargav Shah83a26312020-06-18 23:15:13 +0530243 help
244 Enable support for SPI on various Marvell SoCs, such as
245 Kirkwood and Armada 375.
246
Neil Armstrong5c162172018-11-22 11:01:05 +0100247config MESON_SPIFC
248 bool "Amlogic Meson SPI Flash Controller driver"
249 depends on ARCH_MESON
250 help
251 Enable the Amlogic Meson SPI Flash Controller SPIFC) driver.
252 This driver can be used to access the SPI NOR flash chips on
253 Amlogic Meson SoCs.
254
Padmarao Begari32678b02022-10-27 11:32:01 +0530255config MICROCHIP_COREQSPI
256 bool "Microchip FPGA QSPI Controller driver"
257 help
258 Enable the QSPI driver for Microchip FPGA QSPI controllers.
259 This driver can be used on Polarfire SoC.
260
Igor Prusov3f027752023-10-25 01:51:39 +0300261config MESON_SPIFC_A1
262 bool "Amlogic Meson A1 SPI Flash Controller driver"
263 depends on ARCH_MESON
264 help
265 Enable the Amlogic A1 SPI Flash Controller (SPIFC) driver.
266 This driver can be used to access the SPI NOR/NAND flash chips
267 with STR mode frequency up to 98MHz. Dual and quad modes are
268 supported by controller.
269
Christophe Leroy847362b2018-11-21 08:51:57 +0000270config MPC8XX_SPI
271 bool "MPC8XX SPI Driver"
Christophe Leroybc6a4572024-04-02 19:20:07 +0200272 depends on MPC8xx && DM_GPIO
Christophe Leroy847362b2018-11-21 08:51:57 +0000273 help
274 Enable support for SPI on MPC8XX
275
Jagan Teki52515d52019-04-29 01:58:53 +0530276config MPC8XXX_SPI
277 bool "MPC8XXX SPI Driver"
John Watts60dcbc22024-04-27 15:40:40 +1000278 depends on MPC83xx || MPC85xx
Jagan Teki52515d52019-04-29 01:58:53 +0530279 help
280 Enable support for SPI on the MPC8XXX PowerPC SoCs.
281
Jagan Teki72cedd42020-05-26 00:24:19 +0530282config MSCC_BB_SPI
283 bool "MSCC bitbang SPI driver"
284 depends on SOC_VCOREIII
285 help
286 Enable MSCC bitbang SPI driver. This driver can be used on
287 MSCC SOCs.
288
developer2dfdc3f2020-11-12 16:36:42 +0800289config MT7620_SPI
290 bool "MediaTek MT7620 SPI driver"
291 depends on SOC_MT7620
292 help
293 Enable the MT7620 SPI driver. This driver can be used to access
294 generic SPI devices on MediaTek MT7620 SoC.
295
Stefan Roese8adb8cb2018-08-16 10:48:48 +0200296config MT7621_SPI
297 bool "MediaTek MT7621 SPI driver"
developer005064e2022-05-20 11:23:08 +0800298 depends on SOC_MT7621 || SOC_MT7628
Stefan Roese8adb8cb2018-08-16 10:48:48 +0200299 help
300 Enable the MT7621 SPI driver. This driver can be used to access
301 the SPI NOR flash on platforms embedding this Ralink / MediaTek
302 SPI core, like MT7621/7628/7688.
303
developerf33cf3c2021-01-20 15:31:33 +0800304config MTK_SNOR
305 bool "Mediatek SPI-NOR controller driver"
306 depends on SPI_MEM
307 help
308 Enable the Mediatek SPINOR controller driver. This driver has
309 better read/write performance with NOR.
310
developer8a78b4d2019-07-22 17:09:01 +0530311config MTK_SNFI_SPI
312 bool "Mediatek SPI memory controller driver"
313 depends on SPI_MEM
314 help
315 Enable the Mediatek SPI memory controller driver. This driver is
316 originally based on the MediaTek SNFI IP core. It can only be
317 used to access SPI memory devices like SPI-NOR or SPI-NAND on
318 platforms embedding this IP core, like MT7622/M7629.
319
developer24202202022-09-09 19:59:45 +0800320config MTK_SPIM
321 bool "Mediatek SPI-MEM master controller driver"
322 depends on SPI_MEM
323 help
324 Enable MediaTek SPI-MEM master controller driver. This driver mainly
325 supports SPI flashes. You can use single, dual or quad mode
326 transmission on this controller.
327
Stefan Roese9ec1c782016-05-19 15:56:44 +0200328config MVEBU_A3700_SPI
329 bool "Marvell Armada 3700 SPI driver"
Marek Behún0afd9342018-04-24 17:21:26 +0200330 select CLK_ARMADA_3720
Stefan Roese9ec1c782016-05-19 15:56:44 +0200331 help
332 Enable the Marvell Armada 3700 SPI driver. This driver can be
333 used to access the SPI NOR flash on platforms embedding this
334 Marvell IP core.
335
Jagan Teki2174d852020-05-25 23:24:23 +0530336config MXS_SPI
337 bool "MXS SPI Driver"
John Watts60dcbc22024-04-27 15:40:40 +1000338 depends on MACH_IMX
Jagan Teki2174d852020-05-25 23:24:23 +0530339 help
340 Enable the MXS SPI controller driver. This driver can be used
341 on the i.MX23 and i.MX28 SoCs.
342
Zhengxunc93136b2021-06-23 17:15:15 +0000343config SPI_MXIC
344 bool "Macronix MX25F0A SPI controller"
345 help
346 Enable the Macronix MX25F0A SPI controller driver. This driver
347 can be used to access the SPI flash on platforms embedding
348 this Macronix IP core.
349
Jim Liu464b7cd2022-04-26 16:52:45 +0800350config NPCM_FIU_SPI
351 bool "FIU driver for Nuvoton NPCM SoC"
352 help
353 This enables support for the Flash Interface Unit SPI controller
354 in master mode.
355
Jim Liu68d29122022-05-31 18:14:02 +0800356config NPCM_PSPI
357 bool "PSPI driver for Nuvoton NPCM SoC"
358 help
359 PSPI driver for NPCM SoC
360
Michael Walled3967f32019-12-18 00:09:58 +0100361config NXP_FSPI
362 bool "NXP FlexSPI driver"
363 depends on SPI_MEM
364 help
365 Enable the NXP FlexSPI (FSPI) driver. This driver can be used to
366 access the SPI NOR flash on platforms embedding this NXP IP core.
367
Suneel Garapati41717772020-07-30 13:56:18 +0200368config OCTEON_SPI
369 bool "Octeon SPI driver"
Simon Glass3933d292021-08-01 18:54:44 -0600370 depends on ARCH_OCTEON || ARCH_OCTEONTX || ARCH_OCTEONTX2
Suneel Garapati41717772020-07-30 13:56:18 +0200371 help
372 Enable the Octeon SPI driver. This driver can be used to
373 access the SPI NOR flash on Octeon II/III and OcteonTX/TX2
374 SoC platforms.
375
Jagan Teki99899c52020-05-27 18:26:36 +0530376config OMAP3_SPI
377 bool "McSPI driver for OMAP"
378 help
379 SPI master controller for OMAP24XX and later Multichannel SPI
380 (McSPI). This driver be used to access SPI chips on platforms
381 embedding this OMAP3 McSPI IP core.
382
Purna Chandra Mandalffa54422016-06-02 14:26:08 +0530383config PIC32_SPI
384 bool "Microchip PIC32 SPI driver"
385 depends on MACH_PIC32
386 help
387 Enable the Microchip PIC32 SPI driver. This driver can be used
388 to access the SPI NOR flash, MMC-over-SPI on platforms based on
389 Microchip PIC32 family devices.
390
Quentin Schulz3add62d2018-08-31 16:28:29 +0200391config PL022_SPI
392 bool "ARM AMBA PL022 SSP controller driver"
393 depends on ARM
394 help
395 This selects the ARM(R) AMBA(R) PrimeCell PL022 SSP
396 controller. If you have an embedded system with an AMBA(R)
397 bus and a PL022 controller, say Y or M here.
398
Robert Markoe4b17a72020-10-08 22:05:09 +0200399config SPI_QUP
400 bool "Qualcomm SPI controller with QUP interface"
401 depends on ARCH_IPQ40XX
402 help
403 Qualcomm Universal Peripheral (QUP) core is an AHB slave that
404 provides a common data path (an output FIFO and an input FIFO)
405 for serial peripheral interface (SPI) mini-core. SPI in master
406 mode supports up to 50MHz, up to four chip selects, programmable
407 data path from 4 bits to 32 bits and numerous protocol variants.
408
Marek Vasut6ca967b2017-11-29 06:29:46 +0100409config RENESAS_RPC_SPI
410 bool "Renesas RPC SPI driver"
Marek Vasut47c4f502023-02-28 22:28:30 +0100411 depends on RCAR_64 || RZA1
Hai Pham64f3ca82022-08-25 10:32:56 +0700412 imply SPI_FLASH_SFDP_SUPPORT
Marek Vasut6ca967b2017-11-29 06:29:46 +0100413 help
414 Enable the Renesas RPC SPI driver, used to access SPI NOR flash
415 on Renesas RCar Gen3 SoCs. This uses driver model and requires a
416 device tree binding to operate.
417
Chris Morgan3afbc762021-08-05 16:26:38 +0800418config ROCKCHIP_SFC
419 bool "Rockchip SFC Driver"
John Wattsa94e31c2024-04-27 15:40:43 +1000420 select BOUNCE_BUFFER
Chris Morgan3afbc762021-08-05 16:26:38 +0800421 help
422 Enable the Rockchip SFC Driver for SPI NOR flash. This device is
423 a limited purpose SPI controller for driving NOR flash on certain
424 Rockchip SoCs. This uses driver model and requires a device tree
425 binding to operate.
426
Simon Glassd1c13772015-09-01 19:19:37 -0600427config ROCKCHIP_SPI
428 bool "Rockchip SPI driver"
429 help
430 Enable the Rockchip SPI driver, used to access SPI NOR flash and
431 other SPI peripherals (such as the Chrome OS EC) on Rockchip SoCs.
432 This uses driver model and requires a device tree binding to
433 operate.
434
Simon Glass4b322d32015-03-06 13:19:05 -0700435config SANDBOX_SPI
436 bool "Sandbox SPI driver"
437 depends on SANDBOX && DM
438 help
439 Enable SPI support for sandbox. This is an emulation of a real SPI
440 bus. Devices can be attached to the bus using the device tree
441 which specifies the driver to use. As an example, see this device
442 tree fragment from sandbox.dts. It shows that the SPI bus has a
443 single flash device on chip select 0 which is emulated by the driver
444 for "sandbox,spi-flash", which is in drivers/mtd/spi/sandbox.c.
445
446 spi@0 {
447 #address-cells = <1>;
448 #size-cells = <0>;
449 reg = <0>;
450 compatible = "sandbox,spi";
451 cs-gpios = <0>, <&gpio_a 0>;
452 flash@0 {
453 reg = <0>;
Simon Glass7e368682019-05-18 11:59:49 -0600454 compatible = "spansion,m25p16", "jedec,spi-nor";
Simon Glass4b322d32015-03-06 13:19:05 -0700455 spi-max-frequency = <40000000>;
456 sandbox,filename = "spi.bin";
457 };
Jagan Teki15a932c2015-06-27 22:37:00 +0530458 };
Jagan Tekidd32f512015-06-27 04:41:11 +0530459
Tom Rini8f0dfd42022-12-02 16:42:43 -0500460config SANDBOX_SPI_MAX_BUS
461 int
462 depends on SANDBOX
463 default 1
464
465config SANDBOX_SPI_MAX_CS
466 int
467 depends on SANDBOX
468 default 10
469
Chin-Ting Kuo4d2caaf2022-08-19 17:01:04 +0800470config SPI_ASPEED_SMC
471 bool "ASPEED SPI flash controller driver"
472 depends on DM_SPI && SPI_MEM
Chin-Ting Kuo4d2caaf2022-08-19 17:01:04 +0800473 help
474 Enable ASPEED SPI flash controller driver for AST2500
475 and AST2600 SoCs.
476
Bhargav Shah3c34f752019-07-17 04:23:43 +0000477config SPI_SIFIVE
478 bool "SiFive SPI driver"
479 help
480 This driver supports the SiFive SPI IP. If unsure say N.
481 Enable the SiFive SPI controller driver.
482
483 The SiFive SPI controller driver is found on various SiFive SoCs.
484
Jagan Tekie5762442020-05-26 08:34:37 +0530485config SOFT_SPI
486 bool "Soft SPI driver"
487 help
488 Enable Soft SPI driver. This driver is to use GPIO simulate
489 the SPI protocol.
490
Kunihiko Hayashi7509ea12022-11-29 11:17:09 +0900491config SPI_SN_F_OSPI
492 tristate "Socionext F_OSPI SPI flash controller"
493 depends on SPI_MEM
494 help
495 This enables support for the Socionext F_OSPI controller
496 for connecting an SPI flash memory over up to 8-bit wide bus.
497 It supports indirect access mode only.
498
Jagan Teki7b68ef42019-02-27 20:02:13 +0530499config SPI_SUNXI
500 bool "Allwinner SoC SPI controllers"
Jagan Teki9f6eafd2019-10-16 18:05:56 +0530501 default ARCH_SUNXI
Jagan Teki7b68ef42019-02-27 20:02:13 +0530502 help
503 Enable the Allwinner SoC SPi controller driver.
504
505 Same controller driver can reuse in all Allwinner SoC variants.
506
Michael Kurz337ff2a2017-01-22 16:04:30 +0100507config STM32_QSPI
508 bool "STM32F7 QSPI driver"
Patrice Chotardd43c4962019-04-30 16:09:18 +0200509 depends on STM32F4 || STM32F7 || ARCH_STM32MP
Michael Kurz337ff2a2017-01-22 16:04:30 +0100510 help
511 Enable the STM32F7 Quad-SPI (QSPI) driver. This driver can be
512 used to access the SPI NOR flash chips on platforms embedding
513 this ST IP core.
514
Patrice Chotard0b08bf82019-04-30 18:08:28 +0200515config STM32_SPI
516 bool "STM32 SPI driver"
517 depends on ARCH_STM32MP
518 help
519 Enable the STM32 Serial Peripheral Interface (SPI) driver for STM32MP
520 SoCs. This uses driver model and requires a device tree binding to
521 operate.
522
Jagan Teki7977d662015-06-27 15:57:53 +0530523config TEGRA114_SPI
524 bool "nVidia Tegra114 SPI driver"
John Watts60dcbc22024-04-27 15:40:40 +1000525 depends on ARCH_TEGRA
Jagan Teki7977d662015-06-27 15:57:53 +0530526 help
527 Enable the nVidia Tegra114 SPI driver. This driver can be used to
528 access the SPI NOR flash on platforms embedding this nVidia Tegra114
529 IP core.
530
531 This controller is different than the older SoCs SPI controller and
532 also register interface get changed with this controller.
533
Jagan Tekia900d402015-06-27 16:04:05 +0530534config TEGRA20_SFLASH
535 bool "nVidia Tegra20 Serial Flash controller driver"
John Watts60dcbc22024-04-27 15:40:40 +1000536 depends on ARCH_TEGRA
Jagan Tekia900d402015-06-27 16:04:05 +0530537 help
538 Enable the nVidia Tegra20 Serial Flash controller driver. This driver
539 can be used to access the SPI NOR flash on platforms embedding this
540 nVidia Tegra20 IP core.
541
Jagan Teki271aa562015-06-27 16:07:54 +0530542config TEGRA20_SLINK
543 bool "nVidia Tegra20/Tegra30 SLINK driver"
John Watts60dcbc22024-04-27 15:40:40 +1000544 depends on ARCH_TEGRA
Jagan Teki271aa562015-06-27 16:07:54 +0530545 help
546 Enable the nVidia Tegra20/Tegra30 SLINK driver. This driver can
547 be used to access the SPI NOR flash on platforms embedding this
548 nVidia Tegra20/Tegra30 IP cores.
549
Tom Warren5fb0c842015-10-12 14:50:54 -0700550config TEGRA210_QSPI
551 bool "nVidia Tegra210 QSPI driver"
John Watts60dcbc22024-04-27 15:40:40 +1000552 depends on ARCH_TEGRA
Tom Warren5fb0c842015-10-12 14:50:54 -0700553 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
John Watts60dcbc22024-04-27 15:40:40 +1000561 depends on ARCH_OMAP2PLUS
Vignesh Raghavendraf3603b82019-04-16 21:31:59 +0530562 help
563 Enable the TI Quad-SPI (QSPI) driver for DRA7xx and AM43xx evms.
564 This driver support spi flash single, quad and memory reads.
565
Kunihiko Hayashi7a40ec02019-07-05 10:03:18 +0900566config UNIPHIER_SPI
567 bool "Socionext UniPhier SPI driver"
568 depends on ARCH_UNIPHIER
569 help
570 Enable the Socionext UniPhier SPI driver. This driver can
571 be used to access SPI chips on platforms embedding this
572 UniPhier IP core.
573
Jagan Tekicd70d7d2015-06-27 04:32:43 +0530574config XILINX_SPI
575 bool "Xilinx SPI driver"
Jagan Tekicd70d7d2015-06-27 04:32:43 +0530576 help
577 Enable the Xilinx SPI driver from the Xilinx EDK. This SPI
578 controller support 8 bit SPI transfers only, with or w/o FIFO.
579 For more info on Xilinx SPI Register Definitions and Overview
580 see driver file - drivers/spi/xilinx_spi.c
581
Jagan Tekicad526f2015-06-27 00:51:38 +0530582config ZYNQ_SPI
583 bool "Zynq SPI driver"
Jagan Tekicad526f2015-06-27 00:51:38 +0530584 help
585 Enable the Zynq SPI driver. This driver can be used to
586 access the SPI NOR flash on platforms embedding this Zynq
587 SPI IP core.
Jagan Tekibfd3f8b2015-06-27 22:35:14 +0530588
Jagan Tekif2e1c412015-08-16 00:19:38 +0530589config ZYNQ_QSPI
590 bool "Zynq QSPI driver"
Vignesh R1f66bca2019-02-05 11:29:28 +0530591 imply SPI_FLASH_BAR
Jagan Tekif2e1c412015-08-16 00:19:38 +0530592 help
593 Enable the Zynq Quad-SPI (QSPI) driver. This driver can be
594 used to access the SPI NOR flash on platforms embedding this
595 Zynq QSPI IP core. This IP is used to connect the flash in
596 4-bit qspi, 8-bit dual stacked and shared 4-bit dual parallel.
597
Siva Durga Prasad Paladugu76597382018-07-04 17:31:23 +0530598config ZYNQMP_GQSPI
599 bool "Configure ZynqMP Generic QSPI"
Siva Durga Prasad Paladugu76597382018-07-04 17:31:23 +0530600 help
601 This option is used to enable ZynqMP QSPI controller driver which
602 is used to communicate with qspi flash devices.
603
Jagan Teki15a932c2015-06-27 22:37:00 +0530604endif # if DM_SPI
605
Jagan Tekia0497a32015-06-27 15:21:36 +0530606config FSL_ESPI
607 bool "Freescale eSPI driver"
Corentin Guilleviccffcee92023-03-24 10:54:19 +0100608 depends on MPC85xx
Xiaowei Bao72817cd2019-10-31 14:34:40 +0800609 imply SPI_FLASH_BAR
Jagan Tekia0497a32015-06-27 15:21:36 +0530610 help
611 Enable the Freescale eSPI driver. This driver can be used to
612 access the SPI interface and SPI NOR flash on platforms embedding
613 this Freescale eSPI IP core.
614
Tuomas Tynkkynenfa8fdfd2018-02-07 02:42:17 +0200615config SH_QSPI
616 bool "Renesas Quad SPI driver"
John Watts60dcbc22024-04-27 15:40:40 +1000617 depends on ARCH_RENESAS
Tuomas Tynkkynenfa8fdfd2018-02-07 02:42:17 +0200618 help
619 Enable the Renesas Quad SPI controller driver. This driver can be
620 used on Renesas SoCs.
621
Tuomas Tynkkynend3958792018-02-07 02:42:19 +0200622config MXC_SPI
623 bool "MXC SPI Driver"
John Watts60dcbc22024-04-27 15:40:40 +1000624 depends on MACH_IMX
Tuomas Tynkkynend3958792018-02-07 02:42:19 +0200625 help
626 Enable the MXC SPI controller driver. This driver can be used
627 on various i.MX SoCs such as i.MX31/35/51/6/7.
628
Jassi Brar717bab22021-06-04 18:44:27 +0900629config SYNQUACER_SPI
630 bool "Socionext SynQuacer HS-SPI driver"
631 depends on ARCH_SYNQUACER
632 help
633 Enable the Socionext HS-SPI driver for SynQuacer. This driver can
634 be used to access the SPI interface and SPI NOR flash on platforms
635 embedding this HS-SPI IP core.
636
Adam Ford4e96ff82018-04-15 13:51:26 -0400637endif # menu "SPI Support"