xref: /openbmc/u-boot/drivers/spi/Kconfig (revision 4a942f49b891872727aa0bdba58e2ca513fc455c)
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
4329cc4368SÁlvaro Fernández Rojasconfig BCM63XX_HSSPI
4429cc4368SÁlvaro Fernández Rojas	bool "BCM63XX HSSPI driver"
4529cc4368SÁlvaro Fernández Rojas	depends on ARCH_BMIPS
4629cc4368SÁlvaro Fernández Rojas	help
4729cc4368SÁlvaro Fernández Rojas	  Enable the BCM6328 HSSPI driver. This driver can be used to
4829cc4368SÁlvaro Fernández Rojas	  access the SPI NOR flash on platforms embedding this Broadcom
4929cc4368SÁlvaro Fernández Rojas	  SPI core.
5029cc4368SÁlvaro Fernández Rojas
515ac07d29SÁlvaro Fernández Rojasconfig BCM63XX_SPI
525ac07d29SÁlvaro Fernández Rojas	bool "BCM6348 SPI driver"
535ac07d29SÁlvaro Fernández Rojas	depends on ARCH_BMIPS
545ac07d29SÁlvaro Fernández Rojas	help
555ac07d29SÁlvaro Fernández Rojas	  Enable the BCM6348/BCM6358 SPI driver. This driver can be used to
565ac07d29SÁlvaro Fernández Rojas	  access the SPI NOR flash on platforms embedding these Broadcom
575ac07d29SÁlvaro Fernández Rojas	  SPI cores.
585ac07d29SÁlvaro Fernández Rojas
59e4976af8SJagan Tekiconfig CADENCE_QSPI
60e4976af8SJagan Teki	bool "Cadence QSPI driver"
61e4976af8SJagan Teki	help
62e4976af8SJagan Teki	  Enable the Cadence Quad-SPI (QSPI) driver. This driver can be
63e4976af8SJagan Teki	  used to access the SPI NOR flash on platforms embedding this
64e4976af8SJagan Teki	  Cadence IP core.
65e4976af8SJagan Teki
66e4976af8SJagan Tekiconfig DESIGNWARE_SPI
67e4976af8SJagan Teki	bool "Designware SPI driver"
68e4976af8SJagan Teki	help
69e4976af8SJagan Teki	  Enable the Designware SPI driver. This driver can be used to
70e4976af8SJagan Teki	  access the SPI NOR flash on platforms embedding this Designware
71e4976af8SJagan Teki	  IP core.
72e4976af8SJagan Teki
73c354eee8SJagan Tekiconfig EXYNOS_SPI
74c354eee8SJagan Teki	bool "Samsung Exynos SPI driver"
75c354eee8SJagan Teki	help
76c354eee8SJagan Teki	  Enable the Samsung Exynos SPI driver. This driver can be used to
77c354eee8SJagan Teki	  access the SPI NOR flash on platforms embedding this Samsung
78c354eee8SJagan Teki	  Exynos IP core.
79c354eee8SJagan Teki
8094ea308dSJagan Tekiconfig FSL_DSPI
8194ea308dSJagan Teki	bool "Freescale DSPI driver"
8294ea308dSJagan Teki	help
8394ea308dSJagan Teki	  Enable the Freescale DSPI driver. This driver can be used to
8494ea308dSJagan Teki	  access the SPI NOR flash and SPI Data flash on platforms embedding
8594ea308dSJagan Teki	  this Freescale DSPI IP core. LS102xA and Colibri VF50/VF61 platforms
8694ea308dSJagan Teki	  use this driver.
8794ea308dSJagan Teki
8845636010SJagan Tekiconfig ICH_SPI
8945636010SJagan Teki	bool "Intel ICH SPI driver"
9045636010SJagan Teki	help
9145636010SJagan Teki	  Enable the Intel ICH SPI driver. This driver can be used to
9245636010SJagan Teki	  access the SPI NOR flash on platforms embedding this Intel
9345636010SJagan Teki	  ICH IP core.
9445636010SJagan Teki
953fda4ef3SStefan Roeseconfig MVEBU_A3700_SPI
963fda4ef3SStefan Roese	bool "Marvell Armada 3700 SPI driver"
973fda4ef3SStefan Roese	help
983fda4ef3SStefan Roese	  Enable the Marvell Armada 3700 SPI driver. This driver can be
993fda4ef3SStefan Roese	  used to access the SPI NOR flash on platforms embedding this
1003fda4ef3SStefan Roese	  Marvell IP core.
1013fda4ef3SStefan Roese
102e19b9004SPurna Chandra Mandalconfig PIC32_SPI
103e19b9004SPurna Chandra Mandal	bool "Microchip PIC32 SPI driver"
104e19b9004SPurna Chandra Mandal	depends on MACH_PIC32
105e19b9004SPurna Chandra Mandal	help
106e19b9004SPurna Chandra Mandal	  Enable the Microchip PIC32 SPI driver. This driver can be used
107e19b9004SPurna Chandra Mandal	  to access the SPI NOR flash, MMC-over-SPI on platforms based on
108e19b9004SPurna Chandra Mandal	  Microchip PIC32 family devices.
109e19b9004SPurna Chandra Mandal
1101b2fd5bfSSimon Glassconfig ROCKCHIP_SPI
1111b2fd5bfSSimon Glass	bool "Rockchip SPI driver"
1121b2fd5bfSSimon Glass	help
1131b2fd5bfSSimon Glass	  Enable the Rockchip SPI driver, used to access SPI NOR flash and
1141b2fd5bfSSimon Glass	  other SPI peripherals (such as the Chrome OS EC) on Rockchip SoCs.
1151b2fd5bfSSimon Glass	  This uses driver model and requires a device tree binding to
1161b2fd5bfSSimon Glass	  operate.
1171b2fd5bfSSimon Glass
118892cac72SSimon Glassconfig SANDBOX_SPI
119892cac72SSimon Glass	bool "Sandbox SPI driver"
120892cac72SSimon Glass	depends on SANDBOX && DM
121892cac72SSimon Glass	help
122892cac72SSimon Glass	  Enable SPI support for sandbox. This is an emulation of a real SPI
123892cac72SSimon Glass	  bus. Devices can be attached to the bus using the device tree
124892cac72SSimon Glass	  which specifies the driver to use. As an example, see this device
125892cac72SSimon Glass	  tree fragment from sandbox.dts. It shows that the SPI bus has a
126892cac72SSimon Glass	  single flash device on chip select 0 which is emulated by the driver
127892cac72SSimon Glass	  for "sandbox,spi-flash", which is in drivers/mtd/spi/sandbox.c.
128892cac72SSimon Glass
129892cac72SSimon Glass	  spi@0 {
130892cac72SSimon Glass		#address-cells = <1>;
131892cac72SSimon Glass		#size-cells = <0>;
132892cac72SSimon Glass		reg = <0>;
133892cac72SSimon Glass		compatible = "sandbox,spi";
134892cac72SSimon Glass		cs-gpios = <0>, <&gpio_a 0>;
135892cac72SSimon Glass		flash@0 {
136892cac72SSimon Glass			reg = <0>;
137892cac72SSimon Glass			compatible = "spansion,m25p16", "sandbox,spi-flash";
138892cac72SSimon Glass			spi-max-frequency = <40000000>;
139892cac72SSimon Glass			sandbox,filename = "spi.bin";
140892cac72SSimon Glass		};
141892cac72SSimon Glass	  };
14267d7a9d6SMarek Vasut
143d4363baaSMichael Kurzconfig STM32_QSPI
144d4363baaSMichael Kurz	bool "STM32F7 QSPI driver"
145d4363baaSMichael Kurz	depends on STM32F7
146d4363baaSMichael Kurz	help
147d4363baaSMichael Kurz	  Enable the STM32F7 Quad-SPI (QSPI) driver. This driver can be
148d4363baaSMichael Kurz	  used to access the SPI NOR flash chips on platforms embedding
149d4363baaSMichael Kurz	  this ST IP core.
150d4363baaSMichael Kurz
1515bf9a2d3SJagan Tekiconfig TEGRA114_SPI
1525bf9a2d3SJagan Teki	bool "nVidia Tegra114 SPI driver"
1535bf9a2d3SJagan Teki	help
1545bf9a2d3SJagan Teki	  Enable the nVidia Tegra114 SPI driver. This driver can be used to
1555bf9a2d3SJagan Teki	  access the SPI NOR flash on platforms embedding this nVidia Tegra114
1565bf9a2d3SJagan Teki	  IP core.
1575bf9a2d3SJagan Teki
1585bf9a2d3SJagan Teki	  This controller is different than the older SoCs SPI controller and
1595bf9a2d3SJagan Teki	  also register interface get changed with this controller.
1605bf9a2d3SJagan Teki
1612f3e6f8cSJagan Tekiconfig TEGRA20_SFLASH
1622f3e6f8cSJagan Teki	bool "nVidia Tegra20 Serial Flash controller driver"
1632f3e6f8cSJagan Teki	help
1642f3e6f8cSJagan Teki	  Enable the nVidia Tegra20 Serial Flash controller driver. This driver
1652f3e6f8cSJagan Teki	  can be used to access the SPI NOR flash on platforms embedding this
1662f3e6f8cSJagan Teki	  nVidia Tegra20 IP core.
1672f3e6f8cSJagan Teki
1684495830cSJagan Tekiconfig TEGRA20_SLINK
1694495830cSJagan Teki	bool "nVidia Tegra20/Tegra30 SLINK driver"
1704495830cSJagan Teki	help
1714495830cSJagan Teki	  Enable the nVidia Tegra20/Tegra30 SLINK driver. This driver can
1724495830cSJagan Teki	  be used to access the SPI NOR flash on platforms embedding this
1734495830cSJagan Teki	  nVidia Tegra20/Tegra30 IP cores.
1744495830cSJagan Teki
1754e675ff2STom Warrenconfig TEGRA210_QSPI
1764e675ff2STom Warren	bool "nVidia Tegra210 QSPI driver"
1774e675ff2STom Warren	help
1784e675ff2STom Warren	  Enable the Tegra Quad-SPI (QSPI) driver for T210. This driver
1794e675ff2STom Warren	  be used to access SPI chips on platforms embedding this
1804e675ff2STom Warren	  NVIDIA Tegra210 IP core.
1814e675ff2STom Warren
182075143d3SJagan Tekiconfig XILINX_SPI
183075143d3SJagan Teki	bool "Xilinx SPI driver"
184075143d3SJagan Teki	help
185075143d3SJagan Teki	  Enable the Xilinx SPI driver from the Xilinx EDK. This SPI
186075143d3SJagan Teki	  controller support 8 bit SPI transfers only, with or w/o FIFO.
187075143d3SJagan Teki	  For more info on Xilinx SPI Register Definitions and Overview
188075143d3SJagan Teki	  see driver file - drivers/spi/xilinx_spi.c
189075143d3SJagan Teki
190df30a425SJagan Tekiconfig ZYNQ_SPI
191df30a425SJagan Teki	bool "Zynq SPI driver"
1928e4920e5SMichal Simek	depends on ARCH_ZYNQ || ARCH_ZYNQMP
193df30a425SJagan Teki	help
194df30a425SJagan Teki	  Enable the Zynq SPI driver. This driver can be used to
195df30a425SJagan Teki	  access the SPI NOR flash on platforms embedding this Zynq
196df30a425SJagan Teki	  SPI IP core.
197de823053SJagan Teki
19878a025acSJagan Tekiconfig ZYNQ_QSPI
19978a025acSJagan Teki	bool "Zynq QSPI driver"
20078a025acSJagan Teki	depends on ARCH_ZYNQ
20178a025acSJagan Teki	help
20278a025acSJagan Teki	  Enable the Zynq Quad-SPI (QSPI) driver. This driver can be
20378a025acSJagan Teki	  used to access the SPI NOR flash on platforms embedding this
20478a025acSJagan Teki	  Zynq QSPI IP core. This IP is used to connect the flash in
20578a025acSJagan Teki	  4-bit qspi, 8-bit dual stacked and shared 4-bit dual parallel.
20678a025acSJagan Teki
207e4976af8SJagan Tekiendif # if DM_SPI
208e4976af8SJagan Teki
20941eb8ff5SPeng Fanconfig SOFT_SPI
21041eb8ff5SPeng Fan	bool "Soft SPI driver"
21141eb8ff5SPeng Fan	help
21241eb8ff5SPeng Fan	 Enable Soft SPI driver. This driver is to use GPIO simulate
21341eb8ff5SPeng Fan	 the SPI protocol.
21441eb8ff5SPeng Fan
2153debffa7SJagan Tekiconfig FSL_ESPI
2163debffa7SJagan Teki	bool "Freescale eSPI driver"
2173debffa7SJagan Teki	help
2183debffa7SJagan Teki	  Enable the Freescale eSPI driver. This driver can be used to
2193debffa7SJagan Teki	  access the SPI interface and SPI NOR flash on platforms embedding
2203debffa7SJagan Teki	  this Freescale eSPI IP core.
2213debffa7SJagan Teki
22221b1dd18SJagan Tekiconfig FSL_QSPI
22321b1dd18SJagan Teki	bool "Freescale QSPI driver"
22421b1dd18SJagan Teki	help
22521b1dd18SJagan Teki	  Enable the Freescale Quad-SPI (QSPI) driver. This driver can be
22621b1dd18SJagan Teki	  used to access the SPI NOR flash on platforms embedding this
22721b1dd18SJagan Teki	  Freescale IP core.
22821b1dd18SJagan Teki
22941bbb8b3SRick Chenconfig ATCSPI200_SPI
23041bbb8b3SRick Chen	bool "Andestech ATCSPI200 SPI driver"
2317155cd2eSrick	help
23241bbb8b3SRick Chen	  Enable the Andestech ATCSPI200 SPI driver. This driver can be
23341bbb8b3SRick Chen	  used to access the SPI flash on AE3XX and AE250 platforms embedding
23441bbb8b3SRick Chen	  this Andestech IP core.
2357155cd2eSrick
23626410c15SAdam Fordconfig DAVINCI_SPI
23726410c15SAdam Ford	bool "Davinci & Keystone SPI driver"
23826410c15SAdam Ford	depends on ARCH_DAVINCI || ARCH_KEYSTONE
23926410c15SAdam Ford	help
24026410c15SAdam Ford	  Enable the Davinci SPI driver
24126410c15SAdam Ford
24295d3877aSTuomas Tynkkynenconfig SH_SPI
24395d3877aSTuomas Tynkkynen	bool "SuperH SPI driver"
24495d3877aSTuomas Tynkkynen	help
24595d3877aSTuomas Tynkkynen	  Enable the SuperH SPI controller driver. This driver can be used
24695d3877aSTuomas Tynkkynen	  on various SuperH SoCs, such as SH7757.
24795d3877aSTuomas Tynkkynen
248a5dfabeaSTuomas Tynkkynenconfig SH_QSPI
249a5dfabeaSTuomas Tynkkynen	bool "Renesas Quad SPI driver"
250a5dfabeaSTuomas Tynkkynen	help
251a5dfabeaSTuomas Tynkkynen	  Enable the Renesas Quad SPI controller driver. This driver can be
252a5dfabeaSTuomas Tynkkynen	  used on Renesas SoCs.
253a5dfabeaSTuomas Tynkkynen
254e4976af8SJagan Tekiconfig TI_QSPI
255e4976af8SJagan Teki	bool "TI QSPI driver"
256e4976af8SJagan Teki	help
257e4976af8SJagan Teki	  Enable the TI Quad-SPI (QSPI) driver for DRA7xx and AM43xx evms.
258e4976af8SJagan Teki	  This driver support spi flash single, quad and memory reads.
259e4976af8SJagan Teki
260*4a942f49STuomas Tynkkynenconfig KIRKWOOD_SPI
261*4a942f49STuomas Tynkkynen	bool "Marvell Kirkwood SPI Driver"
262*4a942f49STuomas Tynkkynen	help
263*4a942f49STuomas Tynkkynen	  Enable support for SPI on various Marvell SoCs, such as
264*4a942f49STuomas Tynkkynen	  Kirkwood and Armada 375.
265*4a942f49STuomas Tynkkynen
2662c4b096bSTuomas Tynkkynenconfig LPC32XX_SSP
2672c4b096bSTuomas Tynkkynen	bool "LPC32XX SPI Driver"
2682c4b096bSTuomas Tynkkynen	help
2692c4b096bSTuomas Tynkkynen	  Enable support for SPI on LPC32xx
2702c4b096bSTuomas Tynkkynen
271f88c431bSChristophe Leroyconfig MPC8XX_SPI
272f88c431bSChristophe Leroy	bool "MPC8XX SPI Driver"
273f88c431bSChristophe Leroy	depends on 8xx
274f88c431bSChristophe Leroy	help
275f88c431bSChristophe Leroy	  Enable support for SPI on MPC8XX
276f88c431bSChristophe Leroy
277bbdf3869STuomas Tynkkynenconfig MPC8XXX_SPI
278bbdf3869STuomas Tynkkynen	bool "MPC8XXX SPI Driver"
279bbdf3869STuomas Tynkkynen	help
280bbdf3869STuomas Tynkkynen	  Enable support for SPI on the MPC8XXX PowerPC SoCs.
281bbdf3869STuomas Tynkkynen
28260e54562STuomas Tynkkynenconfig MXC_SPI
28360e54562STuomas Tynkkynen	bool "MXC SPI Driver"
28460e54562STuomas Tynkkynen	help
28560e54562STuomas Tynkkynen	  Enable the MXC SPI controller driver. This driver can be used
28660e54562STuomas Tynkkynen	  on various i.MX SoCs such as i.MX31/35/51/6/7.
28760e54562STuomas Tynkkynen
2887b819b56STuomas Tynkkynenconfig MXS_SPI
2897b819b56STuomas Tynkkynen	bool "MXS SPI Driver"
2907b819b56STuomas Tynkkynen	help
2917b819b56STuomas Tynkkynen	  Enable the MXS SPI controller driver. This driver can be used
2927b819b56STuomas Tynkkynen	  on the i.MX23 and i.MX28 SoCs.
2937b819b56STuomas Tynkkynen
294a41e3e14SAdam Fordconfig OMAP3_SPI
295a41e3e14SAdam Ford	bool "McSPI driver for OMAP"
296a41e3e14SAdam Ford	help
297a41e3e14SAdam Ford	  SPI master controller for OMAP24XX and later Multichannel SPI
298a41e3e14SAdam Ford	  (McSPI). This driver be used to access SPI chips on platforms
299a41e3e14SAdam Ford	  embedding this OMAP3 McSPI IP core.
300a41e3e14SAdam Ford
301de823053SJagan Tekiendmenu # menu "SPI Support"
302