******************************************************************************\r
* @file stm32f7xx_hal_rcc_ex.c\r
* @author MCD Application Team\r
- * @version V1.0.0RC1\r
- * @date 24-March-2015\r
+ * @version V1.0.0\r
+ * @date 12-May-2015\r
* @brief Extension RCC HAL module driver.\r
* This file provides firmware functions to manage the following \r
* functionalities RCC extension peripheral:\r
}\r
\r
/*-------------------------------------- LTDC Configuration -----------------------------------*/\r
+#if defined(STM32F756xx) || defined(STM32F746xx)\r
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_LTDC) == RCC_PERIPHCLK_LTDC)\r
{\r
pllsaiused = 1; \r
}\r
- \r
+#endif /* STM32F756xx || STM32F746xx */\r
/*-------------------------------------- LPTIM1 Configuration -----------------------------------*/\r
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_LPTIM1) == RCC_PERIPHCLK_LPTIM1)\r
{\r
\r
/*-------------------------------------- PLLI2S Configuration ---------------------------------*/\r
/* PLLI2S is configured when a peripheral will use it as source clock : SAI1, SAI2, I2S or SPDIF-RX */\r
- if(plli2sused == 1)\r
+ if((plli2sused == 1) || (PeriphClkInit->PeriphClockSelection == RCC_PERIPHCLK_PLLI2S))\r
{\r
/* Disable the PLLI2S */\r
__HAL_RCC_PLLI2S_DISABLE(); \r
/* PLLI2S_VCO = f(VCO clock) = f(PLLI2S clock input) × (PLLI2SN/PLLM) */\r
/* SPDIFCLK = f(PLLI2S clock output) = f(VCO clock) / PLLI2SP */\r
__HAL_RCC_PLLI2S_CONFIG(PeriphClkInit->PLLI2S.PLLI2SN , PeriphClkInit->PLLI2S.PLLI2SP, tmpreg0, tmpreg1);\r
- } \r
- \r
+ } \r
+ \r
+ /*----------------- In Case of PLLI2S is just selected -----------------*/ \r
+ if((PeriphClkInit->PeriphClockSelection & RCC_PERIPHCLK_PLLI2S) == RCC_PERIPHCLK_PLLI2S)\r
+ {\r
+ /* Check for Parameters */\r
+ assert_param(IS_RCC_PLLI2SN_VALUE(PeriphClkInit->PLLI2S.PLLI2SN));\r
+ assert_param(IS_RCC_PLLI2SP_VALUE(PeriphClkInit->PLLI2S.PLLI2SP));\r
+ assert_param(IS_RCC_PLLI2SR_VALUE(PeriphClkInit->PLLI2S.PLLI2SR));\r
+ assert_param(IS_RCC_PLLI2SQ_VALUE(PeriphClkInit->PLLI2S.PLLI2SQ));\r
+\r
+ /* Configure the PLLI2S division factors */\r
+ /* PLLI2S_VCO = f(VCO clock) = f(PLLI2S clock input) × (PLLI2SN/PLLI2SM) */\r
+ /* SPDIFRXCLK = f(PLLI2S clock output) = f(VCO clock) / PLLI2SP */\r
+ __HAL_RCC_PLLI2S_CONFIG(PeriphClkInit->PLLI2S.PLLI2SN , PeriphClkInit->PLLI2S.PLLI2SP, PeriphClkInit->PLLI2S.PLLI2SQ, PeriphClkInit->PLLI2S.PLLI2SR);\r
+ } \r
+ \r
/* Enable the PLLI2S */\r
__HAL_RCC_PLLI2S_ENABLE();\r
\r
__HAL_RCC_PLLSAI_CONFIG(PeriphClkInit->PLLSAI.PLLSAIN , PeriphClkInit->PLLSAI.PLLSAIP, tmpreg0, tmpreg1);\r
} \r
\r
+#if defined(STM32F756xx) || defined(STM32F746xx)\r
/*---------------------------- LTDC configuration -------------------------------*/\r
if(((PeriphClkInit->PeriphClockSelection) & RCC_PERIPHCLK_LTDC) == (RCC_PERIPHCLK_LTDC))\r
{\r
/* LTDC_CLK = LTDC_CLK(first level)/PLLSAIDIVR */ \r
__HAL_RCC_PLLSAI_PLLSAICLKDIVR_CONFIG(PeriphClkInit->PLLSAIDivR);\r
} \r
- \r
+#endif /* STM32F756xx || STM32F746xx */ \r
+\r
/* Enable PLLSAI Clock */\r
__HAL_RCC_PLLSAI_ENABLE();\r
\r