aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-davinci/board-dm355-evm.c7
-rw-r--r--arch/arm/mach-davinci/board-dm644x-evm.c5
-rw-r--r--arch/arm/mach-davinci/board-dm646x-evm.c33
-rw-r--r--arch/arm/mach-davinci/dm355.c43
-rw-r--r--arch/arm/mach-davinci/dm644x.c36
-rw-r--r--arch/arm/mach-davinci/dm646x.c74
-rw-r--r--arch/arm/mach-davinci/include/mach/asp.h35
-rw-r--r--arch/arm/mach-davinci/include/mach/dm355.h5
-rw-r--r--arch/arm/mach-davinci/include/mach/dm644x.h2
-rw-r--r--arch/arm/mach-davinci/include/mach/dm646x.h3
10 files changed, 238 insertions, 5 deletions
diff --git a/arch/arm/mach-davinci/board-dm355-evm.c b/arch/arm/mach-davinci/board-dm355-evm.c
index d6ab64ccd496..4ef6dbeccf3c 100644
--- a/arch/arm/mach-davinci/board-dm355-evm.c
+++ b/arch/arm/mach-davinci/board-dm355-evm.c
@@ -117,6 +117,10 @@ static struct davinci_i2c_platform_data i2c_pdata = {
117 .bus_delay = 0 /* usec */, 117 .bus_delay = 0 /* usec */,
118}; 118};
119 119
120static struct snd_platform_data dm355_evm_snd_data = {
121 .clk_name = "asp1",
122};
123
120static int dm355evm_mmc_gpios = -EINVAL; 124static int dm355evm_mmc_gpios = -EINVAL;
121 125
122static void dm355evm_mmcsd_gpios(unsigned gpio) 126static void dm355evm_mmcsd_gpios(unsigned gpio)
@@ -279,6 +283,9 @@ static __init void dm355_evm_init(void)
279 283
280 dm355_init_spi0(BIT(0), dm355_evm_spi_info, 284 dm355_init_spi0(BIT(0), dm355_evm_spi_info,
281 ARRAY_SIZE(dm355_evm_spi_info)); 285 ARRAY_SIZE(dm355_evm_spi_info));
286
287 /* DM335 EVM uses ASP1; line-out is a stereo mini-jack */
288 dm355_init_asp1(ASP1_TX_EVT_EN | ASP1_RX_EVT_EN, &dm355_evm_snd_data);
282} 289}
283 290
284static __init void dm355_evm_irq_init(void) 291static __init void dm355_evm_irq_init(void)
diff --git a/arch/arm/mach-davinci/board-dm644x-evm.c b/arch/arm/mach-davinci/board-dm644x-evm.c
index 56c8cd01de9a..d37f5c204b66 100644
--- a/arch/arm/mach-davinci/board-dm644x-evm.c
+++ b/arch/arm/mach-davinci/board-dm644x-evm.c
@@ -225,6 +225,10 @@ static struct platform_device ide_dev = {
225 }, 225 },
226}; 226};
227 227
228static struct snd_platform_data dm644x_evm_snd_data = {
229 .clk_name = "asp0",
230};
231
228/*----------------------------------------------------------------------*/ 232/*----------------------------------------------------------------------*/
229 233
230/* 234/*
@@ -666,6 +670,7 @@ static __init void davinci_evm_init(void)
666 davinci_setup_mmc(0, &dm6446evm_mmc_config); 670 davinci_setup_mmc(0, &dm6446evm_mmc_config);
667 671
668 davinci_serial_init(&uart_config); 672 davinci_serial_init(&uart_config);
673 dm644x_init_asp(&dm644x_evm_snd_data);
669 674
670 soc_info->emac_pdata->phy_mask = DM644X_EVM_PHY_MASK; 675 soc_info->emac_pdata->phy_mask = DM644X_EVM_PHY_MASK;
671 soc_info->emac_pdata->mdio_max_freq = DM644X_EVM_MDIO_FREQUENCY; 676 soc_info->emac_pdata->mdio_max_freq = DM644X_EVM_MDIO_FREQUENCY;
diff --git a/arch/arm/mach-davinci/board-dm646x-evm.c b/arch/arm/mach-davinci/board-dm646x-evm.c
index 8657e72debc1..0aa18df4110f 100644
--- a/arch/arm/mach-davinci/board-dm646x-evm.c
+++ b/arch/arm/mach-davinci/board-dm646x-evm.c
@@ -206,6 +206,37 @@ static struct at24_platform_data eeprom_info = {
206 .context = (void *)0x7f00, 206 .context = (void *)0x7f00,
207}; 207};
208 208
209static u8 dm646x_iis_serializer_direction[] = {
210 TX_MODE, RX_MODE, INACTIVE_MODE, INACTIVE_MODE,
211};
212
213static u8 dm646x_dit_serializer_direction[] = {
214 TX_MODE,
215};
216
217static struct snd_platform_data dm646x_evm_snd_data[] = {
218 {
219 .clk_name = "mcasp0",
220 .tx_dma_offset = 0x400,
221 .rx_dma_offset = 0x400,
222 .op_mode = DAVINCI_MCASP_IIS_MODE,
223 .num_serializer = ARRAY_SIZE(dm646x_iis_serializer_direction),
224 .tdm_slots = 2,
225 .serial_dir = dm646x_iis_serializer_direction,
226 .eventq_no = EVENTQ_0,
227 },
228 {
229 .clk_name = "mcasp1",
230 .tx_dma_offset = 0x400,
231 .rx_dma_offset = 0,
232 .op_mode = DAVINCI_MCASP_DIT_MODE,
233 .num_serializer = ARRAY_SIZE(dm646x_dit_serializer_direction),
234 .tdm_slots = 32,
235 .serial_dir = dm646x_dit_serializer_direction,
236 .eventq_no = EVENTQ_0,
237 },
238};
239
209static struct i2c_board_info __initdata i2c_info[] = { 240static struct i2c_board_info __initdata i2c_info[] = {
210 { 241 {
211 I2C_BOARD_INFO("24c256", 0x50), 242 I2C_BOARD_INFO("24c256", 0x50),
@@ -239,6 +270,8 @@ static __init void evm_init(void)
239 270
240 evm_init_i2c(); 271 evm_init_i2c();
241 davinci_serial_init(&uart_config); 272 davinci_serial_init(&uart_config);
273 dm646x_init_mcasp0(&dm646x_evm_snd_data[0]);
274 dm646x_init_mcasp1(&dm646x_evm_snd_data[1]);
242 275
243 soc_info->emac_pdata->phy_mask = DM646X_EVM_PHY_MASK; 276 soc_info->emac_pdata->phy_mask = DM646X_EVM_PHY_MASK;
244 soc_info->emac_pdata->mdio_max_freq = DM646X_EVM_MDIO_FREQUENCY; 277 soc_info->emac_pdata->mdio_max_freq = DM646X_EVM_MDIO_FREQUENCY;
diff --git a/arch/arm/mach-davinci/dm355.c b/arch/arm/mach-davinci/dm355.c
index 48f33e420517..b4d709a8612a 100644
--- a/arch/arm/mach-davinci/dm355.c
+++ b/arch/arm/mach-davinci/dm355.c
@@ -30,6 +30,7 @@
30#include <mach/time.h> 30#include <mach/time.h>
31#include <mach/serial.h> 31#include <mach/serial.h>
32#include <mach/common.h> 32#include <mach/common.h>
33#include <mach/asp.h>
33 34
34#include "clock.h" 35#include "clock.h"
35#include "mux.h" 36#include "mux.h"
@@ -360,8 +361,8 @@ static struct davinci_clk dm355_clks[] = {
360 CLK(NULL, "uart1", &uart1_clk), 361 CLK(NULL, "uart1", &uart1_clk),
361 CLK(NULL, "uart2", &uart2_clk), 362 CLK(NULL, "uart2", &uart2_clk),
362 CLK("i2c_davinci.1", NULL, &i2c_clk), 363 CLK("i2c_davinci.1", NULL, &i2c_clk),
363 CLK("soc-audio.0", NULL, &asp0_clk), 364 CLK(NULL, "asp0", &asp0_clk),
364 CLK("soc-audio.1", NULL, &asp1_clk), 365 CLK(NULL, "asp1", &asp1_clk),
365 CLK("davinci_mmc.0", NULL, &mmcsd0_clk), 366 CLK("davinci_mmc.0", NULL, &mmcsd0_clk),
366 CLK("davinci_mmc.1", NULL, &mmcsd1_clk), 367 CLK("davinci_mmc.1", NULL, &mmcsd1_clk),
367 CLK(NULL, "spi0", &spi0_clk), 368 CLK(NULL, "spi0", &spi0_clk),
@@ -627,6 +628,31 @@ static struct platform_device dm355_edma_device = {
627 .resource = edma_resources, 628 .resource = edma_resources,
628}; 629};
629 630
631static struct resource dm355_asp1_resources[] = {
632 {
633 .start = DAVINCI_ASP1_BASE,
634 .end = DAVINCI_ASP1_BASE + SZ_8K - 1,
635 .flags = IORESOURCE_MEM,
636 },
637 {
638 .start = DAVINCI_DMA_ASP1_TX,
639 .end = DAVINCI_DMA_ASP1_TX,
640 .flags = IORESOURCE_DMA,
641 },
642 {
643 .start = DAVINCI_DMA_ASP1_RX,
644 .end = DAVINCI_DMA_ASP1_RX,
645 .flags = IORESOURCE_DMA,
646 },
647};
648
649static struct platform_device dm355_asp1_device = {
650 .name = "davinci-asp",
651 .id = -1,
652 .num_resources = ARRAY_SIZE(dm355_asp1_resources),
653 .resource = dm355_asp1_resources,
654};
655
630/*----------------------------------------------------------------------*/ 656/*----------------------------------------------------------------------*/
631 657
632static struct map_desc dm355_io_desc[] = { 658static struct map_desc dm355_io_desc[] = {
@@ -735,6 +761,19 @@ static struct davinci_soc_info davinci_soc_info_dm355 = {
735 .sram_len = SZ_32K, 761 .sram_len = SZ_32K,
736}; 762};
737 763
764void __init dm355_init_asp1(u32 evt_enable, struct snd_platform_data *pdata)
765{
766 /* we don't use ASP1 IRQs, or we'd need to mux them ... */
767 if (evt_enable & ASP1_TX_EVT_EN)
768 davinci_cfg_reg(DM355_EVT8_ASP1_TX);
769
770 if (evt_enable & ASP1_RX_EVT_EN)
771 davinci_cfg_reg(DM355_EVT9_ASP1_RX);
772
773 dm355_asp1_device.dev.platform_data = pdata;
774 platform_device_register(&dm355_asp1_device);
775}
776
738void __init dm355_init(void) 777void __init dm355_init(void)
739{ 778{
740 davinci_common_init(&davinci_soc_info_dm355); 779 davinci_common_init(&davinci_soc_info_dm355);
diff --git a/arch/arm/mach-davinci/dm644x.c b/arch/arm/mach-davinci/dm644x.c
index d20e447a8b4f..55317b1cf865 100644
--- a/arch/arm/mach-davinci/dm644x.c
+++ b/arch/arm/mach-davinci/dm644x.c
@@ -27,6 +27,7 @@
27#include <mach/time.h> 27#include <mach/time.h>
28#include <mach/serial.h> 28#include <mach/serial.h>
29#include <mach/common.h> 29#include <mach/common.h>
30#include <mach/asp.h>
30 31
31#include "clock.h" 32#include "clock.h"
32#include "mux.h" 33#include "mux.h"
@@ -303,7 +304,7 @@ struct davinci_clk dm644x_clks[] = {
303 CLK("davinci_emac.1", NULL, &emac_clk), 304 CLK("davinci_emac.1", NULL, &emac_clk),
304 CLK("i2c_davinci.1", NULL, &i2c_clk), 305 CLK("i2c_davinci.1", NULL, &i2c_clk),
305 CLK("palm_bk3710", NULL, &ide_clk), 306 CLK("palm_bk3710", NULL, &ide_clk),
306 CLK("soc-audio.0", NULL, &asp_clk), 307 CLK(NULL, "asp0", &asp_clk),
307 CLK("davinci_mmc.0", NULL, &mmcsd_clk), 308 CLK("davinci_mmc.0", NULL, &mmcsd_clk),
308 CLK(NULL, "spi", &spi_clk), 309 CLK(NULL, "spi", &spi_clk),
309 CLK(NULL, "gpio", &gpio_clk), 310 CLK(NULL, "gpio", &gpio_clk),
@@ -553,6 +554,32 @@ static struct platform_device dm644x_edma_device = {
553 .resource = edma_resources, 554 .resource = edma_resources,
554}; 555};
555 556
557/* DM6446 EVM uses ASP0; line-out is a pair of RCA jacks */
558static struct resource dm644x_asp_resources[] = {
559 {
560 .start = DAVINCI_ASP0_BASE,
561 .end = DAVINCI_ASP0_BASE + SZ_8K - 1,
562 .flags = IORESOURCE_MEM,
563 },
564 {
565 .start = DAVINCI_DMA_ASP0_TX,
566 .end = DAVINCI_DMA_ASP0_TX,
567 .flags = IORESOURCE_DMA,
568 },
569 {
570 .start = DAVINCI_DMA_ASP0_RX,
571 .end = DAVINCI_DMA_ASP0_RX,
572 .flags = IORESOURCE_DMA,
573 },
574};
575
576static struct platform_device dm644x_asp_device = {
577 .name = "davinci-asp",
578 .id = -1,
579 .num_resources = ARRAY_SIZE(dm644x_asp_resources),
580 .resource = dm644x_asp_resources,
581};
582
556/*----------------------------------------------------------------------*/ 583/*----------------------------------------------------------------------*/
557 584
558static struct map_desc dm644x_io_desc[] = { 585static struct map_desc dm644x_io_desc[] = {
@@ -669,6 +696,13 @@ static struct davinci_soc_info davinci_soc_info_dm644x = {
669 .sram_len = SZ_16K, 696 .sram_len = SZ_16K,
670}; 697};
671 698
699void __init dm644x_init_asp(struct snd_platform_data *pdata)
700{
701 davinci_cfg_reg(DM644X_MCBSP);
702 dm644x_asp_device.dev.platform_data = pdata;
703 platform_device_register(&dm644x_asp_device);
704}
705
672void __init dm644x_init(void) 706void __init dm644x_init(void)
673{ 707{
674 davinci_common_init(&davinci_soc_info_dm644x); 708 davinci_common_init(&davinci_soc_info_dm644x);
diff --git a/arch/arm/mach-davinci/dm646x.c b/arch/arm/mach-davinci/dm646x.c
index 2c76a4d47bfb..199f288e03c4 100644
--- a/arch/arm/mach-davinci/dm646x.c
+++ b/arch/arm/mach-davinci/dm646x.c
@@ -27,6 +27,7 @@
27#include <mach/time.h> 27#include <mach/time.h>
28#include <mach/serial.h> 28#include <mach/serial.h>
29#include <mach/common.h> 29#include <mach/common.h>
30#include <mach/asp.h>
30 31
31#include "clock.h" 32#include "clock.h"
32#include "mux.h" 33#include "mux.h"
@@ -591,6 +592,66 @@ static struct platform_device dm646x_edma_device = {
591 .resource = edma_resources, 592 .resource = edma_resources,
592}; 593};
593 594
595static struct resource dm646x_mcasp0_resources[] = {
596 {
597 .name = "mcasp0",
598 .start = DAVINCI_DM646X_MCASP0_REG_BASE,
599 .end = DAVINCI_DM646X_MCASP0_REG_BASE + (SZ_1K << 1) - 1,
600 .flags = IORESOURCE_MEM,
601 },
602 /* first TX, then RX */
603 {
604 .start = DAVINCI_DM646X_DMA_MCASP0_AXEVT0,
605 .end = DAVINCI_DM646X_DMA_MCASP0_AXEVT0,
606 .flags = IORESOURCE_DMA,
607 },
608 {
609 .start = DAVINCI_DM646X_DMA_MCASP0_AREVT0,
610 .end = DAVINCI_DM646X_DMA_MCASP0_AREVT0,
611 .flags = IORESOURCE_DMA,
612 },
613};
614
615static struct resource dm646x_mcasp1_resources[] = {
616 {
617 .name = "mcasp1",
618 .start = DAVINCI_DM646X_MCASP1_REG_BASE,
619 .end = DAVINCI_DM646X_MCASP1_REG_BASE + (SZ_1K << 1) - 1,
620 .flags = IORESOURCE_MEM,
621 },
622 /* DIT mode, only TX event */
623 {
624 .start = DAVINCI_DM646X_DMA_MCASP1_AXEVT1,
625 .end = DAVINCI_DM646X_DMA_MCASP1_AXEVT1,
626 .flags = IORESOURCE_DMA,
627 },
628 /* DIT mode, dummy entry */
629 {
630 .start = -1,
631 .end = -1,
632 .flags = IORESOURCE_DMA,
633 },
634};
635
636static struct platform_device dm646x_mcasp0_device = {
637 .name = "davinci-mcasp",
638 .id = 0,
639 .num_resources = ARRAY_SIZE(dm646x_mcasp0_resources),
640 .resource = dm646x_mcasp0_resources,
641};
642
643static struct platform_device dm646x_mcasp1_device = {
644 .name = "davinci-mcasp",
645 .id = 1,
646 .num_resources = ARRAY_SIZE(dm646x_mcasp1_resources),
647 .resource = dm646x_mcasp1_resources,
648};
649
650static struct platform_device dm646x_dit_device = {
651 .name = "spdif-dit",
652 .id = -1,
653};
654
594/*----------------------------------------------------------------------*/ 655/*----------------------------------------------------------------------*/
595 656
596static struct map_desc dm646x_io_desc[] = { 657static struct map_desc dm646x_io_desc[] = {
@@ -700,6 +761,19 @@ static struct davinci_soc_info davinci_soc_info_dm646x = {
700 .sram_len = SZ_32K, 761 .sram_len = SZ_32K,
701}; 762};
702 763
764void __init dm646x_init_mcasp0(struct snd_platform_data *pdata)
765{
766 dm646x_mcasp0_device.dev.platform_data = pdata;
767 platform_device_register(&dm646x_mcasp0_device);
768}
769
770void __init dm646x_init_mcasp1(struct snd_platform_data *pdata)
771{
772 dm646x_mcasp1_device.dev.platform_data = pdata;
773 platform_device_register(&dm646x_mcasp1_device);
774 platform_device_register(&dm646x_dit_device);
775}
776
703void __init dm646x_init(void) 777void __init dm646x_init(void)
704{ 778{
705 davinci_common_init(&davinci_soc_info_dm646x); 779 davinci_common_init(&davinci_soc_info_dm646x);
diff --git a/arch/arm/mach-davinci/include/mach/asp.h b/arch/arm/mach-davinci/include/mach/asp.h
index e0abc437d796..038ecb7c231b 100644
--- a/arch/arm/mach-davinci/include/mach/asp.h
+++ b/arch/arm/mach-davinci/include/mach/asp.h
@@ -5,21 +5,52 @@
5#define __ASM_ARCH_DAVINCI_ASP_H 5#define __ASM_ARCH_DAVINCI_ASP_H
6 6
7#include <mach/irqs.h> 7#include <mach/irqs.h>
8#include <mach/edma.h>
8 9
9/* Bases of register banks */ 10/* Bases of dm644x and dm355 register banks */
10#define DAVINCI_ASP0_BASE 0x01E02000 11#define DAVINCI_ASP0_BASE 0x01E02000
11#define DAVINCI_ASP1_BASE 0x01E04000 12#define DAVINCI_ASP1_BASE 0x01E04000
12 13
13/* EDMA channels */ 14/* Bases of dm646x register banks */
15#define DAVINCI_DM646X_MCASP0_REG_BASE 0x01D01000
16#define DAVINCI_DM646X_MCASP1_REG_BASE 0x01D01800
17
18/* EDMA channels of dm644x and dm355 */
14#define DAVINCI_DMA_ASP0_TX 2 19#define DAVINCI_DMA_ASP0_TX 2
15#define DAVINCI_DMA_ASP0_RX 3 20#define DAVINCI_DMA_ASP0_RX 3
16#define DAVINCI_DMA_ASP1_TX 8 21#define DAVINCI_DMA_ASP1_TX 8
17#define DAVINCI_DMA_ASP1_RX 9 22#define DAVINCI_DMA_ASP1_RX 9
18 23
24/* EDMA channels of dm646x */
25#define DAVINCI_DM646X_DMA_MCASP0_AXEVT0 6
26#define DAVINCI_DM646X_DMA_MCASP0_AREVT0 9
27#define DAVINCI_DM646X_DMA_MCASP1_AXEVT1 12
28
19/* Interrupts */ 29/* Interrupts */
20#define DAVINCI_ASP0_RX_INT IRQ_MBRINT 30#define DAVINCI_ASP0_RX_INT IRQ_MBRINT
21#define DAVINCI_ASP0_TX_INT IRQ_MBXINT 31#define DAVINCI_ASP0_TX_INT IRQ_MBXINT
22#define DAVINCI_ASP1_RX_INT IRQ_MBRINT 32#define DAVINCI_ASP1_RX_INT IRQ_MBRINT
23#define DAVINCI_ASP1_TX_INT IRQ_MBXINT 33#define DAVINCI_ASP1_TX_INT IRQ_MBXINT
24 34
35struct snd_platform_data {
36 char *clk_name;
37 u32 tx_dma_offset;
38 u32 rx_dma_offset;
39 enum dma_event_q eventq_no; /* event queue number */
40 unsigned int codec_fmt;
41
42 /* McASP specific fields */
43 int tdm_slots;
44 u8 op_mode;
45 u8 num_serializer;
46 u8 *serial_dir;
47};
48
49#define INACTIVE_MODE 0
50#define TX_MODE 1
51#define RX_MODE 2
52
53#define DAVINCI_MCASP_IIS_MODE 0
54#define DAVINCI_MCASP_DIT_MODE 1
55
25#endif /* __ASM_ARCH_DAVINCI_ASP_H */ 56#endif /* __ASM_ARCH_DAVINCI_ASP_H */
diff --git a/arch/arm/mach-davinci/include/mach/dm355.h b/arch/arm/mach-davinci/include/mach/dm355.h
index 54903b72438e..03faaef95a9a 100644
--- a/arch/arm/mach-davinci/include/mach/dm355.h
+++ b/arch/arm/mach-davinci/include/mach/dm355.h
@@ -12,11 +12,16 @@
12#define __ASM_ARCH_DM355_H 12#define __ASM_ARCH_DM355_H
13 13
14#include <mach/hardware.h> 14#include <mach/hardware.h>
15#include <mach/asp.h>
16
17#define ASP1_TX_EVT_EN 1
18#define ASP1_RX_EVT_EN 2
15 19
16struct spi_board_info; 20struct spi_board_info;
17 21
18void __init dm355_init(void); 22void __init dm355_init(void);
19void dm355_init_spi0(unsigned chipselect_mask, 23void dm355_init_spi0(unsigned chipselect_mask,
20 struct spi_board_info *info, unsigned len); 24 struct spi_board_info *info, unsigned len);
25void __init dm355_init_asp1(u32 evt_enable, struct snd_platform_data *pdata);
21 26
22#endif /* __ASM_ARCH_DM355_H */ 27#endif /* __ASM_ARCH_DM355_H */
diff --git a/arch/arm/mach-davinci/include/mach/dm644x.h b/arch/arm/mach-davinci/include/mach/dm644x.h
index 15d42b92a8c9..8b157ceec0ca 100644
--- a/arch/arm/mach-davinci/include/mach/dm644x.h
+++ b/arch/arm/mach-davinci/include/mach/dm644x.h
@@ -25,6 +25,7 @@
25#include <linux/platform_device.h> 25#include <linux/platform_device.h>
26#include <mach/hardware.h> 26#include <mach/hardware.h>
27#include <mach/emac.h> 27#include <mach/emac.h>
28#include <mach/asp.h>
28 29
29#define DM644X_EMAC_BASE (0x01C80000) 30#define DM644X_EMAC_BASE (0x01C80000)
30#define DM644X_EMAC_CNTRL_OFFSET (0x0000) 31#define DM644X_EMAC_CNTRL_OFFSET (0x0000)
@@ -34,5 +35,6 @@
34#define DM644X_EMAC_CNTRL_RAM_SIZE (0x2000) 35#define DM644X_EMAC_CNTRL_RAM_SIZE (0x2000)
35 36
36void __init dm644x_init(void); 37void __init dm644x_init(void);
38void __init dm644x_init_asp(struct snd_platform_data *pdata);
37 39
38#endif /* __ASM_ARCH_DM644X_H */ 40#endif /* __ASM_ARCH_DM644X_H */
diff --git a/arch/arm/mach-davinci/include/mach/dm646x.h b/arch/arm/mach-davinci/include/mach/dm646x.h
index 1fc764c8646e..05854846242a 100644
--- a/arch/arm/mach-davinci/include/mach/dm646x.h
+++ b/arch/arm/mach-davinci/include/mach/dm646x.h
@@ -13,6 +13,7 @@
13 13
14#include <mach/hardware.h> 14#include <mach/hardware.h>
15#include <mach/emac.h> 15#include <mach/emac.h>
16#include <mach/asp.h>
16 17
17#define DM646X_EMAC_BASE (0x01C80000) 18#define DM646X_EMAC_BASE (0x01C80000)
18#define DM646X_EMAC_CNTRL_OFFSET (0x0000) 19#define DM646X_EMAC_CNTRL_OFFSET (0x0000)
@@ -22,5 +23,7 @@
22#define DM646X_EMAC_CNTRL_RAM_SIZE (0x2000) 23#define DM646X_EMAC_CNTRL_RAM_SIZE (0x2000)
23 24
24void __init dm646x_init(void); 25void __init dm646x_init(void);
26void __init dm646x_init_mcasp0(struct snd_platform_data *pdata);
27void __init dm646x_init_mcasp1(struct snd_platform_data *pdata);
25 28
26#endif /* __ASM_ARCH_DM646X_H */ 29#endif /* __ASM_ARCH_DM646X_H */