aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-davinci/dm355.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-davinci/dm355.c')
-rw-r--r--arch/arm/mach-davinci/dm355.c43
1 files changed, 41 insertions, 2 deletions
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);