Patches by Kshitij, 04 Jul 2003
- added support for arm925t cpu core
- added support for TI OMAP 1510 Innovator Board
diff --git a/drivers/serial.c b/drivers/serial.c
index 36d0e6e..f28ad80 100644
--- a/drivers/serial.c
+++ b/drivers/serial.c
@@ -42,12 +42,22 @@
#error no valid console defined
#endif
-int serial_init (void)
+static int calc_divisor (void)
{
DECLARE_GLOBAL_DATA_PTR;
+#ifdef CONFIG_OMAP1510
+ /* If can't cleanly clock 115200 set div to 1 */
+ if ((CFG_NS16550_CLK == 12000000) && (gd->baudrate == 115200)) {
+ console->osc_12m_sel = OSC_12M_SEL; /* enable 6.5 * divisor */
+ return (1); /* return 1 for base divisor */
+ }
+#endif
+ return (CFG_NS16550_CLK / 16 / gd->baudrate);
+}
- int clock_divisor = (CFG_NS16550_CLK + gd->baudrate * 8 )
- / (gd->baudrate * 16);
+int serial_init (void)
+{
+ int clock_divisor = calc_divisor();
#ifdef CFG_NS87308
initialise_ns87308();
@@ -91,10 +101,9 @@
void
serial_setbrg (void)
{
- DECLARE_GLOBAL_DATA_PTR;
+ int clock_divisor;
- int clock_divisor = CFG_NS16550_CLK / 16 / gd->baudrate;
-
+ clock_divisor = calc_divisor();
NS16550_reinit(console, clock_divisor);
}