xref: /OK3568_Linux_fs/kernel/drivers/spi/Kconfig (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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