Skip to content

Commit 3d34a0d

Browse files
zswanRussell King
authored andcommitted
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<[email protected]> Signed-off-by: Russell King <[email protected]>
1 parent 27ada41 commit 3d34a0d

File tree

3 files changed

+58
-0
lines changed

3 files changed

+58
-0
lines changed

arch/arm/mach-w90x900/dev.c

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -423,6 +423,33 @@ void nuc900_fb_set_platdata(struct nuc900fb_mach_info *pd)
423423
}
424424
#endif
425425

426+
/* AUDIO controller*/
427+
static u64 nuc900_device_audio_dmamask = -1;
428+
static struct resource nuc900_ac97_resource[] = {
429+
[0] = {
430+
.start = W90X900_PA_ACTL,
431+
.end = W90X900_PA_ACTL + W90X900_SZ_ACTL - 1,
432+
.flags = IORESOURCE_MEM,
433+
},
434+
[1] = {
435+
.start = IRQ_ACTL,
436+
.end = IRQ_ACTL,
437+
.flags = IORESOURCE_IRQ,
438+
}
439+
440+
};
441+
442+
struct platform_device nuc900_device_audio = {
443+
.name = "nuc900-audio",
444+
.id = -1,
445+
.num_resources = ARRAY_SIZE(nuc900_ac97_resource),
446+
.resource = nuc900_ac97_resource,
447+
.dev = {
448+
.dma_mask = &nuc900_device_audio_dmamask,
449+
.coherent_dma_mask = -1,
450+
}
451+
};
452+
426453
/*Here should be your evb resourse,such as LCD*/
427454

428455
static struct platform_device *nuc900_public_dev[] __initdata = {
@@ -434,6 +461,7 @@ static struct platform_device *nuc900_public_dev[] __initdata = {
434461
&nuc900_device_emc,
435462
&nuc900_device_spi,
436463
&nuc900_device_wdt,
464+
&nuc900_device_audio,
437465
};
438466

439467
/* Provide adding specific CPU platform devices API */
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
/*
2+
* arch/arm/mach-w90x900/include/mach/mfp.h
3+
*
4+
* Copyright (c) 2010 Nuvoton technology corporation.
5+
*
6+
* Wan ZongShun <[email protected]>
7+
*
8+
* Based on arch/arm/mach-s3c2410/include/mach/map.h
9+
*
10+
* This program is free software; you can redistribute it and/or modify
11+
* it under the terms of the GNU General Public License as published by
12+
* the Free Software Foundation;version 2 of the License.
13+
*
14+
*/
15+
16+
#ifndef __ASM_ARCH_MFP_H
17+
#define __ASM_ARCH_MFP_H
18+
19+
extern void mfp_set_groupf(struct device *dev);
20+
extern void mfp_set_groupc(struct device *dev);
21+
extern void mfp_set_groupi(struct device *dev);
22+
extern void mfp_set_groupg(struct device *dev);
23+
24+
#endif /* __ASM_ARCH_MFP_H */

arch/arm/mach-w90x900/mfp.c

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,12 @@
3636

3737
#define GPIOG0TO1 (0x03 << 14)
3838
#define GPIOG2TO3 (0x03 << 16)
39+
#define GPIOG22TO23 (0x03 << 22)
40+
3941
#define ENSPI (0x0a << 14)
4042
#define ENI2C0 (0x01 << 14)
4143
#define ENI2C1 (0x01 << 16)
44+
#define ENAC97 (0x02 << 22)
4245

4346
static DEFINE_MUTEX(mfp_mutex);
4447

@@ -146,6 +149,9 @@ void mfp_set_groupg(struct device *dev)
146149
} else if (strcmp(dev_id, "nuc900-i2c1") == 0) {
147150
mfpen &= ~(GPIOG2TO3);
148151
mfpen |= ENI2C1;/*enable i2c1*/
152+
} else if (strcmp(dev_id, "nuc900-audio") == 0) {
153+
mfpen &= ~(GPIOG22TO23);
154+
mfpen |= ENAC97;/*enable AC97*/
149155
} else {
150156
mfpen &= ~(GPIOG0TO1 | GPIOG2TO3);/*GPIOG[3:0]*/
151157
}

0 commit comments

Comments
 (0)