/*
- * linux/arch/arm/mach-omap/omap2/irq.c
+ * linux/arch/arm/mach-omap2/irq.c
*
* Interrupt handler for OMAP2 boards.
*
} __attribute__ ((aligned(4))) irq_banks[] = {
{
/* MPU INTC */
- .base_reg = IO_ADDRESS(OMAP24XX_IC_BASE),
+ .base_reg = 0,
.nr_irqs = 96,
- }, {
- /* XXX: DSP INTC */
- }
+ },
};
/* XXX: FIQ and additional INTC support (only MPU at the moment) */
for (i = 0; i < ARRAY_SIZE(irq_banks); i++) {
struct omap_irq_bank *bank = irq_banks + i;
- /* XXX */
- if (!bank->base_reg)
- continue;
-
+ if (cpu_is_omap24xx()) {
+ bank->base_reg = IO_ADDRESS(OMAP24XX_IC_BASE);
+ }
+ if (cpu_is_omap34xx()) {
+ bank->base_reg = IO_ADDRESS(OMAP34XX_IC_BASE);
+ }
omap_irq_bank_init_one(bank);
nr_irqs += bank->nr_irqs;
for (i = 0; i < nr_irqs; i++) {
set_irq_chip(i, &omap_irq_chip);
- set_irq_handler(i, do_level_IRQ);
+ set_irq_handler(i, handle_level_irq);
set_irq_flags(i, IRQF_VALID);
}
}