From 6e552c9b3aa7ba3be57b9569ec92a38af5c65e48 Mon Sep 17 00:00:00 2001
From: Wu Zhangjin <wuzhangjin@gmail.com>
Date: Tue, 17 Nov 2009 00:58:15 +0800
Subject: [PATCH] MIPS: Lemote 2F: Add Lynloong support

Add a new machtype and kernel options for the Lynloong.

Signed-off-by: Wu Zhangjin <wuzhangjin@gmail.com>
Cc: linux-mips@linux-mips.org
Patchwork: http://patchwork.linux-mips.org/patch/657/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
---
 arch/mips/include/asm/bootinfo.h      | 3 ++-
 arch/mips/loongson/common/machtype.c  | 1 +
 arch/mips/loongson/common/serial.c    | 1 +
 arch/mips/loongson/common/uart_base.c | 1 +
 arch/mips/loongson/lemote-2f/reset.c  | 2 ++
 5 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/arch/mips/include/asm/bootinfo.h b/arch/mips/include/asm/bootinfo.h
index be28e3bd0cba..09eee09780f2 100644
--- a/arch/mips/include/asm/bootinfo.h
+++ b/arch/mips/include/asm/bootinfo.h
@@ -68,7 +68,8 @@
 #define MACH_LEMOTE_YL2F89     4
 #define MACH_DEXXON_GDIUM2F10  5
 #define MACH_LEMOTE_NAS        6
-#define MACH_LOONGSON_END      7
+#define MACH_LEMOTE_LL2F       7
+#define MACH_LOONGSON_END      8
 
 extern char *system_type;
 const char *get_system_type(void);
diff --git a/arch/mips/loongson/common/machtype.c b/arch/mips/loongson/common/machtype.c
index d57e1f4503ad..0ed52b3f5314 100644
--- a/arch/mips/loongson/common/machtype.c
+++ b/arch/mips/loongson/common/machtype.c
@@ -26,6 +26,7 @@ static const char *system_types[] = {
 	[MACH_LEMOTE_YL2F89]            "lemote-yeeloong-2f-8.9inches",
 	[MACH_DEXXON_GDIUM2F10]         "dexxon-gidum-2f-10inches",
 	[MACH_LEMOTE_NAS]		"lemote-nas-2f",
+	[MACH_LEMOTE_LL2F]              "lemote-lynloong-2f",
 	[MACH_LOONGSON_END]             NULL,
 };
 
diff --git a/arch/mips/loongson/common/serial.c b/arch/mips/loongson/common/serial.c
index 45601e4315d5..ea29db099aee 100644
--- a/arch/mips/loongson/common/serial.c
+++ b/arch/mips/loongson/common/serial.c
@@ -46,6 +46,7 @@ static struct plat_serial8250_port uart8250_data[][2] = {
 	[MACH_LEMOTE_YL2F89]            {PORT_M(3), {} },
 	[MACH_DEXXON_GDIUM2F10]         {PORT_M(3), {} },
 	[MACH_LEMOTE_NAS]               {PORT_M(3), {} },
+	[MACH_LEMOTE_LL2F]              {PORT(3), {} },
 	[MACH_LOONGSON_END]             {},
 };
 
diff --git a/arch/mips/loongson/common/uart_base.c b/arch/mips/loongson/common/uart_base.c
index e34d699f6f35..1d636f4f7505 100644
--- a/arch/mips/loongson/common/uart_base.c
+++ b/arch/mips/loongson/common/uart_base.c
@@ -24,6 +24,7 @@ unsigned long __maybe_unused uart8250_base[] = {
 	[MACH_LEMOTE_YL2F89]	(LOONGSON_LIO1_BASE + 0x3f8),
 	[MACH_DEXXON_GDIUM2F10]	(LOONGSON_LIO1_BASE + 0x3f8),
 	[MACH_LEMOTE_NAS]	(LOONGSON_LIO1_BASE + 0x3f8),
+	[MACH_LEMOTE_LL2F]	(LOONGSON_PCIIO_BASE + 0x2f8),
 	[MACH_LOONGSON_END]	0,
 };
 EXPORT_SYMBOL(uart8250_base);
diff --git a/arch/mips/loongson/lemote-2f/reset.c b/arch/mips/loongson/lemote-2f/reset.c
index 980299dbeac3..44bb984d58dd 100644
--- a/arch/mips/loongson/lemote-2f/reset.c
+++ b/arch/mips/loongson/lemote-2f/reset.c
@@ -142,6 +142,7 @@ void mach_prepare_reboot(void)
 	switch (mips_machtype) {
 	case MACH_LEMOTE_FL2F:
 	case MACH_LEMOTE_NAS:
+	case MACH_LEMOTE_LL2F:
 		fl2f_reboot();
 		break;
 	case MACH_LEMOTE_ML2F7:
@@ -160,6 +161,7 @@ void mach_prepare_shutdown(void)
 	switch (mips_machtype) {
 	case MACH_LEMOTE_FL2F:
 	case MACH_LEMOTE_NAS:
+	case MACH_LEMOTE_LL2F:
 		fl2f_shutdown();
 		break;
 	case MACH_LEMOTE_ML2F7: