DaVinci DM355: Modifications to DM355 SPI support
authorSandeep Paulraj <s-paulraj@ti.com>
Mon, 1 Feb 2010 14:51:15 +0000 (09:51 -0500)
committerKevin Hilman <khilman@deeprootsystems.com>
Mon, 1 Mar 2010 18:20:23 +0000 (10:20 -0800)
This patch does the following

1) Minor change to the SPI clocks making it
similar to DM365.
2) Changing the interrupt used by SPI0
3) Adding EDMA resources that can be used by SPI0
4) Adding platform specific data.

Signed-off-by: Sandeep Paulraj <s-paulraj@ti.com>
Signed-off-by: Kevin Hilman <khilman@deeprootsystems.com>
arch/arm/mach-davinci/dm355.c

index 2cdd8740aad97a2d7965cddf0aea7ffc0813478d..36e7213779e8ed386e29fd5e99f3c2e31c11a26a 100644 (file)
@@ -29,6 +29,7 @@
 #include <mach/serial.h>
 #include <mach/common.h>
 #include <mach/asp.h>
+#include <mach/spi.h>
 
 #include "clock.h"
 #include "mux.h"
@@ -363,9 +364,9 @@ static struct clk_lookup dm355_clks[] = {
        CLK("davinci-asp.1", NULL, &asp1_clk),
        CLK("davinci_mmc.0", NULL, &mmcsd0_clk),
        CLK("davinci_mmc.1", NULL, &mmcsd1_clk),
-       CLK(NULL, "spi0", &spi0_clk),
-       CLK(NULL, "spi1", &spi1_clk),
-       CLK(NULL, "spi2", &spi2_clk),
+       CLK("spi_davinci.0", NULL, &spi0_clk),
+       CLK("spi_davinci.1", NULL, &spi1_clk),
+       CLK("spi_davinci.2", NULL, &spi2_clk),
        CLK(NULL, "gpio", &gpio_clk),
        CLK(NULL, "aemif", &aemif_clk),
        CLK(NULL, "pwm0", &pwm0_clk),
@@ -392,24 +393,40 @@ static struct resource dm355_spi0_resources[] = {
                .flags = IORESOURCE_MEM,
        },
        {
-               .start = IRQ_DM355_SPINT0_1,
+               .start = IRQ_DM355_SPINT0_0,
                .flags = IORESOURCE_IRQ,
        },
-       /* Not yet used, so not included:
-        * IORESOURCE_IRQ:
-        *  - IRQ_DM355_SPINT0_0
-        * IORESOURCE_DMA:
-        *  - DAVINCI_DMA_SPI_SPIX
-        *  - DAVINCI_DMA_SPI_SPIR
-        */
+       {
+               .start = 17,
+               .flags = IORESOURCE_DMA,
+       },
+       {
+               .start = 16,
+               .flags = IORESOURCE_DMA,
+       },
+       {
+               .start = EVENTQ_1,
+               .flags = IORESOURCE_DMA,
+       },
 };
 
+static struct davinci_spi_platform_data dm355_spi0_pdata = {
+       .version        = SPI_VERSION_1,
+       .num_chipselect = 2,
+       .clk_internal   = 1,
+       .cs_hold        = 1,
+       .intr_level     = 0,
+       .poll_mode      = 1,    /* 0 -> interrupt mode 1-> polling mode */
+       .c2tdelay       = 0,
+       .t2cdelay       = 0,
+};
 static struct platform_device dm355_spi0_device = {
        .name = "spi_davinci",
        .id = 0,
        .dev = {
                .dma_mask = &dm355_spi0_dma_mask,
                .coherent_dma_mask = DMA_BIT_MASK(32),
+               .platform_data = &dm355_spi0_pdata,
        },
        .num_resources = ARRAY_SIZE(dm355_spi0_resources),
        .resource = dm355_spi0_resources,