diff options
| author | Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> | 2007-12-08 16:34:08 +0100 | 
|---|---|---|
| committer | Wolfgang Denk <wd@denx.de> | 2008-01-09 11:53:58 +0100 | 
| commit | 7b74ebe723e576baedf5a8b6240589b19b845a1b (patch) | |
| tree | adedccf12890c21a02e824abbddbbbe7842d6c08 /cpu/ixp/serial.c | |
| parent | a2df4da31b1a1e41e3e9e1358cfc52b806046ce1 (diff) | |
| download | olio-uboot-2014.01-7b74ebe723e576baedf5a8b6240589b19b845a1b.tar.xz olio-uboot-2014.01-7b74ebe723e576baedf5a8b6240589b19b845a1b.zip | |
IXP: Add full baud-rate support for ixp42x, ixp45x and ixp46x
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>
Diffstat (limited to 'cpu/ixp/serial.c')
| -rw-r--r-- | cpu/ixp/serial.c | 24 | 
1 files changed, 10 insertions, 14 deletions
| diff --git a/cpu/ixp/serial.c b/cpu/ixp/serial.c index 201595857..df379f380 100644 --- a/cpu/ixp/serial.c +++ b/cpu/ixp/serial.c @@ -31,25 +31,22 @@  #include <common.h>  #include <asm/arch/ixp425.h> +/* + *               14.7456 MHz + * Baud Rate = -------------- + *              16 x Divisor + */ +#define SERIAL_CLOCK 921600  +  DECLARE_GLOBAL_DATA_PTR;  void serial_setbrg (void)  {  	unsigned int quot = 0;  	int uart = CFG_IXP425_CONSOLE; - -	if (gd->baudrate == 1200) -		quot = 192; -	else if (gd->baudrate == 9600) -		quot = 96; -	else if (gd->baudrate == 19200) -		quot = 48; -	else if (gd->baudrate == 38400) -		quot = 24; -	else if (gd->baudrate == 57600) -		quot = 16; -	else if (gd->baudrate == 115200) -		quot = 8; +	 +	if ((gd->baudrate <= SERIAL_CLOCK) && (SERIAL_CLOCK % gd->baudrate == 0)) +		quot = SERIAL_CLOCK / gd->baudrate;  	else  		hang (); @@ -65,7 +62,6 @@ void serial_setbrg (void)  	IER(uart) = IER_UUE;  } -  /*   * Initialise the serial port with the given baudrate. The settings   * are always 8 data bits, no parity, 1 stop bit, no start bits. |