Commit 49106c72 authored by apatard@mandriva.com's avatar apatard@mandriva.com Committed by Mark Brown

orion/kirkwood: add audio functions.

This patch add audio related definitions and functions
Signed-off-by: default avatarArnaud Patard <apatard@mandriva.com>
Acked-by: default avatarNicolas Pitre <nico@fluxnic.net>
Acked-by: default avatarLiam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent 72ed5a8c
...@@ -25,6 +25,7 @@ ...@@ -25,6 +25,7 @@
#include <asm/mach/time.h> #include <asm/mach/time.h>
#include <mach/kirkwood.h> #include <mach/kirkwood.h>
#include <mach/bridge-regs.h> #include <mach/bridge-regs.h>
#include <plat/audio.h>
#include <plat/cache-feroceon-l2.h> #include <plat/cache-feroceon-l2.h>
#include <plat/ehci-orion.h> #include <plat/ehci-orion.h>
#include <plat/mvsdio.h> #include <plat/mvsdio.h>
...@@ -864,6 +865,42 @@ struct sys_timer kirkwood_timer = { ...@@ -864,6 +865,42 @@ struct sys_timer kirkwood_timer = {
.init = kirkwood_timer_init, .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 * General
...@@ -923,6 +960,7 @@ void __init kirkwood_init(void) ...@@ -923,6 +960,7 @@ void __init kirkwood_init(void)
kirkwood_spi_plat_data.tclk = kirkwood_tclk; kirkwood_spi_plat_data.tclk = kirkwood_tclk;
kirkwood_uart0_data[0].uartclk = kirkwood_tclk; kirkwood_uart0_data[0].uartclk = kirkwood_tclk;
kirkwood_uart1_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, * Disable propagation of mbus errors to the CPU local bus,
......
...@@ -17,6 +17,7 @@ struct mv_sata_platform_data; ...@@ -17,6 +17,7 @@ struct mv_sata_platform_data;
struct mvsdio_platform_data; struct mvsdio_platform_data;
struct mtd_partition; struct mtd_partition;
struct mtd_info; struct mtd_info;
struct kirkwood_asoc_platform_data;
/* /*
* Basic Kirkwood init functions used early by machine-setup. * Basic Kirkwood init functions used early by machine-setup.
...@@ -43,6 +44,7 @@ void kirkwood_uart0_init(void); ...@@ -43,6 +44,7 @@ void kirkwood_uart0_init(void);
void kirkwood_uart1_init(void); void kirkwood_uart1_init(void);
void kirkwood_nand_init(struct mtd_partition *parts, int nr_parts, int delay); 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_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 int kirkwood_tclk;
extern struct sys_timer kirkwood_timer; extern struct sys_timer kirkwood_timer;
......
...@@ -96,6 +96,9 @@ ...@@ -96,6 +96,9 @@
#define SDIO_PHYS_BASE (KIRKWOOD_REGS_PHYS_BASE | 0x90000) #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. * Supported devices and revisions.
*/ */
......
#ifndef __PLAT_AUDIO_H
#define __PLAT_AUDIO_H
#include <linux/mbus.h>
struct kirkwood_asoc_platform_data {
u32 tclk;
struct mbus_dram_target_info *dram;
int burst;
};
#endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment