From a18fe77713d49091f241acbaef25850a8575e18d Mon Sep 17 00:00:00 2001 From: Rob Herring Date: Fri, 5 Mar 2010 15:08:23 -0600 Subject: ENGR00121365 mxcuart: rework early uart console Rework early uart to pass in uart base and clock ptr from board. Now early console for ttymxc is always enabled and mxcuart console is not needed. Add fix work-around u-boot illegal uart setup. uboot sets fifo trigger levels to reserved values which breaks early uart console. Use TXFE instead of TRDY. Signed-off-by: Rob Herring Signed-off-by: Alejandro Gonzalez --- arch/arm/mach-mx5/mx51_3stack.c | 6 +++++- arch/arm/mach-mx5/mx51_babbage.c | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) (limited to 'arch/arm/mach-mx5') diff --git a/arch/arm/mach-mx5/mx51_3stack.c b/arch/arm/mach-mx5/mx51_3stack.c index 3de776161a47..d91a9644003a 100644 --- a/arch/arm/mach-mx5/mx51_3stack.c +++ b/arch/arm/mach-mx5/mx51_3stack.c @@ -883,7 +883,6 @@ static void __init mxc_board_init(void) mxc_cpu_common_init(); mxc_register_gpios(); mx51_3stack_io_init(); - early_console_setup(saved_command_line); mxc_register_device(&mxc_wdt_device, NULL); mxc_register_device(&mxcspi1_device, &mxcspi1_data); @@ -963,6 +962,8 @@ static void __init mxc_board_init(void) static void __init mx51_3stack_timer_init(void) { + struct clk *uart_clk; + /* Change the CPU voltages for TO2*/ if (cpu_is_mx51_rev(CHIP_REV_2_0) <= 1) { cpu_wp_auto[0].cpu_voltage = 1175000; @@ -971,6 +972,9 @@ static void __init mx51_3stack_timer_init(void) } mx51_clocks_init(32768, 24000000, 22579200, 24576000); + + uart_clk = clk_get(NULL, "uart_clk.0"); + early_console_setup(UART1_BASE_ADDR, uart_clk); } static struct sys_timer mxc_timer = { diff --git a/arch/arm/mach-mx5/mx51_babbage.c b/arch/arm/mach-mx5/mx51_babbage.c index 6c0d46f323de..4ebe93e0b62a 100644 --- a/arch/arm/mach-mx5/mx51_babbage.c +++ b/arch/arm/mach-mx5/mx51_babbage.c @@ -889,7 +889,6 @@ static void __init mxc_board_init(void) mxc_cpu_common_init(); mxc_register_gpios(); mx51_babbage_io_init(); - early_console_setup(saved_command_line); mxc_register_device(&mxc_wdt_device, NULL); mxc_register_device(&mxcspi1_device, &mxcspi1_data); @@ -959,6 +958,8 @@ static void __init mxc_board_init(void) static void __init mx51_babbage_timer_init(void) { + struct clk *uart_clk; + /* Change the CPU voltages for TO2*/ if (cpu_is_mx51_rev(CHIP_REV_2_0) <= 1) { cpu_wp_auto[0].cpu_voltage = 1175000; @@ -967,6 +968,9 @@ static void __init mx51_babbage_timer_init(void) } mx51_clocks_init(32768, 24000000, 22579200, 24576000); + + uart_clk = clk_get(NULL, "uart_clk.0"); + early_console_setup(UART1_BASE_ADDR, uart_clk); } static struct sys_timer mxc_timer = { -- cgit v1.2.3