]> git.karo-electronics.de Git - karo-tx-linux.git/blob - drivers/spi/Kconfig
Merge remote-tracking branch 'tip/auto-latest'
[karo-tx-linux.git] / drivers / spi / Kconfig
1 #
2 # SPI driver configuration
3 #
4 # NOTE:  the reason this doesn't show SPI slave support is mostly that
5 # nobody's needed a slave side API yet.  The master-role API is not
6 # fully appropriate there, so it'd need some thought to do well.
7 #
8 menuconfig SPI
9         bool "SPI support"
10         depends on HAS_IOMEM
11         help
12           The "Serial Peripheral Interface" is a low level synchronous
13           protocol.  Chips that support SPI can have data transfer rates
14           up to several tens of Mbit/sec.  Chips are addressed with a
15           controller and a chipselect.  Most SPI slaves don't support
16           dynamic device discovery; some are even write-only or read-only.
17
18           SPI is widely used by microcontrollers to talk with sensors,
19           eeprom and flash memory, codecs and various other controller
20           chips, analog to digital (and d-to-a) converters, and more.
21           MMC and SD cards can be accessed using SPI protocol; and for
22           DataFlash cards used in MMC sockets, SPI must always be used.
23
24           SPI is one of a family of similar protocols using a four wire
25           interface (select, clock, data in, data out) including Microwire
26           (half duplex), SSP, SSI, and PSP.  This driver framework should
27           work with most such devices and controllers.
28
29 if SPI
30
31 config SPI_DEBUG
32         bool "Debug support for SPI drivers"
33         depends on DEBUG_KERNEL
34         help
35           Say "yes" to enable debug messaging (like dev_dbg and pr_debug),
36           sysfs, and debugfs support in SPI controller and protocol drivers.
37
38 #
39 # MASTER side ... talking to discrete SPI slave chips including microcontrollers
40 #
41
42 config SPI_MASTER
43 #       bool "SPI Master Support"
44         bool
45         default SPI
46         help
47           If your system has an master-capable SPI controller (which
48           provides the clock and chipselect), you can enable that
49           controller and the protocol drivers for the SPI slave chips
50           that are connected.
51
52 if SPI_MASTER
53
54 comment "SPI Master Controller Drivers"
55
56 config SPI_ALTERA
57         tristate "Altera SPI Controller"
58         select SPI_BITBANG
59         help
60           This is the driver for the Altera SPI Controller.
61
62 config SPI_ATH79
63         tristate "Atheros AR71XX/AR724X/AR913X SPI controller driver"
64         depends on ATH79 && GPIOLIB
65         select SPI_BITBANG
66         help
67           This enables support for the SPI controller present on the
68           Atheros AR71XX/AR724X/AR913X SoCs.
69
70 config SPI_ATMEL
71         tristate "Atmel SPI Controller"
72         depends on HAS_DMA
73         depends on (ARCH_AT91 || AVR32 || COMPILE_TEST)
74         help
75           This selects a driver for the Atmel SPI Controller, present on
76           many AT32 (AVR32) and AT91 (ARM) chips.
77
78 config SPI_AU1550
79         tristate "Au1550/Au1200/Au1300 SPI Controller"
80         depends on MIPS_ALCHEMY
81         select SPI_BITBANG
82         help
83           If you say yes to this option, support will be included for the
84           PSC SPI controller found on Au1550, Au1200 and Au1300 series.
85
86 config SPI_AXI_SPI_ENGINE
87         tristate "Analog Devices AXI SPI Engine controller"
88         depends on HAS_IOMEM
89         help
90           This enables support for the Analog Devices AXI SPI Engine SPI controller.
91           It is part of the SPI Engine framework that is used in some Analog Devices
92           reference designs for FPGAs.
93
94 config SPI_BCM2835
95         tristate "BCM2835 SPI controller"
96         depends on GPIOLIB
97         depends on ARCH_BCM2835 || COMPILE_TEST
98         depends on GPIOLIB
99         help
100           This selects a driver for the Broadcom BCM2835 SPI master.
101
102           The BCM2835 contains two types of SPI master controller; the
103           "universal SPI master", and the regular SPI controller. This driver
104           is for the regular SPI controller. Slave mode operation is not also
105           not supported.
106
107 config SPI_BCM2835AUX
108         tristate "BCM2835 SPI auxiliary controller"
109         depends on (ARCH_BCM2835 && GPIOLIB) || COMPILE_TEST
110         help
111           This selects a driver for the Broadcom BCM2835 SPI aux master.
112
113           The BCM2835 contains two types of SPI master controller; the
114           "universal SPI master", and the regular SPI controller.
115           This driver is for the universal/auxiliary SPI controller.
116
117 config SPI_BFIN5XX
118         tristate "SPI controller driver for ADI Blackfin5xx"
119         depends on BLACKFIN && !BF60x
120         help
121           This is the SPI controller master driver for Blackfin 5xx processor.
122
123 config SPI_ADI_V3
124         tristate "SPI controller v3 for ADI"
125         depends on BF60x
126         help
127           This is the SPI controller v3 master driver
128           found on Blackfin 60x processor.
129
130 config SPI_BFIN_SPORT
131         tristate "SPI bus via Blackfin SPORT"
132         depends on BLACKFIN
133         help
134           Enable support for a SPI bus via the Blackfin SPORT peripheral.
135
136 config SPI_BCM53XX
137         tristate "Broadcom BCM53xx SPI controller"
138         depends on ARCH_BCM_5301X
139         depends on BCMA_POSSIBLE
140         select BCMA
141         help
142           Enable support for the SPI controller on Broadcom BCM53xx ARM SoCs.
143
144 config SPI_BCM63XX
145         tristate "Broadcom BCM63xx SPI controller"
146         depends on BCM63XX || COMPILE_TEST
147         help
148           Enable support for the SPI controller on the Broadcom BCM63xx SoCs.
149
150 config SPI_BCM63XX_HSSPI
151         tristate "Broadcom BCM63XX HS SPI controller driver"
152         depends on BCM63XX || COMPILE_TEST
153         help
154           This enables support for the High Speed SPI controller present on
155           newer Broadcom BCM63XX SoCs.
156
157 config SPI_BITBANG
158         tristate "Utilities for Bitbanging SPI masters"
159         help
160           With a few GPIO pins, your system can bitbang the SPI protocol.
161           Select this to get SPI support through I/O pins (GPIO, parallel
162           port, etc).  Or, some systems' SPI master controller drivers use
163           this code to manage the per-word or per-transfer accesses to the
164           hardware shift registers.
165
166           This is library code, and is automatically selected by drivers that
167           need it.  You only need to select this explicitly to support driver
168           modules that aren't part of this kernel tree.
169
170 config SPI_BUTTERFLY
171         tristate "Parallel port adapter for AVR Butterfly (DEVELOPMENT)"
172         depends on PARPORT
173         select SPI_BITBANG
174         help
175           This uses a custom parallel port cable to connect to an AVR
176           Butterfly <http://www.atmel.com/products/avr/butterfly>, an
177           inexpensive battery powered microcontroller evaluation board.
178           This same cable can be used to flash new firmware.
179
180 config SPI_CADENCE
181         tristate "Cadence SPI controller"
182         help
183           This selects the Cadence SPI controller master driver
184           used by Xilinx Zynq and ZynqMP.
185
186 config SPI_CLPS711X
187         tristate "CLPS711X host SPI controller"
188         depends on ARCH_CLPS711X || COMPILE_TEST
189         help
190           This enables dedicated general purpose SPI/Microwire1-compatible
191           master mode interface (SSI1) for CLPS711X-based CPUs.
192
193 config SPI_COLDFIRE_QSPI
194         tristate "Freescale Coldfire QSPI controller"
195         depends on (M520x || M523x || M5249 || M525x || M527x || M528x || M532x)
196         help
197           This enables support for the Coldfire QSPI controller in master
198           mode.
199
200 config SPI_DAVINCI
201         tristate "Texas Instruments DaVinci/DA8x/OMAP-L/AM1x SoC SPI controller"
202         depends on ARCH_DAVINCI || ARCH_KEYSTONE
203         select SPI_BITBANG
204         help
205           SPI master controller for DaVinci/DA8x/OMAP-L/AM1x SPI modules.
206
207 config SPI_DESIGNWARE
208         tristate "DesignWare SPI controller core support"
209         help
210           general driver for SPI controller core from DesignWare
211
212 config SPI_DW_PCI
213         tristate "PCI interface driver for DW SPI core"
214         depends on SPI_DESIGNWARE && PCI
215
216 config SPI_DW_MID_DMA
217         bool "DMA support for DW SPI controller on Intel MID platform"
218         depends on SPI_DW_PCI && DW_DMAC_PCI
219
220 config SPI_DW_MMIO
221         tristate "Memory-mapped io interface driver for DW SPI core"
222         depends on SPI_DESIGNWARE
223
224 config SPI_DLN2
225        tristate "Diolan DLN-2 USB SPI adapter"
226        depends on MFD_DLN2
227        help
228          If you say yes to this option, support will be included for Diolan
229          DLN2, a USB to SPI interface.
230
231          This driver can also be built as a module.  If so, the module
232          will be called spi-dln2.
233
234 config SPI_EFM32
235         tristate "EFM32 SPI controller"
236         depends on OF && ARM && (ARCH_EFM32 || COMPILE_TEST)
237         select SPI_BITBANG
238         help
239           Driver for the spi controller found on Energy Micro's EFM32 SoCs.
240
241 config SPI_EP93XX
242         tristate "Cirrus Logic EP93xx SPI controller"
243         depends on HAS_DMA
244         depends on ARCH_EP93XX || COMPILE_TEST
245         help
246           This enables using the Cirrus EP93xx SPI controller in master
247           mode.
248
249 config SPI_FALCON
250         tristate "Falcon SPI controller support"
251         depends on SOC_FALCON
252         help
253           The external bus unit (EBU) found on the FALC-ON SoC has SPI
254           emulation that is designed for serial flash access. This driver
255           has only been tested with m25p80 type chips. The hardware has no
256           support for other types of SPI peripherals.
257
258 config SPI_GPIO
259         tristate "GPIO-based bitbanging SPI Master"
260         depends on GPIOLIB || COMPILE_TEST
261         select SPI_BITBANG
262         help
263           This simple GPIO bitbanging SPI master uses the arch-neutral GPIO
264           interface to manage MOSI, MISO, SCK, and chipselect signals.  SPI
265           slaves connected to a bus using this driver are configured as usual,
266           except that the spi_board_info.controller_data holds the GPIO number
267           for the chipselect used by this controller driver.
268
269           Note that this driver often won't achieve even 1 Mbit/sec speeds,
270           making it unusually slow for SPI.  If your platform can inline
271           GPIO operations, you should be able to leverage that for better
272           speed with a custom version of this driver; see the source code.
273
274 config SPI_IMG_SPFI
275         tristate "IMG SPFI controller"
276         depends on MIPS || COMPILE_TEST
277         help
278           This enables support for the SPFI master controller found on
279           IMG SoCs.
280
281 config SPI_IMX
282         tristate "Freescale i.MX SPI controllers"
283         depends on ARCH_MXC || COMPILE_TEST
284         select SPI_BITBANG
285         help
286           This enables using the Freescale i.MX SPI controllers in master
287           mode.
288
289 config SPI_LM70_LLP
290         tristate "Parallel port adapter for LM70 eval board (DEVELOPMENT)"
291         depends on PARPORT
292         select SPI_BITBANG
293         help
294           This driver supports the NS LM70 LLP Evaluation Board,
295           which interfaces to an LM70 temperature sensor using
296           a parallel port.
297
298 config SPI_MPC52xx
299         tristate "Freescale MPC52xx SPI (non-PSC) controller support"
300         depends on PPC_MPC52xx
301         help
302           This drivers supports the MPC52xx SPI controller in master SPI
303           mode.
304
305 config SPI_MPC52xx_PSC
306         tristate "Freescale MPC52xx PSC SPI controller"
307         depends on PPC_MPC52xx
308         help
309           This enables using the Freescale MPC52xx Programmable Serial
310           Controller in master SPI mode.
311
312 config SPI_MPC512x_PSC
313         tristate "Freescale MPC512x PSC SPI controller"
314         depends on PPC_MPC512x
315         help
316           This enables using the Freescale MPC5121 Programmable Serial
317           Controller in SPI master mode.
318
319 config SPI_FSL_LIB
320         tristate
321         depends on OF
322
323 config SPI_FSL_CPM
324         tristate
325         depends on FSL_SOC
326
327 config SPI_FSL_SPI
328         tristate "Freescale SPI controller and Aeroflex Gaisler GRLIB SPI controller"
329         depends on OF
330         select SPI_FSL_LIB
331         select SPI_FSL_CPM if FSL_SOC
332         help
333           This enables using the Freescale SPI controllers in master mode.
334           MPC83xx platform uses the controller in cpu mode or CPM/QE mode.
335           MPC8569 uses the controller in QE mode, MPC8610 in cpu mode.
336           This also enables using the Aeroflex Gaisler GRLIB SPI controller in
337           master mode.
338
339 config SPI_FSL_DSPI
340         tristate "Freescale DSPI controller"
341         select REGMAP_MMIO
342         depends on SOC_VF610 || SOC_LS1021A || ARCH_LAYERSCAPE || COMPILE_TEST
343         help
344           This enables support for the Freescale DSPI controller in master
345           mode. VF610 platform uses the controller.
346
347 config SPI_FSL_ESPI
348         tristate "Freescale eSPI controller"
349         depends on FSL_SOC
350         select SPI_FSL_LIB
351         help
352           This enables using the Freescale eSPI controllers in master mode.
353           From MPC8536, 85xx platform uses the controller, and all P10xx,
354           P20xx, P30xx,P40xx, P50xx uses this controller.
355
356 config SPI_MESON_SPIFC
357         tristate "Amlogic Meson SPIFC controller"
358         depends on ARCH_MESON || COMPILE_TEST
359         select REGMAP_MMIO
360         help
361           This enables master mode support for the SPIFC (SPI flash
362           controller) available in Amlogic Meson SoCs.
363
364 config SPI_MT65XX
365         tristate "MediaTek SPI controller"
366         depends on ARCH_MEDIATEK || COMPILE_TEST
367         help
368           This selects the MediaTek(R) SPI bus driver.
369           If you want to use MediaTek(R) SPI interface,
370           say Y or M here.If you are not sure, say N.
371           SPI drivers for Mediatek MT65XX and MT81XX series ARM SoCs.
372
373 config SPI_NUC900
374         tristate "Nuvoton NUC900 series SPI"
375         depends on ARCH_W90X900
376         select SPI_BITBANG
377         help
378           SPI driver for Nuvoton NUC900 series ARM SoCs
379
380 config SPI_OC_TINY
381         tristate "OpenCores tiny SPI"
382         depends on GPIOLIB || COMPILE_TEST
383         select SPI_BITBANG
384         help
385           This is the driver for OpenCores tiny SPI master controller.
386
387 config SPI_OCTEON
388         tristate "Cavium OCTEON SPI controller"
389         depends on CAVIUM_OCTEON_SOC
390         help
391           SPI host driver for the hardware found on some Cavium OCTEON
392           SOCs.
393
394 config SPI_OMAP_UWIRE
395         tristate "OMAP1 MicroWire"
396         depends on ARCH_OMAP1
397         select SPI_BITBANG
398         help
399           This hooks up to the MicroWire controller on OMAP1 chips.
400
401 config SPI_OMAP24XX
402         tristate "McSPI driver for OMAP"
403         depends on HAS_DMA
404         depends on ARM || ARM64 || AVR32 || HEXAGON || MIPS || SUPERH
405         depends on ARCH_OMAP2PLUS || COMPILE_TEST
406         help
407           SPI master controller for OMAP24XX and later Multichannel SPI
408           (McSPI) modules.
409
410 config SPI_TI_QSPI
411         tristate "DRA7xxx QSPI controller support"
412         depends on ARCH_OMAP2PLUS || COMPILE_TEST
413         help
414           QSPI master controller for DRA7xxx used for flash devices.
415           This device supports single, dual and quad read support, while
416           it only supports single write mode.
417
418 config SPI_OMAP_100K
419         tristate "OMAP SPI 100K"
420         depends on ARCH_OMAP850 || ARCH_OMAP730 || COMPILE_TEST
421         help
422           OMAP SPI 100K master controller for omap7xx boards.
423
424 config SPI_ORION
425         tristate "Orion SPI master"
426         depends on PLAT_ORION || COMPILE_TEST
427         help
428           This enables using the SPI master controller on the Orion chips.
429
430 config SPI_PL022
431         tristate "ARM AMBA PL022 SSP controller"
432         depends on ARM_AMBA
433         default y if MACH_U300
434         default y if ARCH_REALVIEW
435         default y if INTEGRATOR_IMPD1
436         default y if ARCH_VERSATILE
437         help
438           This selects the ARM(R) AMBA(R) PrimeCell PL022 SSP
439           controller. If you have an embedded system with an AMBA(R)
440           bus and a PL022 controller, say Y or M here.
441
442 config SPI_PPC4xx
443         tristate "PPC4xx SPI Controller"
444         depends on PPC32 && 4xx
445         select SPI_BITBANG
446         help
447           This selects a driver for the PPC4xx SPI Controller.
448
449 config SPI_PXA2XX
450         tristate "PXA2xx SSP SPI master"
451         depends on (ARCH_PXA || PCI || ACPI)
452         select PXA_SSP if ARCH_PXA
453         help
454           This enables using a PXA2xx or Sodaville SSP port as a SPI master
455           controller. The driver can be configured to use any SSP port and
456           additional documentation can be found a Documentation/spi/pxa2xx.
457
458 config SPI_PXA2XX_PCI
459         def_tristate SPI_PXA2XX && PCI && COMMON_CLK
460
461 config SPI_ROCKCHIP
462         tristate "Rockchip SPI controller driver"
463         depends on ARM || ARM64 || AVR32 || HEXAGON || MIPS || SUPERH
464         help
465           This selects a driver for Rockchip SPI controller.
466
467           If you say yes to this option, support will be included for
468           RK3066, RK3188 and RK3288 families of SPI controller.
469           Rockchip SPI controller support DMA transport and PIO mode.
470           The main usecase of this controller is to use spi flash as boot
471           device.
472
473 config SPI_RB4XX
474         tristate "Mikrotik RB4XX SPI master"
475         depends on SPI_MASTER && ATH79
476         help
477           SPI controller driver for the Mikrotik RB4xx series boards.
478
479 config SPI_RSPI
480         tristate "Renesas RSPI/QSPI controller"
481         depends on SUPERH || ARCH_SHMOBILE || COMPILE_TEST
482         help
483           SPI driver for Renesas RSPI and QSPI blocks.
484
485 config SPI_QUP
486         tristate "Qualcomm SPI controller with QUP interface"
487         depends on ARCH_QCOM || (ARM && COMPILE_TEST)
488         help
489           Qualcomm Universal Peripheral (QUP) core is an AHB slave that
490           provides a common data path (an output FIFO and an input FIFO)
491           for serial peripheral interface (SPI) mini-core. SPI in master
492           mode supports up to 50MHz, up to four chip selects, programmable
493           data path from 4 bits to 32 bits and numerous protocol variants.
494
495           This driver can also be built as a module.  If so, the module
496           will be called spi_qup.
497
498 config SPI_S3C24XX
499         tristate "Samsung S3C24XX series SPI"
500         depends on ARCH_S3C24XX
501         select SPI_BITBANG
502         help
503           SPI driver for Samsung S3C24XX series ARM SoCs
504
505 config SPI_S3C24XX_FIQ
506         bool "S3C24XX driver with FIQ pseudo-DMA"
507         depends on SPI_S3C24XX
508         select FIQ
509         help
510           Enable FIQ support for the S3C24XX SPI driver to provide pseudo
511           DMA by using the fast-interrupt request framework, This allows
512           the driver to get DMA-like performance when there are either
513           no free DMA channels, or when doing transfers that required both
514           TX and RX data paths.
515
516 config SPI_S3C64XX
517         tristate "Samsung S3C64XX series type SPI"
518         depends on (PLAT_SAMSUNG || ARCH_EXYNOS)
519         help
520           SPI driver for Samsung S3C64XX and newer SoCs.
521
522 config SPI_SC18IS602
523         tristate "NXP SC18IS602/602B/603 I2C to SPI bridge"
524         depends on I2C
525         help
526           SPI driver for NXP SC18IS602/602B/603 I2C to SPI bridge.
527
528 config SPI_SH_MSIOF
529         tristate "SuperH MSIOF SPI controller"
530         depends on HAVE_CLK && HAS_DMA
531         depends on SUPERH || ARCH_SHMOBILE || COMPILE_TEST
532         help
533           SPI driver for SuperH and SH Mobile MSIOF blocks.
534
535 config SPI_SH
536         tristate "SuperH SPI controller"
537         depends on SUPERH || COMPILE_TEST
538         help
539           SPI driver for SuperH SPI blocks.
540
541 config SPI_SH_SCI
542         tristate "SuperH SCI SPI controller"
543         depends on SUPERH
544         select SPI_BITBANG
545         help
546           SPI driver for SuperH SCI blocks.
547
548 config SPI_SH_HSPI
549         tristate "SuperH HSPI controller"
550         depends on ARCH_SHMOBILE || COMPILE_TEST
551         help
552           SPI driver for SuperH HSPI blocks.
553
554 config SPI_SIRF
555         tristate "CSR SiRFprimaII SPI controller"
556         depends on SIRF_DMA
557         select SPI_BITBANG
558         help
559           SPI driver for CSR SiRFprimaII SoCs
560
561 config SPI_ST_SSC4
562         tristate "STMicroelectronics SPI SSC-based driver"
563         depends on ARCH_STI
564         help
565           STMicroelectronics SoCs support for SPI. If you say yes to
566           this option, support will be included for the SSC driven SPI.
567
568 config SPI_SUN4I
569         tristate "Allwinner A10 SoCs SPI controller"
570         depends on ARCH_SUNXI || COMPILE_TEST
571         help
572           SPI driver for Allwinner sun4i, sun5i and sun7i SoCs
573
574 config SPI_SUN6I
575         tristate "Allwinner A31 SPI controller"
576         depends on ARCH_SUNXI || COMPILE_TEST
577         depends on RESET_CONTROLLER
578         help
579           This enables using the SPI controller on the Allwinner A31 SoCs.
580
581 config SPI_MXS
582         tristate "Freescale MXS SPI controller"
583         depends on ARCH_MXS
584         select STMP_DEVICE
585         help
586           SPI driver for Freescale MXS devices.
587
588 config SPI_TEGRA114
589         tristate "NVIDIA Tegra114 SPI Controller"
590         depends on (ARCH_TEGRA && TEGRA20_APB_DMA) || COMPILE_TEST
591         depends on RESET_CONTROLLER && HAS_DMA
592         help
593           SPI driver for NVIDIA Tegra114 SPI Controller interface. This controller
594           is different than the older SoCs SPI controller and also register interface
595           get changed with this controller.
596
597 config SPI_TEGRA20_SFLASH
598         tristate "Nvidia Tegra20 Serial flash Controller"
599         depends on ARCH_TEGRA || COMPILE_TEST
600         depends on RESET_CONTROLLER
601         help
602           SPI driver for Nvidia Tegra20 Serial flash Controller interface.
603           The main usecase of this controller is to use spi flash as boot
604           device.
605
606 config SPI_TEGRA20_SLINK
607         tristate "Nvidia Tegra20/Tegra30 SLINK Controller"
608         depends on (ARCH_TEGRA && TEGRA20_APB_DMA) || COMPILE_TEST
609         depends on RESET_CONTROLLER && HAS_DMA
610         help
611           SPI driver for Nvidia Tegra20/Tegra30 SLINK Controller interface.
612
613 config SPI_TOPCLIFF_PCH
614         tristate "Intel EG20T PCH/LAPIS Semicon IOH(ML7213/ML7223/ML7831) SPI"
615         depends on PCI && (X86_32 || MIPS || COMPILE_TEST)
616         help
617           SPI driver for the Topcliff PCH (Platform Controller Hub) SPI bus
618           used in some x86 embedded processors.
619
620           This driver also supports the ML7213/ML7223/ML7831, a companion chip
621           for the Atom E6xx series and compatible with the Intel EG20T PCH.
622
623 config SPI_TXX9
624         tristate "Toshiba TXx9 SPI controller"
625         depends on GPIOLIB && (CPU_TX49XX || COMPILE_TEST)
626         help
627           SPI driver for Toshiba TXx9 MIPS SoCs
628
629 config SPI_XCOMM
630         tristate "Analog Devices AD-FMCOMMS1-EBZ SPI-I2C-bridge driver"
631         depends on I2C
632         help
633           Support for the SPI-I2C bridge found on the Analog Devices
634           AD-FMCOMMS1-EBZ board.
635
636 config SPI_XILINX
637         tristate "Xilinx SPI controller common module"
638         depends on HAS_IOMEM
639         select SPI_BITBANG
640         help
641           This exposes the SPI controller IP from the Xilinx EDK.
642
643           See the "OPB Serial Peripheral Interface (SPI) (v1.00e)"
644           Product Specification document (DS464) for hardware details.
645
646           Or for the DS570, see "XPS Serial Peripheral Interface (SPI) (v2.00b)"
647
648 config SPI_XLP
649         tristate "Netlogic XLP SPI controller driver"
650         depends on CPU_XLP || COMPILE_TEST
651         help
652           Enable support for the SPI controller on the Netlogic XLP SoCs.
653           Currently supported XLP variants are XLP8XX, XLP3XX, XLP2XX, XLP9XX
654           and XLP5XX.
655
656           If you have a Netlogic XLP platform say Y here.
657           If unsure, say N.
658
659 config SPI_XTENSA_XTFPGA
660         tristate "Xtensa SPI controller for xtfpga"
661         depends on (XTENSA && XTENSA_PLATFORM_XTFPGA) || COMPILE_TEST
662         select SPI_BITBANG
663         help
664           SPI driver for xtfpga SPI master controller.
665
666           This simple SPI master controller is built into xtfpga bitstreams
667           and is used to control daughterboard audio codec. It always transfers
668           16 bit words in SPI mode 0, automatically asserting CS on transfer
669           start and deasserting on end.
670
671 config SPI_ZYNQMP_GQSPI
672         tristate "Xilinx ZynqMP GQSPI controller"
673         depends on SPI_MASTER && HAS_DMA
674         help
675           Enables Xilinx GQSPI controller driver for Zynq UltraScale+ MPSoC.
676
677 #
678 # Add new SPI master controllers in alphabetical order above this line
679 #
680
681 #
682 # There are lots of SPI device types, with sensors and memory
683 # being probably the most widely used ones.
684 #
685 comment "SPI Protocol Masters"
686
687 config SPI_SPIDEV
688         tristate "User mode SPI device driver support"
689         help
690           This supports user mode SPI protocol drivers.
691
692           Note that this application programming interface is EXPERIMENTAL
693           and hence SUBJECT TO CHANGE WITHOUT NOTICE while it stabilizes.
694
695 config SPI_LOOPBACK_TEST
696         tristate "spi loopback test framework support"
697         depends on m
698         help
699           This enables the SPI loopback testing framework driver
700
701           primarily used for development of spi_master drivers
702           and to detect regressions
703
704 config SPI_TLE62X0
705         tristate "Infineon TLE62X0 (for power switching)"
706         depends on SYSFS
707         help
708           SPI driver for Infineon TLE62X0 series line driver chips,
709           such as the TLE6220, TLE6230 and TLE6240.  This provides a
710           sysfs interface, with each line presented as a kind of GPIO
711           exposing both switch control and diagnostic feedback.
712
713 #
714 # Add new SPI protocol masters in alphabetical order above this line
715 #
716
717 endif # SPI_MASTER
718
719 # (slave support would go here)
720
721 endif # SPI