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