aboutsummaryrefslogtreecommitdiffstats
path: root/recipes/linux/linux-openmoko-2.6.30.1/015-mach-gta02.patch
blob: dae9ce6cbdd7c78d823fa5a6e0f48b94fa1ebb20 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
--- a/arch/arm/mach-s3c2442/Kconfig
+++ b/arch/arm/mach-s3c2442/Kconfig
@@ -25,6 +25,21 @@ config SMDK2440_CPU2442
 	depends on ARCH_S3C2440
 	select CPU_S3C2442
 
+config MACH_NEO1973_GTA02
+	bool "Openmoko Freerunner GSM Phone (GTA02 Hardware)"
+	select CPU_S3C2442
+	select MFD_PCF50633
+	select PCF50633_GPIO
+	select I2C
+	select POWER_SUPPLY
+	select MACH_NEO1973
+	select S3C_PWM
+	select FIQ
+	select S3C_DEV_USB_HOST
+	select S3C24XX_GPIO_EXTRA64
+	help
+	   Say Y here if you are using the Openmoko Freerunner GSM Phone
+
 
 endmenu
 
--- a/arch/arm/mach-s3c2442/Makefile
+++ b/arch/arm/mach-s3c2442/Makefile
@@ -9,8 +9,11 @@ obj-m				:=
 obj-n				:=
 obj-				:=
 
+obj-$(CONFIG_S3C2440_C_FIQ)	+= fiq_c_isr.o
+
 obj-$(CONFIG_CPU_S3C2442)	+= s3c2442.o
 obj-$(CONFIG_CPU_S3C2442)	+= clock.o
+obj-$(CONFIG_MACH_NEO1973_GTA02) += mach-gta02.o
 
 # Machine support
 
--- a/arch/arm/mach-s3c2410/include/mach/irqs.h
+++ b/arch/arm/mach-s3c2410/include/mach/irqs.h
@@ -153,9 +153,9 @@
 #define IRQ_S3C2443_AC97	S3C2410_IRQSUB(28)
 
 #ifdef CONFIG_CPU_S3C2443
-#define NR_IRQS (IRQ_S3C2443_AC97+1)
+#define _NR_IRQS (IRQ_S3C2443_AC97+1)
 #else
-#define NR_IRQS (IRQ_S3C2440_AC97+1)
+#define _NR_IRQS (IRQ_S3C2440_AC97+1)
 #endif
 
 /* compatibility define. */
@@ -167,4 +167,33 @@
 /* Our FIQs are routable from IRQ_EINT0 to IRQ_ADCPARENT */
 #define FIQ_START		IRQ_EINT0
 
+
+/*
+ * The next 16 interrupts are for board specific purposes.  Since
+ * the kernel can only run on one machine at a time, we can re-use
+ * these.  If you need more, increase IRQ_BOARD_END, but keep it
+ * within sensible limits.
+ */
+#define IRQ_BOARD_START         _NR_IRQS
+#define IRQ_BOARD_END           (_NR_IRQS + 10)
+
+#if defined(CONFIG_MACH_NEO1973_GTA02)
+#define NR_IRQS                 (IRQ_BOARD_END)
+#else
+#define NR_IRQS                 (IRQ_BOARD_START)
+#endif
+
+/* Neo1973 GTA02 interrupts */
+#define NEO1973_GTA02_IRQ(x)    (IRQ_BOARD_START + (x))
+#define IRQ_GLAMO(x)            NEO1973_GTA02_IRQ(x)
+#define IRQ_GLAMO_HOSTBUS       IRQ_GLAMO(0)
+#define IRQ_GLAMO_JPEG          IRQ_GLAMO(1)
+#define IRQ_GLAMO_MPEG          IRQ_GLAMO(2)
+#define IRQ_GLAMO_MPROC1        IRQ_GLAMO(3)
+#define IRQ_GLAMO_MPROC0        IRQ_GLAMO(4)
+#define IRQ_GLAMO_CMDQUEUE      IRQ_GLAMO(5)
+#define IRQ_GLAMO_2D            IRQ_GLAMO(6)
+#define IRQ_GLAMO_MMC           IRQ_GLAMO(7)
+#define IRQ_GLAMO_RISC          IRQ_GLAMO(8)
+
 #endif /* __ASM_ARCH_IRQ_H */