aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/m68k/platform/5206/config.c27
1 files changed, 9 insertions, 18 deletions
diff --git a/arch/m68k/platform/5206/config.c b/arch/m68k/platform/5206/config.c
index 4eec699b3bc9..a8ba8106cbc8 100644
--- a/arch/m68k/platform/5206/config.c
+++ b/arch/m68k/platform/5206/config.c
@@ -44,26 +44,17 @@ static struct platform_device *m5206_devices[] __initdata = {
44 44
45/***************************************************************************/ 45/***************************************************************************/
46 46
47static void __init m5206_uart_init_line(int line, int irq)
48{
49 if (line == 0) {
50 writel(MCFSIM_ICR_LEVEL6 | MCFSIM_ICR_PRI1, MCF_MBAR + MCFSIM_UART1ICR);
51 writeb(irq, MCFUART_BASE0 + MCFUART_UIVR);
52 mcf_mapirq2imr(irq, MCFINTC_UART0);
53 } else if (line == 1) {
54 writel(MCFSIM_ICR_LEVEL6 | MCFSIM_ICR_PRI2, MCF_MBAR + MCFSIM_UART2ICR);
55 writeb(irq, MCFUART_BASE1 + MCFUART_UIVR);
56 mcf_mapirq2imr(irq, MCFINTC_UART1);
57 }
58}
59
60static void __init m5206_uarts_init(void) 47static void __init m5206_uarts_init(void)
61{ 48{
62 const int nrlines = ARRAY_SIZE(m5206_uart_platform); 49 /* UART0 interrupt setup */
63 int line; 50 writel(MCFSIM_ICR_LEVEL6 | MCFSIM_ICR_PRI1, MCF_MBAR + MCFSIM_UART1ICR);
64 51 writeb(MCF_IRQ_UART0, MCFUART_BASE0 + MCFUART_UIVR);
65 for (line = 0; (line < nrlines); line++) 52 mcf_mapirq2imr(MCF_IRQ_UART0, MCFINTC_UART0);
66 m5206_uart_init_line(line, m5206_uart_platform[line].irq); 53
54 /* UART1 interrupt setup */
55 writel(MCFSIM_ICR_LEVEL6 | MCFSIM_ICR_PRI2, MCF_MBAR + MCFSIM_UART2ICR);
56 writeb(MCF_IRQ_UART1, MCFUART_BASE1 + MCFUART_UIVR);
57 mcf_mapirq2imr(MCF_IRQ_UART1, MCFINTC_UART1);
67} 58}
68 59
69/***************************************************************************/ 60/***************************************************************************/