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