87 lines
2.4 KiB
Diff
87 lines
2.4 KiB
Diff
--- 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 */
|