1 From 9eaa978feb942497c4542cc82e63d5468dc8f184 Mon Sep 17 00:00:00 2001
2 From: Wang Huan <wanghuan@zch06.freescale.net>
3 Date: Thu, 25 Feb 2010 15:27:21 +0800
4 Subject: [PATCH 05/23] Add common serial driver and add IRDA support for m547x_8x
6 Add common serial driver for mcf5445x board and mcf547x, mcf548x boards.
7 Also add IRDA support for mcf547x, mcf548x boards.
9 Signed-off-by: Shrek Wu <b16972@freescale.com>
10 Signed-off-by: Jason Jin <jason.jin@freescale.com>
11 Signed-off-by: Chengju-Cai <b22600@freescale.com>
13 arch/m68k/include/asm/mcfuart.h | 35 +++++++++++++---
14 drivers/serial/Kconfig | 13 ++++++
15 drivers/serial/mcf.c | 88 +++++++++++++++++++++++++++++++++++++++
16 3 files changed, 130 insertions(+), 6 deletions(-)
18 --- a/arch/m68k/include/asm/mcfuart.h
19 +++ b/arch/m68k/include/asm/mcfuart.h
21 #define MCFUART_BASE1 0xfc060000 /* Base address of UART1 */
22 #define MCFUART_BASE2 0xfc064000 /* Base address of UART2 */
23 #define MCFUART_BASE3 0xfc068000 /* Base address of UART3 */
24 +#elif defined(CONFIG_M5445X)
25 +#include <asm/mcf5445x_intc.h>
26 +#define MCFUART_BASE1 0xfc060000 /* Base address of UART1 */
27 +#define MCFUART_BASE2 0xfc064000 /* Base address of UART2 */
28 +#define MCFUART_BASE3 0xfc068000 /* Base address of UART3 */
29 +#define MCFINT_VECBASE 64
30 +#define MCFINT_UART0 26
31 +#elif defined(CONFIG_M547X_8X)
32 +#define MCFUART_BASE1 0x8600 /* Base address of UART1 */
33 +#define MCFUART_BASE2 0x8700 /* Base address of UART2 */
34 +#define MCFUART_BASE3 0x8800 /* Base address of UART3 */
35 +#define MCFUART_BASE4 0x8900 /* Base address of UART4 */
36 +#define MCFINT_VECBASE 64
37 +#define MCFINT_UART0 35
38 +#define MCFINT_UART1 34
39 +#define MCFINT_UART2 33
40 +#define MCFINT_UART3 32
45 #include <linux/serial_core.h>
46 #include <linux/platform_device.h>
48 struct mcf_platform_uart {
49 - unsigned long mapbase; /* Physical address base */
50 - void __iomem *membase; /* Virtual address if mapped */
51 - unsigned int irq; /* Interrupt vector */
52 - unsigned int uartclk; /* UART clock rate */
53 + unsigned long mapbase; /* Physical address base */
54 + void __iomem *membase; /* Virtual address if mapped */
55 + unsigned int irq; /* Interrupt vector */
56 + unsigned int uartclk; /* UART clock rate */
61 * Define the ColdFire UART register set addresses.