diff options
author | Zebediah C. McClure <zmc@lurian.net> | 2009-03-23 21:07:45 -0400 |
---|---|---|
committer | Tony Lindgren <tony@atomide.com> | 2009-03-23 21:51:19 -0400 |
commit | 59185eeeaad1f07fc930c1878f3773484219e3da (patch) | |
tree | 25d0ead567d29fecffe1ae9b9e38b3cee0a27851 /arch/arm | |
parent | 557096fe2838778ec1c6df0186560ff21749f63d (diff) |
[OMAP850] IRQ related changes
IRQ related changes.
Signed-off-by: Zebediah C. McClure <zmc@lurian.net>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/mach-omap1/irq.c | 19 | ||||
-rw-r--r-- | arch/arm/plat-omap/include/mach/irqs.h | 83 |
2 files changed, 99 insertions, 3 deletions
diff --git a/arch/arm/mach-omap1/irq.c b/arch/arm/mach-omap1/irq.c index 9ad5197075ff..de03c8448994 100644 --- a/arch/arm/mach-omap1/irq.c +++ b/arch/arm/mach-omap1/irq.c | |||
@@ -145,6 +145,14 @@ static struct omap_irq_bank omap730_irq_banks[] = { | |||
145 | }; | 145 | }; |
146 | #endif | 146 | #endif |
147 | 147 | ||
148 | #ifdef CONFIG_ARCH_OMAP850 | ||
149 | static struct omap_irq_bank omap850_irq_banks[] = { | ||
150 | { .base_reg = OMAP_IH1_BASE, .trigger_map = 0xb3f8e22f }, | ||
151 | { .base_reg = OMAP_IH2_BASE, .trigger_map = 0xfdb9c1f2 }, | ||
152 | { .base_reg = OMAP_IH2_BASE + 0x100, .trigger_map = 0x800040f3 }, | ||
153 | }; | ||
154 | #endif | ||
155 | |||
148 | #ifdef CONFIG_ARCH_OMAP15XX | 156 | #ifdef CONFIG_ARCH_OMAP15XX |
149 | static struct omap_irq_bank omap1510_irq_banks[] = { | 157 | static struct omap_irq_bank omap1510_irq_banks[] = { |
150 | { .base_reg = OMAP_IH1_BASE, .trigger_map = 0xb3febfff }, | 158 | { .base_reg = OMAP_IH1_BASE, .trigger_map = 0xb3febfff }, |
@@ -184,6 +192,12 @@ void __init omap_init_irq(void) | |||
184 | irq_bank_count = ARRAY_SIZE(omap730_irq_banks); | 192 | irq_bank_count = ARRAY_SIZE(omap730_irq_banks); |
185 | } | 193 | } |
186 | #endif | 194 | #endif |
195 | #ifdef CONFIG_ARCH_OMAP850 | ||
196 | if (cpu_is_omap850()) { | ||
197 | irq_banks = omap850_irq_banks; | ||
198 | irq_bank_count = ARRAY_SIZE(omap850_irq_banks); | ||
199 | } | ||
200 | #endif | ||
187 | #ifdef CONFIG_ARCH_OMAP15XX | 201 | #ifdef CONFIG_ARCH_OMAP15XX |
188 | if (cpu_is_omap1510()) { | 202 | if (cpu_is_omap1510()) { |
189 | irq_banks = omap1510_irq_banks; | 203 | irq_banks = omap1510_irq_banks; |
@@ -214,9 +228,8 @@ void __init omap_init_irq(void) | |||
214 | irq_bank_writel(0x03, 1, IRQ_CONTROL_REG_OFFSET); | 228 | irq_bank_writel(0x03, 1, IRQ_CONTROL_REG_OFFSET); |
215 | 229 | ||
216 | /* Enable interrupts in global mask */ | 230 | /* Enable interrupts in global mask */ |
217 | if (cpu_is_omap730()) { | 231 | if (cpu_is_omap7xx()) |
218 | irq_bank_writel(0x0, 0, IRQ_GMR_REG_OFFSET); | 232 | irq_bank_writel(0x0, 0, IRQ_GMR_REG_OFFSET); |
219 | } | ||
220 | 233 | ||
221 | /* Install the interrupt handlers for each bank */ | 234 | /* Install the interrupt handlers for each bank */ |
222 | for (i = 0; i < irq_bank_count; i++) { | 235 | for (i = 0; i < irq_bank_count; i++) { |
@@ -236,6 +249,8 @@ void __init omap_init_irq(void) | |||
236 | 249 | ||
237 | if (cpu_is_omap730()) | 250 | if (cpu_is_omap730()) |
238 | omap_unmask_irq(INT_730_IH2_IRQ); | 251 | omap_unmask_irq(INT_730_IH2_IRQ); |
252 | else if (cpu_is_omap850()) | ||
253 | omap_unmask_irq(INT_850_IH2_IRQ); | ||
239 | else if (cpu_is_omap15xx()) | 254 | else if (cpu_is_omap15xx()) |
240 | omap_unmask_irq(INT_1510_IH2_IRQ); | 255 | omap_unmask_irq(INT_1510_IH2_IRQ); |
241 | else if (cpu_is_omap16xx()) | 256 | else if (cpu_is_omap16xx()) |
diff --git a/arch/arm/plat-omap/include/mach/irqs.h b/arch/arm/plat-omap/include/mach/irqs.h index bed5274c910a..7f57ee66f364 100644 --- a/arch/arm/plat-omap/include/mach/irqs.h +++ b/arch/arm/plat-omap/include/mach/irqs.h | |||
@@ -105,6 +105,29 @@ | |||
105 | #define INT_730_SPGIO_WR 29 | 105 | #define INT_730_SPGIO_WR 29 |
106 | 106 | ||
107 | /* | 107 | /* |
108 | * OMAP-850 specific IRQ numbers for interrupt handler 1 | ||
109 | */ | ||
110 | #define INT_850_IH2_FIQ 0 | ||
111 | #define INT_850_IH2_IRQ 1 | ||
112 | #define INT_850_USB_NON_ISO 2 | ||
113 | #define INT_850_USB_ISO 3 | ||
114 | #define INT_850_ICR 4 | ||
115 | #define INT_850_EAC 5 | ||
116 | #define INT_850_GPIO_BANK1 6 | ||
117 | #define INT_850_GPIO_BANK2 7 | ||
118 | #define INT_850_GPIO_BANK3 8 | ||
119 | #define INT_850_McBSP2TX 10 | ||
120 | #define INT_850_McBSP2RX 11 | ||
121 | #define INT_850_McBSP2RX_OVF 12 | ||
122 | #define INT_850_LCD_LINE 14 | ||
123 | #define INT_850_GSM_PROTECT 15 | ||
124 | #define INT_850_TIMER3 16 | ||
125 | #define INT_850_GPIO_BANK5 17 | ||
126 | #define INT_850_GPIO_BANK6 18 | ||
127 | #define INT_850_SPGIO_WR 29 | ||
128 | |||
129 | |||
130 | /* | ||
108 | * IRQ numbers for interrupt handler 2 | 131 | * IRQ numbers for interrupt handler 2 |
109 | * | 132 | * |
110 | * NOTE: See also the OMAP-1510 and 1610 specific IRQ numbers below | 133 | * NOTE: See also the OMAP-1510 and 1610 specific IRQ numbers below |
@@ -237,6 +260,64 @@ | |||
237 | #define INT_730_DMA_CH15 (62 + IH2_BASE) | 260 | #define INT_730_DMA_CH15 (62 + IH2_BASE) |
238 | #define INT_730_NAND (63 + IH2_BASE) | 261 | #define INT_730_NAND (63 + IH2_BASE) |
239 | 262 | ||
263 | /* | ||
264 | * OMAP-850 specific IRQ numbers for interrupt handler 2 | ||
265 | */ | ||
266 | #define INT_850_HW_ERRORS (0 + IH2_BASE) | ||
267 | #define INT_850_NFIQ_PWR_FAIL (1 + IH2_BASE) | ||
268 | #define INT_850_CFCD (2 + IH2_BASE) | ||
269 | #define INT_850_CFIREQ (3 + IH2_BASE) | ||
270 | #define INT_850_I2C (4 + IH2_BASE) | ||
271 | #define INT_850_PCC (5 + IH2_BASE) | ||
272 | #define INT_850_MPU_EXT_NIRQ (6 + IH2_BASE) | ||
273 | #define INT_850_SPI_100K_1 (7 + IH2_BASE) | ||
274 | #define INT_850_SYREN_SPI (8 + IH2_BASE) | ||
275 | #define INT_850_VLYNQ (9 + IH2_BASE) | ||
276 | #define INT_850_GPIO_BANK4 (10 + IH2_BASE) | ||
277 | #define INT_850_McBSP1TX (11 + IH2_BASE) | ||
278 | #define INT_850_McBSP1RX (12 + IH2_BASE) | ||
279 | #define INT_850_McBSP1RX_OF (13 + IH2_BASE) | ||
280 | #define INT_850_UART_MODEM_IRDA_2 (14 + IH2_BASE) | ||
281 | #define INT_850_UART_MODEM_1 (15 + IH2_BASE) | ||
282 | #define INT_850_MCSI (16 + IH2_BASE) | ||
283 | #define INT_850_uWireTX (17 + IH2_BASE) | ||
284 | #define INT_850_uWireRX (18 + IH2_BASE) | ||
285 | #define INT_850_SMC_CD (19 + IH2_BASE) | ||
286 | #define INT_850_SMC_IREQ (20 + IH2_BASE) | ||
287 | #define INT_850_HDQ_1WIRE (21 + IH2_BASE) | ||
288 | #define INT_850_TIMER32K (22 + IH2_BASE) | ||
289 | #define INT_850_MMC_SDIO (23 + IH2_BASE) | ||
290 | #define INT_850_UPLD (24 + IH2_BASE) | ||
291 | #define INT_850_USB_HHC_1 (27 + IH2_BASE) | ||
292 | #define INT_850_USB_HHC_2 (28 + IH2_BASE) | ||
293 | #define INT_850_USB_GENI (29 + IH2_BASE) | ||
294 | #define INT_850_USB_OTG (30 + IH2_BASE) | ||
295 | #define INT_850_CAMERA_IF (31 + IH2_BASE) | ||
296 | #define INT_850_RNG (32 + IH2_BASE) | ||
297 | #define INT_850_DUAL_MODE_TIMER (33 + IH2_BASE) | ||
298 | #define INT_850_DBB_RF_EN (34 + IH2_BASE) | ||
299 | #define INT_850_MPUIO_KEYPAD (35 + IH2_BASE) | ||
300 | #define INT_850_SHA1_MD5 (36 + IH2_BASE) | ||
301 | #define INT_850_SPI_100K_2 (37 + IH2_BASE) | ||
302 | #define INT_850_RNG_IDLE (38 + IH2_BASE) | ||
303 | #define INT_850_MPUIO (39 + IH2_BASE) | ||
304 | #define INT_850_LLPC_LCD_CTRL_CAN_BE_OFF (40 + IH2_BASE) | ||
305 | #define INT_850_LLPC_OE_FALLING (41 + IH2_BASE) | ||
306 | #define INT_850_LLPC_OE_RISING (42 + IH2_BASE) | ||
307 | #define INT_850_LLPC_VSYNC (43 + IH2_BASE) | ||
308 | #define INT_850_WAKE_UP_REQ (46 + IH2_BASE) | ||
309 | #define INT_850_DMA_CH6 (53 + IH2_BASE) | ||
310 | #define INT_850_DMA_CH7 (54 + IH2_BASE) | ||
311 | #define INT_850_DMA_CH8 (55 + IH2_BASE) | ||
312 | #define INT_850_DMA_CH9 (56 + IH2_BASE) | ||
313 | #define INT_850_DMA_CH10 (57 + IH2_BASE) | ||
314 | #define INT_850_DMA_CH11 (58 + IH2_BASE) | ||
315 | #define INT_850_DMA_CH12 (59 + IH2_BASE) | ||
316 | #define INT_850_DMA_CH13 (60 + IH2_BASE) | ||
317 | #define INT_850_DMA_CH14 (61 + IH2_BASE) | ||
318 | #define INT_850_DMA_CH15 (62 + IH2_BASE) | ||
319 | #define INT_850_NAND (63 + IH2_BASE) | ||
320 | |||
240 | #define INT_24XX_SYS_NIRQ 7 | 321 | #define INT_24XX_SYS_NIRQ 7 |
241 | #define INT_24XX_SDMA_IRQ0 12 | 322 | #define INT_24XX_SDMA_IRQ0 12 |
242 | #define INT_24XX_SDMA_IRQ1 13 | 323 | #define INT_24XX_SDMA_IRQ1 13 |
@@ -341,7 +422,7 @@ | |||
341 | 422 | ||
342 | #define INT_34XX_BENCH_MPU_EMUL 3 | 423 | #define INT_34XX_BENCH_MPU_EMUL 3 |
343 | 424 | ||
344 | /* Max. 128 level 2 IRQs (OMAP1610), 192 GPIOs (OMAP730) and | 425 | /* Max. 128 level 2 IRQs (OMAP1610), 192 GPIOs (OMAP730/850) and |
345 | * 16 MPUIO lines */ | 426 | * 16 MPUIO lines */ |
346 | #define OMAP_MAX_GPIO_LINES 192 | 427 | #define OMAP_MAX_GPIO_LINES 192 |
347 | #define IH_GPIO_BASE (128 + IH2_BASE) | 428 | #define IH_GPIO_BASE (128 + IH2_BASE) |