This patch adds support for McSPI slave and FIFO. DMA and FIFO could be enabled together for better throughput. Platform config parameters have been added to enable these features on any particular McSPI controller. FIFO can be enabled by defining fifo_depth parameter. fifo_depth needs to be a multiple of buffer size that is used for read/write. These features are useful when you have high throughput devices like WLAN or Modem connected over SPI. Signed-off-by: Hemanth V <hemanthv@xxxxxx> arch/arm/mach-omap2/devices.c | 5 +++++ arch/arm/plat-omap/include/mach/mcspi.h | 16 ++++++++++++++++ 2 files changed, 21 insertions(+) --- Index: linux-omap-2.6/arch/arm/mach-omap2/devices.c =================================================================== --- linux-omap-2.6.orig/arch/arm/mach-omap2/devices.c 2009-06-18 15:22:39.000000000 +0530 +++ linux-omap-2.6/arch/arm/mach-omap2/devices.c 2009-06-23 16:45:51.000000000 +0530 @@ -259,6 +259,7 @@ static struct omap2_mcspi_platform_config omap2_mcspi1_config = { .num_cs = 4, + .force_cs_mode = 1, }; static struct resource omap2_mcspi1_resources[] = { @@ -281,6 +282,10 @@ static struct omap2_mcspi_platform_config omap2_mcspi2_config = { .num_cs = 2, + .mode = OMAP2_MCSPI_MASTER, + .dma_mode = 1, + .force_cs_mode = 0, + .fifo_depth = 0, }; static struct resource omap2_mcspi2_resources[] = { Index: linux-omap-2.6/arch/arm/plat-omap/include/mach/mcspi.h =================================================================== --- linux-omap-2.6.orig/arch/arm/plat-omap/include/mach/mcspi.h 2009-06-18 15:22:39.000000000 +0530 +++ linux-omap-2.6/arch/arm/plat-omap/include/mach/mcspi.h 2009-06-23 16:45:51.000000000 +0530 @@ -1,8 +1,24 @@ #ifndef _OMAP2_MCSPI_H #define _OMAP2_MCSPI_H +#define OMAP2_MCSPI_MASTER 0 +#define OMAP2_MCSPI_SLAVE 1 + struct omap2_mcspi_platform_config { unsigned short num_cs; + + /* SPI is master or slave */ + unsigned short mode; + + /* Use only DMA for data transfers */ + unsigned short dma_mode; + + /* Force chip select mode */ + unsigned short force_cs_mode; + + /* FIFO depth in bytes, max value 64 */ + unsigned short fifo_depth; + }; struct omap2_mcspi_device_config { -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html