From 9eaa978feb942497c4542cc82e63d5468dc8f184 Mon Sep 17 00:00:00 2001
From: Wang Huan <wanghuan@zch06.freescale.net>
Date: Thu, 25 Feb 2010 15:27:21 +0800
Subject: [PATCH 05/23] Add common serial driver and add IRDA support for m547x_8x

Add common serial driver for mcf5445x board and mcf547x, mcf548x boards.
Also add IRDA support for mcf547x, mcf548x boards.

Signed-off-by: Shrek Wu <b16972@freescale.com>
Signed-off-by: Jason Jin <jason.jin@freescale.com>
Signed-off-by: Chengju-Cai <b22600@freescale.com>
---
 arch/m68k/include/asm/mcfuart.h |   35 +++++++++++++---
 drivers/serial/Kconfig          |   13 ++++++
 drivers/serial/mcf.c            |   88 +++++++++++++++++++++++++++++++++++++++
 3 files changed, 130 insertions(+), 6 deletions(-)

--- a/arch/m68k/include/asm/mcfuart.h
+++ b/arch/m68k/include/asm/mcfuart.h
@@ -47,18 +48,35 @@
 #define MCFUART_BASE1		0xfc060000	/* Base address of UART1 */
 #define MCFUART_BASE2		0xfc064000	/* Base address of UART2 */
 #define MCFUART_BASE3		0xfc068000	/* Base address of UART3 */
+#elif defined(CONFIG_M5445X)
+#include <asm/mcf5445x_intc.h>
+#define MCFUART_BASE1           0xfc060000      /* Base address of UART1 */
+#define MCFUART_BASE2           0xfc064000      /* Base address of UART2 */
+#define MCFUART_BASE3           0xfc068000      /* Base address of UART3 */
+#define MCFINT_VECBASE          64
+#define MCFINT_UART0            26
+#elif defined(CONFIG_M547X_8X)
+#define MCFUART_BASE1           0x8600          /* Base address of UART1 */
+#define MCFUART_BASE2           0x8700          /* Base address of UART2 */
+#define MCFUART_BASE3           0x8800          /* Base address of UART3 */
+#define MCFUART_BASE4           0x8900          /* Base address of UART4 */
+#define MCFINT_VECBASE          64
+#define MCFINT_UART0		35
+#define MCFINT_UART1            34
+#define MCFINT_UART2            33
+#define MCFINT_UART3            32
 #endif
 
-
+#ifndef __ASSEMBLY__
 #include <linux/serial_core.h>
 #include <linux/platform_device.h>
-
 struct mcf_platform_uart {
-	unsigned long	mapbase;	/* Physical address base */
-	void __iomem	*membase;	/* Virtual address if mapped */
-	unsigned int	irq;		/* Interrupt vector */
-	unsigned int	uartclk;	/* UART clock rate */
+	unsigned long   mapbase;        /* Physical address base */
+	void __iomem    *membase;       /* Virtual address if mapped */
+	unsigned int    irq;            /* Interrupt vector */
+	unsigned int    uartclk;        /* UART clock rate */
 };
+#endif
 
 /*
  *	Define the ColdFire UART register set addresses.
