xref: /openbmc/u-boot/drivers/spi/Kconfig (revision 5ac07d2969e7f1ea2582f97ccacbe9ad9c9d62fc)
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
40daab59acSAndy Shevchenko	  many AT91 (ARM) chips. This driver can be used to access
41daab59acSAndy Shevchenko	  the SPI Flash, such as AT25DF321.
420eafd4b7SWenyou Yang
43*5ac07d29SÁlvaro Fernández Rojasconfig BCM63XX_SPI
44*5ac07d29SÁlvaro Fernández Rojas	bool "BCM6348 SPI driver"
45*5ac07d29SÁlvaro Fernández Rojas	depends on ARCH_BMIPS
46*5ac07d29SÁlvaro Fernández Rojas	help
47*5ac07d29SÁlvaro Fernández Rojas	  Enable the BCM6348/BCM6358 SPI driver. This driver can be used to
48*5ac07d29SÁlvaro Fernández Rojas	  access the SPI NOR flash on platforms embedding these Broadcom
49*5ac07d29SÁlvaro Fernández Rojas	  SPI cores.
50*5ac07d29SÁlvaro Fernández Rojas
51e4976af8SJagan Tekiconfig CADENCE_QSPI
52e4976af8SJagan Teki	bool "Cadence QSPI driver"
53e4976af8SJagan Teki	help
54e4976af8SJagan Teki	  Enable the Cadence Quad-SPI (QSPI) driver. This driver can be
55e4976af8SJagan Teki	  used to access the SPI NOR flash on platforms embedding this
56e4976af8SJagan Teki	  Cadence IP core.
57e4976af8SJagan Teki
58e4976af8SJagan Tekiconfig DESIGNWARE_SPI
59e4976af8SJagan Teki	bool "Designware SPI driver"
60e4976af8SJagan Teki	help
61e4976af8SJagan Teki	  Enable the Designware SPI driver. This driver can be used to
62e4976af8SJagan Teki	  access the SPI NOR flash on platforms embedding this Designware
63e4976af8SJagan Teki	  IP core.
64e4976af8SJagan Teki
65c354eee8SJagan Tekiconfig EXYNOS_SPI
66c354eee8SJagan Teki	bool "Samsung Exynos SPI driver"
67c354eee8SJagan Teki	help
68c354eee8SJagan Teki	  Enable the Samsung Exynos SPI driver. This driver can be used to
69c354eee8SJagan Teki	  access the SPI NOR flash on platforms embedding this Samsung
70c354eee8SJagan Teki	  Exynos IP core.
71c354eee8SJagan Teki
7294ea308dSJagan Tekiconfig FSL_DSPI
7394ea308dSJagan Teki	bool "Freescale DSPI driver"
7494ea308dSJagan Teki	help
7594ea308dSJagan Teki	  Enable the Freescale DSPI driver. This driver can be used to
7694ea308dSJagan Teki	  access the SPI NOR flash and SPI Data flash on platforms embedding
7794ea308dSJagan Teki	  this Freescale DSPI IP core. LS102xA and Colibri VF50/VF61 platforms
7894ea308dSJagan Teki	  use this driver.
7994ea308dSJagan Teki
8045636010SJagan Tekiconfig ICH_SPI
8145636010SJagan Teki	bool "Intel ICH SPI driver"
8245636010SJagan Teki	help
8345636010SJagan Teki	  Enable the Intel ICH SPI driver. This driver can be used to
8445636010SJagan Teki	  access the SPI NOR flash on platforms embedding this Intel
8545636010SJagan Teki	  ICH IP core.
8645636010SJagan Teki
873fda4ef3SStefan Roeseconfig MVEBU_A3700_SPI
883fda4ef3SStefan Roese	bool "Marvell Armada 3700 SPI driver"
893fda4ef3SStefan Roese	help
903fda4ef3SStefan Roese	  Enable the Marvell Armada 3700 SPI driver. This driver can be
913fda4ef3SStefan Roese	  used to access the SPI NOR flash on platforms embedding this
923fda4ef3SStefan Roese	  Marvell IP core.
933fda4ef3SStefan Roese
94e19b9004SPurna Chandra Mandalconfig PIC32_SPI
95e19b9004SPurna Chandra Mandal	bool "Microchip PIC32 SPI driver"
96e19b9004SPurna Chandra Mandal	depends on MACH_PIC32
97e19b9004SPurna Chandra Mandal	help
98e19b9004SPurna Chandra Mandal	  Enable the Microchip PIC32 SPI driver. This driver can be used
99e19b9004SPurna Chandra Mandal	  to access the SPI NOR flash, MMC-over-SPI on platforms based on
100e19b9004SPurna Chandra Mandal	  Microchip PIC32 family devices.
101e19b9004SPurna Chandra Mandal
1021b2fd5bfSSimon Glassconfig ROCKCHIP_SPI
1031b2fd5bfSSimon Glass	bool "Rockchip SPI driver"
1041b2fd5bfSSimon Glass	help
1051b2fd5bfSSimon Glass	  Enable the Rockchip SPI driver, used to access SPI NOR flash and
1061b2fd5bfSSimon Glass	  other SPI peripherals (such as the Chrome OS EC) on Rockchip SoCs.
1071b2fd5bfSSimon Glass	  This uses driver model and requires a device tree binding to
1081b2fd5bfSSimon Glass	  operate.
1091b2fd5bfSSimon Glass
110892cac72SSimon Glassconfig SANDBOX_SPI
111892cac72SSimon Glass	bool "Sandbox SPI driver"
112892cac72SSimon Glass	depends on SANDBOX && DM
113892cac72SSimon Glass	help
114892cac72SSimon Glass	  Enable SPI support for sandbox. This is an emulation of a real SPI
115892cac72SSimon Glass	  bus. Devices can be attached to the bus using the device tree
116892cac72SSimon Glass	  which specifies the driver to use. As an example, see this device
117892cac72SSimon Glass	  tree fragment from sandbox.dts. It shows that the SPI bus has a
118892cac72SSimon Glass	  single flash device on chip select 0 which is emulated by the driver
119892cac72SSimon Glass	  for "sandbox,spi-flash", which is in drivers/mtd/spi/sandbox.c.
120892cac72SSimon Glass
121892cac72SSimon Glass	  spi@0 {
122892cac72SSimon Glass		#address-cells = <1>;
123892cac72SSimon Glass		#size-cells = <0>;
124892cac72SSimon Glass		reg = <0>;
125892cac72SSimon Glass		compatible = "sandbox,spi";
126892cac72SSimon Glass		cs-gpios = <0>, <&gpio_a 0>;
127892cac72SSimon Glass		flash@0 {
128892cac72SSimon Glass			reg = <0>;
129892cac72SSimon Glass			compatible = "spansion,m25p16", "sandbox,spi-flash";
130892cac72SSimon Glass			spi-max-frequency = <40000000>;
131892cac72SSimon Glass			sandbox,filename = "spi.bin";
132892cac72SSimon Glass		};
133892cac72SSimon Glass	  };
13467d7a9d6SMarek Vasut
135d4363baaSMichael Kurzconfig STM32_QSPI
136d4363baaSMichael Kurz	bool "STM32F7 QSPI driver"
137d4363baaSMichael Kurz	depends on STM32F7
138d4363baaSMichael Kurz	help
139d4363baaSMichael Kurz	  Enable the STM32F7 Quad-SPI (QSPI) driver. This driver can be
140d4363baaSMichael Kurz	  used to access the SPI NOR flash chips on platforms embedding
141d4363baaSMichael Kurz	  this ST IP core.
142d4363baaSMichael Kurz
1435bf9a2d3SJagan Tekiconfig TEGRA114_SPI
1445bf9a2d3SJagan Teki	bool "nVidia Tegra114 SPI driver"
1455bf9a2d3SJagan Teki	help
1465bf9a2d3SJagan Teki	  Enable the nVidia Tegra114 SPI driver. This driver can be used to
1475bf9a2d3SJagan Teki	  access the SPI NOR flash on platforms embedding this nVidia Tegra114
1485bf9a2d3SJagan Teki	  IP core.
1495bf9a2d3SJagan Teki
1505bf9a2d3SJagan Teki	  This controller is different than the older SoCs SPI controller and
1515bf9a2d3SJagan Teki	  also register interface get changed with this controller.
1525bf9a2d3SJagan Teki
1532f3e6f8cSJagan Tekiconfig TEGRA20_SFLASH
1542f3e6f8cSJagan Teki	bool "nVidia Tegra20 Serial Flash controller driver"
1552f3e6f8cSJagan Teki	help
1562f3e6f8cSJagan Teki	  Enable the nVidia Tegra20 Serial Flash controller driver. This driver
1572f3e6f8cSJagan Teki	  can be used to access the SPI NOR flash on platforms embedding this
1582f3e6f8cSJagan Teki	  nVidia Tegra20 IP core.
1592f3e6f8cSJagan Teki
1604495830cSJagan Tekiconfig TEGRA20_SLINK
1614495830cSJagan Teki	bool "nVidia Tegra20/Tegra30 SLINK driver"
1624495830cSJagan Teki	help
1634495830cSJagan Teki	  Enable the nVidia Tegra20/Tegra30 SLINK driver. This driver can
1644495830cSJagan Teki	  be used to access the SPI NOR flash on platforms embedding this
1654495830cSJagan Teki	  nVidia Tegra20/Tegra30 IP cores.
1664495830cSJagan Teki
1674e675ff2STom Warrenconfig TEGRA210_QSPI
1684e675ff2STom Warren	bool "nVidia Tegra210 QSPI driver"
1694e675ff2STom Warren	help
1704e675ff2STom Warren	  Enable the Tegra Quad-SPI (QSPI) driver for T210. This driver
1714e675ff2STom Warren	  be used to access SPI chips on platforms embedding this
1724e675ff2STom Warren	  NVIDIA Tegra210 IP core.
1734e675ff2STom Warren
174075143d3SJagan Tekiconfig XILINX_SPI
175075143d3SJagan Teki	bool "Xilinx SPI driver"
176075143d3SJagan Teki	help
177075143d3SJagan Teki	  Enable the Xilinx SPI driver from the Xilinx EDK. This SPI
178075143d3SJagan Teki	  controller support 8 bit SPI transfers only, with or w/o FIFO.
179075143d3SJagan Teki	  For more info on Xilinx SPI Register Definitions and Overview
180075143d3SJagan Teki	  see driver file - drivers/spi/xilinx_spi.c
181075143d3SJagan Teki
182df30a425SJagan Tekiconfig ZYNQ_SPI
183df30a425SJagan Teki	bool "Zynq SPI driver"
1848e4920e5SMichal Simek	depends on ARCH_ZYNQ || ARCH_ZYNQMP
185df30a425SJagan Teki	help
186df30a425SJagan Teki	  Enable the Zynq SPI driver. This driver can be used to
187df30a425SJagan Teki	  access the SPI NOR flash on platforms embedding this Zynq
188df30a425SJagan Teki	  SPI IP core.
189de823053SJagan Teki
19078a025acSJagan Tekiconfig ZYNQ_QSPI
19178a025acSJagan Teki	bool "Zynq QSPI driver"
19278a025acSJagan Teki	depends on ARCH_ZYNQ
19378a025acSJagan Teki	help
19478a025acSJagan Teki	  Enable the Zynq Quad-SPI (QSPI) driver. This driver can be
19578a025acSJagan Teki	  used to access the SPI NOR flash on platforms embedding this
19678a025acSJagan Teki	  Zynq QSPI IP core. This IP is used to connect the flash in
19778a025acSJagan Teki	  4-bit qspi, 8-bit dual stacked and shared 4-bit dual parallel.
19878a025acSJagan Teki
199e4976af8SJagan Tekiendif # if DM_SPI
200e4976af8SJagan Teki
20141eb8ff5SPeng Fanconfig SOFT_SPI
20241eb8ff5SPeng Fan	bool "Soft SPI driver"
20341eb8ff5SPeng Fan	help
20441eb8ff5SPeng Fan	 Enable Soft SPI driver. This driver is to use GPIO simulate
20541eb8ff5SPeng Fan	 the SPI protocol.
20641eb8ff5SPeng Fan
2073debffa7SJagan Tekiconfig FSL_ESPI
2083debffa7SJagan Teki	bool "Freescale eSPI driver"
2093debffa7SJagan Teki	help
2103debffa7SJagan Teki	  Enable the Freescale eSPI driver. This driver can be used to
2113debffa7SJagan Teki	  access the SPI interface and SPI NOR flash on platforms embedding
2123debffa7SJagan Teki	  this Freescale eSPI IP core.
2133debffa7SJagan Teki
21421b1dd18SJagan Tekiconfig FSL_QSPI
21521b1dd18SJagan Teki	bool "Freescale QSPI driver"
21621b1dd18SJagan Teki	help
21721b1dd18SJagan Teki	  Enable the Freescale Quad-SPI (QSPI) driver. This driver can be
21821b1dd18SJagan Teki	  used to access the SPI NOR flash on platforms embedding this
21921b1dd18SJagan Teki	  Freescale IP core.
22021b1dd18SJagan Teki
22141bbb8b3SRick Chenconfig ATCSPI200_SPI
22241bbb8b3SRick Chen	bool "Andestech ATCSPI200 SPI driver"
2237155cd2eSrick	help
22441bbb8b3SRick Chen	  Enable the Andestech ATCSPI200 SPI driver. This driver can be
22541bbb8b3SRick Chen	  used to access the SPI flash on AE3XX and AE250 platforms embedding
22641bbb8b3SRick Chen	  this Andestech IP core.
2277155cd2eSrick
228e4976af8SJagan Tekiconfig TI_QSPI
229e4976af8SJagan Teki	bool "TI QSPI driver"
230e4976af8SJagan Teki	help
231e4976af8SJagan Teki	  Enable the TI Quad-SPI (QSPI) driver for DRA7xx and AM43xx evms.
232e4976af8SJagan Teki	  This driver support spi flash single, quad and memory reads.
233e4976af8SJagan Teki
234f88c431bSChristophe Leroyconfig MPC8XX_SPI
235f88c431bSChristophe Leroy	bool "MPC8XX SPI Driver"
236f88c431bSChristophe Leroy	depends on 8xx
237f88c431bSChristophe Leroy	help
238f88c431bSChristophe Leroy	  Enable support for SPI on MPC8XX
239f88c431bSChristophe Leroy
240a41e3e14SAdam Fordconfig OMAP3_SPI
241a41e3e14SAdam Ford	bool "McSPI driver for OMAP"
242a41e3e14SAdam Ford	help
243a41e3e14SAdam Ford	  SPI master controller for OMAP24XX and later Multichannel SPI
244a41e3e14SAdam Ford	  (McSPI). This driver be used to access SPI chips on platforms
245a41e3e14SAdam Ford	  embedding this OMAP3 McSPI IP core.
246a41e3e14SAdam Ford
247de823053SJagan Tekiendmenu # menu "SPI Support"
248