summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cpu/ppc4xx/interrupts.c2
-rw-r--r--cpu/ppc4xx/uic.c41
-rw-r--r--drivers/serial/serial_xuartlite.c10
-rw-r--r--include/asm-ppc/xilinx_irq.h22
4 files changed, 23 insertions, 52 deletions
diff --git a/cpu/ppc4xx/interrupts.c b/cpu/ppc4xx/interrupts.c
index 58d1d81..494bd8c 100644
--- a/cpu/ppc4xx/interrupts.c
+++ b/cpu/ppc4xx/interrupts.c
@@ -136,7 +136,7 @@ int interrupt_init_cpu (unsigned *decrementer_count)
set_evpr(0x00000000);
/*
- *Call uic or xilinx_irq pic_enable
+ * Call uic or xilinx_irq pic_enable
*/
pic_enable();
diff --git a/cpu/ppc4xx/uic.c b/cpu/ppc4xx/uic.c
index fbf0c2b..7944c6c 100644
--- a/cpu/ppc4xx/uic.c
+++ b/cpu/ppc4xx/uic.c
@@ -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 */
@@ -147,21 +139,14 @@ void external_interrupt(struct pt_regs *regs)
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);
}
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
-
}
diff --git a/drivers/serial/serial_xuartlite.c b/drivers/serial/serial_xuartlite.c
index 5c41a1c..61e6887 100644
--- a/drivers/serial/serial_xuartlite.c
+++ b/drivers/serial/serial_xuartlite.c
@@ -56,8 +56,8 @@ void serial_putc(const char c)
{
if (c == '\n')
serial_putc('\r');
- while (in_be32(UARTLITE_STATUS) & SR_TX_FIFO_FULL);
- out_be32(UARTLITE_TX_FIFO, (unsigned char) (c & 0xff));
+ while (in_be32((void *)UARTLITE_STATUS) & SR_TX_FIFO_FULL);
+ out_be32((void *)UARTLITE_TX_FIFO, (unsigned char) (c & 0xff));
}
void serial_puts(const char * s)
@@ -69,13 +69,13 @@ void serial_puts(const char * s)
int serial_getc(void)
{
- while (!(in_be32(UARTLITE_STATUS) & SR_RX_FIFO_VALID_DATA));
- return in_be32(UARTLITE_RX_FIFO) & 0xff;
+ while (!(in_be32((void *)UARTLITE_STATUS) & SR_RX_FIFO_VALID_DATA));
+ return in_be32((void *)UARTLITE_RX_FIFO) & 0xff;
}
int serial_tstc(void)
{
- return (in_be32(UARTLITE_STATUS) & SR_RX_FIFO_VALID_DATA);
+ return (in_be32((void *)UARTLITE_STATUS) & SR_RX_FIFO_VALID_DATA);
}
#endif /* CONFIG_MICROBLZE */
diff --git a/include/asm-ppc/xilinx_irq.h b/include/asm-ppc/xilinx_irq.h
index ddccc75..61171c2 100644
--- a/include/asm-ppc/xilinx_irq.h
+++ b/include/asm-ppc/xilinx_irq.h
@@ -19,18 +19,18 @@
#ifndef XILINX_IRQ_H
#define XILINX_IRQ_H
-#define intc XPAR_INTC_0_BASEADDR
-#define ISR (intc+(0*4)) /* Interrupt Status Register */
-#define IPR (intc+(1*4)) /* Interrupt Pending Register */
-#define IER (intc+(2*4)) /* Interrupt Enable Register */
-#define IAR (intc+(3*4)) /* Interrupt Acknowledge Register */
-#define SIE (intc+(4*4)) /* Set Interrupt Enable bits */
-#define CIE (intc+(5*4)) /* Clear Interrupt Enable bits */
-#define IVR (intc+(6*4)) /* Interrupt Vector Register */
-#define MER (intc+(7*4)) /* Master Enable Register */
+#define intc XPAR_INTC_0_BASEADDR
+#define ISR (intc + (0 * 4)) /* Interrupt Status Register */
+#define IPR (intc + (1 * 4)) /* Interrupt Pending Register */
+#define IER (intc + (2 * 4)) /* Interrupt Enable Register */
+#define IAR (intc + (3 * 4)) /* Interrupt Acknowledge Register */
+#define SIE (intc + (4 * 4)) /* Set Interrupt Enable bits */
+#define CIE (intc + (5 * 4)) /* Clear Interrupt Enable bits */
+#define IVR (intc + (6 * 4)) /* Interrupt Vector Register */
+#define MER (intc + (7 * 4)) /* Master Enable Register */
-#define IRQ_MASK(irq) (1<<(irq&0x1f))
+#define IRQ_MASK(irq) (1 << (irq & 0x1f))
-#define IRQ_MAX XPAR_INTC_MAX_NUM_INTR_INPUTS
+#define IRQ_MAX XPAR_INTC_MAX_NUM_INTR_INPUTS
#endif