ARM: ep93xx: add AC97 platform support
Add platform support for the EP93xx AC97 controller driver. Signed-off-by: Mika Westerberg <mika.westerberg@iki.fi> Acked-by: H Hartley Sweeten <hsweeten@visionengravers.com> Acked-by: Ryan Mallon <ryan@bluewatersys.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
This commit is contained in:
committed by
Mark Brown
parent
aa7e1b84c6
commit
534bc7fa3c
@@ -832,6 +832,40 @@ void ep93xx_i2s_release(void)
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL(ep93xx_i2s_release);
|
EXPORT_SYMBOL(ep93xx_i2s_release);
|
||||||
|
|
||||||
|
/*************************************************************************
|
||||||
|
* EP93xx AC97 audio peripheral handling
|
||||||
|
*************************************************************************/
|
||||||
|
static struct resource ep93xx_ac97_resources[] = {
|
||||||
|
{
|
||||||
|
.start = EP93XX_AAC_PHYS_BASE,
|
||||||
|
.end = EP93XX_AAC_PHYS_BASE + 0xb0 - 1,
|
||||||
|
.flags = IORESOURCE_MEM,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.start = IRQ_EP93XX_AACINTR,
|
||||||
|
.end = IRQ_EP93XX_AACINTR,
|
||||||
|
.flags = IORESOURCE_IRQ,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct platform_device ep93xx_ac97_device = {
|
||||||
|
.name = "ep93xx-ac97",
|
||||||
|
.id = -1,
|
||||||
|
.num_resources = ARRAY_SIZE(ep93xx_ac97_resources),
|
||||||
|
.resource = ep93xx_ac97_resources,
|
||||||
|
};
|
||||||
|
|
||||||
|
void __init ep93xx_register_ac97(void)
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* Make sure that the AC97 pins are not used by I2S.
|
||||||
|
*/
|
||||||
|
ep93xx_devcfg_clear_bits(EP93XX_SYSCON_DEVCFG_I2SONAC97);
|
||||||
|
|
||||||
|
platform_device_register(&ep93xx_ac97_device);
|
||||||
|
platform_device_register(&ep93xx_pcm_device);
|
||||||
|
}
|
||||||
|
|
||||||
extern void ep93xx_gpio_init(void);
|
extern void ep93xx_gpio_init(void);
|
||||||
|
|
||||||
void __init ep93xx_init_devices(void)
|
void __init ep93xx_init_devices(void)
|
||||||
|
@@ -105,6 +105,7 @@
|
|||||||
#define EP93XX_GPIO_B_INT_STATUS EP93XX_GPIO_REG(0xbc)
|
#define EP93XX_GPIO_B_INT_STATUS EP93XX_GPIO_REG(0xbc)
|
||||||
#define EP93XX_GPIO_EEDRIVE EP93XX_GPIO_REG(0xc8)
|
#define EP93XX_GPIO_EEDRIVE EP93XX_GPIO_REG(0xc8)
|
||||||
|
|
||||||
|
#define EP93XX_AAC_PHYS_BASE EP93XX_APB_PHYS(0x00080000)
|
||||||
#define EP93XX_AAC_BASE EP93XX_APB_IOMEM(0x00080000)
|
#define EP93XX_AAC_BASE EP93XX_APB_IOMEM(0x00080000)
|
||||||
|
|
||||||
#define EP93XX_SPI_PHYS_BASE EP93XX_APB_PHYS(0x000a0000)
|
#define EP93XX_SPI_PHYS_BASE EP93XX_APB_PHYS(0x000a0000)
|
||||||
|
@@ -61,6 +61,7 @@ void ep93xx_keypad_release_gpio(struct platform_device *pdev);
|
|||||||
void ep93xx_register_i2s(void);
|
void ep93xx_register_i2s(void);
|
||||||
int ep93xx_i2s_acquire(unsigned i2s_pins, unsigned i2s_config);
|
int ep93xx_i2s_acquire(unsigned i2s_pins, unsigned i2s_config);
|
||||||
void ep93xx_i2s_release(void);
|
void ep93xx_i2s_release(void);
|
||||||
|
void ep93xx_register_ac97(void);
|
||||||
|
|
||||||
void ep93xx_init_devices(void);
|
void ep93xx_init_devices(void);
|
||||||
extern struct sys_timer ep93xx_timer;
|
extern struct sys_timer ep93xx_timer;
|
||||||
|
Reference in New Issue
Block a user