diff options
author | Haojian Zhuang <haojian.zhuang@gmail.com> | 2012-04-12 07:02:02 -0400 |
---|---|---|
committer | Haojian Zhuang <haojian.zhuang@gmail.com> | 2012-05-05 04:35:13 -0400 |
commit | c24b31147a0615abd6f15c9e2b6349191860db35 (patch) | |
tree | e3a3f228a5ae10b0eb1f5ea2e76496d8a529c19d /arch/arm/mach-mmp/include | |
parent | 3f4dd3224df9664a44bf05df56c7c12622f7a1c7 (diff) |
ARM: mmp: support DT in irq
Merge irq-pxa168 and irq-mmp2. And support device tree also.
Since CONFIG_SPARSE_IRQ is enabled in arch-mmp, base irq starts from
NR_IRQS_LEGACY.
Signed-off-by: Haojian Zhuang <haojian.zhuang@gmail.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'arch/arm/mach-mmp/include')
-rw-r--r-- | arch/arm/mach-mmp/include/mach/entry-macro.S | 4 | ||||
-rw-r--r-- | arch/arm/mach-mmp/include/mach/irqs.h | 27 |
2 files changed, 22 insertions, 9 deletions
diff --git a/arch/arm/mach-mmp/include/mach/entry-macro.S b/arch/arm/mach-mmp/include/mach/entry-macro.S index 9cff9e7a2b26..bd152e24e6d7 100644 --- a/arch/arm/mach-mmp/include/mach/entry-macro.S +++ b/arch/arm/mach-mmp/include/mach/entry-macro.S | |||
@@ -6,13 +6,15 @@ | |||
6 | * published by the Free Software Foundation. | 6 | * published by the Free Software Foundation. |
7 | */ | 7 | */ |
8 | 8 | ||
9 | #include <asm/irq.h> | ||
9 | #include <mach/regs-icu.h> | 10 | #include <mach/regs-icu.h> |
10 | 11 | ||
11 | .macro get_irqnr_preamble, base, tmp | 12 | .macro get_irqnr_preamble, base, tmp |
12 | mrc p15, 0, \tmp, c0, c0, 0 @ CPUID | 13 | mrc p15, 0, \tmp, c0, c0, 0 @ CPUID |
13 | and \tmp, \tmp, #0xff00 | 14 | and \tmp, \tmp, #0xff00 |
14 | cmp \tmp, #0x5800 | 15 | cmp \tmp, #0x5800 |
15 | ldr \base, =ICU_VIRT_BASE | 16 | ldr \base, =mmp_icu_base |
17 | ldr \base, [\base, #0] | ||
16 | addne \base, \base, #0x10c @ PJ1 AP INT SEL register | 18 | addne \base, \base, #0x10c @ PJ1 AP INT SEL register |
17 | addeq \base, \base, #0x104 @ PJ4 IRQ SEL register | 19 | addeq \base, \base, #0x104 @ PJ4 IRQ SEL register |
18 | .endm | 20 | .endm |
diff --git a/arch/arm/mach-mmp/include/mach/irqs.h b/arch/arm/mach-mmp/include/mach/irqs.h index d0e746626a3d..fb492a50a817 100644 --- a/arch/arm/mach-mmp/include/mach/irqs.h +++ b/arch/arm/mach-mmp/include/mach/irqs.h | |||
@@ -125,7 +125,7 @@ | |||
125 | #define IRQ_MMP2_RTC_MUX 5 | 125 | #define IRQ_MMP2_RTC_MUX 5 |
126 | #define IRQ_MMP2_TWSI1 7 | 126 | #define IRQ_MMP2_TWSI1 7 |
127 | #define IRQ_MMP2_GPU 8 | 127 | #define IRQ_MMP2_GPU 8 |
128 | #define IRQ_MMP2_KEYPAD 9 | 128 | #define IRQ_MMP2_KEYPAD_MUX 9 |
129 | #define IRQ_MMP2_ROTARY 10 | 129 | #define IRQ_MMP2_ROTARY 10 |
130 | #define IRQ_MMP2_TRACKBALL 11 | 130 | #define IRQ_MMP2_TRACKBALL 11 |
131 | #define IRQ_MMP2_ONEWIRE 12 | 131 | #define IRQ_MMP2_ONEWIRE 12 |
@@ -163,11 +163,11 @@ | |||
163 | #define IRQ_MMP2_DMA_FIQ 47 | 163 | #define IRQ_MMP2_DMA_FIQ 47 |
164 | #define IRQ_MMP2_DMA_RIQ 48 | 164 | #define IRQ_MMP2_DMA_RIQ 48 |
165 | #define IRQ_MMP2_GPIO 49 | 165 | #define IRQ_MMP2_GPIO 49 |
166 | #define IRQ_MMP2_SSP_MUX 51 | 166 | #define IRQ_MMP2_MIPI_HSI1_MUX 51 |
167 | #define IRQ_MMP2_MMC2 52 | 167 | #define IRQ_MMP2_MMC2 52 |
168 | #define IRQ_MMP2_MMC3 53 | 168 | #define IRQ_MMP2_MMC3 53 |
169 | #define IRQ_MMP2_MMC4 54 | 169 | #define IRQ_MMP2_MMC4 54 |
170 | #define IRQ_MMP2_MIPI_HSI 55 | 170 | #define IRQ_MMP2_MIPI_HSI0_MUX 55 |
171 | #define IRQ_MMP2_MSP 58 | 171 | #define IRQ_MMP2_MSP 58 |
172 | #define IRQ_MMP2_MIPI_SLIM_DMA 59 | 172 | #define IRQ_MMP2_MIPI_SLIM_DMA 59 |
173 | #define IRQ_MMP2_PJ4_FREQ_CHG 60 | 173 | #define IRQ_MMP2_PJ4_FREQ_CHG 60 |
@@ -186,8 +186,14 @@ | |||
186 | #define IRQ_MMP2_RTC_ALARM (IRQ_MMP2_RTC_BASE + 0) | 186 | #define IRQ_MMP2_RTC_ALARM (IRQ_MMP2_RTC_BASE + 0) |
187 | #define IRQ_MMP2_RTC (IRQ_MMP2_RTC_BASE + 1) | 187 | #define IRQ_MMP2_RTC (IRQ_MMP2_RTC_BASE + 1) |
188 | 188 | ||
189 | /* secondary interrupt of INT #9 */ | ||
190 | #define IRQ_MMP2_KEYPAD_BASE (IRQ_MMP2_RTC_BASE + 2) | ||
191 | #define IRQ_MMP2_KPC (IRQ_MMP2_KEYPAD_BASE + 0) | ||
192 | #define IRQ_MMP2_ROTORY (IRQ_MMP2_KEYPAD_BASE + 1) | ||
193 | #define IRQ_MMP2_TBALL (IRQ_MMP2_KEYPAD_BASE + 2) | ||
194 | |||
189 | /* secondary interrupt of INT #17 */ | 195 | /* secondary interrupt of INT #17 */ |
190 | #define IRQ_MMP2_TWSI_BASE (IRQ_MMP2_RTC_BASE + 2) | 196 | #define IRQ_MMP2_TWSI_BASE (IRQ_MMP2_KEYPAD_BASE + 3) |
191 | #define IRQ_MMP2_TWSI2 (IRQ_MMP2_TWSI_BASE + 0) | 197 | #define IRQ_MMP2_TWSI2 (IRQ_MMP2_TWSI_BASE + 0) |
192 | #define IRQ_MMP2_TWSI3 (IRQ_MMP2_TWSI_BASE + 1) | 198 | #define IRQ_MMP2_TWSI3 (IRQ_MMP2_TWSI_BASE + 1) |
193 | #define IRQ_MMP2_TWSI4 (IRQ_MMP2_TWSI_BASE + 2) | 199 | #define IRQ_MMP2_TWSI4 (IRQ_MMP2_TWSI_BASE + 2) |
@@ -212,11 +218,16 @@ | |||
212 | #define IRQ_MMP2_COMMRX (IRQ_MMP2_MISC_BASE + 14) | 218 | #define IRQ_MMP2_COMMRX (IRQ_MMP2_MISC_BASE + 14) |
213 | 219 | ||
214 | /* secondary interrupt of INT #51 */ | 220 | /* secondary interrupt of INT #51 */ |
215 | #define IRQ_MMP2_SSP_BASE (IRQ_MMP2_MISC_BASE + 15) | 221 | #define IRQ_MMP2_MIPI_HSI1_BASE (IRQ_MMP2_MISC_BASE + 15) |
216 | #define IRQ_MMP2_SSP1_SRDY (IRQ_MMP2_SSP_BASE + 0) | 222 | #define IRQ_MMP2_HSI1_CAWAKE (IRQ_MMP2_MIPI_HSI1_BASE + 0) |
217 | #define IRQ_MMP2_SSP3_SRDY (IRQ_MMP2_SSP_BASE + 1) | 223 | #define IRQ_MMP2_MIPI_HSI_INT1 (IRQ_MMP2_MIPI_HSI1_BASE + 1) |
224 | |||
225 | /* secondary interrupt of INT #55 */ | ||
226 | #define IRQ_MMP2_MIPI_HSI0_BASE (IRQ_MMP2_MIPI_HSI1_BASE + 2) | ||
227 | #define IRQ_MMP2_HSI0_CAWAKE (IRQ_MMP2_MIPI_HSI0_BASE + 0) | ||
228 | #define IRQ_MMP2_MIPI_HSI_INT0 (IRQ_MMP2_MIPI_HSI0_BASE + 1) | ||
218 | 229 | ||
219 | #define IRQ_MMP2_MUX_END (IRQ_MMP2_SSP_BASE + 2) | 230 | #define IRQ_MMP2_MUX_END (IRQ_MMP2_MIPI_HSI0_BASE + 2) |
220 | 231 | ||
221 | #define IRQ_GPIO_START 128 | 232 | #define IRQ_GPIO_START 128 |
222 | #define MMP_NR_BUILTIN_GPIO 192 | 233 | #define MMP_NR_BUILTIN_GPIO 192 |