blob: 9fbd26740d33dd816a33fad64e6506ce8388b8de [file] [log] [blame]
Adam Fordf1b1f772018-04-15 13:51:26 -04001menuconfig SPI
2 bool "SPI Support"
3
4if SPI
Jagan Tekide823052015-06-27 22:35:14 +05305
Masahiro Yamadada333ae2014-10-23 22:26:09 +09006config DM_SPI
7 bool "Enable Driver Model for SPI drivers"
8 depends on DM
9 help
Simon Glassf94a1be2015-02-05 21:41:35 -070010 Enable driver model for SPI. The SPI slave interface
11 (spi_setup_slave(), spi_xfer(), etc.) is then implemented by
12 the SPI uclass. Drivers provide methods to access the SPI
13 buses that they control. The uclass interface is defined in
14 include/spi.h. The existing spi_slave structure is attached
15 as 'parent data' to every slave on each bus. Slaves
16 typically use driver-private data instead of extending the
17 spi_slave structure.
Simon Glass892cac72015-03-06 13:19:05 -070018
Jagan Tekie4976af2015-06-27 22:37:00 +053019if DM_SPI
20
Boris Brezillond13f5b22018-08-16 17:30:11 +020021config SPI_MEM
22 bool "SPI memory extension"
23 help
24 Enable this option if you want to enable the SPI memory extension.
25 This extension is meant to simplify interaction with SPI memories
26 by providing an high-level interface to send memory-like commands.
27
Thomas Chou15a56f92015-10-14 08:33:34 +080028config ALTERA_SPI
29 bool "Altera SPI driver"
30 help
31 Enable the Altera SPI driver. This driver can be used to
32 access the SPI NOR flash on platforms embedding this Altera
33 IP core. Please find details on the "Embedded Peripherals IP
34 User Guide" of Altera.
35
Jagan Teki15927ae2018-03-07 10:33:33 +053036config ATCSPI200_SPI
37 bool "Andestech ATCSPI200 SPI driver"
38 help
39 Enable the Andestech ATCSPI200 SPI driver. This driver can be
40 used to access the SPI flash on AE3XX and AE250 platforms embedding
41 this Andestech IP core.
42
Wills Wangb85dc462016-03-16 16:59:58 +080043config ATH79_SPI
44 bool "Atheros SPI driver"
45 depends on ARCH_ATH79
46 help
47 Enable the Atheros ar7xxx/ar9xxx SoC SPI driver, it was used
48 to access SPI NOR flash and other SPI peripherals. This driver
49 uses driver model and requires a device tree binding to operate.
50 please refer to doc/device-tree-bindings/spi/spi-ath79.txt.
51
Wenyou Yang0eafd4b2016-10-28 14:17:49 +080052config ATMEL_SPI
53 bool "Atmel SPI driver"
Jagan Teki89d4fc12018-03-14 18:46:44 +053054 default y if ARCH_AT91
Wenyou Yang0eafd4b2016-10-28 14:17:49 +080055 help
56 This enables driver for the Atmel SPI Controller, present on
Andy Shevchenkodaab59a2017-07-05 16:25:22 +030057 many AT91 (ARM) chips. This driver can be used to access
58 the SPI Flash, such as AT25DF321.
Wenyou Yang0eafd4b2016-10-28 14:17:49 +080059
Álvaro Fernández Rojas29cc4362018-01-20 02:13:38 +010060config BCM63XX_HSSPI
61 bool "BCM63XX HSSPI driver"
62 depends on ARCH_BMIPS
63 help
64 Enable the BCM6328 HSSPI driver. This driver can be used to
65 access the SPI NOR flash on platforms embedding this Broadcom
66 SPI core.
67
Álvaro Fernández Rojas5ac07d22018-01-23 17:14:58 +010068config BCM63XX_SPI
69 bool "BCM6348 SPI driver"
70 depends on ARCH_BMIPS
71 help
72 Enable the BCM6348/BCM6358 SPI driver. This driver can be used to
73 access the SPI NOR flash on platforms embedding these Broadcom
74 SPI cores.
75
Thomas Fitzsimmons894c3ad2018-06-08 17:59:45 -040076config BCMSTB_SPI
77 bool "BCMSTB SPI driver"
78 help
79 Enable the Broadcom set-top box SPI driver. This driver can
80 be used to access the SPI flash on platforms embedding this
81 Broadcom SPI core.
82
Jagan Tekie4976af2015-06-27 22:37:00 +053083config CADENCE_QSPI
84 bool "Cadence QSPI driver"
85 help
86 Enable the Cadence Quad-SPI (QSPI) driver. This driver can be
87 used to access the SPI NOR flash on platforms embedding this
88 Cadence IP core.
89
90config DESIGNWARE_SPI
91 bool "Designware SPI driver"
92 help
93 Enable the Designware SPI driver. This driver can be used to
94 access the SPI NOR flash on platforms embedding this Designware
95 IP core.
96
Jagan Tekic354eee2015-06-27 15:32:19 +053097config EXYNOS_SPI
98 bool "Samsung Exynos SPI driver"
99 help
100 Enable the Samsung Exynos SPI driver. This driver can be used to
101 access the SPI NOR flash on platforms embedding this Samsung
102 Exynos IP core.
103
Jagan Teki94ea3082015-06-27 14:17:06 +0530104config FSL_DSPI
105 bool "Freescale DSPI driver"
106 help
107 Enable the Freescale DSPI driver. This driver can be used to
108 access the SPI NOR flash and SPI Data flash on platforms embedding
109 this Freescale DSPI IP core. LS102xA and Colibri VF50/VF61 platforms
110 use this driver.
111
Jagan Teki45636012015-06-27 15:43:27 +0530112config ICH_SPI
113 bool "Intel ICH SPI driver"
114 help
115 Enable the Intel ICH SPI driver. This driver can be used to
116 access the SPI NOR flash on platforms embedding this Intel
117 ICH IP core.
118
Stefan Roese3fda4ef2016-05-19 15:56:44 +0200119config MVEBU_A3700_SPI
120 bool "Marvell Armada 3700 SPI driver"
Marek Behúndbbd5bd2018-04-24 17:21:26 +0200121 select CLK_ARMADA_3720
Stefan Roese3fda4ef2016-05-19 15:56:44 +0200122 help
123 Enable the Marvell Armada 3700 SPI driver. This driver can be
124 used to access the SPI NOR flash on platforms embedding this
125 Marvell IP core.
126
Purna Chandra Mandale19b9002016-06-02 14:26:08 +0530127config PIC32_SPI
128 bool "Microchip PIC32 SPI driver"
129 depends on MACH_PIC32
130 help
131 Enable the Microchip PIC32 SPI driver. This driver can be used
132 to access the SPI NOR flash, MMC-over-SPI on platforms based on
133 Microchip PIC32 family devices.
134
Marek Vasutfbebea22017-11-29 06:29:46 +0100135config RENESAS_RPC_SPI
136 bool "Renesas RPC SPI driver"
137 depends on RCAR_GEN3
138 help
139 Enable the Renesas RPC SPI driver, used to access SPI NOR flash
140 on Renesas RCar Gen3 SoCs. This uses driver model and requires a
141 device tree binding to operate.
142
Simon Glass1b2fd5b2015-09-01 19:19:37 -0600143config ROCKCHIP_SPI
144 bool "Rockchip SPI driver"
145 help
146 Enable the Rockchip SPI driver, used to access SPI NOR flash and
147 other SPI peripherals (such as the Chrome OS EC) on Rockchip SoCs.
148 This uses driver model and requires a device tree binding to
149 operate.
150
Simon Glass892cac72015-03-06 13:19:05 -0700151config SANDBOX_SPI
152 bool "Sandbox SPI driver"
153 depends on SANDBOX && DM
154 help
155 Enable SPI support for sandbox. This is an emulation of a real SPI
156 bus. Devices can be attached to the bus using the device tree
157 which specifies the driver to use. As an example, see this device
158 tree fragment from sandbox.dts. It shows that the SPI bus has a
159 single flash device on chip select 0 which is emulated by the driver
160 for "sandbox,spi-flash", which is in drivers/mtd/spi/sandbox.c.
161
162 spi@0 {
163 #address-cells = <1>;
164 #size-cells = <0>;
165 reg = <0>;
166 compatible = "sandbox,spi";
167 cs-gpios = <0>, <&gpio_a 0>;
168 flash@0 {
169 reg = <0>;
170 compatible = "spansion,m25p16", "sandbox,spi-flash";
171 spi-max-frequency = <40000000>;
172 sandbox,filename = "spi.bin";
173 };
Jagan Tekie4976af2015-06-27 22:37:00 +0530174 };
Jagan Tekif924a202015-06-27 04:41:11 +0530175
Michael Kurzd4363ba2017-01-22 16:04:30 +0100176config STM32_QSPI
177 bool "STM32F7 QSPI driver"
178 depends on STM32F7
179 help
180 Enable the STM32F7 Quad-SPI (QSPI) driver. This driver can be
181 used to access the SPI NOR flash chips on platforms embedding
182 this ST IP core.
183
Stefan Mavrodiev7f25d812018-02-06 15:14:33 +0200184config SUN4I_SPI
185 bool "Allwinner A10 SoCs SPI controller"
186 help
187 SPI driver for Allwinner sun4i, sun5i and sun7i SoCs
188
Jagan Teki5bf9a2d2015-06-27 15:57:53 +0530189config TEGRA114_SPI
190 bool "nVidia Tegra114 SPI driver"
191 help
192 Enable the nVidia Tegra114 SPI driver. This driver can be used to
193 access the SPI NOR flash on platforms embedding this nVidia Tegra114
194 IP core.
195
196 This controller is different than the older SoCs SPI controller and
197 also register interface get changed with this controller.
198
Jagan Teki2f3e6f82015-06-27 16:04:05 +0530199config TEGRA20_SFLASH
200 bool "nVidia Tegra20 Serial Flash controller driver"
201 help
202 Enable the nVidia Tegra20 Serial Flash controller driver. This driver
203 can be used to access the SPI NOR flash on platforms embedding this
204 nVidia Tegra20 IP core.
205
Jagan Teki44958302015-06-27 16:07:54 +0530206config TEGRA20_SLINK
207 bool "nVidia Tegra20/Tegra30 SLINK driver"
208 help
209 Enable the nVidia Tegra20/Tegra30 SLINK driver. This driver can
210 be used to access the SPI NOR flash on platforms embedding this
211 nVidia Tegra20/Tegra30 IP cores.
212
Tom Warren4e675ff2015-10-12 14:50:54 -0700213config TEGRA210_QSPI
214 bool "nVidia Tegra210 QSPI driver"
215 help
216 Enable the Tegra Quad-SPI (QSPI) driver for T210. This driver
217 be used to access SPI chips on platforms embedding this
218 NVIDIA Tegra210 IP core.
219
Jagan Teki075143d2015-06-27 04:32:43 +0530220config XILINX_SPI
221 bool "Xilinx SPI driver"
Jagan Teki075143d2015-06-27 04:32:43 +0530222 help
223 Enable the Xilinx SPI driver from the Xilinx EDK. This SPI
224 controller support 8 bit SPI transfers only, with or w/o FIFO.
225 For more info on Xilinx SPI Register Definitions and Overview
226 see driver file - drivers/spi/xilinx_spi.c
227
Jagan Tekidf30a422015-06-27 00:51:38 +0530228config ZYNQ_SPI
229 bool "Zynq SPI driver"
Michal Simek8e4920e2015-12-07 11:33:58 +0100230 depends on ARCH_ZYNQ || ARCH_ZYNQMP
Jagan Tekidf30a422015-06-27 00:51:38 +0530231 help
232 Enable the Zynq SPI driver. This driver can be used to
233 access the SPI NOR flash on platforms embedding this Zynq
234 SPI IP core.
Jagan Tekide823052015-06-27 22:35:14 +0530235
Jagan Teki78a025a2015-08-16 00:19:38 +0530236config ZYNQ_QSPI
237 bool "Zynq QSPI driver"
238 depends on ARCH_ZYNQ
239 help
240 Enable the Zynq Quad-SPI (QSPI) driver. This driver can be
241 used to access the SPI NOR flash on platforms embedding this
242 Zynq QSPI IP core. This IP is used to connect the flash in
243 4-bit qspi, 8-bit dual stacked and shared 4-bit dual parallel.
244
Siva Durga Prasad Paladugu22cca172018-07-04 17:31:23 +0530245config ZYNQMP_GQSPI
246 bool "Configure ZynqMP Generic QSPI"
247 depends on ARCH_ZYNQMP
248 help
249 This option is used to enable ZynqMP QSPI controller driver which
250 is used to communicate with qspi flash devices.
251
Jagan Tekie4976af2015-06-27 22:37:00 +0530252endif # if DM_SPI
253
Peng Fan41eb8ff2017-04-13 14:09:55 +0800254config SOFT_SPI
255 bool "Soft SPI driver"
256 help
257 Enable Soft SPI driver. This driver is to use GPIO simulate
258 the SPI protocol.
259
Tuomas Tynkkynenfbca0e62018-02-07 02:42:23 +0200260config CF_SPI
261 bool "ColdFire SPI driver"
262 help
263 Enable the ColdFire SPI driver. This driver can be used on
264 some m68k SoCs.
265
Jagan Teki3debffa2015-06-27 15:21:36 +0530266config FSL_ESPI
267 bool "Freescale eSPI driver"
268 help
269 Enable the Freescale eSPI driver. This driver can be used to
270 access the SPI interface and SPI NOR flash on platforms embedding
271 this Freescale eSPI IP core.
272
Jagan Teki21b1dd12016-09-03 12:58:33 +0530273config FSL_QSPI
274 bool "Freescale QSPI driver"
275 help
276 Enable the Freescale Quad-SPI (QSPI) driver. This driver can be
277 used to access the SPI NOR flash on platforms embedding this
278 Freescale IP core.
279
Adam Ford26410c12017-12-30 07:33:42 -0600280config DAVINCI_SPI
281 bool "Davinci & Keystone SPI driver"
282 depends on ARCH_DAVINCI || ARCH_KEYSTONE
283 help
284 Enable the Davinci SPI driver
285
Tuomas Tynkkynen95d38772018-02-07 02:42:16 +0200286config SH_SPI
287 bool "SuperH SPI driver"
288 help
289 Enable the SuperH SPI controller driver. This driver can be used
290 on various SuperH SoCs, such as SH7757.
291
Tuomas Tynkkynena5dfabe2018-02-07 02:42:17 +0200292config SH_QSPI
293 bool "Renesas Quad SPI driver"
294 help
295 Enable the Renesas Quad SPI controller driver. This driver can be
296 used on Renesas SoCs.
297
Jagan Tekie4976af2015-06-27 22:37:00 +0530298config TI_QSPI
299 bool "TI QSPI driver"
300 help
301 Enable the TI Quad-SPI (QSPI) driver for DRA7xx and AM43xx evms.
302 This driver support spi flash single, quad and memory reads.
303
Tuomas Tynkkynen4a942f42018-02-07 02:42:22 +0200304config KIRKWOOD_SPI
305 bool "Marvell Kirkwood SPI Driver"
306 help
307 Enable support for SPI on various Marvell SoCs, such as
308 Kirkwood and Armada 375.
309
Tuomas Tynkkynen2c4b0962018-02-07 02:42:21 +0200310config LPC32XX_SSP
311 bool "LPC32XX SPI Driver"
312 help
313 Enable support for SPI on LPC32xx
314
Christophe Leroyf88c4312017-07-06 10:33:25 +0200315config MPC8XX_SPI
316 bool "MPC8XX SPI Driver"
Christophe Leroyee1e6002018-03-16 17:20:41 +0100317 depends on MPC8xx
Christophe Leroyf88c4312017-07-06 10:33:25 +0200318 help
319 Enable support for SPI on MPC8XX
320
Tuomas Tynkkynenbbdf3862018-02-07 02:42:20 +0200321config MPC8XXX_SPI
322 bool "MPC8XXX SPI Driver"
323 help
324 Enable support for SPI on the MPC8XXX PowerPC SoCs.
325
Tuomas Tynkkynen60e54562018-02-07 02:42:19 +0200326config MXC_SPI
327 bool "MXC SPI Driver"
328 help
329 Enable the MXC SPI controller driver. This driver can be used
330 on various i.MX SoCs such as i.MX31/35/51/6/7.
331
Tuomas Tynkkynen7b819b52018-02-07 02:42:18 +0200332config MXS_SPI
333 bool "MXS SPI Driver"
334 help
335 Enable the MXS SPI controller driver. This driver can be used
336 on the i.MX23 and i.MX28 SoCs.
337
Adam Forda41e3e12017-07-26 22:25:29 -0500338config OMAP3_SPI
339 bool "McSPI driver for OMAP"
340 help
341 SPI master controller for OMAP24XX and later Multichannel SPI
342 (McSPI). This driver be used to access SPI chips on platforms
343 embedding this OMAP3 McSPI IP core.
344
Adam Fordf1b1f772018-04-15 13:51:26 -0400345endif # menu "SPI Support"