[ramips] use common code for early_serial setup
authorGabor Juhos <juhosg@openwrt.org>
Wed, 2 Sep 2009 12:44:17 +0000 (12:44 +0000)
committerGabor Juhos <juhosg@openwrt.org>
Wed, 2 Sep 2009 12:44:17 +0000 (12:44 +0000)
SVN-Revision: 17467

target/linux/ramips/files/arch/mips/include/asm/mach-ralink/common.h
target/linux/ramips/files/arch/mips/ralink/common/setup.c
target/linux/ramips/files/arch/mips/ralink/rt288x/setup.c
target/linux/ramips/files/arch/mips/ralink/rt305x/setup.c

index 250e5a7787f4569d4469a45763078d509eedee94..9e0fdeca6a8ef866a4ca897424b8f084d30c8fc4 100644 (file)
@@ -17,5 +17,7 @@ void __init ramips_intc_irq_init(unsigned intc_base, unsigned irq,
 u32 ramips_intc_get_status(void);
 
 void __init ramips_soc_setup(void);
+void __init ramips_early_serial_setup(int line, unsigned base, unsigned freq,
+                                     unsigned irq);
 
 #endif /* __ASM_MACH_RALINK_COMMON_H */
index 81a1ba4fa492776d1ce666f373e0802249c18826..3030fcd1537e58ee058ec6d88a604323af04f4aa 100644 (file)
@@ -12,6 +12,7 @@
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/io.h>
+#include <linux/serial_8250.h>
 
 #include <asm/bootinfo.h>
 #include <asm/addrspace.h>
@@ -43,6 +44,30 @@ static void __init detect_mem_size(void)
        add_memory_region(RALINK_SOC_SDRAM_BASE, size, BOOT_MEM_RAM);
 }
 
+void __init ramips_early_serial_setup(int line, unsigned base, unsigned freq,
+                                     unsigned irq)
+{
+       struct uart_port p;
+       int err;
+
+       memset(&p, 0, sizeof(p));
+       p.flags         = UPF_SKIP_TEST;
+       p.iotype        = UPIO_AU;
+       p.uartclk       = freq;
+       p.regshift      = 2;
+       p.type          = PORT_16550A;
+
+       p.mapbase       = base;
+       p.membase       = ioremap_nocache(p.mapbase, PAGE_SIZE);
+       p.line          = line;
+       p.irq           = irq;
+
+       err = early_serial_setup(&p);
+       if (err)
+               printk(KERN_ERR "early serial%d registration failed %d\n",
+                      line, err);
+}
+
 void __init plat_mem_setup(void)
 {
        set_io_port_base(KSEG1);
index 8dc4b3c32ac554a2d0632bb3d5dbaf62fdbd328c..e2328fe5ebe095868ae01e38eabdb0b358b1958f 100644 (file)
@@ -14,7 +14,6 @@
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/io.h>
-#include <linux/serial_8250.h>
 
 #include <asm/mips_machine.h>
 #include <asm/reboot.h>
@@ -38,39 +37,6 @@ static void rt288x_halt(void)
                cpu_wait();
 }
 
-static void __init rt288x_early_serial_setup(void)
-{
-       struct uart_port p;
-       int err;
-
-       memset(&p, 0, sizeof(p));
-       p.flags         = UPF_SKIP_TEST;
-       p.iotype        = UPIO_AU;
-       p.uartclk       = rt288x_sys_freq;
-       p.regshift      = 2;
-       p.type          = PORT_16550A;
-
-       p.mapbase       = RT2880_UART0_BASE;
-       p.membase       = ioremap_nocache(p.mapbase, RT2880_UART0_SIZE);
-       p.line          = 0;
-       p.irq           = RT2880_INTC_IRQ_UART0;
-
-       err = early_serial_setup(&p);
-       if (err)
-               printk(KERN_ERR "RT288x: early UART0 registration failed %d\n",
-                       err);
-
-       p.mapbase       = RT2880_UART1_BASE;
-       p.membase       = ioremap_nocache(p.mapbase, RT2880_UART1_SIZE);
-       p.line          = 1;
-       p.irq           = RT2880_INTC_IRQ_UART1;
-
-       err = early_serial_setup(&p);
-       if (err)
-               printk(KERN_ERR "RT288x: early UART1 registration failed %d\n",
-                       err);
-}
-
 unsigned int __cpuinit get_c0_compare_irq(void)
 {
        return CP0_LEGACY_COMPARE_IRQ;
@@ -92,7 +58,10 @@ void __init ramips_soc_setup(void)
        _machine_halt = rt288x_halt;
        pm_power_off = rt288x_halt;
 
-       rt288x_early_serial_setup();
+       ramips_early_serial_setup(0, RT2880_UART0_BASE, rt288x_sys_freq,
+                                 RT2880_INTC_IRQ_UART0);
+       ramips_early_serial_setup(1, RT2880_UART1_BASE, rt288x_sys_freq,
+                                 RT2880_INTC_IRQ_UART1);
 }
 
 void __init plat_time_init(void)
index 50a8be873bba200b9e8107ff17076097d2fbc806..19f340bd47e0ab439d59b8a9ae097052208ee330 100644 (file)
@@ -13,7 +13,6 @@
 #include <linux/kernel.h>
 #include <linux/init.h>
 #include <linux/io.h>
-#include <linux/serial_8250.h>
 
 #include <asm/mips_machine.h>
 #include <asm/reboot.h>
@@ -38,39 +37,6 @@ static void rt305x_halt(void)
                        cpu_wait();
 }
 
-static void __init rt305x_early_serial_setup(void)
-{
-       struct uart_port p;
-       int err;
-
-       memset(&p, 0, sizeof(p));
-       p.flags         = UPF_SKIP_TEST;
-       p.iotype        = UPIO_AU;
-       p.uartclk       = rt305x_sys_freq;
-       p.regshift      = 2;
-       p.type          = PORT_16550A;
-
-       p.mapbase       = RT305X_UART0_BASE;
-       p.membase       = ioremap_nocache(p.mapbase, RT305X_UART0_SIZE);
-       p.line          = 0;
-       p.irq           = RT305X_INTC_IRQ_UART0;
-
-       err = early_serial_setup(&p);
-       if (err)
-               printk(KERN_ERR "RT305x: early UART0 registration failed %d\n",
-                       err);
-
-       p.mapbase       = RT305X_UART1_BASE;
-       p.membase       = ioremap_nocache(p.mapbase, RT305X_UART1_SIZE);
-       p.line          = 1;
-       p.irq           = RT305X_INTC_IRQ_UART1;
-
-       err = early_serial_setup(&p);
-       if (err)
-               printk(KERN_ERR "RT305x: early UART1 registration failed %d\n",
-                       err);
-}
-
 unsigned int __cpuinit get_c0_compare_irq(void)
 {
        return CP0_LEGACY_COMPARE_IRQ;
@@ -92,7 +58,10 @@ void __init ramips_soc_setup(void)
        _machine_halt = rt305x_halt;
        pm_power_off = rt305x_halt;
 
-       rt305x_early_serial_setup();
+       ramips_early_serial_setup(0, RT305X_UART0_BASE, rt305x_sys_freq,
+                                 RT305X_INTC_IRQ_UART0);
+       ramips_early_serial_setup(1, RT305X_UART1_BASE, rt305x_sys_freq,
+                                 RT305X_INTC_IRQ_UART1);
 }
 
 void __init plat_time_init(void)