[U-Boot-Users] [PATCH] IXP: Add full baud-rate support for ixp42x, ixp45x and ixp46x
Jean-Christophe PLAGNIOL-VILLARD
plagnioj at jcrosoft.com
Sat Dec 8 18:03:31 CET 2007
On 17:58 Sat 08 Dec , Wolfgang Denk wrote:
> In message <1197128128-13438-1-git-send-email-plagnioj at jcrosoft.com> you wrote:
> > Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
> >
> > diff --git a/cpu/ixp/serial.c b/cpu/ixp/serial.c
> > index 2015958..1f13077 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)
there is a missing '='
if(gd->baudrate <= SERIAL_CLOCK && SERIAL_CLOCK % gd->baudrate == 0)
> > + quot = SERIAL_CLOCK / gd->baudrate;
>
> Is it correct to assume that the old "quot" for 1200 bps was actually
> wrong, and you now fix this?
Yes you're right, according to the cpu datasheet the quot for 1200 must
be 768 and not 192
Best Regards,
J.
More information about the U-Boot
mailing list