162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only 262306a36Sopenharmony_ci# 362306a36Sopenharmony_ci# SPI driver configuration 462306a36Sopenharmony_ci# 562306a36Sopenharmony_cimenuconfig SPI 662306a36Sopenharmony_ci bool "SPI support" 762306a36Sopenharmony_ci depends on HAS_IOMEM 862306a36Sopenharmony_ci help 962306a36Sopenharmony_ci The "Serial Peripheral Interface" is a low level synchronous 1062306a36Sopenharmony_ci protocol. Chips that support SPI can have data transfer rates 1162306a36Sopenharmony_ci up to several tens of Mbit/sec. Chips are addressed with a 1262306a36Sopenharmony_ci controller and a chipselect. Most SPI slaves don't support 1362306a36Sopenharmony_ci dynamic device discovery; some are even write-only or read-only. 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ci SPI is widely used by microcontrollers to talk with sensors, 1662306a36Sopenharmony_ci eeprom and flash memory, codecs and various other controller 1762306a36Sopenharmony_ci chips, analog to digital (and d-to-a) converters, and more. 1862306a36Sopenharmony_ci MMC and SD cards can be accessed using SPI protocol; and for 1962306a36Sopenharmony_ci DataFlash cards used in MMC sockets, SPI must always be used. 2062306a36Sopenharmony_ci 2162306a36Sopenharmony_ci SPI is one of a family of similar protocols using a four wire 2262306a36Sopenharmony_ci interface (select, clock, data in, data out) including Microwire 2362306a36Sopenharmony_ci (half duplex), SSP, SSI, and PSP. This driver framework should 2462306a36Sopenharmony_ci work with most such devices and controllers. 2562306a36Sopenharmony_ci 2662306a36Sopenharmony_ciif SPI 2762306a36Sopenharmony_ci 2862306a36Sopenharmony_ciconfig SPI_DEBUG 2962306a36Sopenharmony_ci bool "Debug support for SPI drivers" 3062306a36Sopenharmony_ci depends on DEBUG_KERNEL 3162306a36Sopenharmony_ci help 3262306a36Sopenharmony_ci Say "yes" to enable debug messaging (like dev_dbg and pr_debug), 3362306a36Sopenharmony_ci sysfs, and debugfs support in SPI controller and protocol drivers. 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ci# 3662306a36Sopenharmony_ci# MASTER side ... talking to discrete SPI slave chips including microcontrollers 3762306a36Sopenharmony_ci# 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ciconfig SPI_MASTER 4062306a36Sopenharmony_ci# bool "SPI Master Support" 4162306a36Sopenharmony_ci bool 4262306a36Sopenharmony_ci default SPI 4362306a36Sopenharmony_ci help 4462306a36Sopenharmony_ci If your system has an master-capable SPI controller (which 4562306a36Sopenharmony_ci provides the clock and chipselect), you can enable that 4662306a36Sopenharmony_ci controller and the protocol drivers for the SPI slave chips 4762306a36Sopenharmony_ci that are connected. 4862306a36Sopenharmony_ci 4962306a36Sopenharmony_ciif SPI_MASTER 5062306a36Sopenharmony_ci 5162306a36Sopenharmony_ciconfig SPI_MEM 5262306a36Sopenharmony_ci bool "SPI memory extension" 5362306a36Sopenharmony_ci help 5462306a36Sopenharmony_ci Enable this option if you want to enable the SPI memory extension. 5562306a36Sopenharmony_ci This extension is meant to simplify interaction with SPI memories 5662306a36Sopenharmony_ci by providing a high-level interface to send memory-like commands. 5762306a36Sopenharmony_ci 5862306a36Sopenharmony_cicomment "SPI Master Controller Drivers" 5962306a36Sopenharmony_ci 6062306a36Sopenharmony_ciconfig SPI_ALTERA 6162306a36Sopenharmony_ci tristate "Altera SPI Controller platform driver" 6262306a36Sopenharmony_ci select SPI_ALTERA_CORE 6362306a36Sopenharmony_ci select REGMAP_MMIO 6462306a36Sopenharmony_ci help 6562306a36Sopenharmony_ci This is the driver for the Altera SPI Controller. 6662306a36Sopenharmony_ci 6762306a36Sopenharmony_ciconfig SPI_ALTERA_CORE 6862306a36Sopenharmony_ci tristate "Altera SPI Controller core code" if COMPILE_TEST 6962306a36Sopenharmony_ci select REGMAP 7062306a36Sopenharmony_ci help 7162306a36Sopenharmony_ci "The core code for the Altera SPI Controller" 7262306a36Sopenharmony_ci 7362306a36Sopenharmony_ciconfig SPI_ALTERA_DFL 7462306a36Sopenharmony_ci tristate "DFL bus driver for Altera SPI Controller" 7562306a36Sopenharmony_ci depends on FPGA_DFL 7662306a36Sopenharmony_ci select SPI_ALTERA_CORE 7762306a36Sopenharmony_ci help 7862306a36Sopenharmony_ci This is a Device Feature List (DFL) bus driver for the 7962306a36Sopenharmony_ci Altera SPI master controller. The SPI master is connected 8062306a36Sopenharmony_ci to a SPI slave to Avalon bridge in a Intel MAX BMC. 8162306a36Sopenharmony_ci 8262306a36Sopenharmony_ciconfig SPI_AMLOGIC_SPIFC_A1 8362306a36Sopenharmony_ci tristate "Amlogic A1 SPIFC controller" 8462306a36Sopenharmony_ci depends on ARCH_MESON || COMPILE_TEST 8562306a36Sopenharmony_ci help 8662306a36Sopenharmony_ci This enables master mode support for the SPIFC (SPI flash 8762306a36Sopenharmony_ci controller) available in Amlogic A1 (A113L SoC). 8862306a36Sopenharmony_ci 8962306a36Sopenharmony_ciconfig SPI_AR934X 9062306a36Sopenharmony_ci tristate "Qualcomm Atheros AR934X/QCA95XX SPI controller driver" 9162306a36Sopenharmony_ci depends on ATH79 || COMPILE_TEST 9262306a36Sopenharmony_ci help 9362306a36Sopenharmony_ci This enables support for the SPI controller present on the 9462306a36Sopenharmony_ci Qualcomm Atheros AR934X/QCA95XX SoCs. 9562306a36Sopenharmony_ci 9662306a36Sopenharmony_ciconfig SPI_ATH79 9762306a36Sopenharmony_ci tristate "Atheros AR71XX/AR724X/AR913X SPI controller driver" 9862306a36Sopenharmony_ci depends on ATH79 || COMPILE_TEST 9962306a36Sopenharmony_ci select SPI_BITBANG 10062306a36Sopenharmony_ci help 10162306a36Sopenharmony_ci This enables support for the SPI controller present on the 10262306a36Sopenharmony_ci Atheros AR71XX/AR724X/AR913X SoCs. 10362306a36Sopenharmony_ci 10462306a36Sopenharmony_ciconfig SPI_ARMADA_3700 10562306a36Sopenharmony_ci tristate "Marvell Armada 3700 SPI Controller" 10662306a36Sopenharmony_ci depends on (ARCH_MVEBU && OF) || COMPILE_TEST 10762306a36Sopenharmony_ci help 10862306a36Sopenharmony_ci This enables support for the SPI controller present on the 10962306a36Sopenharmony_ci Marvell Armada 3700 SoCs. 11062306a36Sopenharmony_ci 11162306a36Sopenharmony_ciconfig SPI_ASPEED_SMC 11262306a36Sopenharmony_ci tristate "Aspeed flash controllers in SPI mode" 11362306a36Sopenharmony_ci depends on ARCH_ASPEED || COMPILE_TEST 11462306a36Sopenharmony_ci depends on OF 11562306a36Sopenharmony_ci help 11662306a36Sopenharmony_ci This enables support for the Firmware Memory controller (FMC) 11762306a36Sopenharmony_ci in the Aspeed AST2600, AST2500 and AST2400 SoCs when attached 11862306a36Sopenharmony_ci to SPI NOR chips, and support for the SPI flash memory 11962306a36Sopenharmony_ci controller (SPI) for the host firmware. The implementation 12062306a36Sopenharmony_ci only supports SPI NOR. 12162306a36Sopenharmony_ci 12262306a36Sopenharmony_ciconfig SPI_ATMEL 12362306a36Sopenharmony_ci tristate "Atmel SPI Controller" 12462306a36Sopenharmony_ci depends on ARCH_AT91 || COMPILE_TEST 12562306a36Sopenharmony_ci depends on OF 12662306a36Sopenharmony_ci help 12762306a36Sopenharmony_ci This selects a driver for the Atmel SPI Controller, present on 12862306a36Sopenharmony_ci many AT91 ARM chips. 12962306a36Sopenharmony_ci 13062306a36Sopenharmony_ciconfig SPI_AT91_USART 13162306a36Sopenharmony_ci tristate "Atmel USART Controller SPI driver" 13262306a36Sopenharmony_ci depends on (ARCH_AT91 || COMPILE_TEST) 13362306a36Sopenharmony_ci depends on MFD_AT91_USART 13462306a36Sopenharmony_ci help 13562306a36Sopenharmony_ci This selects a driver for the AT91 USART Controller as SPI Master, 13662306a36Sopenharmony_ci present on AT91 and SAMA5 SoC series. 13762306a36Sopenharmony_ci 13862306a36Sopenharmony_ciconfig SPI_ATMEL_QUADSPI 13962306a36Sopenharmony_ci tristate "Atmel Quad SPI Controller" 14062306a36Sopenharmony_ci depends on ARCH_AT91 || COMPILE_TEST 14162306a36Sopenharmony_ci depends on OF && HAS_IOMEM 14262306a36Sopenharmony_ci help 14362306a36Sopenharmony_ci This enables support for the Quad SPI controller in master mode. 14462306a36Sopenharmony_ci This driver does not support generic SPI. The implementation only 14562306a36Sopenharmony_ci supports spi-mem interface. 14662306a36Sopenharmony_ci 14762306a36Sopenharmony_ciconfig SPI_AU1550 14862306a36Sopenharmony_ci tristate "Au1550/Au1200/Au1300 SPI Controller" 14962306a36Sopenharmony_ci depends on MIPS_ALCHEMY 15062306a36Sopenharmony_ci select SPI_BITBANG 15162306a36Sopenharmony_ci help 15262306a36Sopenharmony_ci If you say yes to this option, support will be included for the 15362306a36Sopenharmony_ci PSC SPI controller found on Au1550, Au1200 and Au1300 series. 15462306a36Sopenharmony_ci 15562306a36Sopenharmony_ciconfig SPI_AXI_SPI_ENGINE 15662306a36Sopenharmony_ci tristate "Analog Devices AXI SPI Engine controller" 15762306a36Sopenharmony_ci depends on HAS_IOMEM 15862306a36Sopenharmony_ci help 15962306a36Sopenharmony_ci This enables support for the Analog Devices AXI SPI Engine SPI controller. 16062306a36Sopenharmony_ci It is part of the SPI Engine framework that is used in some Analog Devices 16162306a36Sopenharmony_ci reference designs for FPGAs. 16262306a36Sopenharmony_ci 16362306a36Sopenharmony_ciconfig SPI_BCM2835 16462306a36Sopenharmony_ci tristate "BCM2835 SPI controller" 16562306a36Sopenharmony_ci depends on GPIOLIB 16662306a36Sopenharmony_ci depends on ARCH_BCM2835 || ARCH_BRCMSTB || COMPILE_TEST 16762306a36Sopenharmony_ci help 16862306a36Sopenharmony_ci This selects a driver for the Broadcom BCM2835 SPI master. 16962306a36Sopenharmony_ci 17062306a36Sopenharmony_ci The BCM2835 contains two types of SPI master controller; the 17162306a36Sopenharmony_ci "universal SPI master", and the regular SPI controller. This driver 17262306a36Sopenharmony_ci is for the regular SPI controller. Slave mode operation is not also 17362306a36Sopenharmony_ci not supported. 17462306a36Sopenharmony_ci 17562306a36Sopenharmony_ciconfig SPI_BCM2835AUX 17662306a36Sopenharmony_ci tristate "BCM2835 SPI auxiliary controller" 17762306a36Sopenharmony_ci depends on ((ARCH_BCM2835 || ARCH_BRCMSTB) && GPIOLIB) || COMPILE_TEST 17862306a36Sopenharmony_ci help 17962306a36Sopenharmony_ci This selects a driver for the Broadcom BCM2835 SPI aux master. 18062306a36Sopenharmony_ci 18162306a36Sopenharmony_ci The BCM2835 contains two types of SPI master controller; the 18262306a36Sopenharmony_ci "universal SPI master", and the regular SPI controller. 18362306a36Sopenharmony_ci This driver is for the universal/auxiliary SPI controller. 18462306a36Sopenharmony_ci 18562306a36Sopenharmony_ciconfig SPI_BCM63XX 18662306a36Sopenharmony_ci tristate "Broadcom BCM63xx SPI controller" 18762306a36Sopenharmony_ci depends on BCM63XX || BMIPS_GENERIC || COMPILE_TEST 18862306a36Sopenharmony_ci help 18962306a36Sopenharmony_ci Enable support for the SPI controller on the Broadcom BCM63xx SoCs. 19062306a36Sopenharmony_ci 19162306a36Sopenharmony_ciconfig SPI_BCM63XX_HSSPI 19262306a36Sopenharmony_ci tristate "Broadcom BCM63XX HS SPI controller driver" 19362306a36Sopenharmony_ci depends on BCM63XX || BMIPS_GENERIC || ARCH_BCMBCA || COMPILE_TEST 19462306a36Sopenharmony_ci help 19562306a36Sopenharmony_ci This enables support for the High Speed SPI controller present on 19662306a36Sopenharmony_ci newer Broadcom BCM63XX SoCs. 19762306a36Sopenharmony_ci 19862306a36Sopenharmony_ciconfig SPI_BCM_QSPI 19962306a36Sopenharmony_ci tristate "Broadcom BSPI and MSPI controller support" 20062306a36Sopenharmony_ci depends on ARCH_BRCMSTB || ARCH_BCM || ARCH_BCM_IPROC || \ 20162306a36Sopenharmony_ci BMIPS_GENERIC || COMPILE_TEST 20262306a36Sopenharmony_ci default ARCH_BCM_IPROC 20362306a36Sopenharmony_ci help 20462306a36Sopenharmony_ci Enables support for the Broadcom SPI flash and MSPI controller. 20562306a36Sopenharmony_ci Select this option for any one of BRCMSTB, iProc NSP and NS2 SoCs 20662306a36Sopenharmony_ci based platforms. This driver works for both SPI master for SPI NOR 20762306a36Sopenharmony_ci flash device as well as MSPI device. 20862306a36Sopenharmony_ci 20962306a36Sopenharmony_ciconfig SPI_BCMBCA_HSSPI 21062306a36Sopenharmony_ci tristate "Broadcom BCMBCA HS SPI controller driver" 21162306a36Sopenharmony_ci depends on ARCH_BCMBCA || COMPILE_TEST 21262306a36Sopenharmony_ci help 21362306a36Sopenharmony_ci This enables support for the High Speed SPI controller present on 21462306a36Sopenharmony_ci newer Broadcom BCMBCA SoCs. These SoCs include an updated SPI controller 21562306a36Sopenharmony_ci that adds the capability to allow the driver to control chip select 21662306a36Sopenharmony_ci explicitly. 21762306a36Sopenharmony_ci 21862306a36Sopenharmony_ciconfig SPI_BITBANG 21962306a36Sopenharmony_ci tristate "Utilities for Bitbanging SPI masters" 22062306a36Sopenharmony_ci help 22162306a36Sopenharmony_ci With a few GPIO pins, your system can bitbang the SPI protocol. 22262306a36Sopenharmony_ci Select this to get SPI support through I/O pins (GPIO, parallel 22362306a36Sopenharmony_ci port, etc). Or, some systems' SPI master controller drivers use 22462306a36Sopenharmony_ci this code to manage the per-word or per-transfer accesses to the 22562306a36Sopenharmony_ci hardware shift registers. 22662306a36Sopenharmony_ci 22762306a36Sopenharmony_ci This is library code, and is automatically selected by drivers that 22862306a36Sopenharmony_ci need it. You only need to select this explicitly to support driver 22962306a36Sopenharmony_ci modules that aren't part of this kernel tree. 23062306a36Sopenharmony_ci 23162306a36Sopenharmony_ciconfig SPI_BUTTERFLY 23262306a36Sopenharmony_ci tristate "Parallel port adapter for AVR Butterfly (DEVELOPMENT)" 23362306a36Sopenharmony_ci depends on PARPORT 23462306a36Sopenharmony_ci select SPI_BITBANG 23562306a36Sopenharmony_ci help 23662306a36Sopenharmony_ci This uses a custom parallel port cable to connect to an AVR 23762306a36Sopenharmony_ci Butterfly <http://www.atmel.com/products/avr/butterfly>, an 23862306a36Sopenharmony_ci inexpensive battery powered microcontroller evaluation board. 23962306a36Sopenharmony_ci This same cable can be used to flash new firmware. 24062306a36Sopenharmony_ci 24162306a36Sopenharmony_ciconfig SPI_CADENCE 24262306a36Sopenharmony_ci tristate "Cadence SPI controller" 24362306a36Sopenharmony_ci help 24462306a36Sopenharmony_ci This selects the Cadence SPI controller master driver 24562306a36Sopenharmony_ci used by Xilinx Zynq and ZynqMP. 24662306a36Sopenharmony_ci 24762306a36Sopenharmony_ciconfig SPI_CADENCE_QUADSPI 24862306a36Sopenharmony_ci tristate "Cadence Quad SPI controller" 24962306a36Sopenharmony_ci depends on OF && (ARM || ARM64 || X86 || RISCV || COMPILE_TEST) 25062306a36Sopenharmony_ci help 25162306a36Sopenharmony_ci Enable support for the Cadence Quad SPI Flash controller. 25262306a36Sopenharmony_ci 25362306a36Sopenharmony_ci Cadence QSPI is a specialized controller for connecting an SPI 25462306a36Sopenharmony_ci Flash over 1/2/4-bit wide bus. Enable this option if you have a 25562306a36Sopenharmony_ci device with a Cadence QSPI controller and want to access the 25662306a36Sopenharmony_ci Flash as an MTD device. 25762306a36Sopenharmony_ci 25862306a36Sopenharmony_ciconfig SPI_CADENCE_XSPI 25962306a36Sopenharmony_ci tristate "Cadence XSPI controller" 26062306a36Sopenharmony_ci depends on OF && HAS_IOMEM 26162306a36Sopenharmony_ci depends on SPI_MEM 26262306a36Sopenharmony_ci help 26362306a36Sopenharmony_ci Enable support for the Cadence XSPI Flash controller. 26462306a36Sopenharmony_ci 26562306a36Sopenharmony_ci Cadence XSPI is a specialized controller for connecting an SPI 26662306a36Sopenharmony_ci Flash over up to 8-bit wide bus. Enable this option if you have a 26762306a36Sopenharmony_ci device with a Cadence XSPI controller and want to access the 26862306a36Sopenharmony_ci Flash as an MTD device. 26962306a36Sopenharmony_ci 27062306a36Sopenharmony_ciconfig SPI_CLPS711X 27162306a36Sopenharmony_ci tristate "CLPS711X host SPI controller" 27262306a36Sopenharmony_ci depends on ARCH_CLPS711X || COMPILE_TEST 27362306a36Sopenharmony_ci help 27462306a36Sopenharmony_ci This enables dedicated general purpose SPI/Microwire1-compatible 27562306a36Sopenharmony_ci master mode interface (SSI1) for CLPS711X-based CPUs. 27662306a36Sopenharmony_ci 27762306a36Sopenharmony_ciconfig SPI_COLDFIRE_QSPI 27862306a36Sopenharmony_ci tristate "Freescale Coldfire QSPI controller" 27962306a36Sopenharmony_ci depends on (M520x || M523x || M5249 || M525x || M527x || M528x || M532x) 28062306a36Sopenharmony_ci help 28162306a36Sopenharmony_ci This enables support for the Coldfire QSPI controller in master 28262306a36Sopenharmony_ci mode. 28362306a36Sopenharmony_ci 28462306a36Sopenharmony_ciconfig SPI_CS42L43 28562306a36Sopenharmony_ci tristate "Cirrus Logic CS42L43 SPI controller" 28662306a36Sopenharmony_ci depends on MFD_CS42L43 && PINCTRL_CS42L43 28762306a36Sopenharmony_ci help 28862306a36Sopenharmony_ci This enables support for the SPI controller inside the Cirrus Logic 28962306a36Sopenharmony_ci CS42L43 audio codec. 29062306a36Sopenharmony_ci 29162306a36Sopenharmony_ciconfig SPI_DAVINCI 29262306a36Sopenharmony_ci tristate "Texas Instruments DaVinci/DA8x/OMAP-L/AM1x SoC SPI controller" 29362306a36Sopenharmony_ci depends on ARCH_DAVINCI || ARCH_KEYSTONE || COMPILE_TEST 29462306a36Sopenharmony_ci select SPI_BITBANG 29562306a36Sopenharmony_ci help 29662306a36Sopenharmony_ci SPI master controller for DaVinci/DA8x/OMAP-L/AM1x SPI modules. 29762306a36Sopenharmony_ci 29862306a36Sopenharmony_ciconfig SPI_DESIGNWARE 29962306a36Sopenharmony_ci tristate "DesignWare SPI controller core support" 30062306a36Sopenharmony_ci imply SPI_MEM 30162306a36Sopenharmony_ci help 30262306a36Sopenharmony_ci general driver for SPI controller core from DesignWare 30362306a36Sopenharmony_ci 30462306a36Sopenharmony_ciif SPI_DESIGNWARE 30562306a36Sopenharmony_ci 30662306a36Sopenharmony_ciconfig SPI_DW_DMA 30762306a36Sopenharmony_ci bool "DMA support for DW SPI controller" 30862306a36Sopenharmony_ci 30962306a36Sopenharmony_ciconfig SPI_DW_PCI 31062306a36Sopenharmony_ci tristate "PCI interface driver for DW SPI core" 31162306a36Sopenharmony_ci depends on PCI 31262306a36Sopenharmony_ci 31362306a36Sopenharmony_ciconfig SPI_DW_MMIO 31462306a36Sopenharmony_ci tristate "Memory-mapped io interface driver for DW SPI core" 31562306a36Sopenharmony_ci depends on HAS_IOMEM 31662306a36Sopenharmony_ci 31762306a36Sopenharmony_ciconfig SPI_DW_BT1 31862306a36Sopenharmony_ci tristate "Baikal-T1 SPI driver for DW SPI core" 31962306a36Sopenharmony_ci depends on MIPS_BAIKAL_T1 || COMPILE_TEST 32062306a36Sopenharmony_ci select MULTIPLEXER 32162306a36Sopenharmony_ci help 32262306a36Sopenharmony_ci Baikal-T1 SoC is equipped with three DW APB SSI-based MMIO SPI 32362306a36Sopenharmony_ci controllers. Two of them are pretty much normal: with IRQ, DMA, 32462306a36Sopenharmony_ci FIFOs of 64 words depth, 4x CSs, but the third one as being a 32562306a36Sopenharmony_ci part of the Baikal-T1 System Boot Controller has got a very 32662306a36Sopenharmony_ci limited resources: no IRQ, no DMA, only a single native 32762306a36Sopenharmony_ci chip-select and Tx/Rx FIFO with just 8 words depth available. 32862306a36Sopenharmony_ci The later one is normally connected to an external SPI-nor flash 32962306a36Sopenharmony_ci of 128Mb (in general can be of bigger size). 33062306a36Sopenharmony_ci 33162306a36Sopenharmony_ciconfig SPI_DW_BT1_DIRMAP 33262306a36Sopenharmony_ci bool "Directly mapped Baikal-T1 Boot SPI flash support" 33362306a36Sopenharmony_ci depends on SPI_DW_BT1 33462306a36Sopenharmony_ci help 33562306a36Sopenharmony_ci Directly mapped SPI flash memory is an interface specific to the 33662306a36Sopenharmony_ci Baikal-T1 System Boot Controller. It is a 16MB MMIO region, which 33762306a36Sopenharmony_ci can be used to access a peripheral memory device just by 33862306a36Sopenharmony_ci reading/writing data from/to it. Note that the system APB bus 33962306a36Sopenharmony_ci will stall during each IO from/to the dirmap region until the 34062306a36Sopenharmony_ci operation is finished. So try not to use it concurrently with 34162306a36Sopenharmony_ci time-critical tasks (like the SPI memory operations implemented 34262306a36Sopenharmony_ci in this driver). 34362306a36Sopenharmony_ci 34462306a36Sopenharmony_ciendif 34562306a36Sopenharmony_ci 34662306a36Sopenharmony_ciconfig SPI_DLN2 34762306a36Sopenharmony_ci tristate "Diolan DLN-2 USB SPI adapter" 34862306a36Sopenharmony_ci depends on MFD_DLN2 34962306a36Sopenharmony_ci help 35062306a36Sopenharmony_ci If you say yes to this option, support will be included for Diolan 35162306a36Sopenharmony_ci DLN2, a USB to SPI interface. 35262306a36Sopenharmony_ci 35362306a36Sopenharmony_ci This driver can also be built as a module. If so, the module 35462306a36Sopenharmony_ci will be called spi-dln2. 35562306a36Sopenharmony_ci 35662306a36Sopenharmony_ciconfig SPI_EP93XX 35762306a36Sopenharmony_ci tristate "Cirrus Logic EP93xx SPI controller" 35862306a36Sopenharmony_ci depends on ARCH_EP93XX || COMPILE_TEST 35962306a36Sopenharmony_ci help 36062306a36Sopenharmony_ci This enables using the Cirrus EP93xx SPI controller in master 36162306a36Sopenharmony_ci mode. 36262306a36Sopenharmony_ci 36362306a36Sopenharmony_ciconfig SPI_FALCON 36462306a36Sopenharmony_ci bool "Falcon SPI controller support" 36562306a36Sopenharmony_ci depends on SOC_FALCON 36662306a36Sopenharmony_ci help 36762306a36Sopenharmony_ci The external bus unit (EBU) found on the FALC-ON SoC has SPI 36862306a36Sopenharmony_ci emulation that is designed for serial flash access. This driver 36962306a36Sopenharmony_ci has only been tested with m25p80 type chips. The hardware has no 37062306a36Sopenharmony_ci support for other types of SPI peripherals. 37162306a36Sopenharmony_ci 37262306a36Sopenharmony_ciconfig SPI_FSI 37362306a36Sopenharmony_ci tristate "FSI SPI driver" 37462306a36Sopenharmony_ci depends on FSI 37562306a36Sopenharmony_ci help 37662306a36Sopenharmony_ci This enables support for the driver for FSI bus attached SPI 37762306a36Sopenharmony_ci controllers. 37862306a36Sopenharmony_ci 37962306a36Sopenharmony_ciconfig SPI_FSL_LPSPI 38062306a36Sopenharmony_ci tristate "Freescale i.MX LPSPI controller" 38162306a36Sopenharmony_ci depends on ARCH_MXC || COMPILE_TEST 38262306a36Sopenharmony_ci help 38362306a36Sopenharmony_ci This enables Freescale i.MX LPSPI controllers in master mode. 38462306a36Sopenharmony_ci 38562306a36Sopenharmony_ciconfig SPI_FSL_QUADSPI 38662306a36Sopenharmony_ci tristate "Freescale QSPI controller" 38762306a36Sopenharmony_ci depends on ARCH_MXC || SOC_LS1021A || ARCH_LAYERSCAPE || COMPILE_TEST 38862306a36Sopenharmony_ci depends on HAS_IOMEM 38962306a36Sopenharmony_ci help 39062306a36Sopenharmony_ci This enables support for the Quad SPI controller in master mode. 39162306a36Sopenharmony_ci Up to four flash chips can be connected on two buses with two 39262306a36Sopenharmony_ci chipselects each. 39362306a36Sopenharmony_ci This controller does not support generic SPI messages. It only 39462306a36Sopenharmony_ci supports the high-level SPI memory interface. 39562306a36Sopenharmony_ci 39662306a36Sopenharmony_ciconfig SPI_GXP 39762306a36Sopenharmony_ci tristate "GXP SPI driver" 39862306a36Sopenharmony_ci depends on ARCH_HPE || COMPILE_TEST 39962306a36Sopenharmony_ci help 40062306a36Sopenharmony_ci This enables support for the driver for GXP bus attached SPI 40162306a36Sopenharmony_ci controllers. 40262306a36Sopenharmony_ci 40362306a36Sopenharmony_ciconfig SPI_HISI_KUNPENG 40462306a36Sopenharmony_ci tristate "HiSilicon SPI Controller for Kunpeng SoCs" 40562306a36Sopenharmony_ci depends on (ARM64 && ACPI) || COMPILE_TEST 40662306a36Sopenharmony_ci help 40762306a36Sopenharmony_ci This enables support for HiSilicon SPI controller found on 40862306a36Sopenharmony_ci Kunpeng SoCs. 40962306a36Sopenharmony_ci 41062306a36Sopenharmony_ci This driver can also be built as a module. If so, the module 41162306a36Sopenharmony_ci will be called hisi-kunpeng-spi. 41262306a36Sopenharmony_ci 41362306a36Sopenharmony_ciconfig SPI_HISI_SFC_V3XX 41462306a36Sopenharmony_ci tristate "HiSilicon SPI NOR Flash Controller for Hi16XX chipsets" 41562306a36Sopenharmony_ci depends on (ARM64 && ACPI) || COMPILE_TEST 41662306a36Sopenharmony_ci depends on HAS_IOMEM 41762306a36Sopenharmony_ci help 41862306a36Sopenharmony_ci This enables support for HiSilicon v3xx SPI NOR flash controller 41962306a36Sopenharmony_ci found in hi16xx chipsets. 42062306a36Sopenharmony_ci 42162306a36Sopenharmony_ciconfig SPI_NXP_FLEXSPI 42262306a36Sopenharmony_ci tristate "NXP Flex SPI controller" 42362306a36Sopenharmony_ci depends on ARCH_LAYERSCAPE || ARCH_MXC || COMPILE_TEST 42462306a36Sopenharmony_ci depends on HAS_IOMEM 42562306a36Sopenharmony_ci help 42662306a36Sopenharmony_ci This enables support for the Flex SPI controller in master mode. 42762306a36Sopenharmony_ci Up to four slave devices can be connected on two buses with two 42862306a36Sopenharmony_ci chipselects each. 42962306a36Sopenharmony_ci This controller does not support generic SPI messages and only 43062306a36Sopenharmony_ci supports the high-level SPI memory interface. 43162306a36Sopenharmony_ci 43262306a36Sopenharmony_ciconfig SPI_GPIO 43362306a36Sopenharmony_ci tristate "GPIO-based bitbanging SPI Master" 43462306a36Sopenharmony_ci depends on GPIOLIB || COMPILE_TEST 43562306a36Sopenharmony_ci select SPI_BITBANG 43662306a36Sopenharmony_ci help 43762306a36Sopenharmony_ci This simple GPIO bitbanging SPI master uses the arch-neutral GPIO 43862306a36Sopenharmony_ci interface to manage MOSI, MISO, SCK, and chipselect signals. SPI 43962306a36Sopenharmony_ci slaves connected to a bus using this driver are configured as usual, 44062306a36Sopenharmony_ci except that the spi_board_info.controller_data holds the GPIO number 44162306a36Sopenharmony_ci for the chipselect used by this controller driver. 44262306a36Sopenharmony_ci 44362306a36Sopenharmony_ci Note that this driver often won't achieve even 1 Mbit/sec speeds, 44462306a36Sopenharmony_ci making it unusually slow for SPI. If your platform can inline 44562306a36Sopenharmony_ci GPIO operations, you should be able to leverage that for better 44662306a36Sopenharmony_ci speed with a custom version of this driver; see the source code. 44762306a36Sopenharmony_ci 44862306a36Sopenharmony_ciconfig SPI_IMG_SPFI 44962306a36Sopenharmony_ci tristate "IMG SPFI controller" 45062306a36Sopenharmony_ci depends on MIPS || COMPILE_TEST 45162306a36Sopenharmony_ci help 45262306a36Sopenharmony_ci This enables support for the SPFI master controller found on 45362306a36Sopenharmony_ci IMG SoCs. 45462306a36Sopenharmony_ci 45562306a36Sopenharmony_ciconfig SPI_IMX 45662306a36Sopenharmony_ci tristate "Freescale i.MX SPI controllers" 45762306a36Sopenharmony_ci depends on ARCH_MXC || COMPILE_TEST 45862306a36Sopenharmony_ci help 45962306a36Sopenharmony_ci This enables support for the Freescale i.MX SPI controllers. 46062306a36Sopenharmony_ci 46162306a36Sopenharmony_ciconfig SPI_INGENIC 46262306a36Sopenharmony_ci tristate "Ingenic SoCs SPI controller" 46362306a36Sopenharmony_ci depends on MACH_INGENIC || COMPILE_TEST 46462306a36Sopenharmony_ci help 46562306a36Sopenharmony_ci This enables support for the Ingenic SoCs SPI controller. 46662306a36Sopenharmony_ci 46762306a36Sopenharmony_ci To compile this driver as a module, choose M here: the module 46862306a36Sopenharmony_ci will be called spi-ingenic. 46962306a36Sopenharmony_ci 47062306a36Sopenharmony_ciconfig SPI_INTEL 47162306a36Sopenharmony_ci tristate 47262306a36Sopenharmony_ci 47362306a36Sopenharmony_ciconfig SPI_INTEL_PCI 47462306a36Sopenharmony_ci tristate "Intel PCH/PCU SPI flash PCI driver" 47562306a36Sopenharmony_ci depends on PCI 47662306a36Sopenharmony_ci depends on X86 || COMPILE_TEST 47762306a36Sopenharmony_ci depends on SPI_MEM 47862306a36Sopenharmony_ci select SPI_INTEL 47962306a36Sopenharmony_ci help 48062306a36Sopenharmony_ci This enables PCI support for the Intel PCH/PCU SPI controller in 48162306a36Sopenharmony_ci master mode. This controller is used to hold BIOS and other 48262306a36Sopenharmony_ci persistent settings. Controllers present in modern Intel hardware 48362306a36Sopenharmony_ci only work in hardware sequencing mode, this means that the 48462306a36Sopenharmony_ci controller exposes a subset of operations that makes it safer to 48562306a36Sopenharmony_ci use. Using this driver it is possible to upgrade BIOS directly 48662306a36Sopenharmony_ci from Linux. 48762306a36Sopenharmony_ci 48862306a36Sopenharmony_ci To compile this driver as a module, choose M here: the module 48962306a36Sopenharmony_ci will be called spi-intel-pci. 49062306a36Sopenharmony_ci 49162306a36Sopenharmony_ciconfig SPI_INTEL_PLATFORM 49262306a36Sopenharmony_ci tristate "Intel PCH/PCU SPI flash platform driver (DANGEROUS)" 49362306a36Sopenharmony_ci depends on X86 || COMPILE_TEST 49462306a36Sopenharmony_ci depends on SPI_MEM 49562306a36Sopenharmony_ci select SPI_INTEL 49662306a36Sopenharmony_ci help 49762306a36Sopenharmony_ci This enables platform support for the Intel PCH/PCU SPI 49862306a36Sopenharmony_ci controller in master mode that is used to hold BIOS and other 49962306a36Sopenharmony_ci persistent settings. Most of these controllers work in 50062306a36Sopenharmony_ci software sequencing mode, which means that the controller 50162306a36Sopenharmony_ci exposes the low level SPI-NOR opcodes to the software. Using 50262306a36Sopenharmony_ci this driver it is possible to upgrade BIOS directly from Linux. 50362306a36Sopenharmony_ci 50462306a36Sopenharmony_ci Say N here unless you know what you are doing. Overwriting the 50562306a36Sopenharmony_ci SPI flash may render the system unbootable. 50662306a36Sopenharmony_ci 50762306a36Sopenharmony_ci To compile this driver as a module, choose M here: the module 50862306a36Sopenharmony_ci will be called spi-intel-platform. 50962306a36Sopenharmony_ci 51062306a36Sopenharmony_ciconfig SPI_JCORE 51162306a36Sopenharmony_ci tristate "J-Core SPI Master" 51262306a36Sopenharmony_ci depends on OF && (SUPERH || COMPILE_TEST) 51362306a36Sopenharmony_ci help 51462306a36Sopenharmony_ci This enables support for the SPI master controller in the J-Core 51562306a36Sopenharmony_ci synthesizable, open source SoC. 51662306a36Sopenharmony_ci 51762306a36Sopenharmony_ciconfig SPI_LM70_LLP 51862306a36Sopenharmony_ci tristate "Parallel port adapter for LM70 eval board (DEVELOPMENT)" 51962306a36Sopenharmony_ci depends on PARPORT 52062306a36Sopenharmony_ci select SPI_BITBANG 52162306a36Sopenharmony_ci help 52262306a36Sopenharmony_ci This driver supports the NS LM70 LLP Evaluation Board, 52362306a36Sopenharmony_ci which interfaces to an LM70 temperature sensor using 52462306a36Sopenharmony_ci a parallel port. 52562306a36Sopenharmony_ci 52662306a36Sopenharmony_ciconfig SPI_LOONGSON_CORE 52762306a36Sopenharmony_ci tristate 52862306a36Sopenharmony_ci depends on LOONGARCH || COMPILE_TEST 52962306a36Sopenharmony_ci 53062306a36Sopenharmony_ciconfig SPI_LOONGSON_PCI 53162306a36Sopenharmony_ci tristate "Loongson SPI Controller PCI Driver Support" 53262306a36Sopenharmony_ci select SPI_LOONGSON_CORE 53362306a36Sopenharmony_ci depends on PCI && (LOONGARCH || COMPILE_TEST) 53462306a36Sopenharmony_ci help 53562306a36Sopenharmony_ci This bus driver supports the Loongson SPI hardware controller in 53662306a36Sopenharmony_ci the Loongson platforms and supports to use PCI framework to 53762306a36Sopenharmony_ci register SPI device resources. 53862306a36Sopenharmony_ci Say Y or M here if you want to use the SPI controller on 53962306a36Sopenharmony_ci Loongson platform. 54062306a36Sopenharmony_ci 54162306a36Sopenharmony_ciconfig SPI_LOONGSON_PLATFORM 54262306a36Sopenharmony_ci tristate "Loongson SPI Controller Platform Driver Support" 54362306a36Sopenharmony_ci select SPI_LOONGSON_CORE 54462306a36Sopenharmony_ci depends on OF && (LOONGARCH || COMPILE_TEST) 54562306a36Sopenharmony_ci help 54662306a36Sopenharmony_ci This bus driver supports the Loongson SPI hardware controller in 54762306a36Sopenharmony_ci the Loongson platforms and supports to use DTS framework to 54862306a36Sopenharmony_ci register SPI device resources. 54962306a36Sopenharmony_ci Say Y or M here if you want to use the SPI controller on 55062306a36Sopenharmony_ci Loongson platform. 55162306a36Sopenharmony_ci 55262306a36Sopenharmony_ciconfig SPI_LP8841_RTC 55362306a36Sopenharmony_ci tristate "ICP DAS LP-8841 SPI Controller for RTC" 55462306a36Sopenharmony_ci depends on MACH_PXA27X_DT || COMPILE_TEST 55562306a36Sopenharmony_ci help 55662306a36Sopenharmony_ci This driver provides an SPI master device to drive Maxim 55762306a36Sopenharmony_ci DS-1302 real time clock. 55862306a36Sopenharmony_ci 55962306a36Sopenharmony_ci Say N here unless you plan to run the kernel on an ICP DAS 56062306a36Sopenharmony_ci LP-8x4x industrial computer. 56162306a36Sopenharmony_ci 56262306a36Sopenharmony_ciconfig SPI_MPC52xx 56362306a36Sopenharmony_ci tristate "Freescale MPC52xx SPI (non-PSC) controller support" 56462306a36Sopenharmony_ci depends on PPC_MPC52xx 56562306a36Sopenharmony_ci help 56662306a36Sopenharmony_ci This drivers supports the MPC52xx SPI controller in master SPI 56762306a36Sopenharmony_ci mode. 56862306a36Sopenharmony_ci 56962306a36Sopenharmony_ciconfig SPI_MPC52xx_PSC 57062306a36Sopenharmony_ci tristate "Freescale MPC52xx PSC SPI controller" 57162306a36Sopenharmony_ci depends on PPC_MPC52xx 57262306a36Sopenharmony_ci help 57362306a36Sopenharmony_ci This enables using the Freescale MPC52xx Programmable Serial 57462306a36Sopenharmony_ci Controller in master SPI mode. 57562306a36Sopenharmony_ci 57662306a36Sopenharmony_ciconfig SPI_MPC512x_PSC 57762306a36Sopenharmony_ci tristate "Freescale MPC512x PSC SPI controller" 57862306a36Sopenharmony_ci depends on PPC_MPC512x 57962306a36Sopenharmony_ci help 58062306a36Sopenharmony_ci This enables using the Freescale MPC5121 Programmable Serial 58162306a36Sopenharmony_ci Controller in SPI master mode. 58262306a36Sopenharmony_ci 58362306a36Sopenharmony_ciconfig SPI_FSL_LIB 58462306a36Sopenharmony_ci tristate 58562306a36Sopenharmony_ci depends on OF 58662306a36Sopenharmony_ci 58762306a36Sopenharmony_ciconfig SPI_FSL_CPM 58862306a36Sopenharmony_ci tristate 58962306a36Sopenharmony_ci depends on FSL_SOC 59062306a36Sopenharmony_ci 59162306a36Sopenharmony_ciconfig SPI_FSL_SPI 59262306a36Sopenharmony_ci tristate "Freescale SPI controller and Aeroflex Gaisler GRLIB SPI controller" 59362306a36Sopenharmony_ci depends on OF 59462306a36Sopenharmony_ci select SPI_FSL_LIB 59562306a36Sopenharmony_ci select SPI_FSL_CPM if FSL_SOC 59662306a36Sopenharmony_ci help 59762306a36Sopenharmony_ci This enables using the Freescale SPI controllers in master mode. 59862306a36Sopenharmony_ci MPC83xx platform uses the controller in cpu mode or CPM/QE mode. 59962306a36Sopenharmony_ci MPC8569 uses the controller in QE mode, MPC8610 in cpu mode. 60062306a36Sopenharmony_ci This also enables using the Aeroflex Gaisler GRLIB SPI controller in 60162306a36Sopenharmony_ci master mode. 60262306a36Sopenharmony_ci 60362306a36Sopenharmony_ciconfig SPI_FSL_DSPI 60462306a36Sopenharmony_ci tristate "Freescale DSPI controller" 60562306a36Sopenharmony_ci select REGMAP_MMIO 60662306a36Sopenharmony_ci depends on SOC_VF610 || SOC_LS1021A || ARCH_LAYERSCAPE || M5441x || COMPILE_TEST 60762306a36Sopenharmony_ci help 60862306a36Sopenharmony_ci This enables support for the Freescale DSPI controller in master 60962306a36Sopenharmony_ci mode. VF610, LS1021A and ColdFire platforms uses the controller. 61062306a36Sopenharmony_ci 61162306a36Sopenharmony_ciconfig SPI_FSL_ESPI 61262306a36Sopenharmony_ci tristate "Freescale eSPI controller" 61362306a36Sopenharmony_ci depends on FSL_SOC 61462306a36Sopenharmony_ci help 61562306a36Sopenharmony_ci This enables using the Freescale eSPI controllers in master mode. 61662306a36Sopenharmony_ci From MPC8536, 85xx platform uses the controller, and all P10xx, 61762306a36Sopenharmony_ci P20xx, P30xx,P40xx, P50xx uses this controller. 61862306a36Sopenharmony_ci 61962306a36Sopenharmony_ciconfig SPI_MESON_SPICC 62062306a36Sopenharmony_ci tristate "Amlogic Meson SPICC controller" 62162306a36Sopenharmony_ci depends on COMMON_CLK 62262306a36Sopenharmony_ci depends on ARCH_MESON || COMPILE_TEST 62362306a36Sopenharmony_ci help 62462306a36Sopenharmony_ci This enables master mode support for the SPICC (SPI communication 62562306a36Sopenharmony_ci controller) available in Amlogic Meson SoCs. 62662306a36Sopenharmony_ci 62762306a36Sopenharmony_ciconfig SPI_MESON_SPIFC 62862306a36Sopenharmony_ci tristate "Amlogic Meson SPIFC controller" 62962306a36Sopenharmony_ci depends on ARCH_MESON || COMPILE_TEST 63062306a36Sopenharmony_ci select REGMAP_MMIO 63162306a36Sopenharmony_ci help 63262306a36Sopenharmony_ci This enables master mode support for the SPIFC (SPI flash 63362306a36Sopenharmony_ci controller) available in Amlogic Meson SoCs. 63462306a36Sopenharmony_ci 63562306a36Sopenharmony_ciconfig SPI_MICROCHIP_CORE 63662306a36Sopenharmony_ci tristate "Microchip FPGA SPI controllers" 63762306a36Sopenharmony_ci depends on SPI_MASTER 63862306a36Sopenharmony_ci help 63962306a36Sopenharmony_ci This enables the SPI driver for Microchip FPGA SPI controllers. 64062306a36Sopenharmony_ci Say Y or M here if you want to use the "hard" controllers on 64162306a36Sopenharmony_ci PolarFire SoC. 64262306a36Sopenharmony_ci If built as a module, it will be called spi-microchip-core. 64362306a36Sopenharmony_ci 64462306a36Sopenharmony_ciconfig SPI_MICROCHIP_CORE_QSPI 64562306a36Sopenharmony_ci tristate "Microchip FPGA QSPI controllers" 64662306a36Sopenharmony_ci depends on SPI_MASTER 64762306a36Sopenharmony_ci help 64862306a36Sopenharmony_ci This enables the QSPI driver for Microchip FPGA QSPI controllers. 64962306a36Sopenharmony_ci Say Y or M here if you want to use the QSPI controllers on 65062306a36Sopenharmony_ci PolarFire SoC. 65162306a36Sopenharmony_ci If built as a module, it will be called spi-microchip-core-qspi. 65262306a36Sopenharmony_ci 65362306a36Sopenharmony_ciconfig SPI_MT65XX 65462306a36Sopenharmony_ci tristate "MediaTek SPI controller" 65562306a36Sopenharmony_ci depends on ARCH_MEDIATEK || COMPILE_TEST 65662306a36Sopenharmony_ci help 65762306a36Sopenharmony_ci This selects the MediaTek(R) SPI bus driver. 65862306a36Sopenharmony_ci If you want to use MediaTek(R) SPI interface, 65962306a36Sopenharmony_ci say Y or M here.If you are not sure, say N. 66062306a36Sopenharmony_ci SPI drivers for Mediatek MT65XX and MT81XX series ARM SoCs. 66162306a36Sopenharmony_ci 66262306a36Sopenharmony_ciconfig SPI_MT7621 66362306a36Sopenharmony_ci tristate "MediaTek MT7621 SPI Controller" 66462306a36Sopenharmony_ci depends on RALINK || COMPILE_TEST 66562306a36Sopenharmony_ci help 66662306a36Sopenharmony_ci This selects a driver for the MediaTek MT7621 SPI Controller. 66762306a36Sopenharmony_ci 66862306a36Sopenharmony_ciconfig SPI_MTK_NOR 66962306a36Sopenharmony_ci tristate "MediaTek SPI NOR controller" 67062306a36Sopenharmony_ci depends on ARCH_MEDIATEK || COMPILE_TEST 67162306a36Sopenharmony_ci help 67262306a36Sopenharmony_ci This enables support for SPI NOR controller found on MediaTek 67362306a36Sopenharmony_ci ARM SoCs. This is a controller specifically for SPI NOR flash. 67462306a36Sopenharmony_ci It can perform generic SPI transfers up to 6 bytes via generic 67562306a36Sopenharmony_ci SPI interface as well as several SPI NOR specific instructions 67662306a36Sopenharmony_ci via SPI MEM interface. 67762306a36Sopenharmony_ci 67862306a36Sopenharmony_ciconfig SPI_MTK_SNFI 67962306a36Sopenharmony_ci tristate "MediaTek SPI NAND Flash Interface" 68062306a36Sopenharmony_ci depends on ARCH_MEDIATEK || COMPILE_TEST 68162306a36Sopenharmony_ci depends on MTD_NAND_ECC_MEDIATEK 68262306a36Sopenharmony_ci help 68362306a36Sopenharmony_ci This enables support for SPI-NAND mode on the MediaTek NAND 68462306a36Sopenharmony_ci Flash Interface found on MediaTek ARM SoCs. This controller 68562306a36Sopenharmony_ci is implemented as a SPI-MEM controller with pipelined ECC 68662306a36Sopenharmony_ci capcability. 68762306a36Sopenharmony_ci 68862306a36Sopenharmony_ciconfig SPI_WPCM_FIU 68962306a36Sopenharmony_ci tristate "Nuvoton WPCM450 Flash Interface Unit" 69062306a36Sopenharmony_ci depends on ARCH_NPCM || COMPILE_TEST 69162306a36Sopenharmony_ci select REGMAP 69262306a36Sopenharmony_ci help 69362306a36Sopenharmony_ci This enables support got the Flash Interface Unit SPI controller 69462306a36Sopenharmony_ci present in the Nuvoton WPCM450 SoC. 69562306a36Sopenharmony_ci 69662306a36Sopenharmony_ci This driver does not support generic SPI. The implementation only 69762306a36Sopenharmony_ci supports the spi-mem interface. 69862306a36Sopenharmony_ci 69962306a36Sopenharmony_ciconfig SPI_NPCM_FIU 70062306a36Sopenharmony_ci tristate "Nuvoton NPCM FLASH Interface Unit" 70162306a36Sopenharmony_ci depends on ARCH_NPCM || COMPILE_TEST 70262306a36Sopenharmony_ci depends on OF && HAS_IOMEM 70362306a36Sopenharmony_ci help 70462306a36Sopenharmony_ci This enables support for the Flash Interface Unit SPI controller 70562306a36Sopenharmony_ci in master mode. 70662306a36Sopenharmony_ci This driver does not support generic SPI. The implementation only 70762306a36Sopenharmony_ci supports spi-mem interface. 70862306a36Sopenharmony_ci 70962306a36Sopenharmony_ciconfig SPI_NPCM_PSPI 71062306a36Sopenharmony_ci tristate "Nuvoton NPCM PSPI Controller" 71162306a36Sopenharmony_ci depends on ARCH_NPCM || COMPILE_TEST 71262306a36Sopenharmony_ci help 71362306a36Sopenharmony_ci This driver provides support for Nuvoton NPCM BMC 71462306a36Sopenharmony_ci Peripheral SPI controller in master mode. 71562306a36Sopenharmony_ci 71662306a36Sopenharmony_ciconfig SPI_LANTIQ_SSC 71762306a36Sopenharmony_ci tristate "Lantiq SSC SPI controller" 71862306a36Sopenharmony_ci depends on LANTIQ || X86 || COMPILE_TEST 71962306a36Sopenharmony_ci help 72062306a36Sopenharmony_ci This driver supports the Lantiq SSC SPI controller in master 72162306a36Sopenharmony_ci mode. This controller is found on Intel (former Lantiq) SoCs like 72262306a36Sopenharmony_ci the Danube, Falcon, xRX200, xRX300, Lightning Mountain. 72362306a36Sopenharmony_ci 72462306a36Sopenharmony_ciconfig SPI_OC_TINY 72562306a36Sopenharmony_ci tristate "OpenCores tiny SPI" 72662306a36Sopenharmony_ci depends on GPIOLIB || COMPILE_TEST 72762306a36Sopenharmony_ci select SPI_BITBANG 72862306a36Sopenharmony_ci help 72962306a36Sopenharmony_ci This is the driver for OpenCores tiny SPI master controller. 73062306a36Sopenharmony_ci 73162306a36Sopenharmony_ciconfig SPI_OCTEON 73262306a36Sopenharmony_ci tristate "Cavium OCTEON SPI controller" 73362306a36Sopenharmony_ci depends on CAVIUM_OCTEON_SOC 73462306a36Sopenharmony_ci help 73562306a36Sopenharmony_ci SPI host driver for the hardware found on some Cavium OCTEON 73662306a36Sopenharmony_ci SOCs. 73762306a36Sopenharmony_ci 73862306a36Sopenharmony_ciconfig SPI_OMAP_UWIRE 73962306a36Sopenharmony_ci tristate "OMAP1 MicroWire" 74062306a36Sopenharmony_ci depends on ARCH_OMAP1 || (ARM && COMPILE_TEST) 74162306a36Sopenharmony_ci select SPI_BITBANG 74262306a36Sopenharmony_ci help 74362306a36Sopenharmony_ci This hooks up to the MicroWire controller on OMAP1 chips. 74462306a36Sopenharmony_ci 74562306a36Sopenharmony_ciconfig SPI_OMAP24XX 74662306a36Sopenharmony_ci tristate "McSPI driver for OMAP" 74762306a36Sopenharmony_ci depends on ARCH_OMAP2PLUS || ARCH_K3 || COMPILE_TEST 74862306a36Sopenharmony_ci select SG_SPLIT 74962306a36Sopenharmony_ci help 75062306a36Sopenharmony_ci SPI master controller for OMAP24XX and later Multichannel SPI 75162306a36Sopenharmony_ci (McSPI) modules. 75262306a36Sopenharmony_ci 75362306a36Sopenharmony_ciconfig SPI_TI_QSPI 75462306a36Sopenharmony_ci tristate "DRA7xxx QSPI controller support" 75562306a36Sopenharmony_ci depends on ARCH_OMAP2PLUS || COMPILE_TEST 75662306a36Sopenharmony_ci help 75762306a36Sopenharmony_ci QSPI master controller for DRA7xxx used for flash devices. 75862306a36Sopenharmony_ci This device supports single, dual and quad read support, while 75962306a36Sopenharmony_ci it only supports single write mode. 76062306a36Sopenharmony_ci 76162306a36Sopenharmony_ciconfig SPI_ORION 76262306a36Sopenharmony_ci tristate "Orion SPI master" 76362306a36Sopenharmony_ci depends on PLAT_ORION || ARCH_MVEBU || COMPILE_TEST 76462306a36Sopenharmony_ci help 76562306a36Sopenharmony_ci This enables using the SPI master controller on the Orion 76662306a36Sopenharmony_ci and MVEBU chips. 76762306a36Sopenharmony_ci 76862306a36Sopenharmony_ciconfig SPI_PCI1XXXX 76962306a36Sopenharmony_ci tristate "PCI1XXXX SPI Bus support" 77062306a36Sopenharmony_ci depends on PCI 77162306a36Sopenharmony_ci help 77262306a36Sopenharmony_ci Say "yes" to Enable the SPI Bus support for the PCI1xxxx card 77362306a36Sopenharmony_ci This is a PCI to SPI Bus driver 77462306a36Sopenharmony_ci This driver can be built as module. If so, the module will be 77562306a36Sopenharmony_ci called as spi-pci1xxxx. 77662306a36Sopenharmony_ci 77762306a36Sopenharmony_ciconfig SPI_PIC32 77862306a36Sopenharmony_ci tristate "Microchip PIC32 series SPI" 77962306a36Sopenharmony_ci depends on MACH_PIC32 || COMPILE_TEST 78062306a36Sopenharmony_ci help 78162306a36Sopenharmony_ci SPI driver for Microchip PIC32 SPI master controller. 78262306a36Sopenharmony_ci 78362306a36Sopenharmony_ciconfig SPI_PIC32_SQI 78462306a36Sopenharmony_ci tristate "Microchip PIC32 Quad SPI driver" 78562306a36Sopenharmony_ci depends on MACH_PIC32 || COMPILE_TEST 78662306a36Sopenharmony_ci help 78762306a36Sopenharmony_ci SPI driver for PIC32 Quad SPI controller. 78862306a36Sopenharmony_ci 78962306a36Sopenharmony_ciconfig SPI_PL022 79062306a36Sopenharmony_ci tristate "ARM AMBA PL022 SSP controller" 79162306a36Sopenharmony_ci depends on ARM_AMBA 79262306a36Sopenharmony_ci default y if ARCH_REALVIEW 79362306a36Sopenharmony_ci default y if INTEGRATOR_IMPD1 79462306a36Sopenharmony_ci default y if ARCH_VERSATILE 79562306a36Sopenharmony_ci help 79662306a36Sopenharmony_ci This selects the ARM(R) AMBA(R) PrimeCell PL022 SSP 79762306a36Sopenharmony_ci controller. If you have an embedded system with an AMBA(R) 79862306a36Sopenharmony_ci bus and a PL022 controller, say Y or M here. 79962306a36Sopenharmony_ci 80062306a36Sopenharmony_ciconfig SPI_PPC4xx 80162306a36Sopenharmony_ci tristate "PPC4xx SPI Controller" 80262306a36Sopenharmony_ci depends on PPC32 && 4xx 80362306a36Sopenharmony_ci select SPI_BITBANG 80462306a36Sopenharmony_ci help 80562306a36Sopenharmony_ci This selects a driver for the PPC4xx SPI Controller. 80662306a36Sopenharmony_ci 80762306a36Sopenharmony_ciconfig SPI_PXA2XX 80862306a36Sopenharmony_ci tristate "PXA2xx SSP SPI master" 80962306a36Sopenharmony_ci depends on ARCH_PXA || ARCH_MMP || PCI || ACPI || COMPILE_TEST 81062306a36Sopenharmony_ci select PXA_SSP if ARCH_PXA || ARCH_MMP 81162306a36Sopenharmony_ci help 81262306a36Sopenharmony_ci This enables using a PXA2xx or Sodaville SSP port as a SPI master 81362306a36Sopenharmony_ci controller. The driver can be configured to use any SSP port and 81462306a36Sopenharmony_ci additional documentation can be found a Documentation/spi/pxa2xx.rst. 81562306a36Sopenharmony_ci 81662306a36Sopenharmony_ciconfig SPI_PXA2XX_PCI 81762306a36Sopenharmony_ci def_tristate SPI_PXA2XX && PCI && COMMON_CLK 81862306a36Sopenharmony_ci 81962306a36Sopenharmony_ciconfig SPI_ROCKCHIP 82062306a36Sopenharmony_ci tristate "Rockchip SPI controller driver" 82162306a36Sopenharmony_ci depends on ARCH_ROCKCHIP || COMPILE_TEST 82262306a36Sopenharmony_ci help 82362306a36Sopenharmony_ci This selects a driver for Rockchip SPI controller. 82462306a36Sopenharmony_ci 82562306a36Sopenharmony_ci If you say yes to this option, support will be included for 82662306a36Sopenharmony_ci RK3066, RK3188 and RK3288 families of SPI controller. 82762306a36Sopenharmony_ci Rockchip SPI controller support DMA transport and PIO mode. 82862306a36Sopenharmony_ci The main usecase of this controller is to use spi flash as boot 82962306a36Sopenharmony_ci device. 83062306a36Sopenharmony_ci 83162306a36Sopenharmony_ciconfig SPI_ROCKCHIP_SFC 83262306a36Sopenharmony_ci tristate "Rockchip Serial Flash Controller (SFC)" 83362306a36Sopenharmony_ci depends on ARCH_ROCKCHIP || COMPILE_TEST 83462306a36Sopenharmony_ci depends on HAS_IOMEM && HAS_DMA 83562306a36Sopenharmony_ci help 83662306a36Sopenharmony_ci This enables support for Rockchip serial flash controller. This 83762306a36Sopenharmony_ci is a specialized controller used to access SPI flash on some 83862306a36Sopenharmony_ci Rockchip SOCs. 83962306a36Sopenharmony_ci 84062306a36Sopenharmony_ci ROCKCHIP SFC supports DMA and PIO modes. When DMA is not available, 84162306a36Sopenharmony_ci the driver automatically falls back to PIO mode. 84262306a36Sopenharmony_ci 84362306a36Sopenharmony_ciconfig SPI_RB4XX 84462306a36Sopenharmony_ci tristate "Mikrotik RB4XX SPI master" 84562306a36Sopenharmony_ci depends on SPI_MASTER && ATH79 84662306a36Sopenharmony_ci help 84762306a36Sopenharmony_ci SPI controller driver for the Mikrotik RB4xx series boards. 84862306a36Sopenharmony_ci 84962306a36Sopenharmony_ciconfig SPI_RPCIF 85062306a36Sopenharmony_ci tristate "Renesas RPC-IF SPI driver" 85162306a36Sopenharmony_ci depends on RENESAS_RPCIF 85262306a36Sopenharmony_ci help 85362306a36Sopenharmony_ci SPI driver for Renesas R-Car Gen3 or RZ/G2 RPC-IF. 85462306a36Sopenharmony_ci 85562306a36Sopenharmony_ciconfig SPI_RSPI 85662306a36Sopenharmony_ci tristate "Renesas RSPI/QSPI controller" 85762306a36Sopenharmony_ci depends on SUPERH || ARCH_RENESAS || COMPILE_TEST 85862306a36Sopenharmony_ci help 85962306a36Sopenharmony_ci SPI driver for Renesas RSPI and QSPI blocks. 86062306a36Sopenharmony_ci 86162306a36Sopenharmony_ciconfig SPI_RZV2M_CSI 86262306a36Sopenharmony_ci tristate "Renesas RZ/V2M CSI controller" 86362306a36Sopenharmony_ci depends on ARCH_RENESAS || COMPILE_TEST 86462306a36Sopenharmony_ci help 86562306a36Sopenharmony_ci SPI driver for Renesas RZ/V2M Clocked Serial Interface (CSI) 86662306a36Sopenharmony_ci 86762306a36Sopenharmony_ciconfig SPI_QCOM_QSPI 86862306a36Sopenharmony_ci tristate "QTI QSPI controller" 86962306a36Sopenharmony_ci depends on ARCH_QCOM || COMPILE_TEST 87062306a36Sopenharmony_ci help 87162306a36Sopenharmony_ci QSPI(Quad SPI) driver for Qualcomm QSPI controller. 87262306a36Sopenharmony_ci 87362306a36Sopenharmony_ciconfig SPI_QUP 87462306a36Sopenharmony_ci tristate "Qualcomm SPI controller with QUP interface" 87562306a36Sopenharmony_ci depends on ARCH_QCOM || COMPILE_TEST 87662306a36Sopenharmony_ci help 87762306a36Sopenharmony_ci Qualcomm Universal Peripheral (QUP) core is an AHB slave that 87862306a36Sopenharmony_ci provides a common data path (an output FIFO and an input FIFO) 87962306a36Sopenharmony_ci for serial peripheral interface (SPI) mini-core. SPI in master 88062306a36Sopenharmony_ci mode supports up to 50MHz, up to four chip selects, programmable 88162306a36Sopenharmony_ci data path from 4 bits to 32 bits and numerous protocol variants. 88262306a36Sopenharmony_ci 88362306a36Sopenharmony_ci This driver can also be built as a module. If so, the module 88462306a36Sopenharmony_ci will be called spi_qup. 88562306a36Sopenharmony_ci 88662306a36Sopenharmony_ciconfig SPI_QCOM_GENI 88762306a36Sopenharmony_ci tristate "Qualcomm GENI based SPI controller" 88862306a36Sopenharmony_ci depends on QCOM_GENI_SE 88962306a36Sopenharmony_ci help 89062306a36Sopenharmony_ci This driver supports GENI serial engine based SPI controller in 89162306a36Sopenharmony_ci master mode on the Qualcomm Technologies Inc.'s SoCs. If you say 89262306a36Sopenharmony_ci yes to this option, support will be included for the built-in SPI 89362306a36Sopenharmony_ci interface on the Qualcomm Technologies Inc.'s SoCs. 89462306a36Sopenharmony_ci 89562306a36Sopenharmony_ci This driver can also be built as a module. If so, the module 89662306a36Sopenharmony_ci will be called spi-geni-qcom. 89762306a36Sopenharmony_ci 89862306a36Sopenharmony_ciconfig SPI_S3C64XX 89962306a36Sopenharmony_ci tristate "Samsung S3C64XX/Exynos SoC series type SPI" 90062306a36Sopenharmony_ci depends on (PLAT_SAMSUNG || ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST) 90162306a36Sopenharmony_ci help 90262306a36Sopenharmony_ci SPI driver for Samsung S3C64XX, S5Pv210 and Exynos SoCs. 90362306a36Sopenharmony_ci Choose Y/M here only if you build for such Samsung SoC. 90462306a36Sopenharmony_ci 90562306a36Sopenharmony_ciconfig SPI_SC18IS602 90662306a36Sopenharmony_ci tristate "NXP SC18IS602/602B/603 I2C to SPI bridge" 90762306a36Sopenharmony_ci depends on I2C 90862306a36Sopenharmony_ci help 90962306a36Sopenharmony_ci SPI driver for NXP SC18IS602/602B/603 I2C to SPI bridge. 91062306a36Sopenharmony_ci 91162306a36Sopenharmony_ciconfig SPI_SH_MSIOF 91262306a36Sopenharmony_ci tristate "SuperH MSIOF SPI controller" 91362306a36Sopenharmony_ci depends on HAVE_CLK 91462306a36Sopenharmony_ci depends on ARCH_SHMOBILE || ARCH_RENESAS || COMPILE_TEST 91562306a36Sopenharmony_ci help 91662306a36Sopenharmony_ci SPI driver for SuperH and SH Mobile MSIOF blocks. 91762306a36Sopenharmony_ci 91862306a36Sopenharmony_ciconfig SPI_SH 91962306a36Sopenharmony_ci tristate "SuperH SPI controller" 92062306a36Sopenharmony_ci depends on SUPERH || COMPILE_TEST 92162306a36Sopenharmony_ci help 92262306a36Sopenharmony_ci SPI driver for SuperH SPI blocks. 92362306a36Sopenharmony_ci 92462306a36Sopenharmony_ciconfig SPI_SH_SCI 92562306a36Sopenharmony_ci tristate "SuperH SCI SPI controller" 92662306a36Sopenharmony_ci depends on SUPERH 92762306a36Sopenharmony_ci select SPI_BITBANG 92862306a36Sopenharmony_ci help 92962306a36Sopenharmony_ci SPI driver for SuperH SCI blocks. 93062306a36Sopenharmony_ci 93162306a36Sopenharmony_ciconfig SPI_SH_HSPI 93262306a36Sopenharmony_ci tristate "SuperH HSPI controller" 93362306a36Sopenharmony_ci depends on ARCH_RENESAS || COMPILE_TEST 93462306a36Sopenharmony_ci help 93562306a36Sopenharmony_ci SPI driver for SuperH HSPI blocks. 93662306a36Sopenharmony_ci 93762306a36Sopenharmony_ciconfig SPI_SIFIVE 93862306a36Sopenharmony_ci tristate "SiFive SPI controller" 93962306a36Sopenharmony_ci depends on HAS_IOMEM 94062306a36Sopenharmony_ci help 94162306a36Sopenharmony_ci This exposes the SPI controller IP from SiFive. 94262306a36Sopenharmony_ci 94362306a36Sopenharmony_ciconfig SPI_SLAVE_MT27XX 94462306a36Sopenharmony_ci tristate "MediaTek SPI slave device" 94562306a36Sopenharmony_ci depends on ARCH_MEDIATEK || COMPILE_TEST 94662306a36Sopenharmony_ci depends on SPI_SLAVE 94762306a36Sopenharmony_ci help 94862306a36Sopenharmony_ci This selects the MediaTek(R) SPI slave device driver. 94962306a36Sopenharmony_ci If you want to use MediaTek(R) SPI slave interface, 95062306a36Sopenharmony_ci say Y or M here.If you are not sure, say N. 95162306a36Sopenharmony_ci SPI slave drivers for Mediatek MT27XX series ARM SoCs. 95262306a36Sopenharmony_ci 95362306a36Sopenharmony_ciconfig SPI_SN_F_OSPI 95462306a36Sopenharmony_ci tristate "Socionext F_OSPI SPI flash controller" 95562306a36Sopenharmony_ci depends on OF && HAS_IOMEM 95662306a36Sopenharmony_ci depends on SPI_MEM 95762306a36Sopenharmony_ci help 95862306a36Sopenharmony_ci This enables support for the Socionext F_OSPI controller 95962306a36Sopenharmony_ci for connecting an SPI Flash memory over up to 8-bit wide bus. 96062306a36Sopenharmony_ci It supports indirect access mode only. 96162306a36Sopenharmony_ci 96262306a36Sopenharmony_ciconfig SPI_SPRD 96362306a36Sopenharmony_ci tristate "Spreadtrum SPI controller" 96462306a36Sopenharmony_ci depends on ARCH_SPRD || COMPILE_TEST 96562306a36Sopenharmony_ci help 96662306a36Sopenharmony_ci SPI driver for Spreadtrum SoCs. 96762306a36Sopenharmony_ci 96862306a36Sopenharmony_ciconfig SPI_SPRD_ADI 96962306a36Sopenharmony_ci tristate "Spreadtrum ADI controller" 97062306a36Sopenharmony_ci depends on ARCH_SPRD || COMPILE_TEST 97162306a36Sopenharmony_ci depends on HWSPINLOCK || (COMPILE_TEST && !HWSPINLOCK) 97262306a36Sopenharmony_ci help 97362306a36Sopenharmony_ci ADI driver based on SPI for Spreadtrum SoCs. 97462306a36Sopenharmony_ci 97562306a36Sopenharmony_ciconfig SPI_STM32 97662306a36Sopenharmony_ci tristate "STMicroelectronics STM32 SPI controller" 97762306a36Sopenharmony_ci depends on ARCH_STM32 || COMPILE_TEST 97862306a36Sopenharmony_ci select SPI_SLAVE 97962306a36Sopenharmony_ci help 98062306a36Sopenharmony_ci SPI driver for STMicroelectronics STM32 SoCs. 98162306a36Sopenharmony_ci 98262306a36Sopenharmony_ci STM32 SPI controller supports DMA and PIO modes. When DMA 98362306a36Sopenharmony_ci is not available, the driver automatically falls back to 98462306a36Sopenharmony_ci PIO mode. 98562306a36Sopenharmony_ci 98662306a36Sopenharmony_ciconfig SPI_STM32_QSPI 98762306a36Sopenharmony_ci tristate "STMicroelectronics STM32 QUAD SPI controller" 98862306a36Sopenharmony_ci depends on ARCH_STM32 || COMPILE_TEST 98962306a36Sopenharmony_ci depends on OF 99062306a36Sopenharmony_ci depends on SPI_MEM 99162306a36Sopenharmony_ci help 99262306a36Sopenharmony_ci This enables support for the Quad SPI controller in master mode. 99362306a36Sopenharmony_ci This driver does not support generic SPI. The implementation only 99462306a36Sopenharmony_ci supports spi-mem interface. 99562306a36Sopenharmony_ci 99662306a36Sopenharmony_ciconfig SPI_ST_SSC4 99762306a36Sopenharmony_ci tristate "STMicroelectronics SPI SSC-based driver" 99862306a36Sopenharmony_ci depends on ARCH_STI || COMPILE_TEST 99962306a36Sopenharmony_ci help 100062306a36Sopenharmony_ci STMicroelectronics SoCs support for SPI. If you say yes to 100162306a36Sopenharmony_ci this option, support will be included for the SSC driven SPI. 100262306a36Sopenharmony_ci 100362306a36Sopenharmony_ciconfig SPI_SUN4I 100462306a36Sopenharmony_ci tristate "Allwinner A10 SoCs SPI controller" 100562306a36Sopenharmony_ci depends on ARCH_SUNXI || COMPILE_TEST 100662306a36Sopenharmony_ci help 100762306a36Sopenharmony_ci SPI driver for Allwinner sun4i, sun5i and sun7i SoCs 100862306a36Sopenharmony_ci 100962306a36Sopenharmony_ciconfig SPI_SUN6I 101062306a36Sopenharmony_ci tristate "Allwinner A31 SPI controller" 101162306a36Sopenharmony_ci depends on ARCH_SUNXI || COMPILE_TEST 101262306a36Sopenharmony_ci depends on RESET_CONTROLLER 101362306a36Sopenharmony_ci help 101462306a36Sopenharmony_ci This enables using the SPI controller on the Allwinner A31 SoCs. 101562306a36Sopenharmony_ci 101662306a36Sopenharmony_ciconfig SPI_SUNPLUS_SP7021 101762306a36Sopenharmony_ci tristate "Sunplus SP7021 SPI controller" 101862306a36Sopenharmony_ci depends on SOC_SP7021 || COMPILE_TEST 101962306a36Sopenharmony_ci help 102062306a36Sopenharmony_ci This enables Sunplus SP7021 SPI controller driver on the SP7021 SoCs. 102162306a36Sopenharmony_ci This driver can also be built as a module. If so, the module will be 102262306a36Sopenharmony_ci called as spi-sunplus-sp7021. 102362306a36Sopenharmony_ci 102462306a36Sopenharmony_ci If you have a Sunplus SP7021 platform say Y here. 102562306a36Sopenharmony_ci If unsure, say N. 102662306a36Sopenharmony_ci 102762306a36Sopenharmony_ciconfig SPI_SYNQUACER 102862306a36Sopenharmony_ci tristate "Socionext's SynQuacer HighSpeed SPI controller" 102962306a36Sopenharmony_ci depends on ARCH_SYNQUACER || COMPILE_TEST 103062306a36Sopenharmony_ci help 103162306a36Sopenharmony_ci SPI driver for Socionext's High speed SPI controller which provides 103262306a36Sopenharmony_ci various operating modes for interfacing to serial peripheral devices 103362306a36Sopenharmony_ci that use the de-facto standard SPI protocol. 103462306a36Sopenharmony_ci 103562306a36Sopenharmony_ci It also supports the new dual-bit and quad-bit SPI protocol. 103662306a36Sopenharmony_ci 103762306a36Sopenharmony_ciconfig SPI_MXIC 103862306a36Sopenharmony_ci tristate "Macronix MX25F0A SPI controller" 103962306a36Sopenharmony_ci depends on SPI_MASTER 104062306a36Sopenharmony_ci imply MTD_NAND_ECC_MXIC 104162306a36Sopenharmony_ci help 104262306a36Sopenharmony_ci This selects the Macronix MX25F0A SPI controller driver. 104362306a36Sopenharmony_ci 104462306a36Sopenharmony_ciconfig SPI_MXS 104562306a36Sopenharmony_ci tristate "Freescale MXS SPI controller" 104662306a36Sopenharmony_ci depends on ARCH_MXS 104762306a36Sopenharmony_ci select STMP_DEVICE 104862306a36Sopenharmony_ci help 104962306a36Sopenharmony_ci SPI driver for Freescale MXS devices. 105062306a36Sopenharmony_ci 105162306a36Sopenharmony_ciconfig SPI_TEGRA210_QUAD 105262306a36Sopenharmony_ci tristate "NVIDIA Tegra QSPI Controller" 105362306a36Sopenharmony_ci depends on ARCH_TEGRA || COMPILE_TEST 105462306a36Sopenharmony_ci depends on RESET_CONTROLLER 105562306a36Sopenharmony_ci help 105662306a36Sopenharmony_ci QSPI driver for NVIDIA Tegra QSPI Controller interface. This 105762306a36Sopenharmony_ci controller is different from the SPI controller and is available 105862306a36Sopenharmony_ci on Tegra SoCs starting from Tegra210. 105962306a36Sopenharmony_ci 106062306a36Sopenharmony_ciconfig SPI_TEGRA114 106162306a36Sopenharmony_ci tristate "NVIDIA Tegra114 SPI Controller" 106262306a36Sopenharmony_ci depends on (ARCH_TEGRA && TEGRA20_APB_DMA) || COMPILE_TEST 106362306a36Sopenharmony_ci depends on RESET_CONTROLLER 106462306a36Sopenharmony_ci help 106562306a36Sopenharmony_ci SPI driver for NVIDIA Tegra114 SPI Controller interface. This controller 106662306a36Sopenharmony_ci is different than the older SoCs SPI controller and also register interface 106762306a36Sopenharmony_ci get changed with this controller. 106862306a36Sopenharmony_ci 106962306a36Sopenharmony_ciconfig SPI_TEGRA20_SFLASH 107062306a36Sopenharmony_ci tristate "Nvidia Tegra20 Serial flash Controller" 107162306a36Sopenharmony_ci depends on ARCH_TEGRA || COMPILE_TEST 107262306a36Sopenharmony_ci depends on RESET_CONTROLLER 107362306a36Sopenharmony_ci help 107462306a36Sopenharmony_ci SPI driver for Nvidia Tegra20 Serial flash Controller interface. 107562306a36Sopenharmony_ci The main usecase of this controller is to use spi flash as boot 107662306a36Sopenharmony_ci device. 107762306a36Sopenharmony_ci 107862306a36Sopenharmony_ciconfig SPI_TEGRA20_SLINK 107962306a36Sopenharmony_ci tristate "Nvidia Tegra20/Tegra30 SLINK Controller" 108062306a36Sopenharmony_ci depends on (ARCH_TEGRA && TEGRA20_APB_DMA) || COMPILE_TEST 108162306a36Sopenharmony_ci depends on RESET_CONTROLLER 108262306a36Sopenharmony_ci help 108362306a36Sopenharmony_ci SPI driver for Nvidia Tegra20/Tegra30 SLINK Controller interface. 108462306a36Sopenharmony_ci 108562306a36Sopenharmony_ciconfig SPI_THUNDERX 108662306a36Sopenharmony_ci tristate "Cavium ThunderX SPI controller" 108762306a36Sopenharmony_ci depends on PCI && 64BIT && (ARM64 || COMPILE_TEST) 108862306a36Sopenharmony_ci help 108962306a36Sopenharmony_ci SPI host driver for the hardware found on Cavium ThunderX 109062306a36Sopenharmony_ci SOCs. 109162306a36Sopenharmony_ci 109262306a36Sopenharmony_ciconfig SPI_TOPCLIFF_PCH 109362306a36Sopenharmony_ci tristate "Intel EG20T PCH/LAPIS Semicon IOH(ML7213/ML7223/ML7831) SPI" 109462306a36Sopenharmony_ci depends on PCI && (X86_32 || MIPS || COMPILE_TEST) 109562306a36Sopenharmony_ci help 109662306a36Sopenharmony_ci SPI driver for the Topcliff PCH (Platform Controller Hub) SPI bus 109762306a36Sopenharmony_ci used in some x86 embedded processors. 109862306a36Sopenharmony_ci 109962306a36Sopenharmony_ci This driver also supports the ML7213/ML7223/ML7831, a companion chip 110062306a36Sopenharmony_ci for the Atom E6xx series and compatible with the Intel EG20T PCH. 110162306a36Sopenharmony_ci 110262306a36Sopenharmony_ciconfig SPI_UNIPHIER 110362306a36Sopenharmony_ci tristate "Socionext UniPhier SPI Controller" 110462306a36Sopenharmony_ci depends on (ARCH_UNIPHIER || COMPILE_TEST) && OF 110562306a36Sopenharmony_ci depends on HAS_IOMEM 110662306a36Sopenharmony_ci help 110762306a36Sopenharmony_ci This enables a driver for the Socionext UniPhier SoC SCSSI SPI controller. 110862306a36Sopenharmony_ci 110962306a36Sopenharmony_ci UniPhier SoCs have SCSSI and MCSSI SPI controllers. 111062306a36Sopenharmony_ci Every UniPhier SoC has SCSSI which supports single channel. 111162306a36Sopenharmony_ci Older UniPhier Pro4/Pro5 also has MCSSI which support multiple channels. 111262306a36Sopenharmony_ci This driver supports SCSSI only. 111362306a36Sopenharmony_ci 111462306a36Sopenharmony_ci If your SoC supports SCSSI, say Y here. 111562306a36Sopenharmony_ci 111662306a36Sopenharmony_ciconfig SPI_XCOMM 111762306a36Sopenharmony_ci tristate "Analog Devices AD-FMCOMMS1-EBZ SPI-I2C-bridge driver" 111862306a36Sopenharmony_ci depends on I2C 111962306a36Sopenharmony_ci help 112062306a36Sopenharmony_ci Support for the SPI-I2C bridge found on the Analog Devices 112162306a36Sopenharmony_ci AD-FMCOMMS1-EBZ board. 112262306a36Sopenharmony_ci 112362306a36Sopenharmony_ciconfig SPI_XILINX 112462306a36Sopenharmony_ci tristate "Xilinx SPI controller common module" 112562306a36Sopenharmony_ci depends on HAS_IOMEM 112662306a36Sopenharmony_ci select SPI_BITBANG 112762306a36Sopenharmony_ci help 112862306a36Sopenharmony_ci This exposes the SPI controller IP from the Xilinx EDK. 112962306a36Sopenharmony_ci 113062306a36Sopenharmony_ci See the "OPB Serial Peripheral Interface (SPI) (v1.00e)" 113162306a36Sopenharmony_ci Product Specification document (DS464) for hardware details. 113262306a36Sopenharmony_ci 113362306a36Sopenharmony_ci Or for the DS570, see "XPS Serial Peripheral Interface (SPI) (v2.00b)" 113462306a36Sopenharmony_ci 113562306a36Sopenharmony_ciconfig SPI_XLP 113662306a36Sopenharmony_ci tristate "Cavium ThunderX2 SPI controller driver" 113762306a36Sopenharmony_ci depends on ARCH_THUNDER2 || COMPILE_TEST 113862306a36Sopenharmony_ci help 113962306a36Sopenharmony_ci Enable support for the SPI controller on the Cavium ThunderX2. 114062306a36Sopenharmony_ci (Originally on Netlogic XLP SoCs.) 114162306a36Sopenharmony_ci 114262306a36Sopenharmony_ci If you have a Cavium ThunderX2 platform say Y here. 114362306a36Sopenharmony_ci If unsure, say N. 114462306a36Sopenharmony_ci 114562306a36Sopenharmony_ciconfig SPI_XTENSA_XTFPGA 114662306a36Sopenharmony_ci tristate "Xtensa SPI controller for xtfpga" 114762306a36Sopenharmony_ci depends on (XTENSA && XTENSA_PLATFORM_XTFPGA) || COMPILE_TEST 114862306a36Sopenharmony_ci select SPI_BITBANG 114962306a36Sopenharmony_ci help 115062306a36Sopenharmony_ci SPI driver for xtfpga SPI master controller. 115162306a36Sopenharmony_ci 115262306a36Sopenharmony_ci This simple SPI master controller is built into xtfpga bitstreams 115362306a36Sopenharmony_ci and is used to control daughterboard audio codec. It always transfers 115462306a36Sopenharmony_ci 16 bit words in SPI mode 0, automatically asserting CS on transfer 115562306a36Sopenharmony_ci start and deasserting on end. 115662306a36Sopenharmony_ci 115762306a36Sopenharmony_ciconfig SPI_ZYNQ_QSPI 115862306a36Sopenharmony_ci tristate "Xilinx Zynq QSPI controller" 115962306a36Sopenharmony_ci depends on ARCH_ZYNQ || COMPILE_TEST 116062306a36Sopenharmony_ci depends on SPI_MEM 116162306a36Sopenharmony_ci help 116262306a36Sopenharmony_ci This enables support for the Zynq Quad SPI controller 116362306a36Sopenharmony_ci in master mode. 116462306a36Sopenharmony_ci This controller only supports SPI memory interface. 116562306a36Sopenharmony_ci 116662306a36Sopenharmony_ciconfig SPI_ZYNQMP_GQSPI 116762306a36Sopenharmony_ci tristate "Xilinx ZynqMP GQSPI controller" 116862306a36Sopenharmony_ci depends on (SPI_MEM && HAS_DMA) || COMPILE_TEST 116962306a36Sopenharmony_ci help 117062306a36Sopenharmony_ci Enables Xilinx GQSPI controller driver for Zynq UltraScale+ MPSoC. 117162306a36Sopenharmony_ci This controller only supports SPI memory interface. 117262306a36Sopenharmony_ci 117362306a36Sopenharmony_ciconfig SPI_AMD 117462306a36Sopenharmony_ci tristate "AMD SPI controller" 117562306a36Sopenharmony_ci depends on SPI_MASTER || COMPILE_TEST 117662306a36Sopenharmony_ci help 117762306a36Sopenharmony_ci Enables SPI controller driver for AMD SoC. 117862306a36Sopenharmony_ci 117962306a36Sopenharmony_ci# 118062306a36Sopenharmony_ci# Add new SPI master controllers in alphabetical order above this line 118162306a36Sopenharmony_ci# 118262306a36Sopenharmony_ci 118362306a36Sopenharmony_cicomment "SPI Multiplexer support" 118462306a36Sopenharmony_ci 118562306a36Sopenharmony_ciconfig SPI_MUX 118662306a36Sopenharmony_ci tristate "SPI multiplexer support" 118762306a36Sopenharmony_ci select MULTIPLEXER 118862306a36Sopenharmony_ci help 118962306a36Sopenharmony_ci This adds support for SPI multiplexers. Each SPI mux will be 119062306a36Sopenharmony_ci accessible as a SPI controller, the devices behind the mux will appear 119162306a36Sopenharmony_ci to be chip selects on this controller. It is still necessary to 119262306a36Sopenharmony_ci select one or more specific mux-controller drivers. 119362306a36Sopenharmony_ci 119462306a36Sopenharmony_ci# 119562306a36Sopenharmony_ci# There are lots of SPI device types, with sensors and memory 119662306a36Sopenharmony_ci# being probably the most widely used ones. 119762306a36Sopenharmony_ci# 119862306a36Sopenharmony_cicomment "SPI Protocol Masters" 119962306a36Sopenharmony_ci 120062306a36Sopenharmony_ciconfig SPI_SPIDEV 120162306a36Sopenharmony_ci tristate "User mode SPI device driver support" 120262306a36Sopenharmony_ci help 120362306a36Sopenharmony_ci This supports user mode SPI protocol drivers. 120462306a36Sopenharmony_ci 120562306a36Sopenharmony_ciconfig SPI_LOOPBACK_TEST 120662306a36Sopenharmony_ci tristate "spi loopback test framework support" 120762306a36Sopenharmony_ci depends on m 120862306a36Sopenharmony_ci help 120962306a36Sopenharmony_ci This enables the SPI loopback testing framework driver 121062306a36Sopenharmony_ci 121162306a36Sopenharmony_ci primarily used for development of spi_master drivers 121262306a36Sopenharmony_ci and to detect regressions 121362306a36Sopenharmony_ci 121462306a36Sopenharmony_ciconfig SPI_TLE62X0 121562306a36Sopenharmony_ci tristate "Infineon TLE62X0 (for power switching)" 121662306a36Sopenharmony_ci depends on SYSFS 121762306a36Sopenharmony_ci help 121862306a36Sopenharmony_ci SPI driver for Infineon TLE62X0 series line driver chips, 121962306a36Sopenharmony_ci such as the TLE6220, TLE6230 and TLE6240. This provides a 122062306a36Sopenharmony_ci sysfs interface, with each line presented as a kind of GPIO 122162306a36Sopenharmony_ci exposing both switch control and diagnostic feedback. 122262306a36Sopenharmony_ci 122362306a36Sopenharmony_ci# 122462306a36Sopenharmony_ci# Add new SPI protocol masters in alphabetical order above this line 122562306a36Sopenharmony_ci# 122662306a36Sopenharmony_ci 122762306a36Sopenharmony_ciendif # SPI_MASTER 122862306a36Sopenharmony_ci 122962306a36Sopenharmony_ci# 123062306a36Sopenharmony_ci# SLAVE side ... listening to other SPI masters 123162306a36Sopenharmony_ci# 123262306a36Sopenharmony_ci 123362306a36Sopenharmony_ciconfig SPI_SLAVE 123462306a36Sopenharmony_ci bool "SPI slave protocol handlers" 123562306a36Sopenharmony_ci help 123662306a36Sopenharmony_ci If your system has a slave-capable SPI controller, you can enable 123762306a36Sopenharmony_ci slave protocol handlers. 123862306a36Sopenharmony_ci 123962306a36Sopenharmony_ciif SPI_SLAVE 124062306a36Sopenharmony_ci 124162306a36Sopenharmony_ciconfig SPI_SLAVE_TIME 124262306a36Sopenharmony_ci tristate "SPI slave handler reporting boot up time" 124362306a36Sopenharmony_ci help 124462306a36Sopenharmony_ci SPI slave handler responding with the time of reception of the last 124562306a36Sopenharmony_ci SPI message. 124662306a36Sopenharmony_ci 124762306a36Sopenharmony_ciconfig SPI_SLAVE_SYSTEM_CONTROL 124862306a36Sopenharmony_ci tristate "SPI slave handler controlling system state" 124962306a36Sopenharmony_ci help 125062306a36Sopenharmony_ci SPI slave handler to allow remote control of system reboot, power 125162306a36Sopenharmony_ci off, halt, and suspend. 125262306a36Sopenharmony_ci 125362306a36Sopenharmony_ciendif # SPI_SLAVE 125462306a36Sopenharmony_ci 125562306a36Sopenharmony_ciconfig SPI_DYNAMIC 125662306a36Sopenharmony_ci def_bool ACPI || OF_DYNAMIC || SPI_SLAVE 125762306a36Sopenharmony_ci 125862306a36Sopenharmony_ciendif # SPI 1259