ARM: 6141/1: Add audio support part in arch/arm/mach-w90x900
Add audio support part in arch/arm/mach-w90x900 Signed-off-by: Wan ZongShun<mcuos.com@gmail.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
This commit is contained in:
parent
27ada410c7
commit
3d34a0d80a
|
@ -423,6 +423,33 @@ void nuc900_fb_set_platdata(struct nuc900fb_mach_info *pd)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
/* AUDIO controller*/
|
||||||
|
static u64 nuc900_device_audio_dmamask = -1;
|
||||||
|
static struct resource nuc900_ac97_resource[] = {
|
||||||
|
[0] = {
|
||||||
|
.start = W90X900_PA_ACTL,
|
||||||
|
.end = W90X900_PA_ACTL + W90X900_SZ_ACTL - 1,
|
||||||
|
.flags = IORESOURCE_MEM,
|
||||||
|
},
|
||||||
|
[1] = {
|
||||||
|
.start = IRQ_ACTL,
|
||||||
|
.end = IRQ_ACTL,
|
||||||
|
.flags = IORESOURCE_IRQ,
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
struct platform_device nuc900_device_audio = {
|
||||||
|
.name = "nuc900-audio",
|
||||||
|
.id = -1,
|
||||||
|
.num_resources = ARRAY_SIZE(nuc900_ac97_resource),
|
||||||
|
.resource = nuc900_ac97_resource,
|
||||||
|
.dev = {
|
||||||
|
.dma_mask = &nuc900_device_audio_dmamask,
|
||||||
|
.coherent_dma_mask = -1,
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
/*Here should be your evb resourse,such as LCD*/
|
/*Here should be your evb resourse,such as LCD*/
|
||||||
|
|
||||||
static struct platform_device *nuc900_public_dev[] __initdata = {
|
static struct platform_device *nuc900_public_dev[] __initdata = {
|
||||||
|
@ -434,6 +461,7 @@ static struct platform_device *nuc900_public_dev[] __initdata = {
|
||||||
&nuc900_device_emc,
|
&nuc900_device_emc,
|
||||||
&nuc900_device_spi,
|
&nuc900_device_spi,
|
||||||
&nuc900_device_wdt,
|
&nuc900_device_wdt,
|
||||||
|
&nuc900_device_audio,
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Provide adding specific CPU platform devices API */
|
/* Provide adding specific CPU platform devices API */
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
/*
|
||||||
|
* arch/arm/mach-w90x900/include/mach/mfp.h
|
||||||
|
*
|
||||||
|
* Copyright (c) 2010 Nuvoton technology corporation.
|
||||||
|
*
|
||||||
|
* Wan ZongShun <mcuos.com@gmail.com>
|
||||||
|
*
|
||||||
|
* Based on arch/arm/mach-s3c2410/include/mach/map.h
|
||||||
|
*
|
||||||
|
* This program is free software; you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation;version 2 of the License.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef __ASM_ARCH_MFP_H
|
||||||
|
#define __ASM_ARCH_MFP_H
|
||||||
|
|
||||||
|
extern void mfp_set_groupf(struct device *dev);
|
||||||
|
extern void mfp_set_groupc(struct device *dev);
|
||||||
|
extern void mfp_set_groupi(struct device *dev);
|
||||||
|
extern void mfp_set_groupg(struct device *dev);
|
||||||
|
|
||||||
|
#endif /* __ASM_ARCH_MFP_H */
|
|
@ -36,9 +36,12 @@
|
||||||
|
|
||||||
#define GPIOG0TO1 (0x03 << 14)
|
#define GPIOG0TO1 (0x03 << 14)
|
||||||
#define GPIOG2TO3 (0x03 << 16)
|
#define GPIOG2TO3 (0x03 << 16)
|
||||||
|
#define GPIOG22TO23 (0x03 << 22)
|
||||||
|
|
||||||
#define ENSPI (0x0a << 14)
|
#define ENSPI (0x0a << 14)
|
||||||
#define ENI2C0 (0x01 << 14)
|
#define ENI2C0 (0x01 << 14)
|
||||||
#define ENI2C1 (0x01 << 16)
|
#define ENI2C1 (0x01 << 16)
|
||||||
|
#define ENAC97 (0x02 << 22)
|
||||||
|
|
||||||
static DEFINE_MUTEX(mfp_mutex);
|
static DEFINE_MUTEX(mfp_mutex);
|
||||||
|
|
||||||
|
@ -146,6 +149,9 @@ void mfp_set_groupg(struct device *dev)
|
||||||
} else if (strcmp(dev_id, "nuc900-i2c1") == 0) {
|
} else if (strcmp(dev_id, "nuc900-i2c1") == 0) {
|
||||||
mfpen &= ~(GPIOG2TO3);
|
mfpen &= ~(GPIOG2TO3);
|
||||||
mfpen |= ENI2C1;/*enable i2c1*/
|
mfpen |= ENI2C1;/*enable i2c1*/
|
||||||
|
} else if (strcmp(dev_id, "nuc900-audio") == 0) {
|
||||||
|
mfpen &= ~(GPIOG22TO23);
|
||||||
|
mfpen |= ENAC97;/*enable AC97*/
|
||||||
} else {
|
} else {
|
||||||
mfpen &= ~(GPIOG0TO1 | GPIOG2TO3);/*GPIOG[3:0]*/
|
mfpen &= ~(GPIOG0TO1 | GPIOG2TO3);/*GPIOG[3:0]*/
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue