xref: /openbmc/u-boot/drivers/spi/Kconfig (revision 3fda4ef39557c070558d51c4ea4562c370c3f96d)
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
35e4976af8SJagan Tekiconfig CADENCE_QSPI
36e4976af8SJagan Teki	bool "Cadence QSPI driver"
37e4976af8SJagan Teki	help
38e4976af8SJagan Teki	  Enable the Cadence Quad-SPI (QSPI) driver. This driver can be
39e4976af8SJagan Teki	  used to access the SPI NOR flash on platforms embedding this
40e4976af8SJagan Teki	  Cadence IP core.
41e4976af8SJagan Teki
42e4976af8SJagan Tekiconfig DESIGNWARE_SPI
43e4976af8SJagan Teki	bool "Designware SPI driver"
44e4976af8SJagan Teki	help
45e4976af8SJagan Teki	  Enable the Designware SPI driver. This driver can be used to
46e4976af8SJagan Teki	  access the SPI NOR flash on platforms embedding this Designware
47e4976af8SJagan Teki	  IP core.
48e4976af8SJagan Teki
49c354eee8SJagan Tekiconfig EXYNOS_SPI
50c354eee8SJagan Teki	bool "Samsung Exynos SPI driver"
51c354eee8SJagan Teki	help
52c354eee8SJagan Teki	  Enable the Samsung Exynos SPI driver. This driver can be used to
53c354eee8SJagan Teki	  access the SPI NOR flash on platforms embedding this Samsung
54c354eee8SJagan Teki	  Exynos IP core.
55c354eee8SJagan Teki
5694ea308dSJagan Tekiconfig FSL_DSPI
5794ea308dSJagan Teki	bool "Freescale DSPI driver"
5894ea308dSJagan Teki	help
5994ea308dSJagan Teki	  Enable the Freescale DSPI driver. This driver can be used to
6094ea308dSJagan Teki	  access the SPI NOR flash and SPI Data flash on platforms embedding
6194ea308dSJagan Teki	  this Freescale DSPI IP core. LS102xA and Colibri VF50/VF61 platforms
6294ea308dSJagan Teki	  use this driver.
6394ea308dSJagan Teki
6445636010SJagan Tekiconfig ICH_SPI
6545636010SJagan Teki	bool "Intel ICH SPI driver"
6645636010SJagan Teki	help
6745636010SJagan Teki	  Enable the Intel ICH SPI driver. This driver can be used to
6845636010SJagan Teki	  access the SPI NOR flash on platforms embedding this Intel
6945636010SJagan Teki	  ICH IP core.
7045636010SJagan Teki
71*3fda4ef3SStefan Roeseconfig MVEBU_A3700_SPI
72*3fda4ef3SStefan Roese	bool "Marvell Armada 3700 SPI driver"
73*3fda4ef3SStefan Roese	help
74*3fda4ef3SStefan Roese	  Enable the Marvell Armada 3700 SPI driver. This driver can be
75*3fda4ef3SStefan Roese	  used to access the SPI NOR flash on platforms embedding this
76*3fda4ef3SStefan Roese	  Marvell IP core.
77*3fda4ef3SStefan Roese
78e19b9004SPurna Chandra Mandalconfig PIC32_SPI
79e19b9004SPurna Chandra Mandal	bool "Microchip PIC32 SPI driver"
80e19b9004SPurna Chandra Mandal	depends on MACH_PIC32
81e19b9004SPurna Chandra Mandal	help
82e19b9004SPurna Chandra Mandal	  Enable the Microchip PIC32 SPI driver. This driver can be used
83e19b9004SPurna Chandra Mandal	  to access the SPI NOR flash, MMC-over-SPI on platforms based on
84e19b9004SPurna Chandra Mandal	  Microchip PIC32 family devices.
85e19b9004SPurna Chandra Mandal
861b2fd5bfSSimon Glassconfig ROCKCHIP_SPI
871b2fd5bfSSimon Glass	bool "Rockchip SPI driver"
881b2fd5bfSSimon Glass	help
891b2fd5bfSSimon Glass	  Enable the Rockchip SPI driver, used to access SPI NOR flash and
901b2fd5bfSSimon Glass	  other SPI peripherals (such as the Chrome OS EC) on Rockchip SoCs.
911b2fd5bfSSimon Glass	  This uses driver model and requires a device tree binding to
921b2fd5bfSSimon Glass	  operate.
931b2fd5bfSSimon Glass
94892cac72SSimon Glassconfig SANDBOX_SPI
95892cac72SSimon Glass	bool "Sandbox SPI driver"
96892cac72SSimon Glass	depends on SANDBOX && DM
97892cac72SSimon Glass	help
98892cac72SSimon Glass	  Enable SPI support for sandbox. This is an emulation of a real SPI
99892cac72SSimon Glass	  bus. Devices can be attached to the bus using the device tree
100892cac72SSimon Glass	  which specifies the driver to use. As an example, see this device
101892cac72SSimon Glass	  tree fragment from sandbox.dts. It shows that the SPI bus has a
102892cac72SSimon Glass	  single flash device on chip select 0 which is emulated by the driver
103892cac72SSimon Glass	  for "sandbox,spi-flash", which is in drivers/mtd/spi/sandbox.c.
104892cac72SSimon Glass
105892cac72SSimon Glass	  spi@0 {
106892cac72SSimon Glass		#address-cells = <1>;
107892cac72SSimon Glass		#size-cells = <0>;
108892cac72SSimon Glass		reg = <0>;
109892cac72SSimon Glass		compatible = "sandbox,spi";
110892cac72SSimon Glass		cs-gpios = <0>, <&gpio_a 0>;
111892cac72SSimon Glass		flash@0 {
112892cac72SSimon Glass			reg = <0>;
113892cac72SSimon Glass			compatible = "spansion,m25p16", "sandbox,spi-flash";
114892cac72SSimon Glass			spi-max-frequency = <40000000>;
115892cac72SSimon Glass			sandbox,filename = "spi.bin";
116892cac72SSimon Glass		};
117892cac72SSimon Glass	  };
11867d7a9d6SMarek Vasut
1195bf9a2d3SJagan Tekiconfig TEGRA114_SPI
1205bf9a2d3SJagan Teki	bool "nVidia Tegra114 SPI driver"
1215bf9a2d3SJagan Teki	help
1225bf9a2d3SJagan Teki	  Enable the nVidia Tegra114 SPI driver. This driver can be used to
1235bf9a2d3SJagan Teki	  access the SPI NOR flash on platforms embedding this nVidia Tegra114
1245bf9a2d3SJagan Teki	  IP core.
1255bf9a2d3SJagan Teki
1265bf9a2d3SJagan Teki	  This controller is different than the older SoCs SPI controller and
1275bf9a2d3SJagan Teki	  also register interface get changed with this controller.
1285bf9a2d3SJagan Teki
1292f3e6f8cSJagan Tekiconfig TEGRA20_SFLASH
1302f3e6f8cSJagan Teki	bool "nVidia Tegra20 Serial Flash controller driver"
1312f3e6f8cSJagan Teki	help
1322f3e6f8cSJagan Teki	  Enable the nVidia Tegra20 Serial Flash controller driver. This driver
1332f3e6f8cSJagan Teki	  can be used to access the SPI NOR flash on platforms embedding this
1342f3e6f8cSJagan Teki	  nVidia Tegra20 IP core.
1352f3e6f8cSJagan Teki
1364495830cSJagan Tekiconfig TEGRA20_SLINK
1374495830cSJagan Teki	bool "nVidia Tegra20/Tegra30 SLINK driver"
1384495830cSJagan Teki	help
1394495830cSJagan Teki	  Enable the nVidia Tegra20/Tegra30 SLINK driver. This driver can
1404495830cSJagan Teki	  be used to access the SPI NOR flash on platforms embedding this
1414495830cSJagan Teki	  nVidia Tegra20/Tegra30 IP cores.
1424495830cSJagan Teki
1434e675ff2STom Warrenconfig TEGRA210_QSPI
1444e675ff2STom Warren	bool "nVidia Tegra210 QSPI driver"
1454e675ff2STom Warren	help
1464e675ff2STom Warren	  Enable the Tegra Quad-SPI (QSPI) driver for T210. This driver
1474e675ff2STom Warren	  be used to access SPI chips on platforms embedding this
1484e675ff2STom Warren	  NVIDIA Tegra210 IP core.
1494e675ff2STom Warren
150075143d3SJagan Tekiconfig XILINX_SPI
151075143d3SJagan Teki	bool "Xilinx SPI driver"
152075143d3SJagan Teki	help
153075143d3SJagan Teki	  Enable the Xilinx SPI driver from the Xilinx EDK. This SPI
154075143d3SJagan Teki	  controller support 8 bit SPI transfers only, with or w/o FIFO.
155075143d3SJagan Teki	  For more info on Xilinx SPI Register Definitions and Overview
156075143d3SJagan Teki	  see driver file - drivers/spi/xilinx_spi.c
157075143d3SJagan Teki
158df30a425SJagan Tekiconfig ZYNQ_SPI
159df30a425SJagan Teki	bool "Zynq SPI driver"
1608e4920e5SMichal Simek	depends on ARCH_ZYNQ || ARCH_ZYNQMP
161df30a425SJagan Teki	help
162df30a425SJagan Teki	  Enable the Zynq SPI driver. This driver can be used to
163df30a425SJagan Teki	  access the SPI NOR flash on platforms embedding this Zynq
164df30a425SJagan Teki	  SPI IP core.
165de823053SJagan Teki
16678a025acSJagan Tekiconfig ZYNQ_QSPI
16778a025acSJagan Teki	bool "Zynq QSPI driver"
16878a025acSJagan Teki	depends on ARCH_ZYNQ
16978a025acSJagan Teki	help
17078a025acSJagan Teki	  Enable the Zynq Quad-SPI (QSPI) driver. This driver can be
17178a025acSJagan Teki	  used to access the SPI NOR flash on platforms embedding this
17278a025acSJagan Teki	  Zynq QSPI IP core. This IP is used to connect the flash in
17378a025acSJagan Teki	  4-bit qspi, 8-bit dual stacked and shared 4-bit dual parallel.
17478a025acSJagan Teki
17577b8d048SJagan Tekiconfig OMAP3_SPI
17677b8d048SJagan Teki	bool "McSPI driver for OMAP"
17777b8d048SJagan Teki	help
17877b8d048SJagan Teki	  SPI master controller for OMAP24XX and later Multichannel SPI
17977b8d048SJagan Teki	  (McSPI). This driver be used to access SPI chips on platforms
18077b8d048SJagan Teki	  embedding this OMAP3 McSPI IP core.
18177b8d048SJagan Teki
182e4976af8SJagan Tekiendif # if DM_SPI
183e4976af8SJagan Teki
1843debffa7SJagan Tekiconfig FSL_ESPI
1853debffa7SJagan Teki	bool "Freescale eSPI driver"
1863debffa7SJagan Teki	help
1873debffa7SJagan Teki	  Enable the Freescale eSPI driver. This driver can be used to
1883debffa7SJagan Teki	  access the SPI interface and SPI NOR flash on platforms embedding
1893debffa7SJagan Teki	  this Freescale eSPI IP core.
1903debffa7SJagan Teki
19121b1dd18SJagan Tekiconfig FSL_QSPI
19221b1dd18SJagan Teki	bool "Freescale QSPI driver"
19321b1dd18SJagan Teki	help
19421b1dd18SJagan Teki	  Enable the Freescale Quad-SPI (QSPI) driver. This driver can be
19521b1dd18SJagan Teki	  used to access the SPI NOR flash on platforms embedding this
19621b1dd18SJagan Teki	  Freescale IP core.
19721b1dd18SJagan Teki
198e4976af8SJagan Tekiconfig TI_QSPI
199e4976af8SJagan Teki	bool "TI QSPI driver"
200e4976af8SJagan Teki	help
201e4976af8SJagan Teki	  Enable the TI Quad-SPI (QSPI) driver for DRA7xx and AM43xx evms.
202e4976af8SJagan Teki	  This driver support spi flash single, quad and memory reads.
203e4976af8SJagan Teki
204de823053SJagan Tekiendmenu # menu "SPI Support"
205