aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/m68k/platform/5307/config.c27
1 files changed, 9 insertions, 18 deletions
diff --git a/arch/m68k/platform/5307/config.c b/arch/m68k/platform/5307/config.c
index dc9ecf07dd07..bad3c27a8a4e 100644
--- a/arch/m68k/platform/5307/config.c
+++ b/arch/m68k/platform/5307/config.c
@@ -53,26 +53,17 @@ static struct platform_device *m5307_devices[] __initdata = {
53 53
54/***************************************************************************/ 54/***************************************************************************/
55 55
56static void __init m5307_uart_init_line(int line, int irq)
57{
58 if (line == 0) {
59 writeb(MCFSIM_ICR_LEVEL6 | MCFSIM_ICR_PRI1, MCF_MBAR + MCFSIM_UART1ICR);
60 writeb(irq, MCFUART_BASE0 + MCFUART_UIVR);
61 mcf_mapirq2imr(irq, MCFINTC_UART0);
62 } else if (line == 1) {
63 writeb(MCFSIM_ICR_LEVEL6 | MCFSIM_ICR_PRI2, MCF_MBAR + MCFSIM_UART2ICR);
64 writeb(irq, MCFUART_BASE1 + MCFUART_UIVR);
65 mcf_mapirq2imr(irq, MCFINTC_UART1);
66 }
67}
68
69static void __init m5307_uarts_init(void) 56static void __init m5307_uarts_init(void)
70{ 57{
71 const int nrlines = ARRAY_SIZE(m5307_uart_platform); 58 /* UART0 interrupt setup */
72 int line; 59 writeb(MCFSIM_ICR_LEVEL6 | MCFSIM_ICR_PRI1, MCF_MBAR + MCFSIM_UART1ICR);
73 60 writeb(MCF_IRQ_UART0, MCFUART_BASE0 + MCFUART_UIVR);
74 for (line = 0; (line < nrlines); line++) 61 mcf_mapirq2imr(MCF_IRQ_UART0, MCFINTC_UART0);
75 m5307_uart_init_line(line, m5307_uart_platform[line].irq); 62
63 /* UART1 interrupt setup */
64 writeb(MCFSIM_ICR_LEVEL6 | MCFSIM_ICR_PRI2, MCF_MBAR + MCFSIM_UART2ICR);
65 writeb(MCF_IRQ_UART1, MCFUART_BASE1 + MCFUART_UIVR);
66 mcf_mapirq2imr(MCF_IRQ_UART1, MCFINTC_UART1);
76} 67}
77 68
78/***************************************************************************/ 69/***************************************************************************/