xref: /openbmc/u-boot/drivers/spi/Kconfig (revision 1b2fd5bf4eedfaf5af9d8fc219781fb521d12c7a)
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
18e4976af8SJagan Tekiconfig CADENCE_QSPI
19e4976af8SJagan Teki	bool "Cadence QSPI driver"
20e4976af8SJagan Teki	help
21e4976af8SJagan Teki	  Enable the Cadence Quad-SPI (QSPI) driver. This driver can be
22e4976af8SJagan Teki	  used to access the SPI NOR flash on platforms embedding this
23e4976af8SJagan Teki	  Cadence IP core.
24e4976af8SJagan Teki
25e4976af8SJagan Tekiconfig DESIGNWARE_SPI
26e4976af8SJagan Teki	bool "Designware SPI driver"
27e4976af8SJagan Teki	help
28e4976af8SJagan Teki	  Enable the Designware SPI driver. This driver can be used to
29e4976af8SJagan Teki	  access the SPI NOR flash on platforms embedding this Designware
30e4976af8SJagan Teki	  IP core.
31e4976af8SJagan Teki
32c354eee8SJagan Tekiconfig EXYNOS_SPI
33c354eee8SJagan Teki	bool "Samsung Exynos SPI driver"
34c354eee8SJagan Teki	help
35c354eee8SJagan Teki	  Enable the Samsung Exynos SPI driver. This driver can be used to
36c354eee8SJagan Teki	  access the SPI NOR flash on platforms embedding this Samsung
37c354eee8SJagan Teki	  Exynos IP core.
38c354eee8SJagan Teki
3994ea308dSJagan Tekiconfig FSL_DSPI
4094ea308dSJagan Teki	bool "Freescale DSPI driver"
4194ea308dSJagan Teki	help
4294ea308dSJagan Teki	  Enable the Freescale DSPI driver. This driver can be used to
4394ea308dSJagan Teki	  access the SPI NOR flash and SPI Data flash on platforms embedding
4494ea308dSJagan Teki	  this Freescale DSPI IP core. LS102xA and Colibri VF50/VF61 platforms
4594ea308dSJagan Teki	  use this driver.
4694ea308dSJagan Teki
4791c22d04SJagan Tekiconfig FSL_QSPI
4891c22d04SJagan Teki	bool "Freescale QSPI driver"
4991c22d04SJagan Teki	help
5091c22d04SJagan Teki	  Enable the Freescale Quad-SPI (QSPI) driver. This driver can be
5191c22d04SJagan Teki	  used to access the SPI NOR flash on platforms embedding this
5291c22d04SJagan Teki	  Freescale IP core.
5391c22d04SJagan Teki
5445636010SJagan Tekiconfig ICH_SPI
5545636010SJagan Teki	bool "Intel ICH SPI driver"
5645636010SJagan Teki	help
5745636010SJagan Teki	  Enable the Intel ICH SPI driver. This driver can be used to
5845636010SJagan Teki	  access the SPI NOR flash on platforms embedding this Intel
5945636010SJagan Teki	  ICH IP core.
6045636010SJagan Teki
61*1b2fd5bfSSimon Glassconfig ROCKCHIP_SPI
62*1b2fd5bfSSimon Glass	bool "Rockchip SPI driver"
63*1b2fd5bfSSimon Glass	help
64*1b2fd5bfSSimon Glass	  Enable the Rockchip SPI driver, used to access SPI NOR flash and
65*1b2fd5bfSSimon Glass	  other SPI peripherals (such as the Chrome OS EC) on Rockchip SoCs.
66*1b2fd5bfSSimon Glass	  This uses driver model and requires a device tree binding to
67*1b2fd5bfSSimon Glass	  operate.
68*1b2fd5bfSSimon Glass
69892cac72SSimon Glassconfig SANDBOX_SPI
70892cac72SSimon Glass	bool "Sandbox SPI driver"
71892cac72SSimon Glass	depends on SANDBOX && DM
72892cac72SSimon Glass	help
73892cac72SSimon Glass	  Enable SPI support for sandbox. This is an emulation of a real SPI
74892cac72SSimon Glass	  bus. Devices can be attached to the bus using the device tree
75892cac72SSimon Glass	  which specifies the driver to use. As an example, see this device
76892cac72SSimon Glass	  tree fragment from sandbox.dts. It shows that the SPI bus has a
77892cac72SSimon Glass	  single flash device on chip select 0 which is emulated by the driver
78892cac72SSimon Glass	  for "sandbox,spi-flash", which is in drivers/mtd/spi/sandbox.c.
79892cac72SSimon Glass
80892cac72SSimon Glass	  spi@0 {
81892cac72SSimon Glass		#address-cells = <1>;
82892cac72SSimon Glass		#size-cells = <0>;
83892cac72SSimon Glass		reg = <0>;
84892cac72SSimon Glass		compatible = "sandbox,spi";
85892cac72SSimon Glass		cs-gpios = <0>, <&gpio_a 0>;
86892cac72SSimon Glass		flash@0 {
87892cac72SSimon Glass			reg = <0>;
88892cac72SSimon Glass			compatible = "spansion,m25p16", "sandbox,spi-flash";
89892cac72SSimon Glass			spi-max-frequency = <40000000>;
90892cac72SSimon Glass			sandbox,filename = "spi.bin";
91892cac72SSimon Glass		};
92892cac72SSimon Glass	  };
9367d7a9d6SMarek Vasut
945bf9a2d3SJagan Tekiconfig TEGRA114_SPI
955bf9a2d3SJagan Teki	bool "nVidia Tegra114 SPI driver"
965bf9a2d3SJagan Teki	help
975bf9a2d3SJagan Teki	  Enable the nVidia Tegra114 SPI driver. This driver can be used to
985bf9a2d3SJagan Teki	  access the SPI NOR flash on platforms embedding this nVidia Tegra114
995bf9a2d3SJagan Teki	  IP core.
1005bf9a2d3SJagan Teki
1015bf9a2d3SJagan Teki	  This controller is different than the older SoCs SPI controller and
1025bf9a2d3SJagan Teki	  also register interface get changed with this controller.
1035bf9a2d3SJagan Teki
1042f3e6f8cSJagan Tekiconfig TEGRA20_SFLASH
1052f3e6f8cSJagan Teki	bool "nVidia Tegra20 Serial Flash controller driver"
1062f3e6f8cSJagan Teki	help
1072f3e6f8cSJagan Teki	  Enable the nVidia Tegra20 Serial Flash controller driver. This driver
1082f3e6f8cSJagan Teki	  can be used to access the SPI NOR flash on platforms embedding this
1092f3e6f8cSJagan Teki	  nVidia Tegra20 IP core.
1102f3e6f8cSJagan Teki
1114495830cSJagan Tekiconfig TEGRA20_SLINK
1124495830cSJagan Teki	bool "nVidia Tegra20/Tegra30 SLINK driver"
1134495830cSJagan Teki	help
1144495830cSJagan Teki	  Enable the nVidia Tegra20/Tegra30 SLINK driver. This driver can
1154495830cSJagan Teki	  be used to access the SPI NOR flash on platforms embedding this
1164495830cSJagan Teki	  nVidia Tegra20/Tegra30 IP cores.
1174495830cSJagan Teki
118075143d3SJagan Tekiconfig XILINX_SPI
119075143d3SJagan Teki	bool "Xilinx SPI driver"
120075143d3SJagan Teki	help
121075143d3SJagan Teki	  Enable the Xilinx SPI driver from the Xilinx EDK. This SPI
122075143d3SJagan Teki	  controller support 8 bit SPI transfers only, with or w/o FIFO.
123075143d3SJagan Teki	  For more info on Xilinx SPI Register Definitions and Overview
124075143d3SJagan Teki	  see driver file - drivers/spi/xilinx_spi.c
125075143d3SJagan Teki
126df30a425SJagan Tekiconfig ZYNQ_SPI
127df30a425SJagan Teki	bool "Zynq SPI driver"
128e4976af8SJagan Teki	depends on ARCH_ZYNQ || TARGET_XILINX_ZYNQMP
129df30a425SJagan Teki	help
130df30a425SJagan Teki	  Enable the Zynq SPI driver. This driver can be used to
131df30a425SJagan Teki	  access the SPI NOR flash on platforms embedding this Zynq
132df30a425SJagan Teki	  SPI IP core.
133de823053SJagan Teki
134e4976af8SJagan Tekiendif # if DM_SPI
135e4976af8SJagan Teki
1363debffa7SJagan Tekiconfig FSL_ESPI
1373debffa7SJagan Teki	bool "Freescale eSPI driver"
1383debffa7SJagan Teki	help
1393debffa7SJagan Teki	  Enable the Freescale eSPI driver. This driver can be used to
1403debffa7SJagan Teki	  access the SPI interface and SPI NOR flash on platforms embedding
1413debffa7SJagan Teki	  this Freescale eSPI IP core.
1423debffa7SJagan Teki
143e4976af8SJagan Tekiconfig TI_QSPI
144e4976af8SJagan Teki	bool "TI QSPI driver"
145e4976af8SJagan Teki	help
146e4976af8SJagan Teki	  Enable the TI Quad-SPI (QSPI) driver for DRA7xx and AM43xx evms.
147e4976af8SJagan Teki	  This driver support spi flash single, quad and memory reads.
148e4976af8SJagan Teki
149de823053SJagan Tekiendmenu # menu "SPI Support"
150