davinci: EDMA support for Omapl138-Hawkboard
authorVictor Rodriguez <vm.rod25@gmail.com>
Mon, 27 Dec 2010 22:43:09 +0000 (16:43 -0600)
committerKevin Hilman <khilman@ti.com>
Mon, 28 Feb 2011 22:53:28 +0000 (14:53 -0800)
This patch adds EDMA support for the Hawkboard-L138 system

Signed-off-by: Victor Rodriguez <vm.rod25@gmail.com>
Tested-by: Rene Gonzalez <renegs.2378@gmail.com>
Acked-by: Sekhar Nori <nsekhar@ti.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
arch/arm/mach-davinci/board-omapl138-hawk.c

index 75b3fe2..cefff9b 100644 (file)
@@ -60,6 +60,55 @@ static __init void omapl138_hawk_config_emac(void)
                        __func__, ret);
 }
 
+/*
+ * The following EDMA channels/slots are not being used by drivers (for
+ * example: Timer, GPIO, UART events etc) on da850/omap-l138 EVM/Hawkboard,
+ * hence they are being reserved for codecs on the DSP side.
+ */
+static const s16 da850_dma0_rsv_chans[][2] = {
+       /* (offset, number) */
+       { 8,  6},
+       {24,  4},
+       {30,  2},
+       {-1, -1}
+};
+
+static const s16 da850_dma0_rsv_slots[][2] = {
+       /* (offset, number) */
+       { 8,  6},
+       {24,  4},
+       {30, 50},
+       {-1, -1}
+};
+
+static const s16 da850_dma1_rsv_chans[][2] = {
+       /* (offset, number) */
+       { 0, 28},
+       {30,  2},
+       {-1, -1}
+};
+
+static const s16 da850_dma1_rsv_slots[][2] = {
+       /* (offset, number) */
+       { 0, 28},
+       {30, 90},
+       {-1, -1}
+};
+
+static struct edma_rsv_info da850_edma_cc0_rsv = {
+       .rsv_chans      = da850_dma0_rsv_chans,
+       .rsv_slots      = da850_dma0_rsv_slots,
+};
+
+static struct edma_rsv_info da850_edma_cc1_rsv = {
+       .rsv_chans      = da850_dma1_rsv_chans,
+       .rsv_slots      = da850_dma1_rsv_slots,
+};
+
+static struct edma_rsv_info *da850_edma_rsv[2] = {
+       &da850_edma_cc0_rsv,
+       &da850_edma_cc1_rsv,
+};
 
 static struct davinci_uart_config omapl138_hawk_uart_config __initdata = {
        .enabled_uarts = 0x7,
@@ -73,6 +122,11 @@ static __init void omapl138_hawk_init(void)
 
        omapl138_hawk_config_emac();
 
+       ret = da850_register_edma(da850_edma_rsv);
+       if (ret)
+               pr_warning("%s: EDMA registration failed: %d\n",
+                       __func__, ret);
+
        ret = da8xx_register_watchdog();
        if (ret)
                pr_warning("omapl138_hawk_init: "