]> git.sur5r.net Git - u-boot/blobdiff - cpu/ppc4xx/uic.c
ppc/85xx: add cpu init config file for boot from NAND
[u-boot] / cpu / ppc4xx / uic.c
index fbf0c2b6ba914afb96241c3a71e2edda16e277d5..d298b312ceed7963e3a5125645d538374e938a49 100644 (file)
@@ -59,27 +59,19 @@ DECLARE_GLOBAL_DATA_PTR;
 
 void pic_enable(void)
 {
-
 #if (UIC_MAX > 1)
        /* Install the UIC1 handlers */
-       irq_install_handler(VECNUM_UIC1NCI, (void *)(void *)external_interrupt,
-                           0);
-       irq_install_handler(VECNUM_UIC1CI, (void *)(void *)external_interrupt,
-                           0);
+       irq_install_handler(VECNUM_UIC1NCI, (void *)(void *)external_interrupt, 0);
+       irq_install_handler(VECNUM_UIC1CI, (void *)(void *)external_interrupt, 0);
 #endif
 #if (UIC_MAX > 2)
-       irq_install_handler(VECNUM_UIC2NCI, (void *)(void *)external_interrupt,
-                           0);
-       irq_install_handler(VECNUM_UIC2CI, (void *)(void *)external_interrupt,
-                           0);
+       irq_install_handler(VECNUM_UIC2NCI, (void *)(void *)external_interrupt, 0);
+       irq_install_handler(VECNUM_UIC2CI, (void *)(void *)external_interrupt, 0);
 #endif
 #if (UIC_MAX > 3)
-       irq_install_handler(VECNUM_UIC3NCI, (void *)(void *)external_interrupt,
-                           0);
-       irq_install_handler(VECNUM_UIC3CI, (void *)(void *)external_interrupt,
-                           0);
+       irq_install_handler(VECNUM_UIC3NCI, (void *)(void *)external_interrupt, 0);
+       irq_install_handler(VECNUM_UIC3CI, (void *)(void *)external_interrupt, 0);
 #endif
-
 }
 
 /* Handler for UIC interrupt */
@@ -137,31 +129,24 @@ void external_interrupt(struct pt_regs *regs)
                uic_interrupt(UIC3_DCR_BASE, 96);
 #endif
 
+       mtdcr(uic0sr, (uic_msr & UICB0_ALL));
+
        if (uic_msr & ~(UICB0_ALL))
                uic_interrupt(UIC0_DCR_BASE, 0);
 
-       mtdcr(uic0sr, uic_msr);
-
        return;
 }
 
 void pic_irq_ack(unsigned int vec)
 {
-
        if ((vec >= 0) && (vec < 32))
                mtdcr(uicsr, UIC_MASK(vec));
-#if (UIC_MAX > 1)
        else if ((vec >= 32) && (vec < 64))
                mtdcr(uic1sr, UIC_MASK(vec));
-#endif
-#if (UIC_MAX > 2)
        else if ((vec >= 64) && (vec < 96))
                mtdcr(uic2sr, UIC_MASK(vec));
-#endif
-#if (UIC_MAX > 3)
        else if (vec >= 96)
                mtdcr(uic3sr, UIC_MASK(vec));
-#endif
 }
 
 /*
@@ -172,38 +157,24 @@ void pic_irq_enable(unsigned int vec)
 
        if ((vec >= 0) && (vec < 32))
                mtdcr(uicer, mfdcr(uicer) | UIC_MASK(vec));
-#if (UIC_MAX > 1)
        else if ((vec >= 32) && (vec < 64))
                mtdcr(uic1er, mfdcr(uic1er) | UIC_MASK(vec));
-#endif
-#if (UIC_MAX > 2)
        else if ((vec >= 64) && (vec < 96))
                mtdcr(uic2er, mfdcr(uic2er) | UIC_MASK(vec));
-#endif
-#if (UIC_MAX > 3)
        else if (vec >= 96)
                mtdcr(uic3er, mfdcr(uic3er) | UIC_MASK(vec));
-#endif
 
-       debug("Install interrupt for vector %d ==> %p\n", vec, handler);
+       debug("Install interrupt vector %d\n", vec);
 }
 
 void pic_irq_disable(unsigned int vec)
 {
-
        if ((vec >= 0) && (vec < 32))
                mtdcr(uicer, mfdcr(uicer) & ~UIC_MASK(vec));
-#if (UIC_MAX > 1)
        else if ((vec >= 32) && (vec < 64))
                mtdcr(uic1er, mfdcr(uic1er) & ~UIC_MASK(vec));
-#endif
-#if (UIC_MAX > 2)
        else if ((vec >= 64) && (vec < 96))
                mtdcr(uic2er, mfdcr(uic2er) & ~UIC_MASK(vec));
-#endif
-#if (UIC_MAX > 3)
        else if (vec >= 96)
                mtdcr(uic3er, mfdcr(uic3er) & ~UIC_MASK(vec));
-#endif
-
 }