[PATCH 07/14] MIPS: Loongson 3: Add serial port support.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Signed-off-by: Huacai Chen <chenhc@xxxxxxxxxx>
Signed-off-by: Hongliang Tao <taohl@xxxxxxxxxx>
Signed-off-by: Hua Yan <yanh@xxxxxxxxxx>
---
 arch/mips/include/asm/mach-loongson/loongson.h |    3 ++
 arch/mips/loongson/common/serial.c             |   27 ++++++++++++++++++++++++
 arch/mips/loongson/common/uart_base.c          |    5 ++++
 3 files changed, 35 insertions(+), 0 deletions(-)

diff --git a/arch/mips/include/asm/mach-loongson/loongson.h b/arch/mips/include/asm/mach-loongson/loongson.h
index fe7d9a6..16d0924 100644
--- a/arch/mips/include/asm/mach-loongson/loongson.h
+++ b/arch/mips/include/asm/mach-loongson/loongson.h
@@ -125,6 +125,9 @@ static inline void do_perfcnt_IRQ(void)
 #define LOONGSON_PCICONFIGBASE	0x00
 #define LOONGSON_REGBASE	0x100
 
+/* Loongson-3A cpu uart */
+#define LOONGSON_UART_BASE 0x1fe001e0
+
 /* PCI Configuration Registers */
 
 #define LOONGSON_PCI_REG(x)	LOONGSON_REG(LOONGSON_PCICONFIGBASE + (x))
diff --git a/arch/mips/loongson/common/serial.c b/arch/mips/loongson/common/serial.c
index 7580873..6bfe9dd 100644
--- a/arch/mips/loongson/common/serial.c
+++ b/arch/mips/loongson/common/serial.c
@@ -47,6 +47,33 @@ static struct plat_serial8250_port uart8250_data[][2] = {
 	[MACH_DEXXON_GDIUM2F10]         {PORT_M(3), {} },
 	[MACH_LEMOTE_NAS]               {PORT_M(3), {} },
 	[MACH_LEMOTE_LL2F]              {PORT(3), {} },
+	[MACH_LEMOTE_A1004]             {
+						{
+							.irq		= MIPS_CPU_IRQ_BASE + 2,
+							.uartclk	= 33177600,
+							.iotype		= UPIO_MEM,
+							.flags		= UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,
+						},
+						{}
+					},
+	[MACH_LEMOTE_A1101]             {
+						{
+							.irq		= MIPS_CPU_IRQ_BASE + 2,
+							.uartclk	= 25000000,
+							.iotype		= UPIO_MEM,
+							.flags		= UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,
+						},
+						{}
+					},
+	[MACH_LEMOTE_A1205]             {
+						{
+							.irq		= MIPS_CPU_IRQ_BASE + 2,
+							.uartclk	= 25000000,
+							.iotype		= UPIO_MEM,
+							.flags		= UPF_BOOT_AUTOCONF | UPF_SKIP_TEST,
+						},
+						{}
+					},
 	[MACH_LOONGSON_END]             {},
 };
 
diff --git a/arch/mips/loongson/common/uart_base.c b/arch/mips/loongson/common/uart_base.c
index d69ea54..ca86c07 100644
--- a/arch/mips/loongson/common/uart_base.c
+++ b/arch/mips/loongson/common/uart_base.c
@@ -30,6 +30,11 @@ void prom_init_loongson_uart_base(void)
 	case MACH_LEMOTE_LL2F:
 		loongson_uart_base = LOONGSON_PCIIO_BASE + 0x2f8;
 		break;
+	case MACH_LEMOTE_A1004:
+	case MACH_LEMOTE_A1101:
+	case MACH_LEMOTE_A1205:
+		loongson_uart_base = LOONGSON_UART_BASE;
+		break;
 	case MACH_LEMOTE_ML2F7:
 	case MACH_LEMOTE_YL2F89:
 	case MACH_DEXXON_GDIUM2F10:
-- 
1.7.7.3




[Index of Archives]     [Linux MIPS Home]     [LKML Archive]     [Linux ARM Kernel]     [Linux ARM]     [Linux]     [Git]     [Yosemite News]     [Linux SCSI]     [Linux Hams]

  Powered by Linux