| 
									
										
											  
											
												[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-08 13:34:19 -08:00
										 |  |  | #
 | 
					
						
							|  |  |  | # Makefile for kernel SPI drivers.
 | 
					
						
							|  |  |  | #
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-09-24 12:17:32 -07: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-08 13: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 01:16:30 -06: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-08 13:34:19 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  | # SPI master controller drivers (bus)
 | 
					
						
							| 
									
										
										
										
											2011-06-06 01:16:30 -06: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 11:14:09 +01:00
										 |  |  | obj-$(CONFIG_SPI_BCM63XX)		+= spi-bcm63xx.o | 
					
						
							| 
									
										
										
										
											2012-04-23 18:18:08 -04:00
										 |  |  | obj-$(CONFIG_SPI_BFIN5XX)		+= spi-bfin5xx.o | 
					
						
							| 
									
										
										
										
											2011-06-06 01:16:30 -06: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-07 21:30:29 +04:00
										 |  |  | obj-$(CONFIG_SPI_CLPS711X)		+= spi-clps711x.o | 
					
						
							| 
									
										
										
										
											2011-06-06 01:16:30 -06: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 15:46:19 +02:00
										 |  |  | obj-$(CONFIG_SPI_FALCON)		+= spi-falcon.o | 
					
						
							| 
									
										
										
										
											2011-06-06 01:16:30 -06: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 17:26:11 +02:00
										 |  |  | obj-$(CONFIG_SPI_MXS)			+= spi-mxs.o | 
					
						
							| 
									
										
										
										
											2011-06-06 01:16:30 -06:00
										 |  |  | obj-$(CONFIG_SPI_NUC900)		+= spi-nuc900.o | 
					
						
							|  |  |  | obj-$(CONFIG_SPI_OC_TINY)		+= spi-oc-tiny.o | 
					
						
							| 
									
										
										
										
											2012-08-22 12:25:07 -07:00
										 |  |  | obj-$(CONFIG_SPI_OCTEON)		+= spi-octeon.o | 
					
						
							| 
									
										
										
										
											2011-06-06 01:16:30 -06: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 | 
					
						
							| 
									
										
										
										
											2013-01-22 12:26:28 +02:00
										 |  |  | spi-pxa2xx-platform-objs		:= spi-pxa2xx.o | 
					
						
							|  |  |  | spi-pxa2xx-platform-$(CONFIG_SPI_PXA2XX_PXADMA)	+= spi-pxa2xx-pxadma.o | 
					
						
							| 
									
										
										
										
											2013-01-22 12:26:29 +02:00
										 |  |  | spi-pxa2xx-platform-$(CONFIG_SPI_PXA2XX_DMA)	+= spi-pxa2xx-dma.o | 
					
						
							| 
									
										
										
										
											2013-01-22 12:26:28 +02:00
										 |  |  | obj-$(CONFIG_SPI_PXA2XX)		+= spi-pxa2xx-platform.o | 
					
						
							| 
									
										
										
										
											2011-06-06 01:16:30 -06:00
										 |  |  | obj-$(CONFIG_SPI_PXA2XX_PCI)		+= spi-pxa2xx-pci.o | 
					
						
							| 
									
										
										
										
											2012-03-07 14:46:25 +09:00
										 |  |  | obj-$(CONFIG_SPI_RSPI)			+= spi-rspi.o | 
					
						
							| 
									
										
										
										
											2011-06-06 01:16:30 -06: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-18 09:06:27 -07:00
										 |  |  | obj-$(CONFIG_SPI_SC18IS602)		+= spi-sc18is602.o | 
					
						
							| 
									
										
										
										
											2011-06-06 01:16:30 -06:00
										 |  |  | obj-$(CONFIG_SPI_SH)			+= spi-sh.o | 
					
						
							| 
									
										
										
										
											2012-03-01 17:10:17 -08:00
										 |  |  | obj-$(CONFIG_SPI_SH_HSPI)		+= spi-sh-hspi.o | 
					
						
							| 
									
										
										
										
											2011-06-06 01:16:30 -06: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 05:54:47 +05:30
										 |  |  | obj-$(CONFIG_SPI_TEGRA20_SFLASH)	+= spi-tegra20-sflash.o | 
					
						
							| 
									
										
										
										
											2012-10-30 12:34:05 +05:30
										 |  |  | obj-$(CONFIG_SPI_TEGRA20_SLINK)		+= spi-tegra20-slink.o | 
					
						
							| 
									
										
										
										
											2011-06-06 01:16:30 -06: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-19 18:44:07 +02:00
										 |  |  | obj-$(CONFIG_SPI_XCOMM)		+= spi-xcomm.o | 
					
						
							| 
									
										
										
										
											2011-06-06 01:16:30 -06:00
										 |  |  | obj-$(CONFIG_SPI_XILINX)		+= spi-xilinx.o |