1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only 2*4882a593Smuzhiyun# 3*4882a593Smuzhiyun# SPI driver configuration 4*4882a593Smuzhiyun# 5*4882a593Smuzhiyunmenuconfig SPI 6*4882a593Smuzhiyun bool "SPI support" 7*4882a593Smuzhiyun depends on HAS_IOMEM 8*4882a593Smuzhiyun help 9*4882a593Smuzhiyun The "Serial Peripheral Interface" is a low level synchronous 10*4882a593Smuzhiyun protocol. Chips that support SPI can have data transfer rates 11*4882a593Smuzhiyun up to several tens of Mbit/sec. Chips are addressed with a 12*4882a593Smuzhiyun controller and a chipselect. Most SPI slaves don't support 13*4882a593Smuzhiyun dynamic device discovery; some are even write-only or read-only. 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun SPI is widely used by microcontrollers to talk with sensors, 16*4882a593Smuzhiyun eeprom and flash memory, codecs and various other controller 17*4882a593Smuzhiyun chips, analog to digital (and d-to-a) converters, and more. 18*4882a593Smuzhiyun MMC and SD cards can be accessed using SPI protocol; and for 19*4882a593Smuzhiyun DataFlash cards used in MMC sockets, SPI must always be used. 20*4882a593Smuzhiyun 21*4882a593Smuzhiyun SPI is one of a family of similar protocols using a four wire 22*4882a593Smuzhiyun interface (select, clock, data in, data out) including Microwire 23*4882a593Smuzhiyun (half duplex), SSP, SSI, and PSP. This driver framework should 24*4882a593Smuzhiyun work with most such devices and controllers. 25*4882a593Smuzhiyun 26*4882a593Smuzhiyunif SPI 27*4882a593Smuzhiyun 28*4882a593Smuzhiyunconfig SPI_DEBUG 29*4882a593Smuzhiyun bool "Debug support for SPI drivers" 30*4882a593Smuzhiyun depends on DEBUG_KERNEL 31*4882a593Smuzhiyun help 32*4882a593Smuzhiyun Say "yes" to enable debug messaging (like dev_dbg and pr_debug), 33*4882a593Smuzhiyun sysfs, and debugfs support in SPI controller and protocol drivers. 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun# 36*4882a593Smuzhiyun# MASTER side ... talking to discrete SPI slave chips including microcontrollers 37*4882a593Smuzhiyun# 38*4882a593Smuzhiyun 39*4882a593Smuzhiyunconfig SPI_MASTER 40*4882a593Smuzhiyun# bool "SPI Master Support" 41*4882a593Smuzhiyun bool 42*4882a593Smuzhiyun default SPI 43*4882a593Smuzhiyun help 44*4882a593Smuzhiyun If your system has an master-capable SPI controller (which 45*4882a593Smuzhiyun provides the clock and chipselect), you can enable that 46*4882a593Smuzhiyun controller and the protocol drivers for the SPI slave chips 47*4882a593Smuzhiyun that are connected. 48*4882a593Smuzhiyun 49*4882a593Smuzhiyunif SPI_MASTER 50*4882a593Smuzhiyun 51*4882a593Smuzhiyunconfig SPI_MEM 52*4882a593Smuzhiyun bool "SPI memory extension" 53*4882a593Smuzhiyun help 54*4882a593Smuzhiyun Enable this option if you want to enable the SPI memory extension. 55*4882a593Smuzhiyun This extension is meant to simplify interaction with SPI memories 56*4882a593Smuzhiyun by providing a high-level interface to send memory-like commands. 57*4882a593Smuzhiyun 58*4882a593Smuzhiyuncomment "SPI Master Controller Drivers" 59*4882a593Smuzhiyun 60*4882a593Smuzhiyunconfig SPI_ALTERA 61*4882a593Smuzhiyun tristate "Altera SPI Controller" 62*4882a593Smuzhiyun select REGMAP_MMIO 63*4882a593Smuzhiyun help 64*4882a593Smuzhiyun This is the driver for the Altera SPI Controller. 65*4882a593Smuzhiyun 66*4882a593Smuzhiyunconfig SPI_AR934X 67*4882a593Smuzhiyun tristate "Qualcomm Atheros AR934X/QCA95XX SPI controller driver" 68*4882a593Smuzhiyun depends on ATH79 || COMPILE_TEST 69*4882a593Smuzhiyun help 70*4882a593Smuzhiyun This enables support for the SPI controller present on the 71*4882a593Smuzhiyun Qualcomm Atheros AR934X/QCA95XX SoCs. 72*4882a593Smuzhiyun 73*4882a593Smuzhiyunconfig SPI_ATH79 74*4882a593Smuzhiyun tristate "Atheros AR71XX/AR724X/AR913X SPI controller driver" 75*4882a593Smuzhiyun depends on ATH79 || COMPILE_TEST 76*4882a593Smuzhiyun select SPI_BITBANG 77*4882a593Smuzhiyun help 78*4882a593Smuzhiyun This enables support for the SPI controller present on the 79*4882a593Smuzhiyun Atheros AR71XX/AR724X/AR913X SoCs. 80*4882a593Smuzhiyun 81*4882a593Smuzhiyunconfig SPI_ARMADA_3700 82*4882a593Smuzhiyun tristate "Marvell Armada 3700 SPI Controller" 83*4882a593Smuzhiyun depends on (ARCH_MVEBU && OF) || COMPILE_TEST 84*4882a593Smuzhiyun help 85*4882a593Smuzhiyun This enables support for the SPI controller present on the 86*4882a593Smuzhiyun Marvell Armada 3700 SoCs. 87*4882a593Smuzhiyun 88*4882a593Smuzhiyunconfig SPI_ATMEL 89*4882a593Smuzhiyun tristate "Atmel SPI Controller" 90*4882a593Smuzhiyun depends on ARCH_AT91 || COMPILE_TEST 91*4882a593Smuzhiyun depends on OF 92*4882a593Smuzhiyun help 93*4882a593Smuzhiyun This selects a driver for the Atmel SPI Controller, present on 94*4882a593Smuzhiyun many AT91 ARM chips. 95*4882a593Smuzhiyun 96*4882a593Smuzhiyunconfig SPI_AT91_USART 97*4882a593Smuzhiyun tristate "Atmel USART Controller SPI driver" 98*4882a593Smuzhiyun depends on (ARCH_AT91 || COMPILE_TEST) 99*4882a593Smuzhiyun depends on MFD_AT91_USART 100*4882a593Smuzhiyun help 101*4882a593Smuzhiyun This selects a driver for the AT91 USART Controller as SPI Master, 102*4882a593Smuzhiyun present on AT91 and SAMA5 SoC series. 103*4882a593Smuzhiyun 104*4882a593Smuzhiyunconfig SPI_ATMEL_QUADSPI 105*4882a593Smuzhiyun tristate "Atmel Quad SPI Controller" 106*4882a593Smuzhiyun depends on ARCH_AT91 || COMPILE_TEST 107*4882a593Smuzhiyun depends on OF && HAS_IOMEM 108*4882a593Smuzhiyun help 109*4882a593Smuzhiyun This enables support for the Quad SPI controller in master mode. 110*4882a593Smuzhiyun This driver does not support generic SPI. The implementation only 111*4882a593Smuzhiyun supports spi-mem interface. 112*4882a593Smuzhiyun 113*4882a593Smuzhiyunconfig SPI_AU1550 114*4882a593Smuzhiyun tristate "Au1550/Au1200/Au1300 SPI Controller" 115*4882a593Smuzhiyun depends on MIPS_ALCHEMY 116*4882a593Smuzhiyun select SPI_BITBANG 117*4882a593Smuzhiyun help 118*4882a593Smuzhiyun If you say yes to this option, support will be included for the 119*4882a593Smuzhiyun PSC SPI controller found on Au1550, Au1200 and Au1300 series. 120*4882a593Smuzhiyun 121*4882a593Smuzhiyunconfig SPI_AXI_SPI_ENGINE 122*4882a593Smuzhiyun tristate "Analog Devices AXI SPI Engine controller" 123*4882a593Smuzhiyun depends on HAS_IOMEM 124*4882a593Smuzhiyun help 125*4882a593Smuzhiyun This enables support for the Analog Devices AXI SPI Engine SPI controller. 126*4882a593Smuzhiyun It is part of the SPI Engine framework that is used in some Analog Devices 127*4882a593Smuzhiyun reference designs for FPGAs. 128*4882a593Smuzhiyun 129*4882a593Smuzhiyunconfig SPI_BCM2835 130*4882a593Smuzhiyun tristate "BCM2835 SPI controller" 131*4882a593Smuzhiyun depends on GPIOLIB 132*4882a593Smuzhiyun depends on ARCH_BCM2835 || ARCH_BRCMSTB || COMPILE_TEST 133*4882a593Smuzhiyun help 134*4882a593Smuzhiyun This selects a driver for the Broadcom BCM2835 SPI master. 135*4882a593Smuzhiyun 136*4882a593Smuzhiyun The BCM2835 contains two types of SPI master controller; the 137*4882a593Smuzhiyun "universal SPI master", and the regular SPI controller. This driver 138*4882a593Smuzhiyun is for the regular SPI controller. Slave mode operation is not also 139*4882a593Smuzhiyun not supported. 140*4882a593Smuzhiyun 141*4882a593Smuzhiyunconfig SPI_BCM2835AUX 142*4882a593Smuzhiyun tristate "BCM2835 SPI auxiliary controller" 143*4882a593Smuzhiyun depends on ((ARCH_BCM2835 || ARCH_BRCMSTB) && GPIOLIB) || COMPILE_TEST 144*4882a593Smuzhiyun help 145*4882a593Smuzhiyun This selects a driver for the Broadcom BCM2835 SPI aux master. 146*4882a593Smuzhiyun 147*4882a593Smuzhiyun The BCM2835 contains two types of SPI master controller; the 148*4882a593Smuzhiyun "universal SPI master", and the regular SPI controller. 149*4882a593Smuzhiyun This driver is for the universal/auxiliary SPI controller. 150*4882a593Smuzhiyun 151*4882a593Smuzhiyunconfig SPI_BCM63XX 152*4882a593Smuzhiyun tristate "Broadcom BCM63xx SPI controller" 153*4882a593Smuzhiyun depends on BCM63XX || BMIPS_GENERIC || COMPILE_TEST 154*4882a593Smuzhiyun help 155*4882a593Smuzhiyun Enable support for the SPI controller on the Broadcom BCM63xx SoCs. 156*4882a593Smuzhiyun 157*4882a593Smuzhiyunconfig SPI_BCM63XX_HSSPI 158*4882a593Smuzhiyun tristate "Broadcom BCM63XX HS SPI controller driver" 159*4882a593Smuzhiyun depends on BCM63XX || BMIPS_GENERIC || ARCH_BCM_63XX || COMPILE_TEST 160*4882a593Smuzhiyun help 161*4882a593Smuzhiyun This enables support for the High Speed SPI controller present on 162*4882a593Smuzhiyun newer Broadcom BCM63XX SoCs. 163*4882a593Smuzhiyun 164*4882a593Smuzhiyunconfig SPI_BCM_QSPI 165*4882a593Smuzhiyun tristate "Broadcom BSPI and MSPI controller support" 166*4882a593Smuzhiyun depends on ARCH_BRCMSTB || ARCH_BCM || ARCH_BCM_IPROC || \ 167*4882a593Smuzhiyun BMIPS_GENERIC || COMPILE_TEST 168*4882a593Smuzhiyun default ARCH_BCM_IPROC 169*4882a593Smuzhiyun help 170*4882a593Smuzhiyun Enables support for the Broadcom SPI flash and MSPI controller. 171*4882a593Smuzhiyun Select this option for any one of BRCMSTB, iProc NSP and NS2 SoCs 172*4882a593Smuzhiyun based platforms. This driver works for both SPI master for SPI NOR 173*4882a593Smuzhiyun flash device as well as MSPI device. 174*4882a593Smuzhiyun 175*4882a593Smuzhiyunconfig SPI_BITBANG 176*4882a593Smuzhiyun tristate "Utilities for Bitbanging SPI masters" 177*4882a593Smuzhiyun help 178*4882a593Smuzhiyun With a few GPIO pins, your system can bitbang the SPI protocol. 179*4882a593Smuzhiyun Select this to get SPI support through I/O pins (GPIO, parallel 180*4882a593Smuzhiyun port, etc). Or, some systems' SPI master controller drivers use 181*4882a593Smuzhiyun this code to manage the per-word or per-transfer accesses to the 182*4882a593Smuzhiyun hardware shift registers. 183*4882a593Smuzhiyun 184*4882a593Smuzhiyun This is library code, and is automatically selected by drivers that 185*4882a593Smuzhiyun need it. You only need to select this explicitly to support driver 186*4882a593Smuzhiyun modules that aren't part of this kernel tree. 187*4882a593Smuzhiyun 188*4882a593Smuzhiyunconfig SPI_BUTTERFLY 189*4882a593Smuzhiyun tristate "Parallel port adapter for AVR Butterfly (DEVELOPMENT)" 190*4882a593Smuzhiyun depends on PARPORT 191*4882a593Smuzhiyun select SPI_BITBANG 192*4882a593Smuzhiyun help 193*4882a593Smuzhiyun This uses a custom parallel port cable to connect to an AVR 194*4882a593Smuzhiyun Butterfly <http://www.atmel.com/products/avr/butterfly>, an 195*4882a593Smuzhiyun inexpensive battery powered microcontroller evaluation board. 196*4882a593Smuzhiyun This same cable can be used to flash new firmware. 197*4882a593Smuzhiyun 198*4882a593Smuzhiyunconfig SPI_CADENCE 199*4882a593Smuzhiyun tristate "Cadence SPI controller" 200*4882a593Smuzhiyun help 201*4882a593Smuzhiyun This selects the Cadence SPI controller master driver 202*4882a593Smuzhiyun used by Xilinx Zynq and ZynqMP. 203*4882a593Smuzhiyun 204*4882a593Smuzhiyunconfig SPI_CADENCE_QUADSPI 205*4882a593Smuzhiyun tristate "Cadence Quad SPI controller" 206*4882a593Smuzhiyun depends on OF && (ARM || ARM64 || COMPILE_TEST) 207*4882a593Smuzhiyun help 208*4882a593Smuzhiyun Enable support for the Cadence Quad SPI Flash controller. 209*4882a593Smuzhiyun 210*4882a593Smuzhiyun Cadence QSPI is a specialized controller for connecting an SPI 211*4882a593Smuzhiyun Flash over 1/2/4-bit wide bus. Enable this option if you have a 212*4882a593Smuzhiyun device with a Cadence QSPI controller and want to access the 213*4882a593Smuzhiyun Flash as an MTD device. 214*4882a593Smuzhiyun 215*4882a593Smuzhiyunconfig SPI_CLPS711X 216*4882a593Smuzhiyun tristate "CLPS711X host SPI controller" 217*4882a593Smuzhiyun depends on ARCH_CLPS711X || COMPILE_TEST 218*4882a593Smuzhiyun help 219*4882a593Smuzhiyun This enables dedicated general purpose SPI/Microwire1-compatible 220*4882a593Smuzhiyun master mode interface (SSI1) for CLPS711X-based CPUs. 221*4882a593Smuzhiyun 222*4882a593Smuzhiyunconfig SPI_COLDFIRE_QSPI 223*4882a593Smuzhiyun tristate "Freescale Coldfire QSPI controller" 224*4882a593Smuzhiyun depends on (M520x || M523x || M5249 || M525x || M527x || M528x || M532x) 225*4882a593Smuzhiyun help 226*4882a593Smuzhiyun This enables support for the Coldfire QSPI controller in master 227*4882a593Smuzhiyun mode. 228*4882a593Smuzhiyun 229*4882a593Smuzhiyunconfig SPI_DAVINCI 230*4882a593Smuzhiyun tristate "Texas Instruments DaVinci/DA8x/OMAP-L/AM1x SoC SPI controller" 231*4882a593Smuzhiyun depends on ARCH_DAVINCI || ARCH_KEYSTONE 232*4882a593Smuzhiyun select SPI_BITBANG 233*4882a593Smuzhiyun help 234*4882a593Smuzhiyun SPI master controller for DaVinci/DA8x/OMAP-L/AM1x SPI modules. 235*4882a593Smuzhiyun 236*4882a593Smuzhiyunconfig SPI_DESIGNWARE 237*4882a593Smuzhiyun tristate "DesignWare SPI controller core support" 238*4882a593Smuzhiyun imply SPI_MEM 239*4882a593Smuzhiyun help 240*4882a593Smuzhiyun general driver for SPI controller core from DesignWare 241*4882a593Smuzhiyun 242*4882a593Smuzhiyunif SPI_DESIGNWARE 243*4882a593Smuzhiyun 244*4882a593Smuzhiyunconfig SPI_DW_DMA 245*4882a593Smuzhiyun bool "DMA support for DW SPI controller" 246*4882a593Smuzhiyun 247*4882a593Smuzhiyunconfig SPI_DW_PCI 248*4882a593Smuzhiyun tristate "PCI interface driver for DW SPI core" 249*4882a593Smuzhiyun depends on PCI 250*4882a593Smuzhiyun 251*4882a593Smuzhiyunconfig SPI_DW_MMIO 252*4882a593Smuzhiyun tristate "Memory-mapped io interface driver for DW SPI core" 253*4882a593Smuzhiyun depends on HAS_IOMEM 254*4882a593Smuzhiyun 255*4882a593Smuzhiyunconfig SPI_DW_BT1 256*4882a593Smuzhiyun tristate "Baikal-T1 SPI driver for DW SPI core" 257*4882a593Smuzhiyun depends on MIPS_BAIKAL_T1 || COMPILE_TEST 258*4882a593Smuzhiyun select MULTIPLEXER 259*4882a593Smuzhiyun select MUX_MMIO 260*4882a593Smuzhiyun help 261*4882a593Smuzhiyun Baikal-T1 SoC is equipped with three DW APB SSI-based MMIO SPI 262*4882a593Smuzhiyun controllers. Two of them are pretty much normal: with IRQ, DMA, 263*4882a593Smuzhiyun FIFOs of 64 words depth, 4x CSs, but the third one as being a 264*4882a593Smuzhiyun part of the Baikal-T1 System Boot Controller has got a very 265*4882a593Smuzhiyun limited resources: no IRQ, no DMA, only a single native 266*4882a593Smuzhiyun chip-select and Tx/Rx FIFO with just 8 words depth available. 267*4882a593Smuzhiyun The later one is normally connected to an external SPI-nor flash 268*4882a593Smuzhiyun of 128Mb (in general can be of bigger size). 269*4882a593Smuzhiyun 270*4882a593Smuzhiyunconfig SPI_DW_BT1_DIRMAP 271*4882a593Smuzhiyun bool "Directly mapped Baikal-T1 Boot SPI flash support" 272*4882a593Smuzhiyun depends on SPI_DW_BT1 273*4882a593Smuzhiyun help 274*4882a593Smuzhiyun Directly mapped SPI flash memory is an interface specific to the 275*4882a593Smuzhiyun Baikal-T1 System Boot Controller. It is a 16MB MMIO region, which 276*4882a593Smuzhiyun can be used to access a peripheral memory device just by 277*4882a593Smuzhiyun reading/writing data from/to it. Note that the system APB bus 278*4882a593Smuzhiyun will stall during each IO from/to the dirmap region until the 279*4882a593Smuzhiyun operation is finished. So try not to use it concurrently with 280*4882a593Smuzhiyun time-critical tasks (like the SPI memory operations implemented 281*4882a593Smuzhiyun in this driver). 282*4882a593Smuzhiyun 283*4882a593Smuzhiyunendif 284*4882a593Smuzhiyun 285*4882a593Smuzhiyunconfig SPI_DLN2 286*4882a593Smuzhiyun tristate "Diolan DLN-2 USB SPI adapter" 287*4882a593Smuzhiyun depends on MFD_DLN2 288*4882a593Smuzhiyun help 289*4882a593Smuzhiyun If you say yes to this option, support will be included for Diolan 290*4882a593Smuzhiyun DLN2, a USB to SPI interface. 291*4882a593Smuzhiyun 292*4882a593Smuzhiyun This driver can also be built as a module. If so, the module 293*4882a593Smuzhiyun will be called spi-dln2. 294*4882a593Smuzhiyun 295*4882a593Smuzhiyunconfig SPI_EFM32 296*4882a593Smuzhiyun tristate "EFM32 SPI controller" 297*4882a593Smuzhiyun depends on OF && ARM && (ARCH_EFM32 || COMPILE_TEST) 298*4882a593Smuzhiyun select SPI_BITBANG 299*4882a593Smuzhiyun help 300*4882a593Smuzhiyun Driver for the spi controller found on Energy Micro's EFM32 SoCs. 301*4882a593Smuzhiyun 302*4882a593Smuzhiyunconfig SPI_EP93XX 303*4882a593Smuzhiyun tristate "Cirrus Logic EP93xx SPI controller" 304*4882a593Smuzhiyun depends on ARCH_EP93XX || COMPILE_TEST 305*4882a593Smuzhiyun help 306*4882a593Smuzhiyun This enables using the Cirrus EP93xx SPI controller in master 307*4882a593Smuzhiyun mode. 308*4882a593Smuzhiyun 309*4882a593Smuzhiyunconfig SPI_FALCON 310*4882a593Smuzhiyun bool "Falcon SPI controller support" 311*4882a593Smuzhiyun depends on SOC_FALCON 312*4882a593Smuzhiyun help 313*4882a593Smuzhiyun The external bus unit (EBU) found on the FALC-ON SoC has SPI 314*4882a593Smuzhiyun emulation that is designed for serial flash access. This driver 315*4882a593Smuzhiyun has only been tested with m25p80 type chips. The hardware has no 316*4882a593Smuzhiyun support for other types of SPI peripherals. 317*4882a593Smuzhiyun 318*4882a593Smuzhiyunconfig SPI_FSI 319*4882a593Smuzhiyun tristate "FSI SPI driver" 320*4882a593Smuzhiyun depends on FSI 321*4882a593Smuzhiyun help 322*4882a593Smuzhiyun This enables support for the driver for FSI bus attached SPI 323*4882a593Smuzhiyun controllers. 324*4882a593Smuzhiyun 325*4882a593Smuzhiyunconfig SPI_FSL_LPSPI 326*4882a593Smuzhiyun tristate "Freescale i.MX LPSPI controller" 327*4882a593Smuzhiyun depends on ARCH_MXC || COMPILE_TEST 328*4882a593Smuzhiyun help 329*4882a593Smuzhiyun This enables Freescale i.MX LPSPI controllers in master mode. 330*4882a593Smuzhiyun 331*4882a593Smuzhiyunconfig SPI_FSL_QUADSPI 332*4882a593Smuzhiyun tristate "Freescale QSPI controller" 333*4882a593Smuzhiyun depends on ARCH_MXC || SOC_LS1021A || ARCH_LAYERSCAPE || COMPILE_TEST 334*4882a593Smuzhiyun depends on HAS_IOMEM 335*4882a593Smuzhiyun help 336*4882a593Smuzhiyun This enables support for the Quad SPI controller in master mode. 337*4882a593Smuzhiyun Up to four flash chips can be connected on two buses with two 338*4882a593Smuzhiyun chipselects each. 339*4882a593Smuzhiyun This controller does not support generic SPI messages. It only 340*4882a593Smuzhiyun supports the high-level SPI memory interface. 341*4882a593Smuzhiyun 342*4882a593Smuzhiyunconfig SPI_HISI_SFC_V3XX 343*4882a593Smuzhiyun tristate "HiSilicon SPI NOR Flash Controller for Hi16XX chipsets" 344*4882a593Smuzhiyun depends on (ARM64 && ACPI) || COMPILE_TEST 345*4882a593Smuzhiyun depends on HAS_IOMEM 346*4882a593Smuzhiyun help 347*4882a593Smuzhiyun This enables support for HiSilicon v3xx SPI NOR flash controller 348*4882a593Smuzhiyun found in hi16xx chipsets. 349*4882a593Smuzhiyun 350*4882a593Smuzhiyunconfig SPI_NXP_FLEXSPI 351*4882a593Smuzhiyun tristate "NXP Flex SPI controller" 352*4882a593Smuzhiyun depends on ARCH_LAYERSCAPE || HAS_IOMEM 353*4882a593Smuzhiyun help 354*4882a593Smuzhiyun This enables support for the Flex SPI controller in master mode. 355*4882a593Smuzhiyun Up to four slave devices can be connected on two buses with two 356*4882a593Smuzhiyun chipselects each. 357*4882a593Smuzhiyun This controller does not support generic SPI messages and only 358*4882a593Smuzhiyun supports the high-level SPI memory interface. 359*4882a593Smuzhiyun 360*4882a593Smuzhiyunconfig SPI_GPIO 361*4882a593Smuzhiyun tristate "GPIO-based bitbanging SPI Master" 362*4882a593Smuzhiyun depends on GPIOLIB || COMPILE_TEST 363*4882a593Smuzhiyun select SPI_BITBANG 364*4882a593Smuzhiyun help 365*4882a593Smuzhiyun This simple GPIO bitbanging SPI master uses the arch-neutral GPIO 366*4882a593Smuzhiyun interface to manage MOSI, MISO, SCK, and chipselect signals. SPI 367*4882a593Smuzhiyun slaves connected to a bus using this driver are configured as usual, 368*4882a593Smuzhiyun except that the spi_board_info.controller_data holds the GPIO number 369*4882a593Smuzhiyun for the chipselect used by this controller driver. 370*4882a593Smuzhiyun 371*4882a593Smuzhiyun Note that this driver often won't achieve even 1 Mbit/sec speeds, 372*4882a593Smuzhiyun making it unusually slow for SPI. If your platform can inline 373*4882a593Smuzhiyun GPIO operations, you should be able to leverage that for better 374*4882a593Smuzhiyun speed with a custom version of this driver; see the source code. 375*4882a593Smuzhiyun 376*4882a593Smuzhiyunconfig SPI_IMG_SPFI 377*4882a593Smuzhiyun tristate "IMG SPFI controller" 378*4882a593Smuzhiyun depends on MIPS || COMPILE_TEST 379*4882a593Smuzhiyun help 380*4882a593Smuzhiyun This enables support for the SPFI master controller found on 381*4882a593Smuzhiyun IMG SoCs. 382*4882a593Smuzhiyun 383*4882a593Smuzhiyunconfig SPI_IMX 384*4882a593Smuzhiyun tristate "Freescale i.MX SPI controllers" 385*4882a593Smuzhiyun depends on ARCH_MXC || COMPILE_TEST 386*4882a593Smuzhiyun select SPI_BITBANG 387*4882a593Smuzhiyun help 388*4882a593Smuzhiyun This enables support for the Freescale i.MX SPI controllers. 389*4882a593Smuzhiyun 390*4882a593Smuzhiyunconfig SPI_JCORE 391*4882a593Smuzhiyun tristate "J-Core SPI Master" 392*4882a593Smuzhiyun depends on OF && (SUPERH || COMPILE_TEST) 393*4882a593Smuzhiyun help 394*4882a593Smuzhiyun This enables support for the SPI master controller in the J-Core 395*4882a593Smuzhiyun synthesizable, open source SoC. 396*4882a593Smuzhiyun 397*4882a593Smuzhiyunconfig SPI_LM70_LLP 398*4882a593Smuzhiyun tristate "Parallel port adapter for LM70 eval board (DEVELOPMENT)" 399*4882a593Smuzhiyun depends on PARPORT 400*4882a593Smuzhiyun select SPI_BITBANG 401*4882a593Smuzhiyun help 402*4882a593Smuzhiyun This driver supports the NS LM70 LLP Evaluation Board, 403*4882a593Smuzhiyun which interfaces to an LM70 temperature sensor using 404*4882a593Smuzhiyun a parallel port. 405*4882a593Smuzhiyun 406*4882a593Smuzhiyunconfig SPI_LP8841_RTC 407*4882a593Smuzhiyun tristate "ICP DAS LP-8841 SPI Controller for RTC" 408*4882a593Smuzhiyun depends on MACH_PXA27X_DT || COMPILE_TEST 409*4882a593Smuzhiyun help 410*4882a593Smuzhiyun This driver provides an SPI master device to drive Maxim 411*4882a593Smuzhiyun DS-1302 real time clock. 412*4882a593Smuzhiyun 413*4882a593Smuzhiyun Say N here unless you plan to run the kernel on an ICP DAS 414*4882a593Smuzhiyun LP-8x4x industrial computer. 415*4882a593Smuzhiyun 416*4882a593Smuzhiyunconfig SPI_MPC52xx 417*4882a593Smuzhiyun tristate "Freescale MPC52xx SPI (non-PSC) controller support" 418*4882a593Smuzhiyun depends on PPC_MPC52xx 419*4882a593Smuzhiyun help 420*4882a593Smuzhiyun This drivers supports the MPC52xx SPI controller in master SPI 421*4882a593Smuzhiyun mode. 422*4882a593Smuzhiyun 423*4882a593Smuzhiyunconfig SPI_MPC52xx_PSC 424*4882a593Smuzhiyun tristate "Freescale MPC52xx PSC SPI controller" 425*4882a593Smuzhiyun depends on PPC_MPC52xx 426*4882a593Smuzhiyun help 427*4882a593Smuzhiyun This enables using the Freescale MPC52xx Programmable Serial 428*4882a593Smuzhiyun Controller in master SPI mode. 429*4882a593Smuzhiyun 430*4882a593Smuzhiyunconfig SPI_MPC512x_PSC 431*4882a593Smuzhiyun tristate "Freescale MPC512x PSC SPI controller" 432*4882a593Smuzhiyun depends on PPC_MPC512x 433*4882a593Smuzhiyun help 434*4882a593Smuzhiyun This enables using the Freescale MPC5121 Programmable Serial 435*4882a593Smuzhiyun Controller in SPI master mode. 436*4882a593Smuzhiyun 437*4882a593Smuzhiyunconfig SPI_FSL_LIB 438*4882a593Smuzhiyun tristate 439*4882a593Smuzhiyun depends on OF 440*4882a593Smuzhiyun 441*4882a593Smuzhiyunconfig SPI_FSL_CPM 442*4882a593Smuzhiyun tristate 443*4882a593Smuzhiyun depends on FSL_SOC 444*4882a593Smuzhiyun 445*4882a593Smuzhiyunconfig SPI_FSL_SPI 446*4882a593Smuzhiyun tristate "Freescale SPI controller and Aeroflex Gaisler GRLIB SPI controller" 447*4882a593Smuzhiyun depends on OF 448*4882a593Smuzhiyun select SPI_FSL_LIB 449*4882a593Smuzhiyun select SPI_FSL_CPM if FSL_SOC 450*4882a593Smuzhiyun help 451*4882a593Smuzhiyun This enables using the Freescale SPI controllers in master mode. 452*4882a593Smuzhiyun MPC83xx platform uses the controller in cpu mode or CPM/QE mode. 453*4882a593Smuzhiyun MPC8569 uses the controller in QE mode, MPC8610 in cpu mode. 454*4882a593Smuzhiyun This also enables using the Aeroflex Gaisler GRLIB SPI controller in 455*4882a593Smuzhiyun master mode. 456*4882a593Smuzhiyun 457*4882a593Smuzhiyunconfig SPI_FSL_DSPI 458*4882a593Smuzhiyun tristate "Freescale DSPI controller" 459*4882a593Smuzhiyun select REGMAP_MMIO 460*4882a593Smuzhiyun depends on SOC_VF610 || SOC_LS1021A || ARCH_LAYERSCAPE || M5441x || COMPILE_TEST 461*4882a593Smuzhiyun help 462*4882a593Smuzhiyun This enables support for the Freescale DSPI controller in master 463*4882a593Smuzhiyun mode. VF610, LS1021A and ColdFire platforms uses the controller. 464*4882a593Smuzhiyun 465*4882a593Smuzhiyunconfig SPI_FSL_ESPI 466*4882a593Smuzhiyun tristate "Freescale eSPI controller" 467*4882a593Smuzhiyun depends on FSL_SOC 468*4882a593Smuzhiyun help 469*4882a593Smuzhiyun This enables using the Freescale eSPI controllers in master mode. 470*4882a593Smuzhiyun From MPC8536, 85xx platform uses the controller, and all P10xx, 471*4882a593Smuzhiyun P20xx, P30xx,P40xx, P50xx uses this controller. 472*4882a593Smuzhiyun 473*4882a593Smuzhiyunconfig SPI_MESON_SPICC 474*4882a593Smuzhiyun tristate "Amlogic Meson SPICC controller" 475*4882a593Smuzhiyun depends on COMMON_CLK 476*4882a593Smuzhiyun depends on ARCH_MESON || COMPILE_TEST 477*4882a593Smuzhiyun help 478*4882a593Smuzhiyun This enables master mode support for the SPICC (SPI communication 479*4882a593Smuzhiyun controller) available in Amlogic Meson SoCs. 480*4882a593Smuzhiyun 481*4882a593Smuzhiyunconfig SPI_MESON_SPIFC 482*4882a593Smuzhiyun tristate "Amlogic Meson SPIFC controller" 483*4882a593Smuzhiyun depends on ARCH_MESON || COMPILE_TEST 484*4882a593Smuzhiyun select REGMAP_MMIO 485*4882a593Smuzhiyun help 486*4882a593Smuzhiyun This enables master mode support for the SPIFC (SPI flash 487*4882a593Smuzhiyun controller) available in Amlogic Meson SoCs. 488*4882a593Smuzhiyun 489*4882a593Smuzhiyunconfig SPI_MT65XX 490*4882a593Smuzhiyun tristate "MediaTek SPI controller" 491*4882a593Smuzhiyun depends on ARCH_MEDIATEK || COMPILE_TEST 492*4882a593Smuzhiyun help 493*4882a593Smuzhiyun This selects the MediaTek(R) SPI bus driver. 494*4882a593Smuzhiyun If you want to use MediaTek(R) SPI interface, 495*4882a593Smuzhiyun say Y or M here.If you are not sure, say N. 496*4882a593Smuzhiyun SPI drivers for Mediatek MT65XX and MT81XX series ARM SoCs. 497*4882a593Smuzhiyun 498*4882a593Smuzhiyunconfig SPI_MT7621 499*4882a593Smuzhiyun tristate "MediaTek MT7621 SPI Controller" 500*4882a593Smuzhiyun depends on RALINK || COMPILE_TEST 501*4882a593Smuzhiyun help 502*4882a593Smuzhiyun This selects a driver for the MediaTek MT7621 SPI Controller. 503*4882a593Smuzhiyun 504*4882a593Smuzhiyunconfig SPI_MTK_NOR 505*4882a593Smuzhiyun tristate "MediaTek SPI NOR controller" 506*4882a593Smuzhiyun depends on ARCH_MEDIATEK || COMPILE_TEST 507*4882a593Smuzhiyun help 508*4882a593Smuzhiyun This enables support for SPI NOR controller found on MediaTek 509*4882a593Smuzhiyun ARM SoCs. This is a controller specifically for SPI NOR flash. 510*4882a593Smuzhiyun It can perform generic SPI transfers up to 6 bytes via generic 511*4882a593Smuzhiyun SPI interface as well as several SPI NOR specific instructions 512*4882a593Smuzhiyun via SPI MEM interface. 513*4882a593Smuzhiyun 514*4882a593Smuzhiyunconfig SPI_NPCM_FIU 515*4882a593Smuzhiyun tristate "Nuvoton NPCM FLASH Interface Unit" 516*4882a593Smuzhiyun depends on ARCH_NPCM || COMPILE_TEST 517*4882a593Smuzhiyun depends on OF && HAS_IOMEM 518*4882a593Smuzhiyun help 519*4882a593Smuzhiyun This enables support for the Flash Interface Unit SPI controller 520*4882a593Smuzhiyun in master mode. 521*4882a593Smuzhiyun This driver does not support generic SPI. The implementation only 522*4882a593Smuzhiyun supports spi-mem interface. 523*4882a593Smuzhiyun 524*4882a593Smuzhiyunconfig SPI_NPCM_PSPI 525*4882a593Smuzhiyun tristate "Nuvoton NPCM PSPI Controller" 526*4882a593Smuzhiyun depends on ARCH_NPCM || COMPILE_TEST 527*4882a593Smuzhiyun help 528*4882a593Smuzhiyun This driver provides support for Nuvoton NPCM BMC 529*4882a593Smuzhiyun Peripheral SPI controller in master mode. 530*4882a593Smuzhiyun 531*4882a593Smuzhiyunconfig SPI_LANTIQ_SSC 532*4882a593Smuzhiyun tristate "Lantiq SSC SPI controller" 533*4882a593Smuzhiyun depends on LANTIQ || X86 || COMPILE_TEST 534*4882a593Smuzhiyun help 535*4882a593Smuzhiyun This driver supports the Lantiq SSC SPI controller in master 536*4882a593Smuzhiyun mode. This controller is found on Intel (former Lantiq) SoCs like 537*4882a593Smuzhiyun the Danube, Falcon, xRX200, xRX300, Lightning Mountain. 538*4882a593Smuzhiyun 539*4882a593Smuzhiyunconfig SPI_OC_TINY 540*4882a593Smuzhiyun tristate "OpenCores tiny SPI" 541*4882a593Smuzhiyun depends on GPIOLIB || COMPILE_TEST 542*4882a593Smuzhiyun select SPI_BITBANG 543*4882a593Smuzhiyun help 544*4882a593Smuzhiyun This is the driver for OpenCores tiny SPI master controller. 545*4882a593Smuzhiyun 546*4882a593Smuzhiyunconfig SPI_OCTEON 547*4882a593Smuzhiyun tristate "Cavium OCTEON SPI controller" 548*4882a593Smuzhiyun depends on CAVIUM_OCTEON_SOC 549*4882a593Smuzhiyun help 550*4882a593Smuzhiyun SPI host driver for the hardware found on some Cavium OCTEON 551*4882a593Smuzhiyun SOCs. 552*4882a593Smuzhiyun 553*4882a593Smuzhiyunconfig SPI_OMAP_UWIRE 554*4882a593Smuzhiyun tristate "OMAP1 MicroWire" 555*4882a593Smuzhiyun depends on ARCH_OMAP1 556*4882a593Smuzhiyun select SPI_BITBANG 557*4882a593Smuzhiyun help 558*4882a593Smuzhiyun This hooks up to the MicroWire controller on OMAP1 chips. 559*4882a593Smuzhiyun 560*4882a593Smuzhiyunconfig SPI_OMAP24XX 561*4882a593Smuzhiyun tristate "McSPI driver for OMAP" 562*4882a593Smuzhiyun depends on ARCH_OMAP2PLUS || ARCH_K3 || COMPILE_TEST 563*4882a593Smuzhiyun select SG_SPLIT 564*4882a593Smuzhiyun help 565*4882a593Smuzhiyun SPI master controller for OMAP24XX and later Multichannel SPI 566*4882a593Smuzhiyun (McSPI) modules. 567*4882a593Smuzhiyun 568*4882a593Smuzhiyunconfig SPI_TI_QSPI 569*4882a593Smuzhiyun tristate "DRA7xxx QSPI controller support" 570*4882a593Smuzhiyun depends on ARCH_OMAP2PLUS || COMPILE_TEST 571*4882a593Smuzhiyun help 572*4882a593Smuzhiyun QSPI master controller for DRA7xxx used for flash devices. 573*4882a593Smuzhiyun This device supports single, dual and quad read support, while 574*4882a593Smuzhiyun it only supports single write mode. 575*4882a593Smuzhiyun 576*4882a593Smuzhiyunconfig SPI_OMAP_100K 577*4882a593Smuzhiyun tristate "OMAP SPI 100K" 578*4882a593Smuzhiyun depends on ARCH_OMAP850 || ARCH_OMAP730 || COMPILE_TEST 579*4882a593Smuzhiyun help 580*4882a593Smuzhiyun OMAP SPI 100K master controller for omap7xx boards. 581*4882a593Smuzhiyun 582*4882a593Smuzhiyunconfig SPI_ORION 583*4882a593Smuzhiyun tristate "Orion SPI master" 584*4882a593Smuzhiyun depends on PLAT_ORION || ARCH_MVEBU || COMPILE_TEST 585*4882a593Smuzhiyun help 586*4882a593Smuzhiyun This enables using the SPI master controller on the Orion 587*4882a593Smuzhiyun and MVEBU chips. 588*4882a593Smuzhiyun 589*4882a593Smuzhiyunconfig SPI_PIC32 590*4882a593Smuzhiyun tristate "Microchip PIC32 series SPI" 591*4882a593Smuzhiyun depends on MACH_PIC32 || COMPILE_TEST 592*4882a593Smuzhiyun help 593*4882a593Smuzhiyun SPI driver for Microchip PIC32 SPI master controller. 594*4882a593Smuzhiyun 595*4882a593Smuzhiyunconfig SPI_PIC32_SQI 596*4882a593Smuzhiyun tristate "Microchip PIC32 Quad SPI driver" 597*4882a593Smuzhiyun depends on MACH_PIC32 || COMPILE_TEST 598*4882a593Smuzhiyun help 599*4882a593Smuzhiyun SPI driver for PIC32 Quad SPI controller. 600*4882a593Smuzhiyun 601*4882a593Smuzhiyunconfig SPI_PL022 602*4882a593Smuzhiyun tristate "ARM AMBA PL022 SSP controller" 603*4882a593Smuzhiyun depends on ARM_AMBA 604*4882a593Smuzhiyun default y if MACH_U300 605*4882a593Smuzhiyun default y if ARCH_REALVIEW 606*4882a593Smuzhiyun default y if INTEGRATOR_IMPD1 607*4882a593Smuzhiyun default y if ARCH_VERSATILE 608*4882a593Smuzhiyun help 609*4882a593Smuzhiyun This selects the ARM(R) AMBA(R) PrimeCell PL022 SSP 610*4882a593Smuzhiyun controller. If you have an embedded system with an AMBA(R) 611*4882a593Smuzhiyun bus and a PL022 controller, say Y or M here. 612*4882a593Smuzhiyun 613*4882a593Smuzhiyunconfig SPI_PPC4xx 614*4882a593Smuzhiyun tristate "PPC4xx SPI Controller" 615*4882a593Smuzhiyun depends on PPC32 && 4xx 616*4882a593Smuzhiyun select SPI_BITBANG 617*4882a593Smuzhiyun help 618*4882a593Smuzhiyun This selects a driver for the PPC4xx SPI Controller. 619*4882a593Smuzhiyun 620*4882a593Smuzhiyunconfig SPI_PXA2XX 621*4882a593Smuzhiyun tristate "PXA2xx SSP SPI master" 622*4882a593Smuzhiyun depends on ARCH_PXA || ARCH_MMP || PCI || ACPI || COMPILE_TEST 623*4882a593Smuzhiyun select PXA_SSP if ARCH_PXA || ARCH_MMP 624*4882a593Smuzhiyun help 625*4882a593Smuzhiyun This enables using a PXA2xx or Sodaville SSP port as a SPI master 626*4882a593Smuzhiyun controller. The driver can be configured to use any SSP port and 627*4882a593Smuzhiyun additional documentation can be found a Documentation/spi/pxa2xx.rst. 628*4882a593Smuzhiyun 629*4882a593Smuzhiyunconfig SPI_PXA2XX_PCI 630*4882a593Smuzhiyun def_tristate SPI_PXA2XX && PCI && COMMON_CLK 631*4882a593Smuzhiyun 632*4882a593Smuzhiyunconfig SPI_ROCKCHIP 633*4882a593Smuzhiyun tristate "Rockchip SPI controller driver" 634*4882a593Smuzhiyun help 635*4882a593Smuzhiyun This selects a driver for Rockchip SPI controller. 636*4882a593Smuzhiyun 637*4882a593Smuzhiyun If you say yes to this option, support will be included for 638*4882a593Smuzhiyun RK3066, RK3188 and RK3288 families of SPI controller. 639*4882a593Smuzhiyun Rockchip SPI controller support DMA transport and PIO mode. 640*4882a593Smuzhiyun The main usecase of this controller is to use spi flash as boot 641*4882a593Smuzhiyun device. 642*4882a593Smuzhiyun 643*4882a593Smuzhiyunconfig SPI_ROCKCHIP_MISCDEV 644*4882a593Smuzhiyun bool "Rockchip SPI controller misc devices" 645*4882a593Smuzhiyun depends on SPI_ROCKCHIP 646*4882a593Smuzhiyun help 647*4882a593Smuzhiyun This selects a misc driver for Rockchip SPI controller. 648*4882a593Smuzhiyun 649*4882a593Smuzhiyun If you say yes to this option, It will register rkspi-devN misc device 650*4882a593Smuzhiyun for each spi controller and support to get the controller register 651*4882a593Smuzhiyun resource by calling mmap. 652*4882a593Smuzhiyun 653*4882a593Smuzhiyunconfig SPI_ROCKCHIP_SFC 654*4882a593Smuzhiyun tristate "Rockchip Serial Flash Controller (SFC)" 655*4882a593Smuzhiyun imply ROCKCHIP_MTD_VENDOR_STORAGE 656*4882a593Smuzhiyun depends on ARCH_ROCKCHIP || COMPILE_TEST 657*4882a593Smuzhiyun depends on HAS_IOMEM && HAS_DMA 658*4882a593Smuzhiyun help 659*4882a593Smuzhiyun This enables support for Rockchip serial flash controller. This 660*4882a593Smuzhiyun is a specialized controller used to access SPI flash on some 661*4882a593Smuzhiyun Rockchip SOCs. 662*4882a593Smuzhiyun 663*4882a593Smuzhiyun ROCKCHIP SFC supports DMA and PIO modes. When DMA is not available, 664*4882a593Smuzhiyun the driver automatically falls back to PIO mode. 665*4882a593Smuzhiyun 666*4882a593Smuzhiyunconfig SPI_RB4XX 667*4882a593Smuzhiyun tristate "Mikrotik RB4XX SPI master" 668*4882a593Smuzhiyun depends on SPI_MASTER && ATH79 669*4882a593Smuzhiyun help 670*4882a593Smuzhiyun SPI controller driver for the Mikrotik RB4xx series boards. 671*4882a593Smuzhiyun 672*4882a593Smuzhiyunconfig SPI_RPCIF 673*4882a593Smuzhiyun tristate "Renesas RPC-IF SPI driver" 674*4882a593Smuzhiyun depends on RENESAS_RPCIF 675*4882a593Smuzhiyun help 676*4882a593Smuzhiyun SPI driver for Renesas R-Car Gen3 RPC-IF. 677*4882a593Smuzhiyun 678*4882a593Smuzhiyunconfig SPI_RSPI 679*4882a593Smuzhiyun tristate "Renesas RSPI/QSPI controller" 680*4882a593Smuzhiyun depends on SUPERH || ARCH_RENESAS || COMPILE_TEST 681*4882a593Smuzhiyun help 682*4882a593Smuzhiyun SPI driver for Renesas RSPI and QSPI blocks. 683*4882a593Smuzhiyun 684*4882a593Smuzhiyunconfig SPI_QCOM_QSPI 685*4882a593Smuzhiyun tristate "QTI QSPI controller" 686*4882a593Smuzhiyun depends on ARCH_QCOM 687*4882a593Smuzhiyun help 688*4882a593Smuzhiyun QSPI(Quad SPI) driver for Qualcomm QSPI controller. 689*4882a593Smuzhiyun 690*4882a593Smuzhiyunconfig SPI_QUP 691*4882a593Smuzhiyun tristate "Qualcomm SPI controller with QUP interface" 692*4882a593Smuzhiyun depends on ARCH_QCOM || COMPILE_TEST 693*4882a593Smuzhiyun help 694*4882a593Smuzhiyun Qualcomm Universal Peripheral (QUP) core is an AHB slave that 695*4882a593Smuzhiyun provides a common data path (an output FIFO and an input FIFO) 696*4882a593Smuzhiyun for serial peripheral interface (SPI) mini-core. SPI in master 697*4882a593Smuzhiyun mode supports up to 50MHz, up to four chip selects, programmable 698*4882a593Smuzhiyun data path from 4 bits to 32 bits and numerous protocol variants. 699*4882a593Smuzhiyun 700*4882a593Smuzhiyun This driver can also be built as a module. If so, the module 701*4882a593Smuzhiyun will be called spi_qup. 702*4882a593Smuzhiyun 703*4882a593Smuzhiyunconfig SPI_QCOM_GENI 704*4882a593Smuzhiyun tristate "Qualcomm GENI based SPI controller" 705*4882a593Smuzhiyun depends on QCOM_GENI_SE 706*4882a593Smuzhiyun help 707*4882a593Smuzhiyun This driver supports GENI serial engine based SPI controller in 708*4882a593Smuzhiyun master mode on the Qualcomm Technologies Inc.'s SoCs. If you say 709*4882a593Smuzhiyun yes to this option, support will be included for the built-in SPI 710*4882a593Smuzhiyun interface on the Qualcomm Technologies Inc.'s SoCs. 711*4882a593Smuzhiyun 712*4882a593Smuzhiyun This driver can also be built as a module. If so, the module 713*4882a593Smuzhiyun will be called spi-geni-qcom. 714*4882a593Smuzhiyun 715*4882a593Smuzhiyunconfig SPI_S3C24XX 716*4882a593Smuzhiyun tristate "Samsung S3C24XX series SPI" 717*4882a593Smuzhiyun depends on ARCH_S3C24XX 718*4882a593Smuzhiyun select SPI_BITBANG 719*4882a593Smuzhiyun help 720*4882a593Smuzhiyun SPI driver for Samsung S3C24XX series ARM SoCs 721*4882a593Smuzhiyun 722*4882a593Smuzhiyunconfig SPI_S3C24XX_FIQ 723*4882a593Smuzhiyun bool "S3C24XX driver with FIQ pseudo-DMA" 724*4882a593Smuzhiyun depends on SPI_S3C24XX 725*4882a593Smuzhiyun select FIQ 726*4882a593Smuzhiyun help 727*4882a593Smuzhiyun Enable FIQ support for the S3C24XX SPI driver to provide pseudo 728*4882a593Smuzhiyun DMA by using the fast-interrupt request framework, This allows 729*4882a593Smuzhiyun the driver to get DMA-like performance when there are either 730*4882a593Smuzhiyun no free DMA channels, or when doing transfers that required both 731*4882a593Smuzhiyun TX and RX data paths. 732*4882a593Smuzhiyun 733*4882a593Smuzhiyunconfig SPI_S3C64XX 734*4882a593Smuzhiyun tristate "Samsung S3C64XX series type SPI" 735*4882a593Smuzhiyun depends on (PLAT_SAMSUNG || ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST) 736*4882a593Smuzhiyun help 737*4882a593Smuzhiyun SPI driver for Samsung S3C64XX and newer SoCs. 738*4882a593Smuzhiyun 739*4882a593Smuzhiyunconfig SPI_SC18IS602 740*4882a593Smuzhiyun tristate "NXP SC18IS602/602B/603 I2C to SPI bridge" 741*4882a593Smuzhiyun depends on I2C 742*4882a593Smuzhiyun help 743*4882a593Smuzhiyun SPI driver for NXP SC18IS602/602B/603 I2C to SPI bridge. 744*4882a593Smuzhiyun 745*4882a593Smuzhiyunconfig SPI_SH_MSIOF 746*4882a593Smuzhiyun tristate "SuperH MSIOF SPI controller" 747*4882a593Smuzhiyun depends on HAVE_CLK 748*4882a593Smuzhiyun depends on ARCH_SHMOBILE || ARCH_RENESAS || COMPILE_TEST 749*4882a593Smuzhiyun help 750*4882a593Smuzhiyun SPI driver for SuperH and SH Mobile MSIOF blocks. 751*4882a593Smuzhiyun 752*4882a593Smuzhiyunconfig SPI_SH 753*4882a593Smuzhiyun tristate "SuperH SPI controller" 754*4882a593Smuzhiyun depends on SUPERH || COMPILE_TEST 755*4882a593Smuzhiyun help 756*4882a593Smuzhiyun SPI driver for SuperH SPI blocks. 757*4882a593Smuzhiyun 758*4882a593Smuzhiyunconfig SPI_SH_SCI 759*4882a593Smuzhiyun tristate "SuperH SCI SPI controller" 760*4882a593Smuzhiyun depends on SUPERH 761*4882a593Smuzhiyun select SPI_BITBANG 762*4882a593Smuzhiyun help 763*4882a593Smuzhiyun SPI driver for SuperH SCI blocks. 764*4882a593Smuzhiyun 765*4882a593Smuzhiyunconfig SPI_SH_HSPI 766*4882a593Smuzhiyun tristate "SuperH HSPI controller" 767*4882a593Smuzhiyun depends on ARCH_RENESAS || COMPILE_TEST 768*4882a593Smuzhiyun help 769*4882a593Smuzhiyun SPI driver for SuperH HSPI blocks. 770*4882a593Smuzhiyun 771*4882a593Smuzhiyunconfig SPI_SIFIVE 772*4882a593Smuzhiyun tristate "SiFive SPI controller" 773*4882a593Smuzhiyun depends on HAS_IOMEM 774*4882a593Smuzhiyun help 775*4882a593Smuzhiyun This exposes the SPI controller IP from SiFive. 776*4882a593Smuzhiyun 777*4882a593Smuzhiyunconfig SPI_SIRF 778*4882a593Smuzhiyun tristate "CSR SiRFprimaII SPI controller" 779*4882a593Smuzhiyun depends on SIRF_DMA 780*4882a593Smuzhiyun select SPI_BITBANG 781*4882a593Smuzhiyun help 782*4882a593Smuzhiyun SPI driver for CSR SiRFprimaII SoCs 783*4882a593Smuzhiyun 784*4882a593Smuzhiyunconfig SPI_SLAVE_MT27XX 785*4882a593Smuzhiyun tristate "MediaTek SPI slave device" 786*4882a593Smuzhiyun depends on ARCH_MEDIATEK || COMPILE_TEST 787*4882a593Smuzhiyun depends on SPI_SLAVE 788*4882a593Smuzhiyun help 789*4882a593Smuzhiyun This selects the MediaTek(R) SPI slave device driver. 790*4882a593Smuzhiyun If you want to use MediaTek(R) SPI slave interface, 791*4882a593Smuzhiyun say Y or M here.If you are not sure, say N. 792*4882a593Smuzhiyun SPI slave drivers for Mediatek MT27XX series ARM SoCs. 793*4882a593Smuzhiyun 794*4882a593Smuzhiyunconfig SPI_SPRD 795*4882a593Smuzhiyun tristate "Spreadtrum SPI controller" 796*4882a593Smuzhiyun depends on ARCH_SPRD || COMPILE_TEST 797*4882a593Smuzhiyun help 798*4882a593Smuzhiyun SPI driver for Spreadtrum SoCs. 799*4882a593Smuzhiyun 800*4882a593Smuzhiyunconfig SPI_SPRD_ADI 801*4882a593Smuzhiyun tristate "Spreadtrum ADI controller" 802*4882a593Smuzhiyun depends on ARCH_SPRD || COMPILE_TEST 803*4882a593Smuzhiyun depends on HWSPINLOCK || (COMPILE_TEST && !HWSPINLOCK) 804*4882a593Smuzhiyun help 805*4882a593Smuzhiyun ADI driver based on SPI for Spreadtrum SoCs. 806*4882a593Smuzhiyun 807*4882a593Smuzhiyunconfig SPI_STM32 808*4882a593Smuzhiyun tristate "STMicroelectronics STM32 SPI controller" 809*4882a593Smuzhiyun depends on ARCH_STM32 || COMPILE_TEST 810*4882a593Smuzhiyun help 811*4882a593Smuzhiyun SPI driver for STMicroelectronics STM32 SoCs. 812*4882a593Smuzhiyun 813*4882a593Smuzhiyun STM32 SPI controller supports DMA and PIO modes. When DMA 814*4882a593Smuzhiyun is not available, the driver automatically falls back to 815*4882a593Smuzhiyun PIO mode. 816*4882a593Smuzhiyun 817*4882a593Smuzhiyunconfig SPI_STM32_QSPI 818*4882a593Smuzhiyun tristate "STMicroelectronics STM32 QUAD SPI controller" 819*4882a593Smuzhiyun depends on ARCH_STM32 || COMPILE_TEST 820*4882a593Smuzhiyun depends on OF 821*4882a593Smuzhiyun help 822*4882a593Smuzhiyun This enables support for the Quad SPI controller in master mode. 823*4882a593Smuzhiyun This driver does not support generic SPI. The implementation only 824*4882a593Smuzhiyun supports spi-mem interface. 825*4882a593Smuzhiyun 826*4882a593Smuzhiyunconfig SPI_ST_SSC4 827*4882a593Smuzhiyun tristate "STMicroelectronics SPI SSC-based driver" 828*4882a593Smuzhiyun depends on ARCH_STI || COMPILE_TEST 829*4882a593Smuzhiyun help 830*4882a593Smuzhiyun STMicroelectronics SoCs support for SPI. If you say yes to 831*4882a593Smuzhiyun this option, support will be included for the SSC driven SPI. 832*4882a593Smuzhiyun 833*4882a593Smuzhiyunconfig SPI_SUN4I 834*4882a593Smuzhiyun tristate "Allwinner A10 SoCs SPI controller" 835*4882a593Smuzhiyun depends on ARCH_SUNXI || COMPILE_TEST 836*4882a593Smuzhiyun help 837*4882a593Smuzhiyun SPI driver for Allwinner sun4i, sun5i and sun7i SoCs 838*4882a593Smuzhiyun 839*4882a593Smuzhiyunconfig SPI_SUN6I 840*4882a593Smuzhiyun tristate "Allwinner A31 SPI controller" 841*4882a593Smuzhiyun depends on ARCH_SUNXI || COMPILE_TEST 842*4882a593Smuzhiyun depends on RESET_CONTROLLER 843*4882a593Smuzhiyun help 844*4882a593Smuzhiyun This enables using the SPI controller on the Allwinner A31 SoCs. 845*4882a593Smuzhiyun 846*4882a593Smuzhiyunconfig SPI_SYNQUACER 847*4882a593Smuzhiyun tristate "Socionext's SynQuacer HighSpeed SPI controller" 848*4882a593Smuzhiyun depends on ARCH_SYNQUACER || COMPILE_TEST 849*4882a593Smuzhiyun help 850*4882a593Smuzhiyun SPI driver for Socionext's High speed SPI controller which provides 851*4882a593Smuzhiyun various operating modes for interfacing to serial peripheral devices 852*4882a593Smuzhiyun that use the de-facto standard SPI protocol. 853*4882a593Smuzhiyun 854*4882a593Smuzhiyun It also supports the new dual-bit and quad-bit SPI protocol. 855*4882a593Smuzhiyun 856*4882a593Smuzhiyunconfig SPI_MXIC 857*4882a593Smuzhiyun tristate "Macronix MX25F0A SPI controller" 858*4882a593Smuzhiyun depends on SPI_MASTER 859*4882a593Smuzhiyun help 860*4882a593Smuzhiyun This selects the Macronix MX25F0A SPI controller driver. 861*4882a593Smuzhiyun 862*4882a593Smuzhiyunconfig SPI_MXS 863*4882a593Smuzhiyun tristate "Freescale MXS SPI controller" 864*4882a593Smuzhiyun depends on ARCH_MXS 865*4882a593Smuzhiyun select STMP_DEVICE 866*4882a593Smuzhiyun help 867*4882a593Smuzhiyun SPI driver for Freescale MXS devices. 868*4882a593Smuzhiyun 869*4882a593Smuzhiyunconfig SPI_TEGRA114 870*4882a593Smuzhiyun tristate "NVIDIA Tegra114 SPI Controller" 871*4882a593Smuzhiyun depends on (ARCH_TEGRA && TEGRA20_APB_DMA) || COMPILE_TEST 872*4882a593Smuzhiyun depends on RESET_CONTROLLER 873*4882a593Smuzhiyun help 874*4882a593Smuzhiyun SPI driver for NVIDIA Tegra114 SPI Controller interface. This controller 875*4882a593Smuzhiyun is different than the older SoCs SPI controller and also register interface 876*4882a593Smuzhiyun get changed with this controller. 877*4882a593Smuzhiyun 878*4882a593Smuzhiyunconfig SPI_TEGRA20_SFLASH 879*4882a593Smuzhiyun tristate "Nvidia Tegra20 Serial flash Controller" 880*4882a593Smuzhiyun depends on ARCH_TEGRA || COMPILE_TEST 881*4882a593Smuzhiyun depends on RESET_CONTROLLER 882*4882a593Smuzhiyun help 883*4882a593Smuzhiyun SPI driver for Nvidia Tegra20 Serial flash Controller interface. 884*4882a593Smuzhiyun The main usecase of this controller is to use spi flash as boot 885*4882a593Smuzhiyun device. 886*4882a593Smuzhiyun 887*4882a593Smuzhiyunconfig SPI_TEGRA20_SLINK 888*4882a593Smuzhiyun tristate "Nvidia Tegra20/Tegra30 SLINK Controller" 889*4882a593Smuzhiyun depends on (ARCH_TEGRA && TEGRA20_APB_DMA) || COMPILE_TEST 890*4882a593Smuzhiyun depends on RESET_CONTROLLER 891*4882a593Smuzhiyun help 892*4882a593Smuzhiyun SPI driver for Nvidia Tegra20/Tegra30 SLINK Controller interface. 893*4882a593Smuzhiyun 894*4882a593Smuzhiyunconfig SPI_THUNDERX 895*4882a593Smuzhiyun tristate "Cavium ThunderX SPI controller" 896*4882a593Smuzhiyun depends on PCI && 64BIT && (ARM64 || COMPILE_TEST) 897*4882a593Smuzhiyun help 898*4882a593Smuzhiyun SPI host driver for the hardware found on Cavium ThunderX 899*4882a593Smuzhiyun SOCs. 900*4882a593Smuzhiyun 901*4882a593Smuzhiyunconfig SPI_TOPCLIFF_PCH 902*4882a593Smuzhiyun tristate "Intel EG20T PCH/LAPIS Semicon IOH(ML7213/ML7223/ML7831) SPI" 903*4882a593Smuzhiyun depends on PCI && (X86_32 || MIPS || COMPILE_TEST) 904*4882a593Smuzhiyun help 905*4882a593Smuzhiyun SPI driver for the Topcliff PCH (Platform Controller Hub) SPI bus 906*4882a593Smuzhiyun used in some x86 embedded processors. 907*4882a593Smuzhiyun 908*4882a593Smuzhiyun This driver also supports the ML7213/ML7223/ML7831, a companion chip 909*4882a593Smuzhiyun for the Atom E6xx series and compatible with the Intel EG20T PCH. 910*4882a593Smuzhiyun 911*4882a593Smuzhiyunconfig SPI_TXX9 912*4882a593Smuzhiyun tristate "Toshiba TXx9 SPI controller" 913*4882a593Smuzhiyun depends on GPIOLIB && (CPU_TX49XX || COMPILE_TEST) 914*4882a593Smuzhiyun help 915*4882a593Smuzhiyun SPI driver for Toshiba TXx9 MIPS SoCs 916*4882a593Smuzhiyun 917*4882a593Smuzhiyunconfig SPI_UNIPHIER 918*4882a593Smuzhiyun tristate "Socionext UniPhier SPI Controller" 919*4882a593Smuzhiyun depends on (ARCH_UNIPHIER || COMPILE_TEST) && OF 920*4882a593Smuzhiyun depends on HAS_IOMEM 921*4882a593Smuzhiyun help 922*4882a593Smuzhiyun This enables a driver for the Socionext UniPhier SoC SCSSI SPI controller. 923*4882a593Smuzhiyun 924*4882a593Smuzhiyun UniPhier SoCs have SCSSI and MCSSI SPI controllers. 925*4882a593Smuzhiyun Every UniPhier SoC has SCSSI which supports single channel. 926*4882a593Smuzhiyun Older UniPhier Pro4/Pro5 also has MCSSI which support multiple channels. 927*4882a593Smuzhiyun This driver supports SCSSI only. 928*4882a593Smuzhiyun 929*4882a593Smuzhiyun If your SoC supports SCSSI, say Y here. 930*4882a593Smuzhiyun 931*4882a593Smuzhiyunconfig SPI_XCOMM 932*4882a593Smuzhiyun tristate "Analog Devices AD-FMCOMMS1-EBZ SPI-I2C-bridge driver" 933*4882a593Smuzhiyun depends on I2C 934*4882a593Smuzhiyun help 935*4882a593Smuzhiyun Support for the SPI-I2C bridge found on the Analog Devices 936*4882a593Smuzhiyun AD-FMCOMMS1-EBZ board. 937*4882a593Smuzhiyun 938*4882a593Smuzhiyunconfig SPI_XILINX 939*4882a593Smuzhiyun tristate "Xilinx SPI controller common module" 940*4882a593Smuzhiyun depends on HAS_IOMEM 941*4882a593Smuzhiyun select SPI_BITBANG 942*4882a593Smuzhiyun help 943*4882a593Smuzhiyun This exposes the SPI controller IP from the Xilinx EDK. 944*4882a593Smuzhiyun 945*4882a593Smuzhiyun See the "OPB Serial Peripheral Interface (SPI) (v1.00e)" 946*4882a593Smuzhiyun Product Specification document (DS464) for hardware details. 947*4882a593Smuzhiyun 948*4882a593Smuzhiyun Or for the DS570, see "XPS Serial Peripheral Interface (SPI) (v2.00b)" 949*4882a593Smuzhiyun 950*4882a593Smuzhiyunconfig SPI_XLP 951*4882a593Smuzhiyun tristate "Netlogic XLP SPI controller driver" 952*4882a593Smuzhiyun depends on CPU_XLP || ARCH_THUNDER2 || COMPILE_TEST 953*4882a593Smuzhiyun help 954*4882a593Smuzhiyun Enable support for the SPI controller on the Netlogic XLP SoCs. 955*4882a593Smuzhiyun Currently supported XLP variants are XLP8XX, XLP3XX, XLP2XX, XLP9XX 956*4882a593Smuzhiyun and XLP5XX. 957*4882a593Smuzhiyun 958*4882a593Smuzhiyun If you have a Netlogic XLP platform say Y here. 959*4882a593Smuzhiyun If unsure, say N. 960*4882a593Smuzhiyun 961*4882a593Smuzhiyunconfig SPI_XTENSA_XTFPGA 962*4882a593Smuzhiyun tristate "Xtensa SPI controller for xtfpga" 963*4882a593Smuzhiyun depends on (XTENSA && XTENSA_PLATFORM_XTFPGA) || COMPILE_TEST 964*4882a593Smuzhiyun select SPI_BITBANG 965*4882a593Smuzhiyun help 966*4882a593Smuzhiyun SPI driver for xtfpga SPI master controller. 967*4882a593Smuzhiyun 968*4882a593Smuzhiyun This simple SPI master controller is built into xtfpga bitstreams 969*4882a593Smuzhiyun and is used to control daughterboard audio codec. It always transfers 970*4882a593Smuzhiyun 16 bit words in SPI mode 0, automatically asserting CS on transfer 971*4882a593Smuzhiyun start and deasserting on end. 972*4882a593Smuzhiyun 973*4882a593Smuzhiyunconfig SPI_ZYNQ_QSPI 974*4882a593Smuzhiyun tristate "Xilinx Zynq QSPI controller" 975*4882a593Smuzhiyun depends on ARCH_ZYNQ || COMPILE_TEST 976*4882a593Smuzhiyun help 977*4882a593Smuzhiyun This enables support for the Zynq Quad SPI controller 978*4882a593Smuzhiyun in master mode. 979*4882a593Smuzhiyun This controller only supports SPI memory interface. 980*4882a593Smuzhiyun 981*4882a593Smuzhiyunconfig SPI_ZYNQMP_GQSPI 982*4882a593Smuzhiyun tristate "Xilinx ZynqMP GQSPI controller" 983*4882a593Smuzhiyun depends on (SPI_MASTER && HAS_DMA) || COMPILE_TEST 984*4882a593Smuzhiyun help 985*4882a593Smuzhiyun Enables Xilinx GQSPI controller driver for Zynq UltraScale+ MPSoC. 986*4882a593Smuzhiyun 987*4882a593Smuzhiyunconfig SPI_AMD 988*4882a593Smuzhiyun tristate "AMD SPI controller" 989*4882a593Smuzhiyun depends on SPI_MASTER || COMPILE_TEST 990*4882a593Smuzhiyun help 991*4882a593Smuzhiyun Enables SPI controller driver for AMD SoC. 992*4882a593Smuzhiyun 993*4882a593Smuzhiyun# 994*4882a593Smuzhiyun# Add new SPI master controllers in alphabetical order above this line 995*4882a593Smuzhiyun# 996*4882a593Smuzhiyun 997*4882a593Smuzhiyuncomment "SPI Multiplexer support" 998*4882a593Smuzhiyun 999*4882a593Smuzhiyunconfig SPI_MUX 1000*4882a593Smuzhiyun tristate "SPI multiplexer support" 1001*4882a593Smuzhiyun select MULTIPLEXER 1002*4882a593Smuzhiyun help 1003*4882a593Smuzhiyun This adds support for SPI multiplexers. Each SPI mux will be 1004*4882a593Smuzhiyun accessible as a SPI controller, the devices behind the mux will appear 1005*4882a593Smuzhiyun to be chip selects on this controller. It is still necessary to 1006*4882a593Smuzhiyun select one or more specific mux-controller drivers. 1007*4882a593Smuzhiyun 1008*4882a593Smuzhiyun# 1009*4882a593Smuzhiyun# There are lots of SPI device types, with sensors and memory 1010*4882a593Smuzhiyun# being probably the most widely used ones. 1011*4882a593Smuzhiyun# 1012*4882a593Smuzhiyuncomment "SPI Protocol Masters" 1013*4882a593Smuzhiyun 1014*4882a593Smuzhiyunconfig SPI_SPIDEV 1015*4882a593Smuzhiyun tristate "User mode SPI device driver support" 1016*4882a593Smuzhiyun help 1017*4882a593Smuzhiyun This supports user mode SPI protocol drivers. 1018*4882a593Smuzhiyun 1019*4882a593Smuzhiyun Note that this application programming interface is EXPERIMENTAL 1020*4882a593Smuzhiyun and hence SUBJECT TO CHANGE WITHOUT NOTICE while it stabilizes. 1021*4882a593Smuzhiyun 1022*4882a593Smuzhiyunconfig SPI_LOOPBACK_TEST 1023*4882a593Smuzhiyun tristate "spi loopback test framework support" 1024*4882a593Smuzhiyun depends on m 1025*4882a593Smuzhiyun help 1026*4882a593Smuzhiyun This enables the SPI loopback testing framework driver 1027*4882a593Smuzhiyun 1028*4882a593Smuzhiyun primarily used for development of spi_master drivers 1029*4882a593Smuzhiyun and to detect regressions 1030*4882a593Smuzhiyun 1031*4882a593Smuzhiyunconfig SPI_TLE62X0 1032*4882a593Smuzhiyun tristate "Infineon TLE62X0 (for power switching)" 1033*4882a593Smuzhiyun depends on SYSFS 1034*4882a593Smuzhiyun help 1035*4882a593Smuzhiyun SPI driver for Infineon TLE62X0 series line driver chips, 1036*4882a593Smuzhiyun such as the TLE6220, TLE6230 and TLE6240. This provides a 1037*4882a593Smuzhiyun sysfs interface, with each line presented as a kind of GPIO 1038*4882a593Smuzhiyun exposing both switch control and diagnostic feedback. 1039*4882a593Smuzhiyun 1040*4882a593Smuzhiyun# 1041*4882a593Smuzhiyun# Add new SPI protocol masters in alphabetical order above this line 1042*4882a593Smuzhiyun# 1043*4882a593Smuzhiyun 1044*4882a593Smuzhiyunendif # SPI_MASTER 1045*4882a593Smuzhiyun 1046*4882a593Smuzhiyun# 1047*4882a593Smuzhiyun# SLAVE side ... listening to other SPI masters 1048*4882a593Smuzhiyun# 1049*4882a593Smuzhiyun 1050*4882a593Smuzhiyunconfig SPI_SLAVE 1051*4882a593Smuzhiyun bool "SPI slave protocol handlers" 1052*4882a593Smuzhiyun help 1053*4882a593Smuzhiyun If your system has a slave-capable SPI controller, you can enable 1054*4882a593Smuzhiyun slave protocol handlers. 1055*4882a593Smuzhiyun 1056*4882a593Smuzhiyunif SPI_SLAVE 1057*4882a593Smuzhiyun 1058*4882a593Smuzhiyunconfig SPI_SLAVE_TIME 1059*4882a593Smuzhiyun tristate "SPI slave handler reporting boot up time" 1060*4882a593Smuzhiyun help 1061*4882a593Smuzhiyun SPI slave handler responding with the time of reception of the last 1062*4882a593Smuzhiyun SPI message. 1063*4882a593Smuzhiyun 1064*4882a593Smuzhiyunconfig SPI_SLAVE_SYSTEM_CONTROL 1065*4882a593Smuzhiyun tristate "SPI slave handler controlling system state" 1066*4882a593Smuzhiyun help 1067*4882a593Smuzhiyun SPI slave handler to allow remote control of system reboot, power 1068*4882a593Smuzhiyun off, halt, and suspend. 1069*4882a593Smuzhiyun 1070*4882a593Smuzhiyunconfig SPI_SLAVE_ROCKCHIP_OBJ 1071*4882a593Smuzhiyun tristate "Rockchip SPI slave inter transmission protocol demo" 1072*4882a593Smuzhiyun help 1073*4882a593Smuzhiyun SPI slave with a rockchip protocol specification for SPI slave 1074*4882a593Smuzhiyun transmission, work with the corresponding master driver spidev_rkmst. 1075*4882a593Smuzhiyun 1076*4882a593Smuzhiyunendif # SPI_SLAVE 1077*4882a593Smuzhiyun 1078*4882a593Smuzhiyunconfig SPI_DYNAMIC 1079*4882a593Smuzhiyun def_bool ACPI || OF_DYNAMIC || SPI_SLAVE 1080*4882a593Smuzhiyun 1081*4882a593Smuzhiyunendif # SPI 1082