blob: d3e407ec1101732a4f71b88a70998abce61f90b7 [file] [log] [blame]
Jagan Tekide823052015-06-27 22:35:14 +05301menu "SPI Support"
2
Masahiro Yamadada333ae2014-10-23 22:26:09 +09003config DM_SPI
4 bool "Enable Driver Model for SPI drivers"
5 depends on DM
6 help
Simon Glassf94a1be2015-02-05 21:41:35 -07007 Enable driver model for SPI. The SPI slave interface
8 (spi_setup_slave(), spi_xfer(), etc.) is then implemented by
9 the SPI uclass. Drivers provide methods to access the SPI
10 buses that they control. The uclass interface is defined in
11 include/spi.h. The existing spi_slave structure is attached
12 as 'parent data' to every slave on each bus. Slaves
13 typically use driver-private data instead of extending the
14 spi_slave structure.
Simon Glass892cac72015-03-06 13:19:05 -070015
Jagan Tekie4976af2015-06-27 22:37:00 +053016if DM_SPI
17
Thomas Chou15a56f92015-10-14 08:33:34 +080018config ALTERA_SPI
19 bool "Altera SPI driver"
20 help
21 Enable the Altera SPI driver. This driver can be used to
22 access the SPI NOR flash on platforms embedding this Altera
23 IP core. Please find details on the "Embedded Peripherals IP
24 User Guide" of Altera.
25
Jagan Teki15927ae2018-03-07 10:33:33 +053026config ATCSPI200_SPI
27 bool "Andestech ATCSPI200 SPI driver"
28 help
29 Enable the Andestech ATCSPI200 SPI driver. This driver can be
30 used to access the SPI flash on AE3XX and AE250 platforms embedding
31 this Andestech IP core.
32
Wills Wangb85dc462016-03-16 16:59:58 +080033config ATH79_SPI
34 bool "Atheros SPI driver"
35 depends on ARCH_ATH79
36 help
37 Enable the Atheros ar7xxx/ar9xxx SoC SPI driver, it was used
38 to access SPI NOR flash and other SPI peripherals. This driver
39 uses driver model and requires a device tree binding to operate.
40 please refer to doc/device-tree-bindings/spi/spi-ath79.txt.
41
Wenyou Yang0eafd4b2016-10-28 14:17:49 +080042config ATMEL_SPI
43 bool "Atmel SPI driver"
Jagan Teki89d4fc12018-03-14 18:46:44 +053044 default y if ARCH_AT91
Wenyou Yang0eafd4b2016-10-28 14:17:49 +080045 help
46 This enables driver for the Atmel SPI Controller, present on
Andy Shevchenkodaab59a2017-07-05 16:25:22 +030047 many AT91 (ARM) chips. This driver can be used to access
48 the SPI Flash, such as AT25DF321.
Wenyou Yang0eafd4b2016-10-28 14:17:49 +080049
Álvaro Fernández Rojas29cc4362018-01-20 02:13:38 +010050config BCM63XX_HSSPI
51 bool "BCM63XX HSSPI driver"
52 depends on ARCH_BMIPS
53 help
54 Enable the BCM6328 HSSPI driver. This driver can be used to
55 access the SPI NOR flash on platforms embedding this Broadcom
56 SPI core.
57
Álvaro Fernández Rojas5ac07d22018-01-23 17:14:58 +010058config BCM63XX_SPI
59 bool "BCM6348 SPI driver"
60 depends on ARCH_BMIPS
61 help
62 Enable the BCM6348/BCM6358 SPI driver. This driver can be used to
63 access the SPI NOR flash on platforms embedding these Broadcom
64 SPI cores.
65
Jagan Tekie4976af2015-06-27 22:37:00 +053066config CADENCE_QSPI
67 bool "Cadence QSPI driver"
68 help
69 Enable the Cadence Quad-SPI (QSPI) driver. This driver can be
70 used to access the SPI NOR flash on platforms embedding this
71 Cadence IP core.
72
73config DESIGNWARE_SPI
74 bool "Designware SPI driver"
75 help
76 Enable the Designware SPI driver. This driver can be used to
77 access the SPI NOR flash on platforms embedding this Designware
78 IP core.
79
Jagan Tekic354eee2015-06-27 15:32:19 +053080config EXYNOS_SPI
81 bool "Samsung Exynos SPI driver"
82 help
83 Enable the Samsung Exynos SPI driver. This driver can be used to
84 access the SPI NOR flash on platforms embedding this Samsung
85 Exynos IP core.
86
Jagan Teki94ea3082015-06-27 14:17:06 +053087config FSL_DSPI
88 bool "Freescale DSPI driver"
89 help
90 Enable the Freescale DSPI driver. This driver can be used to
91 access the SPI NOR flash and SPI Data flash on platforms embedding
92 this Freescale DSPI IP core. LS102xA and Colibri VF50/VF61 platforms
93 use this driver.
94
Jagan Teki45636012015-06-27 15:43:27 +053095config ICH_SPI
96 bool "Intel ICH SPI driver"
97 help
98 Enable the Intel ICH SPI driver. This driver can be used to
99 access the SPI NOR flash on platforms embedding this Intel
100 ICH IP core.
101
Stefan Roese3fda4ef2016-05-19 15:56:44 +0200102config MVEBU_A3700_SPI
103 bool "Marvell Armada 3700 SPI driver"
104 help
105 Enable the Marvell Armada 3700 SPI driver. This driver can be
106 used to access the SPI NOR flash on platforms embedding this
107 Marvell IP core.
108
Purna Chandra Mandale19b9002016-06-02 14:26:08 +0530109config PIC32_SPI
110 bool "Microchip PIC32 SPI driver"
111 depends on MACH_PIC32
112 help
113 Enable the Microchip PIC32 SPI driver. This driver can be used
114 to access the SPI NOR flash, MMC-over-SPI on platforms based on
115 Microchip PIC32 family devices.
116
Simon Glass1b2fd5b2015-09-01 19:19:37 -0600117config ROCKCHIP_SPI
118 bool "Rockchip SPI driver"
119 help
120 Enable the Rockchip SPI driver, used to access SPI NOR flash and
121 other SPI peripherals (such as the Chrome OS EC) on Rockchip SoCs.
122 This uses driver model and requires a device tree binding to
123 operate.
124
Simon Glass892cac72015-03-06 13:19:05 -0700125config SANDBOX_SPI
126 bool "Sandbox SPI driver"
127 depends on SANDBOX && DM
128 help
129 Enable SPI support for sandbox. This is an emulation of a real SPI
130 bus. Devices can be attached to the bus using the device tree
131 which specifies the driver to use. As an example, see this device
132 tree fragment from sandbox.dts. It shows that the SPI bus has a
133 single flash device on chip select 0 which is emulated by the driver
134 for "sandbox,spi-flash", which is in drivers/mtd/spi/sandbox.c.
135
136 spi@0 {
137 #address-cells = <1>;
138 #size-cells = <0>;
139 reg = <0>;
140 compatible = "sandbox,spi";
141 cs-gpios = <0>, <&gpio_a 0>;
142 flash@0 {
143 reg = <0>;
144 compatible = "spansion,m25p16", "sandbox,spi-flash";
145 spi-max-frequency = <40000000>;
146 sandbox,filename = "spi.bin";
147 };
Jagan Tekie4976af2015-06-27 22:37:00 +0530148 };
Jagan Tekif924a202015-06-27 04:41:11 +0530149
Michael Kurzd4363ba2017-01-22 16:04:30 +0100150config STM32_QSPI
151 bool "STM32F7 QSPI driver"
152 depends on STM32F7
153 help
154 Enable the STM32F7 Quad-SPI (QSPI) driver. This driver can be
155 used to access the SPI NOR flash chips on platforms embedding
156 this ST IP core.
157
Jagan Teki5bf9a2d2015-06-27 15:57:53 +0530158config TEGRA114_SPI
159 bool "nVidia Tegra114 SPI driver"
160 help
161 Enable the nVidia Tegra114 SPI driver. This driver can be used to
162 access the SPI NOR flash on platforms embedding this nVidia Tegra114
163 IP core.
164
165 This controller is different than the older SoCs SPI controller and
166 also register interface get changed with this controller.
167
Jagan Teki2f3e6f82015-06-27 16:04:05 +0530168config TEGRA20_SFLASH
169 bool "nVidia Tegra20 Serial Flash controller driver"
170 help
171 Enable the nVidia Tegra20 Serial Flash controller driver. This driver
172 can be used to access the SPI NOR flash on platforms embedding this
173 nVidia Tegra20 IP core.
174
Jagan Teki44958302015-06-27 16:07:54 +0530175config TEGRA20_SLINK
176 bool "nVidia Tegra20/Tegra30 SLINK driver"
177 help
178 Enable the nVidia Tegra20/Tegra30 SLINK driver. This driver can
179 be used to access the SPI NOR flash on platforms embedding this
180 nVidia Tegra20/Tegra30 IP cores.
181
Tom Warren4e675ff2015-10-12 14:50:54 -0700182config TEGRA210_QSPI
183 bool "nVidia Tegra210 QSPI driver"
184 help
185 Enable the Tegra Quad-SPI (QSPI) driver for T210. This driver
186 be used to access SPI chips on platforms embedding this
187 NVIDIA Tegra210 IP core.
188
Jagan Teki075143d2015-06-27 04:32:43 +0530189config XILINX_SPI
190 bool "Xilinx SPI driver"
Jagan Teki075143d2015-06-27 04:32:43 +0530191 help
192 Enable the Xilinx SPI driver from the Xilinx EDK. This SPI
193 controller support 8 bit SPI transfers only, with or w/o FIFO.
194 For more info on Xilinx SPI Register Definitions and Overview
195 see driver file - drivers/spi/xilinx_spi.c
196
Jagan Tekidf30a422015-06-27 00:51:38 +0530197config ZYNQ_SPI
198 bool "Zynq SPI driver"
Michal Simek8e4920e2015-12-07 11:33:58 +0100199 depends on ARCH_ZYNQ || ARCH_ZYNQMP
Jagan Tekidf30a422015-06-27 00:51:38 +0530200 help
201 Enable the Zynq SPI driver. This driver can be used to
202 access the SPI NOR flash on platforms embedding this Zynq
203 SPI IP core.
Jagan Tekide823052015-06-27 22:35:14 +0530204
Jagan Teki78a025a2015-08-16 00:19:38 +0530205config ZYNQ_QSPI
206 bool "Zynq QSPI driver"
207 depends on ARCH_ZYNQ
208 help
209 Enable the Zynq Quad-SPI (QSPI) driver. This driver can be
210 used to access the SPI NOR flash on platforms embedding this
211 Zynq QSPI IP core. This IP is used to connect the flash in
212 4-bit qspi, 8-bit dual stacked and shared 4-bit dual parallel.
213
Jagan Tekie4976af2015-06-27 22:37:00 +0530214endif # if DM_SPI
215
Peng Fan41eb8ff2017-04-13 14:09:55 +0800216config SOFT_SPI
217 bool "Soft SPI driver"
218 help
219 Enable Soft SPI driver. This driver is to use GPIO simulate
220 the SPI protocol.
221
Tuomas Tynkkynenfbca0e62018-02-07 02:42:23 +0200222config CF_SPI
223 bool "ColdFire SPI driver"
224 help
225 Enable the ColdFire SPI driver. This driver can be used on
226 some m68k SoCs.
227
Jagan Teki3debffa2015-06-27 15:21:36 +0530228config FSL_ESPI
229 bool "Freescale eSPI driver"
230 help
231 Enable the Freescale eSPI driver. This driver can be used to
232 access the SPI interface and SPI NOR flash on platforms embedding
233 this Freescale eSPI IP core.
234
Jagan Teki21b1dd12016-09-03 12:58:33 +0530235config FSL_QSPI
236 bool "Freescale QSPI driver"
237 help
238 Enable the Freescale Quad-SPI (QSPI) driver. This driver can be
239 used to access the SPI NOR flash on platforms embedding this
240 Freescale IP core.
241
Adam Ford26410c12017-12-30 07:33:42 -0600242config DAVINCI_SPI
243 bool "Davinci & Keystone SPI driver"
244 depends on ARCH_DAVINCI || ARCH_KEYSTONE
245 help
246 Enable the Davinci SPI driver
247
Tuomas Tynkkynen95d38772018-02-07 02:42:16 +0200248config SH_SPI
249 bool "SuperH SPI driver"
250 help
251 Enable the SuperH SPI controller driver. This driver can be used
252 on various SuperH SoCs, such as SH7757.
253
Tuomas Tynkkynena5dfabe2018-02-07 02:42:17 +0200254config SH_QSPI
255 bool "Renesas Quad SPI driver"
256 help
257 Enable the Renesas Quad SPI controller driver. This driver can be
258 used on Renesas SoCs.
259
Jagan Tekie4976af2015-06-27 22:37:00 +0530260config TI_QSPI
261 bool "TI QSPI driver"
262 help
263 Enable the TI Quad-SPI (QSPI) driver for DRA7xx and AM43xx evms.
264 This driver support spi flash single, quad and memory reads.
265
Tuomas Tynkkynen4a942f42018-02-07 02:42:22 +0200266config KIRKWOOD_SPI
267 bool "Marvell Kirkwood SPI Driver"
268 help
269 Enable support for SPI on various Marvell SoCs, such as
270 Kirkwood and Armada 375.
271
Tuomas Tynkkynen2c4b0962018-02-07 02:42:21 +0200272config LPC32XX_SSP
273 bool "LPC32XX SPI Driver"
274 help
275 Enable support for SPI on LPC32xx
276
Christophe Leroyf88c4312017-07-06 10:33:25 +0200277config MPC8XX_SPI
278 bool "MPC8XX SPI Driver"
Christophe Leroyee1e6002018-03-16 17:20:41 +0100279 depends on MPC8xx
Christophe Leroyf88c4312017-07-06 10:33:25 +0200280 help
281 Enable support for SPI on MPC8XX
282
Tuomas Tynkkynenbbdf3862018-02-07 02:42:20 +0200283config MPC8XXX_SPI
284 bool "MPC8XXX SPI Driver"
285 help
286 Enable support for SPI on the MPC8XXX PowerPC SoCs.
287
Tuomas Tynkkynen60e54562018-02-07 02:42:19 +0200288config MXC_SPI
289 bool "MXC SPI Driver"
290 help
291 Enable the MXC SPI controller driver. This driver can be used
292 on various i.MX SoCs such as i.MX31/35/51/6/7.
293
Tuomas Tynkkynen7b819b52018-02-07 02:42:18 +0200294config MXS_SPI
295 bool "MXS SPI Driver"
296 help
297 Enable the MXS SPI controller driver. This driver can be used
298 on the i.MX23 and i.MX28 SoCs.
299
Adam Forda41e3e12017-07-26 22:25:29 -0500300config OMAP3_SPI
301 bool "McSPI driver for OMAP"
302 help
303 SPI master controller for OMAP24XX and later Multichannel SPI
304 (McSPI). This driver be used to access SPI chips on platforms
305 embedding this OMAP3 McSPI IP core.
306
Jagan Tekide823052015-06-27 22:35:14 +0530307endmenu # menu "SPI Support"