orion/kirkwood: add audio functions.
This patch add audio related definitions and functions Signed-off-by: Arnaud Patard <apatard@mandriva.com> Acked-by: Nicolas Pitre <nico@fluxnic.net> Acked-by: Liam Girdwood <lrg@slimlogic.co.uk> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
This commit is contained in:
parent
72ed5a8c9b
commit
49106c7290
|
@ -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 = {
|
||||||
.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)
|
||||||
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;
|
||||||
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);
|
||||||
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 @@
|
||||||
|
|
||||||
#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.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
#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
|
Loading…
Reference in New Issue