xref: /openbmc/u-boot/drivers/spi/Kconfig (revision d13f5b254a43e292814a618f60a2696ba01267a7)
1f1b1f770SAdam Fordmenuconfig SPI
2f1b1f770SAdam Ford	bool "SPI Support"
3f1b1f770SAdam Ford
4f1b1f770SAdam Fordif SPI
5de823053SJagan Teki
6da333ae7SMasahiro Yamadaconfig DM_SPI
7da333ae7SMasahiro Yamada	bool "Enable Driver Model for SPI drivers"
8da333ae7SMasahiro Yamada	depends on DM
9da333ae7SMasahiro Yamada	help
10f94a1bedSSimon Glass	  Enable driver model for SPI. The SPI slave interface
11f94a1bedSSimon Glass	  (spi_setup_slave(), spi_xfer(), etc.) is then implemented by
12f94a1bedSSimon Glass	  the SPI uclass. Drivers provide methods to access the SPI
13f94a1bedSSimon Glass	  buses that they control. The uclass interface is defined in
14f94a1bedSSimon Glass	  include/spi.h. The existing spi_slave structure is attached
15f94a1bedSSimon Glass	  as 'parent data' to every slave on each bus. Slaves
16f94a1bedSSimon Glass	  typically use driver-private data instead of extending the
17f94a1bedSSimon Glass	  spi_slave structure.
18892cac72SSimon Glass
19e4976af8SJagan Tekiif DM_SPI
20e4976af8SJagan Teki
21*d13f5b25SBoris Brezillonconfig SPI_MEM
22*d13f5b25SBoris Brezillon	bool "SPI memory extension"
23*d13f5b25SBoris Brezillon	help
24*d13f5b25SBoris Brezillon	  Enable this option if you want to enable the SPI memory extension.
25*d13f5b25SBoris Brezillon	  This extension is meant to simplify interaction with SPI memories
26*d13f5b25SBoris Brezillon	  by providing an high-level interface to send memory-like commands.
27*d13f5b25SBoris Brezillon
2815a56f9cSThomas Chouconfig ALTERA_SPI
2915a56f9cSThomas Chou	bool "Altera SPI driver"
3015a56f9cSThomas Chou	help
3115a56f9cSThomas Chou	  Enable the Altera SPI driver. This driver can be used to
3215a56f9cSThomas Chou	  access the SPI NOR flash on platforms embedding this Altera
3315a56f9cSThomas Chou	  IP core. Please find details on the "Embedded Peripherals IP
3415a56f9cSThomas Chou	  User Guide" of Altera.
3515a56f9cSThomas Chou
3615927aefSJagan Tekiconfig ATCSPI200_SPI
3715927aefSJagan Teki	bool "Andestech ATCSPI200 SPI driver"
3815927aefSJagan Teki	help
3915927aefSJagan Teki	  Enable the Andestech ATCSPI200 SPI driver. This driver can be
4015927aefSJagan Teki	  used to access the SPI flash on AE3XX and AE250 platforms embedding
4115927aefSJagan Teki	  this Andestech IP core.
4215927aefSJagan Teki
43b85dc460SWills Wangconfig ATH79_SPI
44b85dc460SWills Wang	bool "Atheros SPI driver"
45b85dc460SWills Wang	depends on ARCH_ATH79
46b85dc460SWills Wang	help
47b85dc460SWills Wang	  Enable the Atheros ar7xxx/ar9xxx SoC SPI driver, it was used
48b85dc460SWills Wang	  to access SPI NOR flash and other SPI peripherals. This driver
49b85dc460SWills Wang	  uses driver model and requires a device tree binding to operate.
50b85dc460SWills Wang	  please refer to doc/device-tree-bindings/spi/spi-ath79.txt.
51b85dc460SWills Wang
520eafd4b7SWenyou Yangconfig ATMEL_SPI
530eafd4b7SWenyou Yang	bool "Atmel SPI driver"
5489d4fc15SJagan Teki	default y if ARCH_AT91
550eafd4b7SWenyou Yang	help
560eafd4b7SWenyou Yang	  This enables driver for the Atmel SPI Controller, present on
57daab59acSAndy Shevchenko	  many AT91 (ARM) chips. This driver can be used to access
58daab59acSAndy Shevchenko	  the SPI Flash, such as AT25DF321.
590eafd4b7SWenyou Yang
6029cc4368SÁlvaro Fernández Rojasconfig BCM63XX_HSSPI
6129cc4368SÁlvaro Fernández Rojas	bool "BCM63XX HSSPI driver"
6229cc4368SÁlvaro Fernández Rojas	depends on ARCH_BMIPS
6329cc4368SÁlvaro Fernández Rojas	help
6429cc4368SÁlvaro Fernández Rojas	  Enable the BCM6328 HSSPI driver. This driver can be used to
6529cc4368SÁlvaro Fernández Rojas	  access the SPI NOR flash on platforms embedding this Broadcom
6629cc4368SÁlvaro Fernández Rojas	  SPI core.
6729cc4368SÁlvaro Fernández Rojas
685ac07d29SÁlvaro Fernández Rojasconfig BCM63XX_SPI
695ac07d29SÁlvaro Fernández Rojas	bool "BCM6348 SPI driver"
705ac07d29SÁlvaro Fernández Rojas	depends on ARCH_BMIPS
715ac07d29SÁlvaro Fernández Rojas	help
725ac07d29SÁlvaro Fernández Rojas	  Enable the BCM6348/BCM6358 SPI driver. This driver can be used to
735ac07d29SÁlvaro Fernández Rojas	  access the SPI NOR flash on platforms embedding these Broadcom
745ac07d29SÁlvaro Fernández Rojas	  SPI cores.
755ac07d29SÁlvaro Fernández Rojas
76894c3ad2SThomas Fitzsimmonsconfig BCMSTB_SPI
77894c3ad2SThomas Fitzsimmons	bool "BCMSTB SPI driver"
78894c3ad2SThomas Fitzsimmons	help
79894c3ad2SThomas Fitzsimmons	  Enable the Broadcom set-top box SPI driver. This driver can
80894c3ad2SThomas Fitzsimmons	  be used to access the SPI flash on platforms embedding this
81894c3ad2SThomas Fitzsimmons	  Broadcom SPI core.
82894c3ad2SThomas Fitzsimmons
83e4976af8SJagan Tekiconfig CADENCE_QSPI
84e4976af8SJagan Teki	bool "Cadence QSPI driver"
85e4976af8SJagan Teki	help
86e4976af8SJagan Teki	  Enable the Cadence Quad-SPI (QSPI) driver. This driver can be
87e4976af8SJagan Teki	  used to access the SPI NOR flash on platforms embedding this
88e4976af8SJagan Teki	  Cadence IP core.
89e4976af8SJagan Teki
90e4976af8SJagan Tekiconfig DESIGNWARE_SPI
91e4976af8SJagan Teki	bool "Designware SPI driver"
92e4976af8SJagan Teki	help
93e4976af8SJagan Teki	  Enable the Designware SPI driver. This driver can be used to
94e4976af8SJagan Teki	  access the SPI NOR flash on platforms embedding this Designware
95e4976af8SJagan Teki	  IP core.
96e4976af8SJagan Teki
97c354eee8SJagan Tekiconfig EXYNOS_SPI
98c354eee8SJagan Teki	bool "Samsung Exynos SPI driver"
99c354eee8SJagan Teki	help
100c354eee8SJagan Teki	  Enable the Samsung Exynos SPI driver. This driver can be used to
101c354eee8SJagan Teki	  access the SPI NOR flash on platforms embedding this Samsung
102c354eee8SJagan Teki	  Exynos IP core.
103c354eee8SJagan Teki
10494ea308dSJagan Tekiconfig FSL_DSPI
10594ea308dSJagan Teki	bool "Freescale DSPI driver"
10694ea308dSJagan Teki	help
10794ea308dSJagan Teki	  Enable the Freescale DSPI driver. This driver can be used to
10894ea308dSJagan Teki	  access the SPI NOR flash and SPI Data flash on platforms embedding
10994ea308dSJagan Teki	  this Freescale DSPI IP core. LS102xA and Colibri VF50/VF61 platforms
11094ea308dSJagan Teki	  use this driver.
11194ea308dSJagan Teki
11245636010SJagan Tekiconfig ICH_SPI
11345636010SJagan Teki	bool "Intel ICH SPI driver"
11445636010SJagan Teki	help
11545636010SJagan Teki	  Enable the Intel ICH SPI driver. This driver can be used to
11645636010SJagan Teki	  access the SPI NOR flash on platforms embedding this Intel
11745636010SJagan Teki	  ICH IP core.
11845636010SJagan Teki
1193fda4ef3SStefan Roeseconfig MVEBU_A3700_SPI
1203fda4ef3SStefan Roese	bool "Marvell Armada 3700 SPI driver"
121dbbd5bddSMarek Behún	select CLK_ARMADA_3720
1223fda4ef3SStefan Roese	help
1233fda4ef3SStefan Roese	  Enable the Marvell Armada 3700 SPI driver. This driver can be
1243fda4ef3SStefan Roese	  used to access the SPI NOR flash on platforms embedding this
1253fda4ef3SStefan Roese	  Marvell IP core.
1263fda4ef3SStefan Roese
127e19b9004SPurna Chandra Mandalconfig PIC32_SPI
128e19b9004SPurna Chandra Mandal	bool "Microchip PIC32 SPI driver"
129e19b9004SPurna Chandra Mandal	depends on MACH_PIC32
130e19b9004SPurna Chandra Mandal	help
131e19b9004SPurna Chandra Mandal	  Enable the Microchip PIC32 SPI driver. This driver can be used
132e19b9004SPurna Chandra Mandal	  to access the SPI NOR flash, MMC-over-SPI on platforms based on
133e19b9004SPurna Chandra Mandal	  Microchip PIC32 family devices.
134e19b9004SPurna Chandra Mandal
135fbebea27SMarek Vasutconfig RENESAS_RPC_SPI
136fbebea27SMarek Vasut	bool "Renesas RPC SPI driver"
137fbebea27SMarek Vasut	depends on RCAR_GEN3
138fbebea27SMarek Vasut	help
139fbebea27SMarek Vasut	  Enable the Renesas RPC SPI driver, used to access SPI NOR flash
140fbebea27SMarek Vasut	  on Renesas RCar Gen3 SoCs. This uses driver model and requires a
141fbebea27SMarek Vasut	  device tree binding to operate.
142fbebea27SMarek Vasut
1431b2fd5bfSSimon Glassconfig ROCKCHIP_SPI
1441b2fd5bfSSimon Glass	bool "Rockchip SPI driver"
1451b2fd5bfSSimon Glass	help
1461b2fd5bfSSimon Glass	  Enable the Rockchip SPI driver, used to access SPI NOR flash and
1471b2fd5bfSSimon Glass	  other SPI peripherals (such as the Chrome OS EC) on Rockchip SoCs.
1481b2fd5bfSSimon Glass	  This uses driver model and requires a device tree binding to
1491b2fd5bfSSimon Glass	  operate.
1501b2fd5bfSSimon Glass
151892cac72SSimon Glassconfig SANDBOX_SPI
152892cac72SSimon Glass	bool "Sandbox SPI driver"
153892cac72SSimon Glass	depends on SANDBOX && DM
154892cac72SSimon Glass	help
155892cac72SSimon Glass	  Enable SPI support for sandbox. This is an emulation of a real SPI
156892cac72SSimon Glass	  bus. Devices can be attached to the bus using the device tree
157892cac72SSimon Glass	  which specifies the driver to use. As an example, see this device
158892cac72SSimon Glass	  tree fragment from sandbox.dts. It shows that the SPI bus has a
159892cac72SSimon Glass	  single flash device on chip select 0 which is emulated by the driver
160892cac72SSimon Glass	  for "sandbox,spi-flash", which is in drivers/mtd/spi/sandbox.c.
161892cac72SSimon Glass
162892cac72SSimon Glass	  spi@0 {
163892cac72SSimon Glass		#address-cells = <1>;
164892cac72SSimon Glass		#size-cells = <0>;
165892cac72SSimon Glass		reg = <0>;
166892cac72SSimon Glass		compatible = "sandbox,spi";
167892cac72SSimon Glass		cs-gpios = <0>, <&gpio_a 0>;
168892cac72SSimon Glass		flash@0 {
169892cac72SSimon Glass			reg = <0>;
170892cac72SSimon Glass			compatible = "spansion,m25p16", "sandbox,spi-flash";
171892cac72SSimon Glass			spi-max-frequency = <40000000>;
172892cac72SSimon Glass			sandbox,filename = "spi.bin";
173892cac72SSimon Glass		};
174892cac72SSimon Glass	  };
17567d7a9d6SMarek Vasut
176d4363baaSMichael Kurzconfig STM32_QSPI
177d4363baaSMichael Kurz	bool "STM32F7 QSPI driver"
178d4363baaSMichael Kurz	depends on STM32F7
179d4363baaSMichael Kurz	help
180d4363baaSMichael Kurz	  Enable the STM32F7 Quad-SPI (QSPI) driver. This driver can be
181d4363baaSMichael Kurz	  used to access the SPI NOR flash chips on platforms embedding
182d4363baaSMichael Kurz	  this ST IP core.
183d4363baaSMichael Kurz
1847f25d817SStefan Mavrodievconfig SUN4I_SPI
1857f25d817SStefan Mavrodiev	bool "Allwinner A10 SoCs SPI controller"
1867f25d817SStefan Mavrodiev	help
1877f25d817SStefan Mavrodiev	  SPI driver for Allwinner sun4i, sun5i and sun7i SoCs
1887f25d817SStefan Mavrodiev
1895bf9a2d3SJagan Tekiconfig TEGRA114_SPI
1905bf9a2d3SJagan Teki	bool "nVidia Tegra114 SPI driver"
1915bf9a2d3SJagan Teki	help
1925bf9a2d3SJagan Teki	  Enable the nVidia Tegra114 SPI driver. This driver can be used to
1935bf9a2d3SJagan Teki	  access the SPI NOR flash on platforms embedding this nVidia Tegra114
1945bf9a2d3SJagan Teki	  IP core.
1955bf9a2d3SJagan Teki
1965bf9a2d3SJagan Teki	  This controller is different than the older SoCs SPI controller and
1975bf9a2d3SJagan Teki	  also register interface get changed with this controller.
1985bf9a2d3SJagan Teki
1992f3e6f8cSJagan Tekiconfig TEGRA20_SFLASH
2002f3e6f8cSJagan Teki	bool "nVidia Tegra20 Serial Flash controller driver"
2012f3e6f8cSJagan Teki	help
2022f3e6f8cSJagan Teki	  Enable the nVidia Tegra20 Serial Flash controller driver. This driver
2032f3e6f8cSJagan Teki	  can be used to access the SPI NOR flash on platforms embedding this
2042f3e6f8cSJagan Teki	  nVidia Tegra20 IP core.
2052f3e6f8cSJagan Teki
2064495830cSJagan Tekiconfig TEGRA20_SLINK
2074495830cSJagan Teki	bool "nVidia Tegra20/Tegra30 SLINK driver"
2084495830cSJagan Teki	help
2094495830cSJagan Teki	  Enable the nVidia Tegra20/Tegra30 SLINK driver. This driver can
2104495830cSJagan Teki	  be used to access the SPI NOR flash on platforms embedding this
2114495830cSJagan Teki	  nVidia Tegra20/Tegra30 IP cores.
2124495830cSJagan Teki
2134e675ff2STom Warrenconfig TEGRA210_QSPI
2144e675ff2STom Warren	bool "nVidia Tegra210 QSPI driver"
2154e675ff2STom Warren	help
2164e675ff2STom Warren	  Enable the Tegra Quad-SPI (QSPI) driver for T210. This driver
2174e675ff2STom Warren	  be used to access SPI chips on platforms embedding this
2184e675ff2STom Warren	  NVIDIA Tegra210 IP core.
2194e675ff2STom Warren
220075143d3SJagan Tekiconfig XILINX_SPI
221075143d3SJagan Teki	bool "Xilinx SPI driver"
222075143d3SJagan Teki	help
223075143d3SJagan Teki	  Enable the Xilinx SPI driver from the Xilinx EDK. This SPI
224075143d3SJagan Teki	  controller support 8 bit SPI transfers only, with or w/o FIFO.
225075143d3SJagan Teki	  For more info on Xilinx SPI Register Definitions and Overview
226075143d3SJagan Teki	  see driver file - drivers/spi/xilinx_spi.c
227075143d3SJagan Teki
228df30a425SJagan Tekiconfig ZYNQ_SPI
229df30a425SJagan Teki	bool "Zynq SPI driver"
2308e4920e5SMichal Simek	depends on ARCH_ZYNQ || ARCH_ZYNQMP
231df30a425SJagan Teki	help
232df30a425SJagan Teki	  Enable the Zynq SPI driver. This driver can be used to
233df30a425SJagan Teki	  access the SPI NOR flash on platforms embedding this Zynq
234df30a425SJagan Teki	  SPI IP core.
235de823053SJagan Teki
23678a025acSJagan Tekiconfig ZYNQ_QSPI
23778a025acSJagan Teki	bool "Zynq QSPI driver"
23878a025acSJagan Teki	depends on ARCH_ZYNQ
23978a025acSJagan Teki	help
24078a025acSJagan Teki	  Enable the Zynq Quad-SPI (QSPI) driver. This driver can be
24178a025acSJagan Teki	  used to access the SPI NOR flash on platforms embedding this
24278a025acSJagan Teki	  Zynq QSPI IP core. This IP is used to connect the flash in
24378a025acSJagan Teki	  4-bit qspi, 8-bit dual stacked and shared 4-bit dual parallel.
24478a025acSJagan Teki
24522cca173SSiva Durga Prasad Paladuguconfig ZYNQMP_GQSPI
24622cca173SSiva Durga Prasad Paladugu	bool "Configure ZynqMP Generic QSPI"
24722cca173SSiva Durga Prasad Paladugu	depends on ARCH_ZYNQMP
24822cca173SSiva Durga Prasad Paladugu	help
24922cca173SSiva Durga Prasad Paladugu	  This option is used to enable ZynqMP QSPI controller driver which
25022cca173SSiva Durga Prasad Paladugu	  is used to communicate with qspi flash devices.
25122cca173SSiva Durga Prasad Paladugu
252e4976af8SJagan Tekiendif # if DM_SPI
253e4976af8SJagan Teki
25441eb8ff5SPeng Fanconfig SOFT_SPI
25541eb8ff5SPeng Fan	bool "Soft SPI driver"
25641eb8ff5SPeng Fan	help
25741eb8ff5SPeng Fan	 Enable Soft SPI driver. This driver is to use GPIO simulate
25841eb8ff5SPeng Fan	 the SPI protocol.
25941eb8ff5SPeng Fan
260fbca0e66STuomas Tynkkynenconfig CF_SPI
261fbca0e66STuomas Tynkkynen	bool "ColdFire SPI driver"
262fbca0e66STuomas Tynkkynen	help
263fbca0e66STuomas Tynkkynen	  Enable the ColdFire SPI driver. This driver can be used on
264fbca0e66STuomas Tynkkynen	  some m68k SoCs.
265fbca0e66STuomas Tynkkynen
2663debffa7SJagan Tekiconfig FSL_ESPI
2673debffa7SJagan Teki	bool "Freescale eSPI driver"
2683debffa7SJagan Teki	help
2693debffa7SJagan Teki	  Enable the Freescale eSPI driver. This driver can be used to
2703debffa7SJagan Teki	  access the SPI interface and SPI NOR flash on platforms embedding
2713debffa7SJagan Teki	  this Freescale eSPI IP core.
2723debffa7SJagan Teki
27321b1dd18SJagan Tekiconfig FSL_QSPI
27421b1dd18SJagan Teki	bool "Freescale QSPI driver"
27521b1dd18SJagan Teki	help
27621b1dd18SJagan Teki	  Enable the Freescale Quad-SPI (QSPI) driver. This driver can be
27721b1dd18SJagan Teki	  used to access the SPI NOR flash on platforms embedding this
27821b1dd18SJagan Teki	  Freescale IP core.
27921b1dd18SJagan Teki
28026410c15SAdam Fordconfig DAVINCI_SPI
28126410c15SAdam Ford	bool "Davinci & Keystone SPI driver"
28226410c15SAdam Ford	depends on ARCH_DAVINCI || ARCH_KEYSTONE
28326410c15SAdam Ford	help
28426410c15SAdam Ford	  Enable the Davinci SPI driver
28526410c15SAdam Ford
28695d3877aSTuomas Tynkkynenconfig SH_SPI
28795d3877aSTuomas Tynkkynen	bool "SuperH SPI driver"
28895d3877aSTuomas Tynkkynen	help
28995d3877aSTuomas Tynkkynen	  Enable the SuperH SPI controller driver. This driver can be used
29095d3877aSTuomas Tynkkynen	  on various SuperH SoCs, such as SH7757.
29195d3877aSTuomas Tynkkynen
292a5dfabeaSTuomas Tynkkynenconfig SH_QSPI
293a5dfabeaSTuomas Tynkkynen	bool "Renesas Quad SPI driver"
294a5dfabeaSTuomas Tynkkynen	help
295a5dfabeaSTuomas Tynkkynen	  Enable the Renesas Quad SPI controller driver. This driver can be
296a5dfabeaSTuomas Tynkkynen	  used on Renesas SoCs.
297a5dfabeaSTuomas Tynkkynen
298e4976af8SJagan Tekiconfig TI_QSPI
299e4976af8SJagan Teki	bool "TI QSPI driver"
300e4976af8SJagan Teki	help
301e4976af8SJagan Teki	  Enable the TI Quad-SPI (QSPI) driver for DRA7xx and AM43xx evms.
302e4976af8SJagan Teki	  This driver support spi flash single, quad and memory reads.
303e4976af8SJagan Teki
3044a942f49STuomas Tynkkynenconfig KIRKWOOD_SPI
3054a942f49STuomas Tynkkynen	bool "Marvell Kirkwood SPI Driver"
3064a942f49STuomas Tynkkynen	help
3074a942f49STuomas Tynkkynen	  Enable support for SPI on various Marvell SoCs, such as
3084a942f49STuomas Tynkkynen	  Kirkwood and Armada 375.
3094a942f49STuomas Tynkkynen
3102c4b096bSTuomas Tynkkynenconfig LPC32XX_SSP
3112c4b096bSTuomas Tynkkynen	bool "LPC32XX SPI Driver"
3122c4b096bSTuomas Tynkkynen	help
3132c4b096bSTuomas Tynkkynen	  Enable support for SPI on LPC32xx
3142c4b096bSTuomas Tynkkynen
315f88c431bSChristophe Leroyconfig MPC8XX_SPI
316f88c431bSChristophe Leroy	bool "MPC8XX SPI Driver"
317ee1e600cSChristophe Leroy	depends on MPC8xx
318f88c431bSChristophe Leroy	help
319f88c431bSChristophe Leroy	  Enable support for SPI on MPC8XX
320f88c431bSChristophe Leroy
321bbdf3869STuomas Tynkkynenconfig MPC8XXX_SPI
322bbdf3869STuomas Tynkkynen	bool "MPC8XXX SPI Driver"
323bbdf3869STuomas Tynkkynen	help
324bbdf3869STuomas Tynkkynen	  Enable support for SPI on the MPC8XXX PowerPC SoCs.
325bbdf3869STuomas Tynkkynen
32660e54562STuomas Tynkkynenconfig MXC_SPI
32760e54562STuomas Tynkkynen	bool "MXC SPI Driver"
32860e54562STuomas Tynkkynen	help
32960e54562STuomas Tynkkynen	  Enable the MXC SPI controller driver. This driver can be used
33060e54562STuomas Tynkkynen	  on various i.MX SoCs such as i.MX31/35/51/6/7.
33160e54562STuomas Tynkkynen
3327b819b56STuomas Tynkkynenconfig MXS_SPI
3337b819b56STuomas Tynkkynen	bool "MXS SPI Driver"
3347b819b56STuomas Tynkkynen	help
3357b819b56STuomas Tynkkynen	  Enable the MXS SPI controller driver. This driver can be used
3367b819b56STuomas Tynkkynen	  on the i.MX23 and i.MX28 SoCs.
3377b819b56STuomas Tynkkynen
338a41e3e14SAdam Fordconfig OMAP3_SPI
339a41e3e14SAdam Ford	bool "McSPI driver for OMAP"
340a41e3e14SAdam Ford	help
341a41e3e14SAdam Ford	  SPI master controller for OMAP24XX and later Multichannel SPI
342a41e3e14SAdam Ford	  (McSPI). This driver be used to access SPI chips on platforms
343a41e3e14SAdam Ford	  embedding this OMAP3 McSPI IP core.
344a41e3e14SAdam Ford
345f1b1f770SAdam Fordendif # menu "SPI Support"
346