summaryrefslogtreecommitdiff
path: root/cpu/blackfin/serial.h
diff options
context:
space:
mode:
Diffstat (limited to 'cpu/blackfin/serial.h')
-rw-r--r--cpu/blackfin/serial.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/cpu/blackfin/serial.h b/cpu/blackfin/serial.h
index 1f0f4b46c7..ec40c266ac 100644
--- a/cpu/blackfin/serial.h
+++ b/cpu/blackfin/serial.h
@@ -175,11 +175,11 @@ static inline uint32_t serial_early_get_baud(void)
__attribute__((always_inline))
static inline void serial_early_set_baud(uint32_t baud)
{
- /* Translate from baud into divisor in terms of SCLK.
- * The +1 is to make sure we over sample just a little
- * rather than under sample the incoming signals.
+ /* Translate from baud into divisor in terms of SCLK. The
+ * weird multiplication 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) - ANOMALY_05000230;
/* Set DLAB in LCR to Access DLL and DLH */
ACCESS_LATCH();