diff options
author | Gregory Nutt <gnutt@nuttx.org> | 2014-10-28 12:36:47 -0600 |
---|---|---|
committer | Gregory Nutt <gnutt@nuttx.org> | 2014-10-28 12:36:47 -0600 |
commit | 96f270dcfd5c000c7f76af54854214a6d1cd60e8 (patch) | |
tree | f65099b638813c23c0e2d54cbfe5dd69ffb1f76f | |
parent | e0a060e1824ca6648f5eaa32dee13ef263dfad1a (diff) | |
download | nuttx-96f270dcfd5c000c7f76af54854214a6d1cd60e8.tar.gz nuttx-96f270dcfd5c000c7f76af54854214a6d1cd60e8.tar.bz2 nuttx-96f270dcfd5c000c7f76af54854214a6d1cd60e8.zip |
EFM32: Add missing shift of register value
-rw-r--r-- | nuttx/arch/arm/src/efm32/efm32_lowputc.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/nuttx/arch/arm/src/efm32/efm32_lowputc.c b/nuttx/arch/arm/src/efm32/efm32_lowputc.c index d5ca32f2e..9d586538f 100644 --- a/nuttx/arch/arm/src/efm32/efm32_lowputc.c +++ b/nuttx/arch/arm/src/efm32/efm32_lowputc.c @@ -204,17 +204,16 @@ static void efm32_uart_setbaud(uintptr_t base, uint32_t baud) clkdiv = 0; } - DEBUGASSERT(clkdiv <= _USART_CLKDIV_MASK); + /* Set up the selected oversampling and baud divisor */ - /* Set up the selected oversampling and baud */ - - regval = getreg32(base + EFM32_USART_CTRL_OFFSET); - regval &= ~_USART_CTRL_OVS_MASK; - regval |= ovs; + regval = getreg32(base + EFM32_USART_CTRL_OFFSET); + regval &= ~_USART_CTRL_OVS_MASK; + regval |= ovs; putreg32(regval, base + EFM32_USART_CTRL_OFFSET); - putreg32((uint32_t)clkdiv & _USART_CLKDIV_DIV_MASK, - base + EFM32_USART_CLKDIV_OFFSET); + regval = (uint32_t)clkdiv << _USART_CLKDIV_DIV_SHIFT; + DEBUGASSERT((regval & _USART_CLKDIV_MASK) == clkdiv); + putreg32(regval, base + EFM32_USART_CLKDIV_OFFSET); } #endif |