This patch add audio related definitions and functions Signed-off-by: Arnaud Patard Index: sound-2.6/arch/arm/mach-kirkwood/common.c =================================================================== --- sound-2.6.orig/arch/arm/mach-kirkwood/common.c 2010-05-31 13:30:24.000000000 +0200 +++ sound-2.6/arch/arm/mach-kirkwood/common.c 2010-05-31 13:35:21.567036892 +0200 @@ -25,6 +25,7 @@ #include #include #include +#include #include #include #include @@ -864,6 +865,42 @@ struct sys_timer kirkwood_timer = { .init = kirkwood_timer_init, }; +/***************************************************************************** + * Audio + ****************************************************************************/ +static struct resource kirkwood_i2s_resources[] = { + [0] = { + .start = AUDIO_PHYS_BASE, + .end = AUDIO_PHYS_BASE + SZ_16K - 1, + .flags = IORESOURCE_MEM, + }, + [1] = { + .start = IRQ_KIRKWOOD_I2S, + .end = IRQ_KIRKWOOD_I2S, + .flags = IORESOURCE_IRQ, + }, +}; + +static struct kirkwood_asoc_platform_data kirkwood_i2s_data = { + .dram = &kirkwood_mbus_dram_info, + .burst = 128, +}; + +static struct platform_device kirkwood_i2s_device = { + .name = "kirkwood-i2s", + .id = -1, + .num_resources = ARRAY_SIZE(kirkwood_i2s_resources), + .resource = kirkwood_i2s_resources, + .dev = { + .platform_data = &kirkwood_i2s_data, + }, +}; + +void __init kirkwood_audio_init(void) +{ + kirkwood_clk_ctrl |= CGC_AUDIO; + platform_device_register(&kirkwood_i2s_device); +} /***************************************************************************** * General @@ -923,6 +960,7 @@ void __init kirkwood_init(void) kirkwood_spi_plat_data.tclk = kirkwood_tclk; kirkwood_uart0_data[0].uartclk = kirkwood_tclk; kirkwood_uart1_data[0].uartclk = kirkwood_tclk; + kirkwood_i2s_data.tclk = kirkwood_tclk; /* * Disable propagation of mbus errors to the CPU local bus, Index: sound-2.6/arch/arm/mach-kirkwood/common.h =================================================================== --- sound-2.6.orig/arch/arm/mach-kirkwood/common.h 2010-05-31 13:30:24.000000000 +0200 +++ sound-2.6/arch/arm/mach-kirkwood/common.h 2010-05-31 13:35:21.579077473 +0200 @@ -17,6 +17,7 @@ struct mv_sata_platform_data; struct mvsdio_platform_data; struct mtd_partition; struct mtd_info; +struct kirkwood_asoc_platform_data; /* * Basic Kirkwood init functions used early by machine-setup. @@ -43,6 +44,7 @@ void kirkwood_uart0_init(void); void kirkwood_uart1_init(void); void kirkwood_nand_init(struct mtd_partition *parts, int nr_parts, int delay); void kirkwood_nand_init_rnb(struct mtd_partition *parts, int nr_parts, int (*dev_ready)(struct mtd_info *)); +void kirkwood_audio_init(void); extern int kirkwood_tclk; extern struct sys_timer kirkwood_timer; Index: sound-2.6/arch/arm/mach-kirkwood/include/mach/kirkwood.h =================================================================== --- sound-2.6.orig/arch/arm/mach-kirkwood/include/mach/kirkwood.h 2010-05-31 13:25:39.000000000 +0200 +++ sound-2.6/arch/arm/mach-kirkwood/include/mach/kirkwood.h 2010-05-31 13:35:21.611577218 +0200 @@ -96,6 +96,9 @@ #define SDIO_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE | 0x90000) +#define AUDIO_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE | 0xA0000) +#define AUDIO_VIRT_BASE (KIRKWOOD_REGS_VIRT_BASE | 0xA0000) + /* * Supported devices and revisions. */ Index: sound-2.6/arch/arm/plat-orion/include/plat/audio.h =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ sound-2.6/arch/arm/plat-orion/include/plat/audio.h 2010-05-31 13:35:21.623077514 +0200 @@ -0,0 +1,11 @@ +#ifndef __PLAT_AUDIO_H +#define __PLAT_AUDIO_H + +#include + +struct kirkwood_asoc_platform_data { + u32 tclk; + struct mbus_dram_target_info *dram; + int burst; +}; +#endif