m68knommu: make 5407 UART platform addressing consistent
authorGreg Ungerer <gerg@uclinux.org>
Fri, 23 Dec 2011 14:43:13 +0000 (00:43 +1000)
committerGreg Ungerer <gerg@uclinux.org>
Sun, 4 Mar 2012 23:43:06 +0000 (09:43 +1000)
If we make all UART addressing consistent across all ColdFire family members
then we will be able to remove the duplicated plaform data and use a single
setup for all.

So modify the ColdFire 5407 UART addressing so that:

. UARTs are numbered from 0 up
. base addresses are absolute (not relative to MBAR peripheral register)
. use a common name for IRQs used

Signed-off-by: Greg Ungerer <gerg@uclinux.org>
arch/m68k/include/asm/m5407sim.h
arch/m68k/platform/5407/config.c

index 51e00b00b8a6a93e2e5af1496716d2326523be71..79f58dd6a83da3d532d3687d139144999daf3801 100644 (file)
@@ -85,8 +85,8 @@
 #define MCFTIMER_BASE1         (MCF_MBAR + 0x140)      /* Base of TIMER1 */
 #define MCFTIMER_BASE2         (MCF_MBAR + 0x180)      /* Base of TIMER2 */
 
-#define MCFUART_BASE1          0x1c0           /* Base address of UART1 */
-#define MCFUART_BASE2          0x200           /* Base address of UART2 */
+#define MCFUART_BASE0          (MCF_MBAR + 0x1c0)      /* Base address UART0 */
+#define MCFUART_BASE1          (MCF_MBAR + 0x200)      /* Base address UART1 */
 
 #define        MCFSIM_PADDR            (MCF_MBAR + 0x244)
 #define        MCFSIM_PADAT            (MCF_MBAR + 0x248)
  */
 #define        MCF_IRQ_TIMER           30              /* Timer0, Level 6 */
 #define        MCF_IRQ_PROFILER        31              /* Timer1, Level 7 */
+#define        MCF_IRQ_UART0           73              /* UART0 */
+#define        MCF_IRQ_UART1           74              /* UART1 */
 
 /****************************************************************************/
 #endif /* m5407sim_h */
index 4861be602dcd53567e833218e49171056bc8abf2..f8ed5856d7cbad7311563c2f037cd2f7f6b24e6a 100644 (file)
 
 static struct mcf_platform_uart m5407_uart_platform[] = {
        {
-               .mapbase        = MCF_MBAR + MCFUART_BASE1,
-               .irq            = 73,
+               .mapbase        = MCFUART_BASE0,
+               .irq            = MCF_IRQ_UART0,
        },
        {
-               .mapbase        = MCF_MBAR + MCFUART_BASE2,
-               .irq            = 74,
+               .mapbase        = MCFUART_BASE1,
+               .irq            = MCF_IRQ_UART1,
        },
        { },
 };
@@ -48,11 +48,11 @@ static void __init m5407_uart_init_line(int line, int irq)
 {
        if (line == 0) {
                writeb(MCFSIM_ICR_LEVEL6 | MCFSIM_ICR_PRI1, MCF_MBAR + MCFSIM_UART1ICR);
-               writeb(irq, MCF_MBAR + MCFUART_BASE1 + MCFUART_UIVR);
+               writeb(irq, MCFUART_BASE0 + MCFUART_UIVR);
                mcf_mapirq2imr(irq, MCFINTC_UART0);
        } else if (line == 1) {
                writeb(MCFSIM_ICR_LEVEL6 | MCFSIM_ICR_PRI2, MCF_MBAR + MCFSIM_UART2ICR);
-               writeb(irq, MCF_MBAR + MCFUART_BASE2 + MCFUART_UIVR);
+               writeb(irq, MCFUART_BASE1 + MCFUART_UIVR);
                mcf_mapirq2imr(irq, MCFINTC_UART1);
        }
 }