summaryrefslogtreecommitdiff
path: root/nuttx/arch
diff options
context:
space:
mode:
authorGregory Nutt <gnutt@nuttx.org>2014-12-19 13:30:58 -0600
committerGregory Nutt <gnutt@nuttx.org>2014-12-19 13:30:58 -0600
commitb6f4931674bb2fa9099ed7bac7992bd4a84fc4f3 (patch)
treee37bf83d7d7b146c47bc4d5e65745830cb9099c6 /nuttx/arch
parentf778e40143751058a37e9515d61ed5f610d1c07e (diff)
downloadnuttx-b6f4931674bb2fa9099ed7bac7992bd4a84fc4f3.tar.gz
nuttx-b6f4931674bb2fa9099ed7bac7992bd4a84fc4f3.tar.bz2
nuttx-b6f4931674bb2fa9099ed7bac7992bd4a84fc4f3.zip
stm32: configure PLLSAI clock to enable ltdc register access
Signed-off-by: Marco Krahl <ocram.lhark@gmail.com>
Diffstat (limited to 'nuttx/arch')
-rw-r--r--nuttx/arch/arm/src/stm32/stm32f40xxx_rcc.c26
1 files changed, 26 insertions, 0 deletions
diff --git a/nuttx/arch/arm/src/stm32/stm32f40xxx_rcc.c b/nuttx/arch/arm/src/stm32/stm32f40xxx_rcc.c
index 0f8847f10..b15b383fc 100644
--- a/nuttx/arch/arm/src/stm32/stm32f40xxx_rcc.c
+++ b/nuttx/arch/arm/src/stm32/stm32f40xxx_rcc.c
@@ -746,6 +746,32 @@ static void stm32_stdclockconfig(void)
while ((getreg32(STM32_RCC_CFGR) & RCC_CFGR_SWS_MASK) != RCC_CFGR_SWS_PLL)
{
}
+
+#ifdef CONFIG_STM32_LTDC
+ /* Configure PLLSAI */
+
+ regval = getreg32(STM32_RCC_PLLSAICFGR);
+ regval |= (STM32_RCC_PLLSAICFGR_PLLSAIN
+ | STM32_RCC_PLLSAICFGR_PLLSAIR
+ | STM32_RCC_PLLSAICFGR_PLLSAIQ);
+ putreg32(regval, STM32_RCC_PLLSAICFGR);
+
+ regval = getreg32(STM32_RCC_DCKCFGR);
+ regval |= STM32_RCC_DCKCFGR_PLLSAIDIVR;
+ putreg32(regval, STM32_RCC_DCKCFGR);
+
+ /* Enable PLLSAI */
+
+ regval = getreg32(STM32_RCC_CR);
+ regval |= RCC_CR_PLLSAION;
+ putreg32(regval, STM32_RCC_CR);
+
+ /* Wait until the PLLSAI is ready */
+
+ while ((getreg32(STM32_RCC_CR) & RCC_CR_PLLSAIRDY) == 0)
+ {
+ }
+#endif
}
}
#endif