We should use the algorithm in the Linux kernel so that the UART divisor
calculation is more accurate.  It also fixes problems on some picky UARTs
that have sampling anomalies.

Signed-off-by: Mike Frysinger <[EMAIL PROTECTED]>
---
 cpu/blackfin/serial.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/cpu/blackfin/serial.h b/cpu/blackfin/serial.h
index 1f0f4b4..d268da5 100644
--- a/cpu/blackfin/serial.h
+++ b/cpu/blackfin/serial.h
@@ -179,7 +179,7 @@ static inline void serial_early_set_baud(uint32_t baud)
         * The +1 is to make sure we over sample just a little
         * rather than under sample the incoming signals.
         */
-       uint16_t divisor = (get_sclk() / (baud * 16)) + 1;
+       uint16_t divisor = (get_sclk() + (baud * 8)) / (baud * 16);
 
        /* Set DLAB in LCR to Access DLL and DLH */
        ACCESS_LATCH();
-- 
1.5.4.4


-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
U-Boot-Users mailing list
U-Boot-Users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/u-boot-users

Reply via email to