[PATCH] spi: simple SPI framework
This is the core of a small SPI framework, implementing the model of a
queue of messages which complete asynchronously (with thin synchronous
wrappers on top).
- It's still less than 2KB of ".text" (ARM). If there's got to be a
mid-layer for something so simple, that's the right size budget. :)
- The guts use board-specific SPI device tables to build the driver
model tree. (Hardware probing is rarely an option.)
- This version of Kconfig includes no drivers. At this writing there
are two known master controller drivers (PXA/SSP, OMAP MicroWire)
and three protocol drivers (CS8415a, ADS7846, DataFlash) with LKML
mentions of other drivers in development.
- No userspace API. There are several implementations to compare.
Implement them like any other driver, and bind them with sysfs.
The changes from last version posted to LKML (on 11-Nov-2005) are minor,
and include:
- One bugfix (removes a FIXME), with the visible effect of making device
names be "spiB.C" where B is the bus number and C is the chipselect.
- The "caller provides DMA mappings" mechanism now has kerneldoc, for
DMA drivers that want to be fancy.
- Hey, the framework init can be subsys_init. Even though board init
logic fires earlier, at arch_init ... since the framework init is
for driver support, and the board init support uses static init.
- Various additional spec/doc clarifications based on discussions
with other folk. It adds a brief "thank you" at the end, for folk
who've helped nudge this framework into existence.
As I've said before, I think that "protocol tweaking" is the main support
that this driver framework will need to evolve.
From: Mark Underwood <basicmark@yahoo.com>
Update the SPI framework to remove a potential priority inversion case by
reverting to kmalloc if the pre-allocated DMA-safe buffer isn't available.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2006-01-09 05:34:19 +08:00
|
|
|
#
|
|
|
|
# SPI driver configuration
|
|
|
|
#
|
|
|
|
# NOTE: the reason this doesn't show SPI slave support is mostly that
|
|
|
|
# nobody's needed a slave side API yet. The master-role API is not
|
|
|
|
# fully appropriate there, so it'd need some thought to do well.
|
|
|
|
#
|
2008-04-28 17:14:16 +08:00
|
|
|
menuconfig SPI
|
[PATCH] spi: simple SPI framework
This is the core of a small SPI framework, implementing the model of a
queue of messages which complete asynchronously (with thin synchronous
wrappers on top).
- It's still less than 2KB of ".text" (ARM). If there's got to be a
mid-layer for something so simple, that's the right size budget. :)
- The guts use board-specific SPI device tables to build the driver
model tree. (Hardware probing is rarely an option.)
- This version of Kconfig includes no drivers. At this writing there
are two known master controller drivers (PXA/SSP, OMAP MicroWire)
and three protocol drivers (CS8415a, ADS7846, DataFlash) with LKML
mentions of other drivers in development.
- No userspace API. There are several implementations to compare.
Implement them like any other driver, and bind them with sysfs.
The changes from last version posted to LKML (on 11-Nov-2005) are minor,
and include:
- One bugfix (removes a FIXME), with the visible effect of making device
names be "spiB.C" where B is the bus number and C is the chipselect.
- The "caller provides DMA mappings" mechanism now has kerneldoc, for
DMA drivers that want to be fancy.
- Hey, the framework init can be subsys_init. Even though board init
logic fires earlier, at arch_init ... since the framework init is
for driver support, and the board init support uses static init.
- Various additional spec/doc clarifications based on discussions
with other folk. It adds a brief "thank you" at the end, for folk
who've helped nudge this framework into existence.
As I've said before, I think that "protocol tweaking" is the main support
that this driver framework will need to evolve.
From: Mark Underwood <basicmark@yahoo.com>
Update the SPI framework to remove a potential priority inversion case by
reverting to kmalloc if the pre-allocated DMA-safe buffer isn't available.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2006-01-09 05:34:19 +08:00
|
|
|
bool "SPI support"
|
2008-04-28 17:14:16 +08:00
|
|
|
depends on HAS_IOMEM
|
[PATCH] spi: simple SPI framework
This is the core of a small SPI framework, implementing the model of a
queue of messages which complete asynchronously (with thin synchronous
wrappers on top).
- It's still less than 2KB of ".text" (ARM). If there's got to be a
mid-layer for something so simple, that's the right size budget. :)
- The guts use board-specific SPI device tables to build the driver
model tree. (Hardware probing is rarely an option.)
- This version of Kconfig includes no drivers. At this writing there
are two known master controller drivers (PXA/SSP, OMAP MicroWire)
and three protocol drivers (CS8415a, ADS7846, DataFlash) with LKML
mentions of other drivers in development.
- No userspace API. There are several implementations to compare.
Implement them like any other driver, and bind them with sysfs.
The changes from last version posted to LKML (on 11-Nov-2005) are minor,
and include:
- One bugfix (removes a FIXME), with the visible effect of making device
names be "spiB.C" where B is the bus number and C is the chipselect.
- The "caller provides DMA mappings" mechanism now has kerneldoc, for
DMA drivers that want to be fancy.
- Hey, the framework init can be subsys_init. Even though board init
logic fires earlier, at arch_init ... since the framework init is
for driver support, and the board init support uses static init.
- Various additional spec/doc clarifications based on discussions
with other folk. It adds a brief "thank you" at the end, for folk
who've helped nudge this framework into existence.
As I've said before, I think that "protocol tweaking" is the main support
that this driver framework will need to evolve.
From: Mark Underwood <basicmark@yahoo.com>
Update the SPI framework to remove a potential priority inversion case by
reverting to kmalloc if the pre-allocated DMA-safe buffer isn't available.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2006-01-09 05:34:19 +08:00
|
|
|
help
|
|
|
|
The "Serial Peripheral Interface" is a low level synchronous
|
|
|
|
protocol. Chips that support SPI can have data transfer rates
|
|
|
|
up to several tens of Mbit/sec. Chips are addressed with a
|
|
|
|
controller and a chipselect. Most SPI slaves don't support
|
|
|
|
dynamic device discovery; some are even write-only or read-only.
|
|
|
|
|
2006-11-30 12:22:59 +08:00
|
|
|
SPI is widely used by microcontrollers to talk with sensors,
|
[PATCH] spi: simple SPI framework
This is the core of a small SPI framework, implementing the model of a
queue of messages which complete asynchronously (with thin synchronous
wrappers on top).
- It's still less than 2KB of ".text" (ARM). If there's got to be a
mid-layer for something so simple, that's the right size budget. :)
- The guts use board-specific SPI device tables to build the driver
model tree. (Hardware probing is rarely an option.)
- This version of Kconfig includes no drivers. At this writing there
are two known master controller drivers (PXA/SSP, OMAP MicroWire)
and three protocol drivers (CS8415a, ADS7846, DataFlash) with LKML
mentions of other drivers in development.
- No userspace API. There are several implementations to compare.
Implement them like any other driver, and bind them with sysfs.
The changes from last version posted to LKML (on 11-Nov-2005) are minor,
and include:
- One bugfix (removes a FIXME), with the visible effect of making device
names be "spiB.C" where B is the bus number and C is the chipselect.
- The "caller provides DMA mappings" mechanism now has kerneldoc, for
DMA drivers that want to be fancy.
- Hey, the framework init can be subsys_init. Even though board init
logic fires earlier, at arch_init ... since the framework init is
for driver support, and the board init support uses static init.
- Various additional spec/doc clarifications based on discussions
with other folk. It adds a brief "thank you" at the end, for folk
who've helped nudge this framework into existence.
As I've said before, I think that "protocol tweaking" is the main support
that this driver framework will need to evolve.
From: Mark Underwood <basicmark@yahoo.com>
Update the SPI framework to remove a potential priority inversion case by
reverting to kmalloc if the pre-allocated DMA-safe buffer isn't available.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2006-01-09 05:34:19 +08:00
|
|
|
eeprom and flash memory, codecs and various other controller
|
|
|
|
chips, analog to digital (and d-to-a) converters, and more.
|
|
|
|
MMC and SD cards can be accessed using SPI protocol; and for
|
|
|
|
DataFlash cards used in MMC sockets, SPI must always be used.
|
|
|
|
|
|
|
|
SPI is one of a family of similar protocols using a four wire
|
|
|
|
interface (select, clock, data in, data out) including Microwire
|
|
|
|
(half duplex), SSP, SSI, and PSP. This driver framework should
|
|
|
|
work with most such devices and controllers.
|
|
|
|
|
2008-04-28 17:14:16 +08:00
|
|
|
if SPI
|
|
|
|
|
[PATCH] spi: simple SPI framework
This is the core of a small SPI framework, implementing the model of a
queue of messages which complete asynchronously (with thin synchronous
wrappers on top).
- It's still less than 2KB of ".text" (ARM). If there's got to be a
mid-layer for something so simple, that's the right size budget. :)
- The guts use board-specific SPI device tables to build the driver
model tree. (Hardware probing is rarely an option.)
- This version of Kconfig includes no drivers. At this writing there
are two known master controller drivers (PXA/SSP, OMAP MicroWire)
and three protocol drivers (CS8415a, ADS7846, DataFlash) with LKML
mentions of other drivers in development.
- No userspace API. There are several implementations to compare.
Implement them like any other driver, and bind them with sysfs.
The changes from last version posted to LKML (on 11-Nov-2005) are minor,
and include:
- One bugfix (removes a FIXME), with the visible effect of making device
names be "spiB.C" where B is the bus number and C is the chipselect.
- The "caller provides DMA mappings" mechanism now has kerneldoc, for
DMA drivers that want to be fancy.
- Hey, the framework init can be subsys_init. Even though board init
logic fires earlier, at arch_init ... since the framework init is
for driver support, and the board init support uses static init.
- Various additional spec/doc clarifications based on discussions
with other folk. It adds a brief "thank you" at the end, for folk
who've helped nudge this framework into existence.
As I've said before, I think that "protocol tweaking" is the main support
that this driver framework will need to evolve.
From: Mark Underwood <basicmark@yahoo.com>
Update the SPI framework to remove a potential priority inversion case by
reverting to kmalloc if the pre-allocated DMA-safe buffer isn't available.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2006-01-09 05:34:19 +08:00
|
|
|
config SPI_DEBUG
|
|
|
|
boolean "Debug support for SPI drivers"
|
2008-04-28 17:14:16 +08:00
|
|
|
depends on DEBUG_KERNEL
|
[PATCH] spi: simple SPI framework
This is the core of a small SPI framework, implementing the model of a
queue of messages which complete asynchronously (with thin synchronous
wrappers on top).
- It's still less than 2KB of ".text" (ARM). If there's got to be a
mid-layer for something so simple, that's the right size budget. :)
- The guts use board-specific SPI device tables to build the driver
model tree. (Hardware probing is rarely an option.)
- This version of Kconfig includes no drivers. At this writing there
are two known master controller drivers (PXA/SSP, OMAP MicroWire)
and three protocol drivers (CS8415a, ADS7846, DataFlash) with LKML
mentions of other drivers in development.
- No userspace API. There are several implementations to compare.
Implement them like any other driver, and bind them with sysfs.
The changes from last version posted to LKML (on 11-Nov-2005) are minor,
and include:
- One bugfix (removes a FIXME), with the visible effect of making device
names be "spiB.C" where B is the bus number and C is the chipselect.
- The "caller provides DMA mappings" mechanism now has kerneldoc, for
DMA drivers that want to be fancy.
- Hey, the framework init can be subsys_init. Even though board init
logic fires earlier, at arch_init ... since the framework init is
for driver support, and the board init support uses static init.
- Various additional spec/doc clarifications based on discussions
with other folk. It adds a brief "thank you" at the end, for folk
who've helped nudge this framework into existence.
As I've said before, I think that "protocol tweaking" is the main support
that this driver framework will need to evolve.
From: Mark Underwood <basicmark@yahoo.com>
Update the SPI framework to remove a potential priority inversion case by
reverting to kmalloc if the pre-allocated DMA-safe buffer isn't available.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2006-01-09 05:34:19 +08:00
|
|
|
help
|
|
|
|
Say "yes" to enable debug messaging (like dev_dbg and pr_debug),
|
|
|
|
sysfs, and debugfs support in SPI controller and protocol drivers.
|
|
|
|
|
|
|
|
#
|
|
|
|
# MASTER side ... talking to discrete SPI slave chips including microcontrollers
|
|
|
|
#
|
|
|
|
|
|
|
|
config SPI_MASTER
|
|
|
|
# boolean "SPI Master Support"
|
|
|
|
boolean
|
|
|
|
default SPI
|
|
|
|
help
|
|
|
|
If your system has an master-capable SPI controller (which
|
|
|
|
provides the clock and chipselect), you can enable that
|
|
|
|
controller and the protocol drivers for the SPI slave chips
|
|
|
|
that are connected.
|
|
|
|
|
2008-07-24 12:29:53 +08:00
|
|
|
if SPI_MASTER
|
|
|
|
|
[PATCH] spi: simple SPI framework
This is the core of a small SPI framework, implementing the model of a
queue of messages which complete asynchronously (with thin synchronous
wrappers on top).
- It's still less than 2KB of ".text" (ARM). If there's got to be a
mid-layer for something so simple, that's the right size budget. :)
- The guts use board-specific SPI device tables to build the driver
model tree. (Hardware probing is rarely an option.)
- This version of Kconfig includes no drivers. At this writing there
are two known master controller drivers (PXA/SSP, OMAP MicroWire)
and three protocol drivers (CS8415a, ADS7846, DataFlash) with LKML
mentions of other drivers in development.
- No userspace API. There are several implementations to compare.
Implement them like any other driver, and bind them with sysfs.
The changes from last version posted to LKML (on 11-Nov-2005) are minor,
and include:
- One bugfix (removes a FIXME), with the visible effect of making device
names be "spiB.C" where B is the bus number and C is the chipselect.
- The "caller provides DMA mappings" mechanism now has kerneldoc, for
DMA drivers that want to be fancy.
- Hey, the framework init can be subsys_init. Even though board init
logic fires earlier, at arch_init ... since the framework init is
for driver support, and the board init support uses static init.
- Various additional spec/doc clarifications based on discussions
with other folk. It adds a brief "thank you" at the end, for folk
who've helped nudge this framework into existence.
As I've said before, I think that "protocol tweaking" is the main support
that this driver framework will need to evolve.
From: Mark Underwood <basicmark@yahoo.com>
Update the SPI framework to remove a potential priority inversion case by
reverting to kmalloc if the pre-allocated DMA-safe buffer isn't available.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2006-01-09 05:34:19 +08:00
|
|
|
comment "SPI Master Controller Drivers"
|
|
|
|
|
2007-02-14 16:33:09 +08:00
|
|
|
config SPI_ATMEL
|
|
|
|
tristate "Atmel SPI Controller"
|
2008-07-24 12:29:53 +08:00
|
|
|
depends on (ARCH_AT91 || AVR32)
|
2007-02-14 16:33:09 +08:00
|
|
|
help
|
|
|
|
This selects a driver for the Atmel SPI Controller, present on
|
|
|
|
many AT32 (AVR32) and AT91 (ARM) chips.
|
|
|
|
|
2007-05-07 05:50:34 +08:00
|
|
|
config SPI_BFIN
|
|
|
|
tristate "SPI controller driver for ADI Blackfin5xx"
|
2008-07-24 12:29:53 +08:00
|
|
|
depends on BLACKFIN
|
2007-05-07 05:50:34 +08:00
|
|
|
help
|
|
|
|
This is the SPI controller master driver for Blackfin 5xx processor.
|
|
|
|
|
2007-05-08 15:32:25 +08:00
|
|
|
config SPI_AU1550
|
|
|
|
tristate "Au1550/Au12x0 SPI Controller"
|
2008-07-24 12:29:53 +08:00
|
|
|
depends on (SOC_AU1550 || SOC_AU1200) && EXPERIMENTAL
|
2007-05-08 15:32:25 +08:00
|
|
|
select SPI_BITBANG
|
|
|
|
help
|
|
|
|
If you say yes to this option, support will be included for the
|
|
|
|
Au1550 SPI controller (may also work with Au1200,Au1210,Au1250).
|
|
|
|
|
|
|
|
This driver can also be built as a module. If so, the module
|
|
|
|
will be called au1550_spi.
|
|
|
|
|
2006-01-09 05:34:26 +08:00
|
|
|
config SPI_BITBANG
|
2009-01-07 06:41:41 +08:00
|
|
|
tristate "Utilities for Bitbanging SPI masters"
|
2006-01-09 05:34:26 +08:00
|
|
|
help
|
|
|
|
With a few GPIO pins, your system can bitbang the SPI protocol.
|
|
|
|
Select this to get SPI support through I/O pins (GPIO, parallel
|
|
|
|
port, etc). Or, some systems' SPI master controller drivers use
|
|
|
|
this code to manage the per-word or per-transfer accesses to the
|
|
|
|
hardware shift registers.
|
|
|
|
|
|
|
|
This is library code, and is automatically selected by drivers that
|
|
|
|
need it. You only need to select this explicitly to support driver
|
|
|
|
modules that aren't part of this kernel tree.
|
[PATCH] spi: simple SPI framework
This is the core of a small SPI framework, implementing the model of a
queue of messages which complete asynchronously (with thin synchronous
wrappers on top).
- It's still less than 2KB of ".text" (ARM). If there's got to be a
mid-layer for something so simple, that's the right size budget. :)
- The guts use board-specific SPI device tables to build the driver
model tree. (Hardware probing is rarely an option.)
- This version of Kconfig includes no drivers. At this writing there
are two known master controller drivers (PXA/SSP, OMAP MicroWire)
and three protocol drivers (CS8415a, ADS7846, DataFlash) with LKML
mentions of other drivers in development.
- No userspace API. There are several implementations to compare.
Implement them like any other driver, and bind them with sysfs.
The changes from last version posted to LKML (on 11-Nov-2005) are minor,
and include:
- One bugfix (removes a FIXME), with the visible effect of making device
names be "spiB.C" where B is the bus number and C is the chipselect.
- The "caller provides DMA mappings" mechanism now has kerneldoc, for
DMA drivers that want to be fancy.
- Hey, the framework init can be subsys_init. Even though board init
logic fires earlier, at arch_init ... since the framework init is
for driver support, and the board init support uses static init.
- Various additional spec/doc clarifications based on discussions
with other folk. It adds a brief "thank you" at the end, for folk
who've helped nudge this framework into existence.
As I've said before, I think that "protocol tweaking" is the main support
that this driver framework will need to evolve.
From: Mark Underwood <basicmark@yahoo.com>
Update the SPI framework to remove a potential priority inversion case by
reverting to kmalloc if the pre-allocated DMA-safe buffer isn't available.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2006-01-09 05:34:19 +08:00
|
|
|
|
2006-01-09 05:34:29 +08:00
|
|
|
config SPI_BUTTERFLY
|
|
|
|
tristate "Parallel port adapter for AVR Butterfly (DEVELOPMENT)"
|
2008-07-24 12:29:53 +08:00
|
|
|
depends on PARPORT
|
2006-01-09 05:34:29 +08:00
|
|
|
select SPI_BITBANG
|
|
|
|
help
|
|
|
|
This uses a custom parallel port cable to connect to an AVR
|
|
|
|
Butterfly <http://www.atmel.com/products/avr/butterfly>, an
|
|
|
|
inexpensive battery powered microcontroller evaluation board.
|
|
|
|
This same cable can be used to flash new firmware.
|
|
|
|
|
2010-01-21 04:49:44 +08:00
|
|
|
config SPI_COLDFIRE_QSPI
|
|
|
|
tristate "Freescale Coldfire QSPI controller"
|
|
|
|
depends on (M520x || M523x || M5249 || M527x || M528x || M532x)
|
|
|
|
help
|
|
|
|
This enables support for the Coldfire QSPI controller in master
|
|
|
|
mode.
|
|
|
|
|
|
|
|
This driver can also be built as a module. If so, the module
|
|
|
|
will be called coldfire_qspi.
|
|
|
|
|
2009-12-17 06:02:18 +08:00
|
|
|
config SPI_DAVINCI
|
|
|
|
tristate "SPI controller driver for DaVinci/DA8xx SoC's"
|
|
|
|
depends on SPI_MASTER && ARCH_DAVINCI
|
|
|
|
select SPI_BITBANG
|
|
|
|
help
|
|
|
|
SPI master controller for DaVinci and DA8xx SPI modules.
|
|
|
|
|
2009-01-07 06:41:41 +08:00
|
|
|
config SPI_GPIO
|
|
|
|
tristate "GPIO-based bitbanging SPI Master"
|
|
|
|
depends on GENERIC_GPIO
|
|
|
|
select SPI_BITBANG
|
|
|
|
help
|
|
|
|
This simple GPIO bitbanging SPI master uses the arch-neutral GPIO
|
|
|
|
interface to manage MOSI, MISO, SCK, and chipselect signals. SPI
|
|
|
|
slaves connected to a bus using this driver are configured as usual,
|
|
|
|
except that the spi_board_info.controller_data holds the GPIO number
|
|
|
|
for the chipselect used by this controller driver.
|
|
|
|
|
|
|
|
Note that this driver often won't achieve even 1 Mbit/sec speeds,
|
|
|
|
making it unusually slow for SPI. If your platform can inline
|
|
|
|
GPIO operations, you should be able to leverage that for better
|
|
|
|
speed with a custom version of this driver; see the source code.
|
|
|
|
|
2009-09-23 07:46:02 +08:00
|
|
|
config SPI_IMX
|
|
|
|
tristate "Freescale i.MX SPI controllers"
|
|
|
|
depends on ARCH_MXC
|
|
|
|
select SPI_BITBANG
|
|
|
|
help
|
|
|
|
This enables using the Freescale i.MX SPI controllers in master
|
|
|
|
mode.
|
|
|
|
|
2007-07-17 19:04:05 +08:00
|
|
|
config SPI_LM70_LLP
|
|
|
|
tristate "Parallel port adapter for LM70 eval board (DEVELOPMENT)"
|
2008-07-24 12:29:53 +08:00
|
|
|
depends on PARPORT && EXPERIMENTAL
|
2007-07-17 19:04:05 +08:00
|
|
|
select SPI_BITBANG
|
|
|
|
help
|
|
|
|
This driver supports the NS LM70 LLP Evaluation Board,
|
|
|
|
which interfaces to an LM70 temperature sensor using
|
|
|
|
a parallel port.
|
|
|
|
|
2009-11-05 06:34:18 +08:00
|
|
|
config SPI_MPC52xx
|
|
|
|
tristate "Freescale MPC52xx SPI (non-PSC) controller support"
|
|
|
|
depends on PPC_MPC52xx && SPI
|
|
|
|
select SPI_MASTER_OF
|
|
|
|
help
|
|
|
|
This drivers supports the MPC52xx SPI controller in master SPI
|
|
|
|
mode.
|
|
|
|
|
2007-05-11 13:22:52 +08:00
|
|
|
config SPI_MPC52xx_PSC
|
|
|
|
tristate "Freescale MPC52xx PSC SPI controller"
|
2008-07-24 12:29:53 +08:00
|
|
|
depends on PPC_MPC52xx && EXPERIMENTAL
|
2007-05-11 13:22:52 +08:00
|
|
|
help
|
|
|
|
This enables using the Freescale MPC52xx Programmable Serial
|
|
|
|
Controller in master SPI mode.
|
|
|
|
|
2009-06-19 07:49:08 +08:00
|
|
|
config SPI_MPC8xxx
|
2009-06-19 07:48:59 +08:00
|
|
|
tristate "Freescale MPC8xxx SPI controller"
|
|
|
|
depends on FSL_SOC
|
2006-05-21 06:00:15 +08:00
|
|
|
help
|
2009-06-19 07:48:59 +08:00
|
|
|
This enables using the Freescale MPC8xxx SPI controllers in master
|
|
|
|
mode.
|
2006-05-21 06:00:15 +08:00
|
|
|
|
2007-02-12 16:52:37 +08:00
|
|
|
config SPI_OMAP_UWIRE
|
|
|
|
tristate "OMAP1 MicroWire"
|
2008-07-24 12:29:53 +08:00
|
|
|
depends on ARCH_OMAP1
|
2007-02-12 16:52:37 +08:00
|
|
|
select SPI_BITBANG
|
|
|
|
help
|
|
|
|
This hooks up to the MicroWire controller on OMAP1 chips.
|
|
|
|
|
2007-07-17 19:04:13 +08:00
|
|
|
config SPI_OMAP24XX
|
2008-02-06 17:38:16 +08:00
|
|
|
tristate "McSPI driver for OMAP24xx/OMAP34xx"
|
2008-07-24 12:29:53 +08:00
|
|
|
depends on ARCH_OMAP24XX || ARCH_OMAP34XX
|
2007-07-17 19:04:13 +08:00
|
|
|
help
|
2008-02-06 17:38:16 +08:00
|
|
|
SPI master controller for OMAP24xx/OMAP34xx Multichannel SPI
|
2007-07-17 19:04:13 +08:00
|
|
|
(McSPI) modules.
|
2007-02-12 16:52:39 +08:00
|
|
|
|
2009-12-13 16:02:11 +08:00
|
|
|
config SPI_OMAP_100K
|
|
|
|
tristate "OMAP SPI 100K"
|
|
|
|
depends on SPI_MASTER && (ARCH_OMAP850 || ARCH_OMAP730)
|
|
|
|
help
|
|
|
|
OMAP SPI 100K master controller for omap7xx boards.
|
|
|
|
|
2008-08-06 04:01:09 +08:00
|
|
|
config SPI_ORION
|
|
|
|
tristate "Orion SPI master (EXPERIMENTAL)"
|
|
|
|
depends on PLAT_ORION && EXPERIMENTAL
|
|
|
|
help
|
|
|
|
This enables using the SPI master controller on the Orion chips.
|
|
|
|
|
2009-06-09 15:11:42 +08:00
|
|
|
config SPI_PL022
|
|
|
|
tristate "ARM AMBA PL022 SSP controller (EXPERIMENTAL)"
|
|
|
|
depends on ARM_AMBA && EXPERIMENTAL
|
|
|
|
default y if MACH_U300
|
2009-09-23 07:46:01 +08:00
|
|
|
default y if ARCH_REALVIEW
|
|
|
|
default y if INTEGRATOR_IMPD1
|
|
|
|
default y if ARCH_VERSATILE
|
2009-06-09 15:11:42 +08:00
|
|
|
help
|
|
|
|
This selects the ARM(R) AMBA(R) PrimeCell PL022 SSP
|
|
|
|
controller. If you have an embedded system with an AMBA(R)
|
|
|
|
bus and a PL022 controller, say Y or M here.
|
|
|
|
|
2009-09-23 07:45:58 +08:00
|
|
|
config SPI_PPC4xx
|
|
|
|
tristate "PPC4xx SPI Controller"
|
|
|
|
depends on PPC32 && 4xx && SPI_MASTER
|
|
|
|
select SPI_BITBANG
|
|
|
|
help
|
|
|
|
This selects a driver for the PPC4xx SPI Controller.
|
|
|
|
|
2006-03-08 15:53:24 +08:00
|
|
|
config SPI_PXA2XX
|
|
|
|
tristate "PXA2xx SSP SPI master"
|
2008-07-24 12:29:53 +08:00
|
|
|
depends on ARCH_PXA && EXPERIMENTAL
|
2007-11-21 18:50:53 +08:00
|
|
|
select PXA_SSP
|
2006-03-08 15:53:24 +08:00
|
|
|
help
|
|
|
|
This enables using a PXA2xx SSP port as a SPI master controller.
|
|
|
|
The driver can be configured to use any SSP port and additional
|
|
|
|
documentation can be found a Documentation/spi/pxa2xx.
|
|
|
|
|
2007-02-12 16:52:36 +08:00
|
|
|
config SPI_S3C24XX
|
|
|
|
tristate "Samsung S3C24XX series SPI"
|
2008-07-24 12:29:53 +08:00
|
|
|
depends on ARCH_S3C2410 && EXPERIMENTAL
|
2007-07-17 19:04:09 +08:00
|
|
|
select SPI_BITBANG
|
2007-02-12 16:52:36 +08:00
|
|
|
help
|
|
|
|
SPI driver for Samsung S3C24XX series ARM SoCs
|
|
|
|
|
2009-12-15 14:20:24 +08:00
|
|
|
config SPI_S3C24XX_FIQ
|
|
|
|
bool "S3C24XX driver with FIQ pseudo-DMA"
|
|
|
|
depends on SPI_S3C24XX
|
|
|
|
select FIQ
|
|
|
|
help
|
|
|
|
Enable FIQ support for the S3C24XX SPI driver to provide pseudo
|
|
|
|
DMA by using the fast-interrupt request framework, This allows
|
|
|
|
the driver to get DMA-like performance when there are either
|
|
|
|
no free DMA channels, or when doing transfers that required both
|
|
|
|
TX and RX data paths.
|
|
|
|
|
2006-05-21 06:00:17 +08:00
|
|
|
config SPI_S3C24XX_GPIO
|
|
|
|
tristate "Samsung S3C24XX series SPI by GPIO"
|
2008-07-24 12:29:53 +08:00
|
|
|
depends on ARCH_S3C2410 && EXPERIMENTAL
|
2007-07-17 19:04:09 +08:00
|
|
|
select SPI_BITBANG
|
2006-05-21 06:00:17 +08:00
|
|
|
help
|
|
|
|
SPI driver for Samsung S3C24XX series ARM SoCs using
|
|
|
|
GPIO lines to provide the SPI bus. This can be used where
|
|
|
|
the inbuilt hardware cannot provide the transfer mode, or
|
|
|
|
where the board is using non hardware connected pins.
|
2007-07-17 19:04:11 +08:00
|
|
|
|
2009-11-30 15:39:42 +08:00
|
|
|
config SPI_S3C64XX
|
|
|
|
tristate "Samsung S3C64XX series type SPI"
|
|
|
|
depends on ARCH_S3C64XX && EXPERIMENTAL
|
|
|
|
select S3C64XX_DMA
|
|
|
|
help
|
|
|
|
SPI driver for Samsung S3C64XX and newer SoCs.
|
|
|
|
|
2009-11-26 19:10:05 +08:00
|
|
|
config SPI_SH_MSIOF
|
|
|
|
tristate "SuperH MSIOF SPI controller"
|
|
|
|
depends on SUPERH && HAVE_CLK
|
|
|
|
select SPI_BITBANG
|
|
|
|
help
|
|
|
|
SPI driver for SuperH MSIOF blocks.
|
|
|
|
|
2008-02-06 17:38:15 +08:00
|
|
|
config SPI_SH_SCI
|
|
|
|
tristate "SuperH SCI SPI controller"
|
2008-07-24 12:29:53 +08:00
|
|
|
depends on SUPERH
|
2008-02-06 17:38:15 +08:00
|
|
|
select SPI_BITBANG
|
|
|
|
help
|
|
|
|
SPI driver for SuperH SCI blocks.
|
|
|
|
|
2009-09-23 07:46:15 +08:00
|
|
|
config SPI_STMP3XXX
|
|
|
|
tristate "Freescale STMP37xx/378x SPI/SSP controller"
|
|
|
|
depends on ARCH_STMP3XXX && SPI_MASTER
|
|
|
|
help
|
|
|
|
SPI driver for Freescale STMP37xx/378x SoC SSP interface
|
|
|
|
|
2007-07-17 19:04:15 +08:00
|
|
|
config SPI_TXX9
|
|
|
|
tristate "Toshiba TXx9 SPI controller"
|
2008-07-24 12:29:53 +08:00
|
|
|
depends on GENERIC_GPIO && CPU_TX49XX
|
2007-07-17 19:04:15 +08:00
|
|
|
help
|
|
|
|
SPI driver for Toshiba TXx9 MIPS SoCs
|
|
|
|
|
2007-07-17 19:04:11 +08:00
|
|
|
config SPI_XILINX
|
2009-11-13 19:28:55 +08:00
|
|
|
tristate "Xilinx SPI controller common module"
|
2009-11-13 19:28:49 +08:00
|
|
|
depends on HAS_IOMEM && EXPERIMENTAL
|
2007-07-17 19:04:11 +08:00
|
|
|
select SPI_BITBANG
|
2009-11-13 19:28:39 +08:00
|
|
|
select SPI_XILINX_OF if (XILINX_VIRTEX || MICROBLAZE)
|
2007-07-17 19:04:11 +08:00
|
|
|
help
|
|
|
|
This exposes the SPI controller IP from the Xilinx EDK.
|
|
|
|
|
|
|
|
See the "OPB Serial Peripheral Interface (SPI) (v1.00e)"
|
|
|
|
Product Specification document (DS464) for hardware details.
|
|
|
|
|
2009-11-13 19:28:55 +08:00
|
|
|
Or for the DS570, see "XPS Serial Peripheral Interface (SPI) (v2.00b)"
|
|
|
|
|
2009-11-13 19:28:39 +08:00
|
|
|
config SPI_XILINX_OF
|
|
|
|
tristate "Xilinx SPI controller OF device"
|
|
|
|
depends on SPI_XILINX && (XILINX_VIRTEX || MICROBLAZE)
|
|
|
|
help
|
|
|
|
This is the OF driver for the SPI controller IP from the Xilinx EDK.
|
|
|
|
|
2009-11-13 19:29:00 +08:00
|
|
|
config SPI_XILINX_PLTFM
|
|
|
|
tristate "Xilinx SPI controller platform device"
|
|
|
|
depends on SPI_XILINX
|
|
|
|
help
|
|
|
|
This is the platform driver for the SPI controller IP
|
|
|
|
from the Xilinx EDK.
|
|
|
|
|
2009-12-01 22:29:20 +08:00
|
|
|
config SPI_NUC900
|
|
|
|
tristate "Nuvoton NUC900 series SPI"
|
|
|
|
depends on ARCH_W90X900 && EXPERIMENTAL
|
|
|
|
select SPI_BITBANG
|
|
|
|
help
|
|
|
|
SPI driver for Nuvoton NUC900 series ARM SoCs
|
|
|
|
|
[PATCH] spi: simple SPI framework
This is the core of a small SPI framework, implementing the model of a
queue of messages which complete asynchronously (with thin synchronous
wrappers on top).
- It's still less than 2KB of ".text" (ARM). If there's got to be a
mid-layer for something so simple, that's the right size budget. :)
- The guts use board-specific SPI device tables to build the driver
model tree. (Hardware probing is rarely an option.)
- This version of Kconfig includes no drivers. At this writing there
are two known master controller drivers (PXA/SSP, OMAP MicroWire)
and three protocol drivers (CS8415a, ADS7846, DataFlash) with LKML
mentions of other drivers in development.
- No userspace API. There are several implementations to compare.
Implement them like any other driver, and bind them with sysfs.
The changes from last version posted to LKML (on 11-Nov-2005) are minor,
and include:
- One bugfix (removes a FIXME), with the visible effect of making device
names be "spiB.C" where B is the bus number and C is the chipselect.
- The "caller provides DMA mappings" mechanism now has kerneldoc, for
DMA drivers that want to be fancy.
- Hey, the framework init can be subsys_init. Even though board init
logic fires earlier, at arch_init ... since the framework init is
for driver support, and the board init support uses static init.
- Various additional spec/doc clarifications based on discussions
with other folk. It adds a brief "thank you" at the end, for folk
who've helped nudge this framework into existence.
As I've said before, I think that "protocol tweaking" is the main support
that this driver framework will need to evolve.
From: Mark Underwood <basicmark@yahoo.com>
Update the SPI framework to remove a potential priority inversion case by
reverting to kmalloc if the pre-allocated DMA-safe buffer isn't available.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2006-01-09 05:34:19 +08:00
|
|
|
#
|
|
|
|
# Add new SPI master controllers in alphabetical order above this line
|
|
|
|
#
|
|
|
|
|
2009-12-15 06:20:22 +08:00
|
|
|
config SPI_DESIGNWARE
|
|
|
|
bool "DesignWare SPI controller core support"
|
|
|
|
depends on SPI_MASTER
|
|
|
|
help
|
|
|
|
general driver for SPI controller core from DesignWare
|
|
|
|
|
|
|
|
config SPI_DW_PCI
|
|
|
|
tristate "PCI interface driver for DW SPI core"
|
|
|
|
depends on SPI_DESIGNWARE && PCI
|
|
|
|
|
2010-01-21 22:46:42 +08:00
|
|
|
config SPI_DW_MMIO
|
|
|
|
tristate "Memory-mapped io interface driver for DW SPI core"
|
|
|
|
depends on SPI_DESIGNWARE
|
|
|
|
|
[PATCH] spi: simple SPI framework
This is the core of a small SPI framework, implementing the model of a
queue of messages which complete asynchronously (with thin synchronous
wrappers on top).
- It's still less than 2KB of ".text" (ARM). If there's got to be a
mid-layer for something so simple, that's the right size budget. :)
- The guts use board-specific SPI device tables to build the driver
model tree. (Hardware probing is rarely an option.)
- This version of Kconfig includes no drivers. At this writing there
are two known master controller drivers (PXA/SSP, OMAP MicroWire)
and three protocol drivers (CS8415a, ADS7846, DataFlash) with LKML
mentions of other drivers in development.
- No userspace API. There are several implementations to compare.
Implement them like any other driver, and bind them with sysfs.
The changes from last version posted to LKML (on 11-Nov-2005) are minor,
and include:
- One bugfix (removes a FIXME), with the visible effect of making device
names be "spiB.C" where B is the bus number and C is the chipselect.
- The "caller provides DMA mappings" mechanism now has kerneldoc, for
DMA drivers that want to be fancy.
- Hey, the framework init can be subsys_init. Even though board init
logic fires earlier, at arch_init ... since the framework init is
for driver support, and the board init support uses static init.
- Various additional spec/doc clarifications based on discussions
with other folk. It adds a brief "thank you" at the end, for folk
who've helped nudge this framework into existence.
As I've said before, I think that "protocol tweaking" is the main support
that this driver framework will need to evolve.
From: Mark Underwood <basicmark@yahoo.com>
Update the SPI framework to remove a potential priority inversion case by
reverting to kmalloc if the pre-allocated DMA-safe buffer isn't available.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2006-01-09 05:34:19 +08:00
|
|
|
#
|
|
|
|
# There are lots of SPI device types, with sensors and memory
|
|
|
|
# being probably the most widely used ones.
|
|
|
|
#
|
|
|
|
comment "SPI Protocol Masters"
|
|
|
|
|
2007-05-08 15:32:15 +08:00
|
|
|
config SPI_SPIDEV
|
|
|
|
tristate "User mode SPI device driver support"
|
2008-07-24 12:29:53 +08:00
|
|
|
depends on EXPERIMENTAL
|
2007-05-08 15:32:15 +08:00
|
|
|
help
|
|
|
|
This supports user mode SPI protocol drivers.
|
|
|
|
|
|
|
|
Note that this application programming interface is EXPERIMENTAL
|
|
|
|
and hence SUBJECT TO CHANGE WITHOUT NOTICE while it stabilizes.
|
|
|
|
|
2007-07-17 19:04:10 +08:00
|
|
|
config SPI_TLE62X0
|
|
|
|
tristate "Infineon TLE62X0 (for power switching)"
|
2008-07-24 12:29:53 +08:00
|
|
|
depends on SYSFS
|
2007-07-17 19:04:10 +08:00
|
|
|
help
|
|
|
|
SPI driver for Infineon TLE62X0 series line driver chips,
|
|
|
|
such as the TLE6220, TLE6230 and TLE6240. This provides a
|
|
|
|
sysfs interface, with each line presented as a kind of GPIO
|
|
|
|
exposing both switch control and diagnostic feedback.
|
|
|
|
|
[PATCH] spi: simple SPI framework
This is the core of a small SPI framework, implementing the model of a
queue of messages which complete asynchronously (with thin synchronous
wrappers on top).
- It's still less than 2KB of ".text" (ARM). If there's got to be a
mid-layer for something so simple, that's the right size budget. :)
- The guts use board-specific SPI device tables to build the driver
model tree. (Hardware probing is rarely an option.)
- This version of Kconfig includes no drivers. At this writing there
are two known master controller drivers (PXA/SSP, OMAP MicroWire)
and three protocol drivers (CS8415a, ADS7846, DataFlash) with LKML
mentions of other drivers in development.
- No userspace API. There are several implementations to compare.
Implement them like any other driver, and bind them with sysfs.
The changes from last version posted to LKML (on 11-Nov-2005) are minor,
and include:
- One bugfix (removes a FIXME), with the visible effect of making device
names be "spiB.C" where B is the bus number and C is the chipselect.
- The "caller provides DMA mappings" mechanism now has kerneldoc, for
DMA drivers that want to be fancy.
- Hey, the framework init can be subsys_init. Even though board init
logic fires earlier, at arch_init ... since the framework init is
for driver support, and the board init support uses static init.
- Various additional spec/doc clarifications based on discussions
with other folk. It adds a brief "thank you" at the end, for folk
who've helped nudge this framework into existence.
As I've said before, I think that "protocol tweaking" is the main support
that this driver framework will need to evolve.
From: Mark Underwood <basicmark@yahoo.com>
Update the SPI framework to remove a potential priority inversion case by
reverting to kmalloc if the pre-allocated DMA-safe buffer isn't available.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2006-01-09 05:34:19 +08:00
|
|
|
#
|
|
|
|
# Add new SPI protocol masters in alphabetical order above this line
|
|
|
|
#
|
|
|
|
|
2008-07-24 12:29:53 +08:00
|
|
|
endif # SPI_MASTER
|
|
|
|
|
[PATCH] spi: simple SPI framework
This is the core of a small SPI framework, implementing the model of a
queue of messages which complete asynchronously (with thin synchronous
wrappers on top).
- It's still less than 2KB of ".text" (ARM). If there's got to be a
mid-layer for something so simple, that's the right size budget. :)
- The guts use board-specific SPI device tables to build the driver
model tree. (Hardware probing is rarely an option.)
- This version of Kconfig includes no drivers. At this writing there
are two known master controller drivers (PXA/SSP, OMAP MicroWire)
and three protocol drivers (CS8415a, ADS7846, DataFlash) with LKML
mentions of other drivers in development.
- No userspace API. There are several implementations to compare.
Implement them like any other driver, and bind them with sysfs.
The changes from last version posted to LKML (on 11-Nov-2005) are minor,
and include:
- One bugfix (removes a FIXME), with the visible effect of making device
names be "spiB.C" where B is the bus number and C is the chipselect.
- The "caller provides DMA mappings" mechanism now has kerneldoc, for
DMA drivers that want to be fancy.
- Hey, the framework init can be subsys_init. Even though board init
logic fires earlier, at arch_init ... since the framework init is
for driver support, and the board init support uses static init.
- Various additional spec/doc clarifications based on discussions
with other folk. It adds a brief "thank you" at the end, for folk
who've helped nudge this framework into existence.
As I've said before, I think that "protocol tweaking" is the main support
that this driver framework will need to evolve.
From: Mark Underwood <basicmark@yahoo.com>
Update the SPI framework to remove a potential priority inversion case by
reverting to kmalloc if the pre-allocated DMA-safe buffer isn't available.
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2006-01-09 05:34:19 +08:00
|
|
|
# (slave support would go here)
|
|
|
|
|
2008-04-28 17:14:16 +08:00
|
|
|
endif # SPI
|