spi/spi-fsl-spi: Add support for Aeroflex Gaisler GRLIB cores normally running on...
[linux-2.6/btrfs-unstable.git] / drivers / spi / Kconfig
blob2946ab4736f6d3e04405b45b8ecb1a36267ddf25
2 # SPI driver configuration
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.
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.
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.
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.
29 if SPI
31 config SPI_DEBUG
32         boolean "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.
39 # MASTER side ... talking to discrete SPI slave chips including microcontrollers
42 config SPI_MASTER
43 #       boolean "SPI Master Support"
44         boolean
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.
52 if SPI_MASTER
54 comment "SPI Master Controller Drivers"
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.
62 config SPI_ATH79
63         tristate "Atheros AR71XX/AR724X/AR913X SPI controller driver"
64         depends on ATH79 && GENERIC_GPIO
65         select SPI_BITBANG
66         help
67           This enables support for the SPI controller present on the
68           Atheros AR71XX/AR724X/AR913X SoCs.
70 config SPI_ATMEL
71         tristate "Atmel SPI Controller"
72         depends on (ARCH_AT91 || AVR32)
73         help
74           This selects a driver for the Atmel SPI Controller, present on
75           many AT32 (AVR32) and AT91 (ARM) chips.
77 config SPI_BCM2835
78         tristate "BCM2835 SPI controller"
79         depends on ARCH_BCM2835
80         help
81           This selects a driver for the Broadcom BCM2835 SPI master.
83           The BCM2835 contains two types of SPI master controller; the
84           "universal SPI master", and the regular SPI controller. This driver
85           is for the regular SPI controller. Slave mode operation is not also
86           not supported.
88 config SPI_BFIN5XX
89         tristate "SPI controller driver for ADI Blackfin5xx"
90         depends on BLACKFIN
91         help
92           This is the SPI controller master driver for Blackfin 5xx processor.
94 config SPI_BFIN_SPORT
95         tristate "SPI bus via Blackfin SPORT"
96         depends on BLACKFIN
97         help
98           Enable support for a SPI bus via the Blackfin SPORT peripheral.
100 config SPI_AU1550
101         tristate "Au1550/Au1200/Au1300 SPI Controller"
102         depends on MIPS_ALCHEMY
103         select SPI_BITBANG
104         help
105           If you say yes to this option, support will be included for the
106           PSC SPI controller found on Au1550, Au1200 and Au1300 series.
108 config SPI_BCM63XX
109         tristate "Broadcom BCM63xx SPI controller"
110         depends on BCM63XX
111         help
112           Enable support for the SPI controller on the Broadcom BCM63xx SoCs.
114 config SPI_BITBANG
115         tristate "Utilities for Bitbanging SPI masters"
116         help
117           With a few GPIO pins, your system can bitbang the SPI protocol.
118           Select this to get SPI support through I/O pins (GPIO, parallel
119           port, etc).  Or, some systems' SPI master controller drivers use
120           this code to manage the per-word or per-transfer accesses to the
121           hardware shift registers.
123           This is library code, and is automatically selected by drivers that
124           need it.  You only need to select this explicitly to support driver
125           modules that aren't part of this kernel tree.
127 config SPI_BUTTERFLY
128         tristate "Parallel port adapter for AVR Butterfly (DEVELOPMENT)"
129         depends on PARPORT
130         select SPI_BITBANG
131         help
132           This uses a custom parallel port cable to connect to an AVR
133           Butterfly <http://www.atmel.com/products/avr/butterfly>, an
134           inexpensive battery powered microcontroller evaluation board.
135           This same cable can be used to flash new firmware.
137 config SPI_CLPS711X
138         tristate "CLPS711X host SPI controller"
139         depends on ARCH_CLPS711X
140         help
141           This enables dedicated general purpose SPI/Microwire1-compatible
142           master mode interface (SSI1) for CLPS711X-based CPUs.
144 config SPI_COLDFIRE_QSPI
145         tristate "Freescale Coldfire QSPI controller"
146         depends on (M520x || M523x || M5249 || M525x || M527x || M528x || M532x)
147         help
148           This enables support for the Coldfire QSPI controller in master
149           mode.
151 config SPI_DAVINCI
152         tristate "Texas Instruments DaVinci/DA8x/OMAP-L/AM1x SoC SPI controller"
153         depends on ARCH_DAVINCI
154         select SPI_BITBANG
155         select TI_EDMA
156         help
157           SPI master controller for DaVinci/DA8x/OMAP-L/AM1x SPI modules.
159 config SPI_EP93XX
160         tristate "Cirrus Logic EP93xx SPI controller"
161         depends on ARCH_EP93XX
162         help
163           This enables using the Cirrus EP93xx SPI controller in master
164           mode.
166 config SPI_FALCON
167         tristate "Falcon SPI controller support"
168         depends on SOC_FALCON
169         help
170           The external bus unit (EBU) found on the FALC-ON SoC has SPI
171           emulation that is designed for serial flash access. This driver
172           has only been tested with m25p80 type chips. The hardware has no
173           support for other types of SPI peripherals.
175 config SPI_GPIO
176         tristate "GPIO-based bitbanging SPI Master"
177         depends on GENERIC_GPIO
178         select SPI_BITBANG
179         help
180           This simple GPIO bitbanging SPI master uses the arch-neutral GPIO
181           interface to manage MOSI, MISO, SCK, and chipselect signals.  SPI
182           slaves connected to a bus using this driver are configured as usual,
183           except that the spi_board_info.controller_data holds the GPIO number
184           for the chipselect used by this controller driver.
186           Note that this driver often won't achieve even 1 Mbit/sec speeds,
187           making it unusually slow for SPI.  If your platform can inline
188           GPIO operations, you should be able to leverage that for better
189           speed with a custom version of this driver; see the source code.
191 config SPI_IMX
192         tristate "Freescale i.MX SPI controllers"
193         depends on ARCH_MXC
194         select SPI_BITBANG
195         default m if IMX_HAVE_PLATFORM_SPI_IMX
196         help
197           This enables using the Freescale i.MX SPI controllers in master
198           mode.
200 config SPI_LM70_LLP
201         tristate "Parallel port adapter for LM70 eval board (DEVELOPMENT)"
202         depends on PARPORT
203         select SPI_BITBANG
204         help
205           This driver supports the NS LM70 LLP Evaluation Board,
206           which interfaces to an LM70 temperature sensor using
207           a parallel port.
209 config SPI_MPC52xx
210         tristate "Freescale MPC52xx SPI (non-PSC) controller support"
211         depends on PPC_MPC52xx
212         help
213           This drivers supports the MPC52xx SPI controller in master SPI
214           mode.
216 config SPI_MPC52xx_PSC
217         tristate "Freescale MPC52xx PSC SPI controller"
218         depends on PPC_MPC52xx
219         help
220           This enables using the Freescale MPC52xx Programmable Serial
221           Controller in master SPI mode.
223 config SPI_MPC512x_PSC
224         tristate "Freescale MPC512x PSC SPI controller"
225         depends on PPC_MPC512x
226         help
227           This enables using the Freescale MPC5121 Programmable Serial
228           Controller in SPI master mode.
230 config SPI_FSL_LIB
231         tristate
232         depends on OF
234 config SPI_FSL_CPM
235         tristate
236         depends on FSL_SOC
238 config SPI_FSL_SPI
239         bool "Freescale SPI controller and Aeroflex Gaisler GRLIB SPI controller"
240         depends on OF
241         select SPI_FSL_LIB
242         select SPI_FSL_CPM if FSL_SOC
243         help
244           This enables using the Freescale SPI controllers in master mode.
245           MPC83xx platform uses the controller in cpu mode or CPM/QE mode.
246           MPC8569 uses the controller in QE mode, MPC8610 in cpu mode.
247           This also enables using the Aeroflex Gaisler GRLIB SPI controller in
248           master mode.
250 config SPI_FSL_ESPI
251         bool "Freescale eSPI controller"
252         depends on FSL_SOC
253         select SPI_FSL_LIB
254         help
255           This enables using the Freescale eSPI controllers in master mode.
256           From MPC8536, 85xx platform uses the controller, and all P10xx,
257           P20xx, P30xx,P40xx, P50xx uses this controller.
259 config SPI_OC_TINY
260         tristate "OpenCores tiny SPI"
261         depends on GENERIC_GPIO
262         select SPI_BITBANG
263         help
264           This is the driver for OpenCores tiny SPI master controller.
266 config SPI_OCTEON
267         tristate "Cavium OCTEON SPI controller"
268         depends on CPU_CAVIUM_OCTEON
269         help
270           SPI host driver for the hardware found on some Cavium OCTEON
271           SOCs.
273 config SPI_OMAP_UWIRE
274         tristate "OMAP1 MicroWire"
275         depends on ARCH_OMAP1
276         select SPI_BITBANG
277         help
278           This hooks up to the MicroWire controller on OMAP1 chips.
280 config SPI_OMAP24XX
281         tristate "McSPI driver for OMAP"
282         depends on ARCH_OMAP2PLUS
283         help
284           SPI master controller for OMAP24XX and later Multichannel SPI
285           (McSPI) modules.
287 config SPI_OMAP_100K
288         tristate "OMAP SPI 100K"
289         depends on ARCH_OMAP850 || ARCH_OMAP730
290         help
291           OMAP SPI 100K master controller for omap7xx boards.
293 config SPI_ORION
294         tristate "Orion SPI master"
295         depends on PLAT_ORION
296         help
297           This enables using the SPI master controller on the Orion chips.
299 config SPI_PL022
300         tristate "ARM AMBA PL022 SSP controller"
301         depends on ARM_AMBA
302         default y if MACH_U300
303         default y if ARCH_REALVIEW
304         default y if INTEGRATOR_IMPD1
305         default y if ARCH_VERSATILE
306         help
307           This selects the ARM(R) AMBA(R) PrimeCell PL022 SSP
308           controller. If you have an embedded system with an AMBA(R)
309           bus and a PL022 controller, say Y or M here.
311 config SPI_PPC4xx
312         tristate "PPC4xx SPI Controller"
313         depends on PPC32 && 4xx
314         select SPI_BITBANG
315         help
316           This selects a driver for the PPC4xx SPI Controller.
318 config SPI_PXA2XX_PXADMA
319         bool "PXA2xx SSP legacy PXA DMA API support"
320         depends on SPI_PXA2XX && ARCH_PXA
321         help
322           Enable PXA private legacy DMA API support. Note that this is
323           deprecated in favor of generic DMA engine API.
325 config SPI_PXA2XX_DMA
326         def_bool y
327         depends on SPI_PXA2XX && !SPI_PXA2XX_PXADMA
329 config SPI_PXA2XX
330         tristate "PXA2xx SSP SPI master"
331         depends on ARCH_PXA || PCI || ACPI
332         select PXA_SSP if ARCH_PXA
333         help
334           This enables using a PXA2xx or Sodaville SSP port as a SPI master
335           controller. The driver can be configured to use any SSP port and
336           additional documentation can be found a Documentation/spi/pxa2xx.
338 config SPI_PXA2XX_PCI
339         def_tristate SPI_PXA2XX && PCI
341 config SPI_RSPI
342         tristate "Renesas RSPI controller"
343         depends on SUPERH
344         help
345           SPI driver for Renesas RSPI blocks.
347 config SPI_S3C24XX
348         tristate "Samsung S3C24XX series SPI"
349         depends on ARCH_S3C24XX
350         select SPI_BITBANG
351         help
352           SPI driver for Samsung S3C24XX series ARM SoCs
354 config SPI_S3C24XX_FIQ
355         bool "S3C24XX driver with FIQ pseudo-DMA"
356         depends on SPI_S3C24XX
357         select FIQ
358         help
359           Enable FIQ support for the S3C24XX SPI driver to provide pseudo
360           DMA by using the fast-interrupt request framework, This allows
361           the driver to get DMA-like performance when there are either
362           no free DMA channels, or when doing transfers that required both
363           TX and RX data paths.
365 config SPI_S3C64XX
366         tristate "Samsung S3C64XX series type SPI"
367         depends on (ARCH_S3C24XX || ARCH_S3C64XX || ARCH_S5P64X0 || ARCH_EXYNOS)
368         select S3C64XX_DMA if ARCH_S3C64XX
369         help
370           SPI driver for Samsung S3C64XX and newer SoCs.
372 config SPI_SC18IS602
373         tristate "NXP SC18IS602/602B/603 I2C to SPI bridge"
374         depends on I2C
375         help
376           SPI driver for NXP SC18IS602/602B/603 I2C to SPI bridge.
378 config SPI_SH_MSIOF
379         tristate "SuperH MSIOF SPI controller"
380         depends on (SUPERH || ARCH_SHMOBILE) && HAVE_CLK
381         select SPI_BITBANG
382         help
383           SPI driver for SuperH and SH Mobile MSIOF blocks.
385 config SPI_SH
386         tristate "SuperH SPI controller"
387         depends on SUPERH
388         help
389           SPI driver for SuperH SPI blocks.
391 config SPI_SH_SCI
392         tristate "SuperH SCI SPI controller"
393         depends on SUPERH
394         select SPI_BITBANG
395         help
396           SPI driver for SuperH SCI blocks.
398 config SPI_SH_HSPI
399         tristate "SuperH HSPI controller"
400         depends on ARCH_SHMOBILE
401         help
402           SPI driver for SuperH HSPI blocks.
404 config SPI_SIRF
405         tristate "CSR SiRFprimaII SPI controller"
406         depends on ARCH_PRIMA2
407         select SPI_BITBANG
408         help
409           SPI driver for CSR SiRFprimaII SoCs
411 config SPI_MXS
412         tristate "Freescale MXS SPI controller"
413         depends on ARCH_MXS
414         select STMP_DEVICE
415         help
416           SPI driver for Freescale MXS devices.
418 config SPI_TEGRA20_SFLASH
419         tristate "Nvidia Tegra20 Serial flash Controller"
420         depends on ARCH_TEGRA
421         help
422           SPI driver for Nvidia Tegra20 Serial flash Controller interface.
423           The main usecase of this controller is to use spi flash as boot
424           device.
426 config SPI_TEGRA20_SLINK
427         tristate "Nvidia Tegra20/Tegra30 SLINK Controller"
428         depends on ARCH_TEGRA && TEGRA20_APB_DMA
429         help
430           SPI driver for Nvidia Tegra20/Tegra30 SLINK Controller interface.
432 config SPI_TI_SSP
433         tristate "TI Sequencer Serial Port - SPI Support"
434         depends on MFD_TI_SSP
435         help
436           This selects an SPI master implementation using a TI sequencer
437           serial port.
439 config SPI_TOPCLIFF_PCH
440         tristate "Intel EG20T PCH/LAPIS Semicon IOH(ML7213/ML7223/ML7831) SPI"
441         depends on PCI
442         help
443           SPI driver for the Topcliff PCH (Platform Controller Hub) SPI bus
444           used in some x86 embedded processors.
446           This driver also supports the ML7213/ML7223/ML7831, a companion chip
447           for the Atom E6xx series and compatible with the Intel EG20T PCH.
449 config SPI_TXX9
450         tristate "Toshiba TXx9 SPI controller"
451         depends on GENERIC_GPIO && CPU_TX49XX
452         help
453           SPI driver for Toshiba TXx9 MIPS SoCs
455 config SPI_XCOMM
456         tristate "Analog Devices AD-FMCOMMS1-EBZ SPI-I2C-bridge driver"
457         depends on I2C
458         help
459           Support for the SPI-I2C bridge found on the Analog Devices
460           AD-FMCOMMS1-EBZ board.
462 config SPI_XILINX
463         tristate "Xilinx SPI controller common module"
464         depends on HAS_IOMEM
465         select SPI_BITBANG
466         help
467           This exposes the SPI controller IP from the Xilinx EDK.
469           See the "OPB Serial Peripheral Interface (SPI) (v1.00e)"
470           Product Specification document (DS464) for hardware details.
472           Or for the DS570, see "XPS Serial Peripheral Interface (SPI) (v2.00b)"
474 config SPI_NUC900
475         tristate "Nuvoton NUC900 series SPI"
476         depends on ARCH_W90X900
477         select SPI_BITBANG
478         help
479           SPI driver for Nuvoton NUC900 series ARM SoCs
482 # Add new SPI master controllers in alphabetical order above this line
485 config SPI_DESIGNWARE
486         tristate "DesignWare SPI controller core support"
487         help
488           general driver for SPI controller core from DesignWare
490 config SPI_DW_PCI
491         tristate "PCI interface driver for DW SPI core"
492         depends on SPI_DESIGNWARE && PCI
494 config SPI_DW_MID_DMA
495         bool "DMA support for DW SPI controller on Intel Moorestown platform"
496         depends on SPI_DW_PCI && INTEL_MID_DMAC
498 config SPI_DW_MMIO
499         tristate "Memory-mapped io interface driver for DW SPI core"
500         depends on SPI_DESIGNWARE && HAVE_CLK
503 # There are lots of SPI device types, with sensors and memory
504 # being probably the most widely used ones.
506 comment "SPI Protocol Masters"
508 config SPI_SPIDEV
509         tristate "User mode SPI device driver support"
510         help
511           This supports user mode SPI protocol drivers.
513           Note that this application programming interface is EXPERIMENTAL
514           and hence SUBJECT TO CHANGE WITHOUT NOTICE while it stabilizes.
516 config SPI_TLE62X0
517         tristate "Infineon TLE62X0 (for power switching)"
518         depends on SYSFS
519         help
520           SPI driver for Infineon TLE62X0 series line driver chips,
521           such as the TLE6220, TLE6230 and TLE6240.  This provides a
522           sysfs interface, with each line presented as a kind of GPIO
523           exposing both switch control and diagnostic feedback.
526 # Add new SPI protocol masters in alphabetical order above this line
529 endif # SPI_MASTER
531 # (slave support would go here)
533 endif # SPI