blob: ec92b84ed28b8d5971123ca309c74fa353373b13 [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
Marek Vasutfbebea22017-11-29 06:29:46 +0100117config RENESAS_RPC_SPI
118 bool "Renesas RPC SPI driver"
119 depends on RCAR_GEN3
120 help
121 Enable the Renesas RPC SPI driver, used to access SPI NOR flash
122 on Renesas RCar Gen3 SoCs. This uses driver model and requires a
123 device tree binding to operate.
124
Simon Glass1b2fd5b2015-09-01 19:19:37 -0600125config ROCKCHIP_SPI
126 bool "Rockchip SPI driver"
127 help
128 Enable the Rockchip SPI driver, used to access SPI NOR flash and
129 other SPI peripherals (such as the Chrome OS EC) on Rockchip SoCs.
130 This uses driver model and requires a device tree binding to
131 operate.
132
Simon Glass892cac72015-03-06 13:19:05 -0700133config SANDBOX_SPI
134 bool "Sandbox SPI driver"
135 depends on SANDBOX && DM
136 help
137 Enable SPI support for sandbox. This is an emulation of a real SPI
138 bus. Devices can be attached to the bus using the device tree
139 which specifies the driver to use. As an example, see this device
140 tree fragment from sandbox.dts. It shows that the SPI bus has a
141 single flash device on chip select 0 which is emulated by the driver
142 for "sandbox,spi-flash", which is in drivers/mtd/spi/sandbox.c.
143
144 spi@0 {
145 #address-cells = <1>;
146 #size-cells = <0>;
147 reg = <0>;
148 compatible = "sandbox,spi";
149 cs-gpios = <0>, <&gpio_a 0>;
150 flash@0 {
151 reg = <0>;
152 compatible = "spansion,m25p16", "sandbox,spi-flash";
153 spi-max-frequency = <40000000>;
154 sandbox,filename = "spi.bin";
155 };
Jagan Tekie4976af2015-06-27 22:37:00 +0530156 };
Jagan Tekif924a202015-06-27 04:41:11 +0530157
Michael Kurzd4363ba2017-01-22 16:04:30 +0100158config STM32_QSPI
159 bool "STM32F7 QSPI driver"
160 depends on STM32F7
161 help
162 Enable the STM32F7 Quad-SPI (QSPI) driver. This driver can be
163 used to access the SPI NOR flash chips on platforms embedding
164 this ST IP core.
165
Jagan Teki5bf9a2d2015-06-27 15:57:53 +0530166config TEGRA114_SPI
167 bool "nVidia Tegra114 SPI driver"
168 help
169 Enable the nVidia Tegra114 SPI driver. This driver can be used to
170 access the SPI NOR flash on platforms embedding this nVidia Tegra114
171 IP core.
172
173 This controller is different than the older SoCs SPI controller and
174 also register interface get changed with this controller.
175
Jagan Teki2f3e6f82015-06-27 16:04:05 +0530176config TEGRA20_SFLASH
177 bool "nVidia Tegra20 Serial Flash controller driver"
178 help
179 Enable the nVidia Tegra20 Serial Flash controller driver. This driver
180 can be used to access the SPI NOR flash on platforms embedding this
181 nVidia Tegra20 IP core.
182
Jagan Teki44958302015-06-27 16:07:54 +0530183config TEGRA20_SLINK
184 bool "nVidia Tegra20/Tegra30 SLINK driver"
185 help
186 Enable the nVidia Tegra20/Tegra30 SLINK driver. This driver can
187 be used to access the SPI NOR flash on platforms embedding this
188 nVidia Tegra20/Tegra30 IP cores.
189
Tom Warren4e675ff2015-10-12 14:50:54 -0700190config TEGRA210_QSPI
191 bool "nVidia Tegra210 QSPI driver"
192 help
193 Enable the Tegra Quad-SPI (QSPI) driver for T210. This driver
194 be used to access SPI chips on platforms embedding this
195 NVIDIA Tegra210 IP core.
196
Jagan Teki075143d2015-06-27 04:32:43 +0530197config XILINX_SPI
198 bool "Xilinx SPI driver"
Jagan Teki075143d2015-06-27 04:32:43 +0530199 help
200 Enable the Xilinx SPI driver from the Xilinx EDK. This SPI
201 controller support 8 bit SPI transfers only, with or w/o FIFO.
202 For more info on Xilinx SPI Register Definitions and Overview
203 see driver file - drivers/spi/xilinx_spi.c
204
Jagan Tekidf30a422015-06-27 00:51:38 +0530205config ZYNQ_SPI
206 bool "Zynq SPI driver"
Michal Simek8e4920e2015-12-07 11:33:58 +0100207 depends on ARCH_ZYNQ || ARCH_ZYNQMP
Jagan Tekidf30a422015-06-27 00:51:38 +0530208 help
209 Enable the Zynq SPI driver. This driver can be used to
210 access the SPI NOR flash on platforms embedding this Zynq
211 SPI IP core.
Jagan Tekide823052015-06-27 22:35:14 +0530212
Jagan Teki78a025a2015-08-16 00:19:38 +0530213config ZYNQ_QSPI
214 bool "Zynq QSPI driver"
215 depends on ARCH_ZYNQ
216 help
217 Enable the Zynq Quad-SPI (QSPI) driver. This driver can be
218 used to access the SPI NOR flash on platforms embedding this
219 Zynq QSPI IP core. This IP is used to connect the flash in
220 4-bit qspi, 8-bit dual stacked and shared 4-bit dual parallel.
221
Jagan Tekie4976af2015-06-27 22:37:00 +0530222endif # if DM_SPI
223
Peng Fan41eb8ff2017-04-13 14:09:55 +0800224config SOFT_SPI
225 bool "Soft SPI driver"
226 help
227 Enable Soft SPI driver. This driver is to use GPIO simulate
228 the SPI protocol.
229
Tuomas Tynkkynenfbca0e62018-02-07 02:42:23 +0200230config CF_SPI
231 bool "ColdFire SPI driver"
232 help
233 Enable the ColdFire SPI driver. This driver can be used on
234 some m68k SoCs.
235
Jagan Teki3debffa2015-06-27 15:21:36 +0530236config FSL_ESPI
237 bool "Freescale eSPI driver"
238 help
239 Enable the Freescale eSPI driver. This driver can be used to
240 access the SPI interface and SPI NOR flash on platforms embedding
241 this Freescale eSPI IP core.
242
Jagan Teki21b1dd12016-09-03 12:58:33 +0530243config FSL_QSPI
244 bool "Freescale QSPI driver"
245 help
246 Enable the Freescale Quad-SPI (QSPI) driver. This driver can be
247 used to access the SPI NOR flash on platforms embedding this
248 Freescale IP core.
249
Adam Ford26410c12017-12-30 07:33:42 -0600250config DAVINCI_SPI
251 bool "Davinci & Keystone SPI driver"
252 depends on ARCH_DAVINCI || ARCH_KEYSTONE
253 help
254 Enable the Davinci SPI driver
255
Tuomas Tynkkynen95d38772018-02-07 02:42:16 +0200256config SH_SPI
257 bool "SuperH SPI driver"
258 help
259 Enable the SuperH SPI controller driver. This driver can be used
260 on various SuperH SoCs, such as SH7757.
261
Tuomas Tynkkynena5dfabe2018-02-07 02:42:17 +0200262config SH_QSPI
263 bool "Renesas Quad SPI driver"
264 help
265 Enable the Renesas Quad SPI controller driver. This driver can be
266 used on Renesas SoCs.
267
Jagan Tekie4976af2015-06-27 22:37:00 +0530268config TI_QSPI
269 bool "TI QSPI driver"
270 help
271 Enable the TI Quad-SPI (QSPI) driver for DRA7xx and AM43xx evms.
272 This driver support spi flash single, quad and memory reads.
273
Tuomas Tynkkynen4a942f42018-02-07 02:42:22 +0200274config KIRKWOOD_SPI
275 bool "Marvell Kirkwood SPI Driver"
276 help
277 Enable support for SPI on various Marvell SoCs, such as
278 Kirkwood and Armada 375.
279
Tuomas Tynkkynen2c4b0962018-02-07 02:42:21 +0200280config LPC32XX_SSP
281 bool "LPC32XX SPI Driver"
282 help
283 Enable support for SPI on LPC32xx
284
Christophe Leroyf88c4312017-07-06 10:33:25 +0200285config MPC8XX_SPI
286 bool "MPC8XX SPI Driver"
Christophe Leroyee1e6002018-03-16 17:20:41 +0100287 depends on MPC8xx
Christophe Leroyf88c4312017-07-06 10:33:25 +0200288 help
289 Enable support for SPI on MPC8XX
290
Tuomas Tynkkynenbbdf3862018-02-07 02:42:20 +0200291config MPC8XXX_SPI
292 bool "MPC8XXX SPI Driver"
293 help
294 Enable support for SPI on the MPC8XXX PowerPC SoCs.
295
Tuomas Tynkkynen60e54562018-02-07 02:42:19 +0200296config MXC_SPI
297 bool "MXC SPI Driver"
298 help
299 Enable the MXC SPI controller driver. This driver can be used
300 on various i.MX SoCs such as i.MX31/35/51/6/7.
301
Tuomas Tynkkynen7b819b52018-02-07 02:42:18 +0200302config MXS_SPI
303 bool "MXS SPI Driver"
304 help
305 Enable the MXS SPI controller driver. This driver can be used
306 on the i.MX23 and i.MX28 SoCs.
307
Adam Forda41e3e12017-07-26 22:25:29 -0500308config OMAP3_SPI
309 bool "McSPI driver for OMAP"
310 help
311 SPI master controller for OMAP24XX and later Multichannel SPI
312 (McSPI). This driver be used to access SPI chips on platforms
313 embedding this OMAP3 McSPI IP core.
314
Jagan Tekide823052015-06-27 22:35:14 +0530315endmenu # menu "SPI Support"