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 <heman...@ti.com>
 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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to