mm/hmm.c: remove superfluous RCU protection around radix tree lookup
[linux/fpc-iii.git] / drivers / spi / Kconfig
blob2d4146ce2f1be49d64af9efb36416d681ffb49cd
2 # SPI driver configuration
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.
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.
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.
25 if SPI
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.
35 # MASTER side ... talking to discrete SPI slave chips including microcontrollers
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.
48 if SPI_MASTER
50 comment "SPI Master Controller Drivers"
52 config SPI_ALTERA
53         tristate "Altera SPI Controller"
54         help
55           This is the driver for the Altera SPI Controller.
57 config SPI_ATH79
58         tristate "Atheros AR71XX/AR724X/AR913X SPI controller driver"
59         depends on ATH79 && GPIOLIB
60         select SPI_BITBANG
61         help
62           This enables support for the SPI controller present on the
63           Atheros AR71XX/AR724X/AR913X SoCs.
65 config SPI_ARMADA_3700
66         tristate "Marvell Armada 3700 SPI Controller"
67         depends on (ARCH_MVEBU && OF) || COMPILE_TEST
68         help
69           This enables support for the SPI controller present on the
70           Marvell Armada 3700 SoCs.
72 config SPI_ATMEL
73         tristate "Atmel SPI Controller"
74         depends on HAS_DMA
75         depends on ARCH_AT91 || COMPILE_TEST
76         help
77           This selects a driver for the Atmel SPI Controller, present on
78           many AT91 ARM chips.
80 config SPI_AU1550
81         tristate "Au1550/Au1200/Au1300 SPI Controller"
82         depends on MIPS_ALCHEMY
83         select SPI_BITBANG
84         help
85           If you say yes to this option, support will be included for the
86           PSC SPI controller found on Au1550, Au1200 and Au1300 series.
88 config SPI_AXI_SPI_ENGINE
89         tristate "Analog Devices AXI SPI Engine controller"
90         depends on HAS_IOMEM
91         help
92           This enables support for the Analog Devices AXI SPI Engine SPI controller.
93           It is part of the SPI Engine framework that is used in some Analog Devices
94           reference designs for FPGAs.
96 config SPI_BCM2835
97         tristate "BCM2835 SPI controller"
98         depends on GPIOLIB
99         depends on ARCH_BCM2835 || COMPILE_TEST
100         help
101           This selects a driver for the Broadcom BCM2835 SPI master.
103           The BCM2835 contains two types of SPI master controller; the
104           "universal SPI master", and the regular SPI controller. This driver
105           is for the regular SPI controller. Slave mode operation is not also
106           not supported.
108 config SPI_BCM2835AUX
109         tristate "BCM2835 SPI auxiliary controller"
110         depends on (ARCH_BCM2835 && GPIOLIB) || COMPILE_TEST
111         help
112           This selects a driver for the Broadcom BCM2835 SPI aux master.
114           The BCM2835 contains two types of SPI master controller; the
115           "universal SPI master", and the regular SPI controller.
116           This driver is for the universal/auxiliary SPI controller.
118 config SPI_BCM53XX
119         tristate "Broadcom BCM53xx SPI controller"
120         depends on ARCH_BCM_5301X
121         depends on BCMA_POSSIBLE
122         select BCMA
123         help
124           Enable support for the SPI controller on Broadcom BCM53xx ARM SoCs.
126 config SPI_BCM63XX
127         tristate "Broadcom BCM63xx SPI controller"
128         depends on BCM63XX || COMPILE_TEST
129         help
130           Enable support for the SPI controller on the Broadcom BCM63xx SoCs.
132 config SPI_BCM63XX_HSSPI
133         tristate "Broadcom BCM63XX HS SPI controller driver"
134         depends on BCM63XX || COMPILE_TEST
135         help
136           This enables support for the High Speed SPI controller present on
137           newer Broadcom BCM63XX SoCs.
139 config SPI_BCM_QSPI
140         tristate "Broadcom BSPI and MSPI controller support"
141         depends on ARCH_BRCMSTB || ARCH_BCM || ARCH_BCM_IPROC || \
142                         BMIPS_GENERIC || COMPILE_TEST
143         default ARCH_BCM_IPROC
144         help
145           Enables support for the Broadcom SPI flash and MSPI controller.
146           Select this option for any one of BRCMSTB, iProc NSP and NS2 SoCs
147           based platforms. This driver works for both SPI master for spi-nor
148           flash device as well as MSPI device.
150 config SPI_BITBANG
151         tristate "Utilities for Bitbanging SPI masters"
152         help
153           With a few GPIO pins, your system can bitbang the SPI protocol.
154           Select this to get SPI support through I/O pins (GPIO, parallel
155           port, etc).  Or, some systems' SPI master controller drivers use
156           this code to manage the per-word or per-transfer accesses to the
157           hardware shift registers.
159           This is library code, and is automatically selected by drivers that
160           need it.  You only need to select this explicitly to support driver
161           modules that aren't part of this kernel tree.
163 config SPI_BUTTERFLY
164         tristate "Parallel port adapter for AVR Butterfly (DEVELOPMENT)"
165         depends on PARPORT
166         select SPI_BITBANG
167         help
168           This uses a custom parallel port cable to connect to an AVR
169           Butterfly <http://www.atmel.com/products/avr/butterfly>, an
170           inexpensive battery powered microcontroller evaluation board.
171           This same cable can be used to flash new firmware.
173 config SPI_CADENCE
174         tristate "Cadence SPI controller"
175         help
176           This selects the Cadence SPI controller master driver
177           used by Xilinx Zynq and ZynqMP.
179 config SPI_CLPS711X
180         tristate "CLPS711X host SPI controller"
181         depends on ARCH_CLPS711X || COMPILE_TEST
182         help
183           This enables dedicated general purpose SPI/Microwire1-compatible
184           master mode interface (SSI1) for CLPS711X-based CPUs.
186 config SPI_COLDFIRE_QSPI
187         tristate "Freescale Coldfire QSPI controller"
188         depends on (M520x || M523x || M5249 || M525x || M527x || M528x || M532x)
189         help
190           This enables support for the Coldfire QSPI controller in master
191           mode.
193 config SPI_DAVINCI
194         tristate "Texas Instruments DaVinci/DA8x/OMAP-L/AM1x SoC SPI controller"
195         depends on ARCH_DAVINCI || ARCH_KEYSTONE
196         select SPI_BITBANG
197         help
198           SPI master controller for DaVinci/DA8x/OMAP-L/AM1x SPI modules.
200 config SPI_DESIGNWARE
201         tristate "DesignWare SPI controller core support"
202         help
203           general driver for SPI controller core from DesignWare
205 config SPI_DW_PCI
206         tristate "PCI interface driver for DW SPI core"
207         depends on SPI_DESIGNWARE && PCI
209 config SPI_DW_MID_DMA
210         bool "DMA support for DW SPI controller on Intel MID platform"
211         depends on SPI_DW_PCI && DW_DMAC_PCI
213 config SPI_DW_MMIO
214         tristate "Memory-mapped io interface driver for DW SPI core"
215         depends on SPI_DESIGNWARE
217 config SPI_DLN2
218        tristate "Diolan DLN-2 USB SPI adapter"
219        depends on MFD_DLN2
220        help
221          If you say yes to this option, support will be included for Diolan
222          DLN2, a USB to SPI interface.
224          This driver can also be built as a module.  If so, the module
225          will be called spi-dln2.
227 config SPI_EFM32
228         tristate "EFM32 SPI controller"
229         depends on OF && ARM && (ARCH_EFM32 || COMPILE_TEST)
230         select SPI_BITBANG
231         help
232           Driver for the spi controller found on Energy Micro's EFM32 SoCs.
234 config SPI_EP93XX
235         tristate "Cirrus Logic EP93xx SPI controller"
236         depends on HAS_DMA
237         depends on ARCH_EP93XX || COMPILE_TEST
238         help
239           This enables using the Cirrus EP93xx SPI controller in master
240           mode.
242 config SPI_FALCON
243         bool "Falcon SPI controller support"
244         depends on SOC_FALCON
245         help
246           The external bus unit (EBU) found on the FALC-ON SoC has SPI
247           emulation that is designed for serial flash access. This driver
248           has only been tested with m25p80 type chips. The hardware has no
249           support for other types of SPI peripherals.
251 config SPI_FSL_LPSPI
252         tristate "Freescale i.MX LPSPI controller"
253         depends on ARCH_MXC || COMPILE_TEST
254         help
255           This enables Freescale i.MX LPSPI controllers in master mode.
257 config SPI_GPIO
258         tristate "GPIO-based bitbanging SPI Master"
259         depends on GPIOLIB || COMPILE_TEST
260         select SPI_BITBANG
261         help
262           This simple GPIO bitbanging SPI master uses the arch-neutral GPIO
263           interface to manage MOSI, MISO, SCK, and chipselect signals.  SPI
264           slaves connected to a bus using this driver are configured as usual,
265           except that the spi_board_info.controller_data holds the GPIO number
266           for the chipselect used by this controller driver.
268           Note that this driver often won't achieve even 1 Mbit/sec speeds,
269           making it unusually slow for SPI.  If your platform can inline
270           GPIO operations, you should be able to leverage that for better
271           speed with a custom version of this driver; see the source code.
273 config SPI_IMG_SPFI
274         tristate "IMG SPFI controller"
275         depends on MIPS || COMPILE_TEST
276         help
277           This enables support for the SPFI master controller found on
278           IMG SoCs.
280 config SPI_IMX
281         tristate "Freescale i.MX SPI controllers"
282         depends on ARCH_MXC || COMPILE_TEST
283         select SPI_BITBANG
284         help
285           This enables using the Freescale i.MX SPI controllers in master
286           mode.
288 config SPI_JCORE
289         tristate "J-Core SPI Master"
290         depends on OF && (SUPERH || COMPILE_TEST)
291         help
292           This enables support for the SPI master controller in the J-Core
293           synthesizable, open source SoC.
295 config SPI_LM70_LLP
296         tristate "Parallel port adapter for LM70 eval board (DEVELOPMENT)"
297         depends on PARPORT
298         select SPI_BITBANG
299         help
300           This driver supports the NS LM70 LLP Evaluation Board,
301           which interfaces to an LM70 temperature sensor using
302           a parallel port.
304 config SPI_LP8841_RTC
305         tristate "ICP DAS LP-8841 SPI Controller for RTC"
306         depends on MACH_PXA27X_DT || COMPILE_TEST
307         help
308           This driver provides an SPI master device to drive Maxim
309           DS-1302 real time clock.
311           Say N here unless you plan to run the kernel on an ICP DAS
312           LP-8x4x industrial computer.
314 config SPI_MPC52xx
315         tristate "Freescale MPC52xx SPI (non-PSC) controller support"
316         depends on PPC_MPC52xx
317         help
318           This drivers supports the MPC52xx SPI controller in master SPI
319           mode.
321 config SPI_MPC52xx_PSC
322         tristate "Freescale MPC52xx PSC SPI controller"
323         depends on PPC_MPC52xx
324         help
325           This enables using the Freescale MPC52xx Programmable Serial
326           Controller in master SPI mode.
328 config SPI_MPC512x_PSC
329         tristate "Freescale MPC512x PSC SPI controller"
330         depends on PPC_MPC512x
331         help
332           This enables using the Freescale MPC5121 Programmable Serial
333           Controller in SPI master mode.
335 config SPI_FSL_LIB
336         tristate
337         depends on OF
339 config SPI_FSL_CPM
340         tristate
341         depends on FSL_SOC
343 config SPI_FSL_SPI
344         tristate "Freescale SPI controller and Aeroflex Gaisler GRLIB SPI controller"
345         depends on OF
346         select SPI_FSL_LIB
347         select SPI_FSL_CPM if FSL_SOC
348         help
349           This enables using the Freescale SPI controllers in master mode.
350           MPC83xx platform uses the controller in cpu mode or CPM/QE mode.
351           MPC8569 uses the controller in QE mode, MPC8610 in cpu mode.
352           This also enables using the Aeroflex Gaisler GRLIB SPI controller in
353           master mode.
355 config SPI_FSL_DSPI
356         tristate "Freescale DSPI controller"
357         select REGMAP_MMIO
358         depends on HAS_DMA
359         depends on SOC_VF610 || SOC_LS1021A || ARCH_LAYERSCAPE || M5441x || COMPILE_TEST
360         help
361           This enables support for the Freescale DSPI controller in master
362           mode. VF610 platform uses the controller.
364 config SPI_FSL_ESPI
365         tristate "Freescale eSPI controller"
366         depends on FSL_SOC
367         help
368           This enables using the Freescale eSPI controllers in master mode.
369           From MPC8536, 85xx platform uses the controller, and all P10xx,
370           P20xx, P30xx,P40xx, P50xx uses this controller.
372 config SPI_MESON_SPICC
373         tristate "Amlogic Meson SPICC controller"
374         depends on ARCH_MESON || COMPILE_TEST
375         help
376           This enables master mode support for the SPICC (SPI communication
377           controller) available in Amlogic Meson SoCs.
379 config SPI_MESON_SPIFC
380         tristate "Amlogic Meson SPIFC controller"
381         depends on ARCH_MESON || COMPILE_TEST
382         select REGMAP_MMIO
383         help
384           This enables master mode support for the SPIFC (SPI flash
385           controller) available in Amlogic Meson SoCs.
387 config SPI_MT65XX
388         tristate "MediaTek SPI controller"
389         depends on ARCH_MEDIATEK || COMPILE_TEST
390         help
391           This selects the MediaTek(R) SPI bus driver.
392           If you want to use MediaTek(R) SPI interface,
393           say Y or M here.If you are not sure, say N.
394           SPI drivers for Mediatek MT65XX and MT81XX series ARM SoCs.
396 config SPI_NUC900
397         tristate "Nuvoton NUC900 series SPI"
398         depends on ARCH_W90X900
399         select SPI_BITBANG
400         help
401           SPI driver for Nuvoton NUC900 series ARM SoCs
403 config SPI_LANTIQ_SSC
404         tristate "Lantiq SSC SPI controller"
405         depends on LANTIQ || COMPILE_TEST
406         help
407           This driver supports the Lantiq SSC SPI controller in master
408           mode. This controller is found on Intel (former Lantiq) SoCs like
409           the Danube, Falcon, xRX200, xRX300.
411 config SPI_OC_TINY
412         tristate "OpenCores tiny SPI"
413         depends on GPIOLIB || COMPILE_TEST
414         select SPI_BITBANG
415         help
416           This is the driver for OpenCores tiny SPI master controller.
418 config SPI_OCTEON
419         tristate "Cavium OCTEON SPI controller"
420         depends on CAVIUM_OCTEON_SOC
421         help
422           SPI host driver for the hardware found on some Cavium OCTEON
423           SOCs.
425 config SPI_OMAP_UWIRE
426         tristate "OMAP1 MicroWire"
427         depends on ARCH_OMAP1
428         select SPI_BITBANG
429         help
430           This hooks up to the MicroWire controller on OMAP1 chips.
432 config SPI_OMAP24XX
433         tristate "McSPI driver for OMAP"
434         depends on HAS_DMA
435         depends on ARCH_OMAP2PLUS || COMPILE_TEST
436         select SG_SPLIT
437         help
438           SPI master controller for OMAP24XX and later Multichannel SPI
439           (McSPI) modules.
441 config SPI_TI_QSPI
442         tristate "DRA7xxx QSPI controller support"
443         depends on HAS_DMA
444         depends on ARCH_OMAP2PLUS || COMPILE_TEST
445         help
446           QSPI master controller for DRA7xxx used for flash devices.
447           This device supports single, dual and quad read support, while
448           it only supports single write mode.
450 config SPI_OMAP_100K
451         tristate "OMAP SPI 100K"
452         depends on ARCH_OMAP850 || ARCH_OMAP730 || COMPILE_TEST
453         help
454           OMAP SPI 100K master controller for omap7xx boards.
456 config SPI_ORION
457         tristate "Orion SPI master"
458         depends on PLAT_ORION || ARCH_MVEBU || COMPILE_TEST
459         help
460           This enables using the SPI master controller on the Orion
461           and MVEBU chips.
463 config SPI_PIC32
464         tristate "Microchip PIC32 series SPI"
465         depends on MACH_PIC32 || COMPILE_TEST
466         help
467           SPI driver for Microchip PIC32 SPI master controller.
469 config SPI_PIC32_SQI
470         tristate "Microchip PIC32 Quad SPI driver"
471         depends on MACH_PIC32 || COMPILE_TEST
472         depends on HAS_DMA
473         help
474           SPI driver for PIC32 Quad SPI controller.
476 config SPI_PL022
477         tristate "ARM AMBA PL022 SSP controller"
478         depends on ARM_AMBA
479         default y if MACH_U300
480         default y if ARCH_REALVIEW
481         default y if INTEGRATOR_IMPD1
482         default y if ARCH_VERSATILE
483         help
484           This selects the ARM(R) AMBA(R) PrimeCell PL022 SSP
485           controller. If you have an embedded system with an AMBA(R)
486           bus and a PL022 controller, say Y or M here.
488 config SPI_PPC4xx
489         tristate "PPC4xx SPI Controller"
490         depends on PPC32 && 4xx
491         select SPI_BITBANG
492         help
493           This selects a driver for the PPC4xx SPI Controller.
495 config SPI_PXA2XX
496         tristate "PXA2xx SSP SPI master"
497         depends on (ARCH_PXA || ARCH_MMP || PCI || ACPI)
498         select PXA_SSP if ARCH_PXA || ARCH_MMP
499         help
500           This enables using a PXA2xx or Sodaville SSP port as a SPI master
501           controller. The driver can be configured to use any SSP port and
502           additional documentation can be found a Documentation/spi/pxa2xx.
504 config SPI_PXA2XX_PCI
505         def_tristate SPI_PXA2XX && PCI && COMMON_CLK
507 config SPI_ROCKCHIP
508         tristate "Rockchip SPI controller driver"
509         help
510           This selects a driver for Rockchip SPI controller.
512           If you say yes to this option, support will be included for
513           RK3066, RK3188 and RK3288 families of SPI controller.
514           Rockchip SPI controller support DMA transport and PIO mode.
515           The main usecase of this controller is to use spi flash as boot
516           device.
518 config SPI_RB4XX
519         tristate "Mikrotik RB4XX SPI master"
520         depends on SPI_MASTER && ATH79
521         help
522           SPI controller driver for the Mikrotik RB4xx series boards.
524 config SPI_RSPI
525         tristate "Renesas RSPI/QSPI controller"
526         depends on SUPERH || ARCH_RENESAS || COMPILE_TEST
527         help
528           SPI driver for Renesas RSPI and QSPI blocks.
530 config SPI_QUP
531         tristate "Qualcomm SPI controller with QUP interface"
532         depends on ARCH_QCOM || (ARM && COMPILE_TEST)
533         help
534           Qualcomm Universal Peripheral (QUP) core is an AHB slave that
535           provides a common data path (an output FIFO and an input FIFO)
536           for serial peripheral interface (SPI) mini-core. SPI in master
537           mode supports up to 50MHz, up to four chip selects, programmable
538           data path from 4 bits to 32 bits and numerous protocol variants.
540           This driver can also be built as a module.  If so, the module
541           will be called spi_qup.
543 config SPI_S3C24XX
544         tristate "Samsung S3C24XX series SPI"
545         depends on ARCH_S3C24XX
546         select SPI_BITBANG
547         help
548           SPI driver for Samsung S3C24XX series ARM SoCs
550 config SPI_S3C24XX_FIQ
551         bool "S3C24XX driver with FIQ pseudo-DMA"
552         depends on SPI_S3C24XX
553         select FIQ
554         help
555           Enable FIQ support for the S3C24XX SPI driver to provide pseudo
556           DMA by using the fast-interrupt request framework, This allows
557           the driver to get DMA-like performance when there are either
558           no free DMA channels, or when doing transfers that required both
559           TX and RX data paths.
561 config SPI_S3C64XX
562         tristate "Samsung S3C64XX series type SPI"
563         depends on (PLAT_SAMSUNG || ARCH_EXYNOS || COMPILE_TEST)
564         help
565           SPI driver for Samsung S3C64XX and newer SoCs.
567 config SPI_SC18IS602
568         tristate "NXP SC18IS602/602B/603 I2C to SPI bridge"
569         depends on I2C
570         help
571           SPI driver for NXP SC18IS602/602B/603 I2C to SPI bridge.
573 config SPI_SH_MSIOF
574         tristate "SuperH MSIOF SPI controller"
575         depends on HAVE_CLK && HAS_DMA
576         depends on ARCH_SHMOBILE || ARCH_RENESAS || COMPILE_TEST
577         help
578           SPI driver for SuperH and SH Mobile MSIOF blocks.
580 config SPI_SH
581         tristate "SuperH SPI controller"
582         depends on SUPERH || COMPILE_TEST
583         help
584           SPI driver for SuperH SPI blocks.
586 config SPI_SH_SCI
587         tristate "SuperH SCI SPI controller"
588         depends on SUPERH
589         select SPI_BITBANG
590         help
591           SPI driver for SuperH SCI blocks.
593 config SPI_SH_HSPI
594         tristate "SuperH HSPI controller"
595         depends on ARCH_RENESAS || COMPILE_TEST
596         help
597           SPI driver for SuperH HSPI blocks.
599 config SPI_SIRF
600         tristate "CSR SiRFprimaII SPI controller"
601         depends on SIRF_DMA
602         select SPI_BITBANG
603         help
604           SPI driver for CSR SiRFprimaII SoCs
606 config SPI_SPRD_ADI
607         tristate "Spreadtrum ADI controller"
608         depends on ARCH_SPRD || COMPILE_TEST
609         depends on HWSPINLOCK || (COMPILE_TEST && !HWSPINLOCK)
610         help
611           ADI driver based on SPI for Spreadtrum SoCs.
613 config SPI_STM32
614         tristate "STMicroelectronics STM32 SPI controller"
615         depends on ARCH_STM32 || COMPILE_TEST
616         help
617           SPI driver for STMicroelectonics STM32 SoCs.
619           STM32 SPI controller supports DMA and PIO modes. When DMA
620           is not available, the driver automatically falls back to
621           PIO mode.
623 config SPI_ST_SSC4
624         tristate "STMicroelectronics SPI SSC-based driver"
625         depends on ARCH_STI || COMPILE_TEST
626         help
627           STMicroelectronics SoCs support for SPI. If you say yes to
628           this option, support will be included for the SSC driven SPI.
630 config SPI_SUN4I
631         tristate "Allwinner A10 SoCs SPI controller"
632         depends on ARCH_SUNXI || COMPILE_TEST
633         help
634           SPI driver for Allwinner sun4i, sun5i and sun7i SoCs
636 config SPI_SUN6I
637         tristate "Allwinner A31 SPI controller"
638         depends on ARCH_SUNXI || COMPILE_TEST
639         depends on RESET_CONTROLLER
640         help
641           This enables using the SPI controller on the Allwinner A31 SoCs.
643 config SPI_MXS
644         tristate "Freescale MXS SPI controller"
645         depends on ARCH_MXS
646         select STMP_DEVICE
647         help
648           SPI driver for Freescale MXS devices.
650 config SPI_TEGRA114
651         tristate "NVIDIA Tegra114 SPI Controller"
652         depends on (ARCH_TEGRA && TEGRA20_APB_DMA) || COMPILE_TEST
653         depends on RESET_CONTROLLER && HAS_DMA
654         help
655           SPI driver for NVIDIA Tegra114 SPI Controller interface. This controller
656           is different than the older SoCs SPI controller and also register interface
657           get changed with this controller.
659 config SPI_TEGRA20_SFLASH
660         tristate "Nvidia Tegra20 Serial flash Controller"
661         depends on ARCH_TEGRA || COMPILE_TEST
662         depends on RESET_CONTROLLER
663         help
664           SPI driver for Nvidia Tegra20 Serial flash Controller interface.
665           The main usecase of this controller is to use spi flash as boot
666           device.
668 config SPI_TEGRA20_SLINK
669         tristate "Nvidia Tegra20/Tegra30 SLINK Controller"
670         depends on (ARCH_TEGRA && TEGRA20_APB_DMA) || COMPILE_TEST
671         depends on RESET_CONTROLLER && HAS_DMA
672         help
673           SPI driver for Nvidia Tegra20/Tegra30 SLINK Controller interface.
675 config SPI_THUNDERX
676         tristate "Cavium ThunderX SPI controller"
677         depends on PCI && 64BIT && (ARM64 || COMPILE_TEST)
678         help
679           SPI host driver for the hardware found on Cavium ThunderX
680           SOCs.
682 config SPI_TOPCLIFF_PCH
683         tristate "Intel EG20T PCH/LAPIS Semicon IOH(ML7213/ML7223/ML7831) SPI"
684         depends on PCI && (X86_32 || MIPS || COMPILE_TEST)
685         help
686           SPI driver for the Topcliff PCH (Platform Controller Hub) SPI bus
687           used in some x86 embedded processors.
689           This driver also supports the ML7213/ML7223/ML7831, a companion chip
690           for the Atom E6xx series and compatible with the Intel EG20T PCH.
692 config SPI_TXX9
693         tristate "Toshiba TXx9 SPI controller"
694         depends on GPIOLIB && (CPU_TX49XX || COMPILE_TEST)
695         help
696           SPI driver for Toshiba TXx9 MIPS SoCs
698 config SPI_XCOMM
699         tristate "Analog Devices AD-FMCOMMS1-EBZ SPI-I2C-bridge driver"
700         depends on I2C
701         help
702           Support for the SPI-I2C bridge found on the Analog Devices
703           AD-FMCOMMS1-EBZ board.
705 config SPI_XILINX
706         tristate "Xilinx SPI controller common module"
707         depends on HAS_IOMEM
708         select SPI_BITBANG
709         help
710           This exposes the SPI controller IP from the Xilinx EDK.
712           See the "OPB Serial Peripheral Interface (SPI) (v1.00e)"
713           Product Specification document (DS464) for hardware details.
715           Or for the DS570, see "XPS Serial Peripheral Interface (SPI) (v2.00b)"
717 config SPI_XLP
718         tristate "Netlogic XLP SPI controller driver"
719         depends on CPU_XLP || ARCH_THUNDER2 || COMPILE_TEST
720         help
721           Enable support for the SPI controller on the Netlogic XLP SoCs.
722           Currently supported XLP variants are XLP8XX, XLP3XX, XLP2XX, XLP9XX
723           and XLP5XX.
725           If you have a Netlogic XLP platform say Y here.
726           If unsure, say N.
728 config SPI_XTENSA_XTFPGA
729         tristate "Xtensa SPI controller for xtfpga"
730         depends on (XTENSA && XTENSA_PLATFORM_XTFPGA) || COMPILE_TEST
731         select SPI_BITBANG
732         help
733           SPI driver for xtfpga SPI master controller.
735           This simple SPI master controller is built into xtfpga bitstreams
736           and is used to control daughterboard audio codec. It always transfers
737           16 bit words in SPI mode 0, automatically asserting CS on transfer
738           start and deasserting on end.
740 config SPI_ZYNQMP_GQSPI
741         tristate "Xilinx ZynqMP GQSPI controller"
742         depends on SPI_MASTER && HAS_DMA
743         help
744           Enables Xilinx GQSPI controller driver for Zynq UltraScale+ MPSoC.
747 # Add new SPI master controllers in alphabetical order above this line
751 # There are lots of SPI device types, with sensors and memory
752 # being probably the most widely used ones.
754 comment "SPI Protocol Masters"
756 config SPI_SPIDEV
757         tristate "User mode SPI device driver support"
758         help
759           This supports user mode SPI protocol drivers.
761           Note that this application programming interface is EXPERIMENTAL
762           and hence SUBJECT TO CHANGE WITHOUT NOTICE while it stabilizes.
764 config SPI_LOOPBACK_TEST
765         tristate "spi loopback test framework support"
766         depends on m
767         help
768           This enables the SPI loopback testing framework driver
770           primarily used for development of spi_master drivers
771           and to detect regressions
773 config SPI_TLE62X0
774         tristate "Infineon TLE62X0 (for power switching)"
775         depends on SYSFS
776         help
777           SPI driver for Infineon TLE62X0 series line driver chips,
778           such as the TLE6220, TLE6230 and TLE6240.  This provides a
779           sysfs interface, with each line presented as a kind of GPIO
780           exposing both switch control and diagnostic feedback.
783 # Add new SPI protocol masters in alphabetical order above this line
786 endif # SPI_MASTER
789 # SLAVE side ... listening to other SPI masters
792 config SPI_SLAVE
793         bool "SPI slave protocol handlers"
794         help
795           If your system has a slave-capable SPI controller, you can enable
796           slave protocol handlers.
798 if SPI_SLAVE
800 config SPI_SLAVE_TIME
801         tristate "SPI slave handler reporting boot up time"
802         help
803           SPI slave handler responding with the time of reception of the last
804           SPI message.
806 config SPI_SLAVE_SYSTEM_CONTROL
807         tristate "SPI slave handler controlling system state"
808         help
809           SPI slave handler to allow remote control of system reboot, power
810           off, halt, and suspend.
812 endif # SPI_SLAVE
814 endif # SPI