[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
|
|
|
#
|
|
|
|
# Makefile for kernel SPI drivers.
|
|
|
|
#
|
|
|
|
|
2010-09-25 03:17:32 +08:00
|
|
|
ccflags-$(CONFIG_SPI_DEBUG) := -DDEBUG
|
[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
|
|
|
|
|
|
|
# small core, mostly translating board-specific
|
|
|
|
# config declarations into driver model code
|
|
|
|
obj-$(CONFIG_SPI_MASTER) += spi.o
|
2011-06-06 15:16:30 +08:00
|
|
|
obj-$(CONFIG_SPI_SPIDEV) += spidev.o
|
[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 master controller drivers (bus)
|
2011-06-06 15:16:30 +08:00
|
|
|
obj-$(CONFIG_SPI_ALTERA) += spi-altera.o
|
|
|
|
obj-$(CONFIG_SPI_ATMEL) += spi-atmel.o
|
|
|
|
obj-$(CONFIG_SPI_ATH79) += spi-ath79.o
|
|
|
|
obj-$(CONFIG_SPI_AU1550) += spi-au1550.o
|
2012-02-01 18:14:09 +08:00
|
|
|
obj-$(CONFIG_SPI_BCM63XX) += spi-bcm63xx.o
|
2012-04-24 06:18:08 +08:00
|
|
|
obj-$(CONFIG_SPI_BFIN5XX) += spi-bfin5xx.o
|
2011-06-06 15:16:30 +08:00
|
|
|
obj-$(CONFIG_SPI_BFIN_SPORT) += spi-bfin-sport.o
|
|
|
|
obj-$(CONFIG_SPI_BITBANG) += spi-bitbang.o
|
|
|
|
obj-$(CONFIG_SPI_BUTTERFLY) += spi-butterfly.o
|
2012-11-08 01:30:29 +08:00
|
|
|
obj-$(CONFIG_SPI_CLPS711X) += spi-clps711x.o
|
2011-06-06 15:16:30 +08:00
|
|
|
obj-$(CONFIG_SPI_COLDFIRE_QSPI) += spi-coldfire-qspi.o
|
|
|
|
obj-$(CONFIG_SPI_DAVINCI) += spi-davinci.o
|
|
|
|
obj-$(CONFIG_SPI_DESIGNWARE) += spi-dw.o
|
|
|
|
obj-$(CONFIG_SPI_DW_MMIO) += spi-dw-mmio.o
|
|
|
|
obj-$(CONFIG_SPI_DW_PCI) += spi-dw-midpci.o
|
|
|
|
spi-dw-midpci-objs := spi-dw-pci.o spi-dw-mid.o
|
|
|
|
obj-$(CONFIG_SPI_EP93XX) += spi-ep93xx.o
|
2012-05-20 21:46:19 +08:00
|
|
|
obj-$(CONFIG_SPI_FALCON) += spi-falcon.o
|
2011-06-06 15:16:30 +08:00
|
|
|
obj-$(CONFIG_SPI_FSL_LIB) += spi-fsl-lib.o
|
|
|
|
obj-$(CONFIG_SPI_FSL_ESPI) += spi-fsl-espi.o
|
|
|
|
obj-$(CONFIG_SPI_FSL_SPI) += spi-fsl-spi.o
|
|
|
|
obj-$(CONFIG_SPI_GPIO) += spi-gpio.o
|
|
|
|
obj-$(CONFIG_SPI_IMX) += spi-imx.o
|
|
|
|
obj-$(CONFIG_SPI_LM70_LLP) += spi-lm70llp.o
|
|
|
|
obj-$(CONFIG_SPI_MPC512x_PSC) += spi-mpc512x-psc.o
|
|
|
|
obj-$(CONFIG_SPI_MPC52xx_PSC) += spi-mpc52xx-psc.o
|
|
|
|
obj-$(CONFIG_SPI_MPC52xx) += spi-mpc52xx.o
|
2012-08-03 23:26:11 +08:00
|
|
|
obj-$(CONFIG_SPI_MXS) += spi-mxs.o
|
2011-06-06 15:16:30 +08:00
|
|
|
obj-$(CONFIG_SPI_NUC900) += spi-nuc900.o
|
|
|
|
obj-$(CONFIG_SPI_OC_TINY) += spi-oc-tiny.o
|
2012-08-23 03:25:07 +08:00
|
|
|
obj-$(CONFIG_SPI_OCTEON) += spi-octeon.o
|
2011-06-06 15:16:30 +08:00
|
|
|
obj-$(CONFIG_SPI_OMAP_UWIRE) += spi-omap-uwire.o
|
|
|
|
obj-$(CONFIG_SPI_OMAP_100K) += spi-omap-100k.o
|
|
|
|
obj-$(CONFIG_SPI_OMAP24XX) += spi-omap2-mcspi.o
|
|
|
|
obj-$(CONFIG_SPI_ORION) += spi-orion.o
|
|
|
|
obj-$(CONFIG_SPI_PL022) += spi-pl022.o
|
|
|
|
obj-$(CONFIG_SPI_PPC4xx) += spi-ppc4xx.o
|
|
|
|
obj-$(CONFIG_SPI_PXA2XX) += spi-pxa2xx.o
|
|
|
|
obj-$(CONFIG_SPI_PXA2XX_PCI) += spi-pxa2xx-pci.o
|
2012-03-07 13:46:25 +08:00
|
|
|
obj-$(CONFIG_SPI_RSPI) += spi-rspi.o
|
2011-06-06 15:16:30 +08:00
|
|
|
obj-$(CONFIG_SPI_S3C24XX) += spi-s3c24xx-hw.o
|
|
|
|
spi-s3c24xx-hw-y := spi-s3c24xx.o
|
|
|
|
spi-s3c24xx-hw-$(CONFIG_SPI_S3C24XX_FIQ) += spi-s3c24xx-fiq.o
|
|
|
|
obj-$(CONFIG_SPI_S3C64XX) += spi-s3c64xx.o
|
2012-08-19 00:06:27 +08:00
|
|
|
obj-$(CONFIG_SPI_SC18IS602) += spi-sc18is602.o
|
2011-06-06 15:16:30 +08:00
|
|
|
obj-$(CONFIG_SPI_SH) += spi-sh.o
|
2012-03-02 09:10:17 +08:00
|
|
|
obj-$(CONFIG_SPI_SH_HSPI) += spi-sh-hspi.o
|
2011-06-06 15:16:30 +08:00
|
|
|
obj-$(CONFIG_SPI_SH_MSIOF) += spi-sh-msiof.o
|
|
|
|
obj-$(CONFIG_SPI_SH_SCI) += spi-sh-sci.o
|
2012-02-13 17:45:38 +08:00
|
|
|
obj-$(CONFIG_SPI_SIRF) += spi-sirf.o
|
2012-11-14 08:24:47 +08:00
|
|
|
obj-$(CONFIG_SPI_TEGRA20_SFLASH) += spi-tegra20-sflash.o
|
2012-10-30 15:04:05 +08:00
|
|
|
obj-$(CONFIG_SPI_TEGRA20_SLINK) += spi-tegra20-slink.o
|
2011-06-06 15:16:30 +08:00
|
|
|
obj-$(CONFIG_SPI_TI_SSP) += spi-ti-ssp.o
|
|
|
|
obj-$(CONFIG_SPI_TLE62X0) += spi-tle62x0.o
|
|
|
|
obj-$(CONFIG_SPI_TOPCLIFF_PCH) += spi-topcliff-pch.o
|
|
|
|
obj-$(CONFIG_SPI_TXX9) += spi-txx9.o
|
2012-07-20 00:44:07 +08:00
|
|
|
obj-$(CONFIG_SPI_XCOMM) += spi-xcomm.o
|
2011-06-06 15:16:30 +08:00
|
|
|
obj-$(CONFIG_SPI_XILINX) += spi-xilinx.o
|