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