Hi Albrecht, Thanks for this work, comment below...
On Mon, Mar 1, 2010 at 11:11 AM, Albrecht Dreß <albrecht.dr...@arcor.de> wrote: > On the MPC5200B, select the baud rate prescaler as /4 by default to make very > high baud rates (e.g. 3 MBaud) accessible and to achieve a higher precision > for high baud rates in general. For baud rates below ~500 Baud, the code will > automatically fall back to the /32 prescaler. The original MPC5200 does only > have a /32 prescaler which is detected only once and stored in a global. A > new chip-dependent method is used to set the divisor. > > Tested on a custom 5200B based board, with up to 3 MBaud. > > Signed-off-by: Albrecht Dreß <albrecht.dr...@arcor.de> > > --- > > --- linux-2.6.33/drivers/serial/mpc52xx_uart.c.orig 2010-02-24 > 19:52:17.000000000 +0100 > +++ linux-2.6.33/drivers/serial/mpc52xx_uart.c 2010-02-26 21:12:51.000000000 > +0100 > /* Search for bus-frequency property in this node or a parent */ > static unsigned long mpc52xx_getuartclk(void *p) > { > /* > - * 5200 UARTs have a / 32 prescaler > - * but the generic serial code assumes 16 > - * so return ipb freq / 2 > + * The 5200 has only /32 prescalers. > + * 5200B UARTs have a /4 or a /32 prescaler. For higher accuracy, we > + * do all calculations using the /4 prescaler for this chip. > + * The generic serial code assumes /16 so return ipb freq / 2 (5200) > + * or ipb freq * 4 (5200B). > */ > - return mpc5xxx_get_bus_frequency(p) / 2; > + if (is_mpc5200b == 1) > + return mpc5xxx_get_bus_frequency(p) * 4; > + else > + return mpc5xxx_get_bus_frequency(p) / 2; > } Remove this function entirely and the associated .getuartclk() hook from the psc_ops structure. Callers can just call mpc5xxx_get_bus_frequency() directly. mpc5121 already just passes back the return value unmodified, and current mpc52xx code uses a /2, but that would be eliminated if the new set_divisor hook took that into account. That way all the chip-specific clock setup calculation is consolidated into a single function. I like patches that make things simpler. -- Grant Likely, B.Sc., P.Eng. Secret Lab Technologies Ltd. _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev