From 07244cdc4fa4c87351dffbdaae4cbd131edf43ef Mon Sep 17 00:00:00 2001 From: juhosg Date: Wed, 2 Sep 2009 12:44:17 +0000 Subject: [PATCH] [ramips] use common code for early_serial setup git-svn-id: svn://svn.openwrt.org/openwrt/trunk@17467 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- .../mips/include/asm/mach-ralink/common.h | 2 + .../files/arch/mips/ralink/common/setup.c | 25 ++++++++++++ .../files/arch/mips/ralink/rt288x/setup.c | 39 ++----------------- .../files/arch/mips/ralink/rt305x/setup.c | 39 ++----------------- 4 files changed, 35 insertions(+), 70 deletions(-) diff --git a/target/linux/ramips/files/arch/mips/include/asm/mach-ralink/common.h b/target/linux/ramips/files/arch/mips/include/asm/mach-ralink/common.h index 250e5a778..9e0fdeca6 100644 --- a/target/linux/ramips/files/arch/mips/include/asm/mach-ralink/common.h +++ b/target/linux/ramips/files/arch/mips/include/asm/mach-ralink/common.h @@ -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 */ diff --git a/target/linux/ramips/files/arch/mips/ralink/common/setup.c b/target/linux/ramips/files/arch/mips/ralink/common/setup.c index 81a1ba4fa..3030fcd15 100644 --- a/target/linux/ramips/files/arch/mips/ralink/common/setup.c +++ b/target/linux/ramips/files/arch/mips/ralink/common/setup.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include @@ -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); diff --git a/target/linux/ramips/files/arch/mips/ralink/rt288x/setup.c b/target/linux/ramips/files/arch/mips/ralink/rt288x/setup.c index 8dc4b3c32..e2328fe5e 100644 --- a/target/linux/ramips/files/arch/mips/ralink/rt288x/setup.c +++ b/target/linux/ramips/files/arch/mips/ralink/rt288x/setup.c @@ -14,7 +14,6 @@ #include #include #include -#include #include #include @@ -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) diff --git a/target/linux/ramips/files/arch/mips/ralink/rt305x/setup.c b/target/linux/ramips/files/arch/mips/ralink/rt305x/setup.c index 50a8be873..19f340bd4 100644 --- a/target/linux/ramips/files/arch/mips/ralink/rt305x/setup.c +++ b/target/linux/ramips/files/arch/mips/ralink/rt305x/setup.c @@ -13,7 +13,6 @@ #include #include #include -#include #include #include @@ -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)