serial/ns16550: ns16550 has a different register layout on SOC_DA8XX
authorMikhail Kshevetskiy <mikhail.kshevetskiy@gmail.com>
Mon, 9 Jul 2012 08:52:43 +0000 (08:52 +0000)
committerAlbert ARIBAUD <albert.u.boot@aribaud.net>
Sat, 1 Sep 2012 12:58:10 +0000 (14:58 +0200)
also fix NS16550_init() as we need 16x divider

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@gmail.com>
Acked-by: Christian Riesch <christian.riesch@omicron.at>
Tested-by: Christian Riesch <christian.riesch@omicron.at>
Acked-by: Sughosh Ganu <urwithsughosh@gmail.com>
Tested-by: Sughosh Ganu <urwithsughosh@gmail.com>
drivers/serial/ns16550.c
include/ns16550.h

index 0c2395531883c1c5e9a572ce5de70d78a17ac9cb..facadd2f5c3e31f59f09829c46a22cc4feb022e4 100644 (file)
@@ -52,7 +52,7 @@ void NS16550_init(NS16550_t com_port, int baud_divisor)
        serial_out((baud_divisor >> 8) & 0xff, &com_port->dlm);
        serial_out(UART_LCRVAL, &com_port->lcr);
 #if (defined(CONFIG_OMAP) && !defined(CONFIG_OMAP3_ZOOM2)) || \
-                                       defined(CONFIG_AM33XX)
+       defined(CONFIG_AM33XX) || defined(CONFIG_SOC_DA8XX)
 
 #if defined(CONFIG_APTIX)
        /* /13 mode so Aptix 6MHz can hit 115200 */
index e9d2edab09bc51da190a54daead5ef44b27d4518..51cb5b4a66d86029674feca1cdf395d493ec56ae 100644 (file)
@@ -46,6 +46,14 @@ struct NS16550 {
        UART_REG(lsr);          /* 5 */
        UART_REG(msr);          /* 6 */
        UART_REG(spr);          /* 7 */
+#ifdef CONFIG_SOC_DA8XX
+       UART_REG(reg8);         /* 8 */
+       UART_REG(reg9);         /* 9 */
+       UART_REG(revid1);       /* A */
+       UART_REG(revid2);       /* B */
+       UART_REG(pwr_mgmt);     /* C */
+       UART_REG(mdr1);         /* D */
+#else
        UART_REG(mdr1);         /* 8 */
        UART_REG(reg9);         /* 9 */
        UART_REG(regA);         /* A */
@@ -58,6 +66,7 @@ struct NS16550 {
        UART_REG(ssr);          /* 11*/
        UART_REG(reg12);        /* 12*/
        UART_REG(osc_12m_sel);  /* 13*/
+#endif
 };
 
 #define thr rbr