summaryrefslogtreecommitdiff
path: root/arch/arm/mach-omap2/irq.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-omap2/irq.c')
-rw-r--r--arch/arm/mach-omap2/irq.c32
1 files changed, 11 insertions, 21 deletions
diff --git a/arch/arm/mach-omap2/irq.c b/arch/arm/mach-omap2/irq.c
index 3a12f7586a4..3af2b7a1045 100644
--- a/arch/arm/mach-omap2/irq.c
+++ b/arch/arm/mach-omap2/irq.c
@@ -141,20 +141,25 @@ omap_alloc_gc(void __iomem *base, unsigned int irq_start, unsigned int num)
IRQ_NOREQUEST | IRQ_NOPROBE, 0);
}
-static void __init omap_init_irq(u32 base, int nr_irqs)
+void __init omap_init_irq(void)
{
unsigned long nr_of_irqs = 0;
unsigned int nr_banks = 0;
int i, j;
- omap_irq_base = ioremap(base, SZ_4K);
- if (WARN_ON(!omap_irq_base))
- return;
-
for (i = 0; i < ARRAY_SIZE(irq_banks); i++) {
+ unsigned long base = 0;
struct omap_irq_bank *bank = irq_banks + i;
- bank->nr_irqs = nr_irqs;
+ if (cpu_is_omap24xx())
+ base = OMAP24XX_IC_BASE;
+ else if (cpu_is_omap34xx())
+ base = OMAP34XX_IC_BASE;
+
+ BUG_ON(!base);
+
+ if (cpu_is_ti816x())
+ bank->nr_irqs = 128;
/* Static mapping, never released */
bank->base_reg = ioremap(base, SZ_4K);
@@ -176,21 +181,6 @@ static void __init omap_init_irq(u32 base, int nr_irqs)
nr_of_irqs, nr_banks, nr_banks > 1 ? "s" : "");
}
-void __init omap2_init_irq(void)
-{
- omap_init_irq(OMAP24XX_IC_BASE, 96);
-}
-
-void __init omap3_init_irq(void)
-{
- omap_init_irq(OMAP34XX_IC_BASE, 96);
-}
-
-void __init ti816x_init_irq(void)
-{
- omap_init_irq(OMAP34XX_IC_BASE, 128);
-}
-
#ifdef CONFIG_ARCH_OMAP3
static struct omap3_intc_regs intc_context[ARRAY_SIZE(irq_banks)];