Merge branch 'fix/asoc' into for-linus
[pandora-kernel.git] / arch / arm / mach-omap1 / irq.c
index 9ad5197..de03c84 100644 (file)
@@ -145,6 +145,14 @@ static struct omap_irq_bank omap730_irq_banks[] = {
 };
 #endif
 
+#ifdef CONFIG_ARCH_OMAP850
+static struct omap_irq_bank omap850_irq_banks[] = {
+       { .base_reg = OMAP_IH1_BASE,            .trigger_map = 0xb3f8e22f },
+       { .base_reg = OMAP_IH2_BASE,            .trigger_map = 0xfdb9c1f2 },
+       { .base_reg = OMAP_IH2_BASE + 0x100,    .trigger_map = 0x800040f3 },
+};
+#endif
+
 #ifdef CONFIG_ARCH_OMAP15XX
 static struct omap_irq_bank omap1510_irq_banks[] = {
        { .base_reg = OMAP_IH1_BASE,            .trigger_map = 0xb3febfff },
@@ -184,6 +192,12 @@ void __init omap_init_irq(void)
                irq_bank_count = ARRAY_SIZE(omap730_irq_banks);
        }
 #endif
+#ifdef CONFIG_ARCH_OMAP850
+       if (cpu_is_omap850()) {
+               irq_banks = omap850_irq_banks;
+               irq_bank_count = ARRAY_SIZE(omap850_irq_banks);
+       }
+#endif
 #ifdef CONFIG_ARCH_OMAP15XX
        if (cpu_is_omap1510()) {
                irq_banks = omap1510_irq_banks;
@@ -214,9 +228,8 @@ void __init omap_init_irq(void)
        irq_bank_writel(0x03, 1, IRQ_CONTROL_REG_OFFSET);
 
        /* Enable interrupts in global mask */
-       if (cpu_is_omap730()) {
+       if (cpu_is_omap7xx())
                irq_bank_writel(0x0, 0, IRQ_GMR_REG_OFFSET);
-       }
 
        /* Install the interrupt handlers for each bank */
        for (i = 0; i < irq_bank_count; i++) {
@@ -236,6 +249,8 @@ void __init omap_init_irq(void)
 
        if (cpu_is_omap730())
                omap_unmask_irq(INT_730_IH2_IRQ);
+       else if (cpu_is_omap850())
+               omap_unmask_irq(INT_850_IH2_IRQ);
        else if (cpu_is_omap15xx())
                omap_unmask_irq(INT_1510_IH2_IRQ);
        else if (cpu_is_omap16xx())