X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=drivers%2Fserial%2Fserial_ns16550.c;h=632da4cf70bb93c15c2a84a93815b6b6078c06c4;hb=64f41212d880f3d00c6994d973aadeec5bda1b65;hp=49e2c1f14f69c17e953a2ca14d65303ef31f0b9c;hpb=f8c7c2033df1f8aa1cd329292f01e87972d84535;p=u-boot diff --git a/drivers/serial/serial_ns16550.c b/drivers/serial/serial_ns16550.c index 49e2c1f14f..632da4cf70 100644 --- a/drivers/serial/serial_ns16550.c +++ b/drivers/serial/serial_ns16550.c @@ -81,7 +81,8 @@ static NS16550_t serial_ports[6] = { static int eserial##port##_init(void) \ { \ int clock_divisor; \ - clock_divisor = calc_divisor(serial_ports[port-1]); \ + clock_divisor = ns16550_calc_divisor(serial_ports[port-1], \ + CONFIG_SYS_NS16550_CLK, gd->baudrate); \ NS16550_init(serial_ports[port-1], clock_divisor); \ return 0 ; \ } \ @@ -118,23 +119,6 @@ static NS16550_t serial_ports[6] = { .puts = eserial##port##_puts, \ } -static int calc_divisor (NS16550_t port) -{ -#ifdef CONFIG_OMAP1510 - /* If can't cleanly clock 115200 set div to 1 */ - if ((CONFIG_SYS_NS16550_CLK == 12000000) && (gd->baudrate == 115200)) { - port->osc_12m_sel = OSC_12M_SEL; /* enable 6.5 * divisor */ - return (1); /* return 1 for base divisor */ - } - port->osc_12m_sel = 0; /* clear if previsouly set */ -#endif - -#define MODE_X_DIV 16 - - return DIV_ROUND_CLOSEST(CONFIG_SYS_NS16550_CLK, - MODE_X_DIV * gd->baudrate); -} - void _serial_putc(const char c,const int port) { @@ -176,7 +160,8 @@ _serial_setbrg (const int port) { int clock_divisor; - clock_divisor = calc_divisor(PORT); + clock_divisor = ns16550_calc_divisor(PORT, CONFIG_SYS_NS16550_CLK, + gd->baudrate); NS16550_reinit(PORT, clock_divisor); }