Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland...
[sfrench/cifs-2.6.git] / arch / arm / mach-davinci / board-dm646x-evm.c
index 6d8889342c9f8b978886bff64f5848b5f5fa7ce0..4502f346b2b04fe45550bdd4dc4742281ce92aab 100644 (file)
@@ -323,7 +323,7 @@ static struct snd_platform_data dm646x_evm_snd_data[] = {
                .num_serializer = ARRAY_SIZE(dm646x_iis_serializer_direction),
                .tdm_slots      = 2,
                .serial_dir     = dm646x_iis_serializer_direction,
-               .eventq_no      = EVENTQ_0,
+               .asp_chan_q     = EVENTQ_0,
        },
        {
                .tx_dma_offset  = 0x400,
@@ -332,7 +332,7 @@ static struct snd_platform_data dm646x_evm_snd_data[] = {
                .num_serializer = ARRAY_SIZE(dm646x_dit_serializer_direction),
                .tdm_slots      = 32,
                .serial_dir     = dm646x_dit_serializer_direction,
-               .eventq_no      = EVENTQ_0,
+               .asp_chan_q     = EVENTQ_0,
        },
 };
 
@@ -721,6 +721,39 @@ static struct davinci_uart_config uart_config __initdata = {
 #define DM646X_EVM_PHY_MASK            (0x2)
 #define DM646X_EVM_MDIO_FREQUENCY      (2200000) /* PHY bus frequency */
 
+/*
+ * The following EDMA channels/slots are not being used by drivers (for
+ * example: Timer, GPIO, UART events etc) on dm646x, hence they are being
+ * reserved for codecs on the DSP side.
+ */
+static const s16 dm646x_dma_rsv_chans[][2] = {
+       /* (offset, number) */
+       { 0,  4},
+       {13,  3},
+       {24,  4},
+       {30,  2},
+       {54,  3},
+       {-1, -1}
+};
+
+static const s16 dm646x_dma_rsv_slots[][2] = {
+       /* (offset, number) */
+       { 0,  4},
+       {13,  3},
+       {24,  4},
+       {30,  2},
+       {54,  3},
+       {128, 384},
+       {-1, -1}
+};
+
+static struct edma_rsv_info dm646x_edma_rsv[] = {
+       {
+               .rsv_chans      = dm646x_dma_rsv_chans,
+               .rsv_slots      = dm646x_dma_rsv_slots,
+       },
+};
+
 static __init void evm_init(void)
 {
        struct davinci_soc_info *soc_info = &davinci_soc_info;
@@ -732,6 +765,8 @@ static __init void evm_init(void)
 
        platform_device_register(&davinci_nand_device);
 
+       dm646x_init_edma(dm646x_edma_rsv);
+
        if (HAS_ATA)
                davinci_init_ide();