drm/i915/selftests: Mark live_forcewake_ops as unreliable
[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_NPCM_PSPI
430         tristate "Nuvoton NPCM PSPI Controller"
431         depends on ARCH_NPCM || COMPILE_TEST
432         help
433           This driver provides support for Nuvoton NPCM BMC
434           Peripheral SPI controller in master mode.
435
436 config SPI_NUC900
437         tristate "Nuvoton NUC900 series SPI"
438         depends on ARCH_W90X900
439         select SPI_BITBANG
440         help
441           SPI driver for Nuvoton NUC900 series ARM SoCs
442
443 config SPI_LANTIQ_SSC
444         tristate "Lantiq SSC SPI controller"
445         depends on LANTIQ || COMPILE_TEST
446         help
447           This driver supports the Lantiq SSC SPI controller in master
448           mode. This controller is found on Intel (former Lantiq) SoCs like
449           the Danube, Falcon, xRX200, xRX300.
450
451 config SPI_OC_TINY
452         tristate "OpenCores tiny SPI"
453         depends on GPIOLIB || COMPILE_TEST
454         select SPI_BITBANG
455         help
456           This is the driver for OpenCores tiny SPI master controller.
457
458 config SPI_OCTEON
459         tristate "Cavium OCTEON SPI controller"
460         depends on CAVIUM_OCTEON_SOC
461         help
462           SPI host driver for the hardware found on some Cavium OCTEON
463           SOCs.
464
465 config SPI_OMAP_UWIRE
466         tristate "OMAP1 MicroWire"
467         depends on ARCH_OMAP1
468         select SPI_BITBANG
469         help
470           This hooks up to the MicroWire controller on OMAP1 chips.
471
472 config SPI_OMAP24XX
473         tristate "McSPI driver for OMAP"
474         depends on ARCH_OMAP2PLUS || ARCH_K3 || COMPILE_TEST
475         select SG_SPLIT
476         help
477           SPI master controller for OMAP24XX and later Multichannel SPI
478           (McSPI) modules.
479
480 config SPI_TI_QSPI
481         tristate "DRA7xxx QSPI controller support"
482         depends on ARCH_OMAP2PLUS || COMPILE_TEST
483         help
484           QSPI master controller for DRA7xxx used for flash devices.
485           This device supports single, dual and quad read support, while
486           it only supports single write mode.
487
488 config SPI_OMAP_100K
489         tristate "OMAP SPI 100K"
490         depends on ARCH_OMAP850 || ARCH_OMAP730 || COMPILE_TEST
491         help
492           OMAP SPI 100K master controller for omap7xx boards.
493
494 config SPI_ORION
495         tristate "Orion SPI master"
496         depends on PLAT_ORION || ARCH_MVEBU || COMPILE_TEST
497         help
498           This enables using the SPI master controller on the Orion
499           and MVEBU chips.
500
501 config SPI_PIC32
502         tristate "Microchip PIC32 series SPI"
503         depends on MACH_PIC32 || COMPILE_TEST
504         help
505           SPI driver for Microchip PIC32 SPI master controller.
506
507 config SPI_PIC32_SQI
508         tristate "Microchip PIC32 Quad SPI driver"
509         depends on MACH_PIC32 || COMPILE_TEST
510         help
511           SPI driver for PIC32 Quad SPI controller.
512
513 config SPI_PL022
514         tristate "ARM AMBA PL022 SSP controller"
515         depends on ARM_AMBA
516         default y if MACH_U300
517         default y if ARCH_REALVIEW
518         default y if INTEGRATOR_IMPD1
519         default y if ARCH_VERSATILE
520         help
521           This selects the ARM(R) AMBA(R) PrimeCell PL022 SSP
522           controller. If you have an embedded system with an AMBA(R)
523           bus and a PL022 controller, say Y or M here.
524
525 config SPI_PPC4xx
526         tristate "PPC4xx SPI Controller"
527         depends on PPC32 && 4xx
528         select SPI_BITBANG
529         help
530           This selects a driver for the PPC4xx SPI Controller.
531
532 config SPI_PXA2XX
533         tristate "PXA2xx SSP SPI master"
534         depends on (ARCH_PXA || ARCH_MMP || PCI || ACPI)
535         select PXA_SSP if ARCH_PXA || ARCH_MMP
536         help
537           This enables using a PXA2xx or Sodaville SSP port as a SPI master
538           controller. The driver can be configured to use any SSP port and
539           additional documentation can be found a Documentation/spi/pxa2xx.
540
541 config SPI_PXA2XX_PCI
542         def_tristate SPI_PXA2XX && PCI && COMMON_CLK
543
544 config SPI_ROCKCHIP
545         tristate "Rockchip SPI controller driver"
546         help
547           This selects a driver for Rockchip SPI controller.
548
549           If you say yes to this option, support will be included for
550           RK3066, RK3188 and RK3288 families of SPI controller.
551           Rockchip SPI controller support DMA transport and PIO mode.
552           The main usecase of this controller is to use spi flash as boot
553           device.
554
555 config SPI_RB4XX
556         tristate "Mikrotik RB4XX SPI master"
557         depends on SPI_MASTER && ATH79
558         help
559           SPI controller driver for the Mikrotik RB4xx series boards.
560
561 config SPI_RSPI
562         tristate "Renesas RSPI/QSPI controller"
563         depends on SUPERH || ARCH_RENESAS || COMPILE_TEST
564         help
565           SPI driver for Renesas RSPI and QSPI blocks.
566
567 config SPI_QCOM_QSPI
568         tristate "QTI QSPI controller"
569         depends on ARCH_QCOM
570         help
571           QSPI(Quad SPI) driver for Qualcomm QSPI controller.
572
573 config SPI_QUP
574         tristate "Qualcomm SPI controller with QUP interface"
575         depends on ARCH_QCOM || (ARM && COMPILE_TEST)
576         help
577           Qualcomm Universal Peripheral (QUP) core is an AHB slave that
578           provides a common data path (an output FIFO and an input FIFO)
579           for serial peripheral interface (SPI) mini-core. SPI in master
580           mode supports up to 50MHz, up to four chip selects, programmable
581           data path from 4 bits to 32 bits and numerous protocol variants.
582
583           This driver can also be built as a module.  If so, the module
584           will be called spi_qup.
585
586 config SPI_QCOM_GENI
587         tristate "Qualcomm GENI based SPI controller"
588         depends on QCOM_GENI_SE
589         help
590           This driver supports GENI serial engine based SPI controller in
591           master mode on the Qualcomm Technologies Inc.'s SoCs. If you say
592           yes to this option, support will be included for the built-in SPI
593           interface on the Qualcomm Technologies Inc.'s SoCs.
594
595           This driver can also be built as a module.  If so, the module
596           will be called spi-geni-qcom.
597
598 config SPI_S3C24XX
599         tristate "Samsung S3C24XX series SPI"
600         depends on ARCH_S3C24XX
601         select SPI_BITBANG
602         help
603           SPI driver for Samsung S3C24XX series ARM SoCs
604
605 config SPI_S3C24XX_FIQ
606         bool "S3C24XX driver with FIQ pseudo-DMA"
607         depends on SPI_S3C24XX
608         select FIQ
609         help
610           Enable FIQ support for the S3C24XX SPI driver to provide pseudo
611           DMA by using the fast-interrupt request framework, This allows
612           the driver to get DMA-like performance when there are either
613           no free DMA channels, or when doing transfers that required both
614           TX and RX data paths.
615
616 config SPI_S3C64XX
617         tristate "Samsung S3C64XX series type SPI"
618         depends on (PLAT_SAMSUNG || ARCH_EXYNOS || COMPILE_TEST)
619         help
620           SPI driver for Samsung S3C64XX and newer SoCs.
621
622 config SPI_SC18IS602
623         tristate "NXP SC18IS602/602B/603 I2C to SPI bridge"
624         depends on I2C
625         help
626           SPI driver for NXP SC18IS602/602B/603 I2C to SPI bridge.
627
628 config SPI_SH_MSIOF
629         tristate "SuperH MSIOF SPI controller"
630         depends on HAVE_CLK
631         depends on ARCH_SHMOBILE || ARCH_RENESAS || COMPILE_TEST
632         help
633           SPI driver for SuperH and SH Mobile MSIOF blocks.
634
635 config SPI_SH
636         tristate "SuperH SPI controller"
637         depends on SUPERH || COMPILE_TEST
638         help
639           SPI driver for SuperH SPI blocks.
640
641 config SPI_SH_SCI
642         tristate "SuperH SCI SPI controller"
643         depends on SUPERH
644         select SPI_BITBANG
645         help
646           SPI driver for SuperH SCI blocks.
647
648 config SPI_SH_HSPI
649         tristate "SuperH HSPI controller"
650         depends on ARCH_RENESAS || COMPILE_TEST
651         help
652           SPI driver for SuperH HSPI blocks.
653
654 config SPI_SIFIVE
655         tristate "SiFive SPI controller"
656         depends on HAS_IOMEM
657         help
658           This exposes the SPI controller IP from SiFive.
659
660 config SPI_SIRF
661         tristate "CSR SiRFprimaII SPI controller"
662         depends on SIRF_DMA
663         select SPI_BITBANG
664         help
665           SPI driver for CSR SiRFprimaII SoCs
666
667 config SPI_SLAVE_MT27XX
668         tristate "MediaTek SPI slave device"
669         depends on ARCH_MEDIATEK || COMPILE_TEST
670         depends on SPI_SLAVE
671         help
672           This selects the MediaTek(R) SPI slave device driver.
673           If you want to use MediaTek(R) SPI slave interface,
674           say Y or M here.If you are not sure, say N.
675           SPI slave drivers for Mediatek MT27XX series ARM SoCs.
676
677 config SPI_SPRD
678         tristate "Spreadtrum SPI controller"
679         depends on ARCH_SPRD || COMPILE_TEST
680         help
681           SPI driver for Spreadtrum SoCs.
682
683 config SPI_SPRD_ADI
684         tristate "Spreadtrum ADI controller"
685         depends on ARCH_SPRD || COMPILE_TEST
686         depends on HWSPINLOCK || (COMPILE_TEST && !HWSPINLOCK)
687         help
688           ADI driver based on SPI for Spreadtrum SoCs.
689
690 config SPI_STM32
691         tristate "STMicroelectronics STM32 SPI controller"
692         depends on ARCH_STM32 || COMPILE_TEST
693         help
694           SPI driver for STMicroelectronics STM32 SoCs.
695
696           STM32 SPI controller supports DMA and PIO modes. When DMA
697           is not available, the driver automatically falls back to
698           PIO mode.
699
700 config SPI_STM32_QSPI
701         tristate "STMicroelectronics STM32 QUAD SPI controller"
702         depends on ARCH_STM32 || COMPILE_TEST
703         depends on OF
704         help
705           This enables support for the Quad SPI controller in master mode.
706           This driver does not support generic SPI. The implementation only
707           supports spi-mem interface.
708
709 config SPI_ST_SSC4
710         tristate "STMicroelectronics SPI SSC-based driver"
711         depends on ARCH_STI || COMPILE_TEST
712         help
713           STMicroelectronics SoCs support for SPI. If you say yes to
714           this option, support will be included for the SSC driven SPI.
715
716 config SPI_SUN4I
717         tristate "Allwinner A10 SoCs SPI controller"
718         depends on ARCH_SUNXI || COMPILE_TEST
719         help
720           SPI driver for Allwinner sun4i, sun5i and sun7i SoCs
721
722 config SPI_SUN6I
723         tristate "Allwinner A31 SPI controller"
724         depends on ARCH_SUNXI || COMPILE_TEST
725         depends on RESET_CONTROLLER
726         help
727           This enables using the SPI controller on the Allwinner A31 SoCs.
728
729 config SPI_MXIC
730         tristate "Macronix MX25F0A SPI controller"
731         depends on SPI_MASTER
732         help
733           This selects the Macronix MX25F0A SPI controller driver.
734
735 config SPI_MXS
736         tristate "Freescale MXS SPI controller"
737         depends on ARCH_MXS
738         select STMP_DEVICE
739         help
740           SPI driver for Freescale MXS devices.
741
742 config SPI_TEGRA114
743         tristate "NVIDIA Tegra114 SPI Controller"
744         depends on (ARCH_TEGRA && TEGRA20_APB_DMA) || COMPILE_TEST
745         depends on RESET_CONTROLLER
746         help
747           SPI driver for NVIDIA Tegra114 SPI Controller interface. This controller
748           is different than the older SoCs SPI controller and also register interface
749           get changed with this controller.
750
751 config SPI_TEGRA20_SFLASH
752         tristate "Nvidia Tegra20 Serial flash Controller"
753         depends on ARCH_TEGRA || COMPILE_TEST
754         depends on RESET_CONTROLLER
755         help
756           SPI driver for Nvidia Tegra20 Serial flash Controller interface.
757           The main usecase of this controller is to use spi flash as boot
758           device.
759
760 config SPI_TEGRA20_SLINK
761         tristate "Nvidia Tegra20/Tegra30 SLINK Controller"
762         depends on (ARCH_TEGRA && TEGRA20_APB_DMA) || COMPILE_TEST
763         depends on RESET_CONTROLLER
764         help
765           SPI driver for Nvidia Tegra20/Tegra30 SLINK Controller interface.
766
767 config SPI_THUNDERX
768         tristate "Cavium ThunderX SPI controller"
769         depends on PCI && 64BIT && (ARM64 || COMPILE_TEST)
770         help
771           SPI host driver for the hardware found on Cavium ThunderX
772           SOCs.
773
774 config SPI_TOPCLIFF_PCH
775         tristate "Intel EG20T PCH/LAPIS Semicon IOH(ML7213/ML7223/ML7831) SPI"
776         depends on PCI && (X86_32 || MIPS || COMPILE_TEST)
777         help
778           SPI driver for the Topcliff PCH (Platform Controller Hub) SPI bus
779           used in some x86 embedded processors.
780
781           This driver also supports the ML7213/ML7223/ML7831, a companion chip
782           for the Atom E6xx series and compatible with the Intel EG20T PCH.
783
784 config SPI_TXX9
785         tristate "Toshiba TXx9 SPI controller"
786         depends on GPIOLIB && (CPU_TX49XX || COMPILE_TEST)
787         help
788           SPI driver for Toshiba TXx9 MIPS SoCs
789
790 config SPI_UNIPHIER
791         tristate "Socionext UniPhier SPI Controller"
792         depends on (ARCH_UNIPHIER || COMPILE_TEST) && OF
793         help
794           This enables a driver for the Socionext UniPhier SoC SCSSI SPI controller.
795
796           UniPhier SoCs have SCSSI and MCSSI SPI controllers.
797           Every UniPhier SoC has SCSSI which supports single channel.
798           Older UniPhier Pro4/Pro5 also has MCSSI which support multiple channels.
799           This driver supports SCSSI only.
800
801           If your SoC supports SCSSI, say Y here.
802
803 config SPI_XCOMM
804         tristate "Analog Devices AD-FMCOMMS1-EBZ SPI-I2C-bridge driver"
805         depends on I2C
806         help
807           Support for the SPI-I2C bridge found on the Analog Devices
808           AD-FMCOMMS1-EBZ board.
809
810 config SPI_XILINX
811         tristate "Xilinx SPI controller common module"
812         depends on HAS_IOMEM
813         select SPI_BITBANG
814         help
815           This exposes the SPI controller IP from the Xilinx EDK.
816
817           See the "OPB Serial Peripheral Interface (SPI) (v1.00e)"
818           Product Specification document (DS464) for hardware details.
819
820           Or for the DS570, see "XPS Serial Peripheral Interface (SPI) (v2.00b)"
821
822 config SPI_XLP
823         tristate "Netlogic XLP SPI controller driver"
824         depends on CPU_XLP || ARCH_THUNDER2 || COMPILE_TEST
825         help
826           Enable support for the SPI controller on the Netlogic XLP SoCs.
827           Currently supported XLP variants are XLP8XX, XLP3XX, XLP2XX, XLP9XX
828           and XLP5XX.
829
830           If you have a Netlogic XLP platform say Y here.
831           If unsure, say N.
832
833 config SPI_XTENSA_XTFPGA
834         tristate "Xtensa SPI controller for xtfpga"
835         depends on (XTENSA && XTENSA_PLATFORM_XTFPGA) || COMPILE_TEST
836         select SPI_BITBANG
837         help
838           SPI driver for xtfpga SPI master controller.
839
840           This simple SPI master controller is built into xtfpga bitstreams
841           and is used to control daughterboard audio codec. It always transfers
842           16 bit words in SPI mode 0, automatically asserting CS on transfer
843           start and deasserting on end.
844
845 config SPI_ZYNQMP_GQSPI
846         tristate "Xilinx ZynqMP GQSPI controller"
847         depends on SPI_MASTER && HAS_DMA
848         help
849           Enables Xilinx GQSPI controller driver for Zynq UltraScale+ MPSoC.
850
851 #
852 # Add new SPI master controllers in alphabetical order above this line
853 #
854
855 #
856 # There are lots of SPI device types, with sensors and memory
857 # being probably the most widely used ones.
858 #
859 comment "SPI Protocol Masters"
860
861 config SPI_SPIDEV
862         tristate "User mode SPI device driver support"
863         help
864           This supports user mode SPI protocol drivers.
865
866           Note that this application programming interface is EXPERIMENTAL
867           and hence SUBJECT TO CHANGE WITHOUT NOTICE while it stabilizes.
868
869 config SPI_LOOPBACK_TEST
870         tristate "spi loopback test framework support"
871         depends on m
872         help
873           This enables the SPI loopback testing framework driver
874
875           primarily used for development of spi_master drivers
876           and to detect regressions
877
878 config SPI_TLE62X0
879         tristate "Infineon TLE62X0 (for power switching)"
880         depends on SYSFS
881         help
882           SPI driver for Infineon TLE62X0 series line driver chips,
883           such as the TLE6220, TLE6230 and TLE6240.  This provides a
884           sysfs interface, with each line presented as a kind of GPIO
885           exposing both switch control and diagnostic feedback.
886
887 #
888 # Add new SPI protocol masters in alphabetical order above this line
889 #
890
891 endif # SPI_MASTER
892
893 #
894 # SLAVE side ... listening to other SPI masters
895 #
896
897 config SPI_SLAVE
898         bool "SPI slave protocol handlers"
899         help
900           If your system has a slave-capable SPI controller, you can enable
901           slave protocol handlers.
902
903 if SPI_SLAVE
904
905 config SPI_SLAVE_TIME
906         tristate "SPI slave handler reporting boot up time"
907         help
908           SPI slave handler responding with the time of reception of the last
909           SPI message.
910
911 config SPI_SLAVE_SYSTEM_CONTROL
912         tristate "SPI slave handler controlling system state"
913         help
914           SPI slave handler to allow remote control of system reboot, power
915           off, halt, and suspend.
916
917 endif # SPI_SLAVE
918
919 endif # SPI