18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
28c2ecf20Sopenharmony_ci#
38c2ecf20Sopenharmony_ci# SPI driver configuration
48c2ecf20Sopenharmony_ci#
58c2ecf20Sopenharmony_cimenuconfig SPI
68c2ecf20Sopenharmony_ci	bool "SPI support"
78c2ecf20Sopenharmony_ci	depends on HAS_IOMEM
88c2ecf20Sopenharmony_ci	help
98c2ecf20Sopenharmony_ci	  The "Serial Peripheral Interface" is a low level synchronous
108c2ecf20Sopenharmony_ci	  protocol.  Chips that support SPI can have data transfer rates
118c2ecf20Sopenharmony_ci	  up to several tens of Mbit/sec.  Chips are addressed with a
128c2ecf20Sopenharmony_ci	  controller and a chipselect.  Most SPI slaves don't support
138c2ecf20Sopenharmony_ci	  dynamic device discovery; some are even write-only or read-only.
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_ci	  SPI is widely used by microcontrollers to talk with sensors,
168c2ecf20Sopenharmony_ci	  eeprom and flash memory, codecs and various other controller
178c2ecf20Sopenharmony_ci	  chips, analog to digital (and d-to-a) converters, and more.
188c2ecf20Sopenharmony_ci	  MMC and SD cards can be accessed using SPI protocol; and for
198c2ecf20Sopenharmony_ci	  DataFlash cards used in MMC sockets, SPI must always be used.
208c2ecf20Sopenharmony_ci
218c2ecf20Sopenharmony_ci	  SPI is one of a family of similar protocols using a four wire
228c2ecf20Sopenharmony_ci	  interface (select, clock, data in, data out) including Microwire
238c2ecf20Sopenharmony_ci	  (half duplex), SSP, SSI, and PSP.  This driver framework should
248c2ecf20Sopenharmony_ci	  work with most such devices and controllers.
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ciif SPI
278c2ecf20Sopenharmony_ci
288c2ecf20Sopenharmony_ciconfig SPI_DEBUG
298c2ecf20Sopenharmony_ci	bool "Debug support for SPI drivers"
308c2ecf20Sopenharmony_ci	depends on DEBUG_KERNEL
318c2ecf20Sopenharmony_ci	help
328c2ecf20Sopenharmony_ci	  Say "yes" to enable debug messaging (like dev_dbg and pr_debug),
338c2ecf20Sopenharmony_ci	  sysfs, and debugfs support in SPI controller and protocol drivers.
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_ci#
368c2ecf20Sopenharmony_ci# MASTER side ... talking to discrete SPI slave chips including microcontrollers
378c2ecf20Sopenharmony_ci#
388c2ecf20Sopenharmony_ci
398c2ecf20Sopenharmony_ciconfig SPI_MASTER
408c2ecf20Sopenharmony_ci#	bool "SPI Master Support"
418c2ecf20Sopenharmony_ci	bool
428c2ecf20Sopenharmony_ci	default SPI
438c2ecf20Sopenharmony_ci	help
448c2ecf20Sopenharmony_ci	  If your system has an master-capable SPI controller (which
458c2ecf20Sopenharmony_ci	  provides the clock and chipselect), you can enable that
468c2ecf20Sopenharmony_ci	  controller and the protocol drivers for the SPI slave chips
478c2ecf20Sopenharmony_ci	  that are connected.
488c2ecf20Sopenharmony_ci
498c2ecf20Sopenharmony_ciif SPI_MASTER
508c2ecf20Sopenharmony_ci
518c2ecf20Sopenharmony_ciconfig SPI_MEM
528c2ecf20Sopenharmony_ci	bool "SPI memory extension"
538c2ecf20Sopenharmony_ci	help
548c2ecf20Sopenharmony_ci	  Enable this option if you want to enable the SPI memory extension.
558c2ecf20Sopenharmony_ci	  This extension is meant to simplify interaction with SPI memories
568c2ecf20Sopenharmony_ci	  by providing a high-level interface to send memory-like commands.
578c2ecf20Sopenharmony_ci
588c2ecf20Sopenharmony_cicomment "SPI Master Controller Drivers"
598c2ecf20Sopenharmony_ci
608c2ecf20Sopenharmony_ciconfig SPI_ALTERA
618c2ecf20Sopenharmony_ci	tristate "Altera SPI Controller"
628c2ecf20Sopenharmony_ci	select REGMAP_MMIO
638c2ecf20Sopenharmony_ci	help
648c2ecf20Sopenharmony_ci	  This is the driver for the Altera SPI Controller.
658c2ecf20Sopenharmony_ci
668c2ecf20Sopenharmony_ciconfig SPI_AR934X
678c2ecf20Sopenharmony_ci	tristate "Qualcomm Atheros AR934X/QCA95XX SPI controller driver"
688c2ecf20Sopenharmony_ci	depends on ATH79 || COMPILE_TEST
698c2ecf20Sopenharmony_ci	help
708c2ecf20Sopenharmony_ci	  This enables support for the SPI controller present on the
718c2ecf20Sopenharmony_ci	  Qualcomm Atheros AR934X/QCA95XX SoCs.
728c2ecf20Sopenharmony_ci
738c2ecf20Sopenharmony_ciconfig SPI_ATH79
748c2ecf20Sopenharmony_ci	tristate "Atheros AR71XX/AR724X/AR913X SPI controller driver"
758c2ecf20Sopenharmony_ci	depends on ATH79 || COMPILE_TEST
768c2ecf20Sopenharmony_ci	select SPI_BITBANG
778c2ecf20Sopenharmony_ci	help
788c2ecf20Sopenharmony_ci	  This enables support for the SPI controller present on the
798c2ecf20Sopenharmony_ci	  Atheros AR71XX/AR724X/AR913X SoCs.
808c2ecf20Sopenharmony_ci
818c2ecf20Sopenharmony_ciconfig SPI_ARMADA_3700
828c2ecf20Sopenharmony_ci	tristate "Marvell Armada 3700 SPI Controller"
838c2ecf20Sopenharmony_ci	depends on (ARCH_MVEBU && OF) || COMPILE_TEST
848c2ecf20Sopenharmony_ci	help
858c2ecf20Sopenharmony_ci	  This enables support for the SPI controller present on the
868c2ecf20Sopenharmony_ci	  Marvell Armada 3700 SoCs.
878c2ecf20Sopenharmony_ci
888c2ecf20Sopenharmony_ciconfig SPI_ATMEL
898c2ecf20Sopenharmony_ci	tristate "Atmel SPI Controller"
908c2ecf20Sopenharmony_ci	depends on ARCH_AT91 || COMPILE_TEST
918c2ecf20Sopenharmony_ci	depends on OF
928c2ecf20Sopenharmony_ci	help
938c2ecf20Sopenharmony_ci	  This selects a driver for the Atmel SPI Controller, present on
948c2ecf20Sopenharmony_ci	  many AT91 ARM chips.
958c2ecf20Sopenharmony_ci
968c2ecf20Sopenharmony_ciconfig SPI_AT91_USART
978c2ecf20Sopenharmony_ci	tristate "Atmel USART Controller SPI driver"
988c2ecf20Sopenharmony_ci	depends on (ARCH_AT91 || COMPILE_TEST)
998c2ecf20Sopenharmony_ci	depends on MFD_AT91_USART
1008c2ecf20Sopenharmony_ci	help
1018c2ecf20Sopenharmony_ci	  This selects a driver for the AT91 USART Controller as SPI Master,
1028c2ecf20Sopenharmony_ci	  present on AT91 and SAMA5 SoC series.
1038c2ecf20Sopenharmony_ci
1048c2ecf20Sopenharmony_ciconfig SPI_ATMEL_QUADSPI
1058c2ecf20Sopenharmony_ci	tristate "Atmel Quad SPI Controller"
1068c2ecf20Sopenharmony_ci	depends on ARCH_AT91 || COMPILE_TEST
1078c2ecf20Sopenharmony_ci	depends on OF && HAS_IOMEM
1088c2ecf20Sopenharmony_ci	help
1098c2ecf20Sopenharmony_ci	  This enables support for the Quad SPI controller in master mode.
1108c2ecf20Sopenharmony_ci	  This driver does not support generic SPI. The implementation only
1118c2ecf20Sopenharmony_ci	  supports spi-mem interface.
1128c2ecf20Sopenharmony_ci
1138c2ecf20Sopenharmony_ciconfig SPI_AU1550
1148c2ecf20Sopenharmony_ci	tristate "Au1550/Au1200/Au1300 SPI Controller"
1158c2ecf20Sopenharmony_ci	depends on MIPS_ALCHEMY
1168c2ecf20Sopenharmony_ci	select SPI_BITBANG
1178c2ecf20Sopenharmony_ci	help
1188c2ecf20Sopenharmony_ci	  If you say yes to this option, support will be included for the
1198c2ecf20Sopenharmony_ci	  PSC SPI controller found on Au1550, Au1200 and Au1300 series.
1208c2ecf20Sopenharmony_ci
1218c2ecf20Sopenharmony_ciconfig SPI_AXI_SPI_ENGINE
1228c2ecf20Sopenharmony_ci	tristate "Analog Devices AXI SPI Engine controller"
1238c2ecf20Sopenharmony_ci	depends on HAS_IOMEM
1248c2ecf20Sopenharmony_ci	help
1258c2ecf20Sopenharmony_ci	  This enables support for the Analog Devices AXI SPI Engine SPI controller.
1268c2ecf20Sopenharmony_ci	  It is part of the SPI Engine framework that is used in some Analog Devices
1278c2ecf20Sopenharmony_ci	  reference designs for FPGAs.
1288c2ecf20Sopenharmony_ci
1298c2ecf20Sopenharmony_ciconfig SPI_BCM2835
1308c2ecf20Sopenharmony_ci	tristate "BCM2835 SPI controller"
1318c2ecf20Sopenharmony_ci	depends on GPIOLIB
1328c2ecf20Sopenharmony_ci	depends on ARCH_BCM2835 || ARCH_BRCMSTB || COMPILE_TEST
1338c2ecf20Sopenharmony_ci	help
1348c2ecf20Sopenharmony_ci	  This selects a driver for the Broadcom BCM2835 SPI master.
1358c2ecf20Sopenharmony_ci
1368c2ecf20Sopenharmony_ci	  The BCM2835 contains two types of SPI master controller; the
1378c2ecf20Sopenharmony_ci	  "universal SPI master", and the regular SPI controller. This driver
1388c2ecf20Sopenharmony_ci	  is for the regular SPI controller. Slave mode operation is not also
1398c2ecf20Sopenharmony_ci	  not supported.
1408c2ecf20Sopenharmony_ci
1418c2ecf20Sopenharmony_ciconfig SPI_BCM2835AUX
1428c2ecf20Sopenharmony_ci	tristate "BCM2835 SPI auxiliary controller"
1438c2ecf20Sopenharmony_ci	depends on ((ARCH_BCM2835 || ARCH_BRCMSTB) && GPIOLIB) || COMPILE_TEST
1448c2ecf20Sopenharmony_ci	help
1458c2ecf20Sopenharmony_ci	  This selects a driver for the Broadcom BCM2835 SPI aux master.
1468c2ecf20Sopenharmony_ci
1478c2ecf20Sopenharmony_ci	  The BCM2835 contains two types of SPI master controller; the
1488c2ecf20Sopenharmony_ci	  "universal SPI master", and the regular SPI controller.
1498c2ecf20Sopenharmony_ci	  This driver is for the universal/auxiliary SPI controller.
1508c2ecf20Sopenharmony_ci
1518c2ecf20Sopenharmony_ciconfig SPI_BCM63XX
1528c2ecf20Sopenharmony_ci	tristate "Broadcom BCM63xx SPI controller"
1538c2ecf20Sopenharmony_ci	depends on BCM63XX || BMIPS_GENERIC || COMPILE_TEST
1548c2ecf20Sopenharmony_ci	help
1558c2ecf20Sopenharmony_ci	  Enable support for the SPI controller on the Broadcom BCM63xx SoCs.
1568c2ecf20Sopenharmony_ci
1578c2ecf20Sopenharmony_ciconfig SPI_BCM63XX_HSSPI
1588c2ecf20Sopenharmony_ci	tristate "Broadcom BCM63XX HS SPI controller driver"
1598c2ecf20Sopenharmony_ci	depends on BCM63XX || BMIPS_GENERIC || ARCH_BCM_63XX || COMPILE_TEST
1608c2ecf20Sopenharmony_ci	help
1618c2ecf20Sopenharmony_ci	  This enables support for the High Speed SPI controller present on
1628c2ecf20Sopenharmony_ci	  newer Broadcom BCM63XX SoCs.
1638c2ecf20Sopenharmony_ci
1648c2ecf20Sopenharmony_ciconfig SPI_BCM_QSPI
1658c2ecf20Sopenharmony_ci	tristate "Broadcom BSPI and MSPI controller support"
1668c2ecf20Sopenharmony_ci	depends on ARCH_BRCMSTB || ARCH_BCM || ARCH_BCM_IPROC || \
1678c2ecf20Sopenharmony_ci			BMIPS_GENERIC || COMPILE_TEST
1688c2ecf20Sopenharmony_ci	default ARCH_BCM_IPROC
1698c2ecf20Sopenharmony_ci	help
1708c2ecf20Sopenharmony_ci	  Enables support for the Broadcom SPI flash and MSPI controller.
1718c2ecf20Sopenharmony_ci	  Select this option for any one of BRCMSTB, iProc NSP and NS2 SoCs
1728c2ecf20Sopenharmony_ci	  based platforms. This driver works for both SPI master for SPI NOR
1738c2ecf20Sopenharmony_ci	  flash device as well as MSPI device.
1748c2ecf20Sopenharmony_ci
1758c2ecf20Sopenharmony_ciconfig SPI_BITBANG
1768c2ecf20Sopenharmony_ci	tristate "Utilities for Bitbanging SPI masters"
1778c2ecf20Sopenharmony_ci	help
1788c2ecf20Sopenharmony_ci	  With a few GPIO pins, your system can bitbang the SPI protocol.
1798c2ecf20Sopenharmony_ci	  Select this to get SPI support through I/O pins (GPIO, parallel
1808c2ecf20Sopenharmony_ci	  port, etc).  Or, some systems' SPI master controller drivers use
1818c2ecf20Sopenharmony_ci	  this code to manage the per-word or per-transfer accesses to the
1828c2ecf20Sopenharmony_ci	  hardware shift registers.
1838c2ecf20Sopenharmony_ci
1848c2ecf20Sopenharmony_ci	  This is library code, and is automatically selected by drivers that
1858c2ecf20Sopenharmony_ci	  need it.  You only need to select this explicitly to support driver
1868c2ecf20Sopenharmony_ci	  modules that aren't part of this kernel tree.
1878c2ecf20Sopenharmony_ci
1888c2ecf20Sopenharmony_ciconfig SPI_BUTTERFLY
1898c2ecf20Sopenharmony_ci	tristate "Parallel port adapter for AVR Butterfly (DEVELOPMENT)"
1908c2ecf20Sopenharmony_ci	depends on PARPORT
1918c2ecf20Sopenharmony_ci	select SPI_BITBANG
1928c2ecf20Sopenharmony_ci	help
1938c2ecf20Sopenharmony_ci	  This uses a custom parallel port cable to connect to an AVR
1948c2ecf20Sopenharmony_ci	  Butterfly <http://www.atmel.com/products/avr/butterfly>, an
1958c2ecf20Sopenharmony_ci	  inexpensive battery powered microcontroller evaluation board.
1968c2ecf20Sopenharmony_ci	  This same cable can be used to flash new firmware.
1978c2ecf20Sopenharmony_ci
1988c2ecf20Sopenharmony_ciconfig SPI_CADENCE
1998c2ecf20Sopenharmony_ci	tristate "Cadence SPI controller"
2008c2ecf20Sopenharmony_ci	help
2018c2ecf20Sopenharmony_ci	  This selects the Cadence SPI controller master driver
2028c2ecf20Sopenharmony_ci	  used by Xilinx Zynq and ZynqMP.
2038c2ecf20Sopenharmony_ci
2048c2ecf20Sopenharmony_ciconfig SPI_CADENCE_QUADSPI
2058c2ecf20Sopenharmony_ci	tristate "Cadence Quad SPI controller"
2068c2ecf20Sopenharmony_ci	depends on OF && (ARM || ARM64 || COMPILE_TEST)
2078c2ecf20Sopenharmony_ci	help
2088c2ecf20Sopenharmony_ci	  Enable support for the Cadence Quad SPI Flash controller.
2098c2ecf20Sopenharmony_ci
2108c2ecf20Sopenharmony_ci	  Cadence QSPI is a specialized controller for connecting an SPI
2118c2ecf20Sopenharmony_ci	  Flash over 1/2/4-bit wide bus. Enable this option if you have a
2128c2ecf20Sopenharmony_ci	  device with a Cadence QSPI controller and want to access the
2138c2ecf20Sopenharmony_ci	  Flash as an MTD device.
2148c2ecf20Sopenharmony_ci
2158c2ecf20Sopenharmony_ciconfig SPI_CLPS711X
2168c2ecf20Sopenharmony_ci	tristate "CLPS711X host SPI controller"
2178c2ecf20Sopenharmony_ci	depends on ARCH_CLPS711X || COMPILE_TEST
2188c2ecf20Sopenharmony_ci	help
2198c2ecf20Sopenharmony_ci	  This enables dedicated general purpose SPI/Microwire1-compatible
2208c2ecf20Sopenharmony_ci	  master mode interface (SSI1) for CLPS711X-based CPUs.
2218c2ecf20Sopenharmony_ci
2228c2ecf20Sopenharmony_ciconfig SPI_COLDFIRE_QSPI
2238c2ecf20Sopenharmony_ci	tristate "Freescale Coldfire QSPI controller"
2248c2ecf20Sopenharmony_ci	depends on (M520x || M523x || M5249 || M525x || M527x || M528x || M532x)
2258c2ecf20Sopenharmony_ci	help
2268c2ecf20Sopenharmony_ci	  This enables support for the Coldfire QSPI controller in master
2278c2ecf20Sopenharmony_ci	  mode.
2288c2ecf20Sopenharmony_ci
2298c2ecf20Sopenharmony_ciconfig SPI_DAVINCI
2308c2ecf20Sopenharmony_ci	tristate "Texas Instruments DaVinci/DA8x/OMAP-L/AM1x SoC SPI controller"
2318c2ecf20Sopenharmony_ci	depends on ARCH_DAVINCI || ARCH_KEYSTONE
2328c2ecf20Sopenharmony_ci	select SPI_BITBANG
2338c2ecf20Sopenharmony_ci	help
2348c2ecf20Sopenharmony_ci	  SPI master controller for DaVinci/DA8x/OMAP-L/AM1x SPI modules.
2358c2ecf20Sopenharmony_ci
2368c2ecf20Sopenharmony_ciconfig SPI_DESIGNWARE
2378c2ecf20Sopenharmony_ci	tristate "DesignWare SPI controller core support"
2388c2ecf20Sopenharmony_ci	imply SPI_MEM
2398c2ecf20Sopenharmony_ci	help
2408c2ecf20Sopenharmony_ci	  general driver for SPI controller core from DesignWare
2418c2ecf20Sopenharmony_ci
2428c2ecf20Sopenharmony_ciif SPI_DESIGNWARE
2438c2ecf20Sopenharmony_ci
2448c2ecf20Sopenharmony_ciconfig SPI_DW_DMA
2458c2ecf20Sopenharmony_ci	bool "DMA support for DW SPI controller"
2468c2ecf20Sopenharmony_ci
2478c2ecf20Sopenharmony_ciconfig SPI_DW_PCI
2488c2ecf20Sopenharmony_ci	tristate "PCI interface driver for DW SPI core"
2498c2ecf20Sopenharmony_ci	depends on PCI
2508c2ecf20Sopenharmony_ci
2518c2ecf20Sopenharmony_ciconfig SPI_DW_MMIO
2528c2ecf20Sopenharmony_ci	tristate "Memory-mapped io interface driver for DW SPI core"
2538c2ecf20Sopenharmony_ci	depends on HAS_IOMEM
2548c2ecf20Sopenharmony_ci
2558c2ecf20Sopenharmony_ciconfig SPI_DW_BT1
2568c2ecf20Sopenharmony_ci	tristate "Baikal-T1 SPI driver for DW SPI core"
2578c2ecf20Sopenharmony_ci	depends on MIPS_BAIKAL_T1 || COMPILE_TEST
2588c2ecf20Sopenharmony_ci	select MULTIPLEXER
2598c2ecf20Sopenharmony_ci	help
2608c2ecf20Sopenharmony_ci	  Baikal-T1 SoC is equipped with three DW APB SSI-based MMIO SPI
2618c2ecf20Sopenharmony_ci	  controllers. Two of them are pretty much normal: with IRQ, DMA,
2628c2ecf20Sopenharmony_ci	  FIFOs of 64 words depth, 4x CSs, but the third one as being a
2638c2ecf20Sopenharmony_ci	  part of the Baikal-T1 System Boot Controller has got a very
2648c2ecf20Sopenharmony_ci	  limited resources: no IRQ, no DMA, only a single native
2658c2ecf20Sopenharmony_ci	  chip-select and Tx/Rx FIFO with just 8 words depth available.
2668c2ecf20Sopenharmony_ci	  The later one is normally connected to an external SPI-nor flash
2678c2ecf20Sopenharmony_ci	  of 128Mb (in general can be of bigger size).
2688c2ecf20Sopenharmony_ci
2698c2ecf20Sopenharmony_ciconfig SPI_DW_BT1_DIRMAP
2708c2ecf20Sopenharmony_ci	bool "Directly mapped Baikal-T1 Boot SPI flash support"
2718c2ecf20Sopenharmony_ci	depends on SPI_DW_BT1
2728c2ecf20Sopenharmony_ci	help
2738c2ecf20Sopenharmony_ci	  Directly mapped SPI flash memory is an interface specific to the
2748c2ecf20Sopenharmony_ci	  Baikal-T1 System Boot Controller. It is a 16MB MMIO region, which
2758c2ecf20Sopenharmony_ci	  can be used to access a peripheral memory device just by
2768c2ecf20Sopenharmony_ci	  reading/writing data from/to it. Note that the system APB bus
2778c2ecf20Sopenharmony_ci	  will stall during each IO from/to the dirmap region until the
2788c2ecf20Sopenharmony_ci	  operation is finished. So try not to use it concurrently with
2798c2ecf20Sopenharmony_ci	  time-critical tasks (like the SPI memory operations implemented
2808c2ecf20Sopenharmony_ci	  in this driver).
2818c2ecf20Sopenharmony_ci
2828c2ecf20Sopenharmony_ciendif
2838c2ecf20Sopenharmony_ci
2848c2ecf20Sopenharmony_ciconfig SPI_DLN2
2858c2ecf20Sopenharmony_ci       tristate "Diolan DLN-2 USB SPI adapter"
2868c2ecf20Sopenharmony_ci       depends on MFD_DLN2
2878c2ecf20Sopenharmony_ci       help
2888c2ecf20Sopenharmony_ci	 If you say yes to this option, support will be included for Diolan
2898c2ecf20Sopenharmony_ci	 DLN2, a USB to SPI interface.
2908c2ecf20Sopenharmony_ci
2918c2ecf20Sopenharmony_ci	 This driver can also be built as a module.  If so, the module
2928c2ecf20Sopenharmony_ci	 will be called spi-dln2.
2938c2ecf20Sopenharmony_ci
2948c2ecf20Sopenharmony_ciconfig SPI_EFM32
2958c2ecf20Sopenharmony_ci	tristate "EFM32 SPI controller"
2968c2ecf20Sopenharmony_ci	depends on OF && ARM && (ARCH_EFM32 || COMPILE_TEST)
2978c2ecf20Sopenharmony_ci	select SPI_BITBANG
2988c2ecf20Sopenharmony_ci	help
2998c2ecf20Sopenharmony_ci	  Driver for the spi controller found on Energy Micro's EFM32 SoCs.
3008c2ecf20Sopenharmony_ci
3018c2ecf20Sopenharmony_ciconfig SPI_EP93XX
3028c2ecf20Sopenharmony_ci	tristate "Cirrus Logic EP93xx SPI controller"
3038c2ecf20Sopenharmony_ci	depends on ARCH_EP93XX || COMPILE_TEST
3048c2ecf20Sopenharmony_ci	help
3058c2ecf20Sopenharmony_ci	  This enables using the Cirrus EP93xx SPI controller in master
3068c2ecf20Sopenharmony_ci	  mode.
3078c2ecf20Sopenharmony_ci
3088c2ecf20Sopenharmony_ciconfig SPI_FALCON
3098c2ecf20Sopenharmony_ci	bool "Falcon SPI controller support"
3108c2ecf20Sopenharmony_ci	depends on SOC_FALCON
3118c2ecf20Sopenharmony_ci	help
3128c2ecf20Sopenharmony_ci	  The external bus unit (EBU) found on the FALC-ON SoC has SPI
3138c2ecf20Sopenharmony_ci	  emulation that is designed for serial flash access. This driver
3148c2ecf20Sopenharmony_ci	  has only been tested with m25p80 type chips. The hardware has no
3158c2ecf20Sopenharmony_ci	  support for other types of SPI peripherals.
3168c2ecf20Sopenharmony_ci
3178c2ecf20Sopenharmony_ciconfig SPI_FSI
3188c2ecf20Sopenharmony_ci	tristate "FSI SPI driver"
3198c2ecf20Sopenharmony_ci	depends on FSI
3208c2ecf20Sopenharmony_ci	help
3218c2ecf20Sopenharmony_ci	  This enables support for the driver for FSI bus attached SPI
3228c2ecf20Sopenharmony_ci	  controllers.
3238c2ecf20Sopenharmony_ci
3248c2ecf20Sopenharmony_ciconfig SPI_FSL_LPSPI
3258c2ecf20Sopenharmony_ci	tristate "Freescale i.MX LPSPI controller"
3268c2ecf20Sopenharmony_ci	depends on ARCH_MXC || COMPILE_TEST
3278c2ecf20Sopenharmony_ci	help
3288c2ecf20Sopenharmony_ci	  This enables Freescale i.MX LPSPI controllers in master mode.
3298c2ecf20Sopenharmony_ci
3308c2ecf20Sopenharmony_ciconfig SPI_FSL_QUADSPI
3318c2ecf20Sopenharmony_ci	tristate "Freescale QSPI controller"
3328c2ecf20Sopenharmony_ci	depends on ARCH_MXC || SOC_LS1021A || ARCH_LAYERSCAPE || COMPILE_TEST
3338c2ecf20Sopenharmony_ci	depends on HAS_IOMEM
3348c2ecf20Sopenharmony_ci	help
3358c2ecf20Sopenharmony_ci	  This enables support for the Quad SPI controller in master mode.
3368c2ecf20Sopenharmony_ci	  Up to four flash chips can be connected on two buses with two
3378c2ecf20Sopenharmony_ci	  chipselects each.
3388c2ecf20Sopenharmony_ci	  This controller does not support generic SPI messages. It only
3398c2ecf20Sopenharmony_ci	  supports the high-level SPI memory interface.
3408c2ecf20Sopenharmony_ci
3418c2ecf20Sopenharmony_ciconfig SPI_HISI_SFC_V3XX
3428c2ecf20Sopenharmony_ci	tristate "HiSilicon SPI NOR Flash Controller for Hi16XX chipsets"
3438c2ecf20Sopenharmony_ci	depends on (ARM64 && ACPI) || COMPILE_TEST
3448c2ecf20Sopenharmony_ci	depends on HAS_IOMEM
3458c2ecf20Sopenharmony_ci	help
3468c2ecf20Sopenharmony_ci	  This enables support for HiSilicon v3xx SPI NOR flash controller
3478c2ecf20Sopenharmony_ci	  found in hi16xx chipsets.
3488c2ecf20Sopenharmony_ci
3498c2ecf20Sopenharmony_ciconfig SPI_NXP_FLEXSPI
3508c2ecf20Sopenharmony_ci	tristate "NXP Flex SPI controller"
3518c2ecf20Sopenharmony_ci	depends on ARCH_LAYERSCAPE || HAS_IOMEM
3528c2ecf20Sopenharmony_ci	help
3538c2ecf20Sopenharmony_ci	  This enables support for the Flex SPI controller in master mode.
3548c2ecf20Sopenharmony_ci	  Up to four slave devices can be connected on two buses with two
3558c2ecf20Sopenharmony_ci	  chipselects each.
3568c2ecf20Sopenharmony_ci	  This controller does not support generic SPI messages and only
3578c2ecf20Sopenharmony_ci	  supports the high-level SPI memory interface.
3588c2ecf20Sopenharmony_ci
3598c2ecf20Sopenharmony_ciconfig SPI_GPIO
3608c2ecf20Sopenharmony_ci	tristate "GPIO-based bitbanging SPI Master"
3618c2ecf20Sopenharmony_ci	depends on GPIOLIB || COMPILE_TEST
3628c2ecf20Sopenharmony_ci	select SPI_BITBANG
3638c2ecf20Sopenharmony_ci	help
3648c2ecf20Sopenharmony_ci	  This simple GPIO bitbanging SPI master uses the arch-neutral GPIO
3658c2ecf20Sopenharmony_ci	  interface to manage MOSI, MISO, SCK, and chipselect signals.  SPI
3668c2ecf20Sopenharmony_ci	  slaves connected to a bus using this driver are configured as usual,
3678c2ecf20Sopenharmony_ci	  except that the spi_board_info.controller_data holds the GPIO number
3688c2ecf20Sopenharmony_ci	  for the chipselect used by this controller driver.
3698c2ecf20Sopenharmony_ci
3708c2ecf20Sopenharmony_ci	  Note that this driver often won't achieve even 1 Mbit/sec speeds,
3718c2ecf20Sopenharmony_ci	  making it unusually slow for SPI.  If your platform can inline
3728c2ecf20Sopenharmony_ci	  GPIO operations, you should be able to leverage that for better
3738c2ecf20Sopenharmony_ci	  speed with a custom version of this driver; see the source code.
3748c2ecf20Sopenharmony_ci
3758c2ecf20Sopenharmony_ciconfig SPI_IMG_SPFI
3768c2ecf20Sopenharmony_ci	tristate "IMG SPFI controller"
3778c2ecf20Sopenharmony_ci	depends on MIPS || COMPILE_TEST
3788c2ecf20Sopenharmony_ci	help
3798c2ecf20Sopenharmony_ci	  This enables support for the SPFI master controller found on
3808c2ecf20Sopenharmony_ci	  IMG SoCs.
3818c2ecf20Sopenharmony_ci
3828c2ecf20Sopenharmony_ciconfig SPI_IMX
3838c2ecf20Sopenharmony_ci	tristate "Freescale i.MX SPI controllers"
3848c2ecf20Sopenharmony_ci	depends on ARCH_MXC || COMPILE_TEST
3858c2ecf20Sopenharmony_ci	select SPI_BITBANG
3868c2ecf20Sopenharmony_ci	help
3878c2ecf20Sopenharmony_ci	  This enables support for the Freescale i.MX SPI controllers.
3888c2ecf20Sopenharmony_ci
3898c2ecf20Sopenharmony_ciconfig SPI_JCORE
3908c2ecf20Sopenharmony_ci	tristate "J-Core SPI Master"
3918c2ecf20Sopenharmony_ci	depends on OF && (SUPERH || COMPILE_TEST)
3928c2ecf20Sopenharmony_ci	help
3938c2ecf20Sopenharmony_ci	  This enables support for the SPI master controller in the J-Core
3948c2ecf20Sopenharmony_ci	  synthesizable, open source SoC.
3958c2ecf20Sopenharmony_ci
3968c2ecf20Sopenharmony_ciconfig SPI_LM70_LLP
3978c2ecf20Sopenharmony_ci	tristate "Parallel port adapter for LM70 eval board (DEVELOPMENT)"
3988c2ecf20Sopenharmony_ci	depends on PARPORT
3998c2ecf20Sopenharmony_ci	select SPI_BITBANG
4008c2ecf20Sopenharmony_ci	help
4018c2ecf20Sopenharmony_ci	  This driver supports the NS LM70 LLP Evaluation Board,
4028c2ecf20Sopenharmony_ci	  which interfaces to an LM70 temperature sensor using
4038c2ecf20Sopenharmony_ci	  a parallel port.
4048c2ecf20Sopenharmony_ci
4058c2ecf20Sopenharmony_ciconfig SPI_LP8841_RTC
4068c2ecf20Sopenharmony_ci	tristate "ICP DAS LP-8841 SPI Controller for RTC"
4078c2ecf20Sopenharmony_ci	depends on MACH_PXA27X_DT || COMPILE_TEST
4088c2ecf20Sopenharmony_ci	help
4098c2ecf20Sopenharmony_ci	  This driver provides an SPI master device to drive Maxim
4108c2ecf20Sopenharmony_ci	  DS-1302 real time clock.
4118c2ecf20Sopenharmony_ci
4128c2ecf20Sopenharmony_ci	  Say N here unless you plan to run the kernel on an ICP DAS
4138c2ecf20Sopenharmony_ci	  LP-8x4x industrial computer.
4148c2ecf20Sopenharmony_ci
4158c2ecf20Sopenharmony_ciconfig SPI_MPC52xx
4168c2ecf20Sopenharmony_ci	tristate "Freescale MPC52xx SPI (non-PSC) controller support"
4178c2ecf20Sopenharmony_ci	depends on PPC_MPC52xx
4188c2ecf20Sopenharmony_ci	help
4198c2ecf20Sopenharmony_ci	  This drivers supports the MPC52xx SPI controller in master SPI
4208c2ecf20Sopenharmony_ci	  mode.
4218c2ecf20Sopenharmony_ci
4228c2ecf20Sopenharmony_ciconfig SPI_MPC52xx_PSC
4238c2ecf20Sopenharmony_ci	tristate "Freescale MPC52xx PSC SPI controller"
4248c2ecf20Sopenharmony_ci	depends on PPC_MPC52xx
4258c2ecf20Sopenharmony_ci	help
4268c2ecf20Sopenharmony_ci	  This enables using the Freescale MPC52xx Programmable Serial
4278c2ecf20Sopenharmony_ci	  Controller in master SPI mode.
4288c2ecf20Sopenharmony_ci
4298c2ecf20Sopenharmony_ciconfig SPI_MPC512x_PSC
4308c2ecf20Sopenharmony_ci	tristate "Freescale MPC512x PSC SPI controller"
4318c2ecf20Sopenharmony_ci	depends on PPC_MPC512x
4328c2ecf20Sopenharmony_ci	help
4338c2ecf20Sopenharmony_ci	  This enables using the Freescale MPC5121 Programmable Serial
4348c2ecf20Sopenharmony_ci	  Controller in SPI master mode.
4358c2ecf20Sopenharmony_ci
4368c2ecf20Sopenharmony_ciconfig SPI_FSL_LIB
4378c2ecf20Sopenharmony_ci	tristate
4388c2ecf20Sopenharmony_ci	depends on OF
4398c2ecf20Sopenharmony_ci
4408c2ecf20Sopenharmony_ciconfig SPI_FSL_CPM
4418c2ecf20Sopenharmony_ci	tristate
4428c2ecf20Sopenharmony_ci	depends on FSL_SOC
4438c2ecf20Sopenharmony_ci
4448c2ecf20Sopenharmony_ciconfig SPI_FSL_SPI
4458c2ecf20Sopenharmony_ci	tristate "Freescale SPI controller and Aeroflex Gaisler GRLIB SPI controller"
4468c2ecf20Sopenharmony_ci	depends on OF
4478c2ecf20Sopenharmony_ci	select SPI_FSL_LIB
4488c2ecf20Sopenharmony_ci	select SPI_FSL_CPM if FSL_SOC
4498c2ecf20Sopenharmony_ci	help
4508c2ecf20Sopenharmony_ci	  This enables using the Freescale SPI controllers in master mode.
4518c2ecf20Sopenharmony_ci	  MPC83xx platform uses the controller in cpu mode or CPM/QE mode.
4528c2ecf20Sopenharmony_ci	  MPC8569 uses the controller in QE mode, MPC8610 in cpu mode.
4538c2ecf20Sopenharmony_ci	  This also enables using the Aeroflex Gaisler GRLIB SPI controller in
4548c2ecf20Sopenharmony_ci	  master mode.
4558c2ecf20Sopenharmony_ci
4568c2ecf20Sopenharmony_ciconfig SPI_FSL_DSPI
4578c2ecf20Sopenharmony_ci	tristate "Freescale DSPI controller"
4588c2ecf20Sopenharmony_ci	select REGMAP_MMIO
4598c2ecf20Sopenharmony_ci	depends on SOC_VF610 || SOC_LS1021A || ARCH_LAYERSCAPE || M5441x || COMPILE_TEST
4608c2ecf20Sopenharmony_ci	help
4618c2ecf20Sopenharmony_ci	  This enables support for the Freescale DSPI controller in master
4628c2ecf20Sopenharmony_ci	  mode. VF610, LS1021A and ColdFire platforms uses the controller.
4638c2ecf20Sopenharmony_ci
4648c2ecf20Sopenharmony_ciconfig SPI_FSL_ESPI
4658c2ecf20Sopenharmony_ci	tristate "Freescale eSPI controller"
4668c2ecf20Sopenharmony_ci	depends on FSL_SOC
4678c2ecf20Sopenharmony_ci	help
4688c2ecf20Sopenharmony_ci	  This enables using the Freescale eSPI controllers in master mode.
4698c2ecf20Sopenharmony_ci	  From MPC8536, 85xx platform uses the controller, and all P10xx,
4708c2ecf20Sopenharmony_ci	  P20xx, P30xx,P40xx, P50xx uses this controller.
4718c2ecf20Sopenharmony_ci
4728c2ecf20Sopenharmony_ciconfig SPI_MESON_SPICC
4738c2ecf20Sopenharmony_ci	tristate "Amlogic Meson SPICC controller"
4748c2ecf20Sopenharmony_ci	depends on COMMON_CLK
4758c2ecf20Sopenharmony_ci	depends on ARCH_MESON || COMPILE_TEST
4768c2ecf20Sopenharmony_ci	help
4778c2ecf20Sopenharmony_ci	  This enables master mode support for the SPICC (SPI communication
4788c2ecf20Sopenharmony_ci	  controller) available in Amlogic Meson SoCs.
4798c2ecf20Sopenharmony_ci
4808c2ecf20Sopenharmony_ciconfig SPI_MESON_SPIFC
4818c2ecf20Sopenharmony_ci	tristate "Amlogic Meson SPIFC controller"
4828c2ecf20Sopenharmony_ci	depends on ARCH_MESON || COMPILE_TEST
4838c2ecf20Sopenharmony_ci	select REGMAP_MMIO
4848c2ecf20Sopenharmony_ci	help
4858c2ecf20Sopenharmony_ci	  This enables master mode support for the SPIFC (SPI flash
4868c2ecf20Sopenharmony_ci	  controller) available in Amlogic Meson SoCs.
4878c2ecf20Sopenharmony_ci
4888c2ecf20Sopenharmony_ciconfig SPI_MT65XX
4898c2ecf20Sopenharmony_ci	tristate "MediaTek SPI controller"
4908c2ecf20Sopenharmony_ci	depends on ARCH_MEDIATEK || COMPILE_TEST
4918c2ecf20Sopenharmony_ci	help
4928c2ecf20Sopenharmony_ci	  This selects the MediaTek(R) SPI bus driver.
4938c2ecf20Sopenharmony_ci	  If you want to use MediaTek(R) SPI interface,
4948c2ecf20Sopenharmony_ci	  say Y or M here.If you are not sure, say N.
4958c2ecf20Sopenharmony_ci	  SPI drivers for Mediatek MT65XX and MT81XX series ARM SoCs.
4968c2ecf20Sopenharmony_ci
4978c2ecf20Sopenharmony_ciconfig SPI_MT7621
4988c2ecf20Sopenharmony_ci	tristate "MediaTek MT7621 SPI Controller"
4998c2ecf20Sopenharmony_ci	depends on RALINK || COMPILE_TEST
5008c2ecf20Sopenharmony_ci	help
5018c2ecf20Sopenharmony_ci	  This selects a driver for the MediaTek MT7621 SPI Controller.
5028c2ecf20Sopenharmony_ci
5038c2ecf20Sopenharmony_ciconfig SPI_MTK_NOR
5048c2ecf20Sopenharmony_ci	tristate "MediaTek SPI NOR controller"
5058c2ecf20Sopenharmony_ci	depends on ARCH_MEDIATEK || COMPILE_TEST
5068c2ecf20Sopenharmony_ci	help
5078c2ecf20Sopenharmony_ci	  This enables support for SPI NOR controller found on MediaTek
5088c2ecf20Sopenharmony_ci	  ARM SoCs. This is a controller specifically for SPI NOR flash.
5098c2ecf20Sopenharmony_ci	  It can perform generic SPI transfers up to 6 bytes via generic
5108c2ecf20Sopenharmony_ci	  SPI interface as well as several SPI NOR specific instructions
5118c2ecf20Sopenharmony_ci	  via SPI MEM interface.
5128c2ecf20Sopenharmony_ci
5138c2ecf20Sopenharmony_ciconfig SPI_NPCM_FIU
5148c2ecf20Sopenharmony_ci	tristate "Nuvoton NPCM FLASH Interface Unit"
5158c2ecf20Sopenharmony_ci	depends on ARCH_NPCM || COMPILE_TEST
5168c2ecf20Sopenharmony_ci	depends on OF && HAS_IOMEM
5178c2ecf20Sopenharmony_ci	help
5188c2ecf20Sopenharmony_ci	  This enables support for the Flash Interface Unit SPI controller
5198c2ecf20Sopenharmony_ci	  in master mode.
5208c2ecf20Sopenharmony_ci	  This driver does not support generic SPI. The implementation only
5218c2ecf20Sopenharmony_ci	  supports spi-mem interface.
5228c2ecf20Sopenharmony_ci
5238c2ecf20Sopenharmony_ciconfig SPI_NPCM_PSPI
5248c2ecf20Sopenharmony_ci	tristate "Nuvoton NPCM PSPI Controller"
5258c2ecf20Sopenharmony_ci	depends on ARCH_NPCM || COMPILE_TEST
5268c2ecf20Sopenharmony_ci	help
5278c2ecf20Sopenharmony_ci	  This driver provides support for Nuvoton NPCM BMC
5288c2ecf20Sopenharmony_ci	  Peripheral SPI controller in master mode.
5298c2ecf20Sopenharmony_ci
5308c2ecf20Sopenharmony_ciconfig SPI_LANTIQ_SSC
5318c2ecf20Sopenharmony_ci	tristate "Lantiq SSC SPI controller"
5328c2ecf20Sopenharmony_ci	depends on LANTIQ || X86 || COMPILE_TEST
5338c2ecf20Sopenharmony_ci	help
5348c2ecf20Sopenharmony_ci	  This driver supports the Lantiq SSC SPI controller in master
5358c2ecf20Sopenharmony_ci	  mode. This controller is found on Intel (former Lantiq) SoCs like
5368c2ecf20Sopenharmony_ci	  the Danube, Falcon, xRX200, xRX300, Lightning Mountain.
5378c2ecf20Sopenharmony_ci
5388c2ecf20Sopenharmony_ciconfig SPI_OC_TINY
5398c2ecf20Sopenharmony_ci	tristate "OpenCores tiny SPI"
5408c2ecf20Sopenharmony_ci	depends on GPIOLIB || COMPILE_TEST
5418c2ecf20Sopenharmony_ci	select SPI_BITBANG
5428c2ecf20Sopenharmony_ci	help
5438c2ecf20Sopenharmony_ci	  This is the driver for OpenCores tiny SPI master controller.
5448c2ecf20Sopenharmony_ci
5458c2ecf20Sopenharmony_ciconfig SPI_OCTEON
5468c2ecf20Sopenharmony_ci	tristate "Cavium OCTEON SPI controller"
5478c2ecf20Sopenharmony_ci	depends on CAVIUM_OCTEON_SOC
5488c2ecf20Sopenharmony_ci	help
5498c2ecf20Sopenharmony_ci	  SPI host driver for the hardware found on some Cavium OCTEON
5508c2ecf20Sopenharmony_ci	  SOCs.
5518c2ecf20Sopenharmony_ci
5528c2ecf20Sopenharmony_ciconfig SPI_OMAP_UWIRE
5538c2ecf20Sopenharmony_ci	tristate "OMAP1 MicroWire"
5548c2ecf20Sopenharmony_ci	depends on ARCH_OMAP1
5558c2ecf20Sopenharmony_ci	select SPI_BITBANG
5568c2ecf20Sopenharmony_ci	help
5578c2ecf20Sopenharmony_ci	  This hooks up to the MicroWire controller on OMAP1 chips.
5588c2ecf20Sopenharmony_ci
5598c2ecf20Sopenharmony_ciconfig SPI_OMAP24XX
5608c2ecf20Sopenharmony_ci	tristate "McSPI driver for OMAP"
5618c2ecf20Sopenharmony_ci	depends on ARCH_OMAP2PLUS || ARCH_K3 || COMPILE_TEST
5628c2ecf20Sopenharmony_ci	select SG_SPLIT
5638c2ecf20Sopenharmony_ci	help
5648c2ecf20Sopenharmony_ci	  SPI master controller for OMAP24XX and later Multichannel SPI
5658c2ecf20Sopenharmony_ci	  (McSPI) modules.
5668c2ecf20Sopenharmony_ci
5678c2ecf20Sopenharmony_ciconfig SPI_TI_QSPI
5688c2ecf20Sopenharmony_ci	tristate "DRA7xxx QSPI controller support"
5698c2ecf20Sopenharmony_ci	depends on ARCH_OMAP2PLUS || COMPILE_TEST
5708c2ecf20Sopenharmony_ci	help
5718c2ecf20Sopenharmony_ci	  QSPI master controller for DRA7xxx used for flash devices.
5728c2ecf20Sopenharmony_ci	  This device supports single, dual and quad read support, while
5738c2ecf20Sopenharmony_ci	  it only supports single write mode.
5748c2ecf20Sopenharmony_ci
5758c2ecf20Sopenharmony_ciconfig SPI_OMAP_100K
5768c2ecf20Sopenharmony_ci	tristate "OMAP SPI 100K"
5778c2ecf20Sopenharmony_ci	depends on ARCH_OMAP850 || ARCH_OMAP730 || COMPILE_TEST
5788c2ecf20Sopenharmony_ci	help
5798c2ecf20Sopenharmony_ci	  OMAP SPI 100K master controller for omap7xx boards.
5808c2ecf20Sopenharmony_ci
5818c2ecf20Sopenharmony_ciconfig SPI_ORION
5828c2ecf20Sopenharmony_ci	tristate "Orion SPI master"
5838c2ecf20Sopenharmony_ci	depends on PLAT_ORION || ARCH_MVEBU || COMPILE_TEST
5848c2ecf20Sopenharmony_ci	help
5858c2ecf20Sopenharmony_ci	  This enables using the SPI master controller on the Orion
5868c2ecf20Sopenharmony_ci	  and MVEBU chips.
5878c2ecf20Sopenharmony_ci
5888c2ecf20Sopenharmony_ciconfig SPI_PIC32
5898c2ecf20Sopenharmony_ci	tristate "Microchip PIC32 series SPI"
5908c2ecf20Sopenharmony_ci	depends on MACH_PIC32 || COMPILE_TEST
5918c2ecf20Sopenharmony_ci	help
5928c2ecf20Sopenharmony_ci	  SPI driver for Microchip PIC32 SPI master controller.
5938c2ecf20Sopenharmony_ci
5948c2ecf20Sopenharmony_ciconfig SPI_PIC32_SQI
5958c2ecf20Sopenharmony_ci	tristate "Microchip PIC32 Quad SPI driver"
5968c2ecf20Sopenharmony_ci	depends on MACH_PIC32 || COMPILE_TEST
5978c2ecf20Sopenharmony_ci	help
5988c2ecf20Sopenharmony_ci	  SPI driver for PIC32 Quad SPI controller.
5998c2ecf20Sopenharmony_ci
6008c2ecf20Sopenharmony_ciconfig SPI_PL022
6018c2ecf20Sopenharmony_ci	tristate "ARM AMBA PL022 SSP controller"
6028c2ecf20Sopenharmony_ci	depends on ARM_AMBA
6038c2ecf20Sopenharmony_ci	default y if MACH_U300
6048c2ecf20Sopenharmony_ci	default y if ARCH_REALVIEW
6058c2ecf20Sopenharmony_ci	default y if INTEGRATOR_IMPD1
6068c2ecf20Sopenharmony_ci	default y if ARCH_VERSATILE
6078c2ecf20Sopenharmony_ci	help
6088c2ecf20Sopenharmony_ci	  This selects the ARM(R) AMBA(R) PrimeCell PL022 SSP
6098c2ecf20Sopenharmony_ci	  controller. If you have an embedded system with an AMBA(R)
6108c2ecf20Sopenharmony_ci	  bus and a PL022 controller, say Y or M here.
6118c2ecf20Sopenharmony_ci
6128c2ecf20Sopenharmony_ciconfig SPI_PPC4xx
6138c2ecf20Sopenharmony_ci	tristate "PPC4xx SPI Controller"
6148c2ecf20Sopenharmony_ci	depends on PPC32 && 4xx
6158c2ecf20Sopenharmony_ci	select SPI_BITBANG
6168c2ecf20Sopenharmony_ci	help
6178c2ecf20Sopenharmony_ci	  This selects a driver for the PPC4xx SPI Controller.
6188c2ecf20Sopenharmony_ci
6198c2ecf20Sopenharmony_ciconfig SPI_PXA2XX
6208c2ecf20Sopenharmony_ci	tristate "PXA2xx SSP SPI master"
6218c2ecf20Sopenharmony_ci	depends on ARCH_PXA || ARCH_MMP || PCI || ACPI || COMPILE_TEST
6228c2ecf20Sopenharmony_ci	select PXA_SSP if ARCH_PXA || ARCH_MMP
6238c2ecf20Sopenharmony_ci	help
6248c2ecf20Sopenharmony_ci	  This enables using a PXA2xx or Sodaville SSP port as a SPI master
6258c2ecf20Sopenharmony_ci	  controller. The driver can be configured to use any SSP port and
6268c2ecf20Sopenharmony_ci	  additional documentation can be found a Documentation/spi/pxa2xx.rst.
6278c2ecf20Sopenharmony_ci
6288c2ecf20Sopenharmony_ciconfig SPI_PXA2XX_PCI
6298c2ecf20Sopenharmony_ci	def_tristate SPI_PXA2XX && PCI && COMMON_CLK
6308c2ecf20Sopenharmony_ci
6318c2ecf20Sopenharmony_ciconfig SPI_ROCKCHIP
6328c2ecf20Sopenharmony_ci	tristate "Rockchip SPI controller driver"
6338c2ecf20Sopenharmony_ci	help
6348c2ecf20Sopenharmony_ci	  This selects a driver for Rockchip SPI controller.
6358c2ecf20Sopenharmony_ci
6368c2ecf20Sopenharmony_ci	  If you say yes to this option, support will be included for
6378c2ecf20Sopenharmony_ci	  RK3066, RK3188 and RK3288 families of SPI controller.
6388c2ecf20Sopenharmony_ci	  Rockchip SPI controller support DMA transport and PIO mode.
6398c2ecf20Sopenharmony_ci	  The main usecase of this controller is to use spi flash as boot
6408c2ecf20Sopenharmony_ci	  device.
6418c2ecf20Sopenharmony_ci
6428c2ecf20Sopenharmony_ciconfig SPI_RB4XX
6438c2ecf20Sopenharmony_ci	tristate "Mikrotik RB4XX SPI master"
6448c2ecf20Sopenharmony_ci	depends on SPI_MASTER && ATH79
6458c2ecf20Sopenharmony_ci	help
6468c2ecf20Sopenharmony_ci	  SPI controller driver for the Mikrotik RB4xx series boards.
6478c2ecf20Sopenharmony_ci
6488c2ecf20Sopenharmony_ciconfig SPI_RPCIF
6498c2ecf20Sopenharmony_ci	tristate "Renesas RPC-IF SPI driver"
6508c2ecf20Sopenharmony_ci	depends on RENESAS_RPCIF
6518c2ecf20Sopenharmony_ci	help
6528c2ecf20Sopenharmony_ci	  SPI driver for Renesas R-Car Gen3 RPC-IF.
6538c2ecf20Sopenharmony_ci
6548c2ecf20Sopenharmony_ciconfig SPI_RSPI
6558c2ecf20Sopenharmony_ci	tristate "Renesas RSPI/QSPI controller"
6568c2ecf20Sopenharmony_ci	depends on SUPERH || ARCH_RENESAS || COMPILE_TEST
6578c2ecf20Sopenharmony_ci	help
6588c2ecf20Sopenharmony_ci	  SPI driver for Renesas RSPI and QSPI blocks.
6598c2ecf20Sopenharmony_ci
6608c2ecf20Sopenharmony_ciconfig SPI_QCOM_QSPI
6618c2ecf20Sopenharmony_ci	tristate "QTI QSPI controller"
6628c2ecf20Sopenharmony_ci	depends on ARCH_QCOM
6638c2ecf20Sopenharmony_ci	help
6648c2ecf20Sopenharmony_ci	  QSPI(Quad SPI) driver for Qualcomm QSPI controller.
6658c2ecf20Sopenharmony_ci
6668c2ecf20Sopenharmony_ciconfig SPI_QUP
6678c2ecf20Sopenharmony_ci	tristate "Qualcomm SPI controller with QUP interface"
6688c2ecf20Sopenharmony_ci	depends on ARCH_QCOM || COMPILE_TEST
6698c2ecf20Sopenharmony_ci	help
6708c2ecf20Sopenharmony_ci	  Qualcomm Universal Peripheral (QUP) core is an AHB slave that
6718c2ecf20Sopenharmony_ci	  provides a common data path (an output FIFO and an input FIFO)
6728c2ecf20Sopenharmony_ci	  for serial peripheral interface (SPI) mini-core. SPI in master
6738c2ecf20Sopenharmony_ci	  mode supports up to 50MHz, up to four chip selects, programmable
6748c2ecf20Sopenharmony_ci	  data path from 4 bits to 32 bits and numerous protocol variants.
6758c2ecf20Sopenharmony_ci
6768c2ecf20Sopenharmony_ci	  This driver can also be built as a module.  If so, the module
6778c2ecf20Sopenharmony_ci	  will be called spi_qup.
6788c2ecf20Sopenharmony_ci
6798c2ecf20Sopenharmony_ciconfig SPI_QCOM_GENI
6808c2ecf20Sopenharmony_ci	tristate "Qualcomm GENI based SPI controller"
6818c2ecf20Sopenharmony_ci	depends on QCOM_GENI_SE
6828c2ecf20Sopenharmony_ci	help
6838c2ecf20Sopenharmony_ci	  This driver supports GENI serial engine based SPI controller in
6848c2ecf20Sopenharmony_ci	  master mode on the Qualcomm Technologies Inc.'s SoCs. If you say
6858c2ecf20Sopenharmony_ci	  yes to this option, support will be included for the built-in SPI
6868c2ecf20Sopenharmony_ci	  interface on the Qualcomm Technologies Inc.'s SoCs.
6878c2ecf20Sopenharmony_ci
6888c2ecf20Sopenharmony_ci	  This driver can also be built as a module.  If so, the module
6898c2ecf20Sopenharmony_ci	  will be called spi-geni-qcom.
6908c2ecf20Sopenharmony_ci
6918c2ecf20Sopenharmony_ciconfig SPI_S3C24XX
6928c2ecf20Sopenharmony_ci	tristate "Samsung S3C24XX series SPI"
6938c2ecf20Sopenharmony_ci	depends on ARCH_S3C24XX
6948c2ecf20Sopenharmony_ci	select SPI_BITBANG
6958c2ecf20Sopenharmony_ci	help
6968c2ecf20Sopenharmony_ci	  SPI driver for Samsung S3C24XX series ARM SoCs
6978c2ecf20Sopenharmony_ci
6988c2ecf20Sopenharmony_ciconfig SPI_S3C24XX_FIQ
6998c2ecf20Sopenharmony_ci	bool "S3C24XX driver with FIQ pseudo-DMA"
7008c2ecf20Sopenharmony_ci	depends on SPI_S3C24XX
7018c2ecf20Sopenharmony_ci	select FIQ
7028c2ecf20Sopenharmony_ci	help
7038c2ecf20Sopenharmony_ci	  Enable FIQ support for the S3C24XX SPI driver to provide pseudo
7048c2ecf20Sopenharmony_ci	  DMA by using the fast-interrupt request framework, This allows
7058c2ecf20Sopenharmony_ci	  the driver to get DMA-like performance when there are either
7068c2ecf20Sopenharmony_ci	  no free DMA channels, or when doing transfers that required both
7078c2ecf20Sopenharmony_ci	  TX and RX data paths.
7088c2ecf20Sopenharmony_ci
7098c2ecf20Sopenharmony_ciconfig SPI_S3C64XX
7108c2ecf20Sopenharmony_ci	tristate "Samsung S3C64XX series type SPI"
7118c2ecf20Sopenharmony_ci	depends on (PLAT_SAMSUNG || ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST)
7128c2ecf20Sopenharmony_ci	help
7138c2ecf20Sopenharmony_ci	  SPI driver for Samsung S3C64XX and newer SoCs.
7148c2ecf20Sopenharmony_ci
7158c2ecf20Sopenharmony_ciconfig SPI_SC18IS602
7168c2ecf20Sopenharmony_ci	tristate "NXP SC18IS602/602B/603 I2C to SPI bridge"
7178c2ecf20Sopenharmony_ci	depends on I2C
7188c2ecf20Sopenharmony_ci	help
7198c2ecf20Sopenharmony_ci	  SPI driver for NXP SC18IS602/602B/603 I2C to SPI bridge.
7208c2ecf20Sopenharmony_ci
7218c2ecf20Sopenharmony_ciconfig SPI_SH_MSIOF
7228c2ecf20Sopenharmony_ci	tristate "SuperH MSIOF SPI controller"
7238c2ecf20Sopenharmony_ci	depends on HAVE_CLK
7248c2ecf20Sopenharmony_ci	depends on ARCH_SHMOBILE || ARCH_RENESAS || COMPILE_TEST
7258c2ecf20Sopenharmony_ci	help
7268c2ecf20Sopenharmony_ci	  SPI driver for SuperH and SH Mobile MSIOF blocks.
7278c2ecf20Sopenharmony_ci
7288c2ecf20Sopenharmony_ciconfig SPI_SH
7298c2ecf20Sopenharmony_ci	tristate "SuperH SPI controller"
7308c2ecf20Sopenharmony_ci	depends on SUPERH || COMPILE_TEST
7318c2ecf20Sopenharmony_ci	help
7328c2ecf20Sopenharmony_ci	  SPI driver for SuperH SPI blocks.
7338c2ecf20Sopenharmony_ci
7348c2ecf20Sopenharmony_ciconfig SPI_SH_SCI
7358c2ecf20Sopenharmony_ci	tristate "SuperH SCI SPI controller"
7368c2ecf20Sopenharmony_ci	depends on SUPERH
7378c2ecf20Sopenharmony_ci	select SPI_BITBANG
7388c2ecf20Sopenharmony_ci	help
7398c2ecf20Sopenharmony_ci	  SPI driver for SuperH SCI blocks.
7408c2ecf20Sopenharmony_ci
7418c2ecf20Sopenharmony_ciconfig SPI_SH_HSPI
7428c2ecf20Sopenharmony_ci	tristate "SuperH HSPI controller"
7438c2ecf20Sopenharmony_ci	depends on ARCH_RENESAS || COMPILE_TEST
7448c2ecf20Sopenharmony_ci	help
7458c2ecf20Sopenharmony_ci	  SPI driver for SuperH HSPI blocks.
7468c2ecf20Sopenharmony_ci
7478c2ecf20Sopenharmony_ciconfig SPI_SIFIVE
7488c2ecf20Sopenharmony_ci	tristate "SiFive SPI controller"
7498c2ecf20Sopenharmony_ci	depends on HAS_IOMEM
7508c2ecf20Sopenharmony_ci	help
7518c2ecf20Sopenharmony_ci	  This exposes the SPI controller IP from SiFive.
7528c2ecf20Sopenharmony_ci
7538c2ecf20Sopenharmony_ciconfig SPI_SIRF
7548c2ecf20Sopenharmony_ci	tristate "CSR SiRFprimaII SPI controller"
7558c2ecf20Sopenharmony_ci	depends on SIRF_DMA
7568c2ecf20Sopenharmony_ci	select SPI_BITBANG
7578c2ecf20Sopenharmony_ci	help
7588c2ecf20Sopenharmony_ci	  SPI driver for CSR SiRFprimaII SoCs
7598c2ecf20Sopenharmony_ci
7608c2ecf20Sopenharmony_ciconfig SPI_SLAVE_MT27XX
7618c2ecf20Sopenharmony_ci	tristate "MediaTek SPI slave device"
7628c2ecf20Sopenharmony_ci	depends on ARCH_MEDIATEK || COMPILE_TEST
7638c2ecf20Sopenharmony_ci	depends on SPI_SLAVE
7648c2ecf20Sopenharmony_ci	help
7658c2ecf20Sopenharmony_ci	  This selects the MediaTek(R) SPI slave device driver.
7668c2ecf20Sopenharmony_ci	  If you want to use MediaTek(R) SPI slave interface,
7678c2ecf20Sopenharmony_ci	  say Y or M here.If you are not sure, say N.
7688c2ecf20Sopenharmony_ci	  SPI slave drivers for Mediatek MT27XX series ARM SoCs.
7698c2ecf20Sopenharmony_ci
7708c2ecf20Sopenharmony_ciconfig SPI_SPRD
7718c2ecf20Sopenharmony_ci	tristate "Spreadtrum SPI controller"
7728c2ecf20Sopenharmony_ci	depends on ARCH_SPRD || COMPILE_TEST
7738c2ecf20Sopenharmony_ci	help
7748c2ecf20Sopenharmony_ci	  SPI driver for Spreadtrum SoCs.
7758c2ecf20Sopenharmony_ci
7768c2ecf20Sopenharmony_ciconfig SPI_SPRD_ADI
7778c2ecf20Sopenharmony_ci	tristate "Spreadtrum ADI controller"
7788c2ecf20Sopenharmony_ci	depends on ARCH_SPRD || COMPILE_TEST
7798c2ecf20Sopenharmony_ci	depends on HWSPINLOCK || (COMPILE_TEST && !HWSPINLOCK)
7808c2ecf20Sopenharmony_ci	help
7818c2ecf20Sopenharmony_ci	  ADI driver based on SPI for Spreadtrum SoCs.
7828c2ecf20Sopenharmony_ci
7838c2ecf20Sopenharmony_ciconfig SPI_STM32
7848c2ecf20Sopenharmony_ci	tristate "STMicroelectronics STM32 SPI controller"
7858c2ecf20Sopenharmony_ci	depends on ARCH_STM32 || COMPILE_TEST
7868c2ecf20Sopenharmony_ci	help
7878c2ecf20Sopenharmony_ci	  SPI driver for STMicroelectronics STM32 SoCs.
7888c2ecf20Sopenharmony_ci
7898c2ecf20Sopenharmony_ci	  STM32 SPI controller supports DMA and PIO modes. When DMA
7908c2ecf20Sopenharmony_ci	  is not available, the driver automatically falls back to
7918c2ecf20Sopenharmony_ci	  PIO mode.
7928c2ecf20Sopenharmony_ci
7938c2ecf20Sopenharmony_ciconfig SPI_STM32_QSPI
7948c2ecf20Sopenharmony_ci	tristate "STMicroelectronics STM32 QUAD SPI controller"
7958c2ecf20Sopenharmony_ci	depends on ARCH_STM32 || COMPILE_TEST
7968c2ecf20Sopenharmony_ci	depends on OF
7978c2ecf20Sopenharmony_ci	help
7988c2ecf20Sopenharmony_ci	  This enables support for the Quad SPI controller in master mode.
7998c2ecf20Sopenharmony_ci	  This driver does not support generic SPI. The implementation only
8008c2ecf20Sopenharmony_ci	  supports spi-mem interface.
8018c2ecf20Sopenharmony_ci
8028c2ecf20Sopenharmony_ciconfig SPI_ST_SSC4
8038c2ecf20Sopenharmony_ci	tristate "STMicroelectronics SPI SSC-based driver"
8048c2ecf20Sopenharmony_ci	depends on ARCH_STI || COMPILE_TEST
8058c2ecf20Sopenharmony_ci	help
8068c2ecf20Sopenharmony_ci	  STMicroelectronics SoCs support for SPI. If you say yes to
8078c2ecf20Sopenharmony_ci	  this option, support will be included for the SSC driven SPI.
8088c2ecf20Sopenharmony_ci
8098c2ecf20Sopenharmony_ciconfig SPI_SUN4I
8108c2ecf20Sopenharmony_ci	tristate "Allwinner A10 SoCs SPI controller"
8118c2ecf20Sopenharmony_ci	depends on ARCH_SUNXI || COMPILE_TEST
8128c2ecf20Sopenharmony_ci	help
8138c2ecf20Sopenharmony_ci	  SPI driver for Allwinner sun4i, sun5i and sun7i SoCs
8148c2ecf20Sopenharmony_ci
8158c2ecf20Sopenharmony_ciconfig SPI_SUN6I
8168c2ecf20Sopenharmony_ci	tristate "Allwinner A31 SPI controller"
8178c2ecf20Sopenharmony_ci	depends on ARCH_SUNXI || COMPILE_TEST
8188c2ecf20Sopenharmony_ci	depends on RESET_CONTROLLER
8198c2ecf20Sopenharmony_ci	help
8208c2ecf20Sopenharmony_ci	  This enables using the SPI controller on the Allwinner A31 SoCs.
8218c2ecf20Sopenharmony_ci
8228c2ecf20Sopenharmony_ciconfig SPI_SYNQUACER
8238c2ecf20Sopenharmony_ci	tristate "Socionext's SynQuacer HighSpeed SPI controller"
8248c2ecf20Sopenharmony_ci	depends on ARCH_SYNQUACER || COMPILE_TEST
8258c2ecf20Sopenharmony_ci	help
8268c2ecf20Sopenharmony_ci	  SPI driver for Socionext's High speed SPI controller which provides
8278c2ecf20Sopenharmony_ci	  various operating modes for interfacing to serial peripheral devices
8288c2ecf20Sopenharmony_ci	  that use the de-facto standard SPI protocol.
8298c2ecf20Sopenharmony_ci
8308c2ecf20Sopenharmony_ci	  It also supports the new dual-bit and quad-bit SPI protocol.
8318c2ecf20Sopenharmony_ci
8328c2ecf20Sopenharmony_ciconfig SPI_MXIC
8338c2ecf20Sopenharmony_ci	tristate "Macronix MX25F0A SPI controller"
8348c2ecf20Sopenharmony_ci	depends on SPI_MASTER
8358c2ecf20Sopenharmony_ci	help
8368c2ecf20Sopenharmony_ci	  This selects the Macronix MX25F0A SPI controller driver.
8378c2ecf20Sopenharmony_ci
8388c2ecf20Sopenharmony_ciconfig SPI_MXS
8398c2ecf20Sopenharmony_ci	tristate "Freescale MXS SPI controller"
8408c2ecf20Sopenharmony_ci	depends on ARCH_MXS
8418c2ecf20Sopenharmony_ci	select STMP_DEVICE
8428c2ecf20Sopenharmony_ci	help
8438c2ecf20Sopenharmony_ci	  SPI driver for Freescale MXS devices.
8448c2ecf20Sopenharmony_ci
8458c2ecf20Sopenharmony_ciconfig SPI_TEGRA114
8468c2ecf20Sopenharmony_ci	tristate "NVIDIA Tegra114 SPI Controller"
8478c2ecf20Sopenharmony_ci	depends on (ARCH_TEGRA && TEGRA20_APB_DMA) || COMPILE_TEST
8488c2ecf20Sopenharmony_ci	depends on RESET_CONTROLLER
8498c2ecf20Sopenharmony_ci	help
8508c2ecf20Sopenharmony_ci	  SPI driver for NVIDIA Tegra114 SPI Controller interface. This controller
8518c2ecf20Sopenharmony_ci	  is different than the older SoCs SPI controller and also register interface
8528c2ecf20Sopenharmony_ci	  get changed with this controller.
8538c2ecf20Sopenharmony_ci
8548c2ecf20Sopenharmony_ciconfig SPI_TEGRA20_SFLASH
8558c2ecf20Sopenharmony_ci	tristate "Nvidia Tegra20 Serial flash Controller"
8568c2ecf20Sopenharmony_ci	depends on ARCH_TEGRA || COMPILE_TEST
8578c2ecf20Sopenharmony_ci	depends on RESET_CONTROLLER
8588c2ecf20Sopenharmony_ci	help
8598c2ecf20Sopenharmony_ci	  SPI driver for Nvidia Tegra20 Serial flash Controller interface.
8608c2ecf20Sopenharmony_ci	  The main usecase of this controller is to use spi flash as boot
8618c2ecf20Sopenharmony_ci	  device.
8628c2ecf20Sopenharmony_ci
8638c2ecf20Sopenharmony_ciconfig SPI_TEGRA20_SLINK
8648c2ecf20Sopenharmony_ci	tristate "Nvidia Tegra20/Tegra30 SLINK Controller"
8658c2ecf20Sopenharmony_ci	depends on (ARCH_TEGRA && TEGRA20_APB_DMA) || COMPILE_TEST
8668c2ecf20Sopenharmony_ci	depends on RESET_CONTROLLER
8678c2ecf20Sopenharmony_ci	help
8688c2ecf20Sopenharmony_ci	  SPI driver for Nvidia Tegra20/Tegra30 SLINK Controller interface.
8698c2ecf20Sopenharmony_ci
8708c2ecf20Sopenharmony_ciconfig SPI_THUNDERX
8718c2ecf20Sopenharmony_ci	tristate "Cavium ThunderX SPI controller"
8728c2ecf20Sopenharmony_ci	depends on PCI && 64BIT && (ARM64 || COMPILE_TEST)
8738c2ecf20Sopenharmony_ci	help
8748c2ecf20Sopenharmony_ci	  SPI host driver for the hardware found on Cavium ThunderX
8758c2ecf20Sopenharmony_ci	  SOCs.
8768c2ecf20Sopenharmony_ci
8778c2ecf20Sopenharmony_ciconfig SPI_TOPCLIFF_PCH
8788c2ecf20Sopenharmony_ci	tristate "Intel EG20T PCH/LAPIS Semicon IOH(ML7213/ML7223/ML7831) SPI"
8798c2ecf20Sopenharmony_ci	depends on PCI && (X86_32 || MIPS || COMPILE_TEST)
8808c2ecf20Sopenharmony_ci	help
8818c2ecf20Sopenharmony_ci	  SPI driver for the Topcliff PCH (Platform Controller Hub) SPI bus
8828c2ecf20Sopenharmony_ci	  used in some x86 embedded processors.
8838c2ecf20Sopenharmony_ci
8848c2ecf20Sopenharmony_ci	  This driver also supports the ML7213/ML7223/ML7831, a companion chip
8858c2ecf20Sopenharmony_ci	  for the Atom E6xx series and compatible with the Intel EG20T PCH.
8868c2ecf20Sopenharmony_ci
8878c2ecf20Sopenharmony_ciconfig SPI_TXX9
8888c2ecf20Sopenharmony_ci	tristate "Toshiba TXx9 SPI controller"
8898c2ecf20Sopenharmony_ci	depends on GPIOLIB && (CPU_TX49XX || COMPILE_TEST)
8908c2ecf20Sopenharmony_ci	help
8918c2ecf20Sopenharmony_ci	  SPI driver for Toshiba TXx9 MIPS SoCs
8928c2ecf20Sopenharmony_ci
8938c2ecf20Sopenharmony_ciconfig SPI_UNIPHIER
8948c2ecf20Sopenharmony_ci	tristate "Socionext UniPhier SPI Controller"
8958c2ecf20Sopenharmony_ci	depends on (ARCH_UNIPHIER || COMPILE_TEST) && OF
8968c2ecf20Sopenharmony_ci	depends on HAS_IOMEM
8978c2ecf20Sopenharmony_ci	help
8988c2ecf20Sopenharmony_ci	  This enables a driver for the Socionext UniPhier SoC SCSSI SPI controller.
8998c2ecf20Sopenharmony_ci
9008c2ecf20Sopenharmony_ci	  UniPhier SoCs have SCSSI and MCSSI SPI controllers.
9018c2ecf20Sopenharmony_ci	  Every UniPhier SoC has SCSSI which supports single channel.
9028c2ecf20Sopenharmony_ci	  Older UniPhier Pro4/Pro5 also has MCSSI which support multiple channels.
9038c2ecf20Sopenharmony_ci	  This driver supports SCSSI only.
9048c2ecf20Sopenharmony_ci
9058c2ecf20Sopenharmony_ci	  If your SoC supports SCSSI, say Y here.
9068c2ecf20Sopenharmony_ci
9078c2ecf20Sopenharmony_ciconfig SPI_XCOMM
9088c2ecf20Sopenharmony_ci	tristate "Analog Devices AD-FMCOMMS1-EBZ SPI-I2C-bridge driver"
9098c2ecf20Sopenharmony_ci	depends on I2C
9108c2ecf20Sopenharmony_ci	help
9118c2ecf20Sopenharmony_ci	  Support for the SPI-I2C bridge found on the Analog Devices
9128c2ecf20Sopenharmony_ci	  AD-FMCOMMS1-EBZ board.
9138c2ecf20Sopenharmony_ci
9148c2ecf20Sopenharmony_ciconfig SPI_XILINX
9158c2ecf20Sopenharmony_ci	tristate "Xilinx SPI controller common module"
9168c2ecf20Sopenharmony_ci	depends on HAS_IOMEM
9178c2ecf20Sopenharmony_ci	select SPI_BITBANG
9188c2ecf20Sopenharmony_ci	help
9198c2ecf20Sopenharmony_ci	  This exposes the SPI controller IP from the Xilinx EDK.
9208c2ecf20Sopenharmony_ci
9218c2ecf20Sopenharmony_ci	  See the "OPB Serial Peripheral Interface (SPI) (v1.00e)"
9228c2ecf20Sopenharmony_ci	  Product Specification document (DS464) for hardware details.
9238c2ecf20Sopenharmony_ci
9248c2ecf20Sopenharmony_ci	  Or for the DS570, see "XPS Serial Peripheral Interface (SPI) (v2.00b)"
9258c2ecf20Sopenharmony_ci
9268c2ecf20Sopenharmony_ciconfig SPI_XLP
9278c2ecf20Sopenharmony_ci	tristate "Netlogic XLP SPI controller driver"
9288c2ecf20Sopenharmony_ci	depends on CPU_XLP || ARCH_THUNDER2 || COMPILE_TEST
9298c2ecf20Sopenharmony_ci	help
9308c2ecf20Sopenharmony_ci	  Enable support for the SPI controller on the Netlogic XLP SoCs.
9318c2ecf20Sopenharmony_ci	  Currently supported XLP variants are XLP8XX, XLP3XX, XLP2XX, XLP9XX
9328c2ecf20Sopenharmony_ci	  and XLP5XX.
9338c2ecf20Sopenharmony_ci
9348c2ecf20Sopenharmony_ci	  If you have a Netlogic XLP platform say Y here.
9358c2ecf20Sopenharmony_ci	  If unsure, say N.
9368c2ecf20Sopenharmony_ci
9378c2ecf20Sopenharmony_ciconfig SPI_XTENSA_XTFPGA
9388c2ecf20Sopenharmony_ci	tristate "Xtensa SPI controller for xtfpga"
9398c2ecf20Sopenharmony_ci	depends on (XTENSA && XTENSA_PLATFORM_XTFPGA) || COMPILE_TEST
9408c2ecf20Sopenharmony_ci	select SPI_BITBANG
9418c2ecf20Sopenharmony_ci	help
9428c2ecf20Sopenharmony_ci	  SPI driver for xtfpga SPI master controller.
9438c2ecf20Sopenharmony_ci
9448c2ecf20Sopenharmony_ci	  This simple SPI master controller is built into xtfpga bitstreams
9458c2ecf20Sopenharmony_ci	  and is used to control daughterboard audio codec. It always transfers
9468c2ecf20Sopenharmony_ci	  16 bit words in SPI mode 0, automatically asserting CS on transfer
9478c2ecf20Sopenharmony_ci	  start and deasserting on end.
9488c2ecf20Sopenharmony_ci
9498c2ecf20Sopenharmony_ciconfig SPI_ZYNQ_QSPI
9508c2ecf20Sopenharmony_ci	tristate "Xilinx Zynq QSPI controller"
9518c2ecf20Sopenharmony_ci	depends on ARCH_ZYNQ || COMPILE_TEST
9528c2ecf20Sopenharmony_ci	depends on SPI_MEM
9538c2ecf20Sopenharmony_ci	help
9548c2ecf20Sopenharmony_ci	  This enables support for the Zynq Quad SPI controller
9558c2ecf20Sopenharmony_ci	  in master mode.
9568c2ecf20Sopenharmony_ci	  This controller only supports SPI memory interface.
9578c2ecf20Sopenharmony_ci
9588c2ecf20Sopenharmony_ciconfig SPI_ZYNQMP_GQSPI
9598c2ecf20Sopenharmony_ci	tristate "Xilinx ZynqMP GQSPI controller"
9608c2ecf20Sopenharmony_ci	depends on (SPI_MEM && HAS_DMA) || COMPILE_TEST
9618c2ecf20Sopenharmony_ci	help
9628c2ecf20Sopenharmony_ci	  Enables Xilinx GQSPI controller driver for Zynq UltraScale+ MPSoC.
9638c2ecf20Sopenharmony_ci	  This controller only supports SPI memory interface.
9648c2ecf20Sopenharmony_ci
9658c2ecf20Sopenharmony_ciconfig SPI_AMD
9668c2ecf20Sopenharmony_ci	tristate "AMD SPI controller"
9678c2ecf20Sopenharmony_ci	depends on SPI_MASTER || COMPILE_TEST
9688c2ecf20Sopenharmony_ci	help
9698c2ecf20Sopenharmony_ci	  Enables SPI controller driver for AMD SoC.
9708c2ecf20Sopenharmony_ci
9718c2ecf20Sopenharmony_ci#
9728c2ecf20Sopenharmony_ci# Add new SPI master controllers in alphabetical order above this line
9738c2ecf20Sopenharmony_ci#
9748c2ecf20Sopenharmony_ci
9758c2ecf20Sopenharmony_cicomment "SPI Multiplexer support"
9768c2ecf20Sopenharmony_ci
9778c2ecf20Sopenharmony_ciconfig SPI_MUX
9788c2ecf20Sopenharmony_ci	tristate "SPI multiplexer support"
9798c2ecf20Sopenharmony_ci	select MULTIPLEXER
9808c2ecf20Sopenharmony_ci	help
9818c2ecf20Sopenharmony_ci	  This adds support for SPI multiplexers. Each SPI mux will be
9828c2ecf20Sopenharmony_ci	  accessible as a SPI controller, the devices behind the mux will appear
9838c2ecf20Sopenharmony_ci	  to be chip selects on this controller. It is still necessary to
9848c2ecf20Sopenharmony_ci	  select one or more specific mux-controller drivers.
9858c2ecf20Sopenharmony_ci
9868c2ecf20Sopenharmony_ci#
9878c2ecf20Sopenharmony_ci# There are lots of SPI device types, with sensors and memory
9888c2ecf20Sopenharmony_ci# being probably the most widely used ones.
9898c2ecf20Sopenharmony_ci#
9908c2ecf20Sopenharmony_cicomment "SPI Protocol Masters"
9918c2ecf20Sopenharmony_ci
9928c2ecf20Sopenharmony_ciconfig SPI_SPIDEV
9938c2ecf20Sopenharmony_ci	tristate "User mode SPI device driver support"
9948c2ecf20Sopenharmony_ci	help
9958c2ecf20Sopenharmony_ci	  This supports user mode SPI protocol drivers.
9968c2ecf20Sopenharmony_ci
9978c2ecf20Sopenharmony_ci	  Note that this application programming interface is EXPERIMENTAL
9988c2ecf20Sopenharmony_ci	  and hence SUBJECT TO CHANGE WITHOUT NOTICE while it stabilizes.
9998c2ecf20Sopenharmony_ci
10008c2ecf20Sopenharmony_ciconfig SPI_LOOPBACK_TEST
10018c2ecf20Sopenharmony_ci	tristate "spi loopback test framework support"
10028c2ecf20Sopenharmony_ci	depends on m
10038c2ecf20Sopenharmony_ci	help
10048c2ecf20Sopenharmony_ci	  This enables the SPI loopback testing framework driver
10058c2ecf20Sopenharmony_ci
10068c2ecf20Sopenharmony_ci	  primarily used for development of spi_master drivers
10078c2ecf20Sopenharmony_ci	  and to detect regressions
10088c2ecf20Sopenharmony_ci
10098c2ecf20Sopenharmony_ciconfig SPI_TLE62X0
10108c2ecf20Sopenharmony_ci	tristate "Infineon TLE62X0 (for power switching)"
10118c2ecf20Sopenharmony_ci	depends on SYSFS
10128c2ecf20Sopenharmony_ci	help
10138c2ecf20Sopenharmony_ci	  SPI driver for Infineon TLE62X0 series line driver chips,
10148c2ecf20Sopenharmony_ci	  such as the TLE6220, TLE6230 and TLE6240.  This provides a
10158c2ecf20Sopenharmony_ci	  sysfs interface, with each line presented as a kind of GPIO
10168c2ecf20Sopenharmony_ci	  exposing both switch control and diagnostic feedback.
10178c2ecf20Sopenharmony_ci
10188c2ecf20Sopenharmony_ci#
10198c2ecf20Sopenharmony_ci# Add new SPI protocol masters in alphabetical order above this line
10208c2ecf20Sopenharmony_ci#
10218c2ecf20Sopenharmony_ci
10228c2ecf20Sopenharmony_ciendif # SPI_MASTER
10238c2ecf20Sopenharmony_ci
10248c2ecf20Sopenharmony_ci#
10258c2ecf20Sopenharmony_ci# SLAVE side ... listening to other SPI masters
10268c2ecf20Sopenharmony_ci#
10278c2ecf20Sopenharmony_ci
10288c2ecf20Sopenharmony_ciconfig SPI_SLAVE
10298c2ecf20Sopenharmony_ci	bool "SPI slave protocol handlers"
10308c2ecf20Sopenharmony_ci	help
10318c2ecf20Sopenharmony_ci	  If your system has a slave-capable SPI controller, you can enable
10328c2ecf20Sopenharmony_ci	  slave protocol handlers.
10338c2ecf20Sopenharmony_ci
10348c2ecf20Sopenharmony_ciif SPI_SLAVE
10358c2ecf20Sopenharmony_ci
10368c2ecf20Sopenharmony_ciconfig SPI_SLAVE_TIME
10378c2ecf20Sopenharmony_ci	tristate "SPI slave handler reporting boot up time"
10388c2ecf20Sopenharmony_ci	help
10398c2ecf20Sopenharmony_ci	  SPI slave handler responding with the time of reception of the last
10408c2ecf20Sopenharmony_ci	  SPI message.
10418c2ecf20Sopenharmony_ci
10428c2ecf20Sopenharmony_ciconfig SPI_SLAVE_SYSTEM_CONTROL
10438c2ecf20Sopenharmony_ci	tristate "SPI slave handler controlling system state"
10448c2ecf20Sopenharmony_ci	help
10458c2ecf20Sopenharmony_ci	  SPI slave handler to allow remote control of system reboot, power
10468c2ecf20Sopenharmony_ci	  off, halt, and suspend.
10478c2ecf20Sopenharmony_ci
10488c2ecf20Sopenharmony_ciendif # SPI_SLAVE
10498c2ecf20Sopenharmony_ci
10508c2ecf20Sopenharmony_ciconfig SPI_DYNAMIC
10518c2ecf20Sopenharmony_ci	def_bool ACPI || OF_DYNAMIC || SPI_SLAVE
10528c2ecf20Sopenharmony_ci
10538c2ecf20Sopenharmony_ciendif # SPI
1054