Fixes UART mis-behavior on dm646x.

Signed-off-by: Sudhakar Rajashekhara <[EMAIL PROTECTED]>
---
 arch/arm/mach-davinci/board-dm646x-evm.c |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-davinci/board-dm646x-evm.c 
b/arch/arm/mach-davinci/board-dm646x-evm.c
index 9f8dac9..818a676 100644
--- a/arch/arm/mach-davinci/board-dm646x-evm.c
+++ b/arch/arm/mach-davinci/board-dm646x-evm.c
@@ -58,6 +58,20 @@ static void __init evm_init_i2c(void)
        davinci_init_i2c(&i2c_pdata);
 }
 
+#define UART_DM646X_SCR         (DAVINCI_UART0_BASE + 0x40)
+/*
+ * Internal UARTs need to be initialized for the 8250 autoconfig to work
+ * properly. Note that the TX watermark initialization may not be needed
+ * once the 8250.c watermark handling code is merged.
+ */
+static int __init dm646x_serial_reset(void)
+{
+       davinci_writel(0x08, UART_DM646X_SCR);
+
+       return 0;
+}
+late_initcall(dm646x_serial_reset);
+
 static void board_init(void)
 {
        davinci_psc_config(DAVINCI_GPSC_ARMDOMAIN, DM646X_LPSC_AEMIF, 1);
-- 
1.5.4.1

_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to