xref: /linux/drivers/spi/Kconfig (revision 0262163136de813894cb172aa8ccf762b92e5fd7)
1# SPDX-License-Identifier: GPL-2.0-only
2#
3# SPI driver configuration
4#
5menuconfig SPI
6	bool "SPI support"
7	depends on HAS_IOMEM
8	help
9	  The "Serial Peripheral Interface" is a low level synchronous
10	  protocol.  Chips that support SPI can have data transfer rates
11	  up to several tens of Mbit/sec.  Chips are addressed with a
12	  controller and a chipselect.  Most SPI slaves don't support
13	  dynamic device discovery; some are even write-only or read-only.
14
15	  SPI is widely used by microcontrollers to talk with sensors,
16	  eeprom and flash memory, codecs and various other controller
17	  chips, analog to digital (and d-to-a) converters, and more.
18	  MMC and SD cards can be accessed using SPI protocol; and for
19	  DataFlash cards used in MMC sockets, SPI must always be used.
20
21	  SPI is one of a family of similar protocols using a four wire
22	  interface (select, clock, data in, data out) including Microwire
23	  (half duplex), SSP, SSI, and PSP.  This driver framework should
24	  work with most such devices and controllers.
25
26if SPI
27
28config SPI_DEBUG
29	bool "Debug support for SPI drivers"
30	depends on DEBUG_KERNEL
31	help
32	  Say "yes" to enable debug messaging (like dev_dbg and pr_debug),
33	  sysfs, and debugfs support in SPI controller and protocol drivers.
34
35#
36# MASTER side ... talking to discrete SPI slave chips including microcontrollers
37#
38
39config SPI_MASTER
40#	bool "SPI Master Support"
41	bool
42	default SPI
43	help
44	  If your system has an master-capable SPI controller (which
45	  provides the clock and chipselect), you can enable that
46	  controller and the protocol drivers for the SPI slave chips
47	  that are connected.
48
49if SPI_MASTER
50
51config SPI_MEM
52	bool "SPI memory extension"
53	help
54	  Enable this option if you want to enable the SPI memory extension.
55	  This extension is meant to simplify interaction with SPI memories
56	  by providing a high-level interface to send memory-like commands.
57
58config SPI_OFFLOAD
59	bool
60
61comment "SPI Master Controller Drivers"
62
63config SPI_AIROHA_SNFI
64	tristate "Airoha SPI NAND Flash Interface"
65	depends on ARCH_AIROHA || COMPILE_TEST
66	depends on SPI_MASTER
67	select REGMAP_MMIO
68	help
69	  This enables support for SPI-NAND mode on the Airoha NAND
70	  Flash Interface found on Airoha ARM SoCs. This controller
71	  is implemented as a SPI-MEM controller.
72
73config SPI_ALTERA
74	tristate "Altera SPI Controller platform driver"
75	select SPI_ALTERA_CORE
76	select REGMAP_MMIO
77	help
78	  This is the driver for the Altera SPI Controller.
79
80config SPI_ALTERA_CORE
81	tristate "Altera SPI Controller core code" if COMPILE_TEST
82	select REGMAP
83	help
84	  "The core code for the Altera SPI Controller"
85
86config SPI_ALTERA_DFL
87	tristate "DFL bus driver for Altera SPI Controller"
88	depends on FPGA_DFL
89	select SPI_ALTERA_CORE
90	help
91	  This is a Device Feature List (DFL) bus driver for the
92	  Altera SPI master controller.  The SPI master is connected
93	  to a SPI slave to Avalon bridge in a Intel MAX BMC.
94
95config SPI_AMLOGIC_SPIFC_A1
96	tristate "Amlogic A1 SPIFC controller"
97	depends on ARCH_MESON || COMPILE_TEST
98	help
99	  This enables master mode support for the SPIFC (SPI flash
100	  controller) available in Amlogic A1 (A113L SoC).
101
102config SPI_AMLOGIC_SPISG
103	tristate "Amlogic SPISG controller"
104	depends on COMMON_CLK
105	depends on ARCH_MESON || COMPILE_TEST
106	help
107	  This enables master mode support for the SPISG (SPI scatter-gather
108	  communication controller), which is available on platforms such as
109	  Amlogic A4 SoCs.
110
111config SPI_APPLE
112	tristate "Apple SoC SPI Controller platform driver"
113	depends on ARCH_APPLE || COMPILE_TEST
114	help
115	  This enables support for the SPI controller present on
116	  many Apple SoCs, including the t8103 (M1), t8112 (M2)
117	  and t600x (M1 Pro/Max/Ultra). Multiple SPI controller
118	  instances are present on the SoC and each connects usually
119	  to a single device like spi-nor (nvram), input device controller
120	  or fingerprint sensor.
121
122config SPI_AR934X
123	tristate "Qualcomm Atheros AR934X/QCA95XX SPI controller driver"
124	depends on ATH79 || COMPILE_TEST
125	help
126	  This enables support for the SPI controller present on the
127	  Qualcomm Atheros AR934X/QCA95XX SoCs.
128
129config SPI_ATH79
130	tristate "Atheros AR71XX/AR724X/AR913X SPI controller driver"
131	depends on ATH79 || COMPILE_TEST
132	select SPI_BITBANG
133	help
134	  This enables support for the SPI controller present on the
135	  Atheros AR71XX/AR724X/AR913X SoCs.
136
137config SPI_ARMADA_3700
138	tristate "Marvell Armada 3700 SPI Controller"
139	depends on (ARCH_MVEBU && OF) || COMPILE_TEST
140	help
141	  This enables support for the SPI controller present on the
142	  Marvell Armada 3700 SoCs.
143
144config SPI_ASPEED_SMC
145	tristate "Aspeed flash controllers in SPI mode"
146	depends on ARCH_ASPEED || COMPILE_TEST
147	depends on OF
148	help
149	  This enables support for the Firmware Memory controller (FMC)
150	  in the Aspeed AST2600, AST2500 and AST2400 SoCs when attached
151	  to SPI NOR chips, and support for the SPI flash memory
152	  controller (SPI) for the host firmware. The implementation
153	  only supports SPI NOR.
154
155config SPI_ATMEL
156	tristate "Atmel SPI Controller"
157	depends on ARCH_AT91 || COMPILE_TEST
158	depends on OF
159	help
160	  This selects a driver for the Atmel SPI Controller, present on
161	  many AT91 ARM chips.
162
163config SPI_AT91_USART
164	tristate "Atmel USART Controller SPI driver"
165	depends on (ARCH_AT91 || COMPILE_TEST)
166	depends on MFD_AT91_USART
167	help
168	  This selects a driver for the AT91 USART Controller as SPI Master,
169	  present on AT91 and SAMA5 SoC series.
170
171config SPI_ATMEL_QUADSPI
172	tristate "Atmel Quad SPI Controller"
173	depends on ARCH_AT91 || COMPILE_TEST
174	depends on OF && HAS_IOMEM
175	help
176	  This enables support for the Quad SPI controller in master mode.
177	  This driver does not support generic SPI. The implementation only
178	  supports spi-mem interface.
179
180config SPI_AU1550
181	tristate "Au1550/Au1200/Au1300 SPI Controller"
182	depends on MIPS_ALCHEMY
183	select SPI_BITBANG
184	help
185	  If you say yes to this option, support will be included for the
186	  PSC SPI controller found on Au1550, Au1200 and Au1300 series.
187
188config SPI_AXI_SPI_ENGINE
189	tristate "Analog Devices AXI SPI Engine controller"
190	depends on HAS_IOMEM
191	select SPI_OFFLOAD
192	help
193	  This enables support for the Analog Devices AXI SPI Engine SPI controller.
194	  It is part of the SPI Engine framework that is used in some Analog Devices
195	  reference designs for FPGAs.
196
197config SPI_BCM2835
198	tristate "BCM2835 SPI controller"
199	depends on GPIOLIB
200	depends on ARCH_BCM2835 || ARCH_BRCMSTB || COMPILE_TEST
201	help
202	  This selects a driver for the Broadcom BCM2835 SPI master.
203
204	  The BCM2835 contains two types of SPI master controller; the
205	  "universal SPI master", and the regular SPI controller. This driver
206	  is for the regular SPI controller. Slave mode operation is not also
207	  not supported.
208
209config SPI_BCM2835AUX
210	tristate "BCM2835 SPI auxiliary controller"
211	depends on ((ARCH_BCM2835 || ARCH_BRCMSTB) && GPIOLIB) || COMPILE_TEST
212	help
213	  This selects a driver for the Broadcom BCM2835 SPI aux master.
214
215	  The BCM2835 contains two types of SPI master controller; the
216	  "universal SPI master", and the regular SPI controller.
217	  This driver is for the universal/auxiliary SPI controller.
218
219config SPI_BCM63XX
220	tristate "Broadcom BCM63xx SPI controller"
221	depends on BCM63XX || BMIPS_GENERIC || COMPILE_TEST
222	help
223	  Enable support for the SPI controller on the Broadcom BCM63xx SoCs.
224
225config SPI_BCM63XX_HSSPI
226	tristate "Broadcom BCM63XX HS SPI controller driver"
227	depends on BCM63XX || BMIPS_GENERIC || ARCH_BCMBCA || COMPILE_TEST
228	help
229	  This enables support for the High Speed SPI controller present on
230	  newer Broadcom BCM63XX SoCs.
231
232config SPI_BCM_QSPI
233	tristate "Broadcom BSPI and MSPI controller support"
234	depends on ARCH_BRCMSTB || ARCH_BCM || ARCH_BCM_IPROC || \
235			BMIPS_GENERIC || COMPILE_TEST
236	default ARCH_BCM_IPROC
237	help
238	  Enables support for the Broadcom SPI flash and MSPI controller.
239	  Select this option for any one of BRCMSTB, iProc NSP and NS2 SoCs
240	  based platforms. This driver works for both SPI master for SPI NOR
241	  flash device as well as MSPI device.
242
243config SPI_BCMBCA_HSSPI
244	tristate "Broadcom BCMBCA HS SPI controller driver"
245	depends on ARCH_BCMBCA || COMPILE_TEST
246	help
247	  This enables support for the High Speed SPI controller present on
248	  newer Broadcom BCMBCA SoCs. These SoCs include an updated SPI controller
249	  that adds the capability to allow the driver to control chip select
250	  explicitly.
251
252config SPI_BITBANG
253	tristate "Utilities for Bitbanging SPI host controllers"
254	help
255	  With a few GPIO pins, your system can bitbang the SPI protocol.
256	  Select this to get SPI support through I/O pins (GPIO, parallel
257	  port, etc).  Or, some systems' SPI host controller drivers use
258	  this code to manage the per-word or per-transfer accesses to the
259	  hardware shift registers.
260
261	  This is library code, and is automatically selected by drivers that
262	  need it.  You only need to select this explicitly to support driver
263	  modules that aren't part of this kernel tree.
264
265config SPI_BUTTERFLY
266	tristate "Parallel port adapter for AVR Butterfly (DEVELOPMENT)"
267	depends on PARPORT
268	select SPI_BITBANG
269	help
270	  This uses a custom parallel port cable to connect to an AVR
271	  Butterfly <http://www.atmel.com/products/avr/butterfly>, an
272	  inexpensive battery powered microcontroller evaluation board.
273	  This same cable can be used to flash new firmware.
274
275config SPI_CADENCE
276	tristate "Cadence SPI controller"
277	help
278	  This selects the Cadence SPI controller master driver
279	  used by Xilinx Zynq and ZynqMP.
280
281config SPI_CADENCE_QUADSPI
282	tristate "Cadence Quad SPI controller"
283	depends on OF && (ARM || ARM64 || X86 || RISCV || MIPS || COMPILE_TEST)
284	help
285	  Enable support for the Cadence Quad SPI Flash controller.
286
287	  Cadence QSPI is a specialized controller for connecting an SPI
288	  Flash over 1/2/4-bit wide bus. Enable this option if you have a
289	  device with a Cadence QSPI controller and want to access the
290	  Flash as an MTD device.
291
292config SPI_CADENCE_XSPI
293	tristate "Cadence XSPI controller"
294	depends on OF && HAS_IOMEM && 64BIT
295	depends on SPI_MEM
296	help
297	  Enable support for the Cadence XSPI Flash controller.
298
299	  Cadence XSPI is a specialized controller for connecting an SPI
300	  Flash over up to 8-bit wide bus. Enable this option if you have a
301	  device with a Cadence XSPI controller and want to access the
302	  Flash as an MTD device.
303
304config SPI_CH341
305	tristate "CH341 USB2SPI adapter"
306	depends on SPI_MASTER && USB
307	help
308	  Enables the SPI controller on the CH341a USB to serial chip
309
310config SPI_CLPS711X
311	tristate "CLPS711X host SPI controller"
312	depends on ARCH_CLPS711X || COMPILE_TEST
313	help
314	  This enables dedicated general purpose SPI/Microwire1-compatible
315	  master mode interface (SSI1) for CLPS711X-based CPUs.
316
317config SPI_COLDFIRE_QSPI
318	tristate "Freescale Coldfire QSPI controller"
319	depends on (M520x || M523x || M5249 || M525x || M527x || M528x || M532x)
320	help
321	  This enables support for the Coldfire QSPI controller in master
322	  mode.
323
324config SPI_CS42L43
325	tristate "Cirrus Logic CS42L43 SPI controller"
326	depends on MFD_CS42L43 && PINCTRL_CS42L43
327	select GPIO_SWNODE_UNDEFINED
328	help
329	  This enables support for the SPI controller inside the Cirrus Logic
330	  CS42L43 audio codec.
331
332config SPI_DAVINCI
333	tristate "Texas Instruments DaVinci/DA8x/OMAP-L/AM1x SoC SPI controller"
334	depends on ARCH_DAVINCI || ARCH_KEYSTONE || COMPILE_TEST
335	select SPI_BITBANG
336	help
337	  SPI master controller for DaVinci/DA8x/OMAP-L/AM1x SPI modules.
338
339config SPI_DESIGNWARE
340	tristate "DesignWare SPI controller core support"
341	imply SPI_MEM
342	help
343	  general driver for SPI controller core from DesignWare
344
345if SPI_DESIGNWARE
346
347config SPI_DW_DMA
348	bool "DMA support for DW SPI controller"
349
350config SPI_DW_PCI
351	tristate "PCI interface driver for DW SPI core"
352	depends on PCI
353
354config SPI_DW_MMIO
355	tristate "Memory-mapped io interface driver for DW SPI core"
356	depends on HAS_IOMEM
357
358config SPI_DW_BT1
359	tristate "Baikal-T1 SPI driver for DW SPI core"
360	depends on MIPS_BAIKAL_T1 || COMPILE_TEST
361	select MULTIPLEXER
362	help
363	  Baikal-T1 SoC is equipped with three DW APB SSI-based MMIO SPI
364	  controllers. Two of them are pretty much normal: with IRQ, DMA,
365	  FIFOs of 64 words depth, 4x CSs, but the third one as being a
366	  part of the Baikal-T1 System Boot Controller has got a very
367	  limited resources: no IRQ, no DMA, only a single native
368	  chip-select and Tx/Rx FIFO with just 8 words depth available.
369	  The later one is normally connected to an external SPI-nor flash
370	  of 128Mb (in general can be of bigger size).
371
372config SPI_DW_BT1_DIRMAP
373	bool "Directly mapped Baikal-T1 Boot SPI flash support"
374	depends on SPI_DW_BT1
375	help
376	  Directly mapped SPI flash memory is an interface specific to the
377	  Baikal-T1 System Boot Controller. It is a 16MB MMIO region, which
378	  can be used to access a peripheral memory device just by
379	  reading/writing data from/to it. Note that the system APB bus
380	  will stall during each IO from/to the dirmap region until the
381	  operation is finished. So try not to use it concurrently with
382	  time-critical tasks (like the SPI memory operations implemented
383	  in this driver).
384
385endif
386
387config SPI_DLN2
388       tristate "Diolan DLN-2 USB SPI adapter"
389       depends on MFD_DLN2
390       help
391	 If you say yes to this option, support will be included for Diolan
392	 DLN2, a USB to SPI interface.
393
394	 This driver can also be built as a module.  If so, the module
395	 will be called spi-dln2.
396
397config SPI_EP93XX
398	tristate "Cirrus Logic EP93xx SPI controller"
399	depends on ARCH_EP93XX || COMPILE_TEST
400	help
401	  This enables using the Cirrus EP93xx SPI controller in master
402	  mode.
403
404config SPI_FALCON
405	bool "Falcon SPI controller support"
406	depends on SOC_FALCON
407	help
408	  The external bus unit (EBU) found on the FALC-ON SoC has SPI
409	  emulation that is designed for serial flash access. This driver
410	  has only been tested with m25p80 type chips. The hardware has no
411	  support for other types of SPI peripherals.
412
413config SPI_FSI
414	tristate "FSI SPI driver"
415	depends on FSI
416	help
417	  This enables support for the driver for FSI bus attached SPI
418	  controllers.
419
420config SPI_FSL_LPSPI
421	tristate "Freescale i.MX LPSPI controller"
422	depends on ARCH_MXC || COMPILE_TEST
423	help
424	  This enables Freescale i.MX LPSPI controllers in master mode.
425
426config SPI_FSL_QUADSPI
427	tristate "Freescale QSPI controller"
428	depends on ARCH_MXC || SOC_LS1021A || ARCH_LAYERSCAPE || COMPILE_TEST
429	depends on HAS_IOMEM
430	help
431	  This enables support for the Quad SPI controller in master mode.
432	  Up to four flash chips can be connected on two buses with two
433	  chipselects each.
434	  This controller does not support generic SPI messages. It only
435	  supports the high-level SPI memory interface.
436
437config SPI_GXP
438	tristate "GXP SPI driver"
439	depends on ARCH_HPE || COMPILE_TEST
440	help
441	  This enables support for the driver for GXP bus attached SPI
442	  controllers.
443
444config SPI_HISI_KUNPENG
445	tristate "HiSilicon SPI Controller for Kunpeng SoCs"
446	depends on (ARM64 && ACPI) || COMPILE_TEST
447	help
448	  This enables support for HiSilicon SPI controller found on
449	  Kunpeng SoCs.
450
451	  This driver can also be built as a module. If so, the module
452	  will be called hisi-kunpeng-spi.
453
454config SPI_HISI_SFC_V3XX
455	tristate "HiSilicon SPI NOR Flash Controller for Hi16XX chipsets"
456	depends on (ARM64 && ACPI) || COMPILE_TEST
457	depends on HAS_IOMEM
458	help
459	  This enables support for HiSilicon v3xx SPI NOR flash controller
460	  found in hi16xx chipsets.
461
462config SPI_NXP_FLEXSPI
463	tristate "NXP Flex SPI controller"
464	depends on ARCH_LAYERSCAPE || ARCH_MXC || COMPILE_TEST
465	depends on HAS_IOMEM
466	help
467	  This enables support for the Flex SPI controller in master mode.
468	  Up to four slave devices can be connected on two buses with two
469	  chipselects each.
470	  This controller does not support generic SPI messages and only
471	  supports the high-level SPI memory interface.
472
473config SPI_GPIO
474	tristate "GPIO-based bitbanging SPI Master"
475	depends on GPIOLIB || COMPILE_TEST
476	select SPI_BITBANG
477	help
478	  This simple GPIO bitbanging SPI master uses the arch-neutral GPIO
479	  interface to manage MOSI, MISO, SCK, and chipselect signals.  SPI
480	  slaves connected to a bus using this driver are configured as usual,
481	  except that the spi_board_info.controller_data holds the GPIO number
482	  for the chipselect used by this controller driver.
483
484	  Note that this driver often won't achieve even 1 Mbit/sec speeds,
485	  making it unusually slow for SPI.  If your platform can inline
486	  GPIO operations, you should be able to leverage that for better
487	  speed with a custom version of this driver; see the source code.
488
489config SPI_IMG_SPFI
490	tristate "IMG SPFI controller"
491	depends on MIPS || COMPILE_TEST
492	help
493	  This enables support for the SPFI master controller found on
494	  IMG SoCs.
495
496config SPI_IMX
497	tristate "Freescale i.MX SPI controllers"
498	depends on ARCH_MXC || COMPILE_TEST
499	help
500	  This enables support for the Freescale i.MX SPI controllers.
501
502config SPI_INGENIC
503	tristate "Ingenic SoCs SPI controller"
504	depends on MACH_INGENIC || COMPILE_TEST
505	help
506	  This enables support for the Ingenic SoCs SPI controller.
507
508	  To compile this driver as a module, choose M here: the module
509	  will be called spi-ingenic.
510
511config SPI_INTEL
512	tristate
513
514config SPI_INTEL_PCI
515	tristate "Intel PCH/PCU SPI flash PCI driver"
516	depends on PCI
517	depends on X86 || COMPILE_TEST
518	depends on SPI_MEM
519	select SPI_INTEL
520	help
521	  This enables PCI support for the Intel PCH/PCU SPI controller in
522	  master mode. This controller is used to hold BIOS and other
523	  persistent settings. Controllers present in modern Intel hardware
524	  only work in hardware sequencing mode, this means that the
525	  controller exposes a subset of operations that makes it safer to
526	  use. Using this driver it is possible to upgrade BIOS directly
527	  from Linux.
528
529	  To compile this driver as a module, choose M here: the module
530	  will be called spi-intel-pci.
531
532config SPI_INTEL_PLATFORM
533	tristate "Intel PCH/PCU SPI flash platform driver (DANGEROUS)"
534	depends on X86 || COMPILE_TEST
535	depends on SPI_MEM
536	select SPI_INTEL
537	help
538	  This enables platform support for the Intel PCH/PCU SPI
539	  controller in master mode that is used to hold BIOS and other
540	  persistent settings. Most of these controllers work in
541	  software sequencing mode, which means that the controller
542	  exposes the low level SPI-NOR opcodes to the software. Using
543	  this driver it is possible to upgrade BIOS directly from Linux.
544
545	  Say N here unless you know what you are doing. Overwriting the
546	  SPI flash may render the system unbootable.
547
548	  To compile this driver as a module, choose M here: the module
549	  will be called spi-intel-platform.
550
551config SPI_JCORE
552	tristate "J-Core SPI Master"
553	depends on OF && (SUPERH || COMPILE_TEST)
554	help
555	  This enables support for the SPI master controller in the J-Core
556	  synthesizable, open source SoC.
557
558config SPI_KSPI2
559	tristate "Support for KEBA SPI master type 2 hardware"
560	depends on HAS_IOMEM
561	depends on KEBA_CP500 || COMPILE_TEST
562	select AUXILIARY_BUS
563	help
564	  This driver supports KEBA SPI master type 2 FPGA implementation,
565	  as found on CP500 devices for example.
566
567	  This driver can also be built as a module. If so, the module
568	  will be called spi-kspi2.
569
570config SPI_LM70_LLP
571	tristate "Parallel port adapter for LM70 eval board (DEVELOPMENT)"
572	depends on PARPORT
573	select SPI_BITBANG
574	help
575	  This driver supports the NS LM70 LLP Evaluation Board,
576	  which interfaces to an LM70 temperature sensor using
577	  a parallel port.
578
579config SPI_LOONGSON_CORE
580	tristate
581	depends on LOONGARCH || COMPILE_TEST
582
583config SPI_LOONGSON_PCI
584	tristate "Loongson SPI Controller PCI Driver Support"
585	select SPI_LOONGSON_CORE
586	depends on PCI && (LOONGARCH || COMPILE_TEST)
587	help
588	  This bus driver supports the Loongson SPI hardware controller in
589	  the Loongson platforms and supports to use PCI framework to
590	  register SPI device resources.
591	  Say Y or M here if you want to use the SPI controller on
592	  Loongson platform.
593
594config SPI_LOONGSON_PLATFORM
595	tristate "Loongson SPI Controller Platform Driver Support"
596	select SPI_LOONGSON_CORE
597	depends on OF && (LOONGARCH || COMPILE_TEST)
598	help
599	  This bus driver supports the Loongson SPI hardware controller in
600	  the Loongson platforms and supports to use DTS framework to
601	  register SPI device resources.
602	  Say Y or M here if you want to use the SPI controller on
603	  Loongson platform.
604
605config SPI_LP8841_RTC
606	tristate "ICP DAS LP-8841 SPI Controller for RTC"
607	depends on MACH_PXA27X_DT || COMPILE_TEST
608	help
609	  This driver provides an SPI master device to drive Maxim
610	  DS-1302 real time clock.
611
612	  Say N here unless you plan to run the kernel on an ICP DAS
613	  LP-8x4x industrial computer.
614
615config SPI_MPC52xx
616	tristate "Freescale MPC52xx SPI (non-PSC) controller support"
617	depends on PPC_MPC52xx
618	help
619	  This drivers supports the MPC52xx SPI controller in master SPI
620	  mode.
621
622config SPI_MPC52xx_PSC
623	tristate "Freescale MPC52xx PSC SPI controller"
624	depends on PPC_MPC52xx
625	help
626	  This enables using the Freescale MPC52xx Programmable Serial
627	  Controller in master SPI mode.
628
629config SPI_MPC512x_PSC
630	tristate "Freescale MPC512x PSC SPI controller"
631	depends on PPC_MPC512x
632	help
633	  This enables using the Freescale MPC5121 Programmable Serial
634	  Controller in SPI master mode.
635
636config SPI_FSL_LIB
637	tristate
638	depends on OF
639
640config SPI_FSL_CPM
641	tristate
642	depends on FSL_SOC
643
644config SPI_FSL_SPI
645	tristate "Freescale SPI controller and Aeroflex Gaisler GRLIB SPI controller"
646	depends on OF
647	select SPI_FSL_LIB
648	select SPI_FSL_CPM if FSL_SOC
649	help
650	  This enables using the Freescale SPI controllers in master mode.
651	  MPC83xx platform uses the controller in cpu mode or CPM/QE mode.
652	  MPC8569 uses the controller in QE mode, MPC8610 in cpu mode.
653	  This also enables using the Aeroflex Gaisler GRLIB SPI controller in
654	  master mode.
655
656config SPI_FSL_DSPI
657	tristate "Freescale DSPI controller"
658	select REGMAP_MMIO
659	depends on ARCH_MXC || ARCH_NXP || M5441x || COMPILE_TEST
660	help
661	  This enables support for the Freescale DSPI controller in master
662	  mode. S32, VF610, LS1021A and ColdFire platforms uses the controller.
663
664config SPI_FSL_ESPI
665	tristate "Freescale eSPI controller"
666	depends on FSL_SOC
667	help
668	  This enables using the Freescale eSPI controllers in master mode.
669	  From MPC8536, 85xx platform uses the controller, and all P10xx,
670	  P20xx, P30xx,P40xx, P50xx uses this controller.
671
672config SPI_LJCA
673	tristate "Intel La Jolla Cove Adapter SPI support"
674	depends on USB_LJCA
675	default USB_LJCA
676	help
677	  Select this option to enable SPI driver for the Intel
678	  La Jolla Cove Adapter (LJCA) board.
679
680	  This driver can also be built as a module. If so, the module
681	  will be called spi-ljca.
682
683config SPI_MESON_SPICC
684	tristate "Amlogic Meson SPICC controller"
685	depends on COMMON_CLK
686	depends on ARCH_MESON || COMPILE_TEST
687	help
688	  This enables master mode support for the SPICC (SPI communication
689	  controller) available in Amlogic Meson SoCs.
690
691config SPI_MESON_SPIFC
692	tristate "Amlogic Meson SPIFC controller"
693	depends on ARCH_MESON || COMPILE_TEST
694	select REGMAP_MMIO
695	help
696	  This enables master mode support for the SPIFC (SPI flash
697	  controller) available in Amlogic Meson SoCs.
698
699config SPI_MICROCHIP_CORE
700	tristate "Microchip FPGA SPI controllers"
701	depends on SPI_MASTER
702	help
703	  This enables the SPI driver for Microchip FPGA SPI controllers.
704	  Say Y or M here if you want to use the "hard" controllers on
705	  PolarFire SoC.
706	  If built as a module, it will be called spi-microchip-core.
707
708config SPI_MICROCHIP_CORE_QSPI
709	tristate "Microchip FPGA QSPI controllers"
710	depends on SPI_MASTER
711	help
712	  This enables the QSPI driver for Microchip FPGA QSPI controllers.
713	  Say Y or M here if you want to use the QSPI controllers on
714	  PolarFire SoC.
715	  If built as a module, it will be called spi-microchip-core-qspi.
716
717config SPI_MT65XX
718	tristate "MediaTek SPI controller"
719	depends on ARCH_MEDIATEK || COMPILE_TEST
720	help
721	  This selects the MediaTek(R) SPI bus driver.
722	  If you want to use MediaTek(R) SPI interface,
723	  say Y or M here.If you are not sure, say N.
724	  SPI drivers for Mediatek MT65XX and MT81XX series ARM SoCs.
725
726config SPI_MT7621
727	tristate "MediaTek MT7621 SPI Controller"
728	depends on RALINK || COMPILE_TEST
729	help
730	  This selects a driver for the MediaTek MT7621 SPI Controller.
731
732config SPI_MTK_NOR
733	tristate "MediaTek SPI NOR controller"
734	depends on ARCH_MEDIATEK || COMPILE_TEST
735	help
736	  This enables support for SPI NOR controller found on MediaTek
737	  ARM SoCs. This is a controller specifically for SPI NOR flash.
738	  It can perform generic SPI transfers up to 6 bytes via generic
739	  SPI interface as well as several SPI NOR specific instructions
740	  via SPI MEM interface.
741
742config SPI_MTK_SNFI
743	tristate "MediaTek SPI NAND Flash Interface"
744	depends on ARCH_MEDIATEK || COMPILE_TEST
745	depends on MTD_NAND_ECC_MEDIATEK
746	help
747	  This enables support for SPI-NAND mode on the MediaTek NAND
748	  Flash Interface found on MediaTek ARM SoCs. This controller
749	  is implemented as a SPI-MEM controller with pipelined ECC
750	  capability.
751
752config SPI_WPCM_FIU
753	tristate "Nuvoton WPCM450 Flash Interface Unit"
754	depends on ARCH_NPCM || COMPILE_TEST
755	select REGMAP
756	help
757	  This enables support got the Flash Interface Unit SPI controller
758	  present in the Nuvoton WPCM450 SoC.
759
760	  This driver does not support generic SPI. The implementation only
761	  supports the spi-mem interface.
762
763config SPI_NPCM_FIU
764	tristate "Nuvoton NPCM FLASH Interface Unit"
765	depends on ARCH_NPCM || COMPILE_TEST
766	depends on OF && HAS_IOMEM
767	help
768	  This enables support for the Flash Interface Unit SPI controller
769	  in master mode.
770	  This driver does not support generic SPI. The implementation only
771	  supports spi-mem interface.
772
773config SPI_NPCM_PSPI
774	tristate "Nuvoton NPCM PSPI Controller"
775	depends on ARCH_NPCM || COMPILE_TEST
776	help
777	  This driver provides support for Nuvoton NPCM BMC
778	  Peripheral SPI controller in master mode.
779
780config SPI_LANTIQ_SSC
781	tristate "Lantiq SSC SPI controller"
782	depends on LANTIQ || X86 || COMPILE_TEST
783	help
784	  This driver supports the Lantiq SSC SPI controller in master
785	  mode. This controller is found on Intel (former Lantiq) SoCs like
786	  the Danube, Falcon, xRX200, xRX300, Lightning Mountain.
787
788config SPI_OC_TINY
789	tristate "OpenCores tiny SPI"
790	depends on GPIOLIB || COMPILE_TEST
791	select SPI_BITBANG
792	help
793	  This is the driver for OpenCores tiny SPI master controller.
794
795config SPI_OCTEON
796	tristate "Cavium OCTEON SPI controller"
797	depends on CAVIUM_OCTEON_SOC
798	help
799	  SPI host driver for the hardware found on some Cavium OCTEON
800	  SOCs.
801
802config SPI_OMAP_UWIRE
803	tristate "OMAP1 MicroWire"
804	depends on ARCH_OMAP1 || (ARM && COMPILE_TEST)
805	select SPI_BITBANG
806	help
807	  This hooks up to the MicroWire controller on OMAP1 chips.
808
809config SPI_OMAP24XX
810	tristate "McSPI driver for OMAP"
811	depends on ARCH_OMAP2PLUS || ARCH_K3 || COMPILE_TEST
812	select SG_SPLIT
813	help
814	  SPI master controller for OMAP24XX and later Multichannel SPI
815	  (McSPI) modules.
816
817config SPI_TI_QSPI
818	tristate "DRA7xxx QSPI controller support"
819	depends on ARCH_OMAP2PLUS || COMPILE_TEST
820	help
821	  QSPI master controller for DRA7xxx used for flash devices.
822	  This device supports single, dual and quad read support, while
823	  it only supports single write mode.
824
825config SPI_ORION
826	tristate "Orion SPI master"
827	depends on PLAT_ORION || ARCH_MVEBU || COMPILE_TEST
828	help
829	  This enables using the SPI master controller on the Orion
830	  and MVEBU chips.
831
832config SPI_PCI1XXXX
833	tristate "PCI1XXXX SPI Bus support"
834	depends on PCI
835	help
836	  Say "yes" to Enable the SPI Bus support for the PCI1xxxx card
837	  This is a PCI to SPI Bus driver
838	  This driver can be built as module. If so, the module will be
839	  called as spi-pci1xxxx.
840
841config SPI_PIC32
842	tristate "Microchip PIC32 series SPI"
843	depends on MACH_PIC32 || COMPILE_TEST
844	help
845	  SPI driver for Microchip PIC32 SPI master controller.
846
847config SPI_PIC32_SQI
848	tristate "Microchip PIC32 Quad SPI driver"
849	depends on MACH_PIC32 || COMPILE_TEST
850	help
851	  SPI driver for PIC32 Quad SPI controller.
852
853config SPI_PL022
854	tristate "ARM AMBA PL022 SSP controller"
855	depends on ARM_AMBA
856	default y if ARCH_REALVIEW
857	default y if INTEGRATOR_IMPD1
858	default y if ARCH_VERSATILE
859	help
860	  This selects the ARM(R) AMBA(R) PrimeCell PL022 SSP
861	  controller. If you have an embedded system with an AMBA(R)
862	  bus and a PL022 controller, say Y or M here.
863
864config SPI_PPC4xx
865	tristate "PPC4xx SPI Controller"
866	depends on PPC32 && 4xx
867	select SPI_BITBANG
868	help
869	  This selects a driver for the PPC4xx SPI Controller.
870
871config SPI_PXA2XX
872	tristate "PXA2xx SSP SPI master"
873	depends on ARCH_PXA || ARCH_MMP || (X86 && (PCI || ACPI)) || COMPILE_TEST
874	select PXA_SSP if ARCH_PXA || ARCH_MMP
875	help
876	  This enables using a PXA2xx or Sodaville SSP port as a SPI master
877	  controller. The driver can be configured to use any SSP port.
878
879config SPI_PXA2XX_PCI
880	def_tristate SPI_PXA2XX && PCI && COMMON_CLK
881
882config SPI_REALTEK_SNAND
883	tristate "Realtek SPI-NAND Flash Controller"
884	depends on MACH_REALTEK_RTL || COMPILE_TEST
885	select REGMAP
886	help
887	  This enables support for the SPI-NAND Flash controller on
888	  Realtek SoCs.
889
890	  This driver does not support generic SPI. The implementation
891	  only supports the spi-mem interface.
892
893config SPI_ROCKCHIP
894	tristate "Rockchip SPI controller driver"
895	depends on ARCH_ROCKCHIP || COMPILE_TEST
896	help
897	  This selects a driver for Rockchip SPI controller.
898
899	  If you say yes to this option, support will be included for
900	  RK3066, RK3188 and RK3288 families of SPI controller.
901	  Rockchip SPI controller support DMA transport and PIO mode.
902	  The main usecase of this controller is to use spi flash as boot
903	  device.
904
905config SPI_ROCKCHIP_SFC
906	tristate "Rockchip Serial Flash Controller (SFC)"
907	depends on ARCH_ROCKCHIP || COMPILE_TEST
908	depends on HAS_IOMEM && HAS_DMA
909	help
910	  This enables support for Rockchip serial flash controller. This
911	  is a specialized controller used to access SPI flash on some
912	  Rockchip SOCs.
913
914	  ROCKCHIP SFC supports DMA and PIO modes. When DMA is not available,
915	  the driver automatically falls back to PIO mode.
916
917config SPI_RB4XX
918	tristate "Mikrotik RB4XX SPI master"
919	depends on SPI_MASTER && ATH79
920	help
921	  SPI controller driver for the Mikrotik RB4xx series boards.
922
923config SPI_RPCIF
924	tristate "Renesas RPC-IF SPI driver"
925	depends on RENESAS_RPCIF
926	help
927	  SPI driver for Renesas R-Car Gen3 or RZ/G2 RPC-IF.
928
929config SPI_RSPI
930	tristate "Renesas RSPI/QSPI controller"
931	depends on SUPERH || ARCH_RENESAS || COMPILE_TEST
932	help
933	  SPI driver for Renesas RSPI and QSPI blocks.
934
935config SPI_RZV2H_RSPI
936	tristate "Renesas RZ/V2H RSPI controller"
937	depends on ARCH_RENESAS || COMPILE_TEST
938	help
939	  RSPI driver for the Renesas RZ/V2H Serial Peripheral Interface (RSPI).
940	  RSPI supports both SPI host and SPI target roles. This option only
941	  enables the SPI host role.
942
943config SPI_RZV2M_CSI
944	tristate "Renesas RZ/V2M CSI controller"
945	depends on ARCH_RENESAS || COMPILE_TEST
946	help
947	  SPI driver for Renesas RZ/V2M Clocked Serial Interface (CSI).
948	  CSI supports both SPI host and SPI target roles.
949
950config SPI_QCOM_QSPI
951	tristate "QTI QSPI controller"
952	depends on ARCH_QCOM || COMPILE_TEST
953	help
954	  QSPI(Quad SPI) driver for Qualcomm QSPI controller.
955
956config SPI_QPIC_SNAND
957	tristate "QPIC SNAND controller"
958	depends on ARCH_QCOM || COMPILE_TEST
959	depends on MTD
960	help
961	  QPIC_SNAND (QPIC SPI NAND) driver for Qualcomm QPIC controller.
962	  QPIC controller supports both parallel nand and serial nand.
963	  This config will enable serial nand driver for QPIC controller.
964
965config SPI_QUP
966	tristate "Qualcomm SPI controller with QUP interface"
967	depends on ARCH_QCOM || COMPILE_TEST
968	help
969	  Qualcomm Universal Peripheral (QUP) core is an AHB slave that
970	  provides a common data path (an output FIFO and an input FIFO)
971	  for serial peripheral interface (SPI) mini-core. SPI in master
972	  mode supports up to 50MHz, up to four chip selects, programmable
973	  data path from 4 bits to 32 bits and numerous protocol variants.
974
975	  This driver can also be built as a module.  If so, the module
976	  will be called spi_qup.
977
978config SPI_QCOM_GENI
979	tristate "Qualcomm GENI based SPI controller"
980	depends on QCOM_GENI_SE
981	help
982	  This driver supports GENI serial engine based SPI controller in
983	  master mode on the Qualcomm Technologies Inc.'s SoCs. If you say
984	  yes to this option, support will be included for the built-in SPI
985	  interface on the Qualcomm Technologies Inc.'s SoCs.
986
987	  This driver can also be built as a module.  If so, the module
988	  will be called spi-geni-qcom.
989
990config SPI_S3C64XX
991	tristate "Samsung S3C64XX/Exynos SoC series type SPI"
992	depends on (PLAT_SAMSUNG || ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST)
993	help
994	  SPI driver for Samsung S3C64XX, S5Pv210 and Exynos SoCs.
995	  Choose Y/M here only if you build for such Samsung SoC.
996
997config SPI_SC18IS602
998	tristate "NXP SC18IS602/602B/603 I2C to SPI bridge"
999	depends on I2C
1000	help
1001	  SPI driver for NXP SC18IS602/602B/603 I2C to SPI bridge.
1002
1003config SPI_SH_MSIOF
1004	tristate "SuperH MSIOF SPI controller"
1005	depends on HAVE_CLK
1006	depends on ARCH_SHMOBILE || ARCH_RENESAS || COMPILE_TEST
1007	help
1008	  SPI driver for SuperH and SH Mobile MSIOF blocks.
1009
1010config SPI_SH
1011	tristate "SuperH SPI controller"
1012	depends on SUPERH || COMPILE_TEST
1013	help
1014	  SPI driver for SuperH SPI blocks.
1015
1016config SPI_SH_SCI
1017	tristate "SuperH SCI SPI controller"
1018	depends on SUPERH
1019	select SPI_BITBANG
1020	help
1021	  SPI driver for SuperH SCI blocks.
1022
1023config SPI_SH_HSPI
1024	tristate "SuperH HSPI controller"
1025	depends on ARCH_RENESAS || COMPILE_TEST
1026	help
1027	  SPI driver for SuperH HSPI blocks.
1028
1029config SPI_SIFIVE
1030	tristate "SiFive SPI controller"
1031	depends on HAS_IOMEM
1032	help
1033	  This exposes the SPI controller IP from SiFive.
1034
1035config SPI_SLAVE_MT27XX
1036	tristate "MediaTek SPI slave device"
1037	depends on ARCH_MEDIATEK || COMPILE_TEST
1038	depends on SPI_SLAVE
1039	help
1040	  This selects the MediaTek(R) SPI slave device driver.
1041	  If you want to use MediaTek(R) SPI slave interface,
1042	  say Y or M here.If you are not sure, say N.
1043	  SPI slave drivers for Mediatek MT27XX series ARM SoCs.
1044
1045config SPI_SN_F_OSPI
1046	tristate "Socionext F_OSPI SPI flash controller"
1047	depends on OF && HAS_IOMEM
1048	depends on SPI_MEM
1049	help
1050	  This enables support for the Socionext F_OSPI controller
1051	  for connecting an SPI Flash memory over up to 8-bit wide bus.
1052	  It supports indirect access mode only.
1053
1054config SPI_SG2044_NOR
1055	tristate "SG2044 SPI NOR Controller"
1056	depends on ARCH_SOPHGO || COMPILE_TEST
1057	help
1058	  This enables support for the SG2044 SPI NOR controller,
1059	  which supports Dual/Quad read and write operations while
1060	  also supporting 3Byte address devices and 4Byte address
1061	  devices.
1062
1063config SPI_SPRD
1064	tristate "Spreadtrum SPI controller"
1065	depends on ARCH_SPRD || COMPILE_TEST
1066	help
1067	  SPI driver for Spreadtrum SoCs.
1068
1069config SPI_SPRD_ADI
1070	tristate "Spreadtrum ADI controller"
1071	depends on ARCH_SPRD || COMPILE_TEST
1072	depends on HWSPINLOCK || (COMPILE_TEST && !HWSPINLOCK)
1073	help
1074	  ADI driver based on SPI for Spreadtrum SoCs.
1075
1076config SPI_STM32
1077	tristate "STMicroelectronics STM32 SPI controller"
1078	depends on ARCH_STM32 || COMPILE_TEST
1079	select SPI_SLAVE
1080	help
1081	  SPI driver for STMicroelectronics STM32 SoCs.
1082
1083	  STM32 SPI controller supports DMA and PIO modes. When DMA
1084	  is not available, the driver automatically falls back to
1085	  PIO mode.
1086
1087config SPI_STM32_OSPI
1088	tristate "STMicroelectronics STM32 OCTO SPI controller"
1089	depends on ARCH_STM32 || COMPILE_TEST
1090	depends on OF
1091	depends on SPI_MEM
1092	help
1093	  This enables support for the Octo SPI controller in master mode.
1094	  This driver does not support generic SPI. The implementation only
1095	  supports spi-mem interface.
1096
1097config SPI_STM32_QSPI
1098	tristate "STMicroelectronics STM32 QUAD SPI controller"
1099	depends on ARCH_STM32 || COMPILE_TEST
1100	depends on OF
1101	depends on SPI_MEM
1102	help
1103	  This enables support for the Quad SPI controller in master mode.
1104	  This driver does not support generic SPI. The implementation only
1105	  supports spi-mem interface.
1106
1107config SPI_ST_SSC4
1108	tristate "STMicroelectronics SPI SSC-based driver"
1109	depends on ARCH_STI || COMPILE_TEST
1110	help
1111	  STMicroelectronics SoCs support for SPI. If you say yes to
1112	  this option, support will be included for the SSC driven SPI.
1113
1114config SPI_SUN4I
1115	tristate "Allwinner A10 SoCs SPI controller"
1116	depends on ARCH_SUNXI || COMPILE_TEST
1117	help
1118	  SPI driver for Allwinner sun4i, sun5i and sun7i SoCs
1119
1120config SPI_SUN6I
1121	tristate "Allwinner A31 SPI controller"
1122	depends on ARCH_SUNXI || COMPILE_TEST
1123	depends on RESET_CONTROLLER
1124	help
1125	  This enables using the SPI controller on the Allwinner A31 SoCs.
1126
1127config SPI_SUNPLUS_SP7021
1128	tristate "Sunplus SP7021 SPI controller"
1129	depends on SOC_SP7021 || COMPILE_TEST
1130	help
1131	  This enables Sunplus SP7021 SPI controller driver on the SP7021 SoCs.
1132	  This driver can also be built as a module. If so, the module will be
1133	  called as spi-sunplus-sp7021.
1134
1135	  If you have a  Sunplus SP7021 platform say Y here.
1136	  If unsure, say N.
1137
1138config SPI_SYNQUACER
1139	tristate "Socionext's SynQuacer HighSpeed SPI controller"
1140	depends on ARCH_SYNQUACER || COMPILE_TEST
1141	help
1142	  SPI driver for Socionext's High speed SPI controller which provides
1143	  various operating modes for interfacing to serial peripheral devices
1144	  that use the de-facto standard SPI protocol.
1145
1146	  It also supports the new dual-bit and quad-bit SPI protocol.
1147
1148config SPI_MXIC
1149	tristate "Macronix MX25F0A SPI controller"
1150	depends on SPI_MASTER
1151	imply MTD_NAND_ECC_MXIC
1152	help
1153	  This selects the Macronix MX25F0A SPI controller driver.
1154
1155config SPI_MXS
1156	tristate "Freescale MXS SPI controller"
1157	depends on ARCH_MXS
1158	select STMP_DEVICE
1159	help
1160	  SPI driver for Freescale MXS devices.
1161
1162config SPI_TEGRA210_QUAD
1163	tristate "NVIDIA Tegra QSPI Controller"
1164	depends on ARCH_TEGRA || COMPILE_TEST
1165	depends on RESET_CONTROLLER
1166	help
1167	  QSPI driver for NVIDIA Tegra QSPI Controller interface. This
1168	  controller is different from the SPI controller and is available
1169	  on Tegra SoCs starting from Tegra210.
1170
1171config SPI_TEGRA114
1172	tristate "NVIDIA Tegra114 SPI Controller"
1173	depends on (ARCH_TEGRA && TEGRA20_APB_DMA) || COMPILE_TEST
1174	depends on RESET_CONTROLLER
1175	help
1176	  SPI driver for NVIDIA Tegra114 SPI Controller interface. This controller
1177	  is different than the older SoCs SPI controller and also register interface
1178	  get changed with this controller.
1179
1180config SPI_TEGRA20_SFLASH
1181	tristate "Nvidia Tegra20 Serial flash Controller"
1182	depends on ARCH_TEGRA || COMPILE_TEST
1183	depends on RESET_CONTROLLER
1184	help
1185	  SPI driver for Nvidia Tegra20 Serial flash Controller interface.
1186	  The main usecase of this controller is to use spi flash as boot
1187	  device.
1188
1189config SPI_TEGRA20_SLINK
1190	tristate "Nvidia Tegra20/Tegra30 SLINK Controller"
1191	depends on (ARCH_TEGRA && TEGRA20_APB_DMA) || COMPILE_TEST
1192	depends on RESET_CONTROLLER
1193	help
1194	  SPI driver for Nvidia Tegra20/Tegra30 SLINK Controller interface.
1195
1196config SPI_THUNDERX
1197	tristate "Cavium ThunderX SPI controller"
1198	depends on PCI && 64BIT && (ARM64 || COMPILE_TEST)
1199	help
1200	  SPI host driver for the hardware found on Cavium ThunderX
1201	  SOCs.
1202
1203config SPI_TOPCLIFF_PCH
1204	tristate "Intel EG20T PCH/LAPIS Semicon IOH(ML7213/ML7223/ML7831) SPI"
1205	depends on PCI && (X86_32 || MIPS || COMPILE_TEST)
1206	help
1207	  SPI driver for the Topcliff PCH (Platform Controller Hub) SPI bus
1208	  used in some x86 embedded processors.
1209
1210	  This driver also supports the ML7213/ML7223/ML7831, a companion chip
1211	  for the Atom E6xx series and compatible with the Intel EG20T PCH.
1212
1213config SPI_UNIPHIER
1214	tristate "Socionext UniPhier SPI Controller"
1215	depends on (ARCH_UNIPHIER || COMPILE_TEST) && OF
1216	depends on HAS_IOMEM
1217	help
1218	  This enables a driver for the Socionext UniPhier SoC SCSSI SPI controller.
1219
1220	  UniPhier SoCs have SCSSI and MCSSI SPI controllers.
1221	  Every UniPhier SoC has SCSSI which supports single channel.
1222	  Older UniPhier Pro4/Pro5 also has MCSSI which support multiple channels.
1223	  This driver supports SCSSI only.
1224
1225	  If your SoC supports SCSSI, say Y here.
1226
1227config SPI_XCOMM
1228	tristate "Analog Devices AD-FMCOMMS1-EBZ SPI-I2C-bridge driver"
1229	depends on I2C
1230	help
1231	  Support for the SPI-I2C bridge found on the Analog Devices
1232	  AD-FMCOMMS1-EBZ board.
1233
1234config SPI_XILINX
1235	tristate "Xilinx SPI controller common module"
1236	depends on HAS_IOMEM
1237	select SPI_BITBANG
1238	help
1239	  This exposes the SPI controller IP from the Xilinx EDK.
1240
1241	  See the "OPB Serial Peripheral Interface (SPI) (v1.00e)"
1242	  Product Specification document (DS464) for hardware details.
1243
1244	  Or for the DS570, see "XPS Serial Peripheral Interface (SPI) (v2.00b)"
1245
1246config SPI_XLP
1247	tristate "Cavium ThunderX2 SPI controller driver"
1248	depends on ARCH_THUNDER2 || COMPILE_TEST
1249	help
1250	  Enable support for the SPI controller on the Cavium ThunderX2.
1251	  (Originally on Netlogic XLP SoCs.)
1252
1253	  If you have a Cavium ThunderX2 platform say Y here.
1254	  If unsure, say N.
1255
1256config SPI_XTENSA_XTFPGA
1257	tristate "Xtensa SPI controller for xtfpga"
1258	depends on (XTENSA && XTENSA_PLATFORM_XTFPGA) || COMPILE_TEST
1259	select SPI_BITBANG
1260	help
1261	  SPI driver for xtfpga SPI master controller.
1262
1263	  This simple SPI master controller is built into xtfpga bitstreams
1264	  and is used to control daughterboard audio codec. It always transfers
1265	  16 bit words in SPI mode 0, automatically asserting CS on transfer
1266	  start and deasserting on end.
1267
1268config SPI_ZYNQ_QSPI
1269	tristate "Xilinx Zynq QSPI controller"
1270	depends on ARCH_ZYNQ || COMPILE_TEST
1271	depends on SPI_MEM
1272	help
1273	  This enables support for the Zynq Quad SPI controller
1274	  in master mode.
1275	  This controller only supports SPI memory interface.
1276
1277config SPI_ZYNQMP_GQSPI
1278	tristate "Xilinx ZynqMP GQSPI controller"
1279	depends on (SPI_MEM && HAS_DMA) || COMPILE_TEST
1280	help
1281	  Enables Xilinx GQSPI controller driver for Zynq UltraScale+ MPSoC.
1282	  This controller only supports SPI memory interface.
1283
1284config SPI_AMD
1285	tristate "AMD SPI controller"
1286	depends on PCI
1287	depends on SPI_MASTER || X86 || COMPILE_TEST
1288	depends on SPI_MEM
1289	help
1290	  Enables SPI controller driver for AMD SoC.
1291
1292#
1293# Add new SPI master controllers in alphabetical order above this line
1294#
1295
1296comment "SPI Multiplexer support"
1297
1298config SPI_MUX
1299	tristate "SPI multiplexer support"
1300	select MULTIPLEXER
1301	help
1302	  This adds support for SPI multiplexers. Each SPI mux will be
1303	  accessible as a SPI controller, the devices behind the mux will appear
1304	  to be chip selects on this controller. It is still necessary to
1305	  select one or more specific mux-controller drivers.
1306
1307#
1308# There are lots of SPI device types, with sensors and memory
1309# being probably the most widely used ones.
1310#
1311comment "SPI Protocol Masters"
1312
1313config SPI_SPIDEV
1314	tristate "User mode SPI device driver support"
1315	help
1316	  This supports user mode SPI protocol drivers.
1317
1318config SPI_LOOPBACK_TEST
1319	tristate "spi loopback test framework support"
1320	depends on m
1321	help
1322	  This enables the SPI loopback testing framework driver
1323
1324	  primarily used for development of spi_master drivers
1325	  and to detect regressions
1326
1327config SPI_TLE62X0
1328	tristate "Infineon TLE62X0 (for power switching)"
1329	depends on SYSFS
1330	help
1331	  SPI driver for Infineon TLE62X0 series line driver chips,
1332	  such as the TLE6220, TLE6230 and TLE6240.  This provides a
1333	  sysfs interface, with each line presented as a kind of GPIO
1334	  exposing both switch control and diagnostic feedback.
1335
1336#
1337# Add new SPI protocol masters in alphabetical order above this line
1338#
1339
1340endif # SPI_MASTER
1341
1342#
1343# SLAVE side ... listening to other SPI masters
1344#
1345
1346config SPI_SLAVE
1347	bool "SPI slave protocol handlers"
1348	help
1349	  If your system has a slave-capable SPI controller, you can enable
1350	  slave protocol handlers.
1351
1352if SPI_SLAVE
1353
1354config SPI_SLAVE_TIME
1355	tristate "SPI slave handler reporting boot up time"
1356	help
1357	  SPI slave handler responding with the time of reception of the last
1358	  SPI message.
1359
1360config SPI_SLAVE_SYSTEM_CONTROL
1361	tristate "SPI slave handler controlling system state"
1362	help
1363	  SPI slave handler to allow remote control of system reboot, power
1364	  off, halt, and suspend.
1365
1366endif # SPI_SLAVE
1367
1368config SPI_DYNAMIC
1369	def_bool ACPI || OF_DYNAMIC || SPI_SLAVE
1370
1371if SPI_OFFLOAD
1372
1373comment "SPI Offload triggers"
1374
1375config SPI_OFFLOAD_TRIGGER_ADI_UTIL_SD
1376	tristate "SPI offload trigger using ADI sigma-delta utility"
1377	help
1378	  SPI offload trigger from ADI sigma-delta utility FPGA IP block.
1379
1380config SPI_OFFLOAD_TRIGGER_PWM
1381	tristate "SPI offload trigger using PWM"
1382	depends on PWM
1383	help
1384	  Generic SPI offload trigger implemented using PWM output.
1385
1386endif # SPI_OFFLOAD
1387
1388endif # SPI
1389