This is an automated email from the ASF dual-hosted git repository.

gnutt pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git


The following commit(s) were added to refs/heads/master by this push:
     new 38b043d  arch/arm/src/stm32f7/: Apply fix introduced by 0947b31fbbd 
for STM32F7[6/7]XX to STM32F7[2/3/4/5]XX.
38b043d is described below

commit 38b043da9fdfa9e00810308c5bfd2aa27220757c
Author: Björn Brandt <[email protected]>
AuthorDate: Wed Jan 8 07:09:49 2020 -0600

    arch/arm/src/stm32f7/: Apply fix introduced by 0947b31fbbd for 
STM32F7[6/7]XX to STM32F7[2/3/4/5]XX.
    
    In RCC configuration, STM32_RCC_DCKCFGR2 has nothing to do with PLLI2S; 
PLLI2S is not dependent on LTDC, instead on SAICLK1/2 generated from PLLI2S
---
 arch/arm/src/stm32f7/stm32f72xx73xx_rcc.c | 32 ++++++++++++++++---------------
 arch/arm/src/stm32f7/stm32f74xx75xx_rcc.c | 32 ++++++++++++++++---------------
 2 files changed, 34 insertions(+), 30 deletions(-)

diff --git a/arch/arm/src/stm32f7/stm32f72xx73xx_rcc.c 
b/arch/arm/src/stm32f7/stm32f72xx73xx_rcc.c
index c648853..bdead95 100644
--- a/arch/arm/src/stm32f7/stm32f72xx73xx_rcc.c
+++ b/arch/arm/src/stm32f7/stm32f72xx73xx_rcc.c
@@ -866,7 +866,7 @@ static void stm32_stdclockconfig(void)
 
 #if defined(CONFIG_STM32F7_LTDC) || defined(CONFIG_STM32F7_PLLSAI)
 
-       /* Configure PLLSAI */
+      /* Configure PLLSAI */
 
       regval = getreg32(STM32_RCC_PLLSAICFGR);
       regval &= ~(RCC_PLLSAICFGR_PLLSAIN_MASK
@@ -918,8 +918,10 @@ static void stm32_stdclockconfig(void)
         {
         }
 #endif
-#if defined(CONFIG_STM32F7_LTDC) || defined(CONFIG_STM32F7_PLLI2S)
 
+#if defined(CONFIG_STM32F7_PLLI2S) || \
+    (STM32_RCC_DCKCFGR1_SAI1SRC == RCC_DCKCFGR1_SAI1SEL(1)) || \
+    (STM32_RCC_DCKCFGR1_SAI2SRC == RCC_DCKCFGR1_SAI2SEL(1))
       /* Configure PLLI2S */
 
       regval = getreg32(STM32_RCC_PLLI2SCFGR);
@@ -937,6 +939,19 @@ static void stm32_stdclockconfig(void)
                  | STM32_RCC_PLLI2SCFGR_PLLI2SR);
       putreg32(regval, STM32_RCC_PLLI2SCFGR);
 
+      /* Enable PLLI2S */
+
+      regval = getreg32(STM32_RCC_CR);
+      regval |= RCC_CR_PLLI2SON;
+      putreg32(regval, STM32_RCC_CR);
+
+      /* Wait until the PLLI2S is ready */
+
+      while ((getreg32(STM32_RCC_CR) & RCC_CR_PLLI2SRDY) == 0)
+        {
+        }
+#endif
+
       regval  = getreg32(STM32_RCC_DCKCFGR2);
       regval &= ~(RCC_DCKCFGR2_USART1SEL_MASK
                   | RCC_DCKCFGR2_USART2SEL_MASK
@@ -978,19 +993,6 @@ static void stm32_stdclockconfig(void)
 
       putreg32(regval, STM32_RCC_DCKCFGR2);
 
-      /* Enable PLLI2S */
-
-      regval = getreg32(STM32_RCC_CR);
-      regval |= RCC_CR_PLLI2SON;
-      putreg32(regval, STM32_RCC_CR);
-
-      /* Wait until the PLLI2S is ready */
-
-      while ((getreg32(STM32_RCC_CR) & RCC_CR_PLLI2SRDY) == 0)
-        {
-        }
-#endif
-
 #if defined(CONFIG_STM32F7_IWDG) || defined(CONFIG_STM32F7_RTC_LSICLOCK)
       /* Low speed internal clock source LSI */
 
diff --git a/arch/arm/src/stm32f7/stm32f74xx75xx_rcc.c 
b/arch/arm/src/stm32f7/stm32f74xx75xx_rcc.c
index 4f571e9..693b742 100644
--- a/arch/arm/src/stm32f7/stm32f74xx75xx_rcc.c
+++ b/arch/arm/src/stm32f7/stm32f74xx75xx_rcc.c
@@ -863,7 +863,7 @@ static void stm32_stdclockconfig(void)
 
 #if defined(CONFIG_STM32F7_LTDC) || defined(CONFIG_STM32F7_PLLSAI)
 
-       /* Configure PLLSAI */
+      /* Configure PLLSAI */
 
       regval = getreg32(STM32_RCC_PLLSAICFGR);
       regval &= ~(RCC_PLLSAICFGR_PLLSAIN_MASK
@@ -905,8 +905,10 @@ static void stm32_stdclockconfig(void)
         {
         }
 #endif
-#if defined(CONFIG_STM32F7_LTDC) || defined(CONFIG_STM32F7_PLLI2S)
 
+#if defined(CONFIG_STM32F7_PLLI2S) || \
+    (STM32_RCC_DCKCFGR1_SAI1SRC == RCC_DCKCFGR1_SAI1SEL(1)) || \
+    (STM32_RCC_DCKCFGR1_SAI2SRC == RCC_DCKCFGR1_SAI2SEL(1))
       /* Configure PLLI2S */
 
       regval = getreg32(STM32_RCC_PLLI2SCFGR);
@@ -920,6 +922,19 @@ static void stm32_stdclockconfig(void)
                  | STM32_RCC_PLLI2SCFGR_PLLI2SR);
       putreg32(regval, STM32_RCC_PLLI2SCFGR);
 
+      /* Enable PLLI2S */
+
+      regval = getreg32(STM32_RCC_CR);
+      regval |= RCC_CR_PLLI2SON;
+      putreg32(regval, STM32_RCC_CR);
+
+      /* Wait until the PLLI2S is ready */
+
+      while ((getreg32(STM32_RCC_CR) & RCC_CR_PLLI2SRDY) == 0)
+        {
+        }
+#endif
+
       regval  = getreg32(STM32_RCC_DCKCFGR2);
       regval &= ~(RCC_DCKCFGR2_USART1SEL_MASK
                   | RCC_DCKCFGR2_USART2SEL_MASK
@@ -955,19 +970,6 @@ static void stm32_stdclockconfig(void)
 
       putreg32(regval, STM32_RCC_DCKCFGR2);
 
-      /* Enable PLLI2S */
-
-      regval = getreg32(STM32_RCC_CR);
-      regval |= RCC_CR_PLLI2SON;
-      putreg32(regval, STM32_RCC_CR);
-
-      /* Wait until the PLLI2S is ready */
-
-      while ((getreg32(STM32_RCC_CR) & RCC_CR_PLLI2SRDY) == 0)
-        {
-        }
-#endif
-
 #if defined(CONFIG_STM32F7_IWDG) || defined(CONFIG_STM32F7_RTC_LSICLOCK)
       /* Low speed internal clock source LSI */
 

Reply via email to