linux/drivers/spi/Kconfig
<<
>>
Prefs
   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#
   8menuconfig 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
  29if SPI
  30
  31config 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
  42config 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
  52if SPI_MASTER
  53
  54comment "SPI Master Controller Drivers"
  55
  56config SPI_ALTERA
  57        tristate "Altera SPI Controller"
  58        select SPI_BITBANG
  59        help
  60          This is the driver for the Altera SPI Controller.
  61
  62config 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.
  69
  70config 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.
  76
  77config SPI_BFIN
  78        tristate "SPI controller driver for ADI Blackfin5xx"
  79        depends on BLACKFIN
  80        help
  81          This is the SPI controller master driver for Blackfin 5xx processor.
  82
  83config SPI_BFIN_SPORT
  84        tristate "SPI bus via Blackfin SPORT"
  85        depends on BLACKFIN
  86        help
  87          Enable support for a SPI bus via the Blackfin SPORT peripheral.
  88
  89config SPI_AU1550
  90        tristate "Au1550/Au12x0 SPI Controller"
  91        depends on MIPS_ALCHEMY && EXPERIMENTAL
  92        select SPI_BITBANG
  93        help
  94          If you say yes to this option, support will be included for the
  95          Au1550 SPI controller (may also work with Au1200,Au1210,Au1250).
  96
  97config SPI_BITBANG
  98        tristate "Utilities for Bitbanging SPI masters"
  99        help
 100          With a few GPIO pins, your system can bitbang the SPI protocol.
 101          Select this to get SPI support through I/O pins (GPIO, parallel
 102          port, etc).  Or, some systems' SPI master controller drivers use
 103          this code to manage the per-word or per-transfer accesses to the
 104          hardware shift registers.
 105
 106          This is library code, and is automatically selected by drivers that
 107          need it.  You only need to select this explicitly to support driver
 108          modules that aren't part of this kernel tree.
 109
 110config SPI_BUTTERFLY
 111        tristate "Parallel port adapter for AVR Butterfly (DEVELOPMENT)"
 112        depends on PARPORT
 113        select SPI_BITBANG
 114        help
 115          This uses a custom parallel port cable to connect to an AVR
 116          Butterfly <http://www.atmel.com/products/avr/butterfly>, an
 117          inexpensive battery powered microcontroller evaluation board.
 118          This same cable can be used to flash new firmware.
 119
 120config SPI_COLDFIRE_QSPI
 121        tristate "Freescale Coldfire QSPI controller"
 122        depends on (M520x || M523x || M5249 || M527x || M528x || M532x)
 123        help
 124          This enables support for the Coldfire QSPI controller in master
 125          mode.
 126
 127config SPI_DAVINCI
 128        tristate "Texas Instruments DaVinci/DA8x/OMAP-L/AM1x SoC SPI controller"
 129        depends on SPI_MASTER && ARCH_DAVINCI
 130        select SPI_BITBANG
 131        help
 132          SPI master controller for DaVinci/DA8x/OMAP-L/AM1x SPI modules.
 133
 134config SPI_EP93XX
 135        tristate "Cirrus Logic EP93xx SPI controller"
 136        depends on ARCH_EP93XX
 137        help
 138          This enables using the Cirrus EP93xx SPI controller in master
 139          mode.
 140
 141config SPI_GPIO
 142        tristate "GPIO-based bitbanging SPI Master"
 143        depends on GENERIC_GPIO
 144        select SPI_BITBANG
 145        help
 146          This simple GPIO bitbanging SPI master uses the arch-neutral GPIO
 147          interface to manage MOSI, MISO, SCK, and chipselect signals.  SPI
 148          slaves connected to a bus using this driver are configured as usual,
 149          except that the spi_board_info.controller_data holds the GPIO number
 150          for the chipselect used by this controller driver.
 151
 152          Note that this driver often won't achieve even 1 Mbit/sec speeds,
 153          making it unusually slow for SPI.  If your platform can inline
 154          GPIO operations, you should be able to leverage that for better
 155          speed with a custom version of this driver; see the source code.
 156
 157config SPI_IMX
 158        tristate "Freescale i.MX SPI controllers"
 159        depends on ARCH_MXC
 160        select SPI_BITBANG
 161        default m if IMX_HAVE_PLATFORM_SPI_IMX
 162        help
 163          This enables using the Freescale i.MX SPI controllers in master
 164          mode.
 165
 166config SPI_LM70_LLP
 167        tristate "Parallel port adapter for LM70 eval board (DEVELOPMENT)"
 168        depends on PARPORT && EXPERIMENTAL
 169        select SPI_BITBANG
 170        help
 171          This driver supports the NS LM70 LLP Evaluation Board,
 172          which interfaces to an LM70 temperature sensor using
 173          a parallel port.
 174
 175config SPI_MPC52xx
 176        tristate "Freescale MPC52xx SPI (non-PSC) controller support"
 177        depends on PPC_MPC52xx && SPI
 178        select SPI_MASTER_OF
 179        help
 180          This drivers supports the MPC52xx SPI controller in master SPI
 181          mode.
 182
 183config SPI_MPC52xx_PSC
 184        tristate "Freescale MPC52xx PSC SPI controller"
 185        depends on PPC_MPC52xx && EXPERIMENTAL
 186        help
 187          This enables using the Freescale MPC52xx Programmable Serial
 188          Controller in master SPI mode.
 189
 190config SPI_MPC512x_PSC
 191        tristate "Freescale MPC512x PSC SPI controller"
 192        depends on SPI_MASTER && PPC_MPC512x
 193        help
 194          This enables using the Freescale MPC5121 Programmable Serial
 195          Controller in SPI master mode.
 196
 197config SPI_FSL_LIB
 198        tristate
 199        depends on FSL_SOC
 200
 201config SPI_FSL_SPI
 202        bool "Freescale SPI controller"
 203        depends on FSL_SOC
 204        select SPI_FSL_LIB
 205        help
 206          This enables using the Freescale SPI controllers in master mode.
 207          MPC83xx platform uses the controller in cpu mode or CPM/QE mode.
 208          MPC8569 uses the controller in QE mode, MPC8610 in cpu mode.
 209
 210config SPI_FSL_ESPI
 211        bool "Freescale eSPI controller"
 212        depends on FSL_SOC
 213        select SPI_FSL_LIB
 214        help
 215          This enables using the Freescale eSPI controllers in master mode.
 216          From MPC8536, 85xx platform uses the controller, and all P10xx,
 217          P20xx, P30xx,P40xx, P50xx uses this controller.
 218
 219config SPI_OC_TINY
 220        tristate "OpenCores tiny SPI"
 221        depends on GENERIC_GPIO
 222        select SPI_BITBANG
 223        help
 224          This is the driver for OpenCores tiny SPI master controller.
 225
 226config SPI_OMAP_UWIRE
 227        tristate "OMAP1 MicroWire"
 228        depends on ARCH_OMAP1
 229        select SPI_BITBANG
 230        help
 231          This hooks up to the MicroWire controller on OMAP1 chips.
 232
 233config SPI_OMAP24XX
 234        tristate "McSPI driver for OMAP"
 235        depends on ARCH_OMAP2PLUS
 236        help
 237          SPI master controller for OMAP24XX and later Multichannel SPI
 238          (McSPI) modules.
 239
 240config SPI_OMAP_100K
 241        tristate "OMAP SPI 100K"
 242        depends on SPI_MASTER && (ARCH_OMAP850 || ARCH_OMAP730)
 243        help
 244          OMAP SPI 100K master controller for omap7xx boards.
 245
 246config SPI_ORION
 247        tristate "Orion SPI master (EXPERIMENTAL)"
 248        depends on PLAT_ORION && EXPERIMENTAL
 249        help
 250          This enables using the SPI master controller on the Orion chips.
 251
 252config SPI_PL022
 253        tristate "ARM AMBA PL022 SSP controller"
 254        depends on ARM_AMBA
 255        default y if MACH_U300
 256        default y if ARCH_REALVIEW
 257        default y if INTEGRATOR_IMPD1
 258        default y if ARCH_VERSATILE
 259        help
 260          This selects the ARM(R) AMBA(R) PrimeCell PL022 SSP
 261          controller. If you have an embedded system with an AMBA(R)
 262          bus and a PL022 controller, say Y or M here.
 263
 264config SPI_PPC4xx
 265        tristate "PPC4xx SPI Controller"
 266        depends on PPC32 && 4xx && SPI_MASTER
 267        select SPI_BITBANG
 268        help
 269          This selects a driver for the PPC4xx SPI Controller.
 270
 271config SPI_PXA2XX
 272        tristate "PXA2xx SSP SPI master"
 273        depends on (ARCH_PXA || (X86_32 && PCI)) && EXPERIMENTAL
 274        select PXA_SSP if ARCH_PXA
 275        help
 276          This enables using a PXA2xx or Sodaville SSP port as a SPI master
 277          controller. The driver can be configured to use any SSP port and
 278          additional documentation can be found a Documentation/spi/pxa2xx.
 279
 280config SPI_PXA2XX_PCI
 281        def_bool SPI_PXA2XX && X86_32 && PCI
 282
 283config SPI_S3C24XX
 284        tristate "Samsung S3C24XX series SPI"
 285        depends on ARCH_S3C2410 && EXPERIMENTAL
 286        select SPI_BITBANG
 287        help
 288          SPI driver for Samsung S3C24XX series ARM SoCs
 289
 290config SPI_S3C24XX_FIQ
 291        bool "S3C24XX driver with FIQ pseudo-DMA"
 292        depends on SPI_S3C24XX
 293        select FIQ
 294        help
 295          Enable FIQ support for the S3C24XX SPI driver to provide pseudo
 296          DMA by using the fast-interrupt request framework, This allows
 297          the driver to get DMA-like performance when there are either
 298          no free DMA channels, or when doing transfers that required both
 299          TX and RX data paths.
 300
 301config SPI_S3C64XX
 302        tristate "Samsung S3C64XX series type SPI"
 303        depends on (ARCH_S3C64XX || ARCH_S5P64X0)
 304        select S3C64XX_DMA if ARCH_S3C64XX
 305        help
 306          SPI driver for Samsung S3C64XX and newer SoCs.
 307
 308config SPI_SH_MSIOF
 309        tristate "SuperH MSIOF SPI controller"
 310        depends on SUPERH && HAVE_CLK
 311        select SPI_BITBANG
 312        help
 313          SPI driver for SuperH MSIOF blocks.
 314
 315config SPI_SH
 316        tristate "SuperH SPI controller"
 317        depends on SUPERH
 318        help
 319          SPI driver for SuperH SPI blocks.
 320
 321config SPI_SH_SCI
 322        tristate "SuperH SCI SPI controller"
 323        depends on SUPERH
 324        select SPI_BITBANG
 325        help
 326          SPI driver for SuperH SCI blocks.
 327
 328config SPI_STMP3XXX
 329        tristate "Freescale STMP37xx/378x SPI/SSP controller"
 330        depends on ARCH_STMP3XXX && SPI_MASTER
 331        help
 332          SPI driver for Freescale STMP37xx/378x SoC SSP interface
 333
 334config SPI_TEGRA
 335        tristate "Nvidia Tegra SPI controller"
 336        depends on ARCH_TEGRA
 337        select TEGRA_SYSTEM_DMA
 338        help
 339          SPI driver for NVidia Tegra SoCs
 340
 341config SPI_TI_SSP
 342        tristate "TI Sequencer Serial Port - SPI Support"
 343        depends on MFD_TI_SSP
 344        help
 345          This selects an SPI master implementation using a TI sequencer
 346          serial port.
 347
 348config SPI_TOPCLIFF_PCH
 349        tristate "Intel EG20T PCH/OKI SEMICONDUCTOR ML7213 IOH SPI controller"
 350        depends on PCI
 351        help
 352          SPI driver for the Topcliff PCH (Platform Controller Hub) SPI bus
 353          used in some x86 embedded processors.
 354
 355          This driver also supports the ML7213, a companion chip for the
 356          Atom E6xx series and compatible with the Intel EG20T PCH.
 357
 358config SPI_TXX9
 359        tristate "Toshiba TXx9 SPI controller"
 360        depends on GENERIC_GPIO && CPU_TX49XX
 361        help
 362          SPI driver for Toshiba TXx9 MIPS SoCs
 363
 364config SPI_XILINX
 365        tristate "Xilinx SPI controller common module"
 366        depends on HAS_IOMEM && EXPERIMENTAL
 367        select SPI_BITBANG
 368        help
 369          This exposes the SPI controller IP from the Xilinx EDK.
 370
 371          See the "OPB Serial Peripheral Interface (SPI) (v1.00e)"
 372          Product Specification document (DS464) for hardware details.
 373
 374          Or for the DS570, see "XPS Serial Peripheral Interface (SPI) (v2.00b)"
 375
 376config SPI_NUC900
 377        tristate "Nuvoton NUC900 series SPI"
 378        depends on ARCH_W90X900 && EXPERIMENTAL
 379        select SPI_BITBANG
 380        help
 381          SPI driver for Nuvoton NUC900 series ARM SoCs
 382
 383#
 384# Add new SPI master controllers in alphabetical order above this line
 385#
 386
 387config SPI_DESIGNWARE
 388        tristate "DesignWare SPI controller core support"
 389        depends on SPI_MASTER
 390        help
 391          general driver for SPI controller core from DesignWare
 392
 393config SPI_DW_PCI
 394        tristate "PCI interface driver for DW SPI core"
 395        depends on SPI_DESIGNWARE && PCI
 396
 397config SPI_DW_MID_DMA
 398        bool "DMA support for DW SPI controller on Intel Moorestown platform"
 399        depends on SPI_DW_PCI && INTEL_MID_DMAC
 400
 401config SPI_DW_MMIO
 402        tristate "Memory-mapped io interface driver for DW SPI core"
 403        depends on SPI_DESIGNWARE && HAVE_CLK
 404
 405#
 406# There are lots of SPI device types, with sensors and memory
 407# being probably the most widely used ones.
 408#
 409comment "SPI Protocol Masters"
 410
 411config SPI_SPIDEV
 412        tristate "User mode SPI device driver support"
 413        depends on EXPERIMENTAL
 414        help
 415          This supports user mode SPI protocol drivers.
 416
 417          Note that this application programming interface is EXPERIMENTAL
 418          and hence SUBJECT TO CHANGE WITHOUT NOTICE while it stabilizes.
 419
 420config SPI_TLE62X0
 421        tristate "Infineon TLE62X0 (for power switching)"
 422        depends on SYSFS
 423        help
 424          SPI driver for Infineon TLE62X0 series line driver chips,
 425          such as the TLE6220, TLE6230 and TLE6240.  This provides a
 426          sysfs interface, with each line presented as a kind of GPIO
 427          exposing both switch control and diagnostic feedback.
 428
 429#
 430# Add new SPI protocol masters in alphabetical order above this line
 431#
 432
 433endif # SPI_MASTER
 434
 435# (slave support would go here)
 436
 437endif # SPI
 438
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.