xref: /openbmc/u-boot/drivers/spi/Kconfig (revision 41eb8ff5ea0fe10c75b5c1dec2d0ee00f1c5ebce)
1de823053SJagan Tekimenu "SPI Support"
2de823053SJagan Teki
3da333ae7SMasahiro Yamadaconfig DM_SPI
4da333ae7SMasahiro Yamada	bool "Enable Driver Model for SPI drivers"
5da333ae7SMasahiro Yamada	depends on DM
6da333ae7SMasahiro Yamada	help
7f94a1bedSSimon Glass	  Enable driver model for SPI. The SPI slave interface
8f94a1bedSSimon Glass	  (spi_setup_slave(), spi_xfer(), etc.) is then implemented by
9f94a1bedSSimon Glass	  the SPI uclass. Drivers provide methods to access the SPI
10f94a1bedSSimon Glass	  buses that they control. The uclass interface is defined in
11f94a1bedSSimon Glass	  include/spi.h. The existing spi_slave structure is attached
12f94a1bedSSimon Glass	  as 'parent data' to every slave on each bus. Slaves
13f94a1bedSSimon Glass	  typically use driver-private data instead of extending the
14f94a1bedSSimon Glass	  spi_slave structure.
15892cac72SSimon Glass
16e4976af8SJagan Tekiif DM_SPI
17e4976af8SJagan Teki
1815a56f9cSThomas Chouconfig ALTERA_SPI
1915a56f9cSThomas Chou	bool "Altera SPI driver"
2015a56f9cSThomas Chou	help
2115a56f9cSThomas Chou	  Enable the Altera SPI driver. This driver can be used to
2215a56f9cSThomas Chou	  access the SPI NOR flash on platforms embedding this Altera
2315a56f9cSThomas Chou	  IP core. Please find details on the "Embedded Peripherals IP
2415a56f9cSThomas Chou	  User Guide" of Altera.
2515a56f9cSThomas Chou
26b85dc460SWills Wangconfig ATH79_SPI
27b85dc460SWills Wang	bool "Atheros SPI driver"
28b85dc460SWills Wang	depends on ARCH_ATH79
29b85dc460SWills Wang	help
30b85dc460SWills Wang	  Enable the Atheros ar7xxx/ar9xxx SoC SPI driver, it was used
31b85dc460SWills Wang	  to access SPI NOR flash and other SPI peripherals. This driver
32b85dc460SWills Wang	  uses driver model and requires a device tree binding to operate.
33b85dc460SWills Wang	  please refer to doc/device-tree-bindings/spi/spi-ath79.txt.
34b85dc460SWills Wang
350eafd4b7SWenyou Yangconfig ATMEL_SPI
360eafd4b7SWenyou Yang	bool "Atmel SPI driver"
370eafd4b7SWenyou Yang	depends on ARCH_AT91
380eafd4b7SWenyou Yang	help
390eafd4b7SWenyou Yang	  This enables driver for the Atmel SPI Controller, present on
400eafd4b7SWenyou Yang	  many AT32 (AVR32) and AT91 (ARM) chips. This driver can be
410eafd4b7SWenyou Yang	  used to access the SPI Flash, such as AT25DF321.
420eafd4b7SWenyou Yang
43e4976af8SJagan Tekiconfig CADENCE_QSPI
44e4976af8SJagan Teki	bool "Cadence QSPI driver"
45e4976af8SJagan Teki	help
46e4976af8SJagan Teki	  Enable the Cadence Quad-SPI (QSPI) driver. This driver can be
47e4976af8SJagan Teki	  used to access the SPI NOR flash on platforms embedding this
48e4976af8SJagan Teki	  Cadence IP core.
49e4976af8SJagan Teki
50e4976af8SJagan Tekiconfig DESIGNWARE_SPI
51e4976af8SJagan Teki	bool "Designware SPI driver"
52e4976af8SJagan Teki	help
53e4976af8SJagan Teki	  Enable the Designware SPI driver. This driver can be used to
54e4976af8SJagan Teki	  access the SPI NOR flash on platforms embedding this Designware
55e4976af8SJagan Teki	  IP core.
56e4976af8SJagan Teki
57c354eee8SJagan Tekiconfig EXYNOS_SPI
58c354eee8SJagan Teki	bool "Samsung Exynos SPI driver"
59c354eee8SJagan Teki	help
60c354eee8SJagan Teki	  Enable the Samsung Exynos SPI driver. This driver can be used to
61c354eee8SJagan Teki	  access the SPI NOR flash on platforms embedding this Samsung
62c354eee8SJagan Teki	  Exynos IP core.
63c354eee8SJagan Teki
6494ea308dSJagan Tekiconfig FSL_DSPI
6594ea308dSJagan Teki	bool "Freescale DSPI driver"
6694ea308dSJagan Teki	help
6794ea308dSJagan Teki	  Enable the Freescale DSPI driver. This driver can be used to
6894ea308dSJagan Teki	  access the SPI NOR flash and SPI Data flash on platforms embedding
6994ea308dSJagan Teki	  this Freescale DSPI IP core. LS102xA and Colibri VF50/VF61 platforms
7094ea308dSJagan Teki	  use this driver.
7194ea308dSJagan Teki
7245636010SJagan Tekiconfig ICH_SPI
7345636010SJagan Teki	bool "Intel ICH SPI driver"
7445636010SJagan Teki	help
7545636010SJagan Teki	  Enable the Intel ICH SPI driver. This driver can be used to
7645636010SJagan Teki	  access the SPI NOR flash on platforms embedding this Intel
7745636010SJagan Teki	  ICH IP core.
7845636010SJagan Teki
793fda4ef3SStefan Roeseconfig MVEBU_A3700_SPI
803fda4ef3SStefan Roese	bool "Marvell Armada 3700 SPI driver"
813fda4ef3SStefan Roese	help
823fda4ef3SStefan Roese	  Enable the Marvell Armada 3700 SPI driver. This driver can be
833fda4ef3SStefan Roese	  used to access the SPI NOR flash on platforms embedding this
843fda4ef3SStefan Roese	  Marvell IP core.
853fda4ef3SStefan Roese
86e19b9004SPurna Chandra Mandalconfig PIC32_SPI
87e19b9004SPurna Chandra Mandal	bool "Microchip PIC32 SPI driver"
88e19b9004SPurna Chandra Mandal	depends on MACH_PIC32
89e19b9004SPurna Chandra Mandal	help
90e19b9004SPurna Chandra Mandal	  Enable the Microchip PIC32 SPI driver. This driver can be used
91e19b9004SPurna Chandra Mandal	  to access the SPI NOR flash, MMC-over-SPI on platforms based on
92e19b9004SPurna Chandra Mandal	  Microchip PIC32 family devices.
93e19b9004SPurna Chandra Mandal
941b2fd5bfSSimon Glassconfig ROCKCHIP_SPI
951b2fd5bfSSimon Glass	bool "Rockchip SPI driver"
961b2fd5bfSSimon Glass	help
971b2fd5bfSSimon Glass	  Enable the Rockchip SPI driver, used to access SPI NOR flash and
981b2fd5bfSSimon Glass	  other SPI peripherals (such as the Chrome OS EC) on Rockchip SoCs.
991b2fd5bfSSimon Glass	  This uses driver model and requires a device tree binding to
1001b2fd5bfSSimon Glass	  operate.
1011b2fd5bfSSimon Glass
102892cac72SSimon Glassconfig SANDBOX_SPI
103892cac72SSimon Glass	bool "Sandbox SPI driver"
104892cac72SSimon Glass	depends on SANDBOX && DM
105892cac72SSimon Glass	help
106892cac72SSimon Glass	  Enable SPI support for sandbox. This is an emulation of a real SPI
107892cac72SSimon Glass	  bus. Devices can be attached to the bus using the device tree
108892cac72SSimon Glass	  which specifies the driver to use. As an example, see this device
109892cac72SSimon Glass	  tree fragment from sandbox.dts. It shows that the SPI bus has a
110892cac72SSimon Glass	  single flash device on chip select 0 which is emulated by the driver
111892cac72SSimon Glass	  for "sandbox,spi-flash", which is in drivers/mtd/spi/sandbox.c.
112892cac72SSimon Glass
113892cac72SSimon Glass	  spi@0 {
114892cac72SSimon Glass		#address-cells = <1>;
115892cac72SSimon Glass		#size-cells = <0>;
116892cac72SSimon Glass		reg = <0>;
117892cac72SSimon Glass		compatible = "sandbox,spi";
118892cac72SSimon Glass		cs-gpios = <0>, <&gpio_a 0>;
119892cac72SSimon Glass		flash@0 {
120892cac72SSimon Glass			reg = <0>;
121892cac72SSimon Glass			compatible = "spansion,m25p16", "sandbox,spi-flash";
122892cac72SSimon Glass			spi-max-frequency = <40000000>;
123892cac72SSimon Glass			sandbox,filename = "spi.bin";
124892cac72SSimon Glass		};
125892cac72SSimon Glass	  };
12667d7a9d6SMarek Vasut
127d4363baaSMichael Kurzconfig STM32_QSPI
128d4363baaSMichael Kurz	bool "STM32F7 QSPI driver"
129d4363baaSMichael Kurz	depends on STM32F7
130d4363baaSMichael Kurz	help
131d4363baaSMichael Kurz	  Enable the STM32F7 Quad-SPI (QSPI) driver. This driver can be
132d4363baaSMichael Kurz	  used to access the SPI NOR flash chips on platforms embedding
133d4363baaSMichael Kurz	  this ST IP core.
134d4363baaSMichael Kurz
1355bf9a2d3SJagan Tekiconfig TEGRA114_SPI
1365bf9a2d3SJagan Teki	bool "nVidia Tegra114 SPI driver"
1375bf9a2d3SJagan Teki	help
1385bf9a2d3SJagan Teki	  Enable the nVidia Tegra114 SPI driver. This driver can be used to
1395bf9a2d3SJagan Teki	  access the SPI NOR flash on platforms embedding this nVidia Tegra114
1405bf9a2d3SJagan Teki	  IP core.
1415bf9a2d3SJagan Teki
1425bf9a2d3SJagan Teki	  This controller is different than the older SoCs SPI controller and
1435bf9a2d3SJagan Teki	  also register interface get changed with this controller.
1445bf9a2d3SJagan Teki
1452f3e6f8cSJagan Tekiconfig TEGRA20_SFLASH
1462f3e6f8cSJagan Teki	bool "nVidia Tegra20 Serial Flash controller driver"
1472f3e6f8cSJagan Teki	help
1482f3e6f8cSJagan Teki	  Enable the nVidia Tegra20 Serial Flash controller driver. This driver
1492f3e6f8cSJagan Teki	  can be used to access the SPI NOR flash on platforms embedding this
1502f3e6f8cSJagan Teki	  nVidia Tegra20 IP core.
1512f3e6f8cSJagan Teki
1524495830cSJagan Tekiconfig TEGRA20_SLINK
1534495830cSJagan Teki	bool "nVidia Tegra20/Tegra30 SLINK driver"
1544495830cSJagan Teki	help
1554495830cSJagan Teki	  Enable the nVidia Tegra20/Tegra30 SLINK driver. This driver can
1564495830cSJagan Teki	  be used to access the SPI NOR flash on platforms embedding this
1574495830cSJagan Teki	  nVidia Tegra20/Tegra30 IP cores.
1584495830cSJagan Teki
1594e675ff2STom Warrenconfig TEGRA210_QSPI
1604e675ff2STom Warren	bool "nVidia Tegra210 QSPI driver"
1614e675ff2STom Warren	help
1624e675ff2STom Warren	  Enable the Tegra Quad-SPI (QSPI) driver for T210. This driver
1634e675ff2STom Warren	  be used to access SPI chips on platforms embedding this
1644e675ff2STom Warren	  NVIDIA Tegra210 IP core.
1654e675ff2STom Warren
166075143d3SJagan Tekiconfig XILINX_SPI
167075143d3SJagan Teki	bool "Xilinx SPI driver"
168075143d3SJagan Teki	help
169075143d3SJagan Teki	  Enable the Xilinx SPI driver from the Xilinx EDK. This SPI
170075143d3SJagan Teki	  controller support 8 bit SPI transfers only, with or w/o FIFO.
171075143d3SJagan Teki	  For more info on Xilinx SPI Register Definitions and Overview
172075143d3SJagan Teki	  see driver file - drivers/spi/xilinx_spi.c
173075143d3SJagan Teki
174df30a425SJagan Tekiconfig ZYNQ_SPI
175df30a425SJagan Teki	bool "Zynq SPI driver"
1768e4920e5SMichal Simek	depends on ARCH_ZYNQ || ARCH_ZYNQMP
177df30a425SJagan Teki	help
178df30a425SJagan Teki	  Enable the Zynq SPI driver. This driver can be used to
179df30a425SJagan Teki	  access the SPI NOR flash on platforms embedding this Zynq
180df30a425SJagan Teki	  SPI IP core.
181de823053SJagan Teki
18278a025acSJagan Tekiconfig ZYNQ_QSPI
18378a025acSJagan Teki	bool "Zynq QSPI driver"
18478a025acSJagan Teki	depends on ARCH_ZYNQ
18578a025acSJagan Teki	help
18678a025acSJagan Teki	  Enable the Zynq Quad-SPI (QSPI) driver. This driver can be
18778a025acSJagan Teki	  used to access the SPI NOR flash on platforms embedding this
18878a025acSJagan Teki	  Zynq QSPI IP core. This IP is used to connect the flash in
18978a025acSJagan Teki	  4-bit qspi, 8-bit dual stacked and shared 4-bit dual parallel.
19078a025acSJagan Teki
19177b8d048SJagan Tekiconfig OMAP3_SPI
19277b8d048SJagan Teki	bool "McSPI driver for OMAP"
19377b8d048SJagan Teki	help
19477b8d048SJagan Teki	  SPI master controller for OMAP24XX and later Multichannel SPI
19577b8d048SJagan Teki	  (McSPI). This driver be used to access SPI chips on platforms
19677b8d048SJagan Teki	  embedding this OMAP3 McSPI IP core.
19777b8d048SJagan Teki
198e4976af8SJagan Tekiendif # if DM_SPI
199e4976af8SJagan Teki
200*41eb8ff5SPeng Fanconfig SOFT_SPI
201*41eb8ff5SPeng Fan	bool "Soft SPI driver"
202*41eb8ff5SPeng Fan	help
203*41eb8ff5SPeng Fan	 Enable Soft SPI driver. This driver is to use GPIO simulate
204*41eb8ff5SPeng Fan	 the SPI protocol.
205*41eb8ff5SPeng Fan
2063debffa7SJagan Tekiconfig FSL_ESPI
2073debffa7SJagan Teki	bool "Freescale eSPI driver"
2083debffa7SJagan Teki	help
2093debffa7SJagan Teki	  Enable the Freescale eSPI driver. This driver can be used to
2103debffa7SJagan Teki	  access the SPI interface and SPI NOR flash on platforms embedding
2113debffa7SJagan Teki	  this Freescale eSPI IP core.
2123debffa7SJagan Teki
21321b1dd18SJagan Tekiconfig FSL_QSPI
21421b1dd18SJagan Teki	bool "Freescale QSPI driver"
21521b1dd18SJagan Teki	help
21621b1dd18SJagan Teki	  Enable the Freescale Quad-SPI (QSPI) driver. This driver can be
21721b1dd18SJagan Teki	  used to access the SPI NOR flash on platforms embedding this
21821b1dd18SJagan Teki	  Freescale IP core.
21921b1dd18SJagan Teki
220e4976af8SJagan Tekiconfig TI_QSPI
221e4976af8SJagan Teki	bool "TI QSPI driver"
222e4976af8SJagan Teki	help
223e4976af8SJagan Teki	  Enable the TI Quad-SPI (QSPI) driver for DRA7xx and AM43xx evms.
224e4976af8SJagan Teki	  This driver support spi flash single, quad and memory reads.
225e4976af8SJagan Teki
226de823053SJagan Tekiendmenu # menu "SPI Support"
227