diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/ns16550.c | 5 | ||||
-rw-r--r-- | drivers/serial.c | 6 |
2 files changed, 8 insertions, 3 deletions
diff --git a/drivers/ns16550.c b/drivers/ns16550.c index b20ae4b2d5..a7aa40ff32 100644 --- a/drivers/ns16550.c +++ b/drivers/ns16550.c @@ -26,10 +26,9 @@ void NS16550_init (NS16550_t com_port, int baud_divisor) com_port->lcr = LCRVAL; com_port->mcr = MCRVAL; com_port->fcr = FCRVAL; -#ifdef CONFIG_OMAP1510 - com_port->mdr1 = 0; /* select uart mode */ +#if defined(CONFIG_OMAP1510) || defined(CONFIG_OMAP1610) + com_port->mdr1 = 0; /* select uart mode */ #endif - } void NS16550_reinit (NS16550_t com_port, int baud_divisor) diff --git a/drivers/serial.c b/drivers/serial.c index 44875e5ae1..f5b51d6b7c 100644 --- a/drivers/serial.c +++ b/drivers/serial.c @@ -53,6 +53,12 @@ static int calc_divisor (void) } console->osc_12m_sel = 0; /* clear if previsouly set */ #endif +#ifdef CONFIG_OMAP1610 + /* If can't cleanly clock 115200 set div to 1 */ + if ((CFG_NS16550_CLK == 48000000) && (gd->baudrate == 115200)) { + return (26); /* return 26 for base divisor */ + } +#endif return (CFG_NS16550_CLK / 16 / gd->baudrate); } |