File tree Expand file tree Collapse file tree 3 files changed +58
-0
lines changed Expand file tree Collapse file tree 3 files changed +58
-0
lines changed Original file line number Diff line number Diff line change @@ -423,6 +423,33 @@ void nuc900_fb_set_platdata(struct nuc900fb_mach_info *pd)
423
423
}
424
424
#endif
425
425
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
+
426
453
/*Here should be your evb resourse,such as LCD*/
427
454
428
455
static struct platform_device * nuc900_public_dev [] __initdata = {
@@ -434,6 +461,7 @@ static struct platform_device *nuc900_public_dev[] __initdata = {
434
461
& nuc900_device_emc ,
435
462
& nuc900_device_spi ,
436
463
& nuc900_device_wdt ,
464
+ & nuc900_device_audio ,
437
465
};
438
466
439
467
/* Provide adding specific CPU platform devices API */
Original file line number Diff line number Diff line change
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 */
Original file line number Diff line number Diff line change 36
36
37
37
#define GPIOG0TO1 (0x03 << 14)
38
38
#define GPIOG2TO3 (0x03 << 16)
39
+ #define GPIOG22TO23 (0x03 << 22)
40
+
39
41
#define ENSPI (0x0a << 14)
40
42
#define ENI2C0 (0x01 << 14)
41
43
#define ENI2C1 (0x01 << 16)
44
+ #define ENAC97 (0x02 << 22)
42
45
43
46
static DEFINE_MUTEX (mfp_mutex );
44
47
@@ -146,6 +149,9 @@ void mfp_set_groupg(struct device *dev)
146
149
} else if (strcmp (dev_id , "nuc900-i2c1" ) == 0 ) {
147
150
mfpen &= ~(GPIOG2TO3 );
148
151
mfpen |= ENI2C1 ;/*enable i2c1*/
152
+ } else if (strcmp (dev_id , "nuc900-audio" ) == 0 ) {
153
+ mfpen &= ~(GPIOG22TO23 );
154
+ mfpen |= ENAC97 ;/*enable AC97*/
149
155
} else {
150
156
mfpen &= ~(GPIOG0TO1 | GPIOG2TO3 );/*GPIOG[3:0]*/
151
157
}
You can’t perform that action at this time.
0 commit comments