| 
									
										
											  
											
												[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.
 | 
					
						
							|  |  |  | #
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ifeq ($(CONFIG_SPI_DEBUG),y) | 
					
						
							|  |  |  | EXTRA_CFLAGS += -DDEBUG | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # small core, mostly translating board-specific
 | 
					
						
							|  |  |  | # config declarations into driver model code
 | 
					
						
							|  |  |  | obj-$(CONFIG_SPI_MASTER)		+= spi.o | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # SPI master controller drivers (bus)
 | 
					
						
							| 
									
										
										
										
											2007-02-14 00:33:09 -08:00
										 |  |  | obj-$(CONFIG_SPI_ATMEL)			+= atmel_spi.o | 
					
						
							| 
									
										
										
										
											2007-05-06 14:50:34 -07:00
										 |  |  | obj-$(CONFIG_SPI_BFIN)			+= spi_bfin5xx.o | 
					
						
							|  |  |  | obj-$(CONFIG_SPI_BITBANG)		+= spi_bitbang.o | 
					
						
							| 
									
										
										
										
											2007-05-08 00:32:25 -07:00
										 |  |  | obj-$(CONFIG_SPI_AU1550)		+= au1550_spi.o | 
					
						
							| 
									
										
										
										
											2006-01-08 13:34:29 -08:00
										 |  |  | obj-$(CONFIG_SPI_BUTTERFLY)		+= spi_butterfly.o | 
					
						
							| 
									
										
										
										
											2010-01-20 13:49:44 -07:00
										 |  |  | obj-$(CONFIG_SPI_COLDFIRE_QSPI)		+= coldfire_qspi.o | 
					
						
							| 
									
										
										
										
											2009-12-16 22:02:18 +00:00
										 |  |  | obj-$(CONFIG_SPI_DAVINCI)		+= davinci_spi.o | 
					
						
							| 
									
										
										
										
											2009-12-14 14:20:22 -08:00
										 |  |  | obj-$(CONFIG_SPI_DESIGNWARE)		+= dw_spi.o | 
					
						
							|  |  |  | obj-$(CONFIG_SPI_DW_PCI)		+= dw_spi_pci.o | 
					
						
							| 
									
										
										
										
											2010-01-21 07:46:42 -07:00
										 |  |  | obj-$(CONFIG_SPI_DW_MMIO)		+= dw_spi_mmio.o | 
					
						
							| 
									
										
										
										
											2010-05-06 04:47:04 +00:00
										 |  |  | obj-$(CONFIG_SPI_EP93XX)		+= ep93xx_spi.o | 
					
						
							| 
									
										
										
										
											2009-01-06 14:41:41 -08:00
										 |  |  | obj-$(CONFIG_SPI_GPIO)			+= spi_gpio.o | 
					
						
							| 
									
										
										
										
											2009-10-01 15:44:28 -07:00
										 |  |  | obj-$(CONFIG_SPI_IMX)			+= spi_imx.o | 
					
						
							| 
									
										
										
										
											2007-07-17 04:04:05 -07:00
										 |  |  | obj-$(CONFIG_SPI_LM70_LLP)		+= spi_lm70llp.o | 
					
						
							| 
									
										
										
										
											2006-03-07 23:53:24 -08:00
										 |  |  | obj-$(CONFIG_SPI_PXA2XX)		+= pxa2xx_spi.o | 
					
						
							| 
									
										
										
										
											2007-02-12 00:52:37 -08:00
										 |  |  | obj-$(CONFIG_SPI_OMAP_UWIRE)		+= omap_uwire.o | 
					
						
							| 
									
										
										
										
											2007-07-17 04:04:13 -07:00
										 |  |  | obj-$(CONFIG_SPI_OMAP24XX)		+= omap2_mcspi.o | 
					
						
							| 
									
										
										
										
											2009-12-13 01:02:11 -07:00
										 |  |  | obj-$(CONFIG_SPI_OMAP_100K)		+= omap_spi_100k.o | 
					
						
							| 
									
										
										
										
											2008-08-05 13:01:09 -07:00
										 |  |  | obj-$(CONFIG_SPI_ORION)			+= orion_spi.o | 
					
						
							| 
									
										
										
										
											2009-06-09 08:11:42 +01:00
										 |  |  | obj-$(CONFIG_SPI_PL022)			+= amba-pl022.o | 
					
						
							| 
									
										
										
										
											2010-04-30 13:21:27 +00:00
										 |  |  | obj-$(CONFIG_SPI_MPC512x_PSC)		+= mpc512x_psc_spi.o | 
					
						
							| 
									
										
										
										
											2007-05-10 22:22:52 -07:00
										 |  |  | obj-$(CONFIG_SPI_MPC52xx_PSC)		+= mpc52xx_psc_spi.o | 
					
						
							| 
									
										
										
										
											2009-11-04 15:34:18 -07:00
										 |  |  | obj-$(CONFIG_SPI_MPC52xx)		+= mpc52xx_spi.o | 
					
						
							| 
									
										
										
										
											2009-06-18 16:49:08 -07:00
										 |  |  | obj-$(CONFIG_SPI_MPC8xxx)		+= spi_mpc8xxx.o | 
					
						
							| 
									
										
										
										
											2009-09-22 16:45:58 -07:00
										 |  |  | obj-$(CONFIG_SPI_PPC4xx)		+= spi_ppc4xx.o | 
					
						
							| 
									
										
										
										
											2006-05-20 15:00:17 -07:00
										 |  |  | obj-$(CONFIG_SPI_S3C24XX_GPIO)		+= spi_s3c24xx_gpio.o | 
					
						
							| 
									
										
										
										
											2009-12-14 22:20:24 -08:00
										 |  |  | obj-$(CONFIG_SPI_S3C24XX)		+= spi_s3c24xx_hw.o | 
					
						
							| 
									
										
										
										
											2009-11-30 07:39:42 +00:00
										 |  |  | obj-$(CONFIG_SPI_S3C64XX)		+= spi_s3c64xx.o | 
					
						
							| 
									
										
										
										
											2007-07-17 04:04:15 -07:00
										 |  |  | obj-$(CONFIG_SPI_TXX9)			+= spi_txx9.o | 
					
						
							| 
									
										
										
										
											2007-07-17 04:04:11 -07:00
										 |  |  | obj-$(CONFIG_SPI_XILINX)		+= xilinx_spi.o | 
					
						
							| 
									
										
										
										
											2009-11-13 12:28:39 +01:00
										 |  |  | obj-$(CONFIG_SPI_XILINX_OF)		+= xilinx_spi_of.o | 
					
						
							| 
									
										
										
										
											2009-11-13 12:29:00 +01:00
										 |  |  | obj-$(CONFIG_SPI_XILINX_PLTFM)		+= xilinx_spi_pltfm.o | 
					
						
							| 
									
										
										
										
											2008-02-06 01:38:15 -08:00
										 |  |  | obj-$(CONFIG_SPI_SH_SCI)		+= spi_sh_sci.o | 
					
						
							| 
									
										
										
										
											2009-11-26 11:10:05 +00:00
										 |  |  | obj-$(CONFIG_SPI_SH_MSIOF)		+= spi_sh_msiof.o | 
					
						
							| 
									
										
										
										
											2009-09-22 16:46:15 -07:00
										 |  |  | obj-$(CONFIG_SPI_STMP3XXX)		+= spi_stmp.o | 
					
						
							| 
									
										
										
										
											2009-12-01 14:29:20 +00:00
										 |  |  | obj-$(CONFIG_SPI_NUC900)		+= spi_nuc900.o | 
					
						
							| 
									
										
										
										
											2009-12-14 22:20:24 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  | # special build for s3c24xx spi driver with fiq support
 | 
					
						
							|  |  |  | spi_s3c24xx_hw-y			:= spi_s3c24xx.o | 
					
						
							|  |  |  | spi_s3c24xx_hw-$(CONFIG_SPI_S3C24XX_FIQ) += spi_s3c24xx_fiq.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
										 |  |  | # 	... add above this line ...
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # SPI protocol drivers (device/link on bus)
 | 
					
						
							| 
									
										
										
										
											2007-05-08 00:32:15 -07:00
										 |  |  | obj-$(CONFIG_SPI_SPIDEV)	+= spidev.o | 
					
						
							| 
									
										
										
										
											2007-07-17 04:04:10 -07:00
										 |  |  | obj-$(CONFIG_SPI_TLE62X0)	+= tle62x0.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
										 |  |  | # 	... add above this line ...
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # SPI slave controller drivers (upstream link)
 | 
					
						
							|  |  |  | # 	... add above this line ...
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # SPI slave drivers (protocol for that link)
 | 
					
						
							|  |  |  | # 	... add above this line ...
 |