STM32F439xx HAL User Manual
stm32f4xx_ll_rcc.h
Go to the documentation of this file.
00001 /**
00002   ******************************************************************************
00003   * @file    stm32f4xx_ll_rcc.h
00004   * @author  MCD Application Team
00005   * @brief   Header file of RCC LL module.
00006   ******************************************************************************
00007   * @attention
00008   *
00009   * <h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
00010   *
00011   * Redistribution and use in source and binary forms, with or without modification,
00012   * are permitted provided that the following conditions are met:
00013   *   1. Redistributions of source code must retain the above copyright notice,
00014   *      this list of conditions and the following disclaimer.
00015   *   2. Redistributions in binary form must reproduce the above copyright notice,
00016   *      this list of conditions and the following disclaimer in the documentation
00017   *      and/or other materials provided with the distribution.
00018   *   3. Neither the name of STMicroelectronics nor the names of its contributors
00019   *      may be used to endorse or promote products derived from this software
00020   *      without specific prior written permission.
00021   *
00022   * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00023   * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00024   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
00025   * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
00026   * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
00027   * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
00028   * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
00029   * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
00030   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
00031   * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
00032   *
00033   ******************************************************************************
00034   */
00035 
00036 /* Define to prevent recursive inclusion -------------------------------------*/
00037 #ifndef __STM32F4xx_LL_RCC_H
00038 #define __STM32F4xx_LL_RCC_H
00039 
00040 #ifdef __cplusplus
00041 extern "C" {
00042 #endif
00043 
00044 /* Includes ------------------------------------------------------------------*/
00045 #include "stm32f4xx.h"
00046 
00047 /** @addtogroup STM32F4xx_LL_Driver
00048   * @{
00049   */
00050 
00051 #if defined(RCC)
00052 
00053 /** @defgroup RCC_LL RCC
00054   * @{
00055   */
00056 
00057 /* Private types -------------------------------------------------------------*/
00058 /* Private variables ---------------------------------------------------------*/
00059 /** @defgroup RCC_LL_Private_Variables RCC Private Variables
00060   * @{
00061   */
00062 
00063 #if defined(RCC_DCKCFGR_PLLSAIDIVR)
00064 static const uint8_t aRCC_PLLSAIDIVRPrescTable[4] = {2, 4, 8, 16};
00065 #endif /* RCC_DCKCFGR_PLLSAIDIVR */
00066 
00067 /**
00068   * @}
00069   */
00070 /* Private constants ---------------------------------------------------------*/
00071 /* Private macros ------------------------------------------------------------*/
00072 #if defined(USE_FULL_LL_DRIVER)
00073 /** @defgroup RCC_LL_Private_Macros RCC Private Macros
00074   * @{
00075   */
00076 /**
00077   * @}
00078   */
00079 #endif /*USE_FULL_LL_DRIVER*/
00080 /* Exported types ------------------------------------------------------------*/
00081 #if defined(USE_FULL_LL_DRIVER)
00082 /** @defgroup RCC_LL_Exported_Types RCC Exported Types
00083   * @{
00084   */
00085 
00086 /** @defgroup LL_ES_CLOCK_FREQ Clocks Frequency Structure
00087   * @{
00088   */
00089 
00090 /**
00091   * @brief  RCC Clocks Frequency Structure
00092   */
00093 typedef struct
00094 {
00095   uint32_t SYSCLK_Frequency;        /*!< SYSCLK clock frequency */
00096   uint32_t HCLK_Frequency;          /*!< HCLK clock frequency */
00097   uint32_t PCLK1_Frequency;         /*!< PCLK1 clock frequency */
00098   uint32_t PCLK2_Frequency;         /*!< PCLK2 clock frequency */
00099 } LL_RCC_ClocksTypeDef;
00100 
00101 /**
00102   * @}
00103   */
00104 
00105 /**
00106   * @}
00107   */
00108 #endif /* USE_FULL_LL_DRIVER */
00109 
00110 /* Exported constants --------------------------------------------------------*/
00111 /** @defgroup RCC_LL_Exported_Constants RCC Exported Constants
00112   * @{
00113   */
00114 
00115 /** @defgroup RCC_LL_EC_OSC_VALUES Oscillator Values adaptation
00116   * @brief    Defines used to adapt values of different oscillators
00117   * @note     These values could be modified in the user environment according to 
00118   *           HW set-up.
00119   * @{
00120   */
00121 #if !defined  (HSE_VALUE)
00122 #define HSE_VALUE    25000000U  /*!< Value of the HSE oscillator in Hz */
00123 #endif /* HSE_VALUE */
00124 
00125 #if !defined  (HSI_VALUE)
00126 #define HSI_VALUE    16000000U  /*!< Value of the HSI oscillator in Hz */
00127 #endif /* HSI_VALUE */
00128 
00129 #if !defined  (LSE_VALUE)
00130 #define LSE_VALUE    32768U     /*!< Value of the LSE oscillator in Hz */
00131 #endif /* LSE_VALUE */
00132 
00133 #if !defined  (LSI_VALUE)
00134 #define LSI_VALUE    32000U     /*!< Value of the LSI oscillator in Hz */
00135 #endif /* LSI_VALUE */
00136 
00137 #if !defined  (EXTERNAL_CLOCK_VALUE)
00138 #define EXTERNAL_CLOCK_VALUE    12288000U /*!< Value of the I2S_CKIN external oscillator in Hz */
00139 #endif /* EXTERNAL_CLOCK_VALUE */
00140 /**
00141   * @}
00142   */
00143 
00144 /** @defgroup RCC_LL_EC_CLEAR_FLAG Clear Flags Defines
00145   * @brief    Flags defines which can be used with LL_RCC_WriteReg function
00146   * @{
00147   */
00148 #define LL_RCC_CIR_LSIRDYC                RCC_CIR_LSIRDYC     /*!< LSI Ready Interrupt Clear */
00149 #define LL_RCC_CIR_LSERDYC                RCC_CIR_LSERDYC     /*!< LSE Ready Interrupt Clear */
00150 #define LL_RCC_CIR_HSIRDYC                RCC_CIR_HSIRDYC     /*!< HSI Ready Interrupt Clear */
00151 #define LL_RCC_CIR_HSERDYC                RCC_CIR_HSERDYC     /*!< HSE Ready Interrupt Clear */
00152 #define LL_RCC_CIR_PLLRDYC                RCC_CIR_PLLRDYC     /*!< PLL Ready Interrupt Clear */
00153 #if defined(RCC_PLLI2S_SUPPORT)
00154 #define LL_RCC_CIR_PLLI2SRDYC             RCC_CIR_PLLI2SRDYC  /*!< PLLI2S Ready Interrupt Clear */
00155 #endif /* RCC_PLLI2S_SUPPORT */
00156 #if defined(RCC_PLLSAI_SUPPORT)
00157 #define LL_RCC_CIR_PLLSAIRDYC             RCC_CIR_PLLSAIRDYC  /*!< PLLSAI Ready Interrupt Clear */
00158 #endif /* RCC_PLLSAI_SUPPORT */
00159 #define LL_RCC_CIR_CSSC                   RCC_CIR_CSSC        /*!< Clock Security System Interrupt Clear */
00160 /**
00161   * @}
00162   */
00163 
00164 /** @defgroup RCC_LL_EC_GET_FLAG Get Flags Defines
00165   * @brief    Flags defines which can be used with LL_RCC_ReadReg function
00166   * @{
00167   */
00168 #define LL_RCC_CIR_LSIRDYF                RCC_CIR_LSIRDYF     /*!< LSI Ready Interrupt flag */
00169 #define LL_RCC_CIR_LSERDYF                RCC_CIR_LSERDYF     /*!< LSE Ready Interrupt flag */
00170 #define LL_RCC_CIR_HSIRDYF                RCC_CIR_HSIRDYF     /*!< HSI Ready Interrupt flag */
00171 #define LL_RCC_CIR_HSERDYF                RCC_CIR_HSERDYF     /*!< HSE Ready Interrupt flag */
00172 #define LL_RCC_CIR_PLLRDYF                RCC_CIR_PLLRDYF     /*!< PLL Ready Interrupt flag */
00173 #if defined(RCC_PLLI2S_SUPPORT)
00174 #define LL_RCC_CIR_PLLI2SRDYF             RCC_CIR_PLLI2SRDYF  /*!< PLLI2S Ready Interrupt flag */
00175 #endif /* RCC_PLLI2S_SUPPORT */
00176 #if defined(RCC_PLLSAI_SUPPORT)
00177 #define LL_RCC_CIR_PLLSAIRDYF             RCC_CIR_PLLSAIRDYF  /*!< PLLSAI Ready Interrupt flag */
00178 #endif /* RCC_PLLSAI_SUPPORT */
00179 #define LL_RCC_CIR_CSSF                   RCC_CIR_CSSF        /*!< Clock Security System Interrupt flag */
00180 #define LL_RCC_CSR_LPWRRSTF                RCC_CSR_LPWRRSTF   /*!< Low-Power reset flag */
00181 #define LL_RCC_CSR_PINRSTF                 RCC_CSR_PINRSTF    /*!< PIN reset flag */
00182 #define LL_RCC_CSR_PORRSTF                 RCC_CSR_PORRSTF    /*!< POR/PDR reset flag */
00183 #define LL_RCC_CSR_SFTRSTF                 RCC_CSR_SFTRSTF    /*!< Software Reset flag */
00184 #define LL_RCC_CSR_IWDGRSTF                RCC_CSR_IWDGRSTF   /*!< Independent Watchdog reset flag */
00185 #define LL_RCC_CSR_WWDGRSTF                RCC_CSR_WWDGRSTF   /*!< Window watchdog reset flag */
00186 #if defined(RCC_CSR_BORRSTF)
00187 #define LL_RCC_CSR_BORRSTF                 RCC_CSR_BORRSTF    /*!< BOR reset flag */
00188 #endif /* RCC_CSR_BORRSTF */
00189 /**
00190   * @}
00191   */
00192 
00193 /** @defgroup RCC_LL_EC_IT IT Defines
00194   * @brief    IT defines which can be used with LL_RCC_ReadReg and  LL_RCC_WriteReg functions
00195   * @{
00196   */
00197 #define LL_RCC_CIR_LSIRDYIE               RCC_CIR_LSIRDYIE      /*!< LSI Ready Interrupt Enable */
00198 #define LL_RCC_CIR_LSERDYIE               RCC_CIR_LSERDYIE      /*!< LSE Ready Interrupt Enable */
00199 #define LL_RCC_CIR_HSIRDYIE               RCC_CIR_HSIRDYIE      /*!< HSI Ready Interrupt Enable */
00200 #define LL_RCC_CIR_HSERDYIE               RCC_CIR_HSERDYIE      /*!< HSE Ready Interrupt Enable */
00201 #define LL_RCC_CIR_PLLRDYIE               RCC_CIR_PLLRDYIE      /*!< PLL Ready Interrupt Enable */
00202 #if defined(RCC_PLLI2S_SUPPORT)
00203 #define LL_RCC_CIR_PLLI2SRDYIE            RCC_CIR_PLLI2SRDYIE   /*!< PLLI2S Ready Interrupt Enable */
00204 #endif /* RCC_PLLI2S_SUPPORT */
00205 #if defined(RCC_PLLSAI_SUPPORT)
00206 #define LL_RCC_CIR_PLLSAIRDYIE            RCC_CIR_PLLSAIRDYIE   /*!< PLLSAI Ready Interrupt Enable */
00207 #endif /* RCC_PLLSAI_SUPPORT */
00208 /**
00209   * @}
00210   */
00211 
00212 /** @defgroup RCC_LL_EC_SYS_CLKSOURCE  System clock switch
00213   * @{
00214   */
00215 #define LL_RCC_SYS_CLKSOURCE_HSI           RCC_CFGR_SW_HSI    /*!< HSI selection as system clock */
00216 #define LL_RCC_SYS_CLKSOURCE_HSE           RCC_CFGR_SW_HSE    /*!< HSE selection as system clock */
00217 #define LL_RCC_SYS_CLKSOURCE_PLL           RCC_CFGR_SW_PLL    /*!< PLL selection as system clock */
00218 #if defined(RCC_CFGR_SW_PLLR)
00219 #define LL_RCC_SYS_CLKSOURCE_PLLR          RCC_CFGR_SW_PLLR   /*!< PLLR selection as system clock */
00220 #endif /* RCC_CFGR_SW_PLLR */
00221 /**
00222   * @}
00223   */
00224 
00225 /** @defgroup RCC_LL_EC_SYS_CLKSOURCE_STATUS  System clock switch status
00226   * @{
00227   */
00228 #define LL_RCC_SYS_CLKSOURCE_STATUS_HSI    RCC_CFGR_SWS_HSI   /*!< HSI used as system clock */
00229 #define LL_RCC_SYS_CLKSOURCE_STATUS_HSE    RCC_CFGR_SWS_HSE   /*!< HSE used as system clock */
00230 #define LL_RCC_SYS_CLKSOURCE_STATUS_PLL    RCC_CFGR_SWS_PLL   /*!< PLL used as system clock */
00231 #if defined(RCC_PLLR_SYSCLK_SUPPORT)
00232 #define LL_RCC_SYS_CLKSOURCE_STATUS_PLLR   RCC_CFGR_SWS_PLLR  /*!< PLLR used as system clock */
00233 #endif /* RCC_PLLR_SYSCLK_SUPPORT */
00234 /**
00235   * @}
00236   */
00237 
00238 /** @defgroup RCC_LL_EC_SYSCLK_DIV  AHB prescaler
00239   * @{
00240   */
00241 #define LL_RCC_SYSCLK_DIV_1                RCC_CFGR_HPRE_DIV1   /*!< SYSCLK not divided */
00242 #define LL_RCC_SYSCLK_DIV_2                RCC_CFGR_HPRE_DIV2   /*!< SYSCLK divided by 2 */
00243 #define LL_RCC_SYSCLK_DIV_4                RCC_CFGR_HPRE_DIV4   /*!< SYSCLK divided by 4 */
00244 #define LL_RCC_SYSCLK_DIV_8                RCC_CFGR_HPRE_DIV8   /*!< SYSCLK divided by 8 */
00245 #define LL_RCC_SYSCLK_DIV_16               RCC_CFGR_HPRE_DIV16  /*!< SYSCLK divided by 16 */
00246 #define LL_RCC_SYSCLK_DIV_64               RCC_CFGR_HPRE_DIV64  /*!< SYSCLK divided by 64 */
00247 #define LL_RCC_SYSCLK_DIV_128              RCC_CFGR_HPRE_DIV128 /*!< SYSCLK divided by 128 */
00248 #define LL_RCC_SYSCLK_DIV_256              RCC_CFGR_HPRE_DIV256 /*!< SYSCLK divided by 256 */
00249 #define LL_RCC_SYSCLK_DIV_512              RCC_CFGR_HPRE_DIV512 /*!< SYSCLK divided by 512 */
00250 /**
00251   * @}
00252   */
00253 
00254 /** @defgroup RCC_LL_EC_APB1_DIV  APB low-speed prescaler (APB1)
00255   * @{
00256   */
00257 #define LL_RCC_APB1_DIV_1                  RCC_CFGR_PPRE1_DIV1  /*!< HCLK not divided */
00258 #define LL_RCC_APB1_DIV_2                  RCC_CFGR_PPRE1_DIV2  /*!< HCLK divided by 2 */
00259 #define LL_RCC_APB1_DIV_4                  RCC_CFGR_PPRE1_DIV4  /*!< HCLK divided by 4 */
00260 #define LL_RCC_APB1_DIV_8                  RCC_CFGR_PPRE1_DIV8  /*!< HCLK divided by 8 */
00261 #define LL_RCC_APB1_DIV_16                 RCC_CFGR_PPRE1_DIV16 /*!< HCLK divided by 16 */
00262 /**
00263   * @}
00264   */
00265 
00266 /** @defgroup RCC_LL_EC_APB2_DIV  APB high-speed prescaler (APB2)
00267   * @{
00268   */
00269 #define LL_RCC_APB2_DIV_1                  RCC_CFGR_PPRE2_DIV1  /*!< HCLK not divided */
00270 #define LL_RCC_APB2_DIV_2                  RCC_CFGR_PPRE2_DIV2  /*!< HCLK divided by 2 */
00271 #define LL_RCC_APB2_DIV_4                  RCC_CFGR_PPRE2_DIV4  /*!< HCLK divided by 4 */
00272 #define LL_RCC_APB2_DIV_8                  RCC_CFGR_PPRE2_DIV8  /*!< HCLK divided by 8 */
00273 #define LL_RCC_APB2_DIV_16                 RCC_CFGR_PPRE2_DIV16 /*!< HCLK divided by 16 */
00274 /**
00275   * @}
00276   */
00277 
00278 /** @defgroup RCC_LL_EC_MCOxSOURCE  MCO source selection
00279   * @{
00280   */
00281 #define LL_RCC_MCO1SOURCE_HSI              (uint32_t)(RCC_CFGR_MCO1|0x00000000U)                    /*!< HSI selection as MCO1 source */
00282 #define LL_RCC_MCO1SOURCE_LSE              (uint32_t)(RCC_CFGR_MCO1|(RCC_CFGR_MCO1_0 >> 16U))       /*!< LSE selection as MCO1 source */
00283 #define LL_RCC_MCO1SOURCE_HSE              (uint32_t)(RCC_CFGR_MCO1|(RCC_CFGR_MCO1_1 >> 16U))       /*!< HSE selection as MCO1 source */
00284 #define LL_RCC_MCO1SOURCE_PLLCLK           (uint32_t)(RCC_CFGR_MCO1|((RCC_CFGR_MCO1_1|RCC_CFGR_MCO1_0) >> 16U))       /*!< PLLCLK selection as MCO1 source */
00285 #if defined(RCC_CFGR_MCO2)
00286 #define LL_RCC_MCO2SOURCE_SYSCLK           (uint32_t)(RCC_CFGR_MCO2|0x00000000U)                    /*!< SYSCLK selection as MCO2 source */
00287 #define LL_RCC_MCO2SOURCE_PLLI2S           (uint32_t)(RCC_CFGR_MCO2|(RCC_CFGR_MCO2_0 >> 16U))       /*!< PLLI2S selection as MCO2 source */
00288 #define LL_RCC_MCO2SOURCE_HSE              (uint32_t)(RCC_CFGR_MCO2|(RCC_CFGR_MCO2_1 >> 16U))       /*!< HSE selection as MCO2 source */
00289 #define LL_RCC_MCO2SOURCE_PLLCLK           (uint32_t)(RCC_CFGR_MCO2|((RCC_CFGR_MCO2_1|RCC_CFGR_MCO2_0) >> 16U))       /*!< PLLCLK selection as MCO2 source */
00290 #endif /* RCC_CFGR_MCO2 */
00291 /**
00292   * @}
00293   */
00294 
00295 /** @defgroup RCC_LL_EC_MCOx_DIV  MCO prescaler
00296   * @{
00297   */
00298 #define LL_RCC_MCO1_DIV_1                  (uint32_t)(RCC_CFGR_MCO1PRE|0x00000000U)                       /*!< MCO1 not divided */
00299 #define LL_RCC_MCO1_DIV_2                  (uint32_t)(RCC_CFGR_MCO1PRE|(RCC_CFGR_MCO1PRE_2 >> 16U))       /*!< MCO1 divided by 2 */
00300 #define LL_RCC_MCO1_DIV_3                  (uint32_t)(RCC_CFGR_MCO1PRE|((RCC_CFGR_MCO1PRE_2|RCC_CFGR_MCO1PRE_0) >> 16U))       /*!< MCO1 divided by 3 */
00301 #define LL_RCC_MCO1_DIV_4                  (uint32_t)(RCC_CFGR_MCO1PRE|((RCC_CFGR_MCO1PRE_2|RCC_CFGR_MCO1PRE_1) >> 16U))       /*!< MCO1 divided by 4 */
00302 #define LL_RCC_MCO1_DIV_5                  (uint32_t)(RCC_CFGR_MCO1PRE|(RCC_CFGR_MCO1PRE >> 16U))         /*!< MCO1 divided by 5 */
00303 #if defined(RCC_CFGR_MCO2PRE)
00304 #define LL_RCC_MCO2_DIV_1                  (uint32_t)(RCC_CFGR_MCO2PRE|0x00000000U)                       /*!< MCO2 not divided */
00305 #define LL_RCC_MCO2_DIV_2                  (uint32_t)(RCC_CFGR_MCO2PRE|(RCC_CFGR_MCO2PRE_2 >> 16U))       /*!< MCO2 divided by 2 */
00306 #define LL_RCC_MCO2_DIV_3                  (uint32_t)(RCC_CFGR_MCO2PRE|((RCC_CFGR_MCO2PRE_2|RCC_CFGR_MCO2PRE_0) >> 16U))       /*!< MCO2 divided by 3 */
00307 #define LL_RCC_MCO2_DIV_4                  (uint32_t)(RCC_CFGR_MCO2PRE|((RCC_CFGR_MCO2PRE_2|RCC_CFGR_MCO2PRE_1) >> 16U))       /*!< MCO2 divided by 4 */
00308 #define LL_RCC_MCO2_DIV_5                  (uint32_t)(RCC_CFGR_MCO2PRE|(RCC_CFGR_MCO2PRE >> 16U))         /*!< MCO2 divided by 5 */
00309 #endif /* RCC_CFGR_MCO2PRE */
00310 /**
00311   * @}
00312   */
00313 
00314 /** @defgroup RCC_LL_EC_RTC_HSEDIV  HSE prescaler for RTC clock
00315   * @{
00316   */
00317 #define LL_RCC_RTC_NOCLOCK                  0x00000000U             /*!< HSE not divided */
00318 #define LL_RCC_RTC_HSE_DIV_2                RCC_CFGR_RTCPRE_1       /*!< HSE clock divided by 2 */
00319 #define LL_RCC_RTC_HSE_DIV_3                (RCC_CFGR_RTCPRE_1|RCC_CFGR_RTCPRE_0)       /*!< HSE clock divided by 3 */
00320 #define LL_RCC_RTC_HSE_DIV_4                RCC_CFGR_RTCPRE_2       /*!< HSE clock divided by 4 */
00321 #define LL_RCC_RTC_HSE_DIV_5                (RCC_CFGR_RTCPRE_2|RCC_CFGR_RTCPRE_0)       /*!< HSE clock divided by 5 */
00322 #define LL_RCC_RTC_HSE_DIV_6                (RCC_CFGR_RTCPRE_2|RCC_CFGR_RTCPRE_1)       /*!< HSE clock divided by 6 */
00323 #define LL_RCC_RTC_HSE_DIV_7                (RCC_CFGR_RTCPRE_2|RCC_CFGR_RTCPRE_1|RCC_CFGR_RTCPRE_0)       /*!< HSE clock divided by 7 */
00324 #define LL_RCC_RTC_HSE_DIV_8                RCC_CFGR_RTCPRE_3       /*!< HSE clock divided by 8 */
00325 #define LL_RCC_RTC_HSE_DIV_9                (RCC_CFGR_RTCPRE_3|RCC_CFGR_RTCPRE_0)       /*!< HSE clock divided by 9 */
00326 #define LL_RCC_RTC_HSE_DIV_10               (RCC_CFGR_RTCPRE_3|RCC_CFGR_RTCPRE_1)       /*!< HSE clock divided by 10 */
00327 #define LL_RCC_RTC_HSE_DIV_11               (RCC_CFGR_RTCPRE_3|RCC_CFGR_RTCPRE_1|RCC_CFGR_RTCPRE_0)       /*!< HSE clock divided by 11 */
00328 #define LL_RCC_RTC_HSE_DIV_12               (RCC_CFGR_RTCPRE_3|RCC_CFGR_RTCPRE_2)       /*!< HSE clock divided by 12 */
00329 #define LL_RCC_RTC_HSE_DIV_13               (RCC_CFGR_RTCPRE_3|RCC_CFGR_RTCPRE_2|RCC_CFGR_RTCPRE_0)       /*!< HSE clock divided by 13 */
00330 #define LL_RCC_RTC_HSE_DIV_14               (RCC_CFGR_RTCPRE_3|RCC_CFGR_RTCPRE_2|RCC_CFGR_RTCPRE_1)       /*!< HSE clock divided by 14 */
00331 #define LL_RCC_RTC_HSE_DIV_15               (RCC_CFGR_RTCPRE_3|RCC_CFGR_RTCPRE_2|RCC_CFGR_RTCPRE_1|RCC_CFGR_RTCPRE_0)       /*!< HSE clock divided by 15 */
00332 #define LL_RCC_RTC_HSE_DIV_16               RCC_CFGR_RTCPRE_4       /*!< HSE clock divided by 16 */
00333 #define LL_RCC_RTC_HSE_DIV_17               (RCC_CFGR_RTCPRE_4|RCC_CFGR_RTCPRE_0)       /*!< HSE clock divided by 17 */
00334 #define LL_RCC_RTC_HSE_DIV_18               (RCC_CFGR_RTCPRE_4|RCC_CFGR_RTCPRE_1)       /*!< HSE clock divided by 18 */
00335 #define LL_RCC_RTC_HSE_DIV_19               (RCC_CFGR_RTCPRE_4|RCC_CFGR_RTCPRE_1|RCC_CFGR_RTCPRE_0)       /*!< HSE clock divided by 19 */
00336 #define LL_RCC_RTC_HSE_DIV_20               (RCC_CFGR_RTCPRE_4|RCC_CFGR_RTCPRE_2)       /*!< HSE clock divided by 20 */
00337 #define LL_RCC_RTC_HSE_DIV_21               (RCC_CFGR_RTCPRE_4|RCC_CFGR_RTCPRE_2|RCC_CFGR_RTCPRE_0)       /*!< HSE clock divided by 21 */
00338 #define LL_RCC_RTC_HSE_DIV_22               (RCC_CFGR_RTCPRE_4|RCC_CFGR_RTCPRE_2|RCC_CFGR_RTCPRE_1)       /*!< HSE clock divided by 22 */
00339 #define LL_RCC_RTC_HSE_DIV_23               (RCC_CFGR_RTCPRE_4|RCC_CFGR_RTCPRE_2|RCC_CFGR_RTCPRE_1|RCC_CFGR_RTCPRE_0)       /*!< HSE clock divided by 23 */
00340 #define LL_RCC_RTC_HSE_DIV_24               (RCC_CFGR_RTCPRE_4|RCC_CFGR_RTCPRE_3)       /*!< HSE clock divided by 24 */
00341 #define LL_RCC_RTC_HSE_DIV_25               (RCC_CFGR_RTCPRE_4|RCC_CFGR_RTCPRE_3|RCC_CFGR_RTCPRE_0)       /*!< HSE clock divided by 25 */
00342 #define LL_RCC_RTC_HSE_DIV_26               (RCC_CFGR_RTCPRE_4|RCC_CFGR_RTCPRE_3|RCC_CFGR_RTCPRE_1)       /*!< HSE clock divided by 26 */
00343 #define LL_RCC_RTC_HSE_DIV_27               (RCC_CFGR_RTCPRE_4|RCC_CFGR_RTCPRE_3|RCC_CFGR_RTCPRE_1|RCC_CFGR_RTCPRE_0)       /*!< HSE clock divided by 27 */
00344 #define LL_RCC_RTC_HSE_DIV_28               (RCC_CFGR_RTCPRE_4|RCC_CFGR_RTCPRE_3|RCC_CFGR_RTCPRE_2)       /*!< HSE clock divided by 28 */
00345 #define LL_RCC_RTC_HSE_DIV_29               (RCC_CFGR_RTCPRE_4|RCC_CFGR_RTCPRE_3|RCC_CFGR_RTCPRE_2|RCC_CFGR_RTCPRE_0)       /*!< HSE clock divided by 29 */
00346 #define LL_RCC_RTC_HSE_DIV_30               (RCC_CFGR_RTCPRE_4|RCC_CFGR_RTCPRE_3|RCC_CFGR_RTCPRE_2|RCC_CFGR_RTCPRE_1)       /*!< HSE clock divided by 30 */
00347 #define LL_RCC_RTC_HSE_DIV_31               (RCC_CFGR_RTCPRE_4|RCC_CFGR_RTCPRE_3|RCC_CFGR_RTCPRE_2|RCC_CFGR_RTCPRE_1|RCC_CFGR_RTCPRE_0)       /*!< HSE clock divided by 31 */
00348 /**
00349   * @}
00350   */
00351 
00352 #if defined(USE_FULL_LL_DRIVER)
00353 /** @defgroup RCC_LL_EC_PERIPH_FREQUENCY Peripheral clock frequency
00354   * @{
00355   */
00356 #define LL_RCC_PERIPH_FREQUENCY_NO         0x00000000U                 /*!< No clock enabled for the peripheral            */
00357 #define LL_RCC_PERIPH_FREQUENCY_NA         0xFFFFFFFFU                 /*!< Frequency cannot be provided as external clock */
00358 /**
00359   * @}
00360   */
00361 #endif /* USE_FULL_LL_DRIVER */
00362 
00363 #if defined(FMPI2C1)
00364 /** @defgroup RCC_LL_EC_FMPI2C1_CLKSOURCE  Peripheral FMPI2C clock source selection
00365   * @{
00366   */
00367 #define LL_RCC_FMPI2C1_CLKSOURCE_PCLK1        0x00000000U               /*!< PCLK1 clock used as FMPI2C1 clock source */
00368 #define LL_RCC_FMPI2C1_CLKSOURCE_SYSCLK       RCC_DCKCFGR2_FMPI2C1SEL_0 /*!< SYSCLK clock used as FMPI2C1 clock source */
00369 #define LL_RCC_FMPI2C1_CLKSOURCE_HSI          RCC_DCKCFGR2_FMPI2C1SEL_1 /*!< HSI clock used as FMPI2C1 clock source */
00370 /**
00371   * @}
00372   */
00373 #endif /* FMPI2C1 */
00374 
00375 #if defined(LPTIM1)
00376 /** @defgroup RCC_LL_EC_LPTIM1_CLKSOURCE  Peripheral LPTIM clock source selection
00377   * @{
00378   */
00379 #define LL_RCC_LPTIM1_CLKSOURCE_PCLK1       0x00000000U                 /*!< PCLK1 clock used as LPTIM1 clock */
00380 #define LL_RCC_LPTIM1_CLKSOURCE_HSI         RCC_DCKCFGR2_LPTIM1SEL_0    /*!< LSI oscillator clock used as LPTIM1 clock */
00381 #define LL_RCC_LPTIM1_CLKSOURCE_LSI         RCC_DCKCFGR2_LPTIM1SEL_1    /*!< HSI oscillator clock used as LPTIM1 clock */
00382 #define LL_RCC_LPTIM1_CLKSOURCE_LSE         (uint32_t)(RCC_DCKCFGR2_LPTIM1SEL_1 | RCC_DCKCFGR2_LPTIM1SEL_0)      /*!< LSE oscillator clock used as LPTIM1 clock */
00383 /**
00384   * @}
00385   */
00386 #endif /* LPTIM1 */
00387 
00388 #if defined(SAI1)
00389 /** @defgroup RCC_LL_EC_SAIx_CLKSOURCE  Peripheral SAI clock source selection
00390   * @{
00391   */
00392 #if defined(RCC_DCKCFGR_SAI1SRC)
00393 #define LL_RCC_SAI1_CLKSOURCE_PLLSAI       (uint32_t)(RCC_DCKCFGR_SAI1SRC | 0x00000000U)                     /*!< PLLSAI clock used as SAI1 clock source */
00394 #define LL_RCC_SAI1_CLKSOURCE_PLLI2S       (uint32_t)(RCC_DCKCFGR_SAI1SRC | (RCC_DCKCFGR_SAI1SRC_0 >> 16))   /*!< PLLI2S clock used as SAI1 clock source */
00395 #define LL_RCC_SAI1_CLKSOURCE_PLL          (uint32_t)(RCC_DCKCFGR_SAI1SRC | (RCC_DCKCFGR_SAI1SRC_1 >> 16))   /*!< PLL clock used as SAI1 clock source */
00396 #define LL_RCC_SAI1_CLKSOURCE_PIN          (uint32_t)(RCC_DCKCFGR_SAI1SRC | (RCC_DCKCFGR_SAI1SRC >> 16))     /*!< External pin clock used as SAI1 clock source */
00397 #endif /* RCC_DCKCFGR_SAI1SRC */
00398 #if defined(RCC_DCKCFGR_SAI2SRC)
00399 #define LL_RCC_SAI2_CLKSOURCE_PLLSAI       (uint32_t)(RCC_DCKCFGR_SAI2SRC | 0x00000000U)                     /*!< PLLSAI clock used as SAI2 clock source */
00400 #define LL_RCC_SAI2_CLKSOURCE_PLLI2S       (uint32_t)(RCC_DCKCFGR_SAI2SRC | (RCC_DCKCFGR_SAI2SRC_0 >> 16))   /*!< PLLI2S clock used as SAI2 clock source */
00401 #define LL_RCC_SAI2_CLKSOURCE_PLL          (uint32_t)(RCC_DCKCFGR_SAI2SRC | (RCC_DCKCFGR_SAI2SRC_1 >> 16))   /*!< PLL clock used as SAI2 clock source */
00402 #define LL_RCC_SAI2_CLKSOURCE_PLLSRC       (uint32_t)(RCC_DCKCFGR_SAI2SRC | (RCC_DCKCFGR_SAI2SRC >> 16))     /*!< PLL Main clock used as SAI2 clock source */
00403 #endif /* RCC_DCKCFGR_SAI2SRC */
00404 #if defined(RCC_DCKCFGR_SAI1ASRC)
00405 #if defined(RCC_SAI1A_PLLSOURCE_SUPPORT)
00406 #define LL_RCC_SAI1_A_CLKSOURCE_PLLI2S     (uint32_t)(RCC_DCKCFGR_SAI1ASRC | 0x00000000U)                    /*!< PLLI2S clock used as SAI1 block A clock source */
00407 #define LL_RCC_SAI1_A_CLKSOURCE_PIN        (uint32_t)(RCC_DCKCFGR_SAI1ASRC | (RCC_DCKCFGR_SAI1ASRC_0 >> 16)) /*!< External pin used as SAI1 block A clock source */
00408 #define LL_RCC_SAI1_A_CLKSOURCE_PLL        (uint32_t)(RCC_DCKCFGR_SAI1ASRC | (RCC_DCKCFGR_SAI1ASRC_1 >> 16)) /*!< PLL clock used as SAI1 block A clock source */
00409 #define LL_RCC_SAI1_A_CLKSOURCE_PLLSRC     (uint32_t)(RCC_DCKCFGR_SAI1ASRC | (RCC_DCKCFGR_SAI1ASRC >> 16))   /*!< PLL Main clock used as SAI1 block A clock source */
00410 #else
00411 #define LL_RCC_SAI1_A_CLKSOURCE_PLLSAI     (uint32_t)(RCC_DCKCFGR_SAI1ASRC | 0x00000000U)                    /*!< PLLSAI clock used as SAI1 block A clock source */
00412 #define LL_RCC_SAI1_A_CLKSOURCE_PLLI2S     (uint32_t)(RCC_DCKCFGR_SAI1ASRC | (RCC_DCKCFGR_SAI1ASRC_0 >> 16)) /*!< PLLI2S clock used as SAI1 block A clock source */
00413 #define LL_RCC_SAI1_A_CLKSOURCE_PIN        (uint32_t)(RCC_DCKCFGR_SAI1ASRC | (RCC_DCKCFGR_SAI1ASRC_1 >> 16)) /*!< External pin clock used as SAI1 block A clock source */
00414 #endif /* RCC_SAI1A_PLLSOURCE_SUPPORT */
00415 #endif /* RCC_DCKCFGR_SAI1ASRC */
00416 #if defined(RCC_DCKCFGR_SAI1BSRC)
00417 #if defined(RCC_SAI1B_PLLSOURCE_SUPPORT)
00418 #define LL_RCC_SAI1_B_CLKSOURCE_PLLI2S     (uint32_t)(RCC_DCKCFGR_SAI1BSRC | 0x00000000U)                    /*!< PLLI2S clock used as SAI1 block B clock source */
00419 #define LL_RCC_SAI1_B_CLKSOURCE_PIN        (uint32_t)(RCC_DCKCFGR_SAI1BSRC | (RCC_DCKCFGR_SAI1BSRC_0 >> 16)) /*!< External pin used as SAI1 block B clock source */
00420 #define LL_RCC_SAI1_B_CLKSOURCE_PLL        (uint32_t)(RCC_DCKCFGR_SAI1BSRC | (RCC_DCKCFGR_SAI1BSRC_1 >> 16)) /*!< PLL clock used as SAI1 block B clock source */
00421 #define LL_RCC_SAI1_B_CLKSOURCE_PLLSRC     (uint32_t)(RCC_DCKCFGR_SAI1BSRC | (RCC_DCKCFGR_SAI1BSRC >> 16))   /*!< PLL Main clock used as SAI1 block B clock source */
00422 #else
00423 #define LL_RCC_SAI1_B_CLKSOURCE_PLLSAI     (uint32_t)(RCC_DCKCFGR_SAI1BSRC | 0x00000000U)                    /*!< PLLSAI clock used as SAI1 block B clock source */
00424 #define LL_RCC_SAI1_B_CLKSOURCE_PLLI2S     (uint32_t)(RCC_DCKCFGR_SAI1BSRC | (RCC_DCKCFGR_SAI1BSRC_0 >> 16)) /*!< PLLI2S clock used as SAI1 block B clock source */
00425 #define LL_RCC_SAI1_B_CLKSOURCE_PIN        (uint32_t)(RCC_DCKCFGR_SAI1BSRC | (RCC_DCKCFGR_SAI1BSRC_1 >> 16)) /*!< External pin clock used as SAI1 block B clock source */
00426 #endif /* RCC_SAI1B_PLLSOURCE_SUPPORT */
00427 #endif /* RCC_DCKCFGR_SAI1BSRC */
00428 /**
00429   * @}
00430   */
00431 #endif /* SAI1 */
00432 
00433 #if defined(RCC_DCKCFGR_SDIOSEL) || defined(RCC_DCKCFGR2_SDIOSEL)
00434 /** @defgroup RCC_LL_EC_SDIOx_CLKSOURCE  Peripheral SDIO clock source selection
00435   * @{
00436   */
00437 #define LL_RCC_SDIO_CLKSOURCE_PLL48CLK       0x00000000U                 /*!< PLL 48M domain clock used as SDIO clock */
00438 #if defined(RCC_DCKCFGR_SDIOSEL)
00439 #define LL_RCC_SDIO_CLKSOURCE_SYSCLK         RCC_DCKCFGR_SDIOSEL         /*!< System clock clock used as SDIO clock */
00440 #else
00441 #define LL_RCC_SDIO_CLKSOURCE_SYSCLK         RCC_DCKCFGR2_SDIOSEL        /*!< System clock clock used as SDIO clock */
00442 #endif /* RCC_DCKCFGR_SDIOSEL */
00443 /**
00444   * @}
00445   */
00446 #endif /* RCC_DCKCFGR_SDIOSEL || RCC_DCKCFGR2_SDIOSEL */
00447 
00448 #if defined(DSI)
00449 /** @defgroup RCC_LL_EC_DSI_CLKSOURCE  Peripheral DSI clock source selection
00450   * @{
00451   */
00452 #define LL_RCC_DSI_CLKSOURCE_PHY          0x00000000U                       /*!< DSI-PHY clock used as DSI byte lane clock source */
00453 #define LL_RCC_DSI_CLKSOURCE_PLL          RCC_DCKCFGR_DSISEL                /*!< PLL clock used as DSI byte lane clock source */
00454 /**
00455   * @}
00456   */
00457 #endif /* DSI */
00458 
00459 #if defined(CEC)
00460 /** @defgroup RCC_LL_EC_CEC_CLKSOURCE  Peripheral CEC clock source selection
00461   * @{
00462   */
00463 #define LL_RCC_CEC_CLKSOURCE_HSI_DIV488    0x00000000U                /*!< HSI oscillator clock divided by 488 used as CEC clock */
00464 #define LL_RCC_CEC_CLKSOURCE_LSE           RCC_DCKCFGR2_CECSEL        /*!< LSE oscillator clock used as CEC clock */
00465 /**
00466   * @}
00467   */
00468 #endif /* CEC */
00469 
00470 /** @defgroup RCC_LL_EC_I2S1_CLKSOURCE  Peripheral I2S clock source selection
00471   * @{
00472   */
00473 #if defined(RCC_CFGR_I2SSRC)
00474 #define LL_RCC_I2S1_CLKSOURCE_PLLI2S     0x00000000U                /*!< I2S oscillator clock used as I2S1 clock */
00475 #define LL_RCC_I2S1_CLKSOURCE_PIN        RCC_CFGR_I2SSRC            /*!< External pin clock used as I2S1 clock */
00476 #endif /* RCC_CFGR_I2SSRC */
00477 #if defined(RCC_DCKCFGR_I2SSRC)
00478 #define LL_RCC_I2S1_CLKSOURCE_PLL        (uint32_t)(RCC_DCKCFGR_I2SSRC | 0x00000000U)                    /*!< PLL clock used as I2S1 clock source */
00479 #define LL_RCC_I2S1_CLKSOURCE_PIN        (uint32_t)(RCC_DCKCFGR_I2SSRC | (RCC_DCKCFGR_I2SSRC_0 >> 16))   /*!< External pin used as I2S1 clock source */
00480 #define LL_RCC_I2S1_CLKSOURCE_PLLSRC     (uint32_t)(RCC_DCKCFGR_I2SSRC | (RCC_DCKCFGR_I2SSRC_1 >> 16))   /*!< PLL Main clock used as I2S1 clock source */
00481 #endif /* RCC_DCKCFGR_I2SSRC */
00482 #if defined(RCC_DCKCFGR_I2S1SRC)
00483 #define LL_RCC_I2S1_CLKSOURCE_PLLI2S     (uint32_t)(RCC_DCKCFGR_I2S1SRC | 0x00000000U)                   /*!< PLLI2S clock used as I2S1 clock source */
00484 #define LL_RCC_I2S1_CLKSOURCE_PIN        (uint32_t)(RCC_DCKCFGR_I2S1SRC | (RCC_DCKCFGR_I2S1SRC_0 >> 16)) /*!< External pin used as I2S1 clock source */
00485 #define LL_RCC_I2S1_CLKSOURCE_PLL        (uint32_t)(RCC_DCKCFGR_I2S1SRC | (RCC_DCKCFGR_I2S1SRC_1 >> 16)) /*!< PLL clock used as I2S1 clock source */
00486 #define LL_RCC_I2S1_CLKSOURCE_PLLSRC     (uint32_t)(RCC_DCKCFGR_I2S1SRC | (RCC_DCKCFGR_I2S1SRC >> 16))   /*!< PLL Main clock used as I2S1 clock source */
00487 #endif /* RCC_DCKCFGR_I2S1SRC */
00488 #if defined(RCC_DCKCFGR_I2S2SRC)
00489 #define LL_RCC_I2S2_CLKSOURCE_PLLI2S     (uint32_t)(RCC_DCKCFGR_I2S2SRC | 0x00000000U)                   /*!< PLLI2S clock used as I2S2 clock source */
00490 #define LL_RCC_I2S2_CLKSOURCE_PIN        (uint32_t)(RCC_DCKCFGR_I2S2SRC | (RCC_DCKCFGR_I2S2SRC_0 >> 16)) /*!< External pin used as I2S2 clock source */
00491 #define LL_RCC_I2S2_CLKSOURCE_PLL        (uint32_t)(RCC_DCKCFGR_I2S2SRC | (RCC_DCKCFGR_I2S2SRC_1 >> 16)) /*!< PLL clock used as I2S2 clock source */
00492 #define LL_RCC_I2S2_CLKSOURCE_PLLSRC     (uint32_t)(RCC_DCKCFGR_I2S2SRC | (RCC_DCKCFGR_I2S2SRC >> 16))   /*!< PLL Main clock used as I2S2 clock source */
00493 #endif /* RCC_DCKCFGR_I2S2SRC */
00494 /**
00495   * @}
00496   */
00497 
00498 #if defined(RCC_DCKCFGR_CK48MSEL) || defined(RCC_DCKCFGR2_CK48MSEL)
00499 /** @defgroup RCC_LL_EC_CK48M_CLKSOURCE  Peripheral 48Mhz domain clock source selection
00500   * @{
00501   */
00502 #if defined(RCC_DCKCFGR_CK48MSEL)
00503 #define LL_RCC_CK48M_CLKSOURCE_PLL         0x00000000U                /*!< PLL oscillator clock used as 48Mhz domain clock */
00504 #define LL_RCC_CK48M_CLKSOURCE_PLLSAI      RCC_DCKCFGR_CK48MSEL       /*!< PLLSAI oscillator clock used as 48Mhz domain clock */
00505 #endif /* RCC_DCKCFGR_CK48MSEL */
00506 #if defined(RCC_DCKCFGR2_CK48MSEL)
00507 #define LL_RCC_CK48M_CLKSOURCE_PLL         0x00000000U                /*!< PLL oscillator clock used as 48Mhz domain clock */
00508 #if defined(RCC_PLLSAI_SUPPORT)
00509 #define LL_RCC_CK48M_CLKSOURCE_PLLSAI      RCC_DCKCFGR2_CK48MSEL      /*!< PLLSAI oscillator clock used as 48Mhz domain clock */
00510 #endif /* RCC_PLLSAI_SUPPORT */
00511 #if defined(RCC_PLLI2SCFGR_PLLI2SQ) && !defined(RCC_DCKCFGR_PLLI2SDIVQ)
00512 #define LL_RCC_CK48M_CLKSOURCE_PLLI2S      RCC_DCKCFGR2_CK48MSEL      /*!< PLLI2S oscillator clock used as 48Mhz domain clock */
00513 #endif /* RCC_PLLI2SCFGR_PLLI2SQ && !RCC_DCKCFGR_PLLI2SDIVQ */
00514 #endif /* RCC_DCKCFGR2_CK48MSEL */
00515 /**
00516   * @}
00517   */
00518 
00519 #if defined(RNG)
00520 /** @defgroup RCC_LL_EC_RNG_CLKSOURCE  Peripheral RNG clock source selection
00521   * @{
00522   */
00523 #define LL_RCC_RNG_CLKSOURCE_PLL          LL_RCC_CK48M_CLKSOURCE_PLL        /*!< PLL clock used as RNG clock source */
00524 #if defined(RCC_PLLSAI_SUPPORT)
00525 #define LL_RCC_RNG_CLKSOURCE_PLLSAI       LL_RCC_CK48M_CLKSOURCE_PLLSAI     /*!< PLLSAI clock used as RNG clock source */
00526 #endif /* RCC_PLLSAI_SUPPORT */
00527 #if defined(RCC_PLLI2SCFGR_PLLI2SQ) && !defined(RCC_DCKCFGR_PLLI2SDIVQ)
00528 #define LL_RCC_RNG_CLKSOURCE_PLLI2S       LL_RCC_CK48M_CLKSOURCE_PLLI2S     /*!< PLLI2S clock used as RNG clock source */
00529 #endif /* RCC_PLLI2SCFGR_PLLI2SQ && !RCC_DCKCFGR_PLLI2SDIVQ */
00530 /**
00531   * @}
00532   */
00533 #endif /* RNG */
00534 
00535 #if defined(USB_OTG_FS) || defined(USB_OTG_HS)
00536 /** @defgroup RCC_LL_EC_USB_CLKSOURCE  Peripheral USB clock source selection
00537   * @{
00538   */
00539 #define LL_RCC_USB_CLKSOURCE_PLL          LL_RCC_CK48M_CLKSOURCE_PLL        /*!< PLL clock used as USB clock source */
00540 #if defined(RCC_PLLSAI_SUPPORT)
00541 #define LL_RCC_USB_CLKSOURCE_PLLSAI       LL_RCC_CK48M_CLKSOURCE_PLLSAI     /*!< PLLSAI clock used as USB clock source */
00542 #endif /* RCC_PLLSAI_SUPPORT */
00543 #if defined(RCC_PLLI2SCFGR_PLLI2SQ) && !defined(RCC_DCKCFGR_PLLI2SDIVQ)
00544 #define LL_RCC_USB_CLKSOURCE_PLLI2S       LL_RCC_CK48M_CLKSOURCE_PLLI2S     /*!< PLLI2S clock used as USB clock source */
00545 #endif /* RCC_PLLI2SCFGR_PLLI2SQ && !RCC_DCKCFGR_PLLI2SDIVQ */
00546 /**
00547   * @}
00548   */
00549 #endif /* USB_OTG_FS || USB_OTG_HS */
00550 
00551 #endif /* RCC_DCKCFGR_CK48MSEL || RCC_DCKCFGR2_CK48MSEL */
00552 
00553 #if defined(DFSDM1_Channel0) || defined(DFSDM2_Channel0)
00554 /** @defgroup RCC_LL_EC_DFSDM1_AUDIO_CLKSOURCE  Peripheral DFSDM Audio clock source selection
00555   * @{
00556   */
00557 #define LL_RCC_DFSDM1_AUDIO_CLKSOURCE_I2S1     (uint32_t)(RCC_DCKCFGR_CKDFSDM1ASEL | 0x00000000U)                      /*!< I2S1 clock used as DFSDM1 Audio clock source */
00558 #define LL_RCC_DFSDM1_AUDIO_CLKSOURCE_I2S2     (uint32_t)(RCC_DCKCFGR_CKDFSDM1ASEL | (RCC_DCKCFGR_CKDFSDM1ASEL << 16)) /*!< I2S2 clock used as DFSDM1 Audio clock source */
00559 #if defined(DFSDM2_Channel0)
00560 #define LL_RCC_DFSDM2_AUDIO_CLKSOURCE_I2S1     (uint32_t)(RCC_DCKCFGR_CKDFSDM2ASEL | 0x00000000U)                      /*!< I2S1 clock used as DFSDM2 Audio clock source */
00561 #define LL_RCC_DFSDM2_AUDIO_CLKSOURCE_I2S2     (uint32_t)(RCC_DCKCFGR_CKDFSDM2ASEL | (RCC_DCKCFGR_CKDFSDM2ASEL << 16)) /*!< I2S2 clock used as DFSDM2 Audio clock source */
00562 #endif /* DFSDM2_Channel0 */
00563 /**
00564   * @}
00565   */
00566 
00567 /** @defgroup RCC_LL_EC_DFSDM1_CLKSOURCE  Peripheral DFSDM clock source selection
00568   * @{
00569   */
00570 #define LL_RCC_DFSDM1_CLKSOURCE_PCLK2          0x00000000U                /*!< PCLK2 clock used as DFSDM1 clock */
00571 #define LL_RCC_DFSDM1_CLKSOURCE_SYSCLK         RCC_DCKCFGR_CKDFSDM1SEL    /*!< System clock used as DFSDM1 clock */
00572 #if defined(DFSDM2_Channel0)
00573 #define LL_RCC_DFSDM2_CLKSOURCE_PCLK2          0x00000000U                /*!< PCLK2 clock used as DFSDM2 clock */
00574 #define LL_RCC_DFSDM2_CLKSOURCE_SYSCLK         RCC_DCKCFGR_CKDFSDM1SEL    /*!< System clock used as DFSDM2 clock */
00575 #endif /* DFSDM2_Channel0 */
00576 /**
00577   * @}
00578   */
00579 #endif /* DFSDM1_Channel0 || DFSDM2_Channel0 */
00580 
00581 #if defined(FMPI2C1)
00582 /** @defgroup RCC_LL_EC_FMPI2C1  Peripheral FMPI2C get clock source
00583   * @{
00584   */
00585 #define LL_RCC_FMPI2C1_CLKSOURCE              RCC_DCKCFGR2_FMPI2C1SEL  /*!< FMPI2C1 Clock source selection */
00586 /**
00587   * @}
00588   */
00589 #endif /* FMPI2C1 */
00590 
00591 #if defined(SPDIFRX)
00592 /** @defgroup RCC_LL_EC_SPDIFRX_CLKSOURCE  Peripheral SPDIFRX clock source selection
00593   * @{
00594   */
00595 #define LL_RCC_SPDIFRX1_CLKSOURCE_PLL          0x00000000U             /*!< PLL clock used as SPDIFRX clock source */
00596 #define LL_RCC_SPDIFRX1_CLKSOURCE_PLLI2S       RCC_DCKCFGR2_SPDIFRXSEL /*!< PLLI2S clock used as SPDIFRX clock source */
00597 /**
00598   * @}
00599   */
00600 #endif /* SPDIFRX */
00601 
00602 #if defined(LPTIM1)
00603 /** @defgroup RCC_LL_EC_LPTIM1  Peripheral LPTIM get clock source
00604   * @{
00605   */
00606 #define LL_RCC_LPTIM1_CLKSOURCE            RCC_DCKCFGR2_LPTIM1SEL /*!< LPTIM1 Clock source selection */
00607 /**
00608   * @}
00609   */
00610 #endif /* LPTIM1 */
00611 
00612 #if defined(SAI1)
00613 /** @defgroup RCC_LL_EC_SAIx  Peripheral SAI get clock source
00614   * @{
00615   */
00616 #if defined(RCC_DCKCFGR_SAI1ASRC)
00617 #define LL_RCC_SAI1_A_CLKSOURCE            RCC_DCKCFGR_SAI1ASRC /*!< SAI1 block A Clock source selection */
00618 #endif /* RCC_DCKCFGR_SAI1ASRC */
00619 #if defined(RCC_DCKCFGR_SAI1BSRC)
00620 #define LL_RCC_SAI1_B_CLKSOURCE            RCC_DCKCFGR_SAI1BSRC /*!< SAI1 block B Clock source selection */
00621 #endif /* RCC_DCKCFGR_SAI1BSRC */
00622 #if defined(RCC_DCKCFGR_SAI1SRC)
00623 #define LL_RCC_SAI1_CLKSOURCE              RCC_DCKCFGR_SAI1SRC  /*!< SAI1 Clock source selection */
00624 #endif /* RCC_DCKCFGR_SAI1SRC */
00625 #if defined(RCC_DCKCFGR_SAI2SRC)
00626 #define LL_RCC_SAI2_CLKSOURCE              RCC_DCKCFGR_SAI2SRC  /*!< SAI2 Clock source selection */
00627 #endif /* RCC_DCKCFGR_SAI2SRC */
00628 /**
00629   * @}
00630   */
00631 #endif /* SAI1 */
00632 
00633 #if defined(SDIO)
00634 /** @defgroup RCC_LL_EC_SDIOx  Peripheral SDIO get clock source
00635   * @{
00636   */
00637 #if defined(RCC_DCKCFGR_SDIOSEL)
00638 #define LL_RCC_SDIO_CLKSOURCE            RCC_DCKCFGR_SDIOSEL   /*!< SDIO Clock source selection */
00639 #elif defined(RCC_DCKCFGR2_SDIOSEL)
00640 #define LL_RCC_SDIO_CLKSOURCE            RCC_DCKCFGR2_SDIOSEL  /*!< SDIO Clock source selection */
00641 #else
00642 #define LL_RCC_SDIO_CLKSOURCE            RCC_PLLCFGR_PLLQ      /*!< SDIO Clock source selection */
00643 #endif
00644 /**
00645   * @}
00646   */
00647 #endif /* SDIO */
00648 
00649 #if defined(RCC_DCKCFGR_CK48MSEL) || defined(RCC_DCKCFGR2_CK48MSEL)
00650 /** @defgroup RCC_LL_EC_CK48M  Peripheral CK48M get clock source
00651   * @{
00652   */
00653 #if defined(RCC_DCKCFGR_CK48MSEL)
00654 #define LL_RCC_CK48M_CLKSOURCE             RCC_DCKCFGR_CK48MSEL  /*!< CK48M Domain clock source selection */
00655 #endif /* RCC_DCKCFGR_CK48MSEL */
00656 #if defined(RCC_DCKCFGR2_CK48MSEL)
00657 #define LL_RCC_CK48M_CLKSOURCE             RCC_DCKCFGR2_CK48MSEL /*!< CK48M Domain clock source selection */
00658 #endif /* RCC_DCKCFGR_CK48MSEL */
00659 /**
00660   * @}
00661   */
00662 #endif /* RCC_DCKCFGR_CK48MSEL || RCC_DCKCFGR2_CK48MSEL */
00663 
00664 #if defined(RNG)
00665 /** @defgroup RCC_LL_EC_RNG  Peripheral RNG get clock source
00666   * @{
00667   */
00668 #if defined(RCC_DCKCFGR_CK48MSEL) || defined(RCC_DCKCFGR2_CK48MSEL)
00669 #define LL_RCC_RNG_CLKSOURCE               LL_RCC_CK48M_CLKSOURCE /*!< RNG Clock source selection */
00670 #else
00671 #define LL_RCC_RNG_CLKSOURCE               RCC_PLLCFGR_PLLQ       /*!< RNG Clock source selection */
00672 #endif /* RCC_DCKCFGR_CK48MSEL || RCC_DCKCFGR2_CK48MSEL */
00673 /**
00674   * @}
00675   */
00676 #endif /* RNG */
00677 
00678 #if defined(USB_OTG_FS) || defined(USB_OTG_HS)
00679 /** @defgroup RCC_LL_EC_USB  Peripheral USB get clock source
00680   * @{
00681   */
00682 #if defined(RCC_DCKCFGR_CK48MSEL) || defined(RCC_DCKCFGR2_CK48MSEL)
00683 #define LL_RCC_USB_CLKSOURCE               LL_RCC_CK48M_CLKSOURCE /*!< USB Clock source selection */
00684 #else
00685 #define LL_RCC_USB_CLKSOURCE               RCC_PLLCFGR_PLLQ       /*!< USB Clock source selection */
00686 #endif /* RCC_DCKCFGR_CK48MSEL || RCC_DCKCFGR2_CK48MSEL */
00687 /**
00688   * @}
00689   */
00690 #endif /* USB_OTG_FS || USB_OTG_HS */
00691 
00692 #if defined(CEC)
00693 /** @defgroup RCC_LL_EC_CEC  Peripheral CEC get clock source
00694   * @{
00695   */
00696 #define LL_RCC_CEC_CLKSOURCE               RCC_DCKCFGR2_CECSEL /*!< CEC Clock source selection */
00697 /**
00698   * @}
00699   */
00700 #endif /* CEC */
00701 
00702 /** @defgroup RCC_LL_EC_I2S1  Peripheral I2S get clock source
00703   * @{
00704   */
00705 #if defined(RCC_CFGR_I2SSRC)
00706 #define LL_RCC_I2S1_CLKSOURCE              RCC_CFGR_I2SSRC     /*!< I2S1 Clock source selection */
00707 #endif /* RCC_CFGR_I2SSRC */
00708 #if defined(RCC_DCKCFGR_I2SSRC)
00709 #define LL_RCC_I2S1_CLKSOURCE              RCC_DCKCFGR_I2SSRC  /*!< I2S1 Clock source selection */
00710 #endif /* RCC_DCKCFGR_I2SSRC */
00711 #if defined(RCC_DCKCFGR_I2S1SRC)
00712 #define LL_RCC_I2S1_CLKSOURCE              RCC_DCKCFGR_I2S1SRC /*!< I2S1 Clock source selection */
00713 #endif /* RCC_DCKCFGR_I2S1SRC */
00714 #if defined(RCC_DCKCFGR_I2S2SRC)
00715 #define LL_RCC_I2S2_CLKSOURCE              RCC_DCKCFGR_I2S2SRC /*!< I2S2 Clock source selection */
00716 #endif /* RCC_DCKCFGR_I2S2SRC */
00717 /**
00718   * @}
00719   */
00720 
00721 #if defined(DFSDM1_Channel0) || defined(DFSDM2_Channel0)
00722 /** @defgroup RCC_LL_EC_DFSDM_AUDIO  Peripheral DFSDM Audio get clock source
00723   * @{
00724   */
00725 #define LL_RCC_DFSDM1_AUDIO_CLKSOURCE      RCC_DCKCFGR_CKDFSDM1ASEL /*!< DFSDM1 Audio Clock source selection */
00726 #if defined(DFSDM2_Channel0)
00727 #define LL_RCC_DFSDM2_AUDIO_CLKSOURCE      RCC_DCKCFGR_CKDFSDM2ASEL /*!< DFSDM2 Audio Clock source selection */
00728 #endif /* DFSDM2_Channel0 */
00729 /**
00730   * @}
00731   */
00732 
00733 /** @defgroup RCC_LL_EC_DFSDM  Peripheral DFSDM get clock source
00734   * @{
00735   */
00736 #define LL_RCC_DFSDM1_CLKSOURCE            RCC_DCKCFGR_CKDFSDM1SEL /*!< DFSDM1 Clock source selection */
00737 #if defined(DFSDM2_Channel0)
00738 #define LL_RCC_DFSDM2_CLKSOURCE            RCC_DCKCFGR_CKDFSDM1SEL /*!< DFSDM2 Clock source selection */
00739 #endif /* DFSDM2_Channel0 */
00740 /**
00741   * @}
00742   */
00743 #endif /* DFSDM1_Channel0 || DFSDM2_Channel0 */
00744 
00745 #if defined(SPDIFRX)
00746 /** @defgroup RCC_LL_EC_SPDIFRX  Peripheral SPDIFRX get clock source
00747   * @{
00748   */
00749 #define LL_RCC_SPDIFRX1_CLKSOURCE          RCC_DCKCFGR2_SPDIFRXSEL /*!< SPDIFRX Clock source selection */
00750 /**
00751   * @}
00752   */
00753 #endif /* SPDIFRX */
00754 
00755 #if defined(DSI)
00756 /** @defgroup RCC_LL_EC_DSI  Peripheral DSI get clock source
00757   * @{
00758   */
00759 #define LL_RCC_DSI_CLKSOURCE               RCC_DCKCFGR_DSISEL /*!< DSI Clock source selection */
00760 /**
00761   * @}
00762   */
00763 #endif /* DSI */
00764 
00765 #if defined(LTDC)
00766 /** @defgroup RCC_LL_EC_LTDC  Peripheral LTDC get clock source
00767   * @{
00768   */
00769 #define LL_RCC_LTDC_CLKSOURCE              RCC_DCKCFGR_PLLSAIDIVR /*!< LTDC Clock source selection */
00770 /**
00771   * @}
00772   */
00773 #endif /* LTDC */
00774 
00775 
00776 /** @defgroup RCC_LL_EC_RTC_CLKSOURCE  RTC clock source selection
00777   * @{
00778   */
00779 #define LL_RCC_RTC_CLKSOURCE_NONE          0x00000000U                   /*!< No clock used as RTC clock */
00780 #define LL_RCC_RTC_CLKSOURCE_LSE           RCC_BDCR_RTCSEL_0       /*!< LSE oscillator clock used as RTC clock */
00781 #define LL_RCC_RTC_CLKSOURCE_LSI           RCC_BDCR_RTCSEL_1       /*!< LSI oscillator clock used as RTC clock */
00782 #define LL_RCC_RTC_CLKSOURCE_HSE           RCC_BDCR_RTCSEL         /*!< HSE oscillator clock divided by HSE prescaler used as RTC clock */
00783 /**
00784   * @}
00785   */
00786 
00787 #if defined(RCC_DCKCFGR_TIMPRE)
00788 /** @defgroup RCC_LL_EC_TIM_CLKPRESCALER  Timers clocks prescalers selection
00789   * @{
00790   */
00791 #define LL_RCC_TIM_PRESCALER_TWICE          0x00000000U                  /*!< Timers clock to twice PCLK */
00792 #define LL_RCC_TIM_PRESCALER_FOUR_TIMES     RCC_DCKCFGR_TIMPRE          /*!< Timers clock to four time PCLK */
00793 /**
00794   * @}
00795   */
00796 #endif /* RCC_DCKCFGR_TIMPRE */
00797 
00798 /** @defgroup RCC_LL_EC_PLLSOURCE  PLL, PLLI2S and PLLSAI entry clock source
00799   * @{
00800   */
00801 #define LL_RCC_PLLSOURCE_HSI               RCC_PLLCFGR_PLLSRC_HSI  /*!< HSI16 clock selected as PLL entry clock source */
00802 #define LL_RCC_PLLSOURCE_HSE               RCC_PLLCFGR_PLLSRC_HSE  /*!< HSE clock selected as PLL entry clock source */
00803 #if defined(RCC_PLLI2SCFGR_PLLI2SSRC)
00804 #define LL_RCC_PLLI2SSOURCE_PIN            (RCC_PLLI2SCFGR_PLLI2SSRC | 0x80U)  /*!< I2S External pin input clock selected as PLLI2S entry clock source */
00805 #endif /* RCC_PLLI2SCFGR_PLLI2SSRC */
00806 /**
00807   * @}
00808   */
00809 
00810 /** @defgroup RCC_LL_EC_PLLM_DIV  PLL, PLLI2S and PLLSAI division factor
00811   * @{
00812   */
00813 #define LL_RCC_PLLM_DIV_2                  (RCC_PLLCFGR_PLLM_1) /*!< PLL, PLLI2S and PLLSAI division factor by 2 */
00814 #define LL_RCC_PLLM_DIV_3                  (RCC_PLLCFGR_PLLM_1 | RCC_PLLCFGR_PLLM_0) /*!< PLL, PLLI2S and PLLSAI division factor by 3 */
00815 #define LL_RCC_PLLM_DIV_4                  (RCC_PLLCFGR_PLLM_2) /*!< PLL, PLLI2S and PLLSAI division factor by 4 */
00816 #define LL_RCC_PLLM_DIV_5                  (RCC_PLLCFGR_PLLM_2 | RCC_PLLCFGR_PLLM_0) /*!< PLL, PLLI2S and PLLSAI division factor by 5 */
00817 #define LL_RCC_PLLM_DIV_6                  (RCC_PLLCFGR_PLLM_2 | RCC_PLLCFGR_PLLM_1) /*!< PLL, PLLI2S and PLLSAI division factor by 6 */
00818 #define LL_RCC_PLLM_DIV_7                  (RCC_PLLCFGR_PLLM_2 | RCC_PLLCFGR_PLLM_1 | RCC_PLLCFGR_PLLM_0) /*!< PLL, PLLI2S and PLLSAI division factor by 7 */
00819 #define LL_RCC_PLLM_DIV_8                  (RCC_PLLCFGR_PLLM_3) /*!< PLL, PLLI2S and PLLSAI division factor by 8 */
00820 #define LL_RCC_PLLM_DIV_9                  (RCC_PLLCFGR_PLLM_3 | RCC_PLLCFGR_PLLM_0) /*!< PLL, PLLI2S and PLLSAI division factor by 9 */
00821 #define LL_RCC_PLLM_DIV_10                 (RCC_PLLCFGR_PLLM_3 | RCC_PLLCFGR_PLLM_1) /*!< PLL, PLLI2S and PLLSAI division factor by 10 */
00822 #define LL_RCC_PLLM_DIV_11                 (RCC_PLLCFGR_PLLM_3 | RCC_PLLCFGR_PLLM_1 | RCC_PLLCFGR_PLLM_0) /*!< PLL, PLLI2S and PLLSAI division factor by 11 */
00823 #define LL_RCC_PLLM_DIV_12                 (RCC_PLLCFGR_PLLM_3 | RCC_PLLCFGR_PLLM_2) /*!< PLL, PLLI2S and PLLSAI division factor by 12 */
00824 #define LL_RCC_PLLM_DIV_13                 (RCC_PLLCFGR_PLLM_3 | RCC_PLLCFGR_PLLM_2 | RCC_PLLCFGR_PLLM_0) /*!< PLL, PLLI2S and PLLSAI division factor by 13 */
00825 #define LL_RCC_PLLM_DIV_14                 (RCC_PLLCFGR_PLLM_3 | RCC_PLLCFGR_PLLM_2 | RCC_PLLCFGR_PLLM_1) /*!< PLL, PLLI2S and PLLSAI division factor by 14 */
00826 #define LL_RCC_PLLM_DIV_15                 (RCC_PLLCFGR_PLLM_3 | RCC_PLLCFGR_PLLM_2 | RCC_PLLCFGR_PLLM_1 | RCC_PLLCFGR_PLLM_0) /*!< PLL, PLLI2S and PLLSAI division factor by 15 */
00827 #define LL_RCC_PLLM_DIV_16                 (RCC_PLLCFGR_PLLM_4) /*!< PLL, PLLI2S and PLLSAI division factor by 16 */
00828 #define LL_RCC_PLLM_DIV_17                 (RCC_PLLCFGR_PLLM_4 | RCC_PLLCFGR_PLLM_0) /*!< PLL, PLLI2S and PLLSAI division factor by 17 */
00829 #define LL_RCC_PLLM_DIV_18                 (RCC_PLLCFGR_PLLM_4 | RCC_PLLCFGR_PLLM_1) /*!< PLL, PLLI2S and PLLSAI division factor by 18 */
00830 #define LL_RCC_PLLM_DIV_19                 (RCC_PLLCFGR_PLLM_4 | RCC_PLLCFGR_PLLM_1 | RCC_PLLCFGR_PLLM_0) /*!< PLL, PLLI2S and PLLSAI division factor by 19 */
00831 #define LL_RCC_PLLM_DIV_20                 (RCC_PLLCFGR_PLLM_4 | RCC_PLLCFGR_PLLM_2) /*!< PLL, PLLI2S and PLLSAI division factor by 20 */
00832 #define LL_RCC_PLLM_DIV_21                 (RCC_PLLCFGR_PLLM_4 | RCC_PLLCFGR_PLLM_2 | RCC_PLLCFGR_PLLM_0) /*!< PLL, PLLI2S and PLLSAI division factor by 21 */
00833 #define LL_RCC_PLLM_DIV_22                 (RCC_PLLCFGR_PLLM_4 | RCC_PLLCFGR_PLLM_2 | RCC_PLLCFGR_PLLM_1) /*!< PLL, PLLI2S and PLLSAI division factor by 22 */
00834 #define LL_RCC_PLLM_DIV_23                 (RCC_PLLCFGR_PLLM_4 | RCC_PLLCFGR_PLLM_2 | RCC_PLLCFGR_PLLM_1 | RCC_PLLCFGR_PLLM_0) /*!< PLL, PLLI2S and PLLSAI division factor by 23 */
00835 #define LL_RCC_PLLM_DIV_24                 (RCC_PLLCFGR_PLLM_4 | RCC_PLLCFGR_PLLM_3) /*!< PLL, PLLI2S and PLLSAI division factor by 24 */
00836 #define LL_RCC_PLLM_DIV_25                 (RCC_PLLCFGR_PLLM_4 | RCC_PLLCFGR_PLLM_3 | RCC_PLLCFGR_PLLM_0) /*!< PLL, PLLI2S and PLLSAI division factor by 25 */
00837 #define LL_RCC_PLLM_DIV_26                 (RCC_PLLCFGR_PLLM_4 | RCC_PLLCFGR_PLLM_3 | RCC_PLLCFGR_PLLM_1) /*!< PLL, PLLI2S and PLLSAI division factor by 26 */
00838 #define LL_RCC_PLLM_DIV_27                 (RCC_PLLCFGR_PLLM_4 | RCC_PLLCFGR_PLLM_3 | RCC_PLLCFGR_PLLM_1 | RCC_PLLCFGR_PLLM_0) /*!< PLL, PLLI2S and PLLSAI division factor by 27 */
00839 #define LL_RCC_PLLM_DIV_28                 (RCC_PLLCFGR_PLLM_4 | RCC_PLLCFGR_PLLM_3 | RCC_PLLCFGR_PLLM_2) /*!< PLL, PLLI2S and PLLSAI division factor by 28 */
00840 #define LL_RCC_PLLM_DIV_29                 (RCC_PLLCFGR_PLLM_4 | RCC_PLLCFGR_PLLM_3 | RCC_PLLCFGR_PLLM_2 | RCC_PLLCFGR_PLLM_0) /*!< PLL, PLLI2S and PLLSAI division factor by 29 */
00841 #define LL_RCC_PLLM_DIV_30                 (RCC_PLLCFGR_PLLM_4 | RCC_PLLCFGR_PLLM_3 | RCC_PLLCFGR_PLLM_2 | RCC_PLLCFGR_PLLM_1) /*!< PLL, PLLI2S and PLLSAI division factor by 30 */
00842 #define LL_RCC_PLLM_DIV_31                 (RCC_PLLCFGR_PLLM_4 | RCC_PLLCFGR_PLLM_3 | RCC_PLLCFGR_PLLM_2 | RCC_PLLCFGR_PLLM_1 | RCC_PLLCFGR_PLLM_0) /*!< PLL, PLLI2S and PLLSAI division factor by 31 */
00843 #define LL_RCC_PLLM_DIV_32                 (RCC_PLLCFGR_PLLM_5) /*!< PLL, PLLI2S and PLLSAI division factor by 32 */
00844 #define LL_RCC_PLLM_DIV_33                 (RCC_PLLCFGR_PLLM_5 | RCC_PLLCFGR_PLLM_0) /*!< PLL, PLLI2S and PLLSAI division factor by 33 */
00845 #define LL_RCC_PLLM_DIV_34                 (RCC_PLLCFGR_PLLM_5 | RCC_PLLCFGR_PLLM_1) /*!< PLL, PLLI2S and PLLSAI division factor by 34 */
00846 #define LL_RCC_PLLM_DIV_35                 (RCC_PLLCFGR_PLLM_5 | RCC_PLLCFGR_PLLM_1 | RCC_PLLCFGR_PLLM_0) /*!< PLL, PLLI2S and PLLSAI division factor by 35 */
00847 #define LL_RCC_PLLM_DIV_36                 (RCC_PLLCFGR_PLLM_5 | RCC_PLLCFGR_PLLM_2) /*!< PLL, PLLI2S and PLLSAI division factor by 36 */
00848 #define LL_RCC_PLLM_DIV_37                 (RCC_PLLCFGR_PLLM_5 | RCC_PLLCFGR_PLLM_2 | RCC_PLLCFGR_PLLM_0) /*!< PLL, PLLI2S and PLLSAI division factor by 37 */
00849 #define LL_RCC_PLLM_DIV_38                 (RCC_PLLCFGR_PLLM_5 | RCC_PLLCFGR_PLLM_2 | RCC_PLLCFGR_PLLM_1) /*!< PLL, PLLI2S and PLLSAI division factor by 38 */
00850 #define LL_RCC_PLLM_DIV_39                 (RCC_PLLCFGR_PLLM_5 | RCC_PLLCFGR_PLLM_2 | RCC_PLLCFGR_PLLM_1 | RCC_PLLCFGR_PLLM_0) /*!< PLL, PLLI2S and PLLSAI division factor by 39 */
00851 #define LL_RCC_PLLM_DIV_40                 (RCC_PLLCFGR_PLLM_5 | RCC_PLLCFGR_PLLM_3) /*!< PLL, PLLI2S and PLLSAI division factor by 40 */
00852 #define LL_RCC_PLLM_DIV_41                 (RCC_PLLCFGR_PLLM_5 | RCC_PLLCFGR_PLLM_3 | RCC_PLLCFGR_PLLM_0) /*!< PLL, PLLI2S and PLLSAI division factor by 41 */
00853 #define LL_RCC_PLLM_DIV_42                 (RCC_PLLCFGR_PLLM_5 | RCC_PLLCFGR_PLLM_3 | RCC_PLLCFGR_PLLM_1) /*!< PLL, PLLI2S and PLLSAI division factor by 42 */
00854 #define LL_RCC_PLLM_DIV_43                 (RCC_PLLCFGR_PLLM_5 | RCC_PLLCFGR_PLLM_3 | RCC_PLLCFGR_PLLM_1 | RCC_PLLCFGR_PLLM_0) /*!< PLL, PLLI2S and PLLSAI division factor by 43 */
00855 #define LL_RCC_PLLM_DIV_44                 (RCC_PLLCFGR_PLLM_5 | RCC_PLLCFGR_PLLM_3 | RCC_PLLCFGR_PLLM_2) /*!< PLL, PLLI2S and PLLSAI division factor by 44 */
00856 #define LL_RCC_PLLM_DIV_45                 (RCC_PLLCFGR_PLLM_5 | RCC_PLLCFGR_PLLM_3 | RCC_PLLCFGR_PLLM_2 | RCC_PLLCFGR_PLLM_0) /*!< PLL, PLLI2S and PLLSAI division factor by 45 */
00857 #define LL_RCC_PLLM_DIV_46                 (RCC_PLLCFGR_PLLM_5 | RCC_PLLCFGR_PLLM_3 | RCC_PLLCFGR_PLLM_2 | RCC_PLLCFGR_PLLM_1) /*!< PLL, PLLI2S and PLLSAI division factor by 46 */
00858 #define LL_RCC_PLLM_DIV_47                 (RCC_PLLCFGR_PLLM_5 | RCC_PLLCFGR_PLLM_3 | RCC_PLLCFGR_PLLM_2 | RCC_PLLCFGR_PLLM_1 | RCC_PLLCFGR_PLLM_0) /*!< PLL, PLLI2S and PLLSAI division factor by 47 */
00859 #define LL_RCC_PLLM_DIV_48                 (RCC_PLLCFGR_PLLM_5 | RCC_PLLCFGR_PLLM_4) /*!< PLL, PLLI2S and PLLSAI division factor by 48 */
00860 #define LL_RCC_PLLM_DIV_49                 (RCC_PLLCFGR_PLLM_5 | RCC_PLLCFGR_PLLM_4 | RCC_PLLCFGR_PLLM_0) /*!< PLL, PLLI2S and PLLSAI division factor by 49 */
00861 #define LL_RCC_PLLM_DIV_50                 (RCC_PLLCFGR_PLLM_5 | RCC_PLLCFGR_PLLM_4 | RCC_PLLCFGR_PLLM_1) /*!< PLL, PLLI2S and PLLSAI division factor by 50 */
00862 #define LL_RCC_PLLM_DIV_51                 (RCC_PLLCFGR_PLLM_5 | RCC_PLLCFGR_PLLM_4 | RCC_PLLCFGR_PLLM_1 | RCC_PLLCFGR_PLLM_0) /*!< PLL, PLLI2S and PLLSAI division factor by 51 */
00863 #define LL_RCC_PLLM_DIV_52                 (RCC_PLLCFGR_PLLM_5 | RCC_PLLCFGR_PLLM_4 | RCC_PLLCFGR_PLLM_2) /*!< PLL, PLLI2S and PLLSAI division factor by 52 */
00864 #define LL_RCC_PLLM_DIV_53                 (RCC_PLLCFGR_PLLM_5 | RCC_PLLCFGR_PLLM_4 | RCC_PLLCFGR_PLLM_2 | RCC_PLLCFGR_PLLM_0) /*!< PLL, PLLI2S and PLLSAI division factor by 53 */
00865 #define LL_RCC_PLLM_DIV_54                 (RCC_PLLCFGR_PLLM_5 | RCC_PLLCFGR_PLLM_4 | RCC_PLLCFGR_PLLM_2 | RCC_PLLCFGR_PLLM_1) /*!< PLL, PLLI2S and PLLSAI division factor by 54 */
00866 #define LL_RCC_PLLM_DIV_55                 (RCC_PLLCFGR_PLLM_5 | RCC_PLLCFGR_PLLM_4 | RCC_PLLCFGR_PLLM_2 | RCC_PLLCFGR_PLLM_1 | RCC_PLLCFGR_PLLM_0) /*!< PLL, PLLI2S and PLLSAI division factor by 55 */
00867 #define LL_RCC_PLLM_DIV_56                 (RCC_PLLCFGR_PLLM_5 | RCC_PLLCFGR_PLLM_4 | RCC_PLLCFGR_PLLM_3) /*!< PLL, PLLI2S and PLLSAI division factor by 56 */
00868 #define LL_RCC_PLLM_DIV_57                 (RCC_PLLCFGR_PLLM_5 | RCC_PLLCFGR_PLLM_4 | RCC_PLLCFGR_PLLM_3 | RCC_PLLCFGR_PLLM_0) /*!< PLL, PLLI2S and PLLSAI division factor by 57 */
00869 #define LL_RCC_PLLM_DIV_58                 (RCC_PLLCFGR_PLLM_5 | RCC_PLLCFGR_PLLM_4 | RCC_PLLCFGR_PLLM_3 | RCC_PLLCFGR_PLLM_1) /*!< PLL, PLLI2S and PLLSAI division factor by 58 */
00870 #define LL_RCC_PLLM_DIV_59                 (RCC_PLLCFGR_PLLM_5 | RCC_PLLCFGR_PLLM_4 | RCC_PLLCFGR_PLLM_3 | RCC_PLLCFGR_PLLM_1 | RCC_PLLCFGR_PLLM_0) /*!< PLL, PLLI2S and PLLSAI division factor by 59 */
00871 #define LL_RCC_PLLM_DIV_60                 (RCC_PLLCFGR_PLLM_5 | RCC_PLLCFGR_PLLM_4 | RCC_PLLCFGR_PLLM_3 | RCC_PLLCFGR_PLLM_2) /*!< PLL, PLLI2S and PLLSAI division factor by 60 */
00872 #define LL_RCC_PLLM_DIV_61                 (RCC_PLLCFGR_PLLM_5 | RCC_PLLCFGR_PLLM_4 | RCC_PLLCFGR_PLLM_3 | RCC_PLLCFGR_PLLM_2 | RCC_PLLCFGR_PLLM_0) /*!< PLL, PLLI2S and PLLSAI division factor by 61 */
00873 #define LL_RCC_PLLM_DIV_62                 (RCC_PLLCFGR_PLLM_5 | RCC_PLLCFGR_PLLM_4 | RCC_PLLCFGR_PLLM_3 | RCC_PLLCFGR_PLLM_2 | RCC_PLLCFGR_PLLM_1) /*!< PLL, PLLI2S and PLLSAI division factor by 62 */
00874 #define LL_RCC_PLLM_DIV_63                 (RCC_PLLCFGR_PLLM_5 | RCC_PLLCFGR_PLLM_4 | RCC_PLLCFGR_PLLM_3 | RCC_PLLCFGR_PLLM_2 | RCC_PLLCFGR_PLLM_1 | RCC_PLLCFGR_PLLM_0) /*!< PLL, PLLI2S and PLLSAI division factor by 63 */
00875 /**
00876   * @}
00877   */
00878 
00879 #if defined(RCC_PLLCFGR_PLLR)
00880 /** @defgroup RCC_LL_EC_PLLR_DIV  PLL division factor (PLLR)
00881   * @{
00882   */
00883 #define LL_RCC_PLLR_DIV_2                  (RCC_PLLCFGR_PLLR_1)                     /*!< Main PLL division factor for PLLCLK (system clock) by 2 */
00884 #define LL_RCC_PLLR_DIV_3                  (RCC_PLLCFGR_PLLR_1|RCC_PLLCFGR_PLLR_0)  /*!< Main PLL division factor for PLLCLK (system clock) by 3 */
00885 #define LL_RCC_PLLR_DIV_4                  (RCC_PLLCFGR_PLLR_2)                     /*!< Main PLL division factor for PLLCLK (system clock) by 4 */
00886 #define LL_RCC_PLLR_DIV_5                  (RCC_PLLCFGR_PLLR_2|RCC_PLLCFGR_PLLR_0)  /*!< Main PLL division factor for PLLCLK (system clock) by 5 */
00887 #define LL_RCC_PLLR_DIV_6                  (RCC_PLLCFGR_PLLR_2|RCC_PLLCFGR_PLLR_1)  /*!< Main PLL division factor for PLLCLK (system clock) by 6 */
00888 #define LL_RCC_PLLR_DIV_7                  (RCC_PLLCFGR_PLLR)                       /*!< Main PLL division factor for PLLCLK (system clock) by 7 */
00889 /**
00890   * @}
00891   */
00892 #endif /* RCC_PLLCFGR_PLLR */
00893 
00894 #if defined(RCC_DCKCFGR_PLLDIVR)
00895 /** @defgroup RCC_LL_EC_PLLDIVR  PLLDIVR division factor (PLLDIVR)
00896   * @{
00897   */
00898 #define LL_RCC_PLLDIVR_DIV_1           (RCC_DCKCFGR_PLLDIVR_0)        /*!< PLL division factor for PLLDIVR output by 1 */
00899 #define LL_RCC_PLLDIVR_DIV_2           (RCC_DCKCFGR_PLLDIVR_1)        /*!< PLL division factor for PLLDIVR output by 2 */
00900 #define LL_RCC_PLLDIVR_DIV_3           (RCC_DCKCFGR_PLLDIVR_1 | RCC_DCKCFGR_PLLDIVR_0)        /*!< PLL division factor for PLLDIVR output by 3 */
00901 #define LL_RCC_PLLDIVR_DIV_4           (RCC_DCKCFGR_PLLDIVR_2)        /*!< PLL division factor for PLLDIVR output by 4 */
00902 #define LL_RCC_PLLDIVR_DIV_5           (RCC_DCKCFGR_PLLDIVR_2 | RCC_DCKCFGR_PLLDIVR_0)        /*!< PLL division factor for PLLDIVR output by 5 */
00903 #define LL_RCC_PLLDIVR_DIV_6           (RCC_DCKCFGR_PLLDIVR_2 | RCC_DCKCFGR_PLLDIVR_1)        /*!< PLL division factor for PLLDIVR output by 6 */
00904 #define LL_RCC_PLLDIVR_DIV_7           (RCC_DCKCFGR_PLLDIVR_2 | RCC_DCKCFGR_PLLDIVR_1 | RCC_DCKCFGR_PLLDIVR_0)        /*!< PLL division factor for PLLDIVR output by 7 */
00905 #define LL_RCC_PLLDIVR_DIV_8           (RCC_DCKCFGR_PLLDIVR_3)        /*!< PLL division factor for PLLDIVR output by 8 */
00906 #define LL_RCC_PLLDIVR_DIV_9           (RCC_DCKCFGR_PLLDIVR_3 | RCC_DCKCFGR_PLLDIVR_0)        /*!< PLL division factor for PLLDIVR output by 9 */
00907 #define LL_RCC_PLLDIVR_DIV_10          (RCC_DCKCFGR_PLLDIVR_3 | RCC_DCKCFGR_PLLDIVR_1)        /*!< PLL division factor for PLLDIVR output by 10 */
00908 #define LL_RCC_PLLDIVR_DIV_11          (RCC_DCKCFGR_PLLDIVR_3 | RCC_DCKCFGR_PLLDIVR_1 | RCC_DCKCFGR_PLLDIVR_0)        /*!< PLL division factor for PLLDIVR output by 11 */
00909 #define LL_RCC_PLLDIVR_DIV_12          (RCC_DCKCFGR_PLLDIVR_3 | RCC_DCKCFGR_PLLDIVR_2)        /*!< PLL division factor for PLLDIVR output by 12 */
00910 #define LL_RCC_PLLDIVR_DIV_13          (RCC_DCKCFGR_PLLDIVR_3 | RCC_DCKCFGR_PLLDIVR_2 | RCC_DCKCFGR_PLLDIVR_0)        /*!< PLL division factor for PLLDIVR output by 13 */
00911 #define LL_RCC_PLLDIVR_DIV_14          (RCC_DCKCFGR_PLLDIVR_3 | RCC_DCKCFGR_PLLDIVR_2 | RCC_DCKCFGR_PLLDIVR_1)        /*!< PLL division factor for PLLDIVR output by 14 */
00912 #define LL_RCC_PLLDIVR_DIV_15          (RCC_DCKCFGR_PLLDIVR_3 | RCC_DCKCFGR_PLLDIVR_2 | RCC_DCKCFGR_PLLDIVR_1 | RCC_DCKCFGR_PLLDIVR_0)        /*!< PLL division factor for PLLDIVR output by 15 */
00913 #define LL_RCC_PLLDIVR_DIV_16          (RCC_DCKCFGR_PLLDIVR_4)             /*!< PLL division factor for PLLDIVR output by 16 */
00914 #define LL_RCC_PLLDIVR_DIV_17          (RCC_DCKCFGR_PLLDIVR_4 | RCC_DCKCFGR_PLLDIVR_0)        /*!< PLL division factor for PLLDIVR output by 17 */
00915 #define LL_RCC_PLLDIVR_DIV_18          (RCC_DCKCFGR_PLLDIVR_4 | RCC_DCKCFGR_PLLDIVR_1)        /*!< PLL division factor for PLLDIVR output by 18 */
00916 #define LL_RCC_PLLDIVR_DIV_19          (RCC_DCKCFGR_PLLDIVR_4 | RCC_DCKCFGR_PLLDIVR_1 | RCC_DCKCFGR_PLLDIVR_0)        /*!< PLL division factor for PLLDIVR output by 19 */
00917 #define LL_RCC_PLLDIVR_DIV_20          (RCC_DCKCFGR_PLLDIVR_4 | RCC_DCKCFGR_PLLDIVR_2)        /*!< PLL division factor for PLLDIVR output by 20 */
00918 #define LL_RCC_PLLDIVR_DIV_21          (RCC_DCKCFGR_PLLDIVR_4 | RCC_DCKCFGR_PLLDIVR_2 | RCC_DCKCFGR_PLLDIVR_0)        /*!< PLL division factor for PLLDIVR output by 21 */
00919 #define LL_RCC_PLLDIVR_DIV_22          (RCC_DCKCFGR_PLLDIVR_4 | RCC_DCKCFGR_PLLDIVR_2 | RCC_DCKCFGR_PLLDIVR_1)        /*!< PLL division factor for PLLDIVR output by 22 */
00920 #define LL_RCC_PLLDIVR_DIV_23          (RCC_DCKCFGR_PLLDIVR_4 | RCC_DCKCFGR_PLLDIVR_2 | RCC_DCKCFGR_PLLDIVR_1 | RCC_DCKCFGR_PLLDIVR_0)        /*!< PLL division factor for PLLDIVR output by 23 */
00921 #define LL_RCC_PLLDIVR_DIV_24          (RCC_DCKCFGR_PLLDIVR_4 | RCC_DCKCFGR_PLLDIVR_3)        /*!< PLL division factor for PLLDIVR output by 24 */
00922 #define LL_RCC_PLLDIVR_DIV_25          (RCC_DCKCFGR_PLLDIVR_4 | RCC_DCKCFGR_PLLDIVR_3 | RCC_DCKCFGR_PLLDIVR_0)        /*!< PLL division factor for PLLDIVR output by 25 */
00923 #define LL_RCC_PLLDIVR_DIV_26          (RCC_DCKCFGR_PLLDIVR_4 | RCC_DCKCFGR_PLLDIVR_3 | RCC_DCKCFGR_PLLDIVR_1)        /*!< PLL division factor for PLLDIVR output by 26 */
00924 #define LL_RCC_PLLDIVR_DIV_27          (RCC_DCKCFGR_PLLDIVR_4 | RCC_DCKCFGR_PLLDIVR_3 | RCC_DCKCFGR_PLLDIVR_1 | RCC_DCKCFGR_PLLDIVR_0)        /*!< PLL division factor for PLLDIVR output by 27 */
00925 #define LL_RCC_PLLDIVR_DIV_28          (RCC_DCKCFGR_PLLDIVR_4 | RCC_DCKCFGR_PLLDIVR_3 | RCC_DCKCFGR_PLLDIVR_2)        /*!< PLL division factor for PLLDIVR output by 28 */
00926 #define LL_RCC_PLLDIVR_DIV_29          (RCC_DCKCFGR_PLLDIVR_4 | RCC_DCKCFGR_PLLDIVR_3 | RCC_DCKCFGR_PLLDIVR_2 | RCC_DCKCFGR_PLLDIVR_0)        /*!< PLL division factor for PLLDIVR output by 29 */
00927 #define LL_RCC_PLLDIVR_DIV_30          (RCC_DCKCFGR_PLLDIVR_4 | RCC_DCKCFGR_PLLDIVR_3 | RCC_DCKCFGR_PLLDIVR_2 | RCC_DCKCFGR_PLLDIVR_1)        /*!< PLL division factor for PLLDIVR output by 30 */
00928 #define LL_RCC_PLLDIVR_DIV_31          (RCC_DCKCFGR_PLLDIVR_4 | RCC_DCKCFGR_PLLDIVR_3 | RCC_DCKCFGR_PLLDIVR_2 | RCC_DCKCFGR_PLLDIVR_1 | RCC_DCKCFGR_PLLDIVR_0)        /*!< PLL division factor for PLLDIVR output by 31 */
00929 /**
00930   * @}
00931   */
00932 #endif /* RCC_DCKCFGR_PLLDIVR */
00933 
00934 /** @defgroup RCC_LL_EC_PLLP_DIV  PLL division factor (PLLP)
00935   * @{
00936   */
00937 #define LL_RCC_PLLP_DIV_2                  0x00000000U            /*!< Main PLL division factor for PLLP output by 2 */
00938 #define LL_RCC_PLLP_DIV_4                  RCC_PLLCFGR_PLLP_0     /*!< Main PLL division factor for PLLP output by 4 */
00939 #define LL_RCC_PLLP_DIV_6                  RCC_PLLCFGR_PLLP_1     /*!< Main PLL division factor for PLLP output by 6 */
00940 #define LL_RCC_PLLP_DIV_8                  (RCC_PLLCFGR_PLLP_1 | RCC_PLLCFGR_PLLP_0)   /*!< Main PLL division factor for PLLP output by 8 */
00941 /**
00942   * @}
00943   */
00944 
00945 /** @defgroup RCC_LL_EC_PLLQ_DIV  PLL division factor (PLLQ)
00946   * @{
00947   */
00948 #define LL_RCC_PLLQ_DIV_2                  RCC_PLLCFGR_PLLQ_1                      /*!< Main PLL division factor for PLLQ output by 2 */
00949 #define LL_RCC_PLLQ_DIV_3                  (RCC_PLLCFGR_PLLQ_1|RCC_PLLCFGR_PLLQ_0) /*!< Main PLL division factor for PLLQ output by 3 */
00950 #define LL_RCC_PLLQ_DIV_4                  RCC_PLLCFGR_PLLQ_2                      /*!< Main PLL division factor for PLLQ output by 4 */
00951 #define LL_RCC_PLLQ_DIV_5                  (RCC_PLLCFGR_PLLQ_2|RCC_PLLCFGR_PLLQ_0) /*!< Main PLL division factor for PLLQ output by 5 */
00952 #define LL_RCC_PLLQ_DIV_6                  (RCC_PLLCFGR_PLLQ_2|RCC_PLLCFGR_PLLQ_1) /*!< Main PLL division factor for PLLQ output by 6 */
00953 #define LL_RCC_PLLQ_DIV_7                  (RCC_PLLCFGR_PLLQ_2|RCC_PLLCFGR_PLLQ_1|RCC_PLLCFGR_PLLQ_0) /*!< Main PLL division factor for PLLQ output by 7 */
00954 #define LL_RCC_PLLQ_DIV_8                  RCC_PLLCFGR_PLLQ_3                      /*!< Main PLL division factor for PLLQ output by 8 */
00955 #define LL_RCC_PLLQ_DIV_9                  (RCC_PLLCFGR_PLLQ_3|RCC_PLLCFGR_PLLQ_0) /*!< Main PLL division factor for PLLQ output by 9 */
00956 #define LL_RCC_PLLQ_DIV_10                 (RCC_PLLCFGR_PLLQ_3|RCC_PLLCFGR_PLLQ_1) /*!< Main PLL division factor for PLLQ output by 10 */
00957 #define LL_RCC_PLLQ_DIV_11                 (RCC_PLLCFGR_PLLQ_3|RCC_PLLCFGR_PLLQ_1|RCC_PLLCFGR_PLLQ_0) /*!< Main PLL division factor for PLLQ output by 11 */
00958 #define LL_RCC_PLLQ_DIV_12                 (RCC_PLLCFGR_PLLQ_3|RCC_PLLCFGR_PLLQ_2) /*!< Main PLL division factor for PLLQ output by 12 */
00959 #define LL_RCC_PLLQ_DIV_13                 (RCC_PLLCFGR_PLLQ_3|RCC_PLLCFGR_PLLQ_2|RCC_PLLCFGR_PLLQ_0) /*!< Main PLL division factor for PLLQ output by 13 */
00960 #define LL_RCC_PLLQ_DIV_14                 (RCC_PLLCFGR_PLLQ_3|RCC_PLLCFGR_PLLQ_2|RCC_PLLCFGR_PLLQ_1) /*!< Main PLL division factor for PLLQ output by 14 */
00961 #define LL_RCC_PLLQ_DIV_15                 (RCC_PLLCFGR_PLLQ_3|RCC_PLLCFGR_PLLQ_2|RCC_PLLCFGR_PLLQ_1|RCC_PLLCFGR_PLLQ_0) /*!< Main PLL division factor for PLLQ output by 15 */
00962 /**
00963   * @}
00964   */
00965 
00966 /** @defgroup RCC_LL_EC_PLL_SPRE_SEL  PLL Spread Spectrum Selection
00967   * @{
00968   */
00969 #define LL_RCC_SPREAD_SELECT_CENTER        0x00000000U                   /*!< PLL center spread spectrum selection */
00970 #define LL_RCC_SPREAD_SELECT_DOWN          RCC_SSCGR_SPREADSEL           /*!< PLL down spread spectrum selection */
00971 /**
00972   * @}
00973   */
00974 
00975 #if defined(RCC_PLLI2S_SUPPORT)
00976 /** @defgroup RCC_LL_EC_PLLI2SM  PLLI2SM division factor (PLLI2SM)
00977   * @{
00978   */
00979 #if defined(RCC_PLLI2SCFGR_PLLI2SM)
00980 #define LL_RCC_PLLI2SM_DIV_2             (RCC_PLLI2SCFGR_PLLI2SM_1) /*!< PLLI2S division factor for PLLI2SM output by 2 */
00981 #define LL_RCC_PLLI2SM_DIV_3             (RCC_PLLI2SCFGR_PLLI2SM_1 | RCC_PLLI2SCFGR_PLLI2SM_0) /*!< PLLI2S division factor for PLLI2SM output by 3 */
00982 #define LL_RCC_PLLI2SM_DIV_4             (RCC_PLLI2SCFGR_PLLI2SM_2) /*!< PLLI2S division factor for PLLI2SM output by 4 */
00983 #define LL_RCC_PLLI2SM_DIV_5             (RCC_PLLI2SCFGR_PLLI2SM_2 | RCC_PLLI2SCFGR_PLLI2SM_0) /*!< PLLI2S division factor for PLLI2SM output by 5 */
00984 #define LL_RCC_PLLI2SM_DIV_6             (RCC_PLLI2SCFGR_PLLI2SM_2 | RCC_PLLI2SCFGR_PLLI2SM_1) /*!< PLLI2S division factor for PLLI2SM output by 6 */
00985 #define LL_RCC_PLLI2SM_DIV_7             (RCC_PLLI2SCFGR_PLLI2SM_2 | RCC_PLLI2SCFGR_PLLI2SM_1 | RCC_PLLI2SCFGR_PLLI2SM_0) /*!< PLLI2S division factor for PLLI2SM output by 7 */
00986 #define LL_RCC_PLLI2SM_DIV_8             (RCC_PLLI2SCFGR_PLLI2SM_3) /*!< PLLI2S division factor for PLLI2SM output by 8 */
00987 #define LL_RCC_PLLI2SM_DIV_9             (RCC_PLLI2SCFGR_PLLI2SM_3 | RCC_PLLI2SCFGR_PLLI2SM_0) /*!< PLLI2S division factor for PLLI2SM output by 9 */
00988 #define LL_RCC_PLLI2SM_DIV_10            (RCC_PLLI2SCFGR_PLLI2SM_3 | RCC_PLLI2SCFGR_PLLI2SM_1) /*!< PLLI2S division factor for PLLI2SM output by 10 */
00989 #define LL_RCC_PLLI2SM_DIV_11            (RCC_PLLI2SCFGR_PLLI2SM_3 | RCC_PLLI2SCFGR_PLLI2SM_1 | RCC_PLLI2SCFGR_PLLI2SM_0) /*!< PLLI2S division factor for PLLI2SM output by 11 */
00990 #define LL_RCC_PLLI2SM_DIV_12            (RCC_PLLI2SCFGR_PLLI2SM_3 | RCC_PLLI2SCFGR_PLLI2SM_2) /*!< PLLI2S division factor for PLLI2SM output by 12 */
00991 #define LL_RCC_PLLI2SM_DIV_13            (RCC_PLLI2SCFGR_PLLI2SM_3 | RCC_PLLI2SCFGR_PLLI2SM_2 | RCC_PLLI2SCFGR_PLLI2SM_0) /*!< PLLI2S division factor for PLLI2SM output by 13 */
00992 #define LL_RCC_PLLI2SM_DIV_14            (RCC_PLLI2SCFGR_PLLI2SM_3 | RCC_PLLI2SCFGR_PLLI2SM_2 | RCC_PLLI2SCFGR_PLLI2SM_1) /*!< PLLI2S division factor for PLLI2SM output by 14 */
00993 #define LL_RCC_PLLI2SM_DIV_15            (RCC_PLLI2SCFGR_PLLI2SM_3 | RCC_PLLI2SCFGR_PLLI2SM_2 | RCC_PLLI2SCFGR_PLLI2SM_1 | RCC_PLLI2SCFGR_PLLI2SM_0) /*!< PLLI2S division factor for PLLI2SM output by 15 */
00994 #define LL_RCC_PLLI2SM_DIV_16            (RCC_PLLI2SCFGR_PLLI2SM_4) /*!< PLLI2S division factor for PLLI2SM output by 16 */
00995 #define LL_RCC_PLLI2SM_DIV_17            (RCC_PLLI2SCFGR_PLLI2SM_4 | RCC_PLLI2SCFGR_PLLI2SM_0) /*!< PLLI2S division factor for PLLI2SM output by 17 */
00996 #define LL_RCC_PLLI2SM_DIV_18            (RCC_PLLI2SCFGR_PLLI2SM_4 | RCC_PLLI2SCFGR_PLLI2SM_1) /*!< PLLI2S division factor for PLLI2SM output by 18 */
00997 #define LL_RCC_PLLI2SM_DIV_19            (RCC_PLLI2SCFGR_PLLI2SM_4 | RCC_PLLI2SCFGR_PLLI2SM_1 | RCC_PLLI2SCFGR_PLLI2SM_0) /*!< PLLI2S division factor for PLLI2SM output by 19 */
00998 #define LL_RCC_PLLI2SM_DIV_20            (RCC_PLLI2SCFGR_PLLI2SM_4 | RCC_PLLI2SCFGR_PLLI2SM_2) /*!< PLLI2S division factor for PLLI2SM output by 20 */
00999 #define LL_RCC_PLLI2SM_DIV_21            (RCC_PLLI2SCFGR_PLLI2SM_4 | RCC_PLLI2SCFGR_PLLI2SM_2 | RCC_PLLI2SCFGR_PLLI2SM_0) /*!< PLLI2S division factor for PLLI2SM output by 21 */
01000 #define LL_RCC_PLLI2SM_DIV_22            (RCC_PLLI2SCFGR_PLLI2SM_4 | RCC_PLLI2SCFGR_PLLI2SM_2 | RCC_PLLI2SCFGR_PLLI2SM_1) /*!< PLLI2S division factor for PLLI2SM output by 22 */
01001 #define LL_RCC_PLLI2SM_DIV_23            (RCC_PLLI2SCFGR_PLLI2SM_4 | RCC_PLLI2SCFGR_PLLI2SM_2 | RCC_PLLI2SCFGR_PLLI2SM_1 | RCC_PLLI2SCFGR_PLLI2SM_0) /*!< PLLI2S division factor for PLLI2SM output by 23 */
01002 #define LL_RCC_PLLI2SM_DIV_24            (RCC_PLLI2SCFGR_PLLI2SM_4 | RCC_PLLI2SCFGR_PLLI2SM_3) /*!< PLLI2S division factor for PLLI2SM output by 24 */
01003 #define LL_RCC_PLLI2SM_DIV_25            (RCC_PLLI2SCFGR_PLLI2SM_4 | RCC_PLLI2SCFGR_PLLI2SM_3 | RCC_PLLI2SCFGR_PLLI2SM_0) /*!< PLLI2S division factor for PLLI2SM output by 25 */
01004 #define LL_RCC_PLLI2SM_DIV_26            (RCC_PLLI2SCFGR_PLLI2SM_4 | RCC_PLLI2SCFGR_PLLI2SM_3 | RCC_PLLI2SCFGR_PLLI2SM_1) /*!< PLLI2S division factor for PLLI2SM output by 26 */
01005 #define LL_RCC_PLLI2SM_DIV_27            (RCC_PLLI2SCFGR_PLLI2SM_4 | RCC_PLLI2SCFGR_PLLI2SM_3 | RCC_PLLI2SCFGR_PLLI2SM_1 | RCC_PLLI2SCFGR_PLLI2SM_0) /*!< PLLI2S division factor for PLLI2SM output by 27 */
01006 #define LL_RCC_PLLI2SM_DIV_28            (RCC_PLLI2SCFGR_PLLI2SM_4 | RCC_PLLI2SCFGR_PLLI2SM_3 | RCC_PLLI2SCFGR_PLLI2SM_2) /*!< PLLI2S division factor for PLLI2SM output by 28 */
01007 #define LL_RCC_PLLI2SM_DIV_29            (RCC_PLLI2SCFGR_PLLI2SM_4 | RCC_PLLI2SCFGR_PLLI2SM_3 | RCC_PLLI2SCFGR_PLLI2SM_2 | RCC_PLLI2SCFGR_PLLI2SM_0) /*!< PLLI2S division factor for PLLI2SM output by 29 */
01008 #define LL_RCC_PLLI2SM_DIV_30            (RCC_PLLI2SCFGR_PLLI2SM_4 | RCC_PLLI2SCFGR_PLLI2SM_3 | RCC_PLLI2SCFGR_PLLI2SM_2 | RCC_PLLI2SCFGR_PLLI2SM_1) /*!< PLLI2S division factor for PLLI2SM output by 30 */
01009 #define LL_RCC_PLLI2SM_DIV_31            (RCC_PLLI2SCFGR_PLLI2SM_4 | RCC_PLLI2SCFGR_PLLI2SM_3 | RCC_PLLI2SCFGR_PLLI2SM_2 | RCC_PLLI2SCFGR_PLLI2SM_1 | RCC_PLLI2SCFGR_PLLI2SM_0) /*!< PLLI2S division factor for PLLI2SM output by 31 */
01010 #define LL_RCC_PLLI2SM_DIV_32            (RCC_PLLI2SCFGR_PLLI2SM_5) /*!< PLLI2S division factor for PLLI2SM output by 32 */
01011 #define LL_RCC_PLLI2SM_DIV_33            (RCC_PLLI2SCFGR_PLLI2SM_5 | RCC_PLLI2SCFGR_PLLI2SM_0) /*!< PLLI2S division factor for PLLI2SM output by 33 */
01012 #define LL_RCC_PLLI2SM_DIV_34            (RCC_PLLI2SCFGR_PLLI2SM_5 | RCC_PLLI2SCFGR_PLLI2SM_1) /*!< PLLI2S division factor for PLLI2SM output by 34 */
01013 #define LL_RCC_PLLI2SM_DIV_35            (RCC_PLLI2SCFGR_PLLI2SM_5 | RCC_PLLI2SCFGR_PLLI2SM_1 | RCC_PLLI2SCFGR_PLLI2SM_0) /*!< PLLI2S division factor for PLLI2SM output by 35 */
01014 #define LL_RCC_PLLI2SM_DIV_36            (RCC_PLLI2SCFGR_PLLI2SM_5 | RCC_PLLI2SCFGR_PLLI2SM_2) /*!< PLLI2S division factor for PLLI2SM output by 36 */
01015 #define LL_RCC_PLLI2SM_DIV_37            (RCC_PLLI2SCFGR_PLLI2SM_5 | RCC_PLLI2SCFGR_PLLI2SM_2 | RCC_PLLI2SCFGR_PLLI2SM_0) /*!< PLLI2S division factor for PLLI2SM output by 37 */
01016 #define LL_RCC_PLLI2SM_DIV_38            (RCC_PLLI2SCFGR_PLLI2SM_5 | RCC_PLLI2SCFGR_PLLI2SM_2 | RCC_PLLI2SCFGR_PLLI2SM_1) /*!< PLLI2S division factor for PLLI2SM output by 38 */
01017 #define LL_RCC_PLLI2SM_DIV_39            (RCC_PLLI2SCFGR_PLLI2SM_5 | RCC_PLLI2SCFGR_PLLI2SM_2 | RCC_PLLI2SCFGR_PLLI2SM_1 | RCC_PLLI2SCFGR_PLLI2SM_0) /*!< PLLI2S division factor for PLLI2SM output by 39 */
01018 #define LL_RCC_PLLI2SM_DIV_40            (RCC_PLLI2SCFGR_PLLI2SM_5 | RCC_PLLI2SCFGR_PLLI2SM_3) /*!< PLLI2S division factor for PLLI2SM output by 40 */
01019 #define LL_RCC_PLLI2SM_DIV_41            (RCC_PLLI2SCFGR_PLLI2SM_5 | RCC_PLLI2SCFGR_PLLI2SM_3 | RCC_PLLI2SCFGR_PLLI2SM_0) /*!< PLLI2S division factor for PLLI2SM output by 41 */
01020 #define LL_RCC_PLLI2SM_DIV_42            (RCC_PLLI2SCFGR_PLLI2SM_5 | RCC_PLLI2SCFGR_PLLI2SM_3 | RCC_PLLI2SCFGR_PLLI2SM_1) /*!< PLLI2S division factor for PLLI2SM output by 42 */
01021 #define LL_RCC_PLLI2SM_DIV_43            (RCC_PLLI2SCFGR_PLLI2SM_5 | RCC_PLLI2SCFGR_PLLI2SM_3 | RCC_PLLI2SCFGR_PLLI2SM_1 | RCC_PLLI2SCFGR_PLLI2SM_0) /*!< PLLI2S division factor for PLLI2SM output by 43 */
01022 #define LL_RCC_PLLI2SM_DIV_44            (RCC_PLLI2SCFGR_PLLI2SM_5 | RCC_PLLI2SCFGR_PLLI2SM_3 | RCC_PLLI2SCFGR_PLLI2SM_2) /*!< PLLI2S division factor for PLLI2SM output by 44 */
01023 #define LL_RCC_PLLI2SM_DIV_45            (RCC_PLLI2SCFGR_PLLI2SM_5 | RCC_PLLI2SCFGR_PLLI2SM_3 | RCC_PLLI2SCFGR_PLLI2SM_2 | RCC_PLLI2SCFGR_PLLI2SM_0) /*!< PLLI2S division factor for PLLI2SM output by 45 */
01024 #define LL_RCC_PLLI2SM_DIV_46            (RCC_PLLI2SCFGR_PLLI2SM_5 | RCC_PLLI2SCFGR_PLLI2SM_3 | RCC_PLLI2SCFGR_PLLI2SM_2 | RCC_PLLI2SCFGR_PLLI2SM_1) /*!< PLLI2S division factor for PLLI2SM output by 46 */
01025 #define LL_RCC_PLLI2SM_DIV_47            (RCC_PLLI2SCFGR_PLLI2SM_5 | RCC_PLLI2SCFGR_PLLI2SM_3 | RCC_PLLI2SCFGR_PLLI2SM_2 | RCC_PLLI2SCFGR_PLLI2SM_1 | RCC_PLLI2SCFGR_PLLI2SM_0) /*!< PLLI2S division factor for PLLI2SM output by 47 */
01026 #define LL_RCC_PLLI2SM_DIV_48            (RCC_PLLI2SCFGR_PLLI2SM_5 | RCC_PLLI2SCFGR_PLLI2SM_4) /*!< PLLI2S division factor for PLLI2SM output by 48 */
01027 #define LL_RCC_PLLI2SM_DIV_49            (RCC_PLLI2SCFGR_PLLI2SM_5 | RCC_PLLI2SCFGR_PLLI2SM_4 | RCC_PLLI2SCFGR_PLLI2SM_0) /*!< PLLI2S division factor for PLLI2SM output by 49 */
01028 #define LL_RCC_PLLI2SM_DIV_50            (RCC_PLLI2SCFGR_PLLI2SM_5 | RCC_PLLI2SCFGR_PLLI2SM_4 | RCC_PLLI2SCFGR_PLLI2SM_1) /*!< PLLI2S division factor for PLLI2SM output by 50 */
01029 #define LL_RCC_PLLI2SM_DIV_51            (RCC_PLLI2SCFGR_PLLI2SM_5 | RCC_PLLI2SCFGR_PLLI2SM_4 | RCC_PLLI2SCFGR_PLLI2SM_1 | RCC_PLLI2SCFGR_PLLI2SM_0) /*!< PLLI2S division factor for PLLI2SM output by 51 */
01030 #define LL_RCC_PLLI2SM_DIV_52            (RCC_PLLI2SCFGR_PLLI2SM_5 | RCC_PLLI2SCFGR_PLLI2SM_4 | RCC_PLLI2SCFGR_PLLI2SM_2) /*!< PLLI2S division factor for PLLI2SM output by 52 */
01031 #define LL_RCC_PLLI2SM_DIV_53            (RCC_PLLI2SCFGR_PLLI2SM_5 | RCC_PLLI2SCFGR_PLLI2SM_4 | RCC_PLLI2SCFGR_PLLI2SM_2 | RCC_PLLI2SCFGR_PLLI2SM_0) /*!< PLLI2S division factor for PLLI2SM output by 53 */
01032 #define LL_RCC_PLLI2SM_DIV_54            (RCC_PLLI2SCFGR_PLLI2SM_5 | RCC_PLLI2SCFGR_PLLI2SM_4 | RCC_PLLI2SCFGR_PLLI2SM_2 | RCC_PLLI2SCFGR_PLLI2SM_1) /*!< PLLI2S division factor for PLLI2SM output by 54 */
01033 #define LL_RCC_PLLI2SM_DIV_55            (RCC_PLLI2SCFGR_PLLI2SM_5 | RCC_PLLI2SCFGR_PLLI2SM_4 | RCC_PLLI2SCFGR_PLLI2SM_2 | RCC_PLLI2SCFGR_PLLI2SM_1 | RCC_PLLI2SCFGR_PLLI2SM_0) /*!< PLLI2S division factor for PLLI2SM output by 55 */
01034 #define LL_RCC_PLLI2SM_DIV_56            (RCC_PLLI2SCFGR_PLLI2SM_5 | RCC_PLLI2SCFGR_PLLI2SM_4 | RCC_PLLI2SCFGR_PLLI2SM_3) /*!< PLLI2S division factor for PLLI2SM output by 56 */
01035 #define LL_RCC_PLLI2SM_DIV_57            (RCC_PLLI2SCFGR_PLLI2SM_5 | RCC_PLLI2SCFGR_PLLI2SM_4 | RCC_PLLI2SCFGR_PLLI2SM_3 | RCC_PLLI2SCFGR_PLLI2SM_0) /*!< PLLI2S division factor for PLLI2SM output by 57 */
01036 #define LL_RCC_PLLI2SM_DIV_58            (RCC_PLLI2SCFGR_PLLI2SM_5 | RCC_PLLI2SCFGR_PLLI2SM_4 | RCC_PLLI2SCFGR_PLLI2SM_3 | RCC_PLLI2SCFGR_PLLI2SM_1) /*!< PLLI2S division factor for PLLI2SM output by 58 */
01037 #define LL_RCC_PLLI2SM_DIV_59            (RCC_PLLI2SCFGR_PLLI2SM_5 | RCC_PLLI2SCFGR_PLLI2SM_4 | RCC_PLLI2SCFGR_PLLI2SM_3 | RCC_PLLI2SCFGR_PLLI2SM_1 | RCC_PLLI2SCFGR_PLLI2SM_0) /*!< PLLI2S division factor for PLLI2SM output by 59 */
01038 #define LL_RCC_PLLI2SM_DIV_60            (RCC_PLLI2SCFGR_PLLI2SM_5 | RCC_PLLI2SCFGR_PLLI2SM_4 | RCC_PLLI2SCFGR_PLLI2SM_3 | RCC_PLLI2SCFGR_PLLI2SM_2) /*!< PLLI2S division factor for PLLI2SM output by 60 */
01039 #define LL_RCC_PLLI2SM_DIV_61            (RCC_PLLI2SCFGR_PLLI2SM_5 | RCC_PLLI2SCFGR_PLLI2SM_4 | RCC_PLLI2SCFGR_PLLI2SM_3 | RCC_PLLI2SCFGR_PLLI2SM_2 | RCC_PLLI2SCFGR_PLLI2SM_0) /*!< PLLI2S division factor for PLLI2SM output by 61 */
01040 #define LL_RCC_PLLI2SM_DIV_62            (RCC_PLLI2SCFGR_PLLI2SM_5 | RCC_PLLI2SCFGR_PLLI2SM_4 | RCC_PLLI2SCFGR_PLLI2SM_3 | RCC_PLLI2SCFGR_PLLI2SM_2 | RCC_PLLI2SCFGR_PLLI2SM_1) /*!< PLLI2S division factor for PLLI2SM output by 62 */
01041 #define LL_RCC_PLLI2SM_DIV_63            (RCC_PLLI2SCFGR_PLLI2SM_5 | RCC_PLLI2SCFGR_PLLI2SM_4 | RCC_PLLI2SCFGR_PLLI2SM_3 | RCC_PLLI2SCFGR_PLLI2SM_2 | RCC_PLLI2SCFGR_PLLI2SM_1 | RCC_PLLI2SCFGR_PLLI2SM_0) /*!< PLLI2S division factor for PLLI2SM output by 63 */
01042 #else
01043 #define LL_RCC_PLLI2SM_DIV_2              LL_RCC_PLLM_DIV_2      /*!< PLLI2S division factor for PLLI2SM output by 2 */
01044 #define LL_RCC_PLLI2SM_DIV_3              LL_RCC_PLLM_DIV_3      /*!< PLLI2S division factor for PLLI2SM output by 3 */
01045 #define LL_RCC_PLLI2SM_DIV_4              LL_RCC_PLLM_DIV_4      /*!< PLLI2S division factor for PLLI2SM output by 4 */
01046 #define LL_RCC_PLLI2SM_DIV_5              LL_RCC_PLLM_DIV_5      /*!< PLLI2S division factor for PLLI2SM output by 5 */
01047 #define LL_RCC_PLLI2SM_DIV_6              LL_RCC_PLLM_DIV_6      /*!< PLLI2S division factor for PLLI2SM output by 6 */
01048 #define LL_RCC_PLLI2SM_DIV_7              LL_RCC_PLLM_DIV_7      /*!< PLLI2S division factor for PLLI2SM output by 7 */
01049 #define LL_RCC_PLLI2SM_DIV_8              LL_RCC_PLLM_DIV_8      /*!< PLLI2S division factor for PLLI2SM output by 8 */
01050 #define LL_RCC_PLLI2SM_DIV_9              LL_RCC_PLLM_DIV_9      /*!< PLLI2S division factor for PLLI2SM output by 9 */
01051 #define LL_RCC_PLLI2SM_DIV_10             LL_RCC_PLLM_DIV_10     /*!< PLLI2S division factor for PLLI2SM output by 10 */
01052 #define LL_RCC_PLLI2SM_DIV_11             LL_RCC_PLLM_DIV_11     /*!< PLLI2S division factor for PLLI2SM output by 11 */
01053 #define LL_RCC_PLLI2SM_DIV_12             LL_RCC_PLLM_DIV_12     /*!< PLLI2S division factor for PLLI2SM output by 12 */
01054 #define LL_RCC_PLLI2SM_DIV_13             LL_RCC_PLLM_DIV_13     /*!< PLLI2S division factor for PLLI2SM output by 13 */
01055 #define LL_RCC_PLLI2SM_DIV_14             LL_RCC_PLLM_DIV_14     /*!< PLLI2S division factor for PLLI2SM output by 14 */
01056 #define LL_RCC_PLLI2SM_DIV_15             LL_RCC_PLLM_DIV_15     /*!< PLLI2S division factor for PLLI2SM output by 15 */
01057 #define LL_RCC_PLLI2SM_DIV_16             LL_RCC_PLLM_DIV_16     /*!< PLLI2S division factor for PLLI2SM output by 16 */
01058 #define LL_RCC_PLLI2SM_DIV_17             LL_RCC_PLLM_DIV_17     /*!< PLLI2S division factor for PLLI2SM output by 17 */
01059 #define LL_RCC_PLLI2SM_DIV_18             LL_RCC_PLLM_DIV_18     /*!< PLLI2S division factor for PLLI2SM output by 18 */
01060 #define LL_RCC_PLLI2SM_DIV_19             LL_RCC_PLLM_DIV_19     /*!< PLLI2S division factor for PLLI2SM output by 19 */
01061 #define LL_RCC_PLLI2SM_DIV_20             LL_RCC_PLLM_DIV_20     /*!< PLLI2S division factor for PLLI2SM output by 20 */
01062 #define LL_RCC_PLLI2SM_DIV_21             LL_RCC_PLLM_DIV_21     /*!< PLLI2S division factor for PLLI2SM output by 21 */
01063 #define LL_RCC_PLLI2SM_DIV_22             LL_RCC_PLLM_DIV_22     /*!< PLLI2S division factor for PLLI2SM output by 22 */
01064 #define LL_RCC_PLLI2SM_DIV_23             LL_RCC_PLLM_DIV_23     /*!< PLLI2S division factor for PLLI2SM output by 23 */
01065 #define LL_RCC_PLLI2SM_DIV_24             LL_RCC_PLLM_DIV_24     /*!< PLLI2S division factor for PLLI2SM output by 24 */
01066 #define LL_RCC_PLLI2SM_DIV_25             LL_RCC_PLLM_DIV_25     /*!< PLLI2S division factor for PLLI2SM output by 25 */
01067 #define LL_RCC_PLLI2SM_DIV_26             LL_RCC_PLLM_DIV_26     /*!< PLLI2S division factor for PLLI2SM output by 26 */
01068 #define LL_RCC_PLLI2SM_DIV_27             LL_RCC_PLLM_DIV_27     /*!< PLLI2S division factor for PLLI2SM output by 27 */
01069 #define LL_RCC_PLLI2SM_DIV_28             LL_RCC_PLLM_DIV_28     /*!< PLLI2S division factor for PLLI2SM output by 28 */
01070 #define LL_RCC_PLLI2SM_DIV_29             LL_RCC_PLLM_DIV_29     /*!< PLLI2S division factor for PLLI2SM output by 29 */
01071 #define LL_RCC_PLLI2SM_DIV_30             LL_RCC_PLLM_DIV_30     /*!< PLLI2S division factor for PLLI2SM output by 30 */
01072 #define LL_RCC_PLLI2SM_DIV_31             LL_RCC_PLLM_DIV_31     /*!< PLLI2S division factor for PLLI2SM output by 31 */
01073 #define LL_RCC_PLLI2SM_DIV_32             LL_RCC_PLLM_DIV_32     /*!< PLLI2S division factor for PLLI2SM output by 32 */
01074 #define LL_RCC_PLLI2SM_DIV_33             LL_RCC_PLLM_DIV_33     /*!< PLLI2S division factor for PLLI2SM output by 33 */
01075 #define LL_RCC_PLLI2SM_DIV_34             LL_RCC_PLLM_DIV_34     /*!< PLLI2S division factor for PLLI2SM output by 34 */
01076 #define LL_RCC_PLLI2SM_DIV_35             LL_RCC_PLLM_DIV_35     /*!< PLLI2S division factor for PLLI2SM output by 35 */
01077 #define LL_RCC_PLLI2SM_DIV_36             LL_RCC_PLLM_DIV_36     /*!< PLLI2S division factor for PLLI2SM output by 36 */
01078 #define LL_RCC_PLLI2SM_DIV_37             LL_RCC_PLLM_DIV_37     /*!< PLLI2S division factor for PLLI2SM output by 37 */
01079 #define LL_RCC_PLLI2SM_DIV_38             LL_RCC_PLLM_DIV_38     /*!< PLLI2S division factor for PLLI2SM output by 38 */
01080 #define LL_RCC_PLLI2SM_DIV_39             LL_RCC_PLLM_DIV_39     /*!< PLLI2S division factor for PLLI2SM output by 39 */
01081 #define LL_RCC_PLLI2SM_DIV_40             LL_RCC_PLLM_DIV_40     /*!< PLLI2S division factor for PLLI2SM output by 40 */
01082 #define LL_RCC_PLLI2SM_DIV_41             LL_RCC_PLLM_DIV_41     /*!< PLLI2S division factor for PLLI2SM output by 41 */
01083 #define LL_RCC_PLLI2SM_DIV_42             LL_RCC_PLLM_DIV_42     /*!< PLLI2S division factor for PLLI2SM output by 42 */
01084 #define LL_RCC_PLLI2SM_DIV_43             LL_RCC_PLLM_DIV_43     /*!< PLLI2S division factor for PLLI2SM output by 43 */
01085 #define LL_RCC_PLLI2SM_DIV_44             LL_RCC_PLLM_DIV_44     /*!< PLLI2S division factor for PLLI2SM output by 44 */
01086 #define LL_RCC_PLLI2SM_DIV_45             LL_RCC_PLLM_DIV_45     /*!< PLLI2S division factor for PLLI2SM output by 45 */
01087 #define LL_RCC_PLLI2SM_DIV_46             LL_RCC_PLLM_DIV_46     /*!< PLLI2S division factor for PLLI2SM output by 46 */
01088 #define LL_RCC_PLLI2SM_DIV_47             LL_RCC_PLLM_DIV_47     /*!< PLLI2S division factor for PLLI2SM output by 47 */
01089 #define LL_RCC_PLLI2SM_DIV_48             LL_RCC_PLLM_DIV_48     /*!< PLLI2S division factor for PLLI2SM output by 48 */
01090 #define LL_RCC_PLLI2SM_DIV_49             LL_RCC_PLLM_DIV_49     /*!< PLLI2S division factor for PLLI2SM output by 49 */
01091 #define LL_RCC_PLLI2SM_DIV_50             LL_RCC_PLLM_DIV_50     /*!< PLLI2S division factor for PLLI2SM output by 50 */
01092 #define LL_RCC_PLLI2SM_DIV_51             LL_RCC_PLLM_DIV_51     /*!< PLLI2S division factor for PLLI2SM output by 51 */
01093 #define LL_RCC_PLLI2SM_DIV_52             LL_RCC_PLLM_DIV_52     /*!< PLLI2S division factor for PLLI2SM output by 52 */
01094 #define LL_RCC_PLLI2SM_DIV_53             LL_RCC_PLLM_DIV_53     /*!< PLLI2S division factor for PLLI2SM output by 53 */
01095 #define LL_RCC_PLLI2SM_DIV_54             LL_RCC_PLLM_DIV_54     /*!< PLLI2S division factor for PLLI2SM output by 54 */
01096 #define LL_RCC_PLLI2SM_DIV_55             LL_RCC_PLLM_DIV_55     /*!< PLLI2S division factor for PLLI2SM output by 55 */
01097 #define LL_RCC_PLLI2SM_DIV_56             LL_RCC_PLLM_DIV_56     /*!< PLLI2S division factor for PLLI2SM output by 56 */
01098 #define LL_RCC_PLLI2SM_DIV_57             LL_RCC_PLLM_DIV_57     /*!< PLLI2S division factor for PLLI2SM output by 57 */
01099 #define LL_RCC_PLLI2SM_DIV_58             LL_RCC_PLLM_DIV_58     /*!< PLLI2S division factor for PLLI2SM output by 58 */
01100 #define LL_RCC_PLLI2SM_DIV_59             LL_RCC_PLLM_DIV_59     /*!< PLLI2S division factor for PLLI2SM output by 59 */
01101 #define LL_RCC_PLLI2SM_DIV_60             LL_RCC_PLLM_DIV_60     /*!< PLLI2S division factor for PLLI2SM output by 60 */
01102 #define LL_RCC_PLLI2SM_DIV_61             LL_RCC_PLLM_DIV_61     /*!< PLLI2S division factor for PLLI2SM output by 61 */
01103 #define LL_RCC_PLLI2SM_DIV_62             LL_RCC_PLLM_DIV_62     /*!< PLLI2S division factor for PLLI2SM output by 62 */
01104 #define LL_RCC_PLLI2SM_DIV_63             LL_RCC_PLLM_DIV_63     /*!< PLLI2S division factor for PLLI2SM output by 63 */
01105 #endif /* RCC_PLLI2SCFGR_PLLI2SM */
01106 /**
01107   * @}
01108   */
01109 
01110 #if defined(RCC_PLLI2SCFGR_PLLI2SQ)
01111 /** @defgroup RCC_LL_EC_PLLI2SQ  PLLI2SQ division factor (PLLI2SQ)
01112   * @{
01113   */
01114 #define LL_RCC_PLLI2SQ_DIV_2              RCC_PLLI2SCFGR_PLLI2SQ_1        /*!< PLLI2S division factor for PLLI2SQ output by 2 */
01115 #define LL_RCC_PLLI2SQ_DIV_3              (RCC_PLLI2SCFGR_PLLI2SQ_1 | RCC_PLLI2SCFGR_PLLI2SQ_0)        /*!< PLLI2S division factor for PLLI2SQ output by 3 */
01116 #define LL_RCC_PLLI2SQ_DIV_4              RCC_PLLI2SCFGR_PLLI2SQ_2        /*!< PLLI2S division factor for PLLI2SQ output by 4 */
01117 #define LL_RCC_PLLI2SQ_DIV_5              (RCC_PLLI2SCFGR_PLLI2SQ_2 | RCC_PLLI2SCFGR_PLLI2SQ_0)        /*!< PLLI2S division factor for PLLI2SQ output by 5 */
01118 #define LL_RCC_PLLI2SQ_DIV_6              (RCC_PLLI2SCFGR_PLLI2SQ_2 | RCC_PLLI2SCFGR_PLLI2SQ_1)        /*!< PLLI2S division factor for PLLI2SQ output by 6 */
01119 #define LL_RCC_PLLI2SQ_DIV_7              (RCC_PLLI2SCFGR_PLLI2SQ_2 | RCC_PLLI2SCFGR_PLLI2SQ_1 | RCC_PLLI2SCFGR_PLLI2SQ_0)        /*!< PLLI2S division factor for PLLI2SQ output by 7 */
01120 #define LL_RCC_PLLI2SQ_DIV_8              RCC_PLLI2SCFGR_PLLI2SQ_3        /*!< PLLI2S division factor for PLLI2SQ output by 8 */
01121 #define LL_RCC_PLLI2SQ_DIV_9              (RCC_PLLI2SCFGR_PLLI2SQ_3 | RCC_PLLI2SCFGR_PLLI2SQ_0)        /*!< PLLI2S division factor for PLLI2SQ output by 9 */
01122 #define LL_RCC_PLLI2SQ_DIV_10             (RCC_PLLI2SCFGR_PLLI2SQ_3 | RCC_PLLI2SCFGR_PLLI2SQ_1)        /*!< PLLI2S division factor for PLLI2SQ output by 10 */
01123 #define LL_RCC_PLLI2SQ_DIV_11             (RCC_PLLI2SCFGR_PLLI2SQ_3 | RCC_PLLI2SCFGR_PLLI2SQ_1 | RCC_PLLI2SCFGR_PLLI2SQ_0)        /*!< PLLI2S division factor for PLLI2SQ output by 11 */
01124 #define LL_RCC_PLLI2SQ_DIV_12             (RCC_PLLI2SCFGR_PLLI2SQ_3 | RCC_PLLI2SCFGR_PLLI2SQ_2)        /*!< PLLI2S division factor for PLLI2SQ output by 12 */
01125 #define LL_RCC_PLLI2SQ_DIV_13             (RCC_PLLI2SCFGR_PLLI2SQ_3 | RCC_PLLI2SCFGR_PLLI2SQ_2 | RCC_PLLI2SCFGR_PLLI2SQ_0)        /*!< PLLI2S division factor for PLLI2SQ output by 13 */
01126 #define LL_RCC_PLLI2SQ_DIV_14             (RCC_PLLI2SCFGR_PLLI2SQ_3 | RCC_PLLI2SCFGR_PLLI2SQ_2 | RCC_PLLI2SCFGR_PLLI2SQ_1)        /*!< PLLI2S division factor for PLLI2SQ output by 14 */
01127 #define LL_RCC_PLLI2SQ_DIV_15             (RCC_PLLI2SCFGR_PLLI2SQ_3 | RCC_PLLI2SCFGR_PLLI2SQ_2 | RCC_PLLI2SCFGR_PLLI2SQ_1 | RCC_PLLI2SCFGR_PLLI2SQ_0)        /*!< PLLI2S division factor for PLLI2SQ output by 15 */
01128 /**
01129   * @}
01130   */
01131 #endif /* RCC_PLLI2SCFGR_PLLI2SQ */
01132 
01133 #if defined(RCC_DCKCFGR_PLLI2SDIVQ)
01134 /** @defgroup RCC_LL_EC_PLLI2SDIVQ  PLLI2SDIVQ division factor (PLLI2SDIVQ)
01135   * @{
01136   */
01137 #define LL_RCC_PLLI2SDIVQ_DIV_1           0x00000000U                        /*!< PLLI2S division factor for PLLI2SDIVQ output by 1 */
01138 #define LL_RCC_PLLI2SDIVQ_DIV_2           RCC_DCKCFGR_PLLI2SDIVQ_0          /*!< PLLI2S division factor for PLLI2SDIVQ output by 2 */
01139 #define LL_RCC_PLLI2SDIVQ_DIV_3           RCC_DCKCFGR_PLLI2SDIVQ_1          /*!< PLLI2S division factor for PLLI2SDIVQ output by 3 */
01140 #define LL_RCC_PLLI2SDIVQ_DIV_4           (RCC_DCKCFGR_PLLI2SDIVQ_1 | RCC_DCKCFGR_PLLI2SDIVQ_0)        /*!< PLLI2S division factor for PLLI2SDIVQ output by 4 */
01141 #define LL_RCC_PLLI2SDIVQ_DIV_5           RCC_DCKCFGR_PLLI2SDIVQ_2          /*!< PLLI2S division factor for PLLI2SDIVQ output by 5 */
01142 #define LL_RCC_PLLI2SDIVQ_DIV_6           (RCC_DCKCFGR_PLLI2SDIVQ_2 | RCC_DCKCFGR_PLLI2SDIVQ_0)        /*!< PLLI2S division factor for PLLI2SDIVQ output by 6 */
01143 #define LL_RCC_PLLI2SDIVQ_DIV_7           (RCC_DCKCFGR_PLLI2SDIVQ_2 | RCC_DCKCFGR_PLLI2SDIVQ_1)        /*!< PLLI2S division factor for PLLI2SDIVQ output by 7 */
01144 #define LL_RCC_PLLI2SDIVQ_DIV_8           (RCC_DCKCFGR_PLLI2SDIVQ_2 | RCC_DCKCFGR_PLLI2SDIVQ_1 | RCC_DCKCFGR_PLLI2SDIVQ_0)        /*!< PLLI2S division factor for PLLI2SDIVQ output by 8 */
01145 #define LL_RCC_PLLI2SDIVQ_DIV_9           RCC_DCKCFGR_PLLI2SDIVQ_3          /*!< PLLI2S division factor for PLLI2SDIVQ output by 9 */
01146 #define LL_RCC_PLLI2SDIVQ_DIV_10          (RCC_DCKCFGR_PLLI2SDIVQ_3 | RCC_DCKCFGR_PLLI2SDIVQ_0)        /*!< PLLI2S division factor for PLLI2SDIVQ output by 10 */
01147 #define LL_RCC_PLLI2SDIVQ_DIV_11          (RCC_DCKCFGR_PLLI2SDIVQ_3 | RCC_DCKCFGR_PLLI2SDIVQ_1)        /*!< PLLI2S division factor for PLLI2SDIVQ output by 11 */
01148 #define LL_RCC_PLLI2SDIVQ_DIV_12          (RCC_DCKCFGR_PLLI2SDIVQ_3 | RCC_DCKCFGR_PLLI2SDIVQ_1 | RCC_DCKCFGR_PLLI2SDIVQ_0)        /*!< PLLI2S division factor for PLLI2SDIVQ output by 12 */
01149 #define LL_RCC_PLLI2SDIVQ_DIV_13          (RCC_DCKCFGR_PLLI2SDIVQ_3 | RCC_DCKCFGR_PLLI2SDIVQ_2)        /*!< PLLI2S division factor for PLLI2SDIVQ output by 13 */
01150 #define LL_RCC_PLLI2SDIVQ_DIV_14          (RCC_DCKCFGR_PLLI2SDIVQ_3 | RCC_DCKCFGR_PLLI2SDIVQ_2 | RCC_DCKCFGR_PLLI2SDIVQ_0)        /*!< PLLI2S division factor for PLLI2SDIVQ output by 14 */
01151 #define LL_RCC_PLLI2SDIVQ_DIV_15          (RCC_DCKCFGR_PLLI2SDIVQ_3 | RCC_DCKCFGR_PLLI2SDIVQ_2 | RCC_DCKCFGR_PLLI2SDIVQ_1)        /*!< PLLI2S division factor for PLLI2SDIVQ output by 15 */
01152 #define LL_RCC_PLLI2SDIVQ_DIV_16          (RCC_DCKCFGR_PLLI2SDIVQ_3 | RCC_DCKCFGR_PLLI2SDIVQ_2 | RCC_DCKCFGR_PLLI2SDIVQ_1 | RCC_DCKCFGR_PLLI2SDIVQ_0)        /*!< PLLI2S division factor for PLLI2SDIVQ output by 16 */
01153 #define LL_RCC_PLLI2SDIVQ_DIV_17          RCC_DCKCFGR_PLLI2SDIVQ_4          /*!< PLLI2S division factor for PLLI2SDIVQ output by 17 */
01154 #define LL_RCC_PLLI2SDIVQ_DIV_18          (RCC_DCKCFGR_PLLI2SDIVQ_4 | RCC_DCKCFGR_PLLI2SDIVQ_0)        /*!< PLLI2S division factor for PLLI2SDIVQ output by 18 */
01155 #define LL_RCC_PLLI2SDIVQ_DIV_19          (RCC_DCKCFGR_PLLI2SDIVQ_4 | RCC_DCKCFGR_PLLI2SDIVQ_1)        /*!< PLLI2S division factor for PLLI2SDIVQ output by 19 */
01156 #define LL_RCC_PLLI2SDIVQ_DIV_20          (RCC_DCKCFGR_PLLI2SDIVQ_4 | RCC_DCKCFGR_PLLI2SDIVQ_1 | RCC_DCKCFGR_PLLI2SDIVQ_0)        /*!< PLLI2S division factor for PLLI2SDIVQ output by 20 */
01157 #define LL_RCC_PLLI2SDIVQ_DIV_21          (RCC_DCKCFGR_PLLI2SDIVQ_4 | RCC_DCKCFGR_PLLI2SDIVQ_2)        /*!< PLLI2S division factor for PLLI2SDIVQ output by 21 */
01158 #define LL_RCC_PLLI2SDIVQ_DIV_22          (RCC_DCKCFGR_PLLI2SDIVQ_4 | RCC_DCKCFGR_PLLI2SDIVQ_2 | RCC_DCKCFGR_PLLI2SDIVQ_0)        /*!< PLLI2S division factor for PLLI2SDIVQ output by 22 */
01159 #define LL_RCC_PLLI2SDIVQ_DIV_23          (RCC_DCKCFGR_PLLI2SDIVQ_4 | RCC_DCKCFGR_PLLI2SDIVQ_2 | RCC_DCKCFGR_PLLI2SDIVQ_1)        /*!< PLLI2S division factor for PLLI2SDIVQ output by 23 */
01160 #define LL_RCC_PLLI2SDIVQ_DIV_24          (RCC_DCKCFGR_PLLI2SDIVQ_4 | RCC_DCKCFGR_PLLI2SDIVQ_2 | RCC_DCKCFGR_PLLI2SDIVQ_1 | RCC_DCKCFGR_PLLI2SDIVQ_0)        /*!< PLLI2S division factor for PLLI2SDIVQ output by 24 */
01161 #define LL_RCC_PLLI2SDIVQ_DIV_25          (RCC_DCKCFGR_PLLI2SDIVQ_4 | RCC_DCKCFGR_PLLI2SDIVQ_3)        /*!< PLLI2S division factor for PLLI2SDIVQ output by 25 */
01162 #define LL_RCC_PLLI2SDIVQ_DIV_26          (RCC_DCKCFGR_PLLI2SDIVQ_4 | RCC_DCKCFGR_PLLI2SDIVQ_3 | RCC_DCKCFGR_PLLI2SDIVQ_0)        /*!< PLLI2S division factor for PLLI2SDIVQ output by 26 */
01163 #define LL_RCC_PLLI2SDIVQ_DIV_27          (RCC_DCKCFGR_PLLI2SDIVQ_4 | RCC_DCKCFGR_PLLI2SDIVQ_3 | RCC_DCKCFGR_PLLI2SDIVQ_1)        /*!< PLLI2S division factor for PLLI2SDIVQ output by 27 */
01164 #define LL_RCC_PLLI2SDIVQ_DIV_28          (RCC_DCKCFGR_PLLI2SDIVQ_4 | RCC_DCKCFGR_PLLI2SDIVQ_3 | RCC_DCKCFGR_PLLI2SDIVQ_1 | RCC_DCKCFGR_PLLI2SDIVQ_0)        /*!< PLLI2S division factor for PLLI2SDIVQ output by 28 */
01165 #define LL_RCC_PLLI2SDIVQ_DIV_29          (RCC_DCKCFGR_PLLI2SDIVQ_4 | RCC_DCKCFGR_PLLI2SDIVQ_3 | RCC_DCKCFGR_PLLI2SDIVQ_2)        /*!< PLLI2S division factor for PLLI2SDIVQ output by 29 */
01166 #define LL_RCC_PLLI2SDIVQ_DIV_30          (RCC_DCKCFGR_PLLI2SDIVQ_4 | RCC_DCKCFGR_PLLI2SDIVQ_3 | RCC_DCKCFGR_PLLI2SDIVQ_2 | RCC_DCKCFGR_PLLI2SDIVQ_0)        /*!< PLLI2S division factor for PLLI2SDIVQ output by 30 */
01167 #define LL_RCC_PLLI2SDIVQ_DIV_31          (RCC_DCKCFGR_PLLI2SDIVQ_4 | RCC_DCKCFGR_PLLI2SDIVQ_3 | RCC_DCKCFGR_PLLI2SDIVQ_2 | RCC_DCKCFGR_PLLI2SDIVQ_1)        /*!< PLLI2S division factor for PLLI2SDIVQ output by 31 */
01168 #define LL_RCC_PLLI2SDIVQ_DIV_32          (RCC_DCKCFGR_PLLI2SDIVQ_4 | RCC_DCKCFGR_PLLI2SDIVQ_3 | RCC_DCKCFGR_PLLI2SDIVQ_2 | RCC_DCKCFGR_PLLI2SDIVQ_1 | RCC_DCKCFGR_PLLI2SDIVQ_0)        /*!< PLLI2S division factor for PLLI2SDIVQ output by 32 */
01169 /**
01170   * @}
01171   */
01172 #endif /* RCC_DCKCFGR_PLLI2SDIVQ */
01173 
01174 #if defined(RCC_DCKCFGR_PLLI2SDIVR)
01175 /** @defgroup RCC_LL_EC_PLLI2SDIVR  PLLI2SDIVR division factor (PLLI2SDIVR)
01176   * @{
01177   */
01178 #define LL_RCC_PLLI2SDIVR_DIV_1           (RCC_DCKCFGR_PLLI2SDIVR_0)        /*!< PLLI2S division factor for PLLI2SDIVR output by 1 */
01179 #define LL_RCC_PLLI2SDIVR_DIV_2           (RCC_DCKCFGR_PLLI2SDIVR_1)        /*!< PLLI2S division factor for PLLI2SDIVR output by 2 */
01180 #define LL_RCC_PLLI2SDIVR_DIV_3           (RCC_DCKCFGR_PLLI2SDIVR_1 | RCC_DCKCFGR_PLLI2SDIVR_0)        /*!< PLLI2S division factor for PLLI2SDIVR output by 3 */
01181 #define LL_RCC_PLLI2SDIVR_DIV_4           (RCC_DCKCFGR_PLLI2SDIVR_2)        /*!< PLLI2S division factor for PLLI2SDIVR output by 4 */
01182 #define LL_RCC_PLLI2SDIVR_DIV_5           (RCC_DCKCFGR_PLLI2SDIVR_2 | RCC_DCKCFGR_PLLI2SDIVR_0)        /*!< PLLI2S division factor for PLLI2SDIVR output by 5 */
01183 #define LL_RCC_PLLI2SDIVR_DIV_6           (RCC_DCKCFGR_PLLI2SDIVR_2 | RCC_DCKCFGR_PLLI2SDIVR_1)        /*!< PLLI2S division factor for PLLI2SDIVR output by 6 */
01184 #define LL_RCC_PLLI2SDIVR_DIV_7           (RCC_DCKCFGR_PLLI2SDIVR_2 | RCC_DCKCFGR_PLLI2SDIVR_1 | RCC_DCKCFGR_PLLI2SDIVR_0)        /*!< PLLI2S division factor for PLLI2SDIVR output by 7 */
01185 #define LL_RCC_PLLI2SDIVR_DIV_8           (RCC_DCKCFGR_PLLI2SDIVR_3)        /*!< PLLI2S division factor for PLLI2SDIVR output by 8 */
01186 #define LL_RCC_PLLI2SDIVR_DIV_9           (RCC_DCKCFGR_PLLI2SDIVR_3 | RCC_DCKCFGR_PLLI2SDIVR_0)        /*!< PLLI2S division factor for PLLI2SDIVR output by 9 */
01187 #define LL_RCC_PLLI2SDIVR_DIV_10          (RCC_DCKCFGR_PLLI2SDIVR_3 | RCC_DCKCFGR_PLLI2SDIVR_1)        /*!< PLLI2S division factor for PLLI2SDIVR output by 10 */
01188 #define LL_RCC_PLLI2SDIVR_DIV_11          (RCC_DCKCFGR_PLLI2SDIVR_3 | RCC_DCKCFGR_PLLI2SDIVR_1 | RCC_DCKCFGR_PLLI2SDIVR_0)        /*!< PLLI2S division factor for PLLI2SDIVR output by 11 */
01189 #define LL_RCC_PLLI2SDIVR_DIV_12          (RCC_DCKCFGR_PLLI2SDIVR_3 | RCC_DCKCFGR_PLLI2SDIVR_2)        /*!< PLLI2S division factor for PLLI2SDIVR output by 12 */
01190 #define LL_RCC_PLLI2SDIVR_DIV_13          (RCC_DCKCFGR_PLLI2SDIVR_3 | RCC_DCKCFGR_PLLI2SDIVR_2 | RCC_DCKCFGR_PLLI2SDIVR_0)        /*!< PLLI2S division factor for PLLI2SDIVR output by 13 */
01191 #define LL_RCC_PLLI2SDIVR_DIV_14          (RCC_DCKCFGR_PLLI2SDIVR_3 | RCC_DCKCFGR_PLLI2SDIVR_2 | RCC_DCKCFGR_PLLI2SDIVR_1)        /*!< PLLI2S division factor for PLLI2SDIVR output by 14 */
01192 #define LL_RCC_PLLI2SDIVR_DIV_15          (RCC_DCKCFGR_PLLI2SDIVR_3 | RCC_DCKCFGR_PLLI2SDIVR_2 | RCC_DCKCFGR_PLLI2SDIVR_1 | RCC_DCKCFGR_PLLI2SDIVR_0)        /*!< PLLI2S division factor for PLLI2SDIVR output by 15 */
01193 #define LL_RCC_PLLI2SDIVR_DIV_16          (RCC_DCKCFGR_PLLI2SDIVR_4)             /*!< PLLI2S division factor for PLLI2SDIVR output by 16 */
01194 #define LL_RCC_PLLI2SDIVR_DIV_17          (RCC_DCKCFGR_PLLI2SDIVR_4 | RCC_DCKCFGR_PLLI2SDIVR_0)        /*!< PLLI2S division factor for PLLI2SDIVR output by 17 */
01195 #define LL_RCC_PLLI2SDIVR_DIV_18          (RCC_DCKCFGR_PLLI2SDIVR_4 | RCC_DCKCFGR_PLLI2SDIVR_1)        /*!< PLLI2S division factor for PLLI2SDIVR output by 18 */
01196 #define LL_RCC_PLLI2SDIVR_DIV_19          (RCC_DCKCFGR_PLLI2SDIVR_4 | RCC_DCKCFGR_PLLI2SDIVR_1 | RCC_DCKCFGR_PLLI2SDIVR_0)        /*!< PLLI2S division factor for PLLI2SDIVR output by 19 */
01197 #define LL_RCC_PLLI2SDIVR_DIV_20          (RCC_DCKCFGR_PLLI2SDIVR_4 | RCC_DCKCFGR_PLLI2SDIVR_2)        /*!< PLLI2S division factor for PLLI2SDIVR output by 20 */
01198 #define LL_RCC_PLLI2SDIVR_DIV_21          (RCC_DCKCFGR_PLLI2SDIVR_4 | RCC_DCKCFGR_PLLI2SDIVR_2 | RCC_DCKCFGR_PLLI2SDIVR_0)        /*!< PLLI2S division factor for PLLI2SDIVR output by 21 */
01199 #define LL_RCC_PLLI2SDIVR_DIV_22          (RCC_DCKCFGR_PLLI2SDIVR_4 | RCC_DCKCFGR_PLLI2SDIVR_2 | RCC_DCKCFGR_PLLI2SDIVR_1)        /*!< PLLI2S division factor for PLLI2SDIVR output by 22 */
01200 #define LL_RCC_PLLI2SDIVR_DIV_23          (RCC_DCKCFGR_PLLI2SDIVR_4 | RCC_DCKCFGR_PLLI2SDIVR_2 | RCC_DCKCFGR_PLLI2SDIVR_1 | RCC_DCKCFGR_PLLI2SDIVR_0)        /*!< PLLI2S division factor for PLLI2SDIVR output by 23 */
01201 #define LL_RCC_PLLI2SDIVR_DIV_24          (RCC_DCKCFGR_PLLI2SDIVR_4 | RCC_DCKCFGR_PLLI2SDIVR_3)        /*!< PLLI2S division factor for PLLI2SDIVR output by 24 */
01202 #define LL_RCC_PLLI2SDIVR_DIV_25          (RCC_DCKCFGR_PLLI2SDIVR_4 | RCC_DCKCFGR_PLLI2SDIVR_3 | RCC_DCKCFGR_PLLI2SDIVR_0)        /*!< PLLI2S division factor for PLLI2SDIVR output by 25 */
01203 #define LL_RCC_PLLI2SDIVR_DIV_26          (RCC_DCKCFGR_PLLI2SDIVR_4 | RCC_DCKCFGR_PLLI2SDIVR_3 | RCC_DCKCFGR_PLLI2SDIVR_1)        /*!< PLLI2S division factor for PLLI2SDIVR output by 26 */
01204 #define LL_RCC_PLLI2SDIVR_DIV_27          (RCC_DCKCFGR_PLLI2SDIVR_4 | RCC_DCKCFGR_PLLI2SDIVR_3 | RCC_DCKCFGR_PLLI2SDIVR_1 | RCC_DCKCFGR_PLLI2SDIVR_0)        /*!< PLLI2S division factor for PLLI2SDIVR output by 27 */
01205 #define LL_RCC_PLLI2SDIVR_DIV_28          (RCC_DCKCFGR_PLLI2SDIVR_4 | RCC_DCKCFGR_PLLI2SDIVR_3 | RCC_DCKCFGR_PLLI2SDIVR_2)        /*!< PLLI2S division factor for PLLI2SDIVR output by 28 */
01206 #define LL_RCC_PLLI2SDIVR_DIV_29          (RCC_DCKCFGR_PLLI2SDIVR_4 | RCC_DCKCFGR_PLLI2SDIVR_3 | RCC_DCKCFGR_PLLI2SDIVR_2 | RCC_DCKCFGR_PLLI2SDIVR_0)        /*!< PLLI2S division factor for PLLI2SDIVR output by 29 */
01207 #define LL_RCC_PLLI2SDIVR_DIV_30          (RCC_DCKCFGR_PLLI2SDIVR_4 | RCC_DCKCFGR_PLLI2SDIVR_3 | RCC_DCKCFGR_PLLI2SDIVR_2 | RCC_DCKCFGR_PLLI2SDIVR_1)        /*!< PLLI2S division factor for PLLI2SDIVR output by 30 */
01208 #define LL_RCC_PLLI2SDIVR_DIV_31          (RCC_DCKCFGR_PLLI2SDIVR_4 | RCC_DCKCFGR_PLLI2SDIVR_3 | RCC_DCKCFGR_PLLI2SDIVR_2 | RCC_DCKCFGR_PLLI2SDIVR_1 | RCC_DCKCFGR_PLLI2SDIVR_0)        /*!< PLLI2S division factor for PLLI2SDIVR output by 31 */
01209 /**
01210   * @}
01211   */
01212 #endif /* RCC_DCKCFGR_PLLI2SDIVR */
01213 
01214 /** @defgroup RCC_LL_EC_PLLI2SR  PLLI2SR division factor (PLLI2SR)
01215   * @{
01216   */
01217 #define LL_RCC_PLLI2SR_DIV_2              RCC_PLLI2SCFGR_PLLI2SR_1                                     /*!< PLLI2S division factor for PLLI2SR output by 2 */
01218 #define LL_RCC_PLLI2SR_DIV_3              (RCC_PLLI2SCFGR_PLLI2SR_1 | RCC_PLLI2SCFGR_PLLI2SR_0)        /*!< PLLI2S division factor for PLLI2SR output by 3 */
01219 #define LL_RCC_PLLI2SR_DIV_4              RCC_PLLI2SCFGR_PLLI2SR_2                                     /*!< PLLI2S division factor for PLLI2SR output by 4 */
01220 #define LL_RCC_PLLI2SR_DIV_5              (RCC_PLLI2SCFGR_PLLI2SR_2 | RCC_PLLI2SCFGR_PLLI2SR_0)        /*!< PLLI2S division factor for PLLI2SR output by 5 */
01221 #define LL_RCC_PLLI2SR_DIV_6              (RCC_PLLI2SCFGR_PLLI2SR_2 | RCC_PLLI2SCFGR_PLLI2SR_1)        /*!< PLLI2S division factor for PLLI2SR output by 6 */
01222 #define LL_RCC_PLLI2SR_DIV_7              (RCC_PLLI2SCFGR_PLLI2SR_2 | RCC_PLLI2SCFGR_PLLI2SR_1 | RCC_PLLI2SCFGR_PLLI2SR_0)        /*!< PLLI2S division factor for PLLI2SR output by 7 */
01223 /**
01224   * @}
01225   */
01226 
01227 #if defined(RCC_PLLI2SCFGR_PLLI2SP)
01228 /** @defgroup RCC_LL_EC_PLLI2SP  PLLI2SP division factor (PLLI2SP)
01229   * @{
01230   */
01231 #define LL_RCC_PLLI2SP_DIV_2              0x00000000U            /*!< PLLI2S division factor for PLLI2SP output by 2 */
01232 #define LL_RCC_PLLI2SP_DIV_4              RCC_PLLI2SCFGR_PLLI2SP_0        /*!< PLLI2S division factor for PLLI2SP output by 4 */
01233 #define LL_RCC_PLLI2SP_DIV_6              RCC_PLLI2SCFGR_PLLI2SP_1        /*!< PLLI2S division factor for PLLI2SP output by 6 */
01234 #define LL_RCC_PLLI2SP_DIV_8              (RCC_PLLI2SCFGR_PLLI2SP_1 | RCC_PLLI2SCFGR_PLLI2SP_0)        /*!< PLLI2S division factor for PLLI2SP output by 8 */
01235 /**
01236   * @}
01237   */
01238 #endif /* RCC_PLLI2SCFGR_PLLI2SP */
01239 #endif /* RCC_PLLI2S_SUPPORT */
01240 
01241 #if defined(RCC_PLLSAI_SUPPORT)
01242 /** @defgroup RCC_LL_EC_PLLSAIM  PLLSAIM division factor (PLLSAIM or PLLM)
01243   * @{
01244   */
01245 #if defined(RCC_PLLSAICFGR_PLLSAIM)
01246 #define LL_RCC_PLLSAIM_DIV_2             (RCC_PLLSAICFGR_PLLSAIM_1) /*!< PLLSAI division factor for PLLSAIM output by 2 */
01247 #define LL_RCC_PLLSAIM_DIV_3             (RCC_PLLSAICFGR_PLLSAIM_1 | RCC_PLLSAICFGR_PLLSAIM_0) /*!< PLLSAI division factor for PLLSAIM output by 3 */
01248 #define LL_RCC_PLLSAIM_DIV_4             (RCC_PLLSAICFGR_PLLSAIM_2) /*!< PLLSAI division factor for PLLSAIM output by 4 */
01249 #define LL_RCC_PLLSAIM_DIV_5             (RCC_PLLSAICFGR_PLLSAIM_2 | RCC_PLLSAICFGR_PLLSAIM_0) /*!< PLLSAI division factor for PLLSAIM output by 5 */
01250 #define LL_RCC_PLLSAIM_DIV_6             (RCC_PLLSAICFGR_PLLSAIM_2 | RCC_PLLSAICFGR_PLLSAIM_1) /*!< PLLSAI division factor for PLLSAIM output by 6 */
01251 #define LL_RCC_PLLSAIM_DIV_7             (RCC_PLLSAICFGR_PLLSAIM_2 | RCC_PLLSAICFGR_PLLSAIM_1 | RCC_PLLSAICFGR_PLLSAIM_0) /*!< PLLSAI division factor for PLLSAIM output by 7 */
01252 #define LL_RCC_PLLSAIM_DIV_8             (RCC_PLLSAICFGR_PLLSAIM_3) /*!< PLLSAI division factor for PLLSAIM output by 8 */
01253 #define LL_RCC_PLLSAIM_DIV_9             (RCC_PLLSAICFGR_PLLSAIM_3 | RCC_PLLSAICFGR_PLLSAIM_0) /*!< PLLSAI division factor for PLLSAIM output by 9 */
01254 #define LL_RCC_PLLSAIM_DIV_10            (RCC_PLLSAICFGR_PLLSAIM_3 | RCC_PLLSAICFGR_PLLSAIM_1) /*!< PLLSAI division factor for PLLSAIM output by 10 */
01255 #define LL_RCC_PLLSAIM_DIV_11            (RCC_PLLSAICFGR_PLLSAIM_3 | RCC_PLLSAICFGR_PLLSAIM_1 | RCC_PLLSAICFGR_PLLSAIM_0) /*!< PLLSAI division factor for PLLSAIM output by 11 */
01256 #define LL_RCC_PLLSAIM_DIV_12            (RCC_PLLSAICFGR_PLLSAIM_3 | RCC_PLLSAICFGR_PLLSAIM_2) /*!< PLLSAI division factor for PLLSAIM output by 12 */
01257 #define LL_RCC_PLLSAIM_DIV_13            (RCC_PLLSAICFGR_PLLSAIM_3 | RCC_PLLSAICFGR_PLLSAIM_2 | RCC_PLLSAICFGR_PLLSAIM_0) /*!< PLLSAI division factor for PLLSAIM output by 13 */
01258 #define LL_RCC_PLLSAIM_DIV_14            (RCC_PLLSAICFGR_PLLSAIM_3 | RCC_PLLSAICFGR_PLLSAIM_2 | RCC_PLLSAICFGR_PLLSAIM_1) /*!< PLLSAI division factor for PLLSAIM output by 14 */
01259 #define LL_RCC_PLLSAIM_DIV_15            (RCC_PLLSAICFGR_PLLSAIM_3 | RCC_PLLSAICFGR_PLLSAIM_2 | RCC_PLLSAICFGR_PLLSAIM_1 | RCC_PLLSAICFGR_PLLSAIM_0) /*!< PLLSAI division factor for PLLSAIM output by 15 */
01260 #define LL_RCC_PLLSAIM_DIV_16            (RCC_PLLSAICFGR_PLLSAIM_4) /*!< PLLSAI division factor for PLLSAIM output by 16 */
01261 #define LL_RCC_PLLSAIM_DIV_17            (RCC_PLLSAICFGR_PLLSAIM_4 | RCC_PLLSAICFGR_PLLSAIM_0) /*!< PLLSAI division factor for PLLSAIM output by 17 */
01262 #define LL_RCC_PLLSAIM_DIV_18            (RCC_PLLSAICFGR_PLLSAIM_4 | RCC_PLLSAICFGR_PLLSAIM_1) /*!< PLLSAI division factor for PLLSAIM output by 18 */
01263 #define LL_RCC_PLLSAIM_DIV_19            (RCC_PLLSAICFGR_PLLSAIM_4 | RCC_PLLSAICFGR_PLLSAIM_1 | RCC_PLLSAICFGR_PLLSAIM_0) /*!< PLLSAI division factor for PLLSAIM output by 19 */
01264 #define LL_RCC_PLLSAIM_DIV_20            (RCC_PLLSAICFGR_PLLSAIM_4 | RCC_PLLSAICFGR_PLLSAIM_2) /*!< PLLSAI division factor for PLLSAIM output by 20 */
01265 #define LL_RCC_PLLSAIM_DIV_21            (RCC_PLLSAICFGR_PLLSAIM_4 | RCC_PLLSAICFGR_PLLSAIM_2 | RCC_PLLSAICFGR_PLLSAIM_0) /*!< PLLSAI division factor for PLLSAIM output by 21 */
01266 #define LL_RCC_PLLSAIM_DIV_22            (RCC_PLLSAICFGR_PLLSAIM_4 | RCC_PLLSAICFGR_PLLSAIM_2 | RCC_PLLSAICFGR_PLLSAIM_1) /*!< PLLSAI division factor for PLLSAIM output by 22 */
01267 #define LL_RCC_PLLSAIM_DIV_23            (RCC_PLLSAICFGR_PLLSAIM_4 | RCC_PLLSAICFGR_PLLSAIM_2 | RCC_PLLSAICFGR_PLLSAIM_1 | RCC_PLLSAICFGR_PLLSAIM_0) /*!< PLLSAI division factor for PLLSAIM output by 23 */
01268 #define LL_RCC_PLLSAIM_DIV_24            (RCC_PLLSAICFGR_PLLSAIM_4 | RCC_PLLSAICFGR_PLLSAIM_3) /*!< PLLSAI division factor for PLLSAIM output by 24 */
01269 #define LL_RCC_PLLSAIM_DIV_25            (RCC_PLLSAICFGR_PLLSAIM_4 | RCC_PLLSAICFGR_PLLSAIM_3 | RCC_PLLSAICFGR_PLLSAIM_0) /*!< PLLSAI division factor for PLLSAIM output by 25 */
01270 #define LL_RCC_PLLSAIM_DIV_26            (RCC_PLLSAICFGR_PLLSAIM_4 | RCC_PLLSAICFGR_PLLSAIM_3 | RCC_PLLSAICFGR_PLLSAIM_1) /*!< PLLSAI division factor for PLLSAIM output by 26 */
01271 #define LL_RCC_PLLSAIM_DIV_27            (RCC_PLLSAICFGR_PLLSAIM_4 | RCC_PLLSAICFGR_PLLSAIM_3 | RCC_PLLSAICFGR_PLLSAIM_1 | RCC_PLLSAICFGR_PLLSAIM_0) /*!< PLLSAI division factor for PLLSAIM output by 27 */
01272 #define LL_RCC_PLLSAIM_DIV_28            (RCC_PLLSAICFGR_PLLSAIM_4 | RCC_PLLSAICFGR_PLLSAIM_3 | RCC_PLLSAICFGR_PLLSAIM_2) /*!< PLLSAI division factor for PLLSAIM output by 28 */
01273 #define LL_RCC_PLLSAIM_DIV_29            (RCC_PLLSAICFGR_PLLSAIM_4 | RCC_PLLSAICFGR_PLLSAIM_3 | RCC_PLLSAICFGR_PLLSAIM_2 | RCC_PLLSAICFGR_PLLSAIM_0) /*!< PLLSAI division factor for PLLSAIM output by 29 */
01274 #define LL_RCC_PLLSAIM_DIV_30            (RCC_PLLSAICFGR_PLLSAIM_4 | RCC_PLLSAICFGR_PLLSAIM_3 | RCC_PLLSAICFGR_PLLSAIM_2 | RCC_PLLSAICFGR_PLLSAIM_1) /*!< PLLSAI division factor for PLLSAIM output by 30 */
01275 #define LL_RCC_PLLSAIM_DIV_31            (RCC_PLLSAICFGR_PLLSAIM_4 | RCC_PLLSAICFGR_PLLSAIM_3 | RCC_PLLSAICFGR_PLLSAIM_2 | RCC_PLLSAICFGR_PLLSAIM_1 | RCC_PLLSAICFGR_PLLSAIM_0) /*!< PLLSAI division factor for PLLSAIM output by 31 */
01276 #define LL_RCC_PLLSAIM_DIV_32            (RCC_PLLSAICFGR_PLLSAIM_5) /*!< PLLSAI division factor for PLLSAIM output by 32 */
01277 #define LL_RCC_PLLSAIM_DIV_33            (RCC_PLLSAICFGR_PLLSAIM_5 | RCC_PLLSAICFGR_PLLSAIM_0) /*!< PLLSAI division factor for PLLSAIM output by 33 */
01278 #define LL_RCC_PLLSAIM_DIV_34            (RCC_PLLSAICFGR_PLLSAIM_5 | RCC_PLLSAICFGR_PLLSAIM_1) /*!< PLLSAI division factor for PLLSAIM output by 34 */
01279 #define LL_RCC_PLLSAIM_DIV_35            (RCC_PLLSAICFGR_PLLSAIM_5 | RCC_PLLSAICFGR_PLLSAIM_1 | RCC_PLLSAICFGR_PLLSAIM_0) /*!< PLLSAI division factor for PLLSAIM output by 35 */
01280 #define LL_RCC_PLLSAIM_DIV_36            (RCC_PLLSAICFGR_PLLSAIM_5 | RCC_PLLSAICFGR_PLLSAIM_2) /*!< PLLSAI division factor for PLLSAIM output by 36 */
01281 #define LL_RCC_PLLSAIM_DIV_37            (RCC_PLLSAICFGR_PLLSAIM_5 | RCC_PLLSAICFGR_PLLSAIM_2 | RCC_PLLSAICFGR_PLLSAIM_0) /*!< PLLSAI division factor for PLLSAIM output by 37 */
01282 #define LL_RCC_PLLSAIM_DIV_38            (RCC_PLLSAICFGR_PLLSAIM_5 | RCC_PLLSAICFGR_PLLSAIM_2 | RCC_PLLSAICFGR_PLLSAIM_1) /*!< PLLSAI division factor for PLLSAIM output by 38 */
01283 #define LL_RCC_PLLSAIM_DIV_39            (RCC_PLLSAICFGR_PLLSAIM_5 | RCC_PLLSAICFGR_PLLSAIM_2 | RCC_PLLSAICFGR_PLLSAIM_1 | RCC_PLLSAICFGR_PLLSAIM_0) /*!< PLLSAI division factor for PLLSAIM output by 39 */
01284 #define LL_RCC_PLLSAIM_DIV_40            (RCC_PLLSAICFGR_PLLSAIM_5 | RCC_PLLSAICFGR_PLLSAIM_3) /*!< PLLSAI division factor for PLLSAIM output by 40 */
01285 #define LL_RCC_PLLSAIM_DIV_41            (RCC_PLLSAICFGR_PLLSAIM_5 | RCC_PLLSAICFGR_PLLSAIM_3 | RCC_PLLSAICFGR_PLLSAIM_0) /*!< PLLSAI division factor for PLLSAIM output by 41 */
01286 #define LL_RCC_PLLSAIM_DIV_42            (RCC_PLLSAICFGR_PLLSAIM_5 | RCC_PLLSAICFGR_PLLSAIM_3 | RCC_PLLSAICFGR_PLLSAIM_1) /*!< PLLSAI division factor for PLLSAIM output by 42 */
01287 #define LL_RCC_PLLSAIM_DIV_43            (RCC_PLLSAICFGR_PLLSAIM_5 | RCC_PLLSAICFGR_PLLSAIM_3 | RCC_PLLSAICFGR_PLLSAIM_1 | RCC_PLLSAICFGR_PLLSAIM_0) /*!< PLLSAI division factor for PLLSAIM output by 43 */
01288 #define LL_RCC_PLLSAIM_DIV_44            (RCC_PLLSAICFGR_PLLSAIM_5 | RCC_PLLSAICFGR_PLLSAIM_3 | RCC_PLLSAICFGR_PLLSAIM_2) /*!< PLLSAI division factor for PLLSAIM output by 44 */
01289 #define LL_RCC_PLLSAIM_DIV_45            (RCC_PLLSAICFGR_PLLSAIM_5 | RCC_PLLSAICFGR_PLLSAIM_3 | RCC_PLLSAICFGR_PLLSAIM_2 | RCC_PLLSAICFGR_PLLSAIM_0) /*!< PLLSAI division factor for PLLSAIM output by 45 */
01290 #define LL_RCC_PLLSAIM_DIV_46            (RCC_PLLSAICFGR_PLLSAIM_5 | RCC_PLLSAICFGR_PLLSAIM_3 | RCC_PLLSAICFGR_PLLSAIM_2 | RCC_PLLSAICFGR_PLLSAIM_1) /*!< PLLSAI division factor for PLLSAIM output by 46 */
01291 #define LL_RCC_PLLSAIM_DIV_47            (RCC_PLLSAICFGR_PLLSAIM_5 | RCC_PLLSAICFGR_PLLSAIM_3 | RCC_PLLSAICFGR_PLLSAIM_2 | RCC_PLLSAICFGR_PLLSAIM_1 | RCC_PLLSAICFGR_PLLSAIM_0) /*!< PLLSAI division factor for PLLSAIM output by 47 */
01292 #define LL_RCC_PLLSAIM_DIV_48            (RCC_PLLSAICFGR_PLLSAIM_5 | RCC_PLLSAICFGR_PLLSAIM_4) /*!< PLLSAI division factor for PLLSAIM output by 48 */
01293 #define LL_RCC_PLLSAIM_DIV_49            (RCC_PLLSAICFGR_PLLSAIM_5 | RCC_PLLSAICFGR_PLLSAIM_4 | RCC_PLLSAICFGR_PLLSAIM_0) /*!< PLLSAI division factor for PLLSAIM output by 49 */
01294 #define LL_RCC_PLLSAIM_DIV_50            (RCC_PLLSAICFGR_PLLSAIM_5 | RCC_PLLSAICFGR_PLLSAIM_4 | RCC_PLLSAICFGR_PLLSAIM_1) /*!< PLLSAI division factor for PLLSAIM output by 50 */
01295 #define LL_RCC_PLLSAIM_DIV_51            (RCC_PLLSAICFGR_PLLSAIM_5 | RCC_PLLSAICFGR_PLLSAIM_4 | RCC_PLLSAICFGR_PLLSAIM_1 | RCC_PLLSAICFGR_PLLSAIM_0) /*!< PLLSAI division factor for PLLSAIM output by 51 */
01296 #define LL_RCC_PLLSAIM_DIV_52            (RCC_PLLSAICFGR_PLLSAIM_5 | RCC_PLLSAICFGR_PLLSAIM_4 | RCC_PLLSAICFGR_PLLSAIM_2) /*!< PLLSAI division factor for PLLSAIM output by 52 */
01297 #define LL_RCC_PLLSAIM_DIV_53            (RCC_PLLSAICFGR_PLLSAIM_5 | RCC_PLLSAICFGR_PLLSAIM_4 | RCC_PLLSAICFGR_PLLSAIM_2 | RCC_PLLSAICFGR_PLLSAIM_0) /*!< PLLSAI division factor for PLLSAIM output by 53 */
01298 #define LL_RCC_PLLSAIM_DIV_54            (RCC_PLLSAICFGR_PLLSAIM_5 | RCC_PLLSAICFGR_PLLSAIM_4 | RCC_PLLSAICFGR_PLLSAIM_2 | RCC_PLLSAICFGR_PLLSAIM_1) /*!< PLLSAI division factor for PLLSAIM output by 54 */
01299 #define LL_RCC_PLLSAIM_DIV_55            (RCC_PLLSAICFGR_PLLSAIM_5 | RCC_PLLSAICFGR_PLLSAIM_4 | RCC_PLLSAICFGR_PLLSAIM_2 | RCC_PLLSAICFGR_PLLSAIM_1 | RCC_PLLSAICFGR_PLLSAIM_0) /*!< PLLSAI division factor for PLLSAIM output by 55 */
01300 #define LL_RCC_PLLSAIM_DIV_56            (RCC_PLLSAICFGR_PLLSAIM_5 | RCC_PLLSAICFGR_PLLSAIM_4 | RCC_PLLSAICFGR_PLLSAIM_3) /*!< PLLSAI division factor for PLLSAIM output by 56 */
01301 #define LL_RCC_PLLSAIM_DIV_57            (RCC_PLLSAICFGR_PLLSAIM_5 | RCC_PLLSAICFGR_PLLSAIM_4 | RCC_PLLSAICFGR_PLLSAIM_3 | RCC_PLLSAICFGR_PLLSAIM_0) /*!< PLLSAI division factor for PLLSAIM output by 57 */
01302 #define LL_RCC_PLLSAIM_DIV_58            (RCC_PLLSAICFGR_PLLSAIM_5 | RCC_PLLSAICFGR_PLLSAIM_4 | RCC_PLLSAICFGR_PLLSAIM_3 | RCC_PLLSAICFGR_PLLSAIM_1) /*!< PLLSAI division factor for PLLSAIM output by 58 */
01303 #define LL_RCC_PLLSAIM_DIV_59            (RCC_PLLSAICFGR_PLLSAIM_5 | RCC_PLLSAICFGR_PLLSAIM_4 | RCC_PLLSAICFGR_PLLSAIM_3 | RCC_PLLSAICFGR_PLLSAIM_1 | RCC_PLLSAICFGR_PLLSAIM_0) /*!< PLLSAI division factor for PLLSAIM output by 59 */
01304 #define LL_RCC_PLLSAIM_DIV_60            (RCC_PLLSAICFGR_PLLSAIM_5 | RCC_PLLSAICFGR_PLLSAIM_4 | RCC_PLLSAICFGR_PLLSAIM_3 | RCC_PLLSAICFGR_PLLSAIM_2) /*!< PLLSAI division factor for PLLSAIM output by 60 */
01305 #define LL_RCC_PLLSAIM_DIV_61            (RCC_PLLSAICFGR_PLLSAIM_5 | RCC_PLLSAICFGR_PLLSAIM_4 | RCC_PLLSAICFGR_PLLSAIM_3 | RCC_PLLSAICFGR_PLLSAIM_2 | RCC_PLLSAICFGR_PLLSAIM_0) /*!< PLLSAI division factor for PLLSAIM output by 61 */
01306 #define LL_RCC_PLLSAIM_DIV_62            (RCC_PLLSAICFGR_PLLSAIM_5 | RCC_PLLSAICFGR_PLLSAIM_4 | RCC_PLLSAICFGR_PLLSAIM_3 | RCC_PLLSAICFGR_PLLSAIM_2 | RCC_PLLSAICFGR_PLLSAIM_1) /*!< PLLSAI division factor for PLLSAIM output by 62 */
01307 #define LL_RCC_PLLSAIM_DIV_63            (RCC_PLLSAICFGR_PLLSAIM_5 | RCC_PLLSAICFGR_PLLSAIM_4 | RCC_PLLSAICFGR_PLLSAIM_3 | RCC_PLLSAICFGR_PLLSAIM_2 | RCC_PLLSAICFGR_PLLSAIM_1 | RCC_PLLSAICFGR_PLLSAIM_0) /*!< PLLSAI division factor for PLLSAIM output by 63 */
01308 #else
01309 #define LL_RCC_PLLSAIM_DIV_2              LL_RCC_PLLM_DIV_2      /*!< PLLSAI division factor for PLLSAIM output by 2 */
01310 #define LL_RCC_PLLSAIM_DIV_3              LL_RCC_PLLM_DIV_3      /*!< PLLSAI division factor for PLLSAIM output by 3 */
01311 #define LL_RCC_PLLSAIM_DIV_4              LL_RCC_PLLM_DIV_4      /*!< PLLSAI division factor for PLLSAIM output by 4 */
01312 #define LL_RCC_PLLSAIM_DIV_5              LL_RCC_PLLM_DIV_5      /*!< PLLSAI division factor for PLLSAIM output by 5 */
01313 #define LL_RCC_PLLSAIM_DIV_6              LL_RCC_PLLM_DIV_6      /*!< PLLSAI division factor for PLLSAIM output by 6 */
01314 #define LL_RCC_PLLSAIM_DIV_7              LL_RCC_PLLM_DIV_7      /*!< PLLSAI division factor for PLLSAIM output by 7 */
01315 #define LL_RCC_PLLSAIM_DIV_8              LL_RCC_PLLM_DIV_8      /*!< PLLSAI division factor for PLLSAIM output by 8 */
01316 #define LL_RCC_PLLSAIM_DIV_9              LL_RCC_PLLM_DIV_9      /*!< PLLSAI division factor for PLLSAIM output by 9 */
01317 #define LL_RCC_PLLSAIM_DIV_10             LL_RCC_PLLM_DIV_10     /*!< PLLSAI division factor for PLLSAIM output by 10 */
01318 #define LL_RCC_PLLSAIM_DIV_11             LL_RCC_PLLM_DIV_11     /*!< PLLSAI division factor for PLLSAIM output by 11 */
01319 #define LL_RCC_PLLSAIM_DIV_12             LL_RCC_PLLM_DIV_12     /*!< PLLSAI division factor for PLLSAIM output by 12 */
01320 #define LL_RCC_PLLSAIM_DIV_13             LL_RCC_PLLM_DIV_13     /*!< PLLSAI division factor for PLLSAIM output by 13 */
01321 #define LL_RCC_PLLSAIM_DIV_14             LL_RCC_PLLM_DIV_14     /*!< PLLSAI division factor for PLLSAIM output by 14 */
01322 #define LL_RCC_PLLSAIM_DIV_15             LL_RCC_PLLM_DIV_15     /*!< PLLSAI division factor for PLLSAIM output by 15 */
01323 #define LL_RCC_PLLSAIM_DIV_16             LL_RCC_PLLM_DIV_16     /*!< PLLSAI division factor for PLLSAIM output by 16 */
01324 #define LL_RCC_PLLSAIM_DIV_17             LL_RCC_PLLM_DIV_17     /*!< PLLSAI division factor for PLLSAIM output by 17 */
01325 #define LL_RCC_PLLSAIM_DIV_18             LL_RCC_PLLM_DIV_18     /*!< PLLSAI division factor for PLLSAIM output by 18 */
01326 #define LL_RCC_PLLSAIM_DIV_19             LL_RCC_PLLM_DIV_19     /*!< PLLSAI division factor for PLLSAIM output by 19 */
01327 #define LL_RCC_PLLSAIM_DIV_20             LL_RCC_PLLM_DIV_20     /*!< PLLSAI division factor for PLLSAIM output by 20 */
01328 #define LL_RCC_PLLSAIM_DIV_21             LL_RCC_PLLM_DIV_21     /*!< PLLSAI division factor for PLLSAIM output by 21 */
01329 #define LL_RCC_PLLSAIM_DIV_22             LL_RCC_PLLM_DIV_22     /*!< PLLSAI division factor for PLLSAIM output by 22 */
01330 #define LL_RCC_PLLSAIM_DIV_23             LL_RCC_PLLM_DIV_23     /*!< PLLSAI division factor for PLLSAIM output by 23 */
01331 #define LL_RCC_PLLSAIM_DIV_24             LL_RCC_PLLM_DIV_24     /*!< PLLSAI division factor for PLLSAIM output by 24 */
01332 #define LL_RCC_PLLSAIM_DIV_25             LL_RCC_PLLM_DIV_25     /*!< PLLSAI division factor for PLLSAIM output by 25 */
01333 #define LL_RCC_PLLSAIM_DIV_26             LL_RCC_PLLM_DIV_26     /*!< PLLSAI division factor for PLLSAIM output by 26 */
01334 #define LL_RCC_PLLSAIM_DIV_27             LL_RCC_PLLM_DIV_27     /*!< PLLSAI division factor for PLLSAIM output by 27 */
01335 #define LL_RCC_PLLSAIM_DIV_28             LL_RCC_PLLM_DIV_28     /*!< PLLSAI division factor for PLLSAIM output by 28 */
01336 #define LL_RCC_PLLSAIM_DIV_29             LL_RCC_PLLM_DIV_29     /*!< PLLSAI division factor for PLLSAIM output by 29 */
01337 #define LL_RCC_PLLSAIM_DIV_30             LL_RCC_PLLM_DIV_30     /*!< PLLSAI division factor for PLLSAIM output by 30 */
01338 #define LL_RCC_PLLSAIM_DIV_31             LL_RCC_PLLM_DIV_31     /*!< PLLSAI division factor for PLLSAIM output by 31 */
01339 #define LL_RCC_PLLSAIM_DIV_32             LL_RCC_PLLM_DIV_32     /*!< PLLSAI division factor for PLLSAIM output by 32 */
01340 #define LL_RCC_PLLSAIM_DIV_33             LL_RCC_PLLM_DIV_33     /*!< PLLSAI division factor for PLLSAIM output by 33 */
01341 #define LL_RCC_PLLSAIM_DIV_34             LL_RCC_PLLM_DIV_34     /*!< PLLSAI division factor for PLLSAIM output by 34 */
01342 #define LL_RCC_PLLSAIM_DIV_35             LL_RCC_PLLM_DIV_35     /*!< PLLSAI division factor for PLLSAIM output by 35 */
01343 #define LL_RCC_PLLSAIM_DIV_36             LL_RCC_PLLM_DIV_36     /*!< PLLSAI division factor for PLLSAIM output by 36 */
01344 #define LL_RCC_PLLSAIM_DIV_37             LL_RCC_PLLM_DIV_37     /*!< PLLSAI division factor for PLLSAIM output by 37 */
01345 #define LL_RCC_PLLSAIM_DIV_38             LL_RCC_PLLM_DIV_38     /*!< PLLSAI division factor for PLLSAIM output by 38 */
01346 #define LL_RCC_PLLSAIM_DIV_39             LL_RCC_PLLM_DIV_39     /*!< PLLSAI division factor for PLLSAIM output by 39 */
01347 #define LL_RCC_PLLSAIM_DIV_40             LL_RCC_PLLM_DIV_40     /*!< PLLSAI division factor for PLLSAIM output by 40 */
01348 #define LL_RCC_PLLSAIM_DIV_41             LL_RCC_PLLM_DIV_41     /*!< PLLSAI division factor for PLLSAIM output by 41 */
01349 #define LL_RCC_PLLSAIM_DIV_42             LL_RCC_PLLM_DIV_42     /*!< PLLSAI division factor for PLLSAIM output by 42 */
01350 #define LL_RCC_PLLSAIM_DIV_43             LL_RCC_PLLM_DIV_43     /*!< PLLSAI division factor for PLLSAIM output by 43 */
01351 #define LL_RCC_PLLSAIM_DIV_44             LL_RCC_PLLM_DIV_44     /*!< PLLSAI division factor for PLLSAIM output by 44 */
01352 #define LL_RCC_PLLSAIM_DIV_45             LL_RCC_PLLM_DIV_45     /*!< PLLSAI division factor for PLLSAIM output by 45 */
01353 #define LL_RCC_PLLSAIM_DIV_46             LL_RCC_PLLM_DIV_46     /*!< PLLSAI division factor for PLLSAIM output by 46 */
01354 #define LL_RCC_PLLSAIM_DIV_47             LL_RCC_PLLM_DIV_47     /*!< PLLSAI division factor for PLLSAIM output by 47 */
01355 #define LL_RCC_PLLSAIM_DIV_48             LL_RCC_PLLM_DIV_48     /*!< PLLSAI division factor for PLLSAIM output by 48 */
01356 #define LL_RCC_PLLSAIM_DIV_49             LL_RCC_PLLM_DIV_49     /*!< PLLSAI division factor for PLLSAIM output by 49 */
01357 #define LL_RCC_PLLSAIM_DIV_50             LL_RCC_PLLM_DIV_50     /*!< PLLSAI division factor for PLLSAIM output by 50 */
01358 #define LL_RCC_PLLSAIM_DIV_51             LL_RCC_PLLM_DIV_51     /*!< PLLSAI division factor for PLLSAIM output by 51 */
01359 #define LL_RCC_PLLSAIM_DIV_52             LL_RCC_PLLM_DIV_52     /*!< PLLSAI division factor for PLLSAIM output by 52 */
01360 #define LL_RCC_PLLSAIM_DIV_53             LL_RCC_PLLM_DIV_53     /*!< PLLSAI division factor for PLLSAIM output by 53 */
01361 #define LL_RCC_PLLSAIM_DIV_54             LL_RCC_PLLM_DIV_54     /*!< PLLSAI division factor for PLLSAIM output by 54 */
01362 #define LL_RCC_PLLSAIM_DIV_55             LL_RCC_PLLM_DIV_55     /*!< PLLSAI division factor for PLLSAIM output by 55 */
01363 #define LL_RCC_PLLSAIM_DIV_56             LL_RCC_PLLM_DIV_56     /*!< PLLSAI division factor for PLLSAIM output by 56 */
01364 #define LL_RCC_PLLSAIM_DIV_57             LL_RCC_PLLM_DIV_57     /*!< PLLSAI division factor for PLLSAIM output by 57 */
01365 #define LL_RCC_PLLSAIM_DIV_58             LL_RCC_PLLM_DIV_58     /*!< PLLSAI division factor for PLLSAIM output by 58 */
01366 #define LL_RCC_PLLSAIM_DIV_59             LL_RCC_PLLM_DIV_59     /*!< PLLSAI division factor for PLLSAIM output by 59 */
01367 #define LL_RCC_PLLSAIM_DIV_60             LL_RCC_PLLM_DIV_60     /*!< PLLSAI division factor for PLLSAIM output by 60 */
01368 #define LL_RCC_PLLSAIM_DIV_61             LL_RCC_PLLM_DIV_61     /*!< PLLSAI division factor for PLLSAIM output by 61 */
01369 #define LL_RCC_PLLSAIM_DIV_62             LL_RCC_PLLM_DIV_62     /*!< PLLSAI division factor for PLLSAIM output by 62 */
01370 #define LL_RCC_PLLSAIM_DIV_63             LL_RCC_PLLM_DIV_63     /*!< PLLSAI division factor for PLLSAIM output by 63 */
01371 #endif /* RCC_PLLSAICFGR_PLLSAIM */
01372 /**
01373   * @}
01374   */
01375 
01376 /** @defgroup RCC_LL_EC_PLLSAIQ  PLLSAIQ division factor (PLLSAIQ)
01377   * @{
01378   */
01379 #define LL_RCC_PLLSAIQ_DIV_2              RCC_PLLSAICFGR_PLLSAIQ_1        /*!< PLLSAI division factor for PLLSAIQ output by 2 */
01380 #define LL_RCC_PLLSAIQ_DIV_3              (RCC_PLLSAICFGR_PLLSAIQ_1 | RCC_PLLSAICFGR_PLLSAIQ_0)        /*!< PLLSAI division factor for PLLSAIQ output by 3 */
01381 #define LL_RCC_PLLSAIQ_DIV_4              RCC_PLLSAICFGR_PLLSAIQ_2        /*!< PLLSAI division factor for PLLSAIQ output by 4 */
01382 #define LL_RCC_PLLSAIQ_DIV_5              (RCC_PLLSAICFGR_PLLSAIQ_2 | RCC_PLLSAICFGR_PLLSAIQ_0)        /*!< PLLSAI division factor for PLLSAIQ output by 5 */
01383 #define LL_RCC_PLLSAIQ_DIV_6              (RCC_PLLSAICFGR_PLLSAIQ_2 | RCC_PLLSAICFGR_PLLSAIQ_1)        /*!< PLLSAI division factor for PLLSAIQ output by 6 */
01384 #define LL_RCC_PLLSAIQ_DIV_7              (RCC_PLLSAICFGR_PLLSAIQ_2 | RCC_PLLSAICFGR_PLLSAIQ_1 | RCC_PLLSAICFGR_PLLSAIQ_0)        /*!< PLLSAI division factor for PLLSAIQ output by 7 */
01385 #define LL_RCC_PLLSAIQ_DIV_8              RCC_PLLSAICFGR_PLLSAIQ_3        /*!< PLLSAI division factor for PLLSAIQ output by 8 */
01386 #define LL_RCC_PLLSAIQ_DIV_9              (RCC_PLLSAICFGR_PLLSAIQ_3 | RCC_PLLSAICFGR_PLLSAIQ_0)        /*!< PLLSAI division factor for PLLSAIQ output by 9 */
01387 #define LL_RCC_PLLSAIQ_DIV_10             (RCC_PLLSAICFGR_PLLSAIQ_3 | RCC_PLLSAICFGR_PLLSAIQ_1)        /*!< PLLSAI division factor for PLLSAIQ output by 10 */
01388 #define LL_RCC_PLLSAIQ_DIV_11             (RCC_PLLSAICFGR_PLLSAIQ_3 | RCC_PLLSAICFGR_PLLSAIQ_1 | RCC_PLLSAICFGR_PLLSAIQ_0)        /*!< PLLSAI division factor for PLLSAIQ output by 11 */
01389 #define LL_RCC_PLLSAIQ_DIV_12             (RCC_PLLSAICFGR_PLLSAIQ_3 | RCC_PLLSAICFGR_PLLSAIQ_2)        /*!< PLLSAI division factor for PLLSAIQ output by 12 */
01390 #define LL_RCC_PLLSAIQ_DIV_13             (RCC_PLLSAICFGR_PLLSAIQ_3 | RCC_PLLSAICFGR_PLLSAIQ_2 | RCC_PLLSAICFGR_PLLSAIQ_0)        /*!< PLLSAI division factor for PLLSAIQ output by 13 */
01391 #define LL_RCC_PLLSAIQ_DIV_14             (RCC_PLLSAICFGR_PLLSAIQ_3 | RCC_PLLSAICFGR_PLLSAIQ_2 | RCC_PLLSAICFGR_PLLSAIQ_1)        /*!< PLLSAI division factor for PLLSAIQ output by 14 */
01392 #define LL_RCC_PLLSAIQ_DIV_15             (RCC_PLLSAICFGR_PLLSAIQ_3 | RCC_PLLSAICFGR_PLLSAIQ_2 | RCC_PLLSAICFGR_PLLSAIQ_1 | RCC_PLLSAICFGR_PLLSAIQ_0)        /*!< PLLSAI division factor for PLLSAIQ output by 15 */
01393 /**
01394   * @}
01395   */
01396 
01397 #if defined(RCC_DCKCFGR_PLLSAIDIVQ)
01398 /** @defgroup RCC_LL_EC_PLLSAIDIVQ  PLLSAIDIVQ division factor (PLLSAIDIVQ)
01399   * @{
01400   */
01401 #define LL_RCC_PLLSAIDIVQ_DIV_1           0x00000000U               /*!< PLLSAI division factor for PLLSAIDIVQ output by 1 */
01402 #define LL_RCC_PLLSAIDIVQ_DIV_2           RCC_DCKCFGR_PLLSAIDIVQ_0          /*!< PLLSAI division factor for PLLSAIDIVQ output by 2 */
01403 #define LL_RCC_PLLSAIDIVQ_DIV_3           RCC_DCKCFGR_PLLSAIDIVQ_1          /*!< PLLSAI division factor for PLLSAIDIVQ output by 3 */
01404 #define LL_RCC_PLLSAIDIVQ_DIV_4           (RCC_DCKCFGR_PLLSAIDIVQ_1 | RCC_DCKCFGR_PLLSAIDIVQ_0)        /*!< PLLSAI division factor for PLLSAIDIVQ output by 4 */
01405 #define LL_RCC_PLLSAIDIVQ_DIV_5           RCC_DCKCFGR_PLLSAIDIVQ_2          /*!< PLLSAI division factor for PLLSAIDIVQ output by 5 */
01406 #define LL_RCC_PLLSAIDIVQ_DIV_6           (RCC_DCKCFGR_PLLSAIDIVQ_2 | RCC_DCKCFGR_PLLSAIDIVQ_0)        /*!< PLLSAI division factor for PLLSAIDIVQ output by 6 */
01407 #define LL_RCC_PLLSAIDIVQ_DIV_7           (RCC_DCKCFGR_PLLSAIDIVQ_2 | RCC_DCKCFGR_PLLSAIDIVQ_1)        /*!< PLLSAI division factor for PLLSAIDIVQ output by 7 */
01408 #define LL_RCC_PLLSAIDIVQ_DIV_8           (RCC_DCKCFGR_PLLSAIDIVQ_2 | RCC_DCKCFGR_PLLSAIDIVQ_1 | RCC_DCKCFGR_PLLSAIDIVQ_0)        /*!< PLLSAI division factor for PLLSAIDIVQ output by 8 */
01409 #define LL_RCC_PLLSAIDIVQ_DIV_9           RCC_DCKCFGR_PLLSAIDIVQ_3          /*!< PLLSAI division factor for PLLSAIDIVQ output by 9 */
01410 #define LL_RCC_PLLSAIDIVQ_DIV_10          (RCC_DCKCFGR_PLLSAIDIVQ_3 | RCC_DCKCFGR_PLLSAIDIVQ_0)        /*!< PLLSAI division factor for PLLSAIDIVQ output by 10 */
01411 #define LL_RCC_PLLSAIDIVQ_DIV_11          (RCC_DCKCFGR_PLLSAIDIVQ_3 | RCC_DCKCFGR_PLLSAIDIVQ_1)        /*!< PLLSAI division factor for PLLSAIDIVQ output by 11 */
01412 #define LL_RCC_PLLSAIDIVQ_DIV_12          (RCC_DCKCFGR_PLLSAIDIVQ_3 | RCC_DCKCFGR_PLLSAIDIVQ_1 | RCC_DCKCFGR_PLLSAIDIVQ_0)        /*!< PLLSAI division factor for PLLSAIDIVQ output by 12 */
01413 #define LL_RCC_PLLSAIDIVQ_DIV_13          (RCC_DCKCFGR_PLLSAIDIVQ_3 | RCC_DCKCFGR_PLLSAIDIVQ_2)        /*!< PLLSAI division factor for PLLSAIDIVQ output by 13 */
01414 #define LL_RCC_PLLSAIDIVQ_DIV_14          (RCC_DCKCFGR_PLLSAIDIVQ_3 | RCC_DCKCFGR_PLLSAIDIVQ_2 | RCC_DCKCFGR_PLLSAIDIVQ_0)        /*!< PLLSAI division factor for PLLSAIDIVQ output by 14 */
01415 #define LL_RCC_PLLSAIDIVQ_DIV_15          (RCC_DCKCFGR_PLLSAIDIVQ_3 | RCC_DCKCFGR_PLLSAIDIVQ_2 | RCC_DCKCFGR_PLLSAIDIVQ_1)        /*!< PLLSAI division factor for PLLSAIDIVQ output by 15 */
01416 #define LL_RCC_PLLSAIDIVQ_DIV_16          (RCC_DCKCFGR_PLLSAIDIVQ_3 | RCC_DCKCFGR_PLLSAIDIVQ_2 | RCC_DCKCFGR_PLLSAIDIVQ_1 | RCC_DCKCFGR_PLLSAIDIVQ_0)        /*!< PLLSAI division factor for PLLSAIDIVQ output by 16 */
01417 #define LL_RCC_PLLSAIDIVQ_DIV_17          RCC_DCKCFGR_PLLSAIDIVQ_4         /*!< PLLSAI division factor for PLLSAIDIVQ output by 17 */
01418 #define LL_RCC_PLLSAIDIVQ_DIV_18          (RCC_DCKCFGR_PLLSAIDIVQ_4 | RCC_DCKCFGR_PLLSAIDIVQ_0)        /*!< PLLSAI division factor for PLLSAIDIVQ output by 18 */
01419 #define LL_RCC_PLLSAIDIVQ_DIV_19          (RCC_DCKCFGR_PLLSAIDIVQ_4 | RCC_DCKCFGR_PLLSAIDIVQ_1)        /*!< PLLSAI division factor for PLLSAIDIVQ output by 19 */
01420 #define LL_RCC_PLLSAIDIVQ_DIV_20          (RCC_DCKCFGR_PLLSAIDIVQ_4 | RCC_DCKCFGR_PLLSAIDIVQ_1 | RCC_DCKCFGR_PLLSAIDIVQ_0)        /*!< PLLSAI division factor for PLLSAIDIVQ output by 20 */
01421 #define LL_RCC_PLLSAIDIVQ_DIV_21          (RCC_DCKCFGR_PLLSAIDIVQ_4 | RCC_DCKCFGR_PLLSAIDIVQ_2)        /*!< PLLSAI division factor for PLLSAIDIVQ output by 21 */
01422 #define LL_RCC_PLLSAIDIVQ_DIV_22          (RCC_DCKCFGR_PLLSAIDIVQ_4 | RCC_DCKCFGR_PLLSAIDIVQ_2 | RCC_DCKCFGR_PLLSAIDIVQ_0)        /*!< PLLSAI division factor for PLLSAIDIVQ output by 22 */
01423 #define LL_RCC_PLLSAIDIVQ_DIV_23          (RCC_DCKCFGR_PLLSAIDIVQ_4 | RCC_DCKCFGR_PLLSAIDIVQ_2 | RCC_DCKCFGR_PLLSAIDIVQ_1)        /*!< PLLSAI division factor for PLLSAIDIVQ output by 23 */
01424 #define LL_RCC_PLLSAIDIVQ_DIV_24          (RCC_DCKCFGR_PLLSAIDIVQ_4 | RCC_DCKCFGR_PLLSAIDIVQ_2 | RCC_DCKCFGR_PLLSAIDIVQ_1 | RCC_DCKCFGR_PLLSAIDIVQ_0)        /*!< PLLSAI division factor for PLLSAIDIVQ output by 24 */
01425 #define LL_RCC_PLLSAIDIVQ_DIV_25          (RCC_DCKCFGR_PLLSAIDIVQ_4 | RCC_DCKCFGR_PLLSAIDIVQ_3)        /*!< PLLSAI division factor for PLLSAIDIVQ output by 25 */
01426 #define LL_RCC_PLLSAIDIVQ_DIV_26          (RCC_DCKCFGR_PLLSAIDIVQ_4 | RCC_DCKCFGR_PLLSAIDIVQ_3 | RCC_DCKCFGR_PLLSAIDIVQ_0)        /*!< PLLSAI division factor for PLLSAIDIVQ output by 26 */
01427 #define LL_RCC_PLLSAIDIVQ_DIV_27          (RCC_DCKCFGR_PLLSAIDIVQ_4 | RCC_DCKCFGR_PLLSAIDIVQ_3 | RCC_DCKCFGR_PLLSAIDIVQ_1)        /*!< PLLSAI division factor for PLLSAIDIVQ output by 27 */
01428 #define LL_RCC_PLLSAIDIVQ_DIV_28          (RCC_DCKCFGR_PLLSAIDIVQ_4 | RCC_DCKCFGR_PLLSAIDIVQ_3 | RCC_DCKCFGR_PLLSAIDIVQ_1 | RCC_DCKCFGR_PLLSAIDIVQ_0)        /*!< PLLSAI division factor for PLLSAIDIVQ output by 28 */
01429 #define LL_RCC_PLLSAIDIVQ_DIV_29          (RCC_DCKCFGR_PLLSAIDIVQ_4 | RCC_DCKCFGR_PLLSAIDIVQ_3 | RCC_DCKCFGR_PLLSAIDIVQ_2)        /*!< PLLSAI division factor for PLLSAIDIVQ output by 29 */
01430 #define LL_RCC_PLLSAIDIVQ_DIV_30          (RCC_DCKCFGR_PLLSAIDIVQ_4 | RCC_DCKCFGR_PLLSAIDIVQ_3 | RCC_DCKCFGR_PLLSAIDIVQ_2 | RCC_DCKCFGR_PLLSAIDIVQ_0)        /*!< PLLSAI division factor for PLLSAIDIVQ output by 30 */
01431 #define LL_RCC_PLLSAIDIVQ_DIV_31          (RCC_DCKCFGR_PLLSAIDIVQ_4 | RCC_DCKCFGR_PLLSAIDIVQ_3 | RCC_DCKCFGR_PLLSAIDIVQ_2 | RCC_DCKCFGR_PLLSAIDIVQ_1)        /*!< PLLSAI division factor for PLLSAIDIVQ output by 31 */
01432 #define LL_RCC_PLLSAIDIVQ_DIV_32          (RCC_DCKCFGR_PLLSAIDIVQ_4 | RCC_DCKCFGR_PLLSAIDIVQ_3 | RCC_DCKCFGR_PLLSAIDIVQ_2 | RCC_DCKCFGR_PLLSAIDIVQ_1 | RCC_DCKCFGR_PLLSAIDIVQ_0)        /*!< PLLSAI division factor for PLLSAIDIVQ output by 32 */
01433 /**
01434   * @}
01435   */
01436 #endif /* RCC_DCKCFGR_PLLSAIDIVQ */
01437 
01438 #if defined(RCC_PLLSAICFGR_PLLSAIR)
01439 /** @defgroup RCC_LL_EC_PLLSAIR  PLLSAIR division factor (PLLSAIR)
01440   * @{
01441   */
01442 #define LL_RCC_PLLSAIR_DIV_2              RCC_PLLSAICFGR_PLLSAIR_1                                     /*!< PLLSAI division factor for PLLSAIR output by 2 */
01443 #define LL_RCC_PLLSAIR_DIV_3              (RCC_PLLSAICFGR_PLLSAIR_1 | RCC_PLLSAICFGR_PLLSAIR_0)        /*!< PLLSAI division factor for PLLSAIR output by 3 */
01444 #define LL_RCC_PLLSAIR_DIV_4              RCC_PLLSAICFGR_PLLSAIR_2                                     /*!< PLLSAI division factor for PLLSAIR output by 4 */
01445 #define LL_RCC_PLLSAIR_DIV_5              (RCC_PLLSAICFGR_PLLSAIR_2 | RCC_PLLSAICFGR_PLLSAIR_0)        /*!< PLLSAI division factor for PLLSAIR output by 5 */
01446 #define LL_RCC_PLLSAIR_DIV_6              (RCC_PLLSAICFGR_PLLSAIR_2 | RCC_PLLSAICFGR_PLLSAIR_1)        /*!< PLLSAI division factor for PLLSAIR output by 6 */
01447 #define LL_RCC_PLLSAIR_DIV_7              (RCC_PLLSAICFGR_PLLSAIR_2 | RCC_PLLSAICFGR_PLLSAIR_1 | RCC_PLLSAICFGR_PLLSAIR_0)        /*!< PLLSAI division factor for PLLSAIR output by 7 */
01448 /**
01449   * @}
01450   */
01451 #endif /* RCC_PLLSAICFGR_PLLSAIR */
01452 
01453 #if defined(RCC_DCKCFGR_PLLSAIDIVR)
01454 /** @defgroup RCC_LL_EC_PLLSAIDIVR  PLLSAIDIVR division factor (PLLSAIDIVR)
01455   * @{
01456   */
01457 #define LL_RCC_PLLSAIDIVR_DIV_2           0x00000000U             /*!< PLLSAI division factor for PLLSAIDIVR output by 2 */
01458 #define LL_RCC_PLLSAIDIVR_DIV_4           RCC_DCKCFGR_PLLSAIDIVR_0        /*!< PLLSAI division factor for PLLSAIDIVR output by 4 */
01459 #define LL_RCC_PLLSAIDIVR_DIV_8           RCC_DCKCFGR_PLLSAIDIVR_1        /*!< PLLSAI division factor for PLLSAIDIVR output by 8 */
01460 #define LL_RCC_PLLSAIDIVR_DIV_16          (RCC_DCKCFGR_PLLSAIDIVR_1 | RCC_DCKCFGR_PLLSAIDIVR_0)        /*!< PLLSAI division factor for PLLSAIDIVR output by 16 */
01461 /**
01462   * @}
01463   */
01464 #endif /* RCC_DCKCFGR_PLLSAIDIVR */
01465 
01466 #if defined(RCC_PLLSAICFGR_PLLSAIP)
01467 /** @defgroup RCC_LL_EC_PLLSAIP  PLLSAIP division factor (PLLSAIP)
01468   * @{
01469   */
01470 #define LL_RCC_PLLSAIP_DIV_2              0x00000000U               /*!< PLLSAI division factor for PLLSAIP output by 2 */
01471 #define LL_RCC_PLLSAIP_DIV_4              RCC_PLLSAICFGR_PLLSAIP_0        /*!< PLLSAI division factor for PLLSAIP output by 4 */
01472 #define LL_RCC_PLLSAIP_DIV_6              RCC_PLLSAICFGR_PLLSAIP_1        /*!< PLLSAI division factor for PLLSAIP output by 6 */
01473 #define LL_RCC_PLLSAIP_DIV_8              (RCC_PLLSAICFGR_PLLSAIP_1 | RCC_PLLSAICFGR_PLLSAIP_0)        /*!< PLLSAI division factor for PLLSAIP output by 8 */
01474 /**
01475   * @}
01476   */
01477 #endif /* RCC_PLLSAICFGR_PLLSAIP */
01478 #endif /* RCC_PLLSAI_SUPPORT */
01479 /**
01480   * @}
01481   */
01482 
01483 /* Exported macro ------------------------------------------------------------*/
01484 /** @defgroup RCC_LL_Exported_Macros RCC Exported Macros
01485   * @{
01486   */
01487 
01488 /** @defgroup RCC_LL_EM_WRITE_READ Common Write and read registers Macros
01489   * @{
01490   */
01491 
01492 /**
01493   * @brief  Write a value in RCC register
01494   * @param  __REG__ Register to be written
01495   * @param  __VALUE__ Value to be written in the register
01496   * @retval None
01497   */
01498 #define LL_RCC_WriteReg(__REG__, __VALUE__) WRITE_REG(RCC->__REG__, (__VALUE__))
01499 
01500 /**
01501   * @brief  Read a value in RCC register
01502   * @param  __REG__ Register to be read
01503   * @retval Register value
01504   */
01505 #define LL_RCC_ReadReg(__REG__) READ_REG(RCC->__REG__)
01506 /**
01507   * @}
01508   */
01509 
01510 /** @defgroup RCC_LL_EM_CALC_FREQ Calculate frequencies
01511   * @{
01512   */
01513 
01514 /**
01515   * @brief  Helper macro to calculate the PLLCLK frequency on system domain
01516   * @note ex: @ref __LL_RCC_CALC_PLLCLK_FREQ (HSE_VALUE,@ref LL_RCC_PLL_GetDivider (),
01517   *             @ref LL_RCC_PLL_GetN (), @ref LL_RCC_PLL_GetP ());
01518   * @param  __INPUTFREQ__ PLL Input frequency (based on HSE/HSI)
01519   * @param  __PLLM__ This parameter can be one of the following values:
01520   *         @arg @ref LL_RCC_PLLM_DIV_2
01521   *         @arg @ref LL_RCC_PLLM_DIV_3
01522   *         @arg @ref LL_RCC_PLLM_DIV_4
01523   *         @arg @ref LL_RCC_PLLM_DIV_5
01524   *         @arg @ref LL_RCC_PLLM_DIV_6
01525   *         @arg @ref LL_RCC_PLLM_DIV_7
01526   *         @arg @ref LL_RCC_PLLM_DIV_8
01527   *         @arg @ref LL_RCC_PLLM_DIV_9
01528   *         @arg @ref LL_RCC_PLLM_DIV_10
01529   *         @arg @ref LL_RCC_PLLM_DIV_11
01530   *         @arg @ref LL_RCC_PLLM_DIV_12
01531   *         @arg @ref LL_RCC_PLLM_DIV_13
01532   *         @arg @ref LL_RCC_PLLM_DIV_14
01533   *         @arg @ref LL_RCC_PLLM_DIV_15
01534   *         @arg @ref LL_RCC_PLLM_DIV_16
01535   *         @arg @ref LL_RCC_PLLM_DIV_17
01536   *         @arg @ref LL_RCC_PLLM_DIV_18
01537   *         @arg @ref LL_RCC_PLLM_DIV_19
01538   *         @arg @ref LL_RCC_PLLM_DIV_20
01539   *         @arg @ref LL_RCC_PLLM_DIV_21
01540   *         @arg @ref LL_RCC_PLLM_DIV_22
01541   *         @arg @ref LL_RCC_PLLM_DIV_23
01542   *         @arg @ref LL_RCC_PLLM_DIV_24
01543   *         @arg @ref LL_RCC_PLLM_DIV_25
01544   *         @arg @ref LL_RCC_PLLM_DIV_26
01545   *         @arg @ref LL_RCC_PLLM_DIV_27
01546   *         @arg @ref LL_RCC_PLLM_DIV_28
01547   *         @arg @ref LL_RCC_PLLM_DIV_29
01548   *         @arg @ref LL_RCC_PLLM_DIV_30
01549   *         @arg @ref LL_RCC_PLLM_DIV_31
01550   *         @arg @ref LL_RCC_PLLM_DIV_32
01551   *         @arg @ref LL_RCC_PLLM_DIV_33
01552   *         @arg @ref LL_RCC_PLLM_DIV_34
01553   *         @arg @ref LL_RCC_PLLM_DIV_35
01554   *         @arg @ref LL_RCC_PLLM_DIV_36
01555   *         @arg @ref LL_RCC_PLLM_DIV_37
01556   *         @arg @ref LL_RCC_PLLM_DIV_38
01557   *         @arg @ref LL_RCC_PLLM_DIV_39
01558   *         @arg @ref LL_RCC_PLLM_DIV_40
01559   *         @arg @ref LL_RCC_PLLM_DIV_41
01560   *         @arg @ref LL_RCC_PLLM_DIV_42
01561   *         @arg @ref LL_RCC_PLLM_DIV_43
01562   *         @arg @ref LL_RCC_PLLM_DIV_44
01563   *         @arg @ref LL_RCC_PLLM_DIV_45
01564   *         @arg @ref LL_RCC_PLLM_DIV_46
01565   *         @arg @ref LL_RCC_PLLM_DIV_47
01566   *         @arg @ref LL_RCC_PLLM_DIV_48
01567   *         @arg @ref LL_RCC_PLLM_DIV_49
01568   *         @arg @ref LL_RCC_PLLM_DIV_50
01569   *         @arg @ref LL_RCC_PLLM_DIV_51
01570   *         @arg @ref LL_RCC_PLLM_DIV_52
01571   *         @arg @ref LL_RCC_PLLM_DIV_53
01572   *         @arg @ref LL_RCC_PLLM_DIV_54
01573   *         @arg @ref LL_RCC_PLLM_DIV_55
01574   *         @arg @ref LL_RCC_PLLM_DIV_56
01575   *         @arg @ref LL_RCC_PLLM_DIV_57
01576   *         @arg @ref LL_RCC_PLLM_DIV_58
01577   *         @arg @ref LL_RCC_PLLM_DIV_59
01578   *         @arg @ref LL_RCC_PLLM_DIV_60
01579   *         @arg @ref LL_RCC_PLLM_DIV_61
01580   *         @arg @ref LL_RCC_PLLM_DIV_62
01581   *         @arg @ref LL_RCC_PLLM_DIV_63
01582   * @param  __PLLN__ Between 50/192(*) and 432
01583   *
01584   *         (*) value not defined in all devices.
01585   * @param  __PLLP__ This parameter can be one of the following values:
01586   *         @arg @ref LL_RCC_PLLP_DIV_2
01587   *         @arg @ref LL_RCC_PLLP_DIV_4
01588   *         @arg @ref LL_RCC_PLLP_DIV_6
01589   *         @arg @ref LL_RCC_PLLP_DIV_8
01590   * @retval PLL clock frequency (in Hz)
01591   */
01592 #define __LL_RCC_CALC_PLLCLK_FREQ(__INPUTFREQ__, __PLLM__, __PLLN__, __PLLP__) ((__INPUTFREQ__) / (__PLLM__) * (__PLLN__) / \
01593                    ((((__PLLP__) >> RCC_PLLCFGR_PLLP_Pos ) + 1U) * 2U))
01594 
01595 #if defined(RCC_PLLR_SYSCLK_SUPPORT)
01596 /**
01597   * @brief  Helper macro to calculate the PLLRCLK frequency on system domain
01598   * @note ex: @ref __LL_RCC_CALC_PLLRCLK_FREQ (HSE_VALUE,@ref LL_RCC_PLL_GetDivider (),
01599   *             @ref LL_RCC_PLL_GetN (), @ref LL_RCC_PLL_GetR ());
01600   * @param  __INPUTFREQ__ PLL Input frequency (based on HSE/HSI)
01601   * @param  __PLLM__ This parameter can be one of the following values:
01602   *         @arg @ref LL_RCC_PLLM_DIV_2
01603   *         @arg @ref LL_RCC_PLLM_DIV_3
01604   *         @arg @ref LL_RCC_PLLM_DIV_4
01605   *         @arg @ref LL_RCC_PLLM_DIV_5
01606   *         @arg @ref LL_RCC_PLLM_DIV_6
01607   *         @arg @ref LL_RCC_PLLM_DIV_7
01608   *         @arg @ref LL_RCC_PLLM_DIV_8
01609   *         @arg @ref LL_RCC_PLLM_DIV_9
01610   *         @arg @ref LL_RCC_PLLM_DIV_10
01611   *         @arg @ref LL_RCC_PLLM_DIV_11
01612   *         @arg @ref LL_RCC_PLLM_DIV_12
01613   *         @arg @ref LL_RCC_PLLM_DIV_13
01614   *         @arg @ref LL_RCC_PLLM_DIV_14
01615   *         @arg @ref LL_RCC_PLLM_DIV_15
01616   *         @arg @ref LL_RCC_PLLM_DIV_16
01617   *         @arg @ref LL_RCC_PLLM_DIV_17
01618   *         @arg @ref LL_RCC_PLLM_DIV_18
01619   *         @arg @ref LL_RCC_PLLM_DIV_19
01620   *         @arg @ref LL_RCC_PLLM_DIV_20
01621   *         @arg @ref LL_RCC_PLLM_DIV_21
01622   *         @arg @ref LL_RCC_PLLM_DIV_22
01623   *         @arg @ref LL_RCC_PLLM_DIV_23
01624   *         @arg @ref LL_RCC_PLLM_DIV_24
01625   *         @arg @ref LL_RCC_PLLM_DIV_25
01626   *         @arg @ref LL_RCC_PLLM_DIV_26
01627   *         @arg @ref LL_RCC_PLLM_DIV_27
01628   *         @arg @ref LL_RCC_PLLM_DIV_28
01629   *         @arg @ref LL_RCC_PLLM_DIV_29
01630   *         @arg @ref LL_RCC_PLLM_DIV_30
01631   *         @arg @ref LL_RCC_PLLM_DIV_31
01632   *         @arg @ref LL_RCC_PLLM_DIV_32
01633   *         @arg @ref LL_RCC_PLLM_DIV_33
01634   *         @arg @ref LL_RCC_PLLM_DIV_34
01635   *         @arg @ref LL_RCC_PLLM_DIV_35
01636   *         @arg @ref LL_RCC_PLLM_DIV_36
01637   *         @arg @ref LL_RCC_PLLM_DIV_37
01638   *         @arg @ref LL_RCC_PLLM_DIV_38
01639   *         @arg @ref LL_RCC_PLLM_DIV_39
01640   *         @arg @ref LL_RCC_PLLM_DIV_40
01641   *         @arg @ref LL_RCC_PLLM_DIV_41
01642   *         @arg @ref LL_RCC_PLLM_DIV_42
01643   *         @arg @ref LL_RCC_PLLM_DIV_43
01644   *         @arg @ref LL_RCC_PLLM_DIV_44
01645   *         @arg @ref LL_RCC_PLLM_DIV_45
01646   *         @arg @ref LL_RCC_PLLM_DIV_46
01647   *         @arg @ref LL_RCC_PLLM_DIV_47
01648   *         @arg @ref LL_RCC_PLLM_DIV_48
01649   *         @arg @ref LL_RCC_PLLM_DIV_49
01650   *         @arg @ref LL_RCC_PLLM_DIV_50
01651   *         @arg @ref LL_RCC_PLLM_DIV_51
01652   *         @arg @ref LL_RCC_PLLM_DIV_52
01653   *         @arg @ref LL_RCC_PLLM_DIV_53
01654   *         @arg @ref LL_RCC_PLLM_DIV_54
01655   *         @arg @ref LL_RCC_PLLM_DIV_55
01656   *         @arg @ref LL_RCC_PLLM_DIV_56
01657   *         @arg @ref LL_RCC_PLLM_DIV_57
01658   *         @arg @ref LL_RCC_PLLM_DIV_58
01659   *         @arg @ref LL_RCC_PLLM_DIV_59
01660   *         @arg @ref LL_RCC_PLLM_DIV_60
01661   *         @arg @ref LL_RCC_PLLM_DIV_61
01662   *         @arg @ref LL_RCC_PLLM_DIV_62
01663   *         @arg @ref LL_RCC_PLLM_DIV_63
01664   * @param  __PLLN__ Between 50 and 432
01665   * @param  __PLLR__ This parameter can be one of the following values:
01666   *         @arg @ref LL_RCC_PLLR_DIV_2
01667   *         @arg @ref LL_RCC_PLLR_DIV_3
01668   *         @arg @ref LL_RCC_PLLR_DIV_4
01669   *         @arg @ref LL_RCC_PLLR_DIV_5
01670   *         @arg @ref LL_RCC_PLLR_DIV_6
01671   *         @arg @ref LL_RCC_PLLR_DIV_7
01672   * @retval PLL clock frequency (in Hz)
01673   */
01674 #define __LL_RCC_CALC_PLLRCLK_FREQ(__INPUTFREQ__, __PLLM__, __PLLN__, __PLLR__) ((__INPUTFREQ__) / (__PLLM__) * (__PLLN__) / \
01675                    ((__PLLR__) >> RCC_PLLCFGR_PLLR_Pos ))
01676 
01677 #endif /* RCC_PLLR_SYSCLK_SUPPORT */
01678 
01679 /**
01680   * @brief  Helper macro to calculate the PLLCLK frequency used on 48M domain
01681   * @note ex: @ref __LL_RCC_CALC_PLLCLK_48M_FREQ (HSE_VALUE,@ref LL_RCC_PLL_GetDivider (),
01682   *             @ref LL_RCC_PLL_GetN (), @ref LL_RCC_PLL_GetQ ());
01683   * @param  __INPUTFREQ__ PLL Input frequency (based on HSE/HSI)
01684   * @param  __PLLM__ This parameter can be one of the following values:
01685   *         @arg @ref LL_RCC_PLLM_DIV_2
01686   *         @arg @ref LL_RCC_PLLM_DIV_3
01687   *         @arg @ref LL_RCC_PLLM_DIV_4
01688   *         @arg @ref LL_RCC_PLLM_DIV_5
01689   *         @arg @ref LL_RCC_PLLM_DIV_6
01690   *         @arg @ref LL_RCC_PLLM_DIV_7
01691   *         @arg @ref LL_RCC_PLLM_DIV_8
01692   *         @arg @ref LL_RCC_PLLM_DIV_9
01693   *         @arg @ref LL_RCC_PLLM_DIV_10
01694   *         @arg @ref LL_RCC_PLLM_DIV_11
01695   *         @arg @ref LL_RCC_PLLM_DIV_12
01696   *         @arg @ref LL_RCC_PLLM_DIV_13
01697   *         @arg @ref LL_RCC_PLLM_DIV_14
01698   *         @arg @ref LL_RCC_PLLM_DIV_15
01699   *         @arg @ref LL_RCC_PLLM_DIV_16
01700   *         @arg @ref LL_RCC_PLLM_DIV_17
01701   *         @arg @ref LL_RCC_PLLM_DIV_18
01702   *         @arg @ref LL_RCC_PLLM_DIV_19
01703   *         @arg @ref LL_RCC_PLLM_DIV_20
01704   *         @arg @ref LL_RCC_PLLM_DIV_21
01705   *         @arg @ref LL_RCC_PLLM_DIV_22
01706   *         @arg @ref LL_RCC_PLLM_DIV_23
01707   *         @arg @ref LL_RCC_PLLM_DIV_24
01708   *         @arg @ref LL_RCC_PLLM_DIV_25
01709   *         @arg @ref LL_RCC_PLLM_DIV_26
01710   *         @arg @ref LL_RCC_PLLM_DIV_27
01711   *         @arg @ref LL_RCC_PLLM_DIV_28
01712   *         @arg @ref LL_RCC_PLLM_DIV_29
01713   *         @arg @ref LL_RCC_PLLM_DIV_30
01714   *         @arg @ref LL_RCC_PLLM_DIV_31
01715   *         @arg @ref LL_RCC_PLLM_DIV_32
01716   *         @arg @ref LL_RCC_PLLM_DIV_33
01717   *         @arg @ref LL_RCC_PLLM_DIV_34
01718   *         @arg @ref LL_RCC_PLLM_DIV_35
01719   *         @arg @ref LL_RCC_PLLM_DIV_36
01720   *         @arg @ref LL_RCC_PLLM_DIV_37
01721   *         @arg @ref LL_RCC_PLLM_DIV_38
01722   *         @arg @ref LL_RCC_PLLM_DIV_39
01723   *         @arg @ref LL_RCC_PLLM_DIV_40
01724   *         @arg @ref LL_RCC_PLLM_DIV_41
01725   *         @arg @ref LL_RCC_PLLM_DIV_42
01726   *         @arg @ref LL_RCC_PLLM_DIV_43
01727   *         @arg @ref LL_RCC_PLLM_DIV_44
01728   *         @arg @ref LL_RCC_PLLM_DIV_45
01729   *         @arg @ref LL_RCC_PLLM_DIV_46
01730   *         @arg @ref LL_RCC_PLLM_DIV_47
01731   *         @arg @ref LL_RCC_PLLM_DIV_48
01732   *         @arg @ref LL_RCC_PLLM_DIV_49
01733   *         @arg @ref LL_RCC_PLLM_DIV_50
01734   *         @arg @ref LL_RCC_PLLM_DIV_51
01735   *         @arg @ref LL_RCC_PLLM_DIV_52
01736   *         @arg @ref LL_RCC_PLLM_DIV_53
01737   *         @arg @ref LL_RCC_PLLM_DIV_54
01738   *         @arg @ref LL_RCC_PLLM_DIV_55
01739   *         @arg @ref LL_RCC_PLLM_DIV_56
01740   *         @arg @ref LL_RCC_PLLM_DIV_57
01741   *         @arg @ref LL_RCC_PLLM_DIV_58
01742   *         @arg @ref LL_RCC_PLLM_DIV_59
01743   *         @arg @ref LL_RCC_PLLM_DIV_60
01744   *         @arg @ref LL_RCC_PLLM_DIV_61
01745   *         @arg @ref LL_RCC_PLLM_DIV_62
01746   *         @arg @ref LL_RCC_PLLM_DIV_63
01747   * @param  __PLLN__ Between 50/192(*) and 432
01748   *
01749   *         (*) value not defined in all devices.
01750   * @param  __PLLQ__ This parameter can be one of the following values:
01751   *         @arg @ref LL_RCC_PLLQ_DIV_2
01752   *         @arg @ref LL_RCC_PLLQ_DIV_3
01753   *         @arg @ref LL_RCC_PLLQ_DIV_4
01754   *         @arg @ref LL_RCC_PLLQ_DIV_5
01755   *         @arg @ref LL_RCC_PLLQ_DIV_6
01756   *         @arg @ref LL_RCC_PLLQ_DIV_7
01757   *         @arg @ref LL_RCC_PLLQ_DIV_8
01758   *         @arg @ref LL_RCC_PLLQ_DIV_9
01759   *         @arg @ref LL_RCC_PLLQ_DIV_10
01760   *         @arg @ref LL_RCC_PLLQ_DIV_11
01761   *         @arg @ref LL_RCC_PLLQ_DIV_12
01762   *         @arg @ref LL_RCC_PLLQ_DIV_13
01763   *         @arg @ref LL_RCC_PLLQ_DIV_14
01764   *         @arg @ref LL_RCC_PLLQ_DIV_15
01765   * @retval PLL clock frequency (in Hz)
01766   */
01767 #define __LL_RCC_CALC_PLLCLK_48M_FREQ(__INPUTFREQ__, __PLLM__, __PLLN__, __PLLQ__) ((__INPUTFREQ__) / (__PLLM__) * (__PLLN__) / \
01768                    ((__PLLQ__) >> RCC_PLLCFGR_PLLQ_Pos ))
01769 
01770 #if defined(DSI)
01771 /**
01772   * @brief  Helper macro to calculate the PLLCLK frequency used on DSI
01773   * @note ex: @ref __LL_RCC_CALC_PLLCLK_DSI_FREQ (HSE_VALUE, @ref LL_RCC_PLL_GetDivider (),
01774   *             @ref LL_RCC_PLL_GetN (), @ref LL_RCC_PLL_GetR ());
01775   * @param  __INPUTFREQ__ PLL Input frequency (based on HSE/HSI)
01776   * @param  __PLLM__ This parameter can be one of the following values:
01777   *         @arg @ref LL_RCC_PLLM_DIV_2
01778   *         @arg @ref LL_RCC_PLLM_DIV_3
01779   *         @arg @ref LL_RCC_PLLM_DIV_4
01780   *         @arg @ref LL_RCC_PLLM_DIV_5
01781   *         @arg @ref LL_RCC_PLLM_DIV_6
01782   *         @arg @ref LL_RCC_PLLM_DIV_7
01783   *         @arg @ref LL_RCC_PLLM_DIV_8
01784   *         @arg @ref LL_RCC_PLLM_DIV_9
01785   *         @arg @ref LL_RCC_PLLM_DIV_10
01786   *         @arg @ref LL_RCC_PLLM_DIV_11
01787   *         @arg @ref LL_RCC_PLLM_DIV_12
01788   *         @arg @ref LL_RCC_PLLM_DIV_13
01789   *         @arg @ref LL_RCC_PLLM_DIV_14
01790   *         @arg @ref LL_RCC_PLLM_DIV_15
01791   *         @arg @ref LL_RCC_PLLM_DIV_16
01792   *         @arg @ref LL_RCC_PLLM_DIV_17
01793   *         @arg @ref LL_RCC_PLLM_DIV_18
01794   *         @arg @ref LL_RCC_PLLM_DIV_19
01795   *         @arg @ref LL_RCC_PLLM_DIV_20
01796   *         @arg @ref LL_RCC_PLLM_DIV_21
01797   *         @arg @ref LL_RCC_PLLM_DIV_22
01798   *         @arg @ref LL_RCC_PLLM_DIV_23
01799   *         @arg @ref LL_RCC_PLLM_DIV_24
01800   *         @arg @ref LL_RCC_PLLM_DIV_25
01801   *         @arg @ref LL_RCC_PLLM_DIV_26
01802   *         @arg @ref LL_RCC_PLLM_DIV_27
01803   *         @arg @ref LL_RCC_PLLM_DIV_28
01804   *         @arg @ref LL_RCC_PLLM_DIV_29
01805   *         @arg @ref LL_RCC_PLLM_DIV_30
01806   *         @arg @ref LL_RCC_PLLM_DIV_31
01807   *         @arg @ref LL_RCC_PLLM_DIV_32
01808   *         @arg @ref LL_RCC_PLLM_DIV_33
01809   *         @arg @ref LL_RCC_PLLM_DIV_34
01810   *         @arg @ref LL_RCC_PLLM_DIV_35
01811   *         @arg @ref LL_RCC_PLLM_DIV_36
01812   *         @arg @ref LL_RCC_PLLM_DIV_37
01813   *         @arg @ref LL_RCC_PLLM_DIV_38
01814   *         @arg @ref LL_RCC_PLLM_DIV_39
01815   *         @arg @ref LL_RCC_PLLM_DIV_40
01816   *         @arg @ref LL_RCC_PLLM_DIV_41
01817   *         @arg @ref LL_RCC_PLLM_DIV_42
01818   *         @arg @ref LL_RCC_PLLM_DIV_43
01819   *         @arg @ref LL_RCC_PLLM_DIV_44
01820   *         @arg @ref LL_RCC_PLLM_DIV_45
01821   *         @arg @ref LL_RCC_PLLM_DIV_46
01822   *         @arg @ref LL_RCC_PLLM_DIV_47
01823   *         @arg @ref LL_RCC_PLLM_DIV_48
01824   *         @arg @ref LL_RCC_PLLM_DIV_49
01825   *         @arg @ref LL_RCC_PLLM_DIV_50
01826   *         @arg @ref LL_RCC_PLLM_DIV_51
01827   *         @arg @ref LL_RCC_PLLM_DIV_52
01828   *         @arg @ref LL_RCC_PLLM_DIV_53
01829   *         @arg @ref LL_RCC_PLLM_DIV_54
01830   *         @arg @ref LL_RCC_PLLM_DIV_55
01831   *         @arg @ref LL_RCC_PLLM_DIV_56
01832   *         @arg @ref LL_RCC_PLLM_DIV_57
01833   *         @arg @ref LL_RCC_PLLM_DIV_58
01834   *         @arg @ref LL_RCC_PLLM_DIV_59
01835   *         @arg @ref LL_RCC_PLLM_DIV_60
01836   *         @arg @ref LL_RCC_PLLM_DIV_61
01837   *         @arg @ref LL_RCC_PLLM_DIV_62
01838   *         @arg @ref LL_RCC_PLLM_DIV_63
01839   * @param  __PLLN__ Between 50 and 432
01840   * @param  __PLLR__ This parameter can be one of the following values:
01841   *         @arg @ref LL_RCC_PLLR_DIV_2
01842   *         @arg @ref LL_RCC_PLLR_DIV_3
01843   *         @arg @ref LL_RCC_PLLR_DIV_4
01844   *         @arg @ref LL_RCC_PLLR_DIV_5
01845   *         @arg @ref LL_RCC_PLLR_DIV_6
01846   *         @arg @ref LL_RCC_PLLR_DIV_7
01847   * @retval PLL clock frequency (in Hz)
01848   */
01849 #define __LL_RCC_CALC_PLLCLK_DSI_FREQ(__INPUTFREQ__, __PLLM__, __PLLN__, __PLLR__) ((__INPUTFREQ__) / (__PLLM__) * (__PLLN__) / \
01850                    ((__PLLR__) >> RCC_PLLCFGR_PLLR_Pos ))
01851 #endif /* DSI */
01852 
01853 #if defined(RCC_PLLR_I2S_CLKSOURCE_SUPPORT)
01854 /**
01855   * @brief  Helper macro to calculate the PLLCLK frequency used on I2S
01856   * @note ex: @ref __LL_RCC_CALC_PLLCLK_I2S_FREQ (HSE_VALUE, @ref LL_RCC_PLL_GetDivider (),
01857   *             @ref LL_RCC_PLL_GetN (), @ref LL_RCC_PLL_GetR ());
01858   * @param  __INPUTFREQ__ PLL Input frequency (based on HSE/HSI)
01859   * @param  __PLLM__ This parameter can be one of the following values:
01860   *         @arg @ref LL_RCC_PLLM_DIV_2
01861   *         @arg @ref LL_RCC_PLLM_DIV_3
01862   *         @arg @ref LL_RCC_PLLM_DIV_4
01863   *         @arg @ref LL_RCC_PLLM_DIV_5
01864   *         @arg @ref LL_RCC_PLLM_DIV_6
01865   *         @arg @ref LL_RCC_PLLM_DIV_7
01866   *         @arg @ref LL_RCC_PLLM_DIV_8
01867   *         @arg @ref LL_RCC_PLLM_DIV_9
01868   *         @arg @ref LL_RCC_PLLM_DIV_10
01869   *         @arg @ref LL_RCC_PLLM_DIV_11
01870   *         @arg @ref LL_RCC_PLLM_DIV_12
01871   *         @arg @ref LL_RCC_PLLM_DIV_13
01872   *         @arg @ref LL_RCC_PLLM_DIV_14
01873   *         @arg @ref LL_RCC_PLLM_DIV_15
01874   *         @arg @ref LL_RCC_PLLM_DIV_16
01875   *         @arg @ref LL_RCC_PLLM_DIV_17
01876   *         @arg @ref LL_RCC_PLLM_DIV_18
01877   *         @arg @ref LL_RCC_PLLM_DIV_19
01878   *         @arg @ref LL_RCC_PLLM_DIV_20
01879   *         @arg @ref LL_RCC_PLLM_DIV_21
01880   *         @arg @ref LL_RCC_PLLM_DIV_22
01881   *         @arg @ref LL_RCC_PLLM_DIV_23
01882   *         @arg @ref LL_RCC_PLLM_DIV_24
01883   *         @arg @ref LL_RCC_PLLM_DIV_25
01884   *         @arg @ref LL_RCC_PLLM_DIV_26
01885   *         @arg @ref LL_RCC_PLLM_DIV_27
01886   *         @arg @ref LL_RCC_PLLM_DIV_28
01887   *         @arg @ref LL_RCC_PLLM_DIV_29
01888   *         @arg @ref LL_RCC_PLLM_DIV_30
01889   *         @arg @ref LL_RCC_PLLM_DIV_31
01890   *         @arg @ref LL_RCC_PLLM_DIV_32
01891   *         @arg @ref LL_RCC_PLLM_DIV_33
01892   *         @arg @ref LL_RCC_PLLM_DIV_34
01893   *         @arg @ref LL_RCC_PLLM_DIV_35
01894   *         @arg @ref LL_RCC_PLLM_DIV_36
01895   *         @arg @ref LL_RCC_PLLM_DIV_37
01896   *         @arg @ref LL_RCC_PLLM_DIV_38
01897   *         @arg @ref LL_RCC_PLLM_DIV_39
01898   *         @arg @ref LL_RCC_PLLM_DIV_40
01899   *         @arg @ref LL_RCC_PLLM_DIV_41
01900   *         @arg @ref LL_RCC_PLLM_DIV_42
01901   *         @arg @ref LL_RCC_PLLM_DIV_43
01902   *         @arg @ref LL_RCC_PLLM_DIV_44
01903   *         @arg @ref LL_RCC_PLLM_DIV_45
01904   *         @arg @ref LL_RCC_PLLM_DIV_46
01905   *         @arg @ref LL_RCC_PLLM_DIV_47
01906   *         @arg @ref LL_RCC_PLLM_DIV_48
01907   *         @arg @ref LL_RCC_PLLM_DIV_49
01908   *         @arg @ref LL_RCC_PLLM_DIV_50
01909   *         @arg @ref LL_RCC_PLLM_DIV_51
01910   *         @arg @ref LL_RCC_PLLM_DIV_52
01911   *         @arg @ref LL_RCC_PLLM_DIV_53
01912   *         @arg @ref LL_RCC_PLLM_DIV_54
01913   *         @arg @ref LL_RCC_PLLM_DIV_55
01914   *         @arg @ref LL_RCC_PLLM_DIV_56
01915   *         @arg @ref LL_RCC_PLLM_DIV_57
01916   *         @arg @ref LL_RCC_PLLM_DIV_58
01917   *         @arg @ref LL_RCC_PLLM_DIV_59
01918   *         @arg @ref LL_RCC_PLLM_DIV_60
01919   *         @arg @ref LL_RCC_PLLM_DIV_61
01920   *         @arg @ref LL_RCC_PLLM_DIV_62
01921   *         @arg @ref LL_RCC_PLLM_DIV_63
01922   * @param  __PLLN__ Between 50 and 432
01923   * @param  __PLLR__ This parameter can be one of the following values:
01924   *         @arg @ref LL_RCC_PLLR_DIV_2
01925   *         @arg @ref LL_RCC_PLLR_DIV_3
01926   *         @arg @ref LL_RCC_PLLR_DIV_4
01927   *         @arg @ref LL_RCC_PLLR_DIV_5
01928   *         @arg @ref LL_RCC_PLLR_DIV_6
01929   *         @arg @ref LL_RCC_PLLR_DIV_7
01930   * @retval PLL clock frequency (in Hz)
01931   */
01932 #define __LL_RCC_CALC_PLLCLK_I2S_FREQ(__INPUTFREQ__, __PLLM__, __PLLN__, __PLLR__) ((__INPUTFREQ__) / (__PLLM__) * (__PLLN__) / \
01933                    ((__PLLR__) >> RCC_PLLCFGR_PLLR_Pos ))
01934 #endif /* RCC_PLLR_I2S_CLKSOURCE_SUPPORT */
01935 
01936 #if defined(SPDIFRX)
01937 /**
01938   * @brief  Helper macro to calculate the PLLCLK frequency used on SPDIFRX
01939   * @note ex: @ref __LL_RCC_CALC_PLLCLK_SPDIFRX_FREQ (HSE_VALUE, @ref LL_RCC_PLL_GetDivider (),
01940   *             @ref LL_RCC_PLL_GetN (), @ref LL_RCC_PLL_GetR ());
01941   * @param  __INPUTFREQ__ PLL Input frequency (based on HSE/HSI)
01942   * @param  __PLLM__ This parameter can be one of the following values:
01943   *         @arg @ref LL_RCC_PLLM_DIV_2
01944   *         @arg @ref LL_RCC_PLLM_DIV_3
01945   *         @arg @ref LL_RCC_PLLM_DIV_4
01946   *         @arg @ref LL_RCC_PLLM_DIV_5
01947   *         @arg @ref LL_RCC_PLLM_DIV_6
01948   *         @arg @ref LL_RCC_PLLM_DIV_7
01949   *         @arg @ref LL_RCC_PLLM_DIV_8
01950   *         @arg @ref LL_RCC_PLLM_DIV_9
01951   *         @arg @ref LL_RCC_PLLM_DIV_10
01952   *         @arg @ref LL_RCC_PLLM_DIV_11
01953   *         @arg @ref LL_RCC_PLLM_DIV_12
01954   *         @arg @ref LL_RCC_PLLM_DIV_13
01955   *         @arg @ref LL_RCC_PLLM_DIV_14
01956   *         @arg @ref LL_RCC_PLLM_DIV_15
01957   *         @arg @ref LL_RCC_PLLM_DIV_16
01958   *         @arg @ref LL_RCC_PLLM_DIV_17
01959   *         @arg @ref LL_RCC_PLLM_DIV_18
01960   *         @arg @ref LL_RCC_PLLM_DIV_19
01961   *         @arg @ref LL_RCC_PLLM_DIV_20
01962   *         @arg @ref LL_RCC_PLLM_DIV_21
01963   *         @arg @ref LL_RCC_PLLM_DIV_22
01964   *         @arg @ref LL_RCC_PLLM_DIV_23
01965   *         @arg @ref LL_RCC_PLLM_DIV_24
01966   *         @arg @ref LL_RCC_PLLM_DIV_25
01967   *         @arg @ref LL_RCC_PLLM_DIV_26
01968   *         @arg @ref LL_RCC_PLLM_DIV_27
01969   *         @arg @ref LL_RCC_PLLM_DIV_28
01970   *         @arg @ref LL_RCC_PLLM_DIV_29
01971   *         @arg @ref LL_RCC_PLLM_DIV_30
01972   *         @arg @ref LL_RCC_PLLM_DIV_31
01973   *         @arg @ref LL_RCC_PLLM_DIV_32
01974   *         @arg @ref LL_RCC_PLLM_DIV_33
01975   *         @arg @ref LL_RCC_PLLM_DIV_34
01976   *         @arg @ref LL_RCC_PLLM_DIV_35
01977   *         @arg @ref LL_RCC_PLLM_DIV_36
01978   *         @arg @ref LL_RCC_PLLM_DIV_37
01979   *         @arg @ref LL_RCC_PLLM_DIV_38
01980   *         @arg @ref LL_RCC_PLLM_DIV_39
01981   *         @arg @ref LL_RCC_PLLM_DIV_40
01982   *         @arg @ref LL_RCC_PLLM_DIV_41
01983   *         @arg @ref LL_RCC_PLLM_DIV_42
01984   *         @arg @ref LL_RCC_PLLM_DIV_43
01985   *         @arg @ref LL_RCC_PLLM_DIV_44
01986   *         @arg @ref LL_RCC_PLLM_DIV_45
01987   *         @arg @ref LL_RCC_PLLM_DIV_46
01988   *         @arg @ref LL_RCC_PLLM_DIV_47
01989   *         @arg @ref LL_RCC_PLLM_DIV_48
01990   *         @arg @ref LL_RCC_PLLM_DIV_49
01991   *         @arg @ref LL_RCC_PLLM_DIV_50
01992   *         @arg @ref LL_RCC_PLLM_DIV_51
01993   *         @arg @ref LL_RCC_PLLM_DIV_52
01994   *         @arg @ref LL_RCC_PLLM_DIV_53
01995   *         @arg @ref LL_RCC_PLLM_DIV_54
01996   *         @arg @ref LL_RCC_PLLM_DIV_55
01997   *         @arg @ref LL_RCC_PLLM_DIV_56
01998   *         @arg @ref LL_RCC_PLLM_DIV_57
01999   *         @arg @ref LL_RCC_PLLM_DIV_58
02000   *         @arg @ref LL_RCC_PLLM_DIV_59
02001   *         @arg @ref LL_RCC_PLLM_DIV_60
02002   *         @arg @ref LL_RCC_PLLM_DIV_61
02003   *         @arg @ref LL_RCC_PLLM_DIV_62
02004   *         @arg @ref LL_RCC_PLLM_DIV_63
02005   * @param  __PLLN__ Between 50 and 432
02006   * @param  __PLLR__ This parameter can be one of the following values:
02007   *         @arg @ref LL_RCC_PLLR_DIV_2
02008   *         @arg @ref LL_RCC_PLLR_DIV_3
02009   *         @arg @ref LL_RCC_PLLR_DIV_4
02010   *         @arg @ref LL_RCC_PLLR_DIV_5
02011   *         @arg @ref LL_RCC_PLLR_DIV_6
02012   *         @arg @ref LL_RCC_PLLR_DIV_7
02013   * @retval PLL clock frequency (in Hz)
02014   */
02015 #define __LL_RCC_CALC_PLLCLK_SPDIFRX_FREQ(__INPUTFREQ__, __PLLM__, __PLLN__, __PLLR__) ((__INPUTFREQ__) / (__PLLM__) * (__PLLN__) / \
02016                    ((__PLLR__) >> RCC_PLLCFGR_PLLR_Pos ))
02017 #endif /* SPDIFRX */
02018 
02019 #if defined(RCC_PLLCFGR_PLLR)
02020 #if defined(SAI1)
02021 /**
02022   * @brief  Helper macro to calculate the PLLCLK frequency used on SAI
02023   * @note ex: @ref __LL_RCC_CALC_PLLCLK_SAI_FREQ (HSE_VALUE, @ref LL_RCC_PLL_GetDivider (),
02024   *             @ref LL_RCC_PLL_GetN (), @ref LL_RCC_PLL_GetR (), @ref LL_RCC_PLL_GetDIVR ());
02025   * @param  __INPUTFREQ__ PLL Input frequency (based on HSE/HSI)
02026   * @param  __PLLM__ This parameter can be one of the following values:
02027   *         @arg @ref LL_RCC_PLLM_DIV_2
02028   *         @arg @ref LL_RCC_PLLM_DIV_3
02029   *         @arg @ref LL_RCC_PLLM_DIV_4
02030   *         @arg @ref LL_RCC_PLLM_DIV_5
02031   *         @arg @ref LL_RCC_PLLM_DIV_6
02032   *         @arg @ref LL_RCC_PLLM_DIV_7
02033   *         @arg @ref LL_RCC_PLLM_DIV_8
02034   *         @arg @ref LL_RCC_PLLM_DIV_9
02035   *         @arg @ref LL_RCC_PLLM_DIV_10
02036   *         @arg @ref LL_RCC_PLLM_DIV_11
02037   *         @arg @ref LL_RCC_PLLM_DIV_12
02038   *         @arg @ref LL_RCC_PLLM_DIV_13
02039   *         @arg @ref LL_RCC_PLLM_DIV_14
02040   *         @arg @ref LL_RCC_PLLM_DIV_15
02041   *         @arg @ref LL_RCC_PLLM_DIV_16
02042   *         @arg @ref LL_RCC_PLLM_DIV_17
02043   *         @arg @ref LL_RCC_PLLM_DIV_18
02044   *         @arg @ref LL_RCC_PLLM_DIV_19
02045   *         @arg @ref LL_RCC_PLLM_DIV_20
02046   *         @arg @ref LL_RCC_PLLM_DIV_21
02047   *         @arg @ref LL_RCC_PLLM_DIV_22
02048   *         @arg @ref LL_RCC_PLLM_DIV_23
02049   *         @arg @ref LL_RCC_PLLM_DIV_24
02050   *         @arg @ref LL_RCC_PLLM_DIV_25
02051   *         @arg @ref LL_RCC_PLLM_DIV_26
02052   *         @arg @ref LL_RCC_PLLM_DIV_27
02053   *         @arg @ref LL_RCC_PLLM_DIV_28
02054   *         @arg @ref LL_RCC_PLLM_DIV_29
02055   *         @arg @ref LL_RCC_PLLM_DIV_30
02056   *         @arg @ref LL_RCC_PLLM_DIV_31
02057   *         @arg @ref LL_RCC_PLLM_DIV_32
02058   *         @arg @ref LL_RCC_PLLM_DIV_33
02059   *         @arg @ref LL_RCC_PLLM_DIV_34
02060   *         @arg @ref LL_RCC_PLLM_DIV_35
02061   *         @arg @ref LL_RCC_PLLM_DIV_36
02062   *         @arg @ref LL_RCC_PLLM_DIV_37
02063   *         @arg @ref LL_RCC_PLLM_DIV_38
02064   *         @arg @ref LL_RCC_PLLM_DIV_39
02065   *         @arg @ref LL_RCC_PLLM_DIV_40
02066   *         @arg @ref LL_RCC_PLLM_DIV_41
02067   *         @arg @ref LL_RCC_PLLM_DIV_42
02068   *         @arg @ref LL_RCC_PLLM_DIV_43
02069   *         @arg @ref LL_RCC_PLLM_DIV_44
02070   *         @arg @ref LL_RCC_PLLM_DIV_45
02071   *         @arg @ref LL_RCC_PLLM_DIV_46
02072   *         @arg @ref LL_RCC_PLLM_DIV_47
02073   *         @arg @ref LL_RCC_PLLM_DIV_48
02074   *         @arg @ref LL_RCC_PLLM_DIV_49
02075   *         @arg @ref LL_RCC_PLLM_DIV_50
02076   *         @arg @ref LL_RCC_PLLM_DIV_51
02077   *         @arg @ref LL_RCC_PLLM_DIV_52
02078   *         @arg @ref LL_RCC_PLLM_DIV_53
02079   *         @arg @ref LL_RCC_PLLM_DIV_54
02080   *         @arg @ref LL_RCC_PLLM_DIV_55
02081   *         @arg @ref LL_RCC_PLLM_DIV_56
02082   *         @arg @ref LL_RCC_PLLM_DIV_57
02083   *         @arg @ref LL_RCC_PLLM_DIV_58
02084   *         @arg @ref LL_RCC_PLLM_DIV_59
02085   *         @arg @ref LL_RCC_PLLM_DIV_60
02086   *         @arg @ref LL_RCC_PLLM_DIV_61
02087   *         @arg @ref LL_RCC_PLLM_DIV_62
02088   *         @arg @ref LL_RCC_PLLM_DIV_63
02089   * @param  __PLLN__ Between 50 and 432
02090   * @param  __PLLR__ This parameter can be one of the following values:
02091   *         @arg @ref LL_RCC_PLLR_DIV_2
02092   *         @arg @ref LL_RCC_PLLR_DIV_3
02093   *         @arg @ref LL_RCC_PLLR_DIV_4
02094   *         @arg @ref LL_RCC_PLLR_DIV_5
02095   *         @arg @ref LL_RCC_PLLR_DIV_6
02096   *         @arg @ref LL_RCC_PLLR_DIV_7
02097   * @param  __PLLDIVR__ This parameter can be one of the following values:
02098   *         @arg @ref LL_RCC_PLLDIVR_DIV_1 (*)
02099   *         @arg @ref LL_RCC_PLLDIVR_DIV_2 (*)
02100   *         @arg @ref LL_RCC_PLLDIVR_DIV_3 (*)
02101   *         @arg @ref LL_RCC_PLLDIVR_DIV_4 (*)
02102   *         @arg @ref LL_RCC_PLLDIVR_DIV_5 (*)
02103   *         @arg @ref LL_RCC_PLLDIVR_DIV_6 (*)
02104   *         @arg @ref LL_RCC_PLLDIVR_DIV_7 (*)
02105   *         @arg @ref LL_RCC_PLLDIVR_DIV_8 (*)
02106   *         @arg @ref LL_RCC_PLLDIVR_DIV_9 (*)
02107   *         @arg @ref LL_RCC_PLLDIVR_DIV_10 (*)
02108   *         @arg @ref LL_RCC_PLLDIVR_DIV_11 (*)
02109   *         @arg @ref LL_RCC_PLLDIVR_DIV_12 (*)
02110   *         @arg @ref LL_RCC_PLLDIVR_DIV_13 (*)
02111   *         @arg @ref LL_RCC_PLLDIVR_DIV_14 (*)
02112   *         @arg @ref LL_RCC_PLLDIVR_DIV_15 (*)
02113   *         @arg @ref LL_RCC_PLLDIVR_DIV_16 (*)
02114   *         @arg @ref LL_RCC_PLLDIVR_DIV_17 (*)
02115   *         @arg @ref LL_RCC_PLLDIVR_DIV_18 (*)
02116   *         @arg @ref LL_RCC_PLLDIVR_DIV_19 (*)
02117   *         @arg @ref LL_RCC_PLLDIVR_DIV_20 (*)
02118   *         @arg @ref LL_RCC_PLLDIVR_DIV_21 (*)
02119   *         @arg @ref LL_RCC_PLLDIVR_DIV_22 (*)
02120   *         @arg @ref LL_RCC_PLLDIVR_DIV_23 (*)
02121   *         @arg @ref LL_RCC_PLLDIVR_DIV_24 (*)
02122   *         @arg @ref LL_RCC_PLLDIVR_DIV_25 (*)
02123   *         @arg @ref LL_RCC_PLLDIVR_DIV_26 (*)
02124   *         @arg @ref LL_RCC_PLLDIVR_DIV_27 (*)
02125   *         @arg @ref LL_RCC_PLLDIVR_DIV_28 (*)
02126   *         @arg @ref LL_RCC_PLLDIVR_DIV_29 (*)
02127   *         @arg @ref LL_RCC_PLLDIVR_DIV_30 (*)
02128   *         @arg @ref LL_RCC_PLLDIVR_DIV_31 (*)
02129   *
02130   *         (*) value not defined in all devices.
02131   * @retval PLL clock frequency (in Hz)
02132   */
02133 #if defined(RCC_DCKCFGR_PLLDIVR)
02134 #define __LL_RCC_CALC_PLLCLK_SAI_FREQ(__INPUTFREQ__, __PLLM__, __PLLN__, __PLLR__, __PLLDIVR__) (((__INPUTFREQ__) / (__PLLM__) * (__PLLN__) / \
02135                    ((__PLLR__) >> RCC_PLLCFGR_PLLR_Pos )) / ((__PLLDIVR__) >> RCC_DCKCFGR_PLLDIVR_Pos ))
02136 #else
02137 #define __LL_RCC_CALC_PLLCLK_SAI_FREQ(__INPUTFREQ__, __PLLM__, __PLLN__, __PLLR__) ((__INPUTFREQ__) / (__PLLM__) * (__PLLN__) / \
02138                    ((__PLLR__) >> RCC_PLLCFGR_PLLR_Pos ))
02139 #endif /* RCC_DCKCFGR_PLLDIVR */
02140 #endif /* SAI1 */
02141 #endif /* RCC_PLLCFGR_PLLR */
02142 
02143 #if defined(RCC_PLLSAI_SUPPORT)
02144 /**
02145   * @brief  Helper macro to calculate the PLLSAI frequency used for SAI domain
02146   * @note ex: @ref __LL_RCC_CALC_PLLSAI_SAI_FREQ (HSE_VALUE,@ref LL_RCC_PLLSAI_GetDivider (),
02147   *             @ref LL_RCC_PLLSAI_GetN (), @ref LL_RCC_PLLSAI_GetQ (), @ref LL_RCC_PLLSAI_GetDIVQ ());
02148   * @param  __INPUTFREQ__ PLL Input frequency (based on HSE/HSI)
02149   * @param  __PLLM__ This parameter can be one of the following values:
02150   *         @arg @ref LL_RCC_PLLSAIM_DIV_2
02151   *         @arg @ref LL_RCC_PLLSAIM_DIV_3
02152   *         @arg @ref LL_RCC_PLLSAIM_DIV_4
02153   *         @arg @ref LL_RCC_PLLSAIM_DIV_5
02154   *         @arg @ref LL_RCC_PLLSAIM_DIV_6
02155   *         @arg @ref LL_RCC_PLLSAIM_DIV_7
02156   *         @arg @ref LL_RCC_PLLSAIM_DIV_8
02157   *         @arg @ref LL_RCC_PLLSAIM_DIV_9
02158   *         @arg @ref LL_RCC_PLLSAIM_DIV_10
02159   *         @arg @ref LL_RCC_PLLSAIM_DIV_11
02160   *         @arg @ref LL_RCC_PLLSAIM_DIV_12
02161   *         @arg @ref LL_RCC_PLLSAIM_DIV_13
02162   *         @arg @ref LL_RCC_PLLSAIM_DIV_14
02163   *         @arg @ref LL_RCC_PLLSAIM_DIV_15
02164   *         @arg @ref LL_RCC_PLLSAIM_DIV_16
02165   *         @arg @ref LL_RCC_PLLSAIM_DIV_17
02166   *         @arg @ref LL_RCC_PLLSAIM_DIV_18
02167   *         @arg @ref LL_RCC_PLLSAIM_DIV_19
02168   *         @arg @ref LL_RCC_PLLSAIM_DIV_20
02169   *         @arg @ref LL_RCC_PLLSAIM_DIV_21
02170   *         @arg @ref LL_RCC_PLLSAIM_DIV_22
02171   *         @arg @ref LL_RCC_PLLSAIM_DIV_23
02172   *         @arg @ref LL_RCC_PLLSAIM_DIV_24
02173   *         @arg @ref LL_RCC_PLLSAIM_DIV_25
02174   *         @arg @ref LL_RCC_PLLSAIM_DIV_26
02175   *         @arg @ref LL_RCC_PLLSAIM_DIV_27
02176   *         @arg @ref LL_RCC_PLLSAIM_DIV_28
02177   *         @arg @ref LL_RCC_PLLSAIM_DIV_29
02178   *         @arg @ref LL_RCC_PLLSAIM_DIV_30
02179   *         @arg @ref LL_RCC_PLLSAIM_DIV_31
02180   *         @arg @ref LL_RCC_PLLSAIM_DIV_32
02181   *         @arg @ref LL_RCC_PLLSAIM_DIV_33
02182   *         @arg @ref LL_RCC_PLLSAIM_DIV_34
02183   *         @arg @ref LL_RCC_PLLSAIM_DIV_35
02184   *         @arg @ref LL_RCC_PLLSAIM_DIV_36
02185   *         @arg @ref LL_RCC_PLLSAIM_DIV_37
02186   *         @arg @ref LL_RCC_PLLSAIM_DIV_38
02187   *         @arg @ref LL_RCC_PLLSAIM_DIV_39
02188   *         @arg @ref LL_RCC_PLLSAIM_DIV_40
02189   *         @arg @ref LL_RCC_PLLSAIM_DIV_41
02190   *         @arg @ref LL_RCC_PLLSAIM_DIV_42
02191   *         @arg @ref LL_RCC_PLLSAIM_DIV_43
02192   *         @arg @ref LL_RCC_PLLSAIM_DIV_44
02193   *         @arg @ref LL_RCC_PLLSAIM_DIV_45
02194   *         @arg @ref LL_RCC_PLLSAIM_DIV_46
02195   *         @arg @ref LL_RCC_PLLSAIM_DIV_47
02196   *         @arg @ref LL_RCC_PLLSAIM_DIV_48
02197   *         @arg @ref LL_RCC_PLLSAIM_DIV_49
02198   *         @arg @ref LL_RCC_PLLSAIM_DIV_50
02199   *         @arg @ref LL_RCC_PLLSAIM_DIV_51
02200   *         @arg @ref LL_RCC_PLLSAIM_DIV_52
02201   *         @arg @ref LL_RCC_PLLSAIM_DIV_53
02202   *         @arg @ref LL_RCC_PLLSAIM_DIV_54
02203   *         @arg @ref LL_RCC_PLLSAIM_DIV_55
02204   *         @arg @ref LL_RCC_PLLSAIM_DIV_56
02205   *         @arg @ref LL_RCC_PLLSAIM_DIV_57
02206   *         @arg @ref LL_RCC_PLLSAIM_DIV_58
02207   *         @arg @ref LL_RCC_PLLSAIM_DIV_59
02208   *         @arg @ref LL_RCC_PLLSAIM_DIV_60
02209   *         @arg @ref LL_RCC_PLLSAIM_DIV_61
02210   *         @arg @ref LL_RCC_PLLSAIM_DIV_62
02211   *         @arg @ref LL_RCC_PLLSAIM_DIV_63
02212   * @param  __PLLSAIN__ Between 49/50(*) and 432
02213   *
02214   *         (*) value not defined in all devices.
02215   * @param  __PLLSAIQ__ This parameter can be one of the following values:
02216   *         @arg @ref LL_RCC_PLLSAIQ_DIV_2
02217   *         @arg @ref LL_RCC_PLLSAIQ_DIV_3
02218   *         @arg @ref LL_RCC_PLLSAIQ_DIV_4
02219   *         @arg @ref LL_RCC_PLLSAIQ_DIV_5
02220   *         @arg @ref LL_RCC_PLLSAIQ_DIV_6
02221   *         @arg @ref LL_RCC_PLLSAIQ_DIV_7
02222   *         @arg @ref LL_RCC_PLLSAIQ_DIV_8
02223   *         @arg @ref LL_RCC_PLLSAIQ_DIV_9
02224   *         @arg @ref LL_RCC_PLLSAIQ_DIV_10
02225   *         @arg @ref LL_RCC_PLLSAIQ_DIV_11
02226   *         @arg @ref LL_RCC_PLLSAIQ_DIV_12
02227   *         @arg @ref LL_RCC_PLLSAIQ_DIV_13
02228   *         @arg @ref LL_RCC_PLLSAIQ_DIV_14
02229   *         @arg @ref LL_RCC_PLLSAIQ_DIV_15
02230   * @param  __PLLSAIDIVQ__ This parameter can be one of the following values:
02231   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_1
02232   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_2
02233   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_3
02234   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_4
02235   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_5
02236   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_6
02237   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_7
02238   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_8
02239   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_9
02240   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_10
02241   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_11
02242   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_12
02243   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_13
02244   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_14
02245   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_15
02246   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_16
02247   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_17
02248   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_18
02249   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_19
02250   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_20
02251   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_21
02252   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_22
02253   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_23
02254   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_24
02255   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_25
02256   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_26
02257   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_27
02258   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_28
02259   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_29
02260   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_30
02261   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_31
02262   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_32
02263   * @retval PLLSAI clock frequency (in Hz)
02264   */
02265 #define __LL_RCC_CALC_PLLSAI_SAI_FREQ(__INPUTFREQ__, __PLLM__, __PLLSAIN__, __PLLSAIQ__, __PLLSAIDIVQ__) (((__INPUTFREQ__) / (__PLLM__)) * (__PLLSAIN__) / \
02266                    (((__PLLSAIQ__) >> RCC_PLLSAICFGR_PLLSAIQ_Pos) * (((__PLLSAIDIVQ__) >> RCC_DCKCFGR_PLLSAIDIVQ_Pos) + 1U)))
02267 
02268 #if defined(RCC_PLLSAICFGR_PLLSAIP)
02269 /**
02270   * @brief  Helper macro to calculate the PLLSAI frequency used on 48Mhz domain
02271   * @note ex: @ref __LL_RCC_CALC_PLLSAI_48M_FREQ (HSE_VALUE,@ref LL_RCC_PLLSAI_GetDivider (),
02272   *             @ref LL_RCC_PLLSAI_GetN (), @ref LL_RCC_PLLSAI_GetP ());
02273   * @param  __INPUTFREQ__ PLL Input frequency (based on HSE/HSI)
02274   * @param  __PLLM__ This parameter can be one of the following values:
02275   *         @arg @ref LL_RCC_PLLSAIM_DIV_2
02276   *         @arg @ref LL_RCC_PLLSAIM_DIV_3
02277   *         @arg @ref LL_RCC_PLLSAIM_DIV_4
02278   *         @arg @ref LL_RCC_PLLSAIM_DIV_5
02279   *         @arg @ref LL_RCC_PLLSAIM_DIV_6
02280   *         @arg @ref LL_RCC_PLLSAIM_DIV_7
02281   *         @arg @ref LL_RCC_PLLSAIM_DIV_8
02282   *         @arg @ref LL_RCC_PLLSAIM_DIV_9
02283   *         @arg @ref LL_RCC_PLLSAIM_DIV_10
02284   *         @arg @ref LL_RCC_PLLSAIM_DIV_11
02285   *         @arg @ref LL_RCC_PLLSAIM_DIV_12
02286   *         @arg @ref LL_RCC_PLLSAIM_DIV_13
02287   *         @arg @ref LL_RCC_PLLSAIM_DIV_14
02288   *         @arg @ref LL_RCC_PLLSAIM_DIV_15
02289   *         @arg @ref LL_RCC_PLLSAIM_DIV_16
02290   *         @arg @ref LL_RCC_PLLSAIM_DIV_17
02291   *         @arg @ref LL_RCC_PLLSAIM_DIV_18
02292   *         @arg @ref LL_RCC_PLLSAIM_DIV_19
02293   *         @arg @ref LL_RCC_PLLSAIM_DIV_20
02294   *         @arg @ref LL_RCC_PLLSAIM_DIV_21
02295   *         @arg @ref LL_RCC_PLLSAIM_DIV_22
02296   *         @arg @ref LL_RCC_PLLSAIM_DIV_23
02297   *         @arg @ref LL_RCC_PLLSAIM_DIV_24
02298   *         @arg @ref LL_RCC_PLLSAIM_DIV_25
02299   *         @arg @ref LL_RCC_PLLSAIM_DIV_26
02300   *         @arg @ref LL_RCC_PLLSAIM_DIV_27
02301   *         @arg @ref LL_RCC_PLLSAIM_DIV_28
02302   *         @arg @ref LL_RCC_PLLSAIM_DIV_29
02303   *         @arg @ref LL_RCC_PLLSAIM_DIV_30
02304   *         @arg @ref LL_RCC_PLLSAIM_DIV_31
02305   *         @arg @ref LL_RCC_PLLSAIM_DIV_32
02306   *         @arg @ref LL_RCC_PLLSAIM_DIV_33
02307   *         @arg @ref LL_RCC_PLLSAIM_DIV_34
02308   *         @arg @ref LL_RCC_PLLSAIM_DIV_35
02309   *         @arg @ref LL_RCC_PLLSAIM_DIV_36
02310   *         @arg @ref LL_RCC_PLLSAIM_DIV_37
02311   *         @arg @ref LL_RCC_PLLSAIM_DIV_38
02312   *         @arg @ref LL_RCC_PLLSAIM_DIV_39
02313   *         @arg @ref LL_RCC_PLLSAIM_DIV_40
02314   *         @arg @ref LL_RCC_PLLSAIM_DIV_41
02315   *         @arg @ref LL_RCC_PLLSAIM_DIV_42
02316   *         @arg @ref LL_RCC_PLLSAIM_DIV_43
02317   *         @arg @ref LL_RCC_PLLSAIM_DIV_44
02318   *         @arg @ref LL_RCC_PLLSAIM_DIV_45
02319   *         @arg @ref LL_RCC_PLLSAIM_DIV_46
02320   *         @arg @ref LL_RCC_PLLSAIM_DIV_47
02321   *         @arg @ref LL_RCC_PLLSAIM_DIV_48
02322   *         @arg @ref LL_RCC_PLLSAIM_DIV_49
02323   *         @arg @ref LL_RCC_PLLSAIM_DIV_50
02324   *         @arg @ref LL_RCC_PLLSAIM_DIV_51
02325   *         @arg @ref LL_RCC_PLLSAIM_DIV_52
02326   *         @arg @ref LL_RCC_PLLSAIM_DIV_53
02327   *         @arg @ref LL_RCC_PLLSAIM_DIV_54
02328   *         @arg @ref LL_RCC_PLLSAIM_DIV_55
02329   *         @arg @ref LL_RCC_PLLSAIM_DIV_56
02330   *         @arg @ref LL_RCC_PLLSAIM_DIV_57
02331   *         @arg @ref LL_RCC_PLLSAIM_DIV_58
02332   *         @arg @ref LL_RCC_PLLSAIM_DIV_59
02333   *         @arg @ref LL_RCC_PLLSAIM_DIV_60
02334   *         @arg @ref LL_RCC_PLLSAIM_DIV_61
02335   *         @arg @ref LL_RCC_PLLSAIM_DIV_62
02336   *         @arg @ref LL_RCC_PLLSAIM_DIV_63
02337   * @param  __PLLSAIN__ Between 50 and 432
02338   * @param  __PLLSAIP__ This parameter can be one of the following values:
02339   *         @arg @ref LL_RCC_PLLSAIP_DIV_2
02340   *         @arg @ref LL_RCC_PLLSAIP_DIV_4
02341   *         @arg @ref LL_RCC_PLLSAIP_DIV_6
02342   *         @arg @ref LL_RCC_PLLSAIP_DIV_8
02343   * @retval PLLSAI clock frequency (in Hz)
02344   */
02345 #define __LL_RCC_CALC_PLLSAI_48M_FREQ(__INPUTFREQ__, __PLLM__, __PLLSAIN__, __PLLSAIP__) (((__INPUTFREQ__) / (__PLLM__)) * (__PLLSAIN__) / \
02346                    ((((__PLLSAIP__) >> RCC_PLLSAICFGR_PLLSAIP_Pos) + 1U) * 2U))
02347 #endif /* RCC_PLLSAICFGR_PLLSAIP */
02348 
02349 #if defined(LTDC)
02350 /**
02351   * @brief  Helper macro to calculate the PLLSAI frequency used for LTDC domain
02352   * @note ex: @ref __LL_RCC_CALC_PLLSAI_LTDC_FREQ (HSE_VALUE,@ref LL_RCC_PLLSAI_GetDivider (),
02353   *             @ref LL_RCC_PLLSAI_GetN (), @ref LL_RCC_PLLSAI_GetR (), @ref LL_RCC_PLLSAI_GetDIVR ());
02354   * @param  __INPUTFREQ__ PLL Input frequency (based on HSE/HSI)
02355   * @param  __PLLM__ This parameter can be one of the following values:
02356   *         @arg @ref LL_RCC_PLLSAIM_DIV_2
02357   *         @arg @ref LL_RCC_PLLSAIM_DIV_3
02358   *         @arg @ref LL_RCC_PLLSAIM_DIV_4
02359   *         @arg @ref LL_RCC_PLLSAIM_DIV_5
02360   *         @arg @ref LL_RCC_PLLSAIM_DIV_6
02361   *         @arg @ref LL_RCC_PLLSAIM_DIV_7
02362   *         @arg @ref LL_RCC_PLLSAIM_DIV_8
02363   *         @arg @ref LL_RCC_PLLSAIM_DIV_9
02364   *         @arg @ref LL_RCC_PLLSAIM_DIV_10
02365   *         @arg @ref LL_RCC_PLLSAIM_DIV_11
02366   *         @arg @ref LL_RCC_PLLSAIM_DIV_12
02367   *         @arg @ref LL_RCC_PLLSAIM_DIV_13
02368   *         @arg @ref LL_RCC_PLLSAIM_DIV_14
02369   *         @arg @ref LL_RCC_PLLSAIM_DIV_15
02370   *         @arg @ref LL_RCC_PLLSAIM_DIV_16
02371   *         @arg @ref LL_RCC_PLLSAIM_DIV_17
02372   *         @arg @ref LL_RCC_PLLSAIM_DIV_18
02373   *         @arg @ref LL_RCC_PLLSAIM_DIV_19
02374   *         @arg @ref LL_RCC_PLLSAIM_DIV_20
02375   *         @arg @ref LL_RCC_PLLSAIM_DIV_21
02376   *         @arg @ref LL_RCC_PLLSAIM_DIV_22
02377   *         @arg @ref LL_RCC_PLLSAIM_DIV_23
02378   *         @arg @ref LL_RCC_PLLSAIM_DIV_24
02379   *         @arg @ref LL_RCC_PLLSAIM_DIV_25
02380   *         @arg @ref LL_RCC_PLLSAIM_DIV_26
02381   *         @arg @ref LL_RCC_PLLSAIM_DIV_27
02382   *         @arg @ref LL_RCC_PLLSAIM_DIV_28
02383   *         @arg @ref LL_RCC_PLLSAIM_DIV_29
02384   *         @arg @ref LL_RCC_PLLSAIM_DIV_30
02385   *         @arg @ref LL_RCC_PLLSAIM_DIV_31
02386   *         @arg @ref LL_RCC_PLLSAIM_DIV_32
02387   *         @arg @ref LL_RCC_PLLSAIM_DIV_33
02388   *         @arg @ref LL_RCC_PLLSAIM_DIV_34
02389   *         @arg @ref LL_RCC_PLLSAIM_DIV_35
02390   *         @arg @ref LL_RCC_PLLSAIM_DIV_36
02391   *         @arg @ref LL_RCC_PLLSAIM_DIV_37
02392   *         @arg @ref LL_RCC_PLLSAIM_DIV_38
02393   *         @arg @ref LL_RCC_PLLSAIM_DIV_39
02394   *         @arg @ref LL_RCC_PLLSAIM_DIV_40
02395   *         @arg @ref LL_RCC_PLLSAIM_DIV_41
02396   *         @arg @ref LL_RCC_PLLSAIM_DIV_42
02397   *         @arg @ref LL_RCC_PLLSAIM_DIV_43
02398   *         @arg @ref LL_RCC_PLLSAIM_DIV_44
02399   *         @arg @ref LL_RCC_PLLSAIM_DIV_45
02400   *         @arg @ref LL_RCC_PLLSAIM_DIV_46
02401   *         @arg @ref LL_RCC_PLLSAIM_DIV_47
02402   *         @arg @ref LL_RCC_PLLSAIM_DIV_48
02403   *         @arg @ref LL_RCC_PLLSAIM_DIV_49
02404   *         @arg @ref LL_RCC_PLLSAIM_DIV_50
02405   *         @arg @ref LL_RCC_PLLSAIM_DIV_51
02406   *         @arg @ref LL_RCC_PLLSAIM_DIV_52
02407   *         @arg @ref LL_RCC_PLLSAIM_DIV_53
02408   *         @arg @ref LL_RCC_PLLSAIM_DIV_54
02409   *         @arg @ref LL_RCC_PLLSAIM_DIV_55
02410   *         @arg @ref LL_RCC_PLLSAIM_DIV_56
02411   *         @arg @ref LL_RCC_PLLSAIM_DIV_57
02412   *         @arg @ref LL_RCC_PLLSAIM_DIV_58
02413   *         @arg @ref LL_RCC_PLLSAIM_DIV_59
02414   *         @arg @ref LL_RCC_PLLSAIM_DIV_60
02415   *         @arg @ref LL_RCC_PLLSAIM_DIV_61
02416   *         @arg @ref LL_RCC_PLLSAIM_DIV_62
02417   *         @arg @ref LL_RCC_PLLSAIM_DIV_63
02418   * @param  __PLLSAIN__ Between 49/50(*) and 432
02419   *
02420   *         (*) value not defined in all devices.
02421   * @param  __PLLSAIR__ This parameter can be one of the following values:
02422   *         @arg @ref LL_RCC_PLLSAIR_DIV_2
02423   *         @arg @ref LL_RCC_PLLSAIR_DIV_3
02424   *         @arg @ref LL_RCC_PLLSAIR_DIV_4
02425   *         @arg @ref LL_RCC_PLLSAIR_DIV_5
02426   *         @arg @ref LL_RCC_PLLSAIR_DIV_6
02427   *         @arg @ref LL_RCC_PLLSAIR_DIV_7
02428   * @param  __PLLSAIDIVR__ This parameter can be one of the following values:
02429   *         @arg @ref LL_RCC_PLLSAIDIVR_DIV_2
02430   *         @arg @ref LL_RCC_PLLSAIDIVR_DIV_4
02431   *         @arg @ref LL_RCC_PLLSAIDIVR_DIV_8
02432   *         @arg @ref LL_RCC_PLLSAIDIVR_DIV_16
02433   * @retval PLLSAI clock frequency (in Hz)
02434   */
02435 #define __LL_RCC_CALC_PLLSAI_LTDC_FREQ(__INPUTFREQ__, __PLLM__, __PLLSAIN__, __PLLSAIR__, __PLLSAIDIVR__) (((__INPUTFREQ__) / (__PLLM__)) * (__PLLSAIN__) / \
02436                    (((__PLLSAIR__) >> RCC_PLLSAICFGR_PLLSAIR_Pos) * (aRCC_PLLSAIDIVRPrescTable[(__PLLSAIDIVR__) >> RCC_DCKCFGR_PLLSAIDIVR_Pos])))
02437 #endif /* LTDC */
02438 #endif /* RCC_PLLSAI_SUPPORT */
02439 
02440 #if defined(RCC_PLLI2S_SUPPORT)
02441 #if defined(RCC_DCKCFGR_PLLI2SDIVQ) || defined(RCC_DCKCFGR_PLLI2SDIVR)
02442 /**
02443   * @brief  Helper macro to calculate the PLLI2S frequency used for SAI domain
02444   * @note ex: @ref __LL_RCC_CALC_PLLI2S_SAI_FREQ (HSE_VALUE,@ref LL_RCC_PLLI2S_GetDivider (),
02445   *             @ref LL_RCC_PLLI2S_GetN (), @ref LL_RCC_PLLI2S_GetQ (), @ref LL_RCC_PLLI2S_GetDIVQ ());
02446   * @param  __INPUTFREQ__ PLL Input frequency (based on HSE/HSI)
02447   * @param  __PLLM__ This parameter can be one of the following values:
02448   *         @arg @ref LL_RCC_PLLI2SM_DIV_2
02449   *         @arg @ref LL_RCC_PLLI2SM_DIV_3
02450   *         @arg @ref LL_RCC_PLLI2SM_DIV_4
02451   *         @arg @ref LL_RCC_PLLI2SM_DIV_5
02452   *         @arg @ref LL_RCC_PLLI2SM_DIV_6
02453   *         @arg @ref LL_RCC_PLLI2SM_DIV_7
02454   *         @arg @ref LL_RCC_PLLI2SM_DIV_8
02455   *         @arg @ref LL_RCC_PLLI2SM_DIV_9
02456   *         @arg @ref LL_RCC_PLLI2SM_DIV_10
02457   *         @arg @ref LL_RCC_PLLI2SM_DIV_11
02458   *         @arg @ref LL_RCC_PLLI2SM_DIV_12
02459   *         @arg @ref LL_RCC_PLLI2SM_DIV_13
02460   *         @arg @ref LL_RCC_PLLI2SM_DIV_14
02461   *         @arg @ref LL_RCC_PLLI2SM_DIV_15
02462   *         @arg @ref LL_RCC_PLLI2SM_DIV_16
02463   *         @arg @ref LL_RCC_PLLI2SM_DIV_17
02464   *         @arg @ref LL_RCC_PLLI2SM_DIV_18
02465   *         @arg @ref LL_RCC_PLLI2SM_DIV_19
02466   *         @arg @ref LL_RCC_PLLI2SM_DIV_20
02467   *         @arg @ref LL_RCC_PLLI2SM_DIV_21
02468   *         @arg @ref LL_RCC_PLLI2SM_DIV_22
02469   *         @arg @ref LL_RCC_PLLI2SM_DIV_23
02470   *         @arg @ref LL_RCC_PLLI2SM_DIV_24
02471   *         @arg @ref LL_RCC_PLLI2SM_DIV_25
02472   *         @arg @ref LL_RCC_PLLI2SM_DIV_26
02473   *         @arg @ref LL_RCC_PLLI2SM_DIV_27
02474   *         @arg @ref LL_RCC_PLLI2SM_DIV_28
02475   *         @arg @ref LL_RCC_PLLI2SM_DIV_29
02476   *         @arg @ref LL_RCC_PLLI2SM_DIV_30
02477   *         @arg @ref LL_RCC_PLLI2SM_DIV_31
02478   *         @arg @ref LL_RCC_PLLI2SM_DIV_32
02479   *         @arg @ref LL_RCC_PLLI2SM_DIV_33
02480   *         @arg @ref LL_RCC_PLLI2SM_DIV_34
02481   *         @arg @ref LL_RCC_PLLI2SM_DIV_35
02482   *         @arg @ref LL_RCC_PLLI2SM_DIV_36
02483   *         @arg @ref LL_RCC_PLLI2SM_DIV_37
02484   *         @arg @ref LL_RCC_PLLI2SM_DIV_38
02485   *         @arg @ref LL_RCC_PLLI2SM_DIV_39
02486   *         @arg @ref LL_RCC_PLLI2SM_DIV_40
02487   *         @arg @ref LL_RCC_PLLI2SM_DIV_41
02488   *         @arg @ref LL_RCC_PLLI2SM_DIV_42
02489   *         @arg @ref LL_RCC_PLLI2SM_DIV_43
02490   *         @arg @ref LL_RCC_PLLI2SM_DIV_44
02491   *         @arg @ref LL_RCC_PLLI2SM_DIV_45
02492   *         @arg @ref LL_RCC_PLLI2SM_DIV_46
02493   *         @arg @ref LL_RCC_PLLI2SM_DIV_47
02494   *         @arg @ref LL_RCC_PLLI2SM_DIV_48
02495   *         @arg @ref LL_RCC_PLLI2SM_DIV_49
02496   *         @arg @ref LL_RCC_PLLI2SM_DIV_50
02497   *         @arg @ref LL_RCC_PLLI2SM_DIV_51
02498   *         @arg @ref LL_RCC_PLLI2SM_DIV_52
02499   *         @arg @ref LL_RCC_PLLI2SM_DIV_53
02500   *         @arg @ref LL_RCC_PLLI2SM_DIV_54
02501   *         @arg @ref LL_RCC_PLLI2SM_DIV_55
02502   *         @arg @ref LL_RCC_PLLI2SM_DIV_56
02503   *         @arg @ref LL_RCC_PLLI2SM_DIV_57
02504   *         @arg @ref LL_RCC_PLLI2SM_DIV_58
02505   *         @arg @ref LL_RCC_PLLI2SM_DIV_59
02506   *         @arg @ref LL_RCC_PLLI2SM_DIV_60
02507   *         @arg @ref LL_RCC_PLLI2SM_DIV_61
02508   *         @arg @ref LL_RCC_PLLI2SM_DIV_62
02509   *         @arg @ref LL_RCC_PLLI2SM_DIV_63
02510   * @param  __PLLI2SN__ Between 50/192(*) and 432
02511   *
02512   *         (*) value not defined in all devices.
02513   * @param  __PLLI2SQ_R__ This parameter can be one of the following values:
02514   *         @arg @ref LL_RCC_PLLI2SQ_DIV_2 (*)
02515   *         @arg @ref LL_RCC_PLLI2SQ_DIV_3 (*)
02516   *         @arg @ref LL_RCC_PLLI2SQ_DIV_4 (*)
02517   *         @arg @ref LL_RCC_PLLI2SQ_DIV_5 (*)
02518   *         @arg @ref LL_RCC_PLLI2SQ_DIV_6 (*)
02519   *         @arg @ref LL_RCC_PLLI2SQ_DIV_7 (*)
02520   *         @arg @ref LL_RCC_PLLI2SQ_DIV_8 (*)
02521   *         @arg @ref LL_RCC_PLLI2SQ_DIV_9 (*)
02522   *         @arg @ref LL_RCC_PLLI2SQ_DIV_10 (*)
02523   *         @arg @ref LL_RCC_PLLI2SQ_DIV_11 (*)
02524   *         @arg @ref LL_RCC_PLLI2SQ_DIV_12 (*)
02525   *         @arg @ref LL_RCC_PLLI2SQ_DIV_13 (*)
02526   *         @arg @ref LL_RCC_PLLI2SQ_DIV_14 (*)
02527   *         @arg @ref LL_RCC_PLLI2SQ_DIV_15 (*)
02528   *         @arg @ref LL_RCC_PLLI2SR_DIV_2 (*)
02529   *         @arg @ref LL_RCC_PLLI2SR_DIV_3 (*)
02530   *         @arg @ref LL_RCC_PLLI2SR_DIV_4 (*)
02531   *         @arg @ref LL_RCC_PLLI2SR_DIV_5 (*)
02532   *         @arg @ref LL_RCC_PLLI2SR_DIV_6 (*)
02533   *         @arg @ref LL_RCC_PLLI2SR_DIV_7 (*)
02534   *
02535   *         (*) value not defined in all devices.
02536   * @param  __PLLI2SDIVQ_R__ This parameter can be one of the following values:
02537   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_1 (*)
02538   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_2 (*)
02539   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_3 (*)
02540   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_4 (*)
02541   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_5 (*)
02542   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_6 (*)
02543   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_7 (*)
02544   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_8 (*)
02545   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_9 (*)
02546   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_10 (*)
02547   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_11 (*)
02548   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_12 (*)
02549   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_13 (*)
02550   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_14 (*)
02551   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_15 (*)
02552   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_16 (*)
02553   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_17 (*)
02554   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_18 (*)
02555   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_19 (*)
02556   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_20 (*)
02557   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_21 (*)
02558   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_22 (*)
02559   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_23 (*)
02560   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_24 (*)
02561   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_25 (*)
02562   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_26 (*)
02563   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_27 (*)
02564   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_28 (*)
02565   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_29 (*)
02566   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_30 (*)
02567   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_31 (*)
02568   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_32 (*)
02569   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_1 (*)
02570   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_2 (*)
02571   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_3 (*)
02572   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_4 (*)
02573   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_5 (*)
02574   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_6 (*)
02575   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_7 (*)
02576   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_8 (*)
02577   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_9 (*)
02578   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_10 (*)
02579   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_11 (*)
02580   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_12 (*)
02581   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_13 (*)
02582   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_14 (*)
02583   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_15 (*)
02584   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_16 (*)
02585   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_17 (*)
02586   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_18 (*)
02587   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_19 (*)
02588   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_20 (*)
02589   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_21 (*)
02590   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_22 (*)
02591   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_23 (*)
02592   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_24 (*)
02593   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_25 (*)
02594   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_26 (*)
02595   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_27 (*)
02596   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_28 (*)
02597   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_29 (*)
02598   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_30 (*)
02599   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_31 (*)
02600   *
02601   *         (*) value not defined in all devices.
02602   * @retval PLLI2S clock frequency (in Hz)
02603   */
02604 #if defined(RCC_DCKCFGR_PLLI2SDIVQ)
02605 #define __LL_RCC_CALC_PLLI2S_SAI_FREQ(__INPUTFREQ__, __PLLM__, __PLLI2SN__, __PLLI2SQ_R__, __PLLI2SDIVQ_R__) (((__INPUTFREQ__) / (__PLLM__)) * (__PLLI2SN__) / \
02606                    (((__PLLI2SQ_R__) >> RCC_PLLI2SCFGR_PLLI2SQ_Pos) * (((__PLLI2SDIVQ_R__) >> RCC_DCKCFGR_PLLI2SDIVQ_Pos) + 1U)))
02607 #else
02608 #define __LL_RCC_CALC_PLLI2S_SAI_FREQ(__INPUTFREQ__, __PLLM__, __PLLI2SN__, __PLLI2SQ_R__, __PLLI2SDIVQ_R__) (((__INPUTFREQ__) / (__PLLM__)) * (__PLLI2SN__) / \
02609                    (((__PLLI2SQ_R__) >> RCC_PLLI2SCFGR_PLLI2SR_Pos) * ((__PLLI2SDIVQ_R__) >> RCC_DCKCFGR_PLLI2SDIVR_Pos)))
02610 
02611 #endif /* RCC_DCKCFGR_PLLI2SDIVQ */
02612 #endif /* RCC_DCKCFGR_PLLI2SDIVQ || RCC_DCKCFGR_PLLI2SDIVR */
02613 
02614 #if defined(SPDIFRX)
02615 /**
02616   * @brief  Helper macro to calculate the PLLI2S frequency used on SPDIFRX domain
02617   * @note ex: @ref __LL_RCC_CALC_PLLI2S_SPDIFRX_FREQ (HSE_VALUE,@ref LL_RCC_PLLI2S_GetDivider (),
02618   *             @ref LL_RCC_PLLI2S_GetN (), @ref LL_RCC_PLLI2S_GetP ());
02619   * @param  __INPUTFREQ__ PLL Input frequency (based on HSE/HSI)
02620   * @param  __PLLM__ This parameter can be one of the following values:
02621   *         @arg @ref LL_RCC_PLLI2SM_DIV_2
02622   *         @arg @ref LL_RCC_PLLI2SM_DIV_3
02623   *         @arg @ref LL_RCC_PLLI2SM_DIV_4
02624   *         @arg @ref LL_RCC_PLLI2SM_DIV_5
02625   *         @arg @ref LL_RCC_PLLI2SM_DIV_6
02626   *         @arg @ref LL_RCC_PLLI2SM_DIV_7
02627   *         @arg @ref LL_RCC_PLLI2SM_DIV_8
02628   *         @arg @ref LL_RCC_PLLI2SM_DIV_9
02629   *         @arg @ref LL_RCC_PLLI2SM_DIV_10
02630   *         @arg @ref LL_RCC_PLLI2SM_DIV_11
02631   *         @arg @ref LL_RCC_PLLI2SM_DIV_12
02632   *         @arg @ref LL_RCC_PLLI2SM_DIV_13
02633   *         @arg @ref LL_RCC_PLLI2SM_DIV_14
02634   *         @arg @ref LL_RCC_PLLI2SM_DIV_15
02635   *         @arg @ref LL_RCC_PLLI2SM_DIV_16
02636   *         @arg @ref LL_RCC_PLLI2SM_DIV_17
02637   *         @arg @ref LL_RCC_PLLI2SM_DIV_18
02638   *         @arg @ref LL_RCC_PLLI2SM_DIV_19
02639   *         @arg @ref LL_RCC_PLLI2SM_DIV_20
02640   *         @arg @ref LL_RCC_PLLI2SM_DIV_21
02641   *         @arg @ref LL_RCC_PLLI2SM_DIV_22
02642   *         @arg @ref LL_RCC_PLLI2SM_DIV_23
02643   *         @arg @ref LL_RCC_PLLI2SM_DIV_24
02644   *         @arg @ref LL_RCC_PLLI2SM_DIV_25
02645   *         @arg @ref LL_RCC_PLLI2SM_DIV_26
02646   *         @arg @ref LL_RCC_PLLI2SM_DIV_27
02647   *         @arg @ref LL_RCC_PLLI2SM_DIV_28
02648   *         @arg @ref LL_RCC_PLLI2SM_DIV_29
02649   *         @arg @ref LL_RCC_PLLI2SM_DIV_30
02650   *         @arg @ref LL_RCC_PLLI2SM_DIV_31
02651   *         @arg @ref LL_RCC_PLLI2SM_DIV_32
02652   *         @arg @ref LL_RCC_PLLI2SM_DIV_33
02653   *         @arg @ref LL_RCC_PLLI2SM_DIV_34
02654   *         @arg @ref LL_RCC_PLLI2SM_DIV_35
02655   *         @arg @ref LL_RCC_PLLI2SM_DIV_36
02656   *         @arg @ref LL_RCC_PLLI2SM_DIV_37
02657   *         @arg @ref LL_RCC_PLLI2SM_DIV_38
02658   *         @arg @ref LL_RCC_PLLI2SM_DIV_39
02659   *         @arg @ref LL_RCC_PLLI2SM_DIV_40
02660   *         @arg @ref LL_RCC_PLLI2SM_DIV_41
02661   *         @arg @ref LL_RCC_PLLI2SM_DIV_42
02662   *         @arg @ref LL_RCC_PLLI2SM_DIV_43
02663   *         @arg @ref LL_RCC_PLLI2SM_DIV_44
02664   *         @arg @ref LL_RCC_PLLI2SM_DIV_45
02665   *         @arg @ref LL_RCC_PLLI2SM_DIV_46
02666   *         @arg @ref LL_RCC_PLLI2SM_DIV_47
02667   *         @arg @ref LL_RCC_PLLI2SM_DIV_48
02668   *         @arg @ref LL_RCC_PLLI2SM_DIV_49
02669   *         @arg @ref LL_RCC_PLLI2SM_DIV_50
02670   *         @arg @ref LL_RCC_PLLI2SM_DIV_51
02671   *         @arg @ref LL_RCC_PLLI2SM_DIV_52
02672   *         @arg @ref LL_RCC_PLLI2SM_DIV_53
02673   *         @arg @ref LL_RCC_PLLI2SM_DIV_54
02674   *         @arg @ref LL_RCC_PLLI2SM_DIV_55
02675   *         @arg @ref LL_RCC_PLLI2SM_DIV_56
02676   *         @arg @ref LL_RCC_PLLI2SM_DIV_57
02677   *         @arg @ref LL_RCC_PLLI2SM_DIV_58
02678   *         @arg @ref LL_RCC_PLLI2SM_DIV_59
02679   *         @arg @ref LL_RCC_PLLI2SM_DIV_60
02680   *         @arg @ref LL_RCC_PLLI2SM_DIV_61
02681   *         @arg @ref LL_RCC_PLLI2SM_DIV_62
02682   *         @arg @ref LL_RCC_PLLI2SM_DIV_63
02683   * @param  __PLLI2SN__ Between 50 and 432
02684   * @param  __PLLI2SP__ This parameter can be one of the following values:
02685   *         @arg @ref LL_RCC_PLLI2SP_DIV_2
02686   *         @arg @ref LL_RCC_PLLI2SP_DIV_4
02687   *         @arg @ref LL_RCC_PLLI2SP_DIV_6
02688   *         @arg @ref LL_RCC_PLLI2SP_DIV_8
02689   * @retval PLLI2S clock frequency (in Hz)
02690   */
02691 #define __LL_RCC_CALC_PLLI2S_SPDIFRX_FREQ(__INPUTFREQ__, __PLLM__, __PLLI2SN__, __PLLI2SP__) (((__INPUTFREQ__) / (__PLLM__)) * (__PLLI2SN__) / \
02692                    ((((__PLLI2SP__) >> RCC_PLLI2SCFGR_PLLI2SP_Pos) + 1U) * 2U))
02693 
02694 #endif /* SPDIFRX */
02695 
02696 /**
02697   * @brief  Helper macro to calculate the PLLI2S frequency used for I2S domain
02698   * @note ex: @ref __LL_RCC_CALC_PLLI2S_I2S_FREQ (HSE_VALUE,@ref LL_RCC_PLLI2S_GetDivider (),
02699   *             @ref LL_RCC_PLLI2S_GetN (), @ref LL_RCC_PLLI2S_GetR ());
02700   * @param  __INPUTFREQ__ PLL Input frequency (based on HSE/HSI)
02701   * @param  __PLLM__ This parameter can be one of the following values:
02702   *         @arg @ref LL_RCC_PLLI2SM_DIV_2
02703   *         @arg @ref LL_RCC_PLLI2SM_DIV_3
02704   *         @arg @ref LL_RCC_PLLI2SM_DIV_4
02705   *         @arg @ref LL_RCC_PLLI2SM_DIV_5
02706   *         @arg @ref LL_RCC_PLLI2SM_DIV_6
02707   *         @arg @ref LL_RCC_PLLI2SM_DIV_7
02708   *         @arg @ref LL_RCC_PLLI2SM_DIV_8
02709   *         @arg @ref LL_RCC_PLLI2SM_DIV_9
02710   *         @arg @ref LL_RCC_PLLI2SM_DIV_10
02711   *         @arg @ref LL_RCC_PLLI2SM_DIV_11
02712   *         @arg @ref LL_RCC_PLLI2SM_DIV_12
02713   *         @arg @ref LL_RCC_PLLI2SM_DIV_13
02714   *         @arg @ref LL_RCC_PLLI2SM_DIV_14
02715   *         @arg @ref LL_RCC_PLLI2SM_DIV_15
02716   *         @arg @ref LL_RCC_PLLI2SM_DIV_16
02717   *         @arg @ref LL_RCC_PLLI2SM_DIV_17
02718   *         @arg @ref LL_RCC_PLLI2SM_DIV_18
02719   *         @arg @ref LL_RCC_PLLI2SM_DIV_19
02720   *         @arg @ref LL_RCC_PLLI2SM_DIV_20
02721   *         @arg @ref LL_RCC_PLLI2SM_DIV_21
02722   *         @arg @ref LL_RCC_PLLI2SM_DIV_22
02723   *         @arg @ref LL_RCC_PLLI2SM_DIV_23
02724   *         @arg @ref LL_RCC_PLLI2SM_DIV_24
02725   *         @arg @ref LL_RCC_PLLI2SM_DIV_25
02726   *         @arg @ref LL_RCC_PLLI2SM_DIV_26
02727   *         @arg @ref LL_RCC_PLLI2SM_DIV_27
02728   *         @arg @ref LL_RCC_PLLI2SM_DIV_28
02729   *         @arg @ref LL_RCC_PLLI2SM_DIV_29
02730   *         @arg @ref LL_RCC_PLLI2SM_DIV_30
02731   *         @arg @ref LL_RCC_PLLI2SM_DIV_31
02732   *         @arg @ref LL_RCC_PLLI2SM_DIV_32
02733   *         @arg @ref LL_RCC_PLLI2SM_DIV_33
02734   *         @arg @ref LL_RCC_PLLI2SM_DIV_34
02735   *         @arg @ref LL_RCC_PLLI2SM_DIV_35
02736   *         @arg @ref LL_RCC_PLLI2SM_DIV_36
02737   *         @arg @ref LL_RCC_PLLI2SM_DIV_37
02738   *         @arg @ref LL_RCC_PLLI2SM_DIV_38
02739   *         @arg @ref LL_RCC_PLLI2SM_DIV_39
02740   *         @arg @ref LL_RCC_PLLI2SM_DIV_40
02741   *         @arg @ref LL_RCC_PLLI2SM_DIV_41
02742   *         @arg @ref LL_RCC_PLLI2SM_DIV_42
02743   *         @arg @ref LL_RCC_PLLI2SM_DIV_43
02744   *         @arg @ref LL_RCC_PLLI2SM_DIV_44
02745   *         @arg @ref LL_RCC_PLLI2SM_DIV_45
02746   *         @arg @ref LL_RCC_PLLI2SM_DIV_46
02747   *         @arg @ref LL_RCC_PLLI2SM_DIV_47
02748   *         @arg @ref LL_RCC_PLLI2SM_DIV_48
02749   *         @arg @ref LL_RCC_PLLI2SM_DIV_49
02750   *         @arg @ref LL_RCC_PLLI2SM_DIV_50
02751   *         @arg @ref LL_RCC_PLLI2SM_DIV_51
02752   *         @arg @ref LL_RCC_PLLI2SM_DIV_52
02753   *         @arg @ref LL_RCC_PLLI2SM_DIV_53
02754   *         @arg @ref LL_RCC_PLLI2SM_DIV_54
02755   *         @arg @ref LL_RCC_PLLI2SM_DIV_55
02756   *         @arg @ref LL_RCC_PLLI2SM_DIV_56
02757   *         @arg @ref LL_RCC_PLLI2SM_DIV_57
02758   *         @arg @ref LL_RCC_PLLI2SM_DIV_58
02759   *         @arg @ref LL_RCC_PLLI2SM_DIV_59
02760   *         @arg @ref LL_RCC_PLLI2SM_DIV_60
02761   *         @arg @ref LL_RCC_PLLI2SM_DIV_61
02762   *         @arg @ref LL_RCC_PLLI2SM_DIV_62
02763   *         @arg @ref LL_RCC_PLLI2SM_DIV_63
02764   * @param  __PLLI2SN__ Between 50/192(*) and 432
02765   *
02766   *         (*) value not defined in all devices.
02767   * @param  __PLLI2SR__ This parameter can be one of the following values:
02768   *         @arg @ref LL_RCC_PLLI2SR_DIV_2
02769   *         @arg @ref LL_RCC_PLLI2SR_DIV_3
02770   *         @arg @ref LL_RCC_PLLI2SR_DIV_4
02771   *         @arg @ref LL_RCC_PLLI2SR_DIV_5
02772   *         @arg @ref LL_RCC_PLLI2SR_DIV_6
02773   *         @arg @ref LL_RCC_PLLI2SR_DIV_7
02774   * @retval PLLI2S clock frequency (in Hz)
02775   */
02776 #define __LL_RCC_CALC_PLLI2S_I2S_FREQ(__INPUTFREQ__, __PLLM__, __PLLI2SN__, __PLLI2SR__) (((__INPUTFREQ__) / (__PLLM__)) * (__PLLI2SN__) / \
02777                    ((__PLLI2SR__) >> RCC_PLLI2SCFGR_PLLI2SR_Pos))
02778 
02779 #if defined(RCC_PLLI2SCFGR_PLLI2SQ) && !defined(RCC_DCKCFGR_PLLI2SDIVQ)
02780 /**
02781   * @brief  Helper macro to calculate the PLLI2S frequency used for 48Mhz domain
02782   * @note ex: @ref __LL_RCC_CALC_PLLI2S_48M_FREQ (HSE_VALUE,@ref LL_RCC_PLLI2S_GetDivider (),
02783   *             @ref LL_RCC_PLLI2S_GetN (), @ref LL_RCC_PLLI2S_GetQ ());
02784   * @param  __INPUTFREQ__ PLL Input frequency (based on HSE/HSI)
02785   * @param  __PLLM__ This parameter can be one of the following values:
02786   *         @arg @ref LL_RCC_PLLI2SM_DIV_2
02787   *         @arg @ref LL_RCC_PLLI2SM_DIV_3
02788   *         @arg @ref LL_RCC_PLLI2SM_DIV_4
02789   *         @arg @ref LL_RCC_PLLI2SM_DIV_5
02790   *         @arg @ref LL_RCC_PLLI2SM_DIV_6
02791   *         @arg @ref LL_RCC_PLLI2SM_DIV_7
02792   *         @arg @ref LL_RCC_PLLI2SM_DIV_8
02793   *         @arg @ref LL_RCC_PLLI2SM_DIV_9
02794   *         @arg @ref LL_RCC_PLLI2SM_DIV_10
02795   *         @arg @ref LL_RCC_PLLI2SM_DIV_11
02796   *         @arg @ref LL_RCC_PLLI2SM_DIV_12
02797   *         @arg @ref LL_RCC_PLLI2SM_DIV_13
02798   *         @arg @ref LL_RCC_PLLI2SM_DIV_14
02799   *         @arg @ref LL_RCC_PLLI2SM_DIV_15
02800   *         @arg @ref LL_RCC_PLLI2SM_DIV_16
02801   *         @arg @ref LL_RCC_PLLI2SM_DIV_17
02802   *         @arg @ref LL_RCC_PLLI2SM_DIV_18
02803   *         @arg @ref LL_RCC_PLLI2SM_DIV_19
02804   *         @arg @ref LL_RCC_PLLI2SM_DIV_20
02805   *         @arg @ref LL_RCC_PLLI2SM_DIV_21
02806   *         @arg @ref LL_RCC_PLLI2SM_DIV_22
02807   *         @arg @ref LL_RCC_PLLI2SM_DIV_23
02808   *         @arg @ref LL_RCC_PLLI2SM_DIV_24
02809   *         @arg @ref LL_RCC_PLLI2SM_DIV_25
02810   *         @arg @ref LL_RCC_PLLI2SM_DIV_26
02811   *         @arg @ref LL_RCC_PLLI2SM_DIV_27
02812   *         @arg @ref LL_RCC_PLLI2SM_DIV_28
02813   *         @arg @ref LL_RCC_PLLI2SM_DIV_29
02814   *         @arg @ref LL_RCC_PLLI2SM_DIV_30
02815   *         @arg @ref LL_RCC_PLLI2SM_DIV_31
02816   *         @arg @ref LL_RCC_PLLI2SM_DIV_32
02817   *         @arg @ref LL_RCC_PLLI2SM_DIV_33
02818   *         @arg @ref LL_RCC_PLLI2SM_DIV_34
02819   *         @arg @ref LL_RCC_PLLI2SM_DIV_35
02820   *         @arg @ref LL_RCC_PLLI2SM_DIV_36
02821   *         @arg @ref LL_RCC_PLLI2SM_DIV_37
02822   *         @arg @ref LL_RCC_PLLI2SM_DIV_38
02823   *         @arg @ref LL_RCC_PLLI2SM_DIV_39
02824   *         @arg @ref LL_RCC_PLLI2SM_DIV_40
02825   *         @arg @ref LL_RCC_PLLI2SM_DIV_41
02826   *         @arg @ref LL_RCC_PLLI2SM_DIV_42
02827   *         @arg @ref LL_RCC_PLLI2SM_DIV_43
02828   *         @arg @ref LL_RCC_PLLI2SM_DIV_44
02829   *         @arg @ref LL_RCC_PLLI2SM_DIV_45
02830   *         @arg @ref LL_RCC_PLLI2SM_DIV_46
02831   *         @arg @ref LL_RCC_PLLI2SM_DIV_47
02832   *         @arg @ref LL_RCC_PLLI2SM_DIV_48
02833   *         @arg @ref LL_RCC_PLLI2SM_DIV_49
02834   *         @arg @ref LL_RCC_PLLI2SM_DIV_50
02835   *         @arg @ref LL_RCC_PLLI2SM_DIV_51
02836   *         @arg @ref LL_RCC_PLLI2SM_DIV_52
02837   *         @arg @ref LL_RCC_PLLI2SM_DIV_53
02838   *         @arg @ref LL_RCC_PLLI2SM_DIV_54
02839   *         @arg @ref LL_RCC_PLLI2SM_DIV_55
02840   *         @arg @ref LL_RCC_PLLI2SM_DIV_56
02841   *         @arg @ref LL_RCC_PLLI2SM_DIV_57
02842   *         @arg @ref LL_RCC_PLLI2SM_DIV_58
02843   *         @arg @ref LL_RCC_PLLI2SM_DIV_59
02844   *         @arg @ref LL_RCC_PLLI2SM_DIV_60
02845   *         @arg @ref LL_RCC_PLLI2SM_DIV_61
02846   *         @arg @ref LL_RCC_PLLI2SM_DIV_62
02847   *         @arg @ref LL_RCC_PLLI2SM_DIV_63
02848   * @param  __PLLI2SN__ Between 50 and 432
02849   * @param  __PLLI2SQ__ This parameter can be one of the following values:
02850   *         @arg @ref LL_RCC_PLLI2SQ_DIV_2
02851   *         @arg @ref LL_RCC_PLLI2SQ_DIV_3
02852   *         @arg @ref LL_RCC_PLLI2SQ_DIV_4
02853   *         @arg @ref LL_RCC_PLLI2SQ_DIV_5
02854   *         @arg @ref LL_RCC_PLLI2SQ_DIV_6
02855   *         @arg @ref LL_RCC_PLLI2SQ_DIV_7
02856   *         @arg @ref LL_RCC_PLLI2SQ_DIV_8
02857   *         @arg @ref LL_RCC_PLLI2SQ_DIV_9
02858   *         @arg @ref LL_RCC_PLLI2SQ_DIV_10
02859   *         @arg @ref LL_RCC_PLLI2SQ_DIV_11
02860   *         @arg @ref LL_RCC_PLLI2SQ_DIV_12
02861   *         @arg @ref LL_RCC_PLLI2SQ_DIV_13
02862   *         @arg @ref LL_RCC_PLLI2SQ_DIV_14
02863   *         @arg @ref LL_RCC_PLLI2SQ_DIV_15
02864   * @retval PLLI2S clock frequency (in Hz)
02865   */
02866 #define __LL_RCC_CALC_PLLI2S_48M_FREQ(__INPUTFREQ__, __PLLM__, __PLLI2SN__, __PLLI2SQ__) (((__INPUTFREQ__) / (__PLLM__)) * (__PLLI2SN__) / \
02867                    ((__PLLI2SQ__) >> RCC_PLLI2SCFGR_PLLI2SQ_Pos))
02868 
02869 #endif /* RCC_PLLI2SCFGR_PLLI2SQ && !RCC_DCKCFGR_PLLI2SDIVQ */
02870 #endif /* RCC_PLLI2S_SUPPORT */
02871 
02872 /**
02873   * @brief  Helper macro to calculate the HCLK frequency
02874   * @param  __SYSCLKFREQ__ SYSCLK frequency (based on HSE/HSI/PLLCLK)
02875   * @param  __AHBPRESCALER__ This parameter can be one of the following values:
02876   *         @arg @ref LL_RCC_SYSCLK_DIV_1
02877   *         @arg @ref LL_RCC_SYSCLK_DIV_2
02878   *         @arg @ref LL_RCC_SYSCLK_DIV_4
02879   *         @arg @ref LL_RCC_SYSCLK_DIV_8
02880   *         @arg @ref LL_RCC_SYSCLK_DIV_16
02881   *         @arg @ref LL_RCC_SYSCLK_DIV_64
02882   *         @arg @ref LL_RCC_SYSCLK_DIV_128
02883   *         @arg @ref LL_RCC_SYSCLK_DIV_256
02884   *         @arg @ref LL_RCC_SYSCLK_DIV_512
02885   * @retval HCLK clock frequency (in Hz)
02886   */
02887 #define __LL_RCC_CALC_HCLK_FREQ(__SYSCLKFREQ__, __AHBPRESCALER__) ((__SYSCLKFREQ__) >> AHBPrescTable[((__AHBPRESCALER__) & RCC_CFGR_HPRE) >>  RCC_CFGR_HPRE_Pos])
02888 
02889 /**
02890   * @brief  Helper macro to calculate the PCLK1 frequency (ABP1)
02891   * @param  __HCLKFREQ__ HCLK frequency
02892   * @param  __APB1PRESCALER__ This parameter can be one of the following values:
02893   *         @arg @ref LL_RCC_APB1_DIV_1
02894   *         @arg @ref LL_RCC_APB1_DIV_2
02895   *         @arg @ref LL_RCC_APB1_DIV_4
02896   *         @arg @ref LL_RCC_APB1_DIV_8
02897   *         @arg @ref LL_RCC_APB1_DIV_16
02898   * @retval PCLK1 clock frequency (in Hz)
02899   */
02900 #define __LL_RCC_CALC_PCLK1_FREQ(__HCLKFREQ__, __APB1PRESCALER__) ((__HCLKFREQ__) >> APBPrescTable[(__APB1PRESCALER__) >>  RCC_CFGR_PPRE1_Pos])
02901 
02902 /**
02903   * @brief  Helper macro to calculate the PCLK2 frequency (ABP2)
02904   * @param  __HCLKFREQ__ HCLK frequency
02905   * @param  __APB2PRESCALER__ This parameter can be one of the following values:
02906   *         @arg @ref LL_RCC_APB2_DIV_1
02907   *         @arg @ref LL_RCC_APB2_DIV_2
02908   *         @arg @ref LL_RCC_APB2_DIV_4
02909   *         @arg @ref LL_RCC_APB2_DIV_8
02910   *         @arg @ref LL_RCC_APB2_DIV_16
02911   * @retval PCLK2 clock frequency (in Hz)
02912   */
02913 #define __LL_RCC_CALC_PCLK2_FREQ(__HCLKFREQ__, __APB2PRESCALER__) ((__HCLKFREQ__) >> APBPrescTable[(__APB2PRESCALER__) >>  RCC_CFGR_PPRE2_Pos])
02914 
02915 /**
02916   * @}
02917   */
02918 
02919 /**
02920   * @}
02921   */
02922 
02923 /* Exported functions --------------------------------------------------------*/
02924 /** @defgroup RCC_LL_Exported_Functions RCC Exported Functions
02925   * @{
02926   */
02927 
02928 /** @defgroup RCC_LL_EF_HSE HSE
02929   * @{
02930   */
02931 
02932 /**
02933   * @brief  Enable the Clock Security System.
02934   * @rmtoll CR           CSSON         LL_RCC_HSE_EnableCSS
02935   * @retval None
02936   */
02937 __STATIC_INLINE void LL_RCC_HSE_EnableCSS(void)
02938 {
02939   SET_BIT(RCC->CR, RCC_CR_CSSON);
02940 }
02941 
02942 /**
02943   * @brief  Enable HSE external oscillator (HSE Bypass)
02944   * @rmtoll CR           HSEBYP        LL_RCC_HSE_EnableBypass
02945   * @retval None
02946   */
02947 __STATIC_INLINE void LL_RCC_HSE_EnableBypass(void)
02948 {
02949   SET_BIT(RCC->CR, RCC_CR_HSEBYP);
02950 }
02951 
02952 /**
02953   * @brief  Disable HSE external oscillator (HSE Bypass)
02954   * @rmtoll CR           HSEBYP        LL_RCC_HSE_DisableBypass
02955   * @retval None
02956   */
02957 __STATIC_INLINE void LL_RCC_HSE_DisableBypass(void)
02958 {
02959   CLEAR_BIT(RCC->CR, RCC_CR_HSEBYP);
02960 }
02961 
02962 /**
02963   * @brief  Enable HSE crystal oscillator (HSE ON)
02964   * @rmtoll CR           HSEON         LL_RCC_HSE_Enable
02965   * @retval None
02966   */
02967 __STATIC_INLINE void LL_RCC_HSE_Enable(void)
02968 {
02969   SET_BIT(RCC->CR, RCC_CR_HSEON);
02970 }
02971 
02972 /**
02973   * @brief  Disable HSE crystal oscillator (HSE ON)
02974   * @rmtoll CR           HSEON         LL_RCC_HSE_Disable
02975   * @retval None
02976   */
02977 __STATIC_INLINE void LL_RCC_HSE_Disable(void)
02978 {
02979   CLEAR_BIT(RCC->CR, RCC_CR_HSEON);
02980 }
02981 
02982 /**
02983   * @brief  Check if HSE oscillator Ready
02984   * @rmtoll CR           HSERDY        LL_RCC_HSE_IsReady
02985   * @retval State of bit (1 or 0).
02986   */
02987 __STATIC_INLINE uint32_t LL_RCC_HSE_IsReady(void)
02988 {
02989   return (READ_BIT(RCC->CR, RCC_CR_HSERDY) == (RCC_CR_HSERDY));
02990 }
02991 
02992 /**
02993   * @}
02994   */
02995 
02996 /** @defgroup RCC_LL_EF_HSI HSI
02997   * @{
02998   */
02999 
03000 /**
03001   * @brief  Enable HSI oscillator
03002   * @rmtoll CR           HSION         LL_RCC_HSI_Enable
03003   * @retval None
03004   */
03005 __STATIC_INLINE void LL_RCC_HSI_Enable(void)
03006 {
03007   SET_BIT(RCC->CR, RCC_CR_HSION);
03008 }
03009 
03010 /**
03011   * @brief  Disable HSI oscillator
03012   * @rmtoll CR           HSION         LL_RCC_HSI_Disable
03013   * @retval None
03014   */
03015 __STATIC_INLINE void LL_RCC_HSI_Disable(void)
03016 {
03017   CLEAR_BIT(RCC->CR, RCC_CR_HSION);
03018 }
03019 
03020 /**
03021   * @brief  Check if HSI clock is ready
03022   * @rmtoll CR           HSIRDY        LL_RCC_HSI_IsReady
03023   * @retval State of bit (1 or 0).
03024   */
03025 __STATIC_INLINE uint32_t LL_RCC_HSI_IsReady(void)
03026 {
03027   return (READ_BIT(RCC->CR, RCC_CR_HSIRDY) == (RCC_CR_HSIRDY));
03028 }
03029 
03030 /**
03031   * @brief  Get HSI Calibration value
03032   * @note When HSITRIM is written, HSICAL is updated with the sum of
03033   *       HSITRIM and the factory trim value
03034   * @rmtoll CR        HSICAL        LL_RCC_HSI_GetCalibration
03035   * @retval Between Min_Data = 0x00 and Max_Data = 0xFF
03036   */
03037 __STATIC_INLINE uint32_t LL_RCC_HSI_GetCalibration(void)
03038 {
03039   return (uint32_t)(READ_BIT(RCC->CR, RCC_CR_HSICAL) >> RCC_CR_HSICAL_Pos);
03040 }
03041 
03042 /**
03043   * @brief  Set HSI Calibration trimming
03044   * @note user-programmable trimming value that is added to the HSICAL
03045   * @note Default value is 16, which, when added to the HSICAL value,
03046   *       should trim the HSI to 16 MHz +/- 1 %
03047   * @rmtoll CR        HSITRIM       LL_RCC_HSI_SetCalibTrimming
03048   * @param  Value Between Min_Data = 0 and Max_Data = 31
03049   * @retval None
03050   */
03051 __STATIC_INLINE void LL_RCC_HSI_SetCalibTrimming(uint32_t Value)
03052 {
03053   MODIFY_REG(RCC->CR, RCC_CR_HSITRIM, Value << RCC_CR_HSITRIM_Pos);
03054 }
03055 
03056 /**
03057   * @brief  Get HSI Calibration trimming
03058   * @rmtoll CR        HSITRIM       LL_RCC_HSI_GetCalibTrimming
03059   * @retval Between Min_Data = 0 and Max_Data = 31
03060   */
03061 __STATIC_INLINE uint32_t LL_RCC_HSI_GetCalibTrimming(void)
03062 {
03063   return (uint32_t)(READ_BIT(RCC->CR, RCC_CR_HSITRIM) >> RCC_CR_HSITRIM_Pos);
03064 }
03065 
03066 /**
03067   * @}
03068   */
03069 
03070 /** @defgroup RCC_LL_EF_LSE LSE
03071   * @{
03072   */
03073 
03074 /**
03075   * @brief  Enable  Low Speed External (LSE) crystal.
03076   * @rmtoll BDCR         LSEON         LL_RCC_LSE_Enable
03077   * @retval None
03078   */
03079 __STATIC_INLINE void LL_RCC_LSE_Enable(void)
03080 {
03081   SET_BIT(RCC->BDCR, RCC_BDCR_LSEON);
03082 }
03083 
03084 /**
03085   * @brief  Disable  Low Speed External (LSE) crystal.
03086   * @rmtoll BDCR         LSEON         LL_RCC_LSE_Disable
03087   * @retval None
03088   */
03089 __STATIC_INLINE void LL_RCC_LSE_Disable(void)
03090 {
03091   CLEAR_BIT(RCC->BDCR, RCC_BDCR_LSEON);
03092 }
03093 
03094 /**
03095   * @brief  Enable external clock source (LSE bypass).
03096   * @rmtoll BDCR         LSEBYP        LL_RCC_LSE_EnableBypass
03097   * @retval None
03098   */
03099 __STATIC_INLINE void LL_RCC_LSE_EnableBypass(void)
03100 {
03101   SET_BIT(RCC->BDCR, RCC_BDCR_LSEBYP);
03102 }
03103 
03104 /**
03105   * @brief  Disable external clock source (LSE bypass).
03106   * @rmtoll BDCR         LSEBYP        LL_RCC_LSE_DisableBypass
03107   * @retval None
03108   */
03109 __STATIC_INLINE void LL_RCC_LSE_DisableBypass(void)
03110 {
03111   CLEAR_BIT(RCC->BDCR, RCC_BDCR_LSEBYP);
03112 }
03113 
03114 /**
03115   * @brief  Check if LSE oscillator Ready
03116   * @rmtoll BDCR         LSERDY        LL_RCC_LSE_IsReady
03117   * @retval State of bit (1 or 0).
03118   */
03119 __STATIC_INLINE uint32_t LL_RCC_LSE_IsReady(void)
03120 {
03121   return (READ_BIT(RCC->BDCR, RCC_BDCR_LSERDY) == (RCC_BDCR_LSERDY));
03122 }
03123 
03124 #if defined(RCC_BDCR_LSEMOD)
03125 /**
03126   * @brief  Enable LSE high drive mode.
03127   * @note LSE high drive mode can be enabled only when the LSE clock is disabled
03128   * @rmtoll BDCR         LSEMOD      LL_RCC_LSE_EnableHighDriveMode
03129   * @retval None
03130   */
03131 __STATIC_INLINE void LL_RCC_LSE_EnableHighDriveMode(void)
03132 {
03133   SET_BIT(RCC->BDCR, RCC_BDCR_LSEMOD);
03134 }
03135 
03136 /**
03137   * @brief  Disable LSE high drive mode.
03138   * @note LSE high drive mode can be disabled only when the LSE clock is disabled
03139   * @rmtoll BDCR         LSEMOD      LL_RCC_LSE_DisableHighDriveMode
03140   * @retval None
03141   */
03142 __STATIC_INLINE void LL_RCC_LSE_DisableHighDriveMode(void)
03143 {
03144   CLEAR_BIT(RCC->BDCR, RCC_BDCR_LSEMOD);
03145 }
03146 #endif /* RCC_BDCR_LSEMOD */
03147 
03148 /**
03149   * @}
03150   */
03151 
03152 /** @defgroup RCC_LL_EF_LSI LSI
03153   * @{
03154   */
03155 
03156 /**
03157   * @brief  Enable LSI Oscillator
03158   * @rmtoll CSR          LSION         LL_RCC_LSI_Enable
03159   * @retval None
03160   */
03161 __STATIC_INLINE void LL_RCC_LSI_Enable(void)
03162 {
03163   SET_BIT(RCC->CSR, RCC_CSR_LSION);
03164 }
03165 
03166 /**
03167   * @brief  Disable LSI Oscillator
03168   * @rmtoll CSR          LSION         LL_RCC_LSI_Disable
03169   * @retval None
03170   */
03171 __STATIC_INLINE void LL_RCC_LSI_Disable(void)
03172 {
03173   CLEAR_BIT(RCC->CSR, RCC_CSR_LSION);
03174 }
03175 
03176 /**
03177   * @brief  Check if LSI is Ready
03178   * @rmtoll CSR          LSIRDY        LL_RCC_LSI_IsReady
03179   * @retval State of bit (1 or 0).
03180   */
03181 __STATIC_INLINE uint32_t LL_RCC_LSI_IsReady(void)
03182 {
03183   return (READ_BIT(RCC->CSR, RCC_CSR_LSIRDY) == (RCC_CSR_LSIRDY));
03184 }
03185 
03186 /**
03187   * @}
03188   */
03189 
03190 /** @defgroup RCC_LL_EF_System System
03191   * @{
03192   */
03193 
03194 /**
03195   * @brief  Configure the system clock source
03196   * @rmtoll CFGR         SW            LL_RCC_SetSysClkSource
03197   * @param  Source This parameter can be one of the following values:
03198   *         @arg @ref LL_RCC_SYS_CLKSOURCE_HSI
03199   *         @arg @ref LL_RCC_SYS_CLKSOURCE_HSE
03200   *         @arg @ref LL_RCC_SYS_CLKSOURCE_PLL
03201   *         @arg @ref LL_RCC_SYS_CLKSOURCE_PLLR (*)
03202   *
03203   *         (*) value not defined in all devices.
03204   * @retval None
03205   */
03206 __STATIC_INLINE void LL_RCC_SetSysClkSource(uint32_t Source)
03207 {
03208   MODIFY_REG(RCC->CFGR, RCC_CFGR_SW, Source);
03209 }
03210 
03211 /**
03212   * @brief  Get the system clock source
03213   * @rmtoll CFGR         SWS           LL_RCC_GetSysClkSource
03214   * @retval Returned value can be one of the following values:
03215   *         @arg @ref LL_RCC_SYS_CLKSOURCE_STATUS_HSI
03216   *         @arg @ref LL_RCC_SYS_CLKSOURCE_STATUS_HSE
03217   *         @arg @ref LL_RCC_SYS_CLKSOURCE_STATUS_PLL
03218   *         @arg @ref LL_RCC_SYS_CLKSOURCE_STATUS_PLLR (*)
03219   *
03220   *         (*) value not defined in all devices.
03221   */
03222 __STATIC_INLINE uint32_t LL_RCC_GetSysClkSource(void)
03223 {
03224   return (uint32_t)(READ_BIT(RCC->CFGR, RCC_CFGR_SWS));
03225 }
03226 
03227 /**
03228   * @brief  Set AHB prescaler
03229   * @rmtoll CFGR         HPRE          LL_RCC_SetAHBPrescaler
03230   * @param  Prescaler This parameter can be one of the following values:
03231   *         @arg @ref LL_RCC_SYSCLK_DIV_1
03232   *         @arg @ref LL_RCC_SYSCLK_DIV_2
03233   *         @arg @ref LL_RCC_SYSCLK_DIV_4
03234   *         @arg @ref LL_RCC_SYSCLK_DIV_8
03235   *         @arg @ref LL_RCC_SYSCLK_DIV_16
03236   *         @arg @ref LL_RCC_SYSCLK_DIV_64
03237   *         @arg @ref LL_RCC_SYSCLK_DIV_128
03238   *         @arg @ref LL_RCC_SYSCLK_DIV_256
03239   *         @arg @ref LL_RCC_SYSCLK_DIV_512
03240   * @retval None
03241   */
03242 __STATIC_INLINE void LL_RCC_SetAHBPrescaler(uint32_t Prescaler)
03243 {
03244   MODIFY_REG(RCC->CFGR, RCC_CFGR_HPRE, Prescaler);
03245 }
03246 
03247 /**
03248   * @brief  Set APB1 prescaler
03249   * @rmtoll CFGR         PPRE1         LL_RCC_SetAPB1Prescaler
03250   * @param  Prescaler This parameter can be one of the following values:
03251   *         @arg @ref LL_RCC_APB1_DIV_1
03252   *         @arg @ref LL_RCC_APB1_DIV_2
03253   *         @arg @ref LL_RCC_APB1_DIV_4
03254   *         @arg @ref LL_RCC_APB1_DIV_8
03255   *         @arg @ref LL_RCC_APB1_DIV_16
03256   * @retval None
03257   */
03258 __STATIC_INLINE void LL_RCC_SetAPB1Prescaler(uint32_t Prescaler)
03259 {
03260   MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE1, Prescaler);
03261 }
03262 
03263 /**
03264   * @brief  Set APB2 prescaler
03265   * @rmtoll CFGR         PPRE2         LL_RCC_SetAPB2Prescaler
03266   * @param  Prescaler This parameter can be one of the following values:
03267   *         @arg @ref LL_RCC_APB2_DIV_1
03268   *         @arg @ref LL_RCC_APB2_DIV_2
03269   *         @arg @ref LL_RCC_APB2_DIV_4
03270   *         @arg @ref LL_RCC_APB2_DIV_8
03271   *         @arg @ref LL_RCC_APB2_DIV_16
03272   * @retval None
03273   */
03274 __STATIC_INLINE void LL_RCC_SetAPB2Prescaler(uint32_t Prescaler)
03275 {
03276   MODIFY_REG(RCC->CFGR, RCC_CFGR_PPRE2, Prescaler);
03277 }
03278 
03279 /**
03280   * @brief  Get AHB prescaler
03281   * @rmtoll CFGR         HPRE          LL_RCC_GetAHBPrescaler
03282   * @retval Returned value can be one of the following values:
03283   *         @arg @ref LL_RCC_SYSCLK_DIV_1
03284   *         @arg @ref LL_RCC_SYSCLK_DIV_2
03285   *         @arg @ref LL_RCC_SYSCLK_DIV_4
03286   *         @arg @ref LL_RCC_SYSCLK_DIV_8
03287   *         @arg @ref LL_RCC_SYSCLK_DIV_16
03288   *         @arg @ref LL_RCC_SYSCLK_DIV_64
03289   *         @arg @ref LL_RCC_SYSCLK_DIV_128
03290   *         @arg @ref LL_RCC_SYSCLK_DIV_256
03291   *         @arg @ref LL_RCC_SYSCLK_DIV_512
03292   */
03293 __STATIC_INLINE uint32_t LL_RCC_GetAHBPrescaler(void)
03294 {
03295   return (uint32_t)(READ_BIT(RCC->CFGR, RCC_CFGR_HPRE));
03296 }
03297 
03298 /**
03299   * @brief  Get APB1 prescaler
03300   * @rmtoll CFGR         PPRE1         LL_RCC_GetAPB1Prescaler
03301   * @retval Returned value can be one of the following values:
03302   *         @arg @ref LL_RCC_APB1_DIV_1
03303   *         @arg @ref LL_RCC_APB1_DIV_2
03304   *         @arg @ref LL_RCC_APB1_DIV_4
03305   *         @arg @ref LL_RCC_APB1_DIV_8
03306   *         @arg @ref LL_RCC_APB1_DIV_16
03307   */
03308 __STATIC_INLINE uint32_t LL_RCC_GetAPB1Prescaler(void)
03309 {
03310   return (uint32_t)(READ_BIT(RCC->CFGR, RCC_CFGR_PPRE1));
03311 }
03312 
03313 /**
03314   * @brief  Get APB2 prescaler
03315   * @rmtoll CFGR         PPRE2         LL_RCC_GetAPB2Prescaler
03316   * @retval Returned value can be one of the following values:
03317   *         @arg @ref LL_RCC_APB2_DIV_1
03318   *         @arg @ref LL_RCC_APB2_DIV_2
03319   *         @arg @ref LL_RCC_APB2_DIV_4
03320   *         @arg @ref LL_RCC_APB2_DIV_8
03321   *         @arg @ref LL_RCC_APB2_DIV_16
03322   */
03323 __STATIC_INLINE uint32_t LL_RCC_GetAPB2Prescaler(void)
03324 {
03325   return (uint32_t)(READ_BIT(RCC->CFGR, RCC_CFGR_PPRE2));
03326 }
03327 
03328 /**
03329   * @}
03330   */
03331 
03332 /** @defgroup RCC_LL_EF_MCO MCO
03333   * @{
03334   */
03335 
03336 #if defined(RCC_CFGR_MCO1EN)
03337 /**
03338   * @brief  Enable MCO1 output
03339   * @rmtoll CFGR           RCC_CFGR_MCO1EN         LL_RCC_MCO1_Enable
03340   * @retval None
03341   */
03342 __STATIC_INLINE void LL_RCC_MCO1_Enable(void)
03343 {
03344   SET_BIT(RCC->CFGR, RCC_CFGR_MCO1EN);
03345 }
03346 
03347 /**
03348   * @brief  Disable MCO1 output
03349   * @rmtoll CFGR           RCC_CFGR_MCO1EN         LL_RCC_MCO1_Disable
03350   * @retval None
03351   */
03352 __STATIC_INLINE void LL_RCC_MCO1_Disable(void)
03353 {
03354   CLEAR_BIT(RCC->CFGR, RCC_CFGR_MCO1EN);
03355 }
03356 #endif /* RCC_CFGR_MCO1EN */
03357 
03358 #if defined(RCC_CFGR_MCO2EN)
03359 /**
03360   * @brief  Enable MCO2 output
03361   * @rmtoll CFGR           RCC_CFGR_MCO2EN         LL_RCC_MCO2_Enable
03362   * @retval None
03363   */
03364 __STATIC_INLINE void LL_RCC_MCO2_Enable(void)
03365 {
03366   SET_BIT(RCC->CFGR, RCC_CFGR_MCO2EN);
03367 }
03368 
03369 /**
03370   * @brief  Disable MCO2 output
03371   * @rmtoll CFGR           RCC_CFGR_MCO2EN         LL_RCC_MCO2_Disable
03372   * @retval None
03373   */
03374 __STATIC_INLINE void LL_RCC_MCO2_Disable(void)
03375 {
03376   CLEAR_BIT(RCC->CFGR, RCC_CFGR_MCO2EN);
03377 }
03378 #endif /* RCC_CFGR_MCO2EN */
03379 
03380 /**
03381   * @brief  Configure MCOx
03382   * @rmtoll CFGR         MCO1          LL_RCC_ConfigMCO\n
03383   *         CFGR         MCO1PRE       LL_RCC_ConfigMCO\n
03384   *         CFGR         MCO2          LL_RCC_ConfigMCO\n
03385   *         CFGR         MCO2PRE       LL_RCC_ConfigMCO
03386   * @param  MCOxSource This parameter can be one of the following values:
03387   *         @arg @ref LL_RCC_MCO1SOURCE_HSI
03388   *         @arg @ref LL_RCC_MCO1SOURCE_LSE
03389   *         @arg @ref LL_RCC_MCO1SOURCE_HSE
03390   *         @arg @ref LL_RCC_MCO1SOURCE_PLLCLK
03391   *         @arg @ref LL_RCC_MCO2SOURCE_SYSCLK
03392   *         @arg @ref LL_RCC_MCO2SOURCE_PLLI2S
03393   *         @arg @ref LL_RCC_MCO2SOURCE_HSE
03394   *         @arg @ref LL_RCC_MCO2SOURCE_PLLCLK
03395   * @param  MCOxPrescaler This parameter can be one of the following values:
03396   *         @arg @ref LL_RCC_MCO1_DIV_1
03397   *         @arg @ref LL_RCC_MCO1_DIV_2
03398   *         @arg @ref LL_RCC_MCO1_DIV_3
03399   *         @arg @ref LL_RCC_MCO1_DIV_4
03400   *         @arg @ref LL_RCC_MCO1_DIV_5
03401   *         @arg @ref LL_RCC_MCO2_DIV_1
03402   *         @arg @ref LL_RCC_MCO2_DIV_2
03403   *         @arg @ref LL_RCC_MCO2_DIV_3
03404   *         @arg @ref LL_RCC_MCO2_DIV_4
03405   *         @arg @ref LL_RCC_MCO2_DIV_5
03406   * @retval None
03407   */
03408 __STATIC_INLINE void LL_RCC_ConfigMCO(uint32_t MCOxSource, uint32_t MCOxPrescaler)
03409 {
03410   MODIFY_REG(RCC->CFGR, (MCOxSource & 0xFFFF0000U) | (MCOxPrescaler & 0xFFFF0000U),  (MCOxSource << 16U) | (MCOxPrescaler << 16U));
03411 }
03412 
03413 /**
03414   * @}
03415   */
03416 
03417 /** @defgroup RCC_LL_EF_Peripheral_Clock_Source Peripheral Clock Source
03418   * @{
03419   */
03420 #if defined(FMPI2C1)
03421 /**
03422   * @brief  Configure FMPI2C clock source
03423   * @rmtoll DCKCFGR2        FMPI2C1SEL       LL_RCC_SetFMPI2CClockSource
03424   * @param  FMPI2CxSource This parameter can be one of the following values:
03425   *         @arg @ref LL_RCC_FMPI2C1_CLKSOURCE_PCLK1
03426   *         @arg @ref LL_RCC_FMPI2C1_CLKSOURCE_SYSCLK
03427   *         @arg @ref LL_RCC_FMPI2C1_CLKSOURCE_HSI
03428   * @retval None
03429   */
03430 __STATIC_INLINE void LL_RCC_SetFMPI2CClockSource(uint32_t FMPI2CxSource)
03431 {
03432   MODIFY_REG(RCC->DCKCFGR2, RCC_DCKCFGR2_FMPI2C1SEL, FMPI2CxSource);
03433 }
03434 #endif /* FMPI2C1 */
03435 
03436 #if defined(LPTIM1)
03437 /**
03438   * @brief  Configure LPTIMx clock source
03439   * @rmtoll DCKCFGR2        LPTIM1SEL     LL_RCC_SetLPTIMClockSource
03440   * @param  LPTIMxSource This parameter can be one of the following values:
03441   *         @arg @ref LL_RCC_LPTIM1_CLKSOURCE_PCLK1
03442   *         @arg @ref LL_RCC_LPTIM1_CLKSOURCE_HSI
03443   *         @arg @ref LL_RCC_LPTIM1_CLKSOURCE_LSI
03444   *         @arg @ref LL_RCC_LPTIM1_CLKSOURCE_LSE
03445   * @retval None
03446   */
03447 __STATIC_INLINE void LL_RCC_SetLPTIMClockSource(uint32_t LPTIMxSource)
03448 {
03449   MODIFY_REG(RCC->DCKCFGR2, RCC_DCKCFGR2_LPTIM1SEL, LPTIMxSource);
03450 }
03451 #endif /* LPTIM1 */
03452 
03453 #if defined(SAI1)
03454 /**
03455   * @brief  Configure SAIx clock source
03456   * @rmtoll DCKCFGR        SAI1SRC       LL_RCC_SetSAIClockSource\n
03457   *         DCKCFGR        SAI2SRC       LL_RCC_SetSAIClockSource\n
03458   *         DCKCFGR        SAI1ASRC      LL_RCC_SetSAIClockSource\n
03459   *         DCKCFGR        SAI1BSRC      LL_RCC_SetSAIClockSource
03460   * @param  SAIxSource This parameter can be one of the following values:
03461   *         @arg @ref LL_RCC_SAI1_CLKSOURCE_PLLSAI (*)
03462   *         @arg @ref LL_RCC_SAI1_CLKSOURCE_PLLI2S (*)
03463   *         @arg @ref LL_RCC_SAI1_CLKSOURCE_PLL (*)
03464   *         @arg @ref LL_RCC_SAI1_CLKSOURCE_PIN (*)
03465   *         @arg @ref LL_RCC_SAI2_CLKSOURCE_PLLSAI (*)
03466   *         @arg @ref LL_RCC_SAI2_CLKSOURCE_PLLI2S (*)
03467   *         @arg @ref LL_RCC_SAI2_CLKSOURCE_PLL  (*)
03468   *         @arg @ref LL_RCC_SAI2_CLKSOURCE_PLLSRC (*)
03469   *         @arg @ref LL_RCC_SAI1_A_CLKSOURCE_PLLSAI (*)
03470   *         @arg @ref LL_RCC_SAI1_A_CLKSOURCE_PLLI2S (*)
03471   *         @arg @ref LL_RCC_SAI1_A_CLKSOURCE_PIN (*)
03472   *         @arg @ref LL_RCC_SAI1_A_CLKSOURCE_PLL (*)
03473   *         @arg @ref LL_RCC_SAI1_A_CLKSOURCE_PLLSRC (*)
03474   *         @arg @ref LL_RCC_SAI1_B_CLKSOURCE_PLLSAI (*)
03475   *         @arg @ref LL_RCC_SAI1_B_CLKSOURCE_PLLI2S (*)
03476   *         @arg @ref LL_RCC_SAI1_B_CLKSOURCE_PIN (*)
03477   *         @arg @ref LL_RCC_SAI1_B_CLKSOURCE_PLL  (*)
03478   *         @arg @ref LL_RCC_SAI1_B_CLKSOURCE_PLLSRC (*)
03479   *
03480   *         (*) value not defined in all devices.
03481   * @retval None
03482   */
03483 __STATIC_INLINE void LL_RCC_SetSAIClockSource(uint32_t SAIxSource)
03484 {
03485   MODIFY_REG(RCC->DCKCFGR, (SAIxSource & 0xFFFF0000U), (SAIxSource << 16U));
03486 }
03487 #endif /* SAI1 */
03488 
03489 #if defined(RCC_DCKCFGR_SDIOSEL) || defined(RCC_DCKCFGR2_SDIOSEL)
03490 /**
03491   * @brief  Configure SDIO clock source
03492   * @rmtoll DCKCFGR         SDIOSEL      LL_RCC_SetSDIOClockSource\n
03493   *         DCKCFGR2        SDIOSEL      LL_RCC_SetSDIOClockSource
03494   * @param  SDIOxSource This parameter can be one of the following values:
03495   *         @arg @ref LL_RCC_SDIO_CLKSOURCE_PLL48CLK
03496   *         @arg @ref LL_RCC_SDIO_CLKSOURCE_SYSCLK
03497   * @retval None
03498   */
03499 __STATIC_INLINE void LL_RCC_SetSDIOClockSource(uint32_t SDIOxSource)
03500 {
03501 #if defined(RCC_DCKCFGR_SDIOSEL)
03502   MODIFY_REG(RCC->DCKCFGR, RCC_DCKCFGR_SDIOSEL, SDIOxSource);
03503 #else
03504   MODIFY_REG(RCC->DCKCFGR2, RCC_DCKCFGR2_SDIOSEL, SDIOxSource);
03505 #endif /* RCC_DCKCFGR_SDIOSEL */
03506 }
03507 #endif /* RCC_DCKCFGR_SDIOSEL || RCC_DCKCFGR2_SDIOSEL */
03508 
03509 #if defined(RCC_DCKCFGR_CK48MSEL) || defined(RCC_DCKCFGR2_CK48MSEL)
03510 /**
03511   * @brief  Configure 48Mhz domain clock source
03512   * @rmtoll DCKCFGR         CK48MSEL      LL_RCC_SetCK48MClockSource\n
03513   *         DCKCFGR2        CK48MSEL      LL_RCC_SetCK48MClockSource
03514   * @param  CK48MxSource This parameter can be one of the following values:
03515   *         @arg @ref LL_RCC_CK48M_CLKSOURCE_PLL
03516   *         @arg @ref LL_RCC_CK48M_CLKSOURCE_PLLSAI (*)
03517   *         @arg @ref LL_RCC_CK48M_CLKSOURCE_PLLI2S (*)
03518   *
03519   *         (*) value not defined in all devices.
03520   * @retval None
03521   */
03522 __STATIC_INLINE void LL_RCC_SetCK48MClockSource(uint32_t CK48MxSource)
03523 {
03524 #if defined(RCC_DCKCFGR_CK48MSEL)
03525   MODIFY_REG(RCC->DCKCFGR, RCC_DCKCFGR_CK48MSEL, CK48MxSource);
03526 #else
03527   MODIFY_REG(RCC->DCKCFGR2, RCC_DCKCFGR2_CK48MSEL, CK48MxSource);
03528 #endif /* RCC_DCKCFGR_CK48MSEL */
03529 }
03530 
03531 #if defined(RNG)
03532 /**
03533   * @brief  Configure RNG clock source
03534   * @rmtoll DCKCFGR         CK48MSEL      LL_RCC_SetRNGClockSource\n
03535   *         DCKCFGR2        CK48MSEL      LL_RCC_SetRNGClockSource
03536   * @param  RNGxSource This parameter can be one of the following values:
03537   *         @arg @ref LL_RCC_RNG_CLKSOURCE_PLL
03538   *         @arg @ref LL_RCC_RNG_CLKSOURCE_PLLSAI (*)
03539   *         @arg @ref LL_RCC_RNG_CLKSOURCE_PLLI2S (*)
03540   *
03541   *         (*) value not defined in all devices.
03542   * @retval None
03543   */
03544 __STATIC_INLINE void LL_RCC_SetRNGClockSource(uint32_t RNGxSource)
03545 {
03546 #if defined(RCC_DCKCFGR_CK48MSEL)
03547   MODIFY_REG(RCC->DCKCFGR, RCC_DCKCFGR_CK48MSEL, RNGxSource);
03548 #else
03549   MODIFY_REG(RCC->DCKCFGR2, RCC_DCKCFGR2_CK48MSEL, RNGxSource);
03550 #endif /* RCC_DCKCFGR_CK48MSEL */
03551 }
03552 #endif /* RNG */
03553 
03554 #if defined(USB_OTG_FS) || defined(USB_OTG_HS)
03555 /**
03556   * @brief  Configure USB clock source
03557   * @rmtoll DCKCFGR         CK48MSEL      LL_RCC_SetUSBClockSource\n
03558   *         DCKCFGR2        CK48MSEL      LL_RCC_SetUSBClockSource
03559   * @param  USBxSource This parameter can be one of the following values:
03560   *         @arg @ref LL_RCC_USB_CLKSOURCE_PLL
03561   *         @arg @ref LL_RCC_USB_CLKSOURCE_PLLSAI (*)
03562   *         @arg @ref LL_RCC_USB_CLKSOURCE_PLLI2S (*)
03563   *
03564   *         (*) value not defined in all devices.
03565   * @retval None
03566   */
03567 __STATIC_INLINE void LL_RCC_SetUSBClockSource(uint32_t USBxSource)
03568 {
03569 #if defined(RCC_DCKCFGR_CK48MSEL)
03570   MODIFY_REG(RCC->DCKCFGR, RCC_DCKCFGR_CK48MSEL, USBxSource);
03571 #else
03572   MODIFY_REG(RCC->DCKCFGR2, RCC_DCKCFGR2_CK48MSEL, USBxSource);
03573 #endif /* RCC_DCKCFGR_CK48MSEL */
03574 }
03575 #endif /* USB_OTG_FS || USB_OTG_HS */
03576 #endif /* RCC_DCKCFGR_CK48MSEL || RCC_DCKCFGR2_CK48MSEL */
03577 
03578 #if defined(CEC)
03579 /**
03580   * @brief  Configure CEC clock source
03581   * @rmtoll DCKCFGR2         CECSEL        LL_RCC_SetCECClockSource
03582   * @param  Source This parameter can be one of the following values:
03583   *         @arg @ref LL_RCC_CEC_CLKSOURCE_HSI_DIV488
03584   *         @arg @ref LL_RCC_CEC_CLKSOURCE_LSE
03585   * @retval None
03586   */
03587 __STATIC_INLINE void LL_RCC_SetCECClockSource(uint32_t Source)
03588 {
03589   MODIFY_REG(RCC->DCKCFGR2, RCC_DCKCFGR2_CECSEL, Source);
03590 }
03591 #endif /* CEC */
03592 
03593 /**
03594   * @brief  Configure I2S clock source
03595   * @rmtoll CFGR         I2SSRC        LL_RCC_SetI2SClockSource\n
03596   *         DCKCFGR      I2SSRC        LL_RCC_SetI2SClockSource\n
03597   *         DCKCFGR      I2S1SRC       LL_RCC_SetI2SClockSource\n
03598   *         DCKCFGR      I2S2SRC       LL_RCC_SetI2SClockSource
03599   * @param  Source This parameter can be one of the following values:
03600   *         @arg @ref LL_RCC_I2S1_CLKSOURCE_PLLI2S (*)
03601   *         @arg @ref LL_RCC_I2S1_CLKSOURCE_PIN
03602   *         @arg @ref LL_RCC_I2S1_CLKSOURCE_PLL (*)
03603   *         @arg @ref LL_RCC_I2S1_CLKSOURCE_PLLSRC (*)
03604   *         @arg @ref LL_RCC_I2S2_CLKSOURCE_PLLI2S (*)
03605   *         @arg @ref LL_RCC_I2S2_CLKSOURCE_PIN (*)
03606   *         @arg @ref LL_RCC_I2S2_CLKSOURCE_PLL (*)
03607   *         @arg @ref LL_RCC_I2S2_CLKSOURCE_PLLSRC (*)
03608   *
03609   *         (*) value not defined in all devices.
03610   * @retval None
03611   */
03612 __STATIC_INLINE void LL_RCC_SetI2SClockSource(uint32_t Source)
03613 {
03614 #if defined(RCC_CFGR_I2SSRC)
03615   MODIFY_REG(RCC->CFGR, RCC_CFGR_I2SSRC, Source);
03616 #else
03617   MODIFY_REG(RCC->DCKCFGR, (Source & 0xFFFF0000U), (Source << 16U));
03618 #endif /* RCC_CFGR_I2SSRC */
03619 }
03620 
03621 #if defined(DSI)
03622 /**
03623   * @brief  Configure DSI clock source
03624   * @rmtoll DCKCFGR         DSISEL        LL_RCC_SetDSIClockSource
03625   * @param  Source This parameter can be one of the following values:
03626   *         @arg @ref LL_RCC_DSI_CLKSOURCE_PHY
03627   *         @arg @ref LL_RCC_DSI_CLKSOURCE_PLL
03628   * @retval None
03629   */
03630 __STATIC_INLINE void LL_RCC_SetDSIClockSource(uint32_t Source)
03631 {
03632   MODIFY_REG(RCC->DCKCFGR, RCC_DCKCFGR_DSISEL, Source);
03633 }
03634 #endif /* DSI */
03635 
03636 #if defined(DFSDM1_Channel0)
03637 /**
03638   * @brief  Configure DFSDM Audio clock source
03639   * @rmtoll DCKCFGR          CKDFSDM1ASEL        LL_RCC_SetDFSDMAudioClockSource\n
03640   *         DCKCFGR          CKDFSDM2ASEL        LL_RCC_SetDFSDMAudioClockSource
03641   * @param  Source This parameter can be one of the following values:
03642   *         @arg @ref LL_RCC_DFSDM1_AUDIO_CLKSOURCE_I2S1
03643   *         @arg @ref LL_RCC_DFSDM1_AUDIO_CLKSOURCE_I2S2
03644   *         @arg @ref LL_RCC_DFSDM2_AUDIO_CLKSOURCE_I2S1 (*)
03645   *         @arg @ref LL_RCC_DFSDM2_AUDIO_CLKSOURCE_I2S2 (*)
03646   *
03647   *         (*) value not defined in all devices.
03648   * @retval None
03649   */
03650 __STATIC_INLINE void LL_RCC_SetDFSDMAudioClockSource(uint32_t Source)
03651 {
03652   MODIFY_REG(RCC->DCKCFGR, (Source & 0x0000FFFFU), (Source >> 16U));
03653 }
03654 
03655 /**
03656   * @brief  Configure DFSDM Kernel clock source
03657   * @rmtoll DCKCFGR         CKDFSDM1SEL        LL_RCC_SetDFSDMClockSource
03658   * @param  Source This parameter can be one of the following values:
03659   *         @arg @ref LL_RCC_DFSDM1_CLKSOURCE_PCLK2
03660   *         @arg @ref LL_RCC_DFSDM1_CLKSOURCE_SYSCLK
03661   *         @arg @ref LL_RCC_DFSDM2_CLKSOURCE_PCLK2 (*)
03662   *         @arg @ref LL_RCC_DFSDM2_CLKSOURCE_SYSCLK (*)
03663   *
03664   *         (*) value not defined in all devices.
03665   * @retval None
03666   */
03667 __STATIC_INLINE void LL_RCC_SetDFSDMClockSource(uint32_t Source)
03668 {
03669   MODIFY_REG(RCC->DCKCFGR, RCC_DCKCFGR_CKDFSDM1SEL, Source);
03670 }
03671 #endif /* DFSDM1_Channel0 */
03672 
03673 #if defined(SPDIFRX)
03674 /**
03675   * @brief  Configure SPDIFRX clock source
03676   * @rmtoll DCKCFGR2         SPDIFRXSEL      LL_RCC_SetSPDIFRXClockSource
03677   * @param  SPDIFRXxSource This parameter can be one of the following values:
03678   *         @arg @ref LL_RCC_SPDIFRX1_CLKSOURCE_PLL
03679   *         @arg @ref LL_RCC_SPDIFRX1_CLKSOURCE_PLLI2S
03680   *
03681   *         (*) value not defined in all devices.
03682   * @retval None
03683   */
03684 __STATIC_INLINE void LL_RCC_SetSPDIFRXClockSource(uint32_t SPDIFRXxSource)
03685 {
03686   MODIFY_REG(RCC->DCKCFGR2, RCC_DCKCFGR2_SPDIFRXSEL, SPDIFRXxSource);
03687 }
03688 #endif /* SPDIFRX */
03689 
03690 #if defined(FMPI2C1)
03691 /**
03692   * @brief  Get FMPI2C clock source
03693   * @rmtoll DCKCFGR2        FMPI2C1SEL       LL_RCC_GetFMPI2CClockSource
03694   * @param  FMPI2Cx This parameter can be one of the following values:
03695   *         @arg @ref LL_RCC_FMPI2C1_CLKSOURCE
03696   * @retval Returned value can be one of the following values:
03697   *         @arg @ref LL_RCC_FMPI2C1_CLKSOURCE_PCLK1
03698   *         @arg @ref LL_RCC_FMPI2C1_CLKSOURCE_SYSCLK
03699   *         @arg @ref LL_RCC_FMPI2C1_CLKSOURCE_HSI
03700  */
03701 __STATIC_INLINE uint32_t LL_RCC_GetFMPI2CClockSource(uint32_t FMPI2Cx)
03702 {
03703   return (uint32_t)(READ_BIT(RCC->DCKCFGR2, FMPI2Cx));
03704 }
03705 #endif /* FMPI2C1 */
03706 
03707 #if defined(LPTIM1)
03708 /**
03709   * @brief  Get LPTIMx clock source
03710   * @rmtoll DCKCFGR2        LPTIM1SEL     LL_RCC_GetLPTIMClockSource
03711   * @param  LPTIMx This parameter can be one of the following values:
03712   *         @arg @ref LL_RCC_LPTIM1_CLKSOURCE
03713   * @retval Returned value can be one of the following values:
03714   *         @arg @ref LL_RCC_LPTIM1_CLKSOURCE_PCLK1
03715   *         @arg @ref LL_RCC_LPTIM1_CLKSOURCE_HSI
03716   *         @arg @ref LL_RCC_LPTIM1_CLKSOURCE_LSI
03717   *         @arg @ref LL_RCC_LPTIM1_CLKSOURCE_LSE
03718   */
03719 __STATIC_INLINE uint32_t LL_RCC_GetLPTIMClockSource(uint32_t LPTIMx)
03720 {
03721   return (uint32_t)(READ_BIT(RCC->DCKCFGR2, RCC_DCKCFGR2_LPTIM1SEL));
03722 }
03723 #endif /* LPTIM1 */
03724 
03725 #if defined(SAI1)
03726 /**
03727   * @brief  Get SAIx clock source
03728   * @rmtoll DCKCFGR         SAI1SEL       LL_RCC_GetSAIClockSource\n
03729   *         DCKCFGR         SAI2SEL       LL_RCC_GetSAIClockSource\n
03730   *         DCKCFGR         SAI1ASRC      LL_RCC_GetSAIClockSource\n
03731   *         DCKCFGR         SAI1BSRC      LL_RCC_GetSAIClockSource
03732   * @param  SAIx This parameter can be one of the following values:
03733   *         @arg @ref LL_RCC_SAI1_CLKSOURCE (*)
03734   *         @arg @ref LL_RCC_SAI2_CLKSOURCE (*)
03735   *         @arg @ref LL_RCC_SAI1_A_CLKSOURCE (*)
03736   *         @arg @ref LL_RCC_SAI1_B_CLKSOURCE (*)
03737   *
03738   *         (*) value not defined in all devices.
03739   * @retval Returned value can be one of the following values:
03740   *         @arg @ref LL_RCC_SAI1_CLKSOURCE_PLLSAI (*)
03741   *         @arg @ref LL_RCC_SAI1_CLKSOURCE_PLLI2S (*)
03742   *         @arg @ref LL_RCC_SAI1_CLKSOURCE_PLL (*)
03743   *         @arg @ref LL_RCC_SAI1_CLKSOURCE_PIN (*)
03744   *         @arg @ref LL_RCC_SAI2_CLKSOURCE_PLLSAI (*)
03745   *         @arg @ref LL_RCC_SAI2_CLKSOURCE_PLLI2S (*)
03746   *         @arg @ref LL_RCC_SAI2_CLKSOURCE_PLL  (*)
03747   *         @arg @ref LL_RCC_SAI2_CLKSOURCE_PLLSRC (*)
03748   *         @arg @ref LL_RCC_SAI1_A_CLKSOURCE_PLLSAI (*)
03749   *         @arg @ref LL_RCC_SAI1_A_CLKSOURCE_PLLI2S (*)
03750   *         @arg @ref LL_RCC_SAI1_A_CLKSOURCE_PIN (*)
03751   *         @arg @ref LL_RCC_SAI1_A_CLKSOURCE_PLL (*)
03752   *         @arg @ref LL_RCC_SAI1_A_CLKSOURCE_PLLSRC (*)
03753   *         @arg @ref LL_RCC_SAI1_B_CLKSOURCE_PLLSAI (*)
03754   *         @arg @ref LL_RCC_SAI1_B_CLKSOURCE_PLLI2S (*)
03755   *         @arg @ref LL_RCC_SAI1_B_CLKSOURCE_PIN (*)
03756   *         @arg @ref LL_RCC_SAI1_B_CLKSOURCE_PLL  (*)
03757   *         @arg @ref LL_RCC_SAI1_B_CLKSOURCE_PLLSRC (*)
03758   *
03759   *         (*) value not defined in all devices.
03760   */
03761 __STATIC_INLINE uint32_t LL_RCC_GetSAIClockSource(uint32_t SAIx)
03762 {
03763   return (uint32_t)(READ_BIT(RCC->DCKCFGR, SAIx) >> 16U | SAIx);
03764 }
03765 #endif /* SAI1 */
03766 
03767 #if defined(RCC_DCKCFGR_SDIOSEL) || defined(RCC_DCKCFGR2_SDIOSEL)
03768 /**
03769   * @brief  Get SDIOx clock source
03770   * @rmtoll DCKCFGR        SDIOSEL      LL_RCC_GetSDIOClockSource\n
03771   *         DCKCFGR2       SDIOSEL      LL_RCC_GetSDIOClockSource
03772   * @param  SDIOx This parameter can be one of the following values:
03773   *         @arg @ref LL_RCC_SDIO_CLKSOURCE
03774   * @retval Returned value can be one of the following values:
03775   *         @arg @ref LL_RCC_SDIO_CLKSOURCE_PLL48CLK
03776   *         @arg @ref LL_RCC_SDIO_CLKSOURCE_SYSCLK
03777   */
03778 __STATIC_INLINE uint32_t LL_RCC_GetSDIOClockSource(uint32_t SDIOx)
03779 {
03780 #if defined(RCC_DCKCFGR_SDIOSEL)
03781   return (uint32_t)(READ_BIT(RCC->DCKCFGR, SDIOx));
03782 #else
03783   return (uint32_t)(READ_BIT(RCC->DCKCFGR2, SDIOx));
03784 #endif /* RCC_DCKCFGR_SDIOSEL */
03785 }
03786 #endif /* RCC_DCKCFGR_SDIOSEL || RCC_DCKCFGR2_SDIOSEL */
03787 
03788 #if defined(RCC_DCKCFGR_CK48MSEL) || defined(RCC_DCKCFGR2_CK48MSEL)
03789 /**
03790   * @brief  Get 48Mhz domain clock source
03791   * @rmtoll DCKCFGR         CK48MSEL      LL_RCC_GetCK48MClockSource\n
03792   *         DCKCFGR2        CK48MSEL      LL_RCC_GetCK48MClockSource
03793   * @param  CK48Mx This parameter can be one of the following values:
03794   *         @arg @ref LL_RCC_CK48M_CLKSOURCE
03795   * @retval Returned value can be one of the following values:
03796   *         @arg @ref LL_RCC_CK48M_CLKSOURCE_PLL
03797   *         @arg @ref LL_RCC_CK48M_CLKSOURCE_PLLSAI (*)
03798   *         @arg @ref LL_RCC_CK48M_CLKSOURCE_PLLI2S (*)
03799   *
03800   *         (*) value not defined in all devices.
03801   */
03802 __STATIC_INLINE uint32_t LL_RCC_GetCK48MClockSource(uint32_t CK48Mx)
03803 {
03804 #if defined(RCC_DCKCFGR_CK48MSEL)
03805   return (uint32_t)(READ_BIT(RCC->DCKCFGR, CK48Mx));
03806 #else
03807   return (uint32_t)(READ_BIT(RCC->DCKCFGR2, CK48Mx));
03808 #endif /* RCC_DCKCFGR_CK48MSEL */
03809 }
03810 
03811 #if defined(RNG)
03812 /**
03813   * @brief  Get RNGx clock source
03814   * @rmtoll DCKCFGR         CK48MSEL      LL_RCC_GetRNGClockSource\n
03815   *         DCKCFGR2        CK48MSEL      LL_RCC_GetRNGClockSource
03816   * @param  RNGx This parameter can be one of the following values:
03817   *         @arg @ref LL_RCC_RNG_CLKSOURCE
03818   * @retval Returned value can be one of the following values:
03819   *         @arg @ref LL_RCC_RNG_CLKSOURCE_PLL
03820   *         @arg @ref LL_RCC_RNG_CLKSOURCE_PLLSAI (*)
03821   *         @arg @ref LL_RCC_RNG_CLKSOURCE_PLLI2S (*)
03822   *
03823   *         (*) value not defined in all devices.
03824   */
03825 __STATIC_INLINE uint32_t LL_RCC_GetRNGClockSource(uint32_t RNGx)
03826 {
03827 #if defined(RCC_DCKCFGR_CK48MSEL)
03828   return (uint32_t)(READ_BIT(RCC->DCKCFGR, RNGx));
03829 #else
03830   return (uint32_t)(READ_BIT(RCC->DCKCFGR2, RNGx));
03831 #endif /* RCC_DCKCFGR_CK48MSEL */
03832 }
03833 #endif /* RNG */
03834 
03835 #if defined(USB_OTG_FS) || defined(USB_OTG_HS)
03836 /**
03837   * @brief  Get USBx clock source
03838   * @rmtoll DCKCFGR         CK48MSEL      LL_RCC_GetUSBClockSource\n
03839   *         DCKCFGR2        CK48MSEL      LL_RCC_GetUSBClockSource
03840   * @param  USBx This parameter can be one of the following values:
03841   *         @arg @ref LL_RCC_USB_CLKSOURCE
03842   * @retval Returned value can be one of the following values:
03843   *         @arg @ref LL_RCC_USB_CLKSOURCE_PLL
03844   *         @arg @ref LL_RCC_USB_CLKSOURCE_PLLSAI (*)
03845   *         @arg @ref LL_RCC_USB_CLKSOURCE_PLLI2S (*)
03846   *
03847   *         (*) value not defined in all devices.
03848   */
03849 __STATIC_INLINE uint32_t LL_RCC_GetUSBClockSource(uint32_t USBx)
03850 {
03851 #if defined(RCC_DCKCFGR_CK48MSEL)
03852   return (uint32_t)(READ_BIT(RCC->DCKCFGR, USBx));
03853 #else
03854   return (uint32_t)(READ_BIT(RCC->DCKCFGR2, USBx));
03855 #endif /* RCC_DCKCFGR_CK48MSEL */
03856 }
03857 #endif /* USB_OTG_FS || USB_OTG_HS */
03858 #endif /* RCC_DCKCFGR_CK48MSEL || RCC_DCKCFGR2_CK48MSEL */
03859 
03860 #if defined(CEC)
03861 /**
03862   * @brief  Get CEC Clock Source
03863   * @rmtoll DCKCFGR2         CECSEL        LL_RCC_GetCECClockSource
03864   * @param  CECx This parameter can be one of the following values:
03865   *         @arg @ref LL_RCC_CEC_CLKSOURCE
03866   * @retval Returned value can be one of the following values:
03867   *         @arg @ref LL_RCC_CEC_CLKSOURCE_HSI_DIV488
03868   *         @arg @ref LL_RCC_CEC_CLKSOURCE_LSE
03869   */
03870 __STATIC_INLINE uint32_t LL_RCC_GetCECClockSource(uint32_t CECx)
03871 {
03872   return (uint32_t)(READ_BIT(RCC->DCKCFGR2, CECx));
03873 }
03874 #endif /* CEC */
03875 
03876 /**
03877   * @brief  Get I2S Clock Source
03878   * @rmtoll CFGR         I2SSRC        LL_RCC_GetI2SClockSource\n
03879   *         DCKCFGR      I2SSRC        LL_RCC_GetI2SClockSource\n
03880   *         DCKCFGR      I2S1SRC       LL_RCC_GetI2SClockSource\n
03881   *         DCKCFGR      I2S2SRC       LL_RCC_GetI2SClockSource
03882   * @param  I2Sx This parameter can be one of the following values:
03883   *         @arg @ref LL_RCC_I2S1_CLKSOURCE
03884   *         @arg @ref LL_RCC_I2S2_CLKSOURCE (*)
03885   * @retval Returned value can be one of the following values:
03886   *         @arg @ref LL_RCC_I2S1_CLKSOURCE_PLLI2S (*)
03887   *         @arg @ref LL_RCC_I2S1_CLKSOURCE_PIN
03888   *         @arg @ref LL_RCC_I2S1_CLKSOURCE_PLL (*)
03889   *         @arg @ref LL_RCC_I2S1_CLKSOURCE_PLLSRC (*)
03890   *         @arg @ref LL_RCC_I2S2_CLKSOURCE_PLLI2S (*)
03891   *         @arg @ref LL_RCC_I2S2_CLKSOURCE_PIN (*)
03892   *         @arg @ref LL_RCC_I2S2_CLKSOURCE_PLL (*)
03893   *         @arg @ref LL_RCC_I2S2_CLKSOURCE_PLLSRC (*)
03894   *
03895   *         (*) value not defined in all devices.
03896   */
03897 __STATIC_INLINE uint32_t LL_RCC_GetI2SClockSource(uint32_t I2Sx)
03898 {
03899 #if defined(RCC_CFGR_I2SSRC)
03900   return (uint32_t)(READ_BIT(RCC->CFGR, I2Sx));
03901 #else
03902   return (uint32_t)(READ_BIT(RCC->DCKCFGR, I2Sx) >> 16U | I2Sx);
03903 #endif /* RCC_CFGR_I2SSRC */
03904 }
03905 
03906 #if defined(DFSDM1_Channel0)
03907 /**
03908   * @brief  Get DFSDM Audio Clock Source
03909   * @rmtoll DCKCFGR          CKDFSDM1ASEL        LL_RCC_GetDFSDMAudioClockSource\n
03910   *         DCKCFGR          CKDFSDM2ASEL        LL_RCC_GetDFSDMAudioClockSource
03911   * @param  DFSDMx This parameter can be one of the following values:
03912   *         @arg @ref LL_RCC_DFSDM1_AUDIO_CLKSOURCE
03913   *         @arg @ref LL_RCC_DFSDM2_AUDIO_CLKSOURCE (*)
03914   * @retval Returned value can be one of the following values:
03915   *         @arg @ref LL_RCC_DFSDM1_AUDIO_CLKSOURCE_I2S1
03916   *         @arg @ref LL_RCC_DFSDM1_AUDIO_CLKSOURCE_I2S2
03917   *         @arg @ref LL_RCC_DFSDM2_AUDIO_CLKSOURCE_I2S1 (*)
03918   *         @arg @ref LL_RCC_DFSDM2_AUDIO_CLKSOURCE_I2S2 (*)
03919   *
03920   *         (*) value not defined in all devices.
03921   */
03922 __STATIC_INLINE uint32_t LL_RCC_GetDFSDMAudioClockSource(uint32_t DFSDMx)
03923 {
03924   return (uint32_t)(READ_BIT(RCC->DCKCFGR, DFSDMx) << 16U | DFSDMx);
03925 }
03926 
03927 /**
03928   * @brief  Get DFSDM Audio Clock Source
03929   * @rmtoll DCKCFGR         CKDFSDM1SEL        LL_RCC_GetDFSDMClockSource
03930   * @param  DFSDMx This parameter can be one of the following values:
03931   *         @arg @ref LL_RCC_DFSDM1_CLKSOURCE
03932   *         @arg @ref LL_RCC_DFSDM2_CLKSOURCE (*)
03933   * @retval Returned value can be one of the following values:
03934   *         @arg @ref LL_RCC_DFSDM1_CLKSOURCE_PCLK2
03935   *         @arg @ref LL_RCC_DFSDM1_CLKSOURCE_SYSCLK
03936   *         @arg @ref LL_RCC_DFSDM2_CLKSOURCE_PCLK2 (*)
03937   *         @arg @ref LL_RCC_DFSDM2_CLKSOURCE_SYSCLK (*)
03938   *
03939   *         (*) value not defined in all devices.
03940   */
03941 __STATIC_INLINE uint32_t LL_RCC_GetDFSDMClockSource(uint32_t DFSDMx)
03942 {
03943   return (uint32_t)(READ_BIT(RCC->DCKCFGR, DFSDMx));
03944 }
03945 #endif /* DFSDM1_Channel0 */
03946 
03947 #if defined(SPDIFRX)
03948 /**
03949   * @brief  Get SPDIFRX clock source
03950   * @rmtoll DCKCFGR2         SPDIFRXSEL      LL_RCC_GetSPDIFRXClockSource
03951   * @param  SPDIFRXx This parameter can be one of the following values:
03952   *         @arg @ref LL_RCC_SPDIFRX1_CLKSOURCE
03953   * @retval Returned value can be one of the following values:
03954   *         @arg @ref LL_RCC_SPDIFRX1_CLKSOURCE_PLL
03955   *         @arg @ref LL_RCC_SPDIFRX1_CLKSOURCE_PLLI2S
03956   *
03957   *         (*) value not defined in all devices.
03958   */
03959 __STATIC_INLINE uint32_t LL_RCC_GetSPDIFRXClockSource(uint32_t SPDIFRXx)
03960 {
03961   return (uint32_t)(READ_BIT(RCC->DCKCFGR2, SPDIFRXx));
03962 }
03963 #endif /* SPDIFRX */
03964 
03965 #if defined(DSI)
03966 /**
03967   * @brief  Get DSI Clock Source
03968   * @rmtoll DCKCFGR         DSISEL        LL_RCC_GetDSIClockSource
03969   * @param  DSIx This parameter can be one of the following values:
03970   *         @arg @ref LL_RCC_DSI_CLKSOURCE
03971   * @retval Returned value can be one of the following values:
03972   *         @arg @ref LL_RCC_DSI_CLKSOURCE_PHY
03973   *         @arg @ref LL_RCC_DSI_CLKSOURCE_PLL
03974   */
03975 __STATIC_INLINE uint32_t LL_RCC_GetDSIClockSource(uint32_t DSIx)
03976 {
03977   return (uint32_t)(READ_BIT(RCC->DCKCFGR, DSIx));
03978 }
03979 #endif /* DSI */
03980 
03981 /**
03982   * @}
03983   */
03984 
03985 /** @defgroup RCC_LL_EF_RTC RTC
03986   * @{
03987   */
03988 
03989 /**
03990   * @brief  Set RTC Clock Source
03991   * @note Once the RTC clock source has been selected, it cannot be changed anymore unless
03992   *       the Backup domain is reset, or unless a failure is detected on LSE (LSECSSD is
03993   *       set). The BDRST bit can be used to reset them.
03994   * @rmtoll BDCR         RTCSEL        LL_RCC_SetRTCClockSource
03995   * @param  Source This parameter can be one of the following values:
03996   *         @arg @ref LL_RCC_RTC_CLKSOURCE_NONE
03997   *         @arg @ref LL_RCC_RTC_CLKSOURCE_LSE
03998   *         @arg @ref LL_RCC_RTC_CLKSOURCE_LSI
03999   *         @arg @ref LL_RCC_RTC_CLKSOURCE_HSE
04000   * @retval None
04001   */
04002 __STATIC_INLINE void LL_RCC_SetRTCClockSource(uint32_t Source)
04003 {
04004   MODIFY_REG(RCC->BDCR, RCC_BDCR_RTCSEL, Source);
04005 }
04006 
04007 /**
04008   * @brief  Get RTC Clock Source
04009   * @rmtoll BDCR         RTCSEL        LL_RCC_GetRTCClockSource
04010   * @retval Returned value can be one of the following values:
04011   *         @arg @ref LL_RCC_RTC_CLKSOURCE_NONE
04012   *         @arg @ref LL_RCC_RTC_CLKSOURCE_LSE
04013   *         @arg @ref LL_RCC_RTC_CLKSOURCE_LSI
04014   *         @arg @ref LL_RCC_RTC_CLKSOURCE_HSE
04015   */
04016 __STATIC_INLINE uint32_t LL_RCC_GetRTCClockSource(void)
04017 {
04018   return (uint32_t)(READ_BIT(RCC->BDCR, RCC_BDCR_RTCSEL));
04019 }
04020 
04021 /**
04022   * @brief  Enable RTC
04023   * @rmtoll BDCR         RTCEN         LL_RCC_EnableRTC
04024   * @retval None
04025   */
04026 __STATIC_INLINE void LL_RCC_EnableRTC(void)
04027 {
04028   SET_BIT(RCC->BDCR, RCC_BDCR_RTCEN);
04029 }
04030 
04031 /**
04032   * @brief  Disable RTC
04033   * @rmtoll BDCR         RTCEN         LL_RCC_DisableRTC
04034   * @retval None
04035   */
04036 __STATIC_INLINE void LL_RCC_DisableRTC(void)
04037 {
04038   CLEAR_BIT(RCC->BDCR, RCC_BDCR_RTCEN);
04039 }
04040 
04041 /**
04042   * @brief  Check if RTC has been enabled or not
04043   * @rmtoll BDCR         RTCEN         LL_RCC_IsEnabledRTC
04044   * @retval State of bit (1 or 0).
04045   */
04046 __STATIC_INLINE uint32_t LL_RCC_IsEnabledRTC(void)
04047 {
04048   return (READ_BIT(RCC->BDCR, RCC_BDCR_RTCEN) == (RCC_BDCR_RTCEN));
04049 }
04050 
04051 /**
04052   * @brief  Force the Backup domain reset
04053   * @rmtoll BDCR         BDRST         LL_RCC_ForceBackupDomainReset
04054   * @retval None
04055   */
04056 __STATIC_INLINE void LL_RCC_ForceBackupDomainReset(void)
04057 {
04058   SET_BIT(RCC->BDCR, RCC_BDCR_BDRST);
04059 }
04060 
04061 /**
04062   * @brief  Release the Backup domain reset
04063   * @rmtoll BDCR         BDRST         LL_RCC_ReleaseBackupDomainReset
04064   * @retval None
04065   */
04066 __STATIC_INLINE void LL_RCC_ReleaseBackupDomainReset(void)
04067 {
04068   CLEAR_BIT(RCC->BDCR, RCC_BDCR_BDRST);
04069 }
04070 
04071 /**
04072   * @brief  Set HSE Prescalers for RTC Clock
04073   * @rmtoll CFGR         RTCPRE        LL_RCC_SetRTC_HSEPrescaler
04074   * @param  Prescaler This parameter can be one of the following values:
04075   *         @arg @ref LL_RCC_RTC_NOCLOCK
04076   *         @arg @ref LL_RCC_RTC_HSE_DIV_2
04077   *         @arg @ref LL_RCC_RTC_HSE_DIV_3
04078   *         @arg @ref LL_RCC_RTC_HSE_DIV_4
04079   *         @arg @ref LL_RCC_RTC_HSE_DIV_5
04080   *         @arg @ref LL_RCC_RTC_HSE_DIV_6
04081   *         @arg @ref LL_RCC_RTC_HSE_DIV_7
04082   *         @arg @ref LL_RCC_RTC_HSE_DIV_8
04083   *         @arg @ref LL_RCC_RTC_HSE_DIV_9
04084   *         @arg @ref LL_RCC_RTC_HSE_DIV_10
04085   *         @arg @ref LL_RCC_RTC_HSE_DIV_11
04086   *         @arg @ref LL_RCC_RTC_HSE_DIV_12
04087   *         @arg @ref LL_RCC_RTC_HSE_DIV_13
04088   *         @arg @ref LL_RCC_RTC_HSE_DIV_14
04089   *         @arg @ref LL_RCC_RTC_HSE_DIV_15
04090   *         @arg @ref LL_RCC_RTC_HSE_DIV_16
04091   *         @arg @ref LL_RCC_RTC_HSE_DIV_17
04092   *         @arg @ref LL_RCC_RTC_HSE_DIV_18
04093   *         @arg @ref LL_RCC_RTC_HSE_DIV_19
04094   *         @arg @ref LL_RCC_RTC_HSE_DIV_20
04095   *         @arg @ref LL_RCC_RTC_HSE_DIV_21
04096   *         @arg @ref LL_RCC_RTC_HSE_DIV_22
04097   *         @arg @ref LL_RCC_RTC_HSE_DIV_23
04098   *         @arg @ref LL_RCC_RTC_HSE_DIV_24
04099   *         @arg @ref LL_RCC_RTC_HSE_DIV_25
04100   *         @arg @ref LL_RCC_RTC_HSE_DIV_26
04101   *         @arg @ref LL_RCC_RTC_HSE_DIV_27
04102   *         @arg @ref LL_RCC_RTC_HSE_DIV_28
04103   *         @arg @ref LL_RCC_RTC_HSE_DIV_29
04104   *         @arg @ref LL_RCC_RTC_HSE_DIV_30
04105   *         @arg @ref LL_RCC_RTC_HSE_DIV_31
04106   * @retval None
04107   */
04108 __STATIC_INLINE void LL_RCC_SetRTC_HSEPrescaler(uint32_t Prescaler)
04109 {
04110   MODIFY_REG(RCC->CFGR, RCC_CFGR_RTCPRE, Prescaler);
04111 }
04112 
04113 /**
04114   * @brief  Get HSE Prescalers for RTC Clock
04115   * @rmtoll CFGR         RTCPRE        LL_RCC_GetRTC_HSEPrescaler
04116   * @retval Returned value can be one of the following values:
04117   *         @arg @ref LL_RCC_RTC_NOCLOCK
04118   *         @arg @ref LL_RCC_RTC_HSE_DIV_2
04119   *         @arg @ref LL_RCC_RTC_HSE_DIV_3
04120   *         @arg @ref LL_RCC_RTC_HSE_DIV_4
04121   *         @arg @ref LL_RCC_RTC_HSE_DIV_5
04122   *         @arg @ref LL_RCC_RTC_HSE_DIV_6
04123   *         @arg @ref LL_RCC_RTC_HSE_DIV_7
04124   *         @arg @ref LL_RCC_RTC_HSE_DIV_8
04125   *         @arg @ref LL_RCC_RTC_HSE_DIV_9
04126   *         @arg @ref LL_RCC_RTC_HSE_DIV_10
04127   *         @arg @ref LL_RCC_RTC_HSE_DIV_11
04128   *         @arg @ref LL_RCC_RTC_HSE_DIV_12
04129   *         @arg @ref LL_RCC_RTC_HSE_DIV_13
04130   *         @arg @ref LL_RCC_RTC_HSE_DIV_14
04131   *         @arg @ref LL_RCC_RTC_HSE_DIV_15
04132   *         @arg @ref LL_RCC_RTC_HSE_DIV_16
04133   *         @arg @ref LL_RCC_RTC_HSE_DIV_17
04134   *         @arg @ref LL_RCC_RTC_HSE_DIV_18
04135   *         @arg @ref LL_RCC_RTC_HSE_DIV_19
04136   *         @arg @ref LL_RCC_RTC_HSE_DIV_20
04137   *         @arg @ref LL_RCC_RTC_HSE_DIV_21
04138   *         @arg @ref LL_RCC_RTC_HSE_DIV_22
04139   *         @arg @ref LL_RCC_RTC_HSE_DIV_23
04140   *         @arg @ref LL_RCC_RTC_HSE_DIV_24
04141   *         @arg @ref LL_RCC_RTC_HSE_DIV_25
04142   *         @arg @ref LL_RCC_RTC_HSE_DIV_26
04143   *         @arg @ref LL_RCC_RTC_HSE_DIV_27
04144   *         @arg @ref LL_RCC_RTC_HSE_DIV_28
04145   *         @arg @ref LL_RCC_RTC_HSE_DIV_29
04146   *         @arg @ref LL_RCC_RTC_HSE_DIV_30
04147   *         @arg @ref LL_RCC_RTC_HSE_DIV_31
04148   */
04149 __STATIC_INLINE uint32_t LL_RCC_GetRTC_HSEPrescaler(void)
04150 {
04151   return (uint32_t)(READ_BIT(RCC->CFGR, RCC_CFGR_RTCPRE));
04152 }
04153 
04154 /**
04155   * @}
04156   */
04157 
04158 #if defined(RCC_DCKCFGR_TIMPRE)
04159 /** @defgroup RCC_LL_EF_TIM_CLOCK_PRESCALER TIM
04160   * @{
04161   */
04162 
04163 /**
04164   * @brief  Set Timers Clock Prescalers
04165   * @rmtoll DCKCFGR         TIMPRE        LL_RCC_SetTIMPrescaler
04166   * @param  Prescaler This parameter can be one of the following values:
04167   *         @arg @ref LL_RCC_TIM_PRESCALER_TWICE
04168   *         @arg @ref LL_RCC_TIM_PRESCALER_FOUR_TIMES
04169   * @retval None
04170   */
04171 __STATIC_INLINE void LL_RCC_SetTIMPrescaler(uint32_t Prescaler)
04172 {
04173   MODIFY_REG(RCC->DCKCFGR, RCC_DCKCFGR_TIMPRE, Prescaler);
04174 }
04175 
04176 /**
04177   * @brief  Get Timers Clock Prescalers
04178   * @rmtoll DCKCFGR         TIMPRE        LL_RCC_GetTIMPrescaler
04179   * @retval Returned value can be one of the following values:
04180   *         @arg @ref LL_RCC_TIM_PRESCALER_TWICE
04181   *         @arg @ref LL_RCC_TIM_PRESCALER_FOUR_TIMES
04182   */
04183 __STATIC_INLINE uint32_t LL_RCC_GetTIMPrescaler(void)
04184 {
04185   return (uint32_t)(READ_BIT(RCC->DCKCFGR, RCC_DCKCFGR_TIMPRE));
04186 }
04187 
04188 /**
04189   * @}
04190   */
04191 #endif /* RCC_DCKCFGR_TIMPRE */
04192 
04193 /** @defgroup RCC_LL_EF_PLL PLL
04194   * @{
04195   */
04196 
04197 /**
04198   * @brief  Enable PLL
04199   * @rmtoll CR           PLLON         LL_RCC_PLL_Enable
04200   * @retval None
04201   */
04202 __STATIC_INLINE void LL_RCC_PLL_Enable(void)
04203 {
04204   SET_BIT(RCC->CR, RCC_CR_PLLON);
04205 }
04206 
04207 /**
04208   * @brief  Disable PLL
04209   * @note Cannot be disabled if the PLL clock is used as the system clock
04210   * @rmtoll CR           PLLON         LL_RCC_PLL_Disable
04211   * @retval None
04212   */
04213 __STATIC_INLINE void LL_RCC_PLL_Disable(void)
04214 {
04215   CLEAR_BIT(RCC->CR, RCC_CR_PLLON);
04216 }
04217 
04218 /**
04219   * @brief  Check if PLL Ready
04220   * @rmtoll CR           PLLRDY        LL_RCC_PLL_IsReady
04221   * @retval State of bit (1 or 0).
04222   */
04223 __STATIC_INLINE uint32_t LL_RCC_PLL_IsReady(void)
04224 {
04225   return (READ_BIT(RCC->CR, RCC_CR_PLLRDY) == (RCC_CR_PLLRDY));
04226 }
04227 
04228 /**
04229   * @brief  Configure PLL used for SYSCLK Domain
04230   * @note PLL Source and PLLM Divider can be written only when PLL,
04231   *       PLLI2S and PLLSAI(*) are disabled
04232   * @note PLLN/PLLP can be written only when PLL is disabled
04233   * @rmtoll PLLCFGR      PLLSRC        LL_RCC_PLL_ConfigDomain_SYS\n
04234   *         PLLCFGR      PLLM          LL_RCC_PLL_ConfigDomain_SYS\n
04235   *         PLLCFGR      PLLN          LL_RCC_PLL_ConfigDomain_SYS\n
04236   *         PLLCFGR      PLLR          LL_RCC_PLL_ConfigDomain_SYS\n
04237   *         PLLCFGR      PLLP          LL_RCC_PLL_ConfigDomain_SYS
04238   * @param  Source This parameter can be one of the following values:
04239   *         @arg @ref LL_RCC_PLLSOURCE_HSI
04240   *         @arg @ref LL_RCC_PLLSOURCE_HSE
04241   * @param  PLLM This parameter can be one of the following values:
04242   *         @arg @ref LL_RCC_PLLM_DIV_2
04243   *         @arg @ref LL_RCC_PLLM_DIV_3
04244   *         @arg @ref LL_RCC_PLLM_DIV_4
04245   *         @arg @ref LL_RCC_PLLM_DIV_5
04246   *         @arg @ref LL_RCC_PLLM_DIV_6
04247   *         @arg @ref LL_RCC_PLLM_DIV_7
04248   *         @arg @ref LL_RCC_PLLM_DIV_8
04249   *         @arg @ref LL_RCC_PLLM_DIV_9
04250   *         @arg @ref LL_RCC_PLLM_DIV_10
04251   *         @arg @ref LL_RCC_PLLM_DIV_11
04252   *         @arg @ref LL_RCC_PLLM_DIV_12
04253   *         @arg @ref LL_RCC_PLLM_DIV_13
04254   *         @arg @ref LL_RCC_PLLM_DIV_14
04255   *         @arg @ref LL_RCC_PLLM_DIV_15
04256   *         @arg @ref LL_RCC_PLLM_DIV_16
04257   *         @arg @ref LL_RCC_PLLM_DIV_17
04258   *         @arg @ref LL_RCC_PLLM_DIV_18
04259   *         @arg @ref LL_RCC_PLLM_DIV_19
04260   *         @arg @ref LL_RCC_PLLM_DIV_20
04261   *         @arg @ref LL_RCC_PLLM_DIV_21
04262   *         @arg @ref LL_RCC_PLLM_DIV_22
04263   *         @arg @ref LL_RCC_PLLM_DIV_23
04264   *         @arg @ref LL_RCC_PLLM_DIV_24
04265   *         @arg @ref LL_RCC_PLLM_DIV_25
04266   *         @arg @ref LL_RCC_PLLM_DIV_26
04267   *         @arg @ref LL_RCC_PLLM_DIV_27
04268   *         @arg @ref LL_RCC_PLLM_DIV_28
04269   *         @arg @ref LL_RCC_PLLM_DIV_29
04270   *         @arg @ref LL_RCC_PLLM_DIV_30
04271   *         @arg @ref LL_RCC_PLLM_DIV_31
04272   *         @arg @ref LL_RCC_PLLM_DIV_32
04273   *         @arg @ref LL_RCC_PLLM_DIV_33
04274   *         @arg @ref LL_RCC_PLLM_DIV_34
04275   *         @arg @ref LL_RCC_PLLM_DIV_35
04276   *         @arg @ref LL_RCC_PLLM_DIV_36
04277   *         @arg @ref LL_RCC_PLLM_DIV_37
04278   *         @arg @ref LL_RCC_PLLM_DIV_38
04279   *         @arg @ref LL_RCC_PLLM_DIV_39
04280   *         @arg @ref LL_RCC_PLLM_DIV_40
04281   *         @arg @ref LL_RCC_PLLM_DIV_41
04282   *         @arg @ref LL_RCC_PLLM_DIV_42
04283   *         @arg @ref LL_RCC_PLLM_DIV_43
04284   *         @arg @ref LL_RCC_PLLM_DIV_44
04285   *         @arg @ref LL_RCC_PLLM_DIV_45
04286   *         @arg @ref LL_RCC_PLLM_DIV_46
04287   *         @arg @ref LL_RCC_PLLM_DIV_47
04288   *         @arg @ref LL_RCC_PLLM_DIV_48
04289   *         @arg @ref LL_RCC_PLLM_DIV_49
04290   *         @arg @ref LL_RCC_PLLM_DIV_50
04291   *         @arg @ref LL_RCC_PLLM_DIV_51
04292   *         @arg @ref LL_RCC_PLLM_DIV_52
04293   *         @arg @ref LL_RCC_PLLM_DIV_53
04294   *         @arg @ref LL_RCC_PLLM_DIV_54
04295   *         @arg @ref LL_RCC_PLLM_DIV_55
04296   *         @arg @ref LL_RCC_PLLM_DIV_56
04297   *         @arg @ref LL_RCC_PLLM_DIV_57
04298   *         @arg @ref LL_RCC_PLLM_DIV_58
04299   *         @arg @ref LL_RCC_PLLM_DIV_59
04300   *         @arg @ref LL_RCC_PLLM_DIV_60
04301   *         @arg @ref LL_RCC_PLLM_DIV_61
04302   *         @arg @ref LL_RCC_PLLM_DIV_62
04303   *         @arg @ref LL_RCC_PLLM_DIV_63
04304   * @param  PLLN Between 50/192(*) and 432
04305   *
04306   *         (*) value not defined in all devices.
04307   * @param  PLLP_R This parameter can be one of the following values:
04308   *         @arg @ref LL_RCC_PLLP_DIV_2
04309   *         @arg @ref LL_RCC_PLLP_DIV_4
04310   *         @arg @ref LL_RCC_PLLP_DIV_6
04311   *         @arg @ref LL_RCC_PLLP_DIV_8
04312   *         @arg @ref LL_RCC_PLLR_DIV_2 (*)
04313   *         @arg @ref LL_RCC_PLLR_DIV_3 (*)
04314   *         @arg @ref LL_RCC_PLLR_DIV_4 (*)
04315   *         @arg @ref LL_RCC_PLLR_DIV_5 (*)
04316   *         @arg @ref LL_RCC_PLLR_DIV_6 (*)
04317   *         @arg @ref LL_RCC_PLLR_DIV_7 (*)
04318   *
04319   *         (*) value not defined in all devices.
04320   * @retval None
04321   */
04322 __STATIC_INLINE void LL_RCC_PLL_ConfigDomain_SYS(uint32_t Source, uint32_t PLLM, uint32_t PLLN, uint32_t PLLP_R)
04323 {
04324   MODIFY_REG(RCC->PLLCFGR, RCC_PLLCFGR_PLLSRC | RCC_PLLCFGR_PLLM | RCC_PLLCFGR_PLLN,
04325              Source | PLLM | PLLN << RCC_PLLCFGR_PLLN_Pos);
04326   MODIFY_REG(RCC->PLLCFGR, RCC_PLLCFGR_PLLP, PLLP_R);
04327 #if defined(RCC_PLLR_SYSCLK_SUPPORT)
04328   MODIFY_REG(RCC->PLLCFGR, RCC_PLLCFGR_PLLR, PLLP_R);
04329 #endif /* RCC_PLLR_SYSCLK_SUPPORT */
04330 }
04331 
04332 /**
04333   * @brief  Configure PLL used for 48Mhz domain clock
04334   * @note PLL Source and PLLM Divider can be written only when PLL,
04335   *       PLLI2S and PLLSAI(*) are disabled
04336   * @note PLLN/PLLQ can be written only when PLL is disabled
04337   * @note This  can be selected for USB, RNG, SDIO
04338   * @rmtoll PLLCFGR      PLLSRC        LL_RCC_PLL_ConfigDomain_48M\n
04339   *         PLLCFGR      PLLM          LL_RCC_PLL_ConfigDomain_48M\n
04340   *         PLLCFGR      PLLN          LL_RCC_PLL_ConfigDomain_48M\n
04341   *         PLLCFGR      PLLQ          LL_RCC_PLL_ConfigDomain_48M
04342   * @param  Source This parameter can be one of the following values:
04343   *         @arg @ref LL_RCC_PLLSOURCE_HSI
04344   *         @arg @ref LL_RCC_PLLSOURCE_HSE
04345   * @param  PLLM This parameter can be one of the following values:
04346   *         @arg @ref LL_RCC_PLLM_DIV_2
04347   *         @arg @ref LL_RCC_PLLM_DIV_3
04348   *         @arg @ref LL_RCC_PLLM_DIV_4
04349   *         @arg @ref LL_RCC_PLLM_DIV_5
04350   *         @arg @ref LL_RCC_PLLM_DIV_6
04351   *         @arg @ref LL_RCC_PLLM_DIV_7
04352   *         @arg @ref LL_RCC_PLLM_DIV_8
04353   *         @arg @ref LL_RCC_PLLM_DIV_9
04354   *         @arg @ref LL_RCC_PLLM_DIV_10
04355   *         @arg @ref LL_RCC_PLLM_DIV_11
04356   *         @arg @ref LL_RCC_PLLM_DIV_12
04357   *         @arg @ref LL_RCC_PLLM_DIV_13
04358   *         @arg @ref LL_RCC_PLLM_DIV_14
04359   *         @arg @ref LL_RCC_PLLM_DIV_15
04360   *         @arg @ref LL_RCC_PLLM_DIV_16
04361   *         @arg @ref LL_RCC_PLLM_DIV_17
04362   *         @arg @ref LL_RCC_PLLM_DIV_18
04363   *         @arg @ref LL_RCC_PLLM_DIV_19
04364   *         @arg @ref LL_RCC_PLLM_DIV_20
04365   *         @arg @ref LL_RCC_PLLM_DIV_21
04366   *         @arg @ref LL_RCC_PLLM_DIV_22
04367   *         @arg @ref LL_RCC_PLLM_DIV_23
04368   *         @arg @ref LL_RCC_PLLM_DIV_24
04369   *         @arg @ref LL_RCC_PLLM_DIV_25
04370   *         @arg @ref LL_RCC_PLLM_DIV_26
04371   *         @arg @ref LL_RCC_PLLM_DIV_27
04372   *         @arg @ref LL_RCC_PLLM_DIV_28
04373   *         @arg @ref LL_RCC_PLLM_DIV_29
04374   *         @arg @ref LL_RCC_PLLM_DIV_30
04375   *         @arg @ref LL_RCC_PLLM_DIV_31
04376   *         @arg @ref LL_RCC_PLLM_DIV_32
04377   *         @arg @ref LL_RCC_PLLM_DIV_33
04378   *         @arg @ref LL_RCC_PLLM_DIV_34
04379   *         @arg @ref LL_RCC_PLLM_DIV_35
04380   *         @arg @ref LL_RCC_PLLM_DIV_36
04381   *         @arg @ref LL_RCC_PLLM_DIV_37
04382   *         @arg @ref LL_RCC_PLLM_DIV_38
04383   *         @arg @ref LL_RCC_PLLM_DIV_39
04384   *         @arg @ref LL_RCC_PLLM_DIV_40
04385   *         @arg @ref LL_RCC_PLLM_DIV_41
04386   *         @arg @ref LL_RCC_PLLM_DIV_42
04387   *         @arg @ref LL_RCC_PLLM_DIV_43
04388   *         @arg @ref LL_RCC_PLLM_DIV_44
04389   *         @arg @ref LL_RCC_PLLM_DIV_45
04390   *         @arg @ref LL_RCC_PLLM_DIV_46
04391   *         @arg @ref LL_RCC_PLLM_DIV_47
04392   *         @arg @ref LL_RCC_PLLM_DIV_48
04393   *         @arg @ref LL_RCC_PLLM_DIV_49
04394   *         @arg @ref LL_RCC_PLLM_DIV_50
04395   *         @arg @ref LL_RCC_PLLM_DIV_51
04396   *         @arg @ref LL_RCC_PLLM_DIV_52
04397   *         @arg @ref LL_RCC_PLLM_DIV_53
04398   *         @arg @ref LL_RCC_PLLM_DIV_54
04399   *         @arg @ref LL_RCC_PLLM_DIV_55
04400   *         @arg @ref LL_RCC_PLLM_DIV_56
04401   *         @arg @ref LL_RCC_PLLM_DIV_57
04402   *         @arg @ref LL_RCC_PLLM_DIV_58
04403   *         @arg @ref LL_RCC_PLLM_DIV_59
04404   *         @arg @ref LL_RCC_PLLM_DIV_60
04405   *         @arg @ref LL_RCC_PLLM_DIV_61
04406   *         @arg @ref LL_RCC_PLLM_DIV_62
04407   *         @arg @ref LL_RCC_PLLM_DIV_63
04408   * @param  PLLN Between 50/192(*) and 432
04409   *
04410   *         (*) value not defined in all devices.
04411   * @param  PLLQ This parameter can be one of the following values:
04412   *         @arg @ref LL_RCC_PLLQ_DIV_2
04413   *         @arg @ref LL_RCC_PLLQ_DIV_3
04414   *         @arg @ref LL_RCC_PLLQ_DIV_4
04415   *         @arg @ref LL_RCC_PLLQ_DIV_5
04416   *         @arg @ref LL_RCC_PLLQ_DIV_6
04417   *         @arg @ref LL_RCC_PLLQ_DIV_7
04418   *         @arg @ref LL_RCC_PLLQ_DIV_8
04419   *         @arg @ref LL_RCC_PLLQ_DIV_9
04420   *         @arg @ref LL_RCC_PLLQ_DIV_10
04421   *         @arg @ref LL_RCC_PLLQ_DIV_11
04422   *         @arg @ref LL_RCC_PLLQ_DIV_12
04423   *         @arg @ref LL_RCC_PLLQ_DIV_13
04424   *         @arg @ref LL_RCC_PLLQ_DIV_14
04425   *         @arg @ref LL_RCC_PLLQ_DIV_15
04426   * @retval None
04427   */
04428 __STATIC_INLINE void LL_RCC_PLL_ConfigDomain_48M(uint32_t Source, uint32_t PLLM, uint32_t PLLN, uint32_t PLLQ)
04429 {
04430   MODIFY_REG(RCC->PLLCFGR, RCC_PLLCFGR_PLLSRC | RCC_PLLCFGR_PLLM | RCC_PLLCFGR_PLLN | RCC_PLLCFGR_PLLQ,
04431              Source | PLLM | PLLN << RCC_PLLCFGR_PLLN_Pos | PLLQ);
04432 }
04433 
04434 #if defined(DSI)
04435 /**
04436   * @brief  Configure PLL used for DSI clock
04437   * @note PLL Source and PLLM Divider can be written only when PLL,
04438   *       PLLI2S and PLLSAI are disabled
04439   * @note PLLN/PLLR can be written only when PLL is disabled
04440   * @note This  can be selected for DSI
04441   * @rmtoll PLLCFGR      PLLSRC        LL_RCC_PLL_ConfigDomain_DSI\n
04442   *         PLLCFGR      PLLM          LL_RCC_PLL_ConfigDomain_DSI\n
04443   *         PLLCFGR      PLLN          LL_RCC_PLL_ConfigDomain_DSI\n
04444   *         PLLCFGR      PLLR          LL_RCC_PLL_ConfigDomain_DSI
04445   * @param  Source This parameter can be one of the following values:
04446   *         @arg @ref LL_RCC_PLLSOURCE_HSI
04447   *         @arg @ref LL_RCC_PLLSOURCE_HSE
04448   * @param  PLLM This parameter can be one of the following values:
04449   *         @arg @ref LL_RCC_PLLM_DIV_2
04450   *         @arg @ref LL_RCC_PLLM_DIV_3
04451   *         @arg @ref LL_RCC_PLLM_DIV_4
04452   *         @arg @ref LL_RCC_PLLM_DIV_5
04453   *         @arg @ref LL_RCC_PLLM_DIV_6
04454   *         @arg @ref LL_RCC_PLLM_DIV_7
04455   *         @arg @ref LL_RCC_PLLM_DIV_8
04456   *         @arg @ref LL_RCC_PLLM_DIV_9
04457   *         @arg @ref LL_RCC_PLLM_DIV_10
04458   *         @arg @ref LL_RCC_PLLM_DIV_11
04459   *         @arg @ref LL_RCC_PLLM_DIV_12
04460   *         @arg @ref LL_RCC_PLLM_DIV_13
04461   *         @arg @ref LL_RCC_PLLM_DIV_14
04462   *         @arg @ref LL_RCC_PLLM_DIV_15
04463   *         @arg @ref LL_RCC_PLLM_DIV_16
04464   *         @arg @ref LL_RCC_PLLM_DIV_17
04465   *         @arg @ref LL_RCC_PLLM_DIV_18
04466   *         @arg @ref LL_RCC_PLLM_DIV_19
04467   *         @arg @ref LL_RCC_PLLM_DIV_20
04468   *         @arg @ref LL_RCC_PLLM_DIV_21
04469   *         @arg @ref LL_RCC_PLLM_DIV_22
04470   *         @arg @ref LL_RCC_PLLM_DIV_23
04471   *         @arg @ref LL_RCC_PLLM_DIV_24
04472   *         @arg @ref LL_RCC_PLLM_DIV_25
04473   *         @arg @ref LL_RCC_PLLM_DIV_26
04474   *         @arg @ref LL_RCC_PLLM_DIV_27
04475   *         @arg @ref LL_RCC_PLLM_DIV_28
04476   *         @arg @ref LL_RCC_PLLM_DIV_29
04477   *         @arg @ref LL_RCC_PLLM_DIV_30
04478   *         @arg @ref LL_RCC_PLLM_DIV_31
04479   *         @arg @ref LL_RCC_PLLM_DIV_32
04480   *         @arg @ref LL_RCC_PLLM_DIV_33
04481   *         @arg @ref LL_RCC_PLLM_DIV_34
04482   *         @arg @ref LL_RCC_PLLM_DIV_35
04483   *         @arg @ref LL_RCC_PLLM_DIV_36
04484   *         @arg @ref LL_RCC_PLLM_DIV_37
04485   *         @arg @ref LL_RCC_PLLM_DIV_38
04486   *         @arg @ref LL_RCC_PLLM_DIV_39
04487   *         @arg @ref LL_RCC_PLLM_DIV_40
04488   *         @arg @ref LL_RCC_PLLM_DIV_41
04489   *         @arg @ref LL_RCC_PLLM_DIV_42
04490   *         @arg @ref LL_RCC_PLLM_DIV_43
04491   *         @arg @ref LL_RCC_PLLM_DIV_44
04492   *         @arg @ref LL_RCC_PLLM_DIV_45
04493   *         @arg @ref LL_RCC_PLLM_DIV_46
04494   *         @arg @ref LL_RCC_PLLM_DIV_47
04495   *         @arg @ref LL_RCC_PLLM_DIV_48
04496   *         @arg @ref LL_RCC_PLLM_DIV_49
04497   *         @arg @ref LL_RCC_PLLM_DIV_50
04498   *         @arg @ref LL_RCC_PLLM_DIV_51
04499   *         @arg @ref LL_RCC_PLLM_DIV_52
04500   *         @arg @ref LL_RCC_PLLM_DIV_53
04501   *         @arg @ref LL_RCC_PLLM_DIV_54
04502   *         @arg @ref LL_RCC_PLLM_DIV_55
04503   *         @arg @ref LL_RCC_PLLM_DIV_56
04504   *         @arg @ref LL_RCC_PLLM_DIV_57
04505   *         @arg @ref LL_RCC_PLLM_DIV_58
04506   *         @arg @ref LL_RCC_PLLM_DIV_59
04507   *         @arg @ref LL_RCC_PLLM_DIV_60
04508   *         @arg @ref LL_RCC_PLLM_DIV_61
04509   *         @arg @ref LL_RCC_PLLM_DIV_62
04510   *         @arg @ref LL_RCC_PLLM_DIV_63
04511   * @param  PLLN Between 50 and 432
04512   * @param  PLLR This parameter can be one of the following values:
04513   *         @arg @ref LL_RCC_PLLR_DIV_2
04514   *         @arg @ref LL_RCC_PLLR_DIV_3
04515   *         @arg @ref LL_RCC_PLLR_DIV_4
04516   *         @arg @ref LL_RCC_PLLR_DIV_5
04517   *         @arg @ref LL_RCC_PLLR_DIV_6
04518   *         @arg @ref LL_RCC_PLLR_DIV_7
04519   * @retval None
04520   */
04521 __STATIC_INLINE void LL_RCC_PLL_ConfigDomain_DSI(uint32_t Source, uint32_t PLLM, uint32_t PLLN, uint32_t PLLR)
04522 {
04523   MODIFY_REG(RCC->PLLCFGR, RCC_PLLCFGR_PLLSRC | RCC_PLLCFGR_PLLM | RCC_PLLCFGR_PLLN | RCC_PLLCFGR_PLLR,
04524              Source | PLLM | PLLN << RCC_PLLCFGR_PLLN_Pos | PLLR);
04525 }
04526 #endif /* DSI */
04527 
04528 #if defined(RCC_PLLR_I2S_CLKSOURCE_SUPPORT)
04529 /**
04530   * @brief  Configure PLL used for I2S clock
04531   * @note PLL Source and PLLM Divider can be written only when PLL,
04532   *       PLLI2S and PLLSAI are disabled
04533   * @note PLLN/PLLR can be written only when PLL is disabled
04534   * @note This  can be selected for I2S
04535   * @rmtoll PLLCFGR      PLLSRC        LL_RCC_PLL_ConfigDomain_I2S\n
04536   *         PLLCFGR      PLLM          LL_RCC_PLL_ConfigDomain_I2S\n
04537   *         PLLCFGR      PLLN          LL_RCC_PLL_ConfigDomain_I2S\n
04538   *         PLLCFGR      PLLR          LL_RCC_PLL_ConfigDomain_I2S
04539   * @param  Source This parameter can be one of the following values:
04540   *         @arg @ref LL_RCC_PLLSOURCE_HSI
04541   *         @arg @ref LL_RCC_PLLSOURCE_HSE
04542   * @param  PLLM This parameter can be one of the following values:
04543   *         @arg @ref LL_RCC_PLLM_DIV_2
04544   *         @arg @ref LL_RCC_PLLM_DIV_3
04545   *         @arg @ref LL_RCC_PLLM_DIV_4
04546   *         @arg @ref LL_RCC_PLLM_DIV_5
04547   *         @arg @ref LL_RCC_PLLM_DIV_6
04548   *         @arg @ref LL_RCC_PLLM_DIV_7
04549   *         @arg @ref LL_RCC_PLLM_DIV_8
04550   *         @arg @ref LL_RCC_PLLM_DIV_9
04551   *         @arg @ref LL_RCC_PLLM_DIV_10
04552   *         @arg @ref LL_RCC_PLLM_DIV_11
04553   *         @arg @ref LL_RCC_PLLM_DIV_12
04554   *         @arg @ref LL_RCC_PLLM_DIV_13
04555   *         @arg @ref LL_RCC_PLLM_DIV_14
04556   *         @arg @ref LL_RCC_PLLM_DIV_15
04557   *         @arg @ref LL_RCC_PLLM_DIV_16
04558   *         @arg @ref LL_RCC_PLLM_DIV_17
04559   *         @arg @ref LL_RCC_PLLM_DIV_18
04560   *         @arg @ref LL_RCC_PLLM_DIV_19
04561   *         @arg @ref LL_RCC_PLLM_DIV_20
04562   *         @arg @ref LL_RCC_PLLM_DIV_21
04563   *         @arg @ref LL_RCC_PLLM_DIV_22
04564   *         @arg @ref LL_RCC_PLLM_DIV_23
04565   *         @arg @ref LL_RCC_PLLM_DIV_24
04566   *         @arg @ref LL_RCC_PLLM_DIV_25
04567   *         @arg @ref LL_RCC_PLLM_DIV_26
04568   *         @arg @ref LL_RCC_PLLM_DIV_27
04569   *         @arg @ref LL_RCC_PLLM_DIV_28
04570   *         @arg @ref LL_RCC_PLLM_DIV_29
04571   *         @arg @ref LL_RCC_PLLM_DIV_30
04572   *         @arg @ref LL_RCC_PLLM_DIV_31
04573   *         @arg @ref LL_RCC_PLLM_DIV_32
04574   *         @arg @ref LL_RCC_PLLM_DIV_33
04575   *         @arg @ref LL_RCC_PLLM_DIV_34
04576   *         @arg @ref LL_RCC_PLLM_DIV_35
04577   *         @arg @ref LL_RCC_PLLM_DIV_36
04578   *         @arg @ref LL_RCC_PLLM_DIV_37
04579   *         @arg @ref LL_RCC_PLLM_DIV_38
04580   *         @arg @ref LL_RCC_PLLM_DIV_39
04581   *         @arg @ref LL_RCC_PLLM_DIV_40
04582   *         @arg @ref LL_RCC_PLLM_DIV_41
04583   *         @arg @ref LL_RCC_PLLM_DIV_42
04584   *         @arg @ref LL_RCC_PLLM_DIV_43
04585   *         @arg @ref LL_RCC_PLLM_DIV_44
04586   *         @arg @ref LL_RCC_PLLM_DIV_45
04587   *         @arg @ref LL_RCC_PLLM_DIV_46
04588   *         @arg @ref LL_RCC_PLLM_DIV_47
04589   *         @arg @ref LL_RCC_PLLM_DIV_48
04590   *         @arg @ref LL_RCC_PLLM_DIV_49
04591   *         @arg @ref LL_RCC_PLLM_DIV_50
04592   *         @arg @ref LL_RCC_PLLM_DIV_51
04593   *         @arg @ref LL_RCC_PLLM_DIV_52
04594   *         @arg @ref LL_RCC_PLLM_DIV_53
04595   *         @arg @ref LL_RCC_PLLM_DIV_54
04596   *         @arg @ref LL_RCC_PLLM_DIV_55
04597   *         @arg @ref LL_RCC_PLLM_DIV_56
04598   *         @arg @ref LL_RCC_PLLM_DIV_57
04599   *         @arg @ref LL_RCC_PLLM_DIV_58
04600   *         @arg @ref LL_RCC_PLLM_DIV_59
04601   *         @arg @ref LL_RCC_PLLM_DIV_60
04602   *         @arg @ref LL_RCC_PLLM_DIV_61
04603   *         @arg @ref LL_RCC_PLLM_DIV_62
04604   *         @arg @ref LL_RCC_PLLM_DIV_63
04605   * @param  PLLN Between 50 and 432
04606   * @param  PLLR This parameter can be one of the following values:
04607   *         @arg @ref LL_RCC_PLLR_DIV_2
04608   *         @arg @ref LL_RCC_PLLR_DIV_3
04609   *         @arg @ref LL_RCC_PLLR_DIV_4
04610   *         @arg @ref LL_RCC_PLLR_DIV_5
04611   *         @arg @ref LL_RCC_PLLR_DIV_6
04612   *         @arg @ref LL_RCC_PLLR_DIV_7
04613   * @retval None
04614   */
04615 __STATIC_INLINE void LL_RCC_PLL_ConfigDomain_I2S(uint32_t Source, uint32_t PLLM, uint32_t PLLN, uint32_t PLLR)
04616 {
04617   MODIFY_REG(RCC->PLLCFGR, RCC_PLLCFGR_PLLSRC | RCC_PLLCFGR_PLLM | RCC_PLLCFGR_PLLN | RCC_PLLCFGR_PLLR,
04618              Source | PLLM | PLLN << RCC_PLLCFGR_PLLN_Pos | PLLR);
04619 }
04620 #endif /* RCC_PLLR_I2S_CLKSOURCE_SUPPORT */
04621 
04622 #if defined(SPDIFRX)
04623 /**
04624   * @brief  Configure PLL used for SPDIFRX clock
04625   * @note PLL Source and PLLM Divider can be written only when PLL,
04626   *       PLLI2S and PLLSAI are disabled
04627   * @note PLLN/PLLR can be written only when PLL is disabled
04628   * @note This  can be selected for SPDIFRX
04629   * @rmtoll PLLCFGR      PLLSRC        LL_RCC_PLL_ConfigDomain_SPDIFRX\n
04630   *         PLLCFGR      PLLM          LL_RCC_PLL_ConfigDomain_SPDIFRX\n
04631   *         PLLCFGR      PLLN          LL_RCC_PLL_ConfigDomain_SPDIFRX\n
04632   *         PLLCFGR      PLLR          LL_RCC_PLL_ConfigDomain_SPDIFRX
04633   * @param  Source This parameter can be one of the following values:
04634   *         @arg @ref LL_RCC_PLLSOURCE_HSI
04635   *         @arg @ref LL_RCC_PLLSOURCE_HSE
04636   * @param  PLLM This parameter can be one of the following values:
04637   *         @arg @ref LL_RCC_PLLM_DIV_2
04638   *         @arg @ref LL_RCC_PLLM_DIV_3
04639   *         @arg @ref LL_RCC_PLLM_DIV_4
04640   *         @arg @ref LL_RCC_PLLM_DIV_5
04641   *         @arg @ref LL_RCC_PLLM_DIV_6
04642   *         @arg @ref LL_RCC_PLLM_DIV_7
04643   *         @arg @ref LL_RCC_PLLM_DIV_8
04644   *         @arg @ref LL_RCC_PLLM_DIV_9
04645   *         @arg @ref LL_RCC_PLLM_DIV_10
04646   *         @arg @ref LL_RCC_PLLM_DIV_11
04647   *         @arg @ref LL_RCC_PLLM_DIV_12
04648   *         @arg @ref LL_RCC_PLLM_DIV_13
04649   *         @arg @ref LL_RCC_PLLM_DIV_14
04650   *         @arg @ref LL_RCC_PLLM_DIV_15
04651   *         @arg @ref LL_RCC_PLLM_DIV_16
04652   *         @arg @ref LL_RCC_PLLM_DIV_17
04653   *         @arg @ref LL_RCC_PLLM_DIV_18
04654   *         @arg @ref LL_RCC_PLLM_DIV_19
04655   *         @arg @ref LL_RCC_PLLM_DIV_20
04656   *         @arg @ref LL_RCC_PLLM_DIV_21
04657   *         @arg @ref LL_RCC_PLLM_DIV_22
04658   *         @arg @ref LL_RCC_PLLM_DIV_23
04659   *         @arg @ref LL_RCC_PLLM_DIV_24
04660   *         @arg @ref LL_RCC_PLLM_DIV_25
04661   *         @arg @ref LL_RCC_PLLM_DIV_26
04662   *         @arg @ref LL_RCC_PLLM_DIV_27
04663   *         @arg @ref LL_RCC_PLLM_DIV_28
04664   *         @arg @ref LL_RCC_PLLM_DIV_29
04665   *         @arg @ref LL_RCC_PLLM_DIV_30
04666   *         @arg @ref LL_RCC_PLLM_DIV_31
04667   *         @arg @ref LL_RCC_PLLM_DIV_32
04668   *         @arg @ref LL_RCC_PLLM_DIV_33
04669   *         @arg @ref LL_RCC_PLLM_DIV_34
04670   *         @arg @ref LL_RCC_PLLM_DIV_35
04671   *         @arg @ref LL_RCC_PLLM_DIV_36
04672   *         @arg @ref LL_RCC_PLLM_DIV_37
04673   *         @arg @ref LL_RCC_PLLM_DIV_38
04674   *         @arg @ref LL_RCC_PLLM_DIV_39
04675   *         @arg @ref LL_RCC_PLLM_DIV_40
04676   *         @arg @ref LL_RCC_PLLM_DIV_41
04677   *         @arg @ref LL_RCC_PLLM_DIV_42
04678   *         @arg @ref LL_RCC_PLLM_DIV_43
04679   *         @arg @ref LL_RCC_PLLM_DIV_44
04680   *         @arg @ref LL_RCC_PLLM_DIV_45
04681   *         @arg @ref LL_RCC_PLLM_DIV_46
04682   *         @arg @ref LL_RCC_PLLM_DIV_47
04683   *         @arg @ref LL_RCC_PLLM_DIV_48
04684   *         @arg @ref LL_RCC_PLLM_DIV_49
04685   *         @arg @ref LL_RCC_PLLM_DIV_50
04686   *         @arg @ref LL_RCC_PLLM_DIV_51
04687   *         @arg @ref LL_RCC_PLLM_DIV_52
04688   *         @arg @ref LL_RCC_PLLM_DIV_53
04689   *         @arg @ref LL_RCC_PLLM_DIV_54
04690   *         @arg @ref LL_RCC_PLLM_DIV_55
04691   *         @arg @ref LL_RCC_PLLM_DIV_56
04692   *         @arg @ref LL_RCC_PLLM_DIV_57
04693   *         @arg @ref LL_RCC_PLLM_DIV_58
04694   *         @arg @ref LL_RCC_PLLM_DIV_59
04695   *         @arg @ref LL_RCC_PLLM_DIV_60
04696   *         @arg @ref LL_RCC_PLLM_DIV_61
04697   *         @arg @ref LL_RCC_PLLM_DIV_62
04698   *         @arg @ref LL_RCC_PLLM_DIV_63
04699   * @param  PLLN Between 50 and 432
04700   * @param  PLLR This parameter can be one of the following values:
04701   *         @arg @ref LL_RCC_PLLR_DIV_2
04702   *         @arg @ref LL_RCC_PLLR_DIV_3
04703   *         @arg @ref LL_RCC_PLLR_DIV_4
04704   *         @arg @ref LL_RCC_PLLR_DIV_5
04705   *         @arg @ref LL_RCC_PLLR_DIV_6
04706   *         @arg @ref LL_RCC_PLLR_DIV_7
04707   * @retval None
04708   */
04709 __STATIC_INLINE void LL_RCC_PLL_ConfigDomain_SPDIFRX(uint32_t Source, uint32_t PLLM, uint32_t PLLN, uint32_t PLLR)
04710 {
04711   MODIFY_REG(RCC->PLLCFGR, RCC_PLLCFGR_PLLSRC | RCC_PLLCFGR_PLLM | RCC_PLLCFGR_PLLN | RCC_PLLCFGR_PLLR,
04712              Source | PLLM | PLLN << RCC_PLLCFGR_PLLN_Pos | PLLR);
04713 }
04714 #endif /* SPDIFRX */
04715 
04716 #if defined(RCC_PLLCFGR_PLLR)
04717 #if defined(SAI1)
04718 /**
04719   * @brief  Configure PLL used for SAI clock
04720   * @note PLL Source and PLLM Divider can be written only when PLL,
04721   *       PLLI2S and PLLSAI are disabled
04722   * @note PLLN/PLLR can be written only when PLL is disabled
04723   * @note This  can be selected for SAI
04724   * @rmtoll PLLCFGR      PLLSRC        LL_RCC_PLL_ConfigDomain_SAI\n
04725   *         PLLCFGR      PLLM          LL_RCC_PLL_ConfigDomain_SAI\n
04726   *         PLLCFGR      PLLN          LL_RCC_PLL_ConfigDomain_SAI\n
04727   *         PLLCFGR      PLLR          LL_RCC_PLL_ConfigDomain_SAI\n
04728   *         DCKCFGR      PLLDIVR       LL_RCC_PLL_ConfigDomain_SAI
04729   * @param  Source This parameter can be one of the following values:
04730   *         @arg @ref LL_RCC_PLLSOURCE_HSI
04731   *         @arg @ref LL_RCC_PLLSOURCE_HSE
04732   * @param  PLLM This parameter can be one of the following values:
04733   *         @arg @ref LL_RCC_PLLM_DIV_2
04734   *         @arg @ref LL_RCC_PLLM_DIV_3
04735   *         @arg @ref LL_RCC_PLLM_DIV_4
04736   *         @arg @ref LL_RCC_PLLM_DIV_5
04737   *         @arg @ref LL_RCC_PLLM_DIV_6
04738   *         @arg @ref LL_RCC_PLLM_DIV_7
04739   *         @arg @ref LL_RCC_PLLM_DIV_8
04740   *         @arg @ref LL_RCC_PLLM_DIV_9
04741   *         @arg @ref LL_RCC_PLLM_DIV_10
04742   *         @arg @ref LL_RCC_PLLM_DIV_11
04743   *         @arg @ref LL_RCC_PLLM_DIV_12
04744   *         @arg @ref LL_RCC_PLLM_DIV_13
04745   *         @arg @ref LL_RCC_PLLM_DIV_14
04746   *         @arg @ref LL_RCC_PLLM_DIV_15
04747   *         @arg @ref LL_RCC_PLLM_DIV_16
04748   *         @arg @ref LL_RCC_PLLM_DIV_17
04749   *         @arg @ref LL_RCC_PLLM_DIV_18
04750   *         @arg @ref LL_RCC_PLLM_DIV_19
04751   *         @arg @ref LL_RCC_PLLM_DIV_20
04752   *         @arg @ref LL_RCC_PLLM_DIV_21
04753   *         @arg @ref LL_RCC_PLLM_DIV_22
04754   *         @arg @ref LL_RCC_PLLM_DIV_23
04755   *         @arg @ref LL_RCC_PLLM_DIV_24
04756   *         @arg @ref LL_RCC_PLLM_DIV_25
04757   *         @arg @ref LL_RCC_PLLM_DIV_26
04758   *         @arg @ref LL_RCC_PLLM_DIV_27
04759   *         @arg @ref LL_RCC_PLLM_DIV_28
04760   *         @arg @ref LL_RCC_PLLM_DIV_29
04761   *         @arg @ref LL_RCC_PLLM_DIV_30
04762   *         @arg @ref LL_RCC_PLLM_DIV_31
04763   *         @arg @ref LL_RCC_PLLM_DIV_32
04764   *         @arg @ref LL_RCC_PLLM_DIV_33
04765   *         @arg @ref LL_RCC_PLLM_DIV_34
04766   *         @arg @ref LL_RCC_PLLM_DIV_35
04767   *         @arg @ref LL_RCC_PLLM_DIV_36
04768   *         @arg @ref LL_RCC_PLLM_DIV_37
04769   *         @arg @ref LL_RCC_PLLM_DIV_38
04770   *         @arg @ref LL_RCC_PLLM_DIV_39
04771   *         @arg @ref LL_RCC_PLLM_DIV_40
04772   *         @arg @ref LL_RCC_PLLM_DIV_41
04773   *         @arg @ref LL_RCC_PLLM_DIV_42
04774   *         @arg @ref LL_RCC_PLLM_DIV_43
04775   *         @arg @ref LL_RCC_PLLM_DIV_44
04776   *         @arg @ref LL_RCC_PLLM_DIV_45
04777   *         @arg @ref LL_RCC_PLLM_DIV_46
04778   *         @arg @ref LL_RCC_PLLM_DIV_47
04779   *         @arg @ref LL_RCC_PLLM_DIV_48
04780   *         @arg @ref LL_RCC_PLLM_DIV_49
04781   *         @arg @ref LL_RCC_PLLM_DIV_50
04782   *         @arg @ref LL_RCC_PLLM_DIV_51
04783   *         @arg @ref LL_RCC_PLLM_DIV_52
04784   *         @arg @ref LL_RCC_PLLM_DIV_53
04785   *         @arg @ref LL_RCC_PLLM_DIV_54
04786   *         @arg @ref LL_RCC_PLLM_DIV_55
04787   *         @arg @ref LL_RCC_PLLM_DIV_56
04788   *         @arg @ref LL_RCC_PLLM_DIV_57
04789   *         @arg @ref LL_RCC_PLLM_DIV_58
04790   *         @arg @ref LL_RCC_PLLM_DIV_59
04791   *         @arg @ref LL_RCC_PLLM_DIV_60
04792   *         @arg @ref LL_RCC_PLLM_DIV_61
04793   *         @arg @ref LL_RCC_PLLM_DIV_62
04794   *         @arg @ref LL_RCC_PLLM_DIV_63
04795   * @param  PLLN Between 50 and 432
04796   * @param  PLLR This parameter can be one of the following values:
04797   *         @arg @ref LL_RCC_PLLR_DIV_2
04798   *         @arg @ref LL_RCC_PLLR_DIV_3
04799   *         @arg @ref LL_RCC_PLLR_DIV_4
04800   *         @arg @ref LL_RCC_PLLR_DIV_5
04801   *         @arg @ref LL_RCC_PLLR_DIV_6
04802   *         @arg @ref LL_RCC_PLLR_DIV_7
04803   * @param  PLLDIVR This parameter can be one of the following values:
04804   *         @arg @ref LL_RCC_PLLDIVR_DIV_1 (*)
04805   *         @arg @ref LL_RCC_PLLDIVR_DIV_2 (*)
04806   *         @arg @ref LL_RCC_PLLDIVR_DIV_3 (*)
04807   *         @arg @ref LL_RCC_PLLDIVR_DIV_4 (*)
04808   *         @arg @ref LL_RCC_PLLDIVR_DIV_5 (*)
04809   *         @arg @ref LL_RCC_PLLDIVR_DIV_6 (*)
04810   *         @arg @ref LL_RCC_PLLDIVR_DIV_7 (*)
04811   *         @arg @ref LL_RCC_PLLDIVR_DIV_8 (*)
04812   *         @arg @ref LL_RCC_PLLDIVR_DIV_9 (*)
04813   *         @arg @ref LL_RCC_PLLDIVR_DIV_10 (*)
04814   *         @arg @ref LL_RCC_PLLDIVR_DIV_11 (*)
04815   *         @arg @ref LL_RCC_PLLDIVR_DIV_12 (*)
04816   *         @arg @ref LL_RCC_PLLDIVR_DIV_13 (*)
04817   *         @arg @ref LL_RCC_PLLDIVR_DIV_14 (*)
04818   *         @arg @ref LL_RCC_PLLDIVR_DIV_15 (*)
04819   *         @arg @ref LL_RCC_PLLDIVR_DIV_16 (*)
04820   *         @arg @ref LL_RCC_PLLDIVR_DIV_17 (*)
04821   *         @arg @ref LL_RCC_PLLDIVR_DIV_18 (*)
04822   *         @arg @ref LL_RCC_PLLDIVR_DIV_19 (*)
04823   *         @arg @ref LL_RCC_PLLDIVR_DIV_20 (*)
04824   *         @arg @ref LL_RCC_PLLDIVR_DIV_21 (*)
04825   *         @arg @ref LL_RCC_PLLDIVR_DIV_22 (*)
04826   *         @arg @ref LL_RCC_PLLDIVR_DIV_23 (*)
04827   *         @arg @ref LL_RCC_PLLDIVR_DIV_24 (*)
04828   *         @arg @ref LL_RCC_PLLDIVR_DIV_25 (*)
04829   *         @arg @ref LL_RCC_PLLDIVR_DIV_26 (*)
04830   *         @arg @ref LL_RCC_PLLDIVR_DIV_27 (*)
04831   *         @arg @ref LL_RCC_PLLDIVR_DIV_28 (*)
04832   *         @arg @ref LL_RCC_PLLDIVR_DIV_29 (*)
04833   *         @arg @ref LL_RCC_PLLDIVR_DIV_30 (*)
04834   *         @arg @ref LL_RCC_PLLDIVR_DIV_31 (*)
04835   *
04836   *         (*) value not defined in all devices.
04837   * @retval None
04838   */
04839 #if defined(RCC_DCKCFGR_PLLDIVR)
04840 __STATIC_INLINE void LL_RCC_PLL_ConfigDomain_SAI(uint32_t Source, uint32_t PLLM, uint32_t PLLN, uint32_t PLLR, uint32_t PLLDIVR)
04841 #else
04842 __STATIC_INLINE void LL_RCC_PLL_ConfigDomain_SAI(uint32_t Source, uint32_t PLLM, uint32_t PLLN, uint32_t PLLR)
04843 #endif /* RCC_DCKCFGR_PLLDIVR */
04844 {
04845   MODIFY_REG(RCC->PLLCFGR, RCC_PLLCFGR_PLLSRC | RCC_PLLCFGR_PLLM | RCC_PLLCFGR_PLLN | RCC_PLLCFGR_PLLR,
04846              Source | PLLM | PLLN << RCC_PLLCFGR_PLLN_Pos | PLLR);
04847 #if defined(RCC_DCKCFGR_PLLDIVR)
04848   MODIFY_REG(RCC->DCKCFGR, RCC_DCKCFGR_PLLDIVR, PLLDIVR);
04849 #endif /* RCC_DCKCFGR_PLLDIVR */
04850 }
04851 #endif /* SAI1 */
04852 #endif /* RCC_PLLCFGR_PLLR */
04853 
04854 /**
04855   * @brief  Configure PLL clock source
04856   * @rmtoll PLLCFGR      PLLSRC        LL_RCC_PLL_SetMainSource
04857   * @param PLLSource This parameter can be one of the following values:
04858   *         @arg @ref LL_RCC_PLLSOURCE_HSI
04859   *         @arg @ref LL_RCC_PLLSOURCE_HSE
04860   * @retval None
04861   */
04862 __STATIC_INLINE void LL_RCC_PLL_SetMainSource(uint32_t PLLSource)
04863 {
04864   MODIFY_REG(RCC->PLLCFGR, RCC_PLLCFGR_PLLSRC, PLLSource);
04865 }
04866 
04867 /**
04868   * @brief  Get the oscillator used as PLL clock source.
04869   * @rmtoll PLLCFGR      PLLSRC        LL_RCC_PLL_GetMainSource
04870   * @retval Returned value can be one of the following values:
04871   *         @arg @ref LL_RCC_PLLSOURCE_HSI
04872   *         @arg @ref LL_RCC_PLLSOURCE_HSE
04873   */
04874 __STATIC_INLINE uint32_t LL_RCC_PLL_GetMainSource(void)
04875 {
04876   return (uint32_t)(READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLSRC));
04877 }
04878 
04879 /**
04880   * @brief  Get Main PLL multiplication factor for VCO
04881   * @rmtoll PLLCFGR      PLLN          LL_RCC_PLL_GetN
04882   * @retval Between 50/192(*) and 432
04883   *
04884   *         (*) value not defined in all devices.
04885   */
04886 __STATIC_INLINE uint32_t LL_RCC_PLL_GetN(void)
04887 {
04888   return (uint32_t)(READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLN) >>  RCC_PLLCFGR_PLLN_Pos);
04889 }
04890 
04891 /**
04892   * @brief  Get Main PLL division factor for PLLP 
04893   * @rmtoll PLLCFGR      PLLP       LL_RCC_PLL_GetP
04894   * @retval Returned value can be one of the following values:
04895   *         @arg @ref LL_RCC_PLLP_DIV_2
04896   *         @arg @ref LL_RCC_PLLP_DIV_4
04897   *         @arg @ref LL_RCC_PLLP_DIV_6
04898   *         @arg @ref LL_RCC_PLLP_DIV_8
04899   */
04900 __STATIC_INLINE uint32_t LL_RCC_PLL_GetP(void)
04901 {
04902   return (uint32_t)(READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLP));
04903 }
04904 
04905 /**
04906   * @brief  Get Main PLL division factor for PLLQ
04907   * @note used for PLL48MCLK selected for USB, RNG, SDIO (48 MHz clock)
04908   * @rmtoll PLLCFGR      PLLQ          LL_RCC_PLL_GetQ
04909   * @retval Returned value can be one of the following values:
04910   *         @arg @ref LL_RCC_PLLQ_DIV_2
04911   *         @arg @ref LL_RCC_PLLQ_DIV_3
04912   *         @arg @ref LL_RCC_PLLQ_DIV_4
04913   *         @arg @ref LL_RCC_PLLQ_DIV_5
04914   *         @arg @ref LL_RCC_PLLQ_DIV_6
04915   *         @arg @ref LL_RCC_PLLQ_DIV_7
04916   *         @arg @ref LL_RCC_PLLQ_DIV_8
04917   *         @arg @ref LL_RCC_PLLQ_DIV_9
04918   *         @arg @ref LL_RCC_PLLQ_DIV_10
04919   *         @arg @ref LL_RCC_PLLQ_DIV_11
04920   *         @arg @ref LL_RCC_PLLQ_DIV_12
04921   *         @arg @ref LL_RCC_PLLQ_DIV_13
04922   *         @arg @ref LL_RCC_PLLQ_DIV_14
04923   *         @arg @ref LL_RCC_PLLQ_DIV_15
04924   */
04925 __STATIC_INLINE uint32_t LL_RCC_PLL_GetQ(void)
04926 {
04927   return (uint32_t)(READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLQ));
04928 }
04929 
04930 #if defined(RCC_PLLCFGR_PLLR)
04931 /**
04932   * @brief  Get Main PLL division factor for PLLR
04933   * @note used for PLLCLK (system clock)
04934   * @rmtoll PLLCFGR      PLLR          LL_RCC_PLL_GetR
04935   * @retval Returned value can be one of the following values:
04936   *         @arg @ref LL_RCC_PLLR_DIV_2
04937   *         @arg @ref LL_RCC_PLLR_DIV_3
04938   *         @arg @ref LL_RCC_PLLR_DIV_4
04939   *         @arg @ref LL_RCC_PLLR_DIV_5
04940   *         @arg @ref LL_RCC_PLLR_DIV_6
04941   *         @arg @ref LL_RCC_PLLR_DIV_7
04942   */
04943 __STATIC_INLINE uint32_t LL_RCC_PLL_GetR(void)
04944 {
04945   return (uint32_t)(READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLR));
04946 }
04947 #endif /* RCC_PLLCFGR_PLLR */
04948 
04949 #if defined(RCC_DCKCFGR_PLLDIVR)
04950 /**
04951   * @brief  Get Main PLL division factor for PLLDIVR
04952   * @note used for PLLSAICLK (SAI1 and SAI2 clock)
04953   * @rmtoll DCKCFGR      PLLDIVR          LL_RCC_PLL_GetDIVR
04954   * @retval Returned value can be one of the following values:
04955   *         @arg @ref LL_RCC_PLLDIVR_DIV_1
04956   *         @arg @ref LL_RCC_PLLDIVR_DIV_2
04957   *         @arg @ref LL_RCC_PLLDIVR_DIV_3
04958   *         @arg @ref LL_RCC_PLLDIVR_DIV_4
04959   *         @arg @ref LL_RCC_PLLDIVR_DIV_5
04960   *         @arg @ref LL_RCC_PLLDIVR_DIV_6
04961   *         @arg @ref LL_RCC_PLLDIVR_DIV_7
04962   *         @arg @ref LL_RCC_PLLDIVR_DIV_8
04963   *         @arg @ref LL_RCC_PLLDIVR_DIV_9
04964   *         @arg @ref LL_RCC_PLLDIVR_DIV_10
04965   *         @arg @ref LL_RCC_PLLDIVR_DIV_11
04966   *         @arg @ref LL_RCC_PLLDIVR_DIV_12
04967   *         @arg @ref LL_RCC_PLLDIVR_DIV_13
04968   *         @arg @ref LL_RCC_PLLDIVR_DIV_14
04969   *         @arg @ref LL_RCC_PLLDIVR_DIV_15
04970   *         @arg @ref LL_RCC_PLLDIVR_DIV_16
04971   *         @arg @ref LL_RCC_PLLDIVR_DIV_17
04972   *         @arg @ref LL_RCC_PLLDIVR_DIV_18
04973   *         @arg @ref LL_RCC_PLLDIVR_DIV_19
04974   *         @arg @ref LL_RCC_PLLDIVR_DIV_20
04975   *         @arg @ref LL_RCC_PLLDIVR_DIV_21
04976   *         @arg @ref LL_RCC_PLLDIVR_DIV_22
04977   *         @arg @ref LL_RCC_PLLDIVR_DIV_23
04978   *         @arg @ref LL_RCC_PLLDIVR_DIV_24
04979   *         @arg @ref LL_RCC_PLLDIVR_DIV_25
04980   *         @arg @ref LL_RCC_PLLDIVR_DIV_26
04981   *         @arg @ref LL_RCC_PLLDIVR_DIV_27
04982   *         @arg @ref LL_RCC_PLLDIVR_DIV_28
04983   *         @arg @ref LL_RCC_PLLDIVR_DIV_29
04984   *         @arg @ref LL_RCC_PLLDIVR_DIV_30
04985   *         @arg @ref LL_RCC_PLLDIVR_DIV_31
04986   */
04987 __STATIC_INLINE uint32_t LL_RCC_PLL_GetDIVR(void)
04988 {
04989   return (uint32_t)(READ_BIT(RCC->DCKCFGR, RCC_DCKCFGR_PLLDIVR));
04990 }
04991 #endif /* RCC_DCKCFGR_PLLDIVR */
04992 
04993 /**
04994   * @brief  Get Division factor for the main PLL and other PLL
04995   * @rmtoll PLLCFGR      PLLM          LL_RCC_PLL_GetDivider
04996   * @retval Returned value can be one of the following values:
04997   *         @arg @ref LL_RCC_PLLM_DIV_2
04998   *         @arg @ref LL_RCC_PLLM_DIV_3
04999   *         @arg @ref LL_RCC_PLLM_DIV_4
05000   *         @arg @ref LL_RCC_PLLM_DIV_5
05001   *         @arg @ref LL_RCC_PLLM_DIV_6
05002   *         @arg @ref LL_RCC_PLLM_DIV_7
05003   *         @arg @ref LL_RCC_PLLM_DIV_8
05004   *         @arg @ref LL_RCC_PLLM_DIV_9
05005   *         @arg @ref LL_RCC_PLLM_DIV_10
05006   *         @arg @ref LL_RCC_PLLM_DIV_11
05007   *         @arg @ref LL_RCC_PLLM_DIV_12
05008   *         @arg @ref LL_RCC_PLLM_DIV_13
05009   *         @arg @ref LL_RCC_PLLM_DIV_14
05010   *         @arg @ref LL_RCC_PLLM_DIV_15
05011   *         @arg @ref LL_RCC_PLLM_DIV_16
05012   *         @arg @ref LL_RCC_PLLM_DIV_17
05013   *         @arg @ref LL_RCC_PLLM_DIV_18
05014   *         @arg @ref LL_RCC_PLLM_DIV_19
05015   *         @arg @ref LL_RCC_PLLM_DIV_20
05016   *         @arg @ref LL_RCC_PLLM_DIV_21
05017   *         @arg @ref LL_RCC_PLLM_DIV_22
05018   *         @arg @ref LL_RCC_PLLM_DIV_23
05019   *         @arg @ref LL_RCC_PLLM_DIV_24
05020   *         @arg @ref LL_RCC_PLLM_DIV_25
05021   *         @arg @ref LL_RCC_PLLM_DIV_26
05022   *         @arg @ref LL_RCC_PLLM_DIV_27
05023   *         @arg @ref LL_RCC_PLLM_DIV_28
05024   *         @arg @ref LL_RCC_PLLM_DIV_29
05025   *         @arg @ref LL_RCC_PLLM_DIV_30
05026   *         @arg @ref LL_RCC_PLLM_DIV_31
05027   *         @arg @ref LL_RCC_PLLM_DIV_32
05028   *         @arg @ref LL_RCC_PLLM_DIV_33
05029   *         @arg @ref LL_RCC_PLLM_DIV_34
05030   *         @arg @ref LL_RCC_PLLM_DIV_35
05031   *         @arg @ref LL_RCC_PLLM_DIV_36
05032   *         @arg @ref LL_RCC_PLLM_DIV_37
05033   *         @arg @ref LL_RCC_PLLM_DIV_38
05034   *         @arg @ref LL_RCC_PLLM_DIV_39
05035   *         @arg @ref LL_RCC_PLLM_DIV_40
05036   *         @arg @ref LL_RCC_PLLM_DIV_41
05037   *         @arg @ref LL_RCC_PLLM_DIV_42
05038   *         @arg @ref LL_RCC_PLLM_DIV_43
05039   *         @arg @ref LL_RCC_PLLM_DIV_44
05040   *         @arg @ref LL_RCC_PLLM_DIV_45
05041   *         @arg @ref LL_RCC_PLLM_DIV_46
05042   *         @arg @ref LL_RCC_PLLM_DIV_47
05043   *         @arg @ref LL_RCC_PLLM_DIV_48
05044   *         @arg @ref LL_RCC_PLLM_DIV_49
05045   *         @arg @ref LL_RCC_PLLM_DIV_50
05046   *         @arg @ref LL_RCC_PLLM_DIV_51
05047   *         @arg @ref LL_RCC_PLLM_DIV_52
05048   *         @arg @ref LL_RCC_PLLM_DIV_53
05049   *         @arg @ref LL_RCC_PLLM_DIV_54
05050   *         @arg @ref LL_RCC_PLLM_DIV_55
05051   *         @arg @ref LL_RCC_PLLM_DIV_56
05052   *         @arg @ref LL_RCC_PLLM_DIV_57
05053   *         @arg @ref LL_RCC_PLLM_DIV_58
05054   *         @arg @ref LL_RCC_PLLM_DIV_59
05055   *         @arg @ref LL_RCC_PLLM_DIV_60
05056   *         @arg @ref LL_RCC_PLLM_DIV_61
05057   *         @arg @ref LL_RCC_PLLM_DIV_62
05058   *         @arg @ref LL_RCC_PLLM_DIV_63
05059   */
05060 __STATIC_INLINE uint32_t LL_RCC_PLL_GetDivider(void)
05061 {
05062   return (uint32_t)(READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLM));
05063 }
05064 
05065 /**
05066   * @brief  Configure Spread Spectrum used for PLL
05067   * @note These bits must be written before enabling PLL
05068   * @rmtoll SSCGR        MODPER        LL_RCC_PLL_ConfigSpreadSpectrum\n
05069   *         SSCGR        INCSTEP       LL_RCC_PLL_ConfigSpreadSpectrum\n
05070   *         SSCGR        SPREADSEL     LL_RCC_PLL_ConfigSpreadSpectrum
05071   * @param  Mod Between Min_Data=0 and Max_Data=8191
05072   * @param  Inc Between Min_Data=0 and Max_Data=32767
05073   * @param  Sel This parameter can be one of the following values:
05074   *         @arg @ref LL_RCC_SPREAD_SELECT_CENTER
05075   *         @arg @ref LL_RCC_SPREAD_SELECT_DOWN
05076   * @retval None
05077   */
05078 __STATIC_INLINE void LL_RCC_PLL_ConfigSpreadSpectrum(uint32_t Mod, uint32_t Inc, uint32_t Sel)
05079 {
05080   MODIFY_REG(RCC->SSCGR, RCC_SSCGR_MODPER | RCC_SSCGR_INCSTEP | RCC_SSCGR_SPREADSEL, Mod | (Inc << RCC_SSCGR_INCSTEP_Pos) | Sel);
05081 }
05082 
05083 /**
05084   * @brief  Get Spread Spectrum Modulation Period for PLL
05085   * @rmtoll SSCGR         MODPER        LL_RCC_PLL_GetPeriodModulation
05086   * @retval Between Min_Data=0 and Max_Data=8191
05087   */
05088 __STATIC_INLINE uint32_t LL_RCC_PLL_GetPeriodModulation(void)
05089 {
05090   return (uint32_t)(READ_BIT(RCC->SSCGR, RCC_SSCGR_MODPER));
05091 }
05092 
05093 /**
05094   * @brief  Get Spread Spectrum Incrementation Step for PLL
05095   * @note Must be written before enabling PLL
05096   * @rmtoll SSCGR         INCSTEP        LL_RCC_PLL_GetStepIncrementation
05097   * @retval Between Min_Data=0 and Max_Data=32767
05098   */
05099 __STATIC_INLINE uint32_t LL_RCC_PLL_GetStepIncrementation(void)
05100 {
05101   return (uint32_t)(READ_BIT(RCC->SSCGR, RCC_SSCGR_INCSTEP) >> RCC_SSCGR_INCSTEP_Pos);
05102 }
05103 
05104 /**
05105   * @brief  Get Spread Spectrum Selection for PLL
05106   * @note Must be written before enabling PLL
05107   * @rmtoll SSCGR         SPREADSEL        LL_RCC_PLL_GetSpreadSelection
05108   * @retval Returned value can be one of the following values:
05109   *         @arg @ref LL_RCC_SPREAD_SELECT_CENTER
05110   *         @arg @ref LL_RCC_SPREAD_SELECT_DOWN
05111   */
05112 __STATIC_INLINE uint32_t LL_RCC_PLL_GetSpreadSelection(void)
05113 {
05114   return (uint32_t)(READ_BIT(RCC->SSCGR, RCC_SSCGR_SPREADSEL));
05115 }
05116 
05117 /**
05118   * @brief  Enable Spread Spectrum for PLL.
05119   * @rmtoll SSCGR         SSCGEN         LL_RCC_PLL_SpreadSpectrum_Enable
05120   * @retval None
05121   */
05122 __STATIC_INLINE void LL_RCC_PLL_SpreadSpectrum_Enable(void)
05123 {
05124   SET_BIT(RCC->SSCGR, RCC_SSCGR_SSCGEN);
05125 }
05126 
05127 /**
05128   * @brief  Disable Spread Spectrum for PLL.
05129   * @rmtoll SSCGR         SSCGEN         LL_RCC_PLL_SpreadSpectrum_Disable
05130   * @retval None
05131   */
05132 __STATIC_INLINE void LL_RCC_PLL_SpreadSpectrum_Disable(void)
05133 {
05134   CLEAR_BIT(RCC->SSCGR, RCC_SSCGR_SSCGEN);
05135 }
05136 
05137 /**
05138   * @}
05139   */
05140 
05141 #if defined(RCC_PLLI2S_SUPPORT)
05142 /** @defgroup RCC_LL_EF_PLLI2S PLLI2S
05143   * @{
05144   */
05145 
05146 /**
05147   * @brief  Enable PLLI2S
05148   * @rmtoll CR           PLLI2SON     LL_RCC_PLLI2S_Enable
05149   * @retval None
05150   */
05151 __STATIC_INLINE void LL_RCC_PLLI2S_Enable(void)
05152 {
05153   SET_BIT(RCC->CR, RCC_CR_PLLI2SON);
05154 }
05155 
05156 /**
05157   * @brief  Disable PLLI2S
05158   * @rmtoll CR           PLLI2SON     LL_RCC_PLLI2S_Disable
05159   * @retval None
05160   */
05161 __STATIC_INLINE void LL_RCC_PLLI2S_Disable(void)
05162 {
05163   CLEAR_BIT(RCC->CR, RCC_CR_PLLI2SON);
05164 }
05165 
05166 /**
05167   * @brief  Check if PLLI2S Ready
05168   * @rmtoll CR           PLLI2SRDY    LL_RCC_PLLI2S_IsReady
05169   * @retval State of bit (1 or 0).
05170   */
05171 __STATIC_INLINE uint32_t LL_RCC_PLLI2S_IsReady(void)
05172 {
05173   return (READ_BIT(RCC->CR, RCC_CR_PLLI2SRDY) == (RCC_CR_PLLI2SRDY));
05174 }
05175 
05176 #if (defined(RCC_DCKCFGR_PLLI2SDIVQ) || defined(RCC_DCKCFGR_PLLI2SDIVR))
05177 /**
05178   * @brief  Configure PLLI2S used for SAI domain clock
05179   * @note PLL Source and PLLM Divider can be written only when PLL,
05180   *       PLLI2S and PLLSAI(*) are disabled
05181   * @note PLLN/PLLQ/PLLR can be written only when PLLI2S is disabled
05182   * @note This can be selected for SAI
05183   * @rmtoll PLLCFGR      PLLSRC        LL_RCC_PLLI2S_ConfigDomain_SAI\n
05184   *         PLLI2SCFGR   PLLI2SSRC     LL_RCC_PLLI2S_ConfigDomain_SAI\n
05185   *         PLLCFGR      PLLM          LL_RCC_PLLI2S_ConfigDomain_SAI\n
05186   *         PLLI2SCFGR   PLLI2SM       LL_RCC_PLLI2S_ConfigDomain_SAI\n
05187   *         PLLI2SCFGR   PLLI2SN       LL_RCC_PLLI2S_ConfigDomain_SAI\n
05188   *         PLLI2SCFGR   PLLI2SQ       LL_RCC_PLLI2S_ConfigDomain_SAI\n
05189   *         PLLI2SCFGR   PLLI2SR       LL_RCC_PLLI2S_ConfigDomain_SAI\n
05190   *         DCKCFGR      PLLI2SDIVQ    LL_RCC_PLLI2S_ConfigDomain_SAI\n
05191   *         DCKCFGR      PLLI2SDIVR    LL_RCC_PLLI2S_ConfigDomain_SAI
05192   * @param  Source This parameter can be one of the following values:
05193   *         @arg @ref LL_RCC_PLLSOURCE_HSI
05194   *         @arg @ref LL_RCC_PLLSOURCE_HSE
05195   *         @arg @ref LL_RCC_PLLI2SSOURCE_PIN (*)
05196   *
05197   *         (*) value not defined in all devices.
05198   * @param  PLLM This parameter can be one of the following values:
05199   *         @arg @ref LL_RCC_PLLI2SM_DIV_2
05200   *         @arg @ref LL_RCC_PLLI2SM_DIV_3
05201   *         @arg @ref LL_RCC_PLLI2SM_DIV_4
05202   *         @arg @ref LL_RCC_PLLI2SM_DIV_5
05203   *         @arg @ref LL_RCC_PLLI2SM_DIV_6
05204   *         @arg @ref LL_RCC_PLLI2SM_DIV_7
05205   *         @arg @ref LL_RCC_PLLI2SM_DIV_8
05206   *         @arg @ref LL_RCC_PLLI2SM_DIV_9
05207   *         @arg @ref LL_RCC_PLLI2SM_DIV_10
05208   *         @arg @ref LL_RCC_PLLI2SM_DIV_11
05209   *         @arg @ref LL_RCC_PLLI2SM_DIV_12
05210   *         @arg @ref LL_RCC_PLLI2SM_DIV_13
05211   *         @arg @ref LL_RCC_PLLI2SM_DIV_14
05212   *         @arg @ref LL_RCC_PLLI2SM_DIV_15
05213   *         @arg @ref LL_RCC_PLLI2SM_DIV_16
05214   *         @arg @ref LL_RCC_PLLI2SM_DIV_17
05215   *         @arg @ref LL_RCC_PLLI2SM_DIV_18
05216   *         @arg @ref LL_RCC_PLLI2SM_DIV_19
05217   *         @arg @ref LL_RCC_PLLI2SM_DIV_20
05218   *         @arg @ref LL_RCC_PLLI2SM_DIV_21
05219   *         @arg @ref LL_RCC_PLLI2SM_DIV_22
05220   *         @arg @ref LL_RCC_PLLI2SM_DIV_23
05221   *         @arg @ref LL_RCC_PLLI2SM_DIV_24
05222   *         @arg @ref LL_RCC_PLLI2SM_DIV_25
05223   *         @arg @ref LL_RCC_PLLI2SM_DIV_26
05224   *         @arg @ref LL_RCC_PLLI2SM_DIV_27
05225   *         @arg @ref LL_RCC_PLLI2SM_DIV_28
05226   *         @arg @ref LL_RCC_PLLI2SM_DIV_29
05227   *         @arg @ref LL_RCC_PLLI2SM_DIV_30
05228   *         @arg @ref LL_RCC_PLLI2SM_DIV_31
05229   *         @arg @ref LL_RCC_PLLI2SM_DIV_32
05230   *         @arg @ref LL_RCC_PLLI2SM_DIV_33
05231   *         @arg @ref LL_RCC_PLLI2SM_DIV_34
05232   *         @arg @ref LL_RCC_PLLI2SM_DIV_35
05233   *         @arg @ref LL_RCC_PLLI2SM_DIV_36
05234   *         @arg @ref LL_RCC_PLLI2SM_DIV_37
05235   *         @arg @ref LL_RCC_PLLI2SM_DIV_38
05236   *         @arg @ref LL_RCC_PLLI2SM_DIV_39
05237   *         @arg @ref LL_RCC_PLLI2SM_DIV_40
05238   *         @arg @ref LL_RCC_PLLI2SM_DIV_41
05239   *         @arg @ref LL_RCC_PLLI2SM_DIV_42
05240   *         @arg @ref LL_RCC_PLLI2SM_DIV_43
05241   *         @arg @ref LL_RCC_PLLI2SM_DIV_44
05242   *         @arg @ref LL_RCC_PLLI2SM_DIV_45
05243   *         @arg @ref LL_RCC_PLLI2SM_DIV_46
05244   *         @arg @ref LL_RCC_PLLI2SM_DIV_47
05245   *         @arg @ref LL_RCC_PLLI2SM_DIV_48
05246   *         @arg @ref LL_RCC_PLLI2SM_DIV_49
05247   *         @arg @ref LL_RCC_PLLI2SM_DIV_50
05248   *         @arg @ref LL_RCC_PLLI2SM_DIV_51
05249   *         @arg @ref LL_RCC_PLLI2SM_DIV_52
05250   *         @arg @ref LL_RCC_PLLI2SM_DIV_53
05251   *         @arg @ref LL_RCC_PLLI2SM_DIV_54
05252   *         @arg @ref LL_RCC_PLLI2SM_DIV_55
05253   *         @arg @ref LL_RCC_PLLI2SM_DIV_56
05254   *         @arg @ref LL_RCC_PLLI2SM_DIV_57
05255   *         @arg @ref LL_RCC_PLLI2SM_DIV_58
05256   *         @arg @ref LL_RCC_PLLI2SM_DIV_59
05257   *         @arg @ref LL_RCC_PLLI2SM_DIV_60
05258   *         @arg @ref LL_RCC_PLLI2SM_DIV_61
05259   *         @arg @ref LL_RCC_PLLI2SM_DIV_62
05260   *         @arg @ref LL_RCC_PLLI2SM_DIV_63
05261   * @param  PLLN Between 50/192(*) and 432
05262   *
05263   *         (*) value not defined in all devices.
05264   * @param  PLLQ_R This parameter can be one of the following values:
05265   *         @arg @ref LL_RCC_PLLI2SQ_DIV_2 (*)
05266   *         @arg @ref LL_RCC_PLLI2SQ_DIV_3 (*)
05267   *         @arg @ref LL_RCC_PLLI2SQ_DIV_4 (*)
05268   *         @arg @ref LL_RCC_PLLI2SQ_DIV_5 (*)
05269   *         @arg @ref LL_RCC_PLLI2SQ_DIV_6 (*)
05270   *         @arg @ref LL_RCC_PLLI2SQ_DIV_7 (*)
05271   *         @arg @ref LL_RCC_PLLI2SQ_DIV_8 (*)
05272   *         @arg @ref LL_RCC_PLLI2SQ_DIV_9 (*)
05273   *         @arg @ref LL_RCC_PLLI2SQ_DIV_10 (*)
05274   *         @arg @ref LL_RCC_PLLI2SQ_DIV_11 (*)
05275   *         @arg @ref LL_RCC_PLLI2SQ_DIV_12 (*)
05276   *         @arg @ref LL_RCC_PLLI2SQ_DIV_13 (*)
05277   *         @arg @ref LL_RCC_PLLI2SQ_DIV_14 (*)
05278   *         @arg @ref LL_RCC_PLLI2SQ_DIV_15 (*)
05279   *         @arg @ref LL_RCC_PLLI2SR_DIV_2 (*)
05280   *         @arg @ref LL_RCC_PLLI2SR_DIV_3 (*)
05281   *         @arg @ref LL_RCC_PLLI2SR_DIV_4 (*)
05282   *         @arg @ref LL_RCC_PLLI2SR_DIV_5 (*)
05283   *         @arg @ref LL_RCC_PLLI2SR_DIV_6 (*)
05284   *         @arg @ref LL_RCC_PLLI2SR_DIV_7 (*)
05285   *
05286   *         (*) value not defined in all devices.
05287   * @param  PLLDIVQ_R This parameter can be one of the following values:
05288   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_1 (*)
05289   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_2 (*)
05290   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_3 (*)
05291   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_4 (*)
05292   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_5 (*)
05293   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_6 (*)
05294   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_7 (*)
05295   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_8 (*)
05296   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_9 (*)
05297   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_10 (*)
05298   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_11 (*)
05299   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_12 (*)
05300   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_13 (*)
05301   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_14 (*)
05302   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_15 (*)
05303   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_16 (*)
05304   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_17 (*)
05305   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_18 (*)
05306   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_19 (*)
05307   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_20 (*)
05308   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_21 (*)
05309   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_22 (*)
05310   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_23 (*)
05311   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_24 (*)
05312   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_25 (*)
05313   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_26 (*)
05314   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_27 (*)
05315   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_28 (*)
05316   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_29 (*)
05317   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_30 (*)
05318   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_31 (*)
05319   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_32 (*)
05320   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_1 (*)
05321   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_2 (*)
05322   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_3 (*)
05323   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_4 (*)
05324   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_5 (*)
05325   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_6 (*)
05326   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_7 (*)
05327   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_8 (*)
05328   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_9 (*)
05329   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_10 (*)
05330   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_11 (*)
05331   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_12 (*)
05332   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_13 (*)
05333   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_14 (*)
05334   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_15 (*)
05335   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_16 (*)
05336   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_17 (*)
05337   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_18 (*)
05338   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_19 (*)
05339   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_20 (*)
05340   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_21 (*)
05341   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_22 (*)
05342   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_23 (*)
05343   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_24 (*)
05344   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_25 (*)
05345   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_26 (*)
05346   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_27 (*)
05347   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_28 (*)
05348   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_29 (*)
05349   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_30 (*)
05350   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_31 (*)
05351   *
05352   *         (*) value not defined in all devices.
05353   * @retval None
05354   */
05355 __STATIC_INLINE void LL_RCC_PLLI2S_ConfigDomain_SAI(uint32_t Source, uint32_t PLLM, uint32_t PLLN, uint32_t PLLQ_R, uint32_t PLLDIVQ_R)
05356 {
05357   register uint32_t *pReg = (uint32_t *)((uint32_t)((uint32_t)(&RCC->PLLCFGR) + (Source & 0x80U)));
05358   MODIFY_REG(*pReg, RCC_PLLCFGR_PLLSRC, (Source & (~0x80U)));
05359 #if defined(RCC_PLLI2SCFGR_PLLI2SM)
05360   MODIFY_REG(RCC->PLLI2SCFGR, RCC_PLLI2SCFGR_PLLI2SM, PLLM);
05361 #else
05362   MODIFY_REG(RCC->PLLCFGR, RCC_PLLCFGR_PLLM, PLLM);
05363 #endif /* RCC_PLLI2SCFGR_PLLI2SM */
05364   MODIFY_REG(RCC->PLLI2SCFGR, RCC_PLLI2SCFGR_PLLI2SN, PLLN << RCC_PLLI2SCFGR_PLLI2SN_Pos);
05365 #if defined(RCC_DCKCFGR_PLLI2SDIVQ)
05366   MODIFY_REG(RCC->PLLI2SCFGR, RCC_PLLI2SCFGR_PLLI2SQ, PLLQ_R);
05367   MODIFY_REG(RCC->DCKCFGR, RCC_DCKCFGR_PLLI2SDIVQ, PLLDIVQ_R);
05368 #else
05369   MODIFY_REG(RCC->PLLI2SCFGR, RCC_PLLI2SCFGR_PLLI2SR, PLLQ_R);
05370   MODIFY_REG(RCC->DCKCFGR, RCC_DCKCFGR_PLLI2SDIVR, PLLDIVQ_R);
05371 #endif /* RCC_DCKCFGR_PLLI2SDIVQ */
05372 }
05373 #endif /* RCC_DCKCFGR_PLLI2SDIVQ && RCC_DCKCFGR_PLLI2SDIVR */
05374 
05375 #if defined(RCC_PLLI2SCFGR_PLLI2SQ) && !defined(RCC_DCKCFGR_PLLI2SDIVQ)
05376 /**
05377   * @brief  Configure PLLI2S used for 48Mhz domain clock
05378   * @note PLL Source and PLLM Divider can be written only when PLL,
05379   *       PLLI2S and PLLSAI(*) are disabled
05380   * @note PLLN/PLLQ can be written only when PLLI2S is disabled
05381   * @note This can be selected for RNG, USB, SDIO
05382   * @rmtoll PLLCFGR      PLLSRC        LL_RCC_PLLI2S_ConfigDomain_48M\n
05383   *         PLLI2SCFGR   PLLI2SSRC     LL_RCC_PLLI2S_ConfigDomain_48M\n
05384   *         PLLCFGR      PLLM          LL_RCC_PLLI2S_ConfigDomain_48M\n
05385   *         PLLI2SCFGR   PLLI2SM       LL_RCC_PLLI2S_ConfigDomain_48M\n
05386   *         PLLI2SCFGR   PLLI2SN       LL_RCC_PLLI2S_ConfigDomain_48M\n
05387   *         PLLI2SCFGR   PLLI2SQ       LL_RCC_PLLI2S_ConfigDomain_48M
05388   * @param  Source This parameter can be one of the following values:
05389   *         @arg @ref LL_RCC_PLLSOURCE_HSI
05390   *         @arg @ref LL_RCC_PLLSOURCE_HSE
05391   *         @arg @ref LL_RCC_PLLI2SSOURCE_PIN (*)
05392   *
05393   *         (*) value not defined in all devices.
05394   * @param  PLLM This parameter can be one of the following values:
05395   *         @arg @ref LL_RCC_PLLI2SM_DIV_2
05396   *         @arg @ref LL_RCC_PLLI2SM_DIV_3
05397   *         @arg @ref LL_RCC_PLLI2SM_DIV_4
05398   *         @arg @ref LL_RCC_PLLI2SM_DIV_5
05399   *         @arg @ref LL_RCC_PLLI2SM_DIV_6
05400   *         @arg @ref LL_RCC_PLLI2SM_DIV_7
05401   *         @arg @ref LL_RCC_PLLI2SM_DIV_8
05402   *         @arg @ref LL_RCC_PLLI2SM_DIV_9
05403   *         @arg @ref LL_RCC_PLLI2SM_DIV_10
05404   *         @arg @ref LL_RCC_PLLI2SM_DIV_11
05405   *         @arg @ref LL_RCC_PLLI2SM_DIV_12
05406   *         @arg @ref LL_RCC_PLLI2SM_DIV_13
05407   *         @arg @ref LL_RCC_PLLI2SM_DIV_14
05408   *         @arg @ref LL_RCC_PLLI2SM_DIV_15
05409   *         @arg @ref LL_RCC_PLLI2SM_DIV_16
05410   *         @arg @ref LL_RCC_PLLI2SM_DIV_17
05411   *         @arg @ref LL_RCC_PLLI2SM_DIV_18
05412   *         @arg @ref LL_RCC_PLLI2SM_DIV_19
05413   *         @arg @ref LL_RCC_PLLI2SM_DIV_20
05414   *         @arg @ref LL_RCC_PLLI2SM_DIV_21
05415   *         @arg @ref LL_RCC_PLLI2SM_DIV_22
05416   *         @arg @ref LL_RCC_PLLI2SM_DIV_23
05417   *         @arg @ref LL_RCC_PLLI2SM_DIV_24
05418   *         @arg @ref LL_RCC_PLLI2SM_DIV_25
05419   *         @arg @ref LL_RCC_PLLI2SM_DIV_26
05420   *         @arg @ref LL_RCC_PLLI2SM_DIV_27
05421   *         @arg @ref LL_RCC_PLLI2SM_DIV_28
05422   *         @arg @ref LL_RCC_PLLI2SM_DIV_29
05423   *         @arg @ref LL_RCC_PLLI2SM_DIV_30
05424   *         @arg @ref LL_RCC_PLLI2SM_DIV_31
05425   *         @arg @ref LL_RCC_PLLI2SM_DIV_32
05426   *         @arg @ref LL_RCC_PLLI2SM_DIV_33
05427   *         @arg @ref LL_RCC_PLLI2SM_DIV_34
05428   *         @arg @ref LL_RCC_PLLI2SM_DIV_35
05429   *         @arg @ref LL_RCC_PLLI2SM_DIV_36
05430   *         @arg @ref LL_RCC_PLLI2SM_DIV_37
05431   *         @arg @ref LL_RCC_PLLI2SM_DIV_38
05432   *         @arg @ref LL_RCC_PLLI2SM_DIV_39
05433   *         @arg @ref LL_RCC_PLLI2SM_DIV_40
05434   *         @arg @ref LL_RCC_PLLI2SM_DIV_41
05435   *         @arg @ref LL_RCC_PLLI2SM_DIV_42
05436   *         @arg @ref LL_RCC_PLLI2SM_DIV_43
05437   *         @arg @ref LL_RCC_PLLI2SM_DIV_44
05438   *         @arg @ref LL_RCC_PLLI2SM_DIV_45
05439   *         @arg @ref LL_RCC_PLLI2SM_DIV_46
05440   *         @arg @ref LL_RCC_PLLI2SM_DIV_47
05441   *         @arg @ref LL_RCC_PLLI2SM_DIV_48
05442   *         @arg @ref LL_RCC_PLLI2SM_DIV_49
05443   *         @arg @ref LL_RCC_PLLI2SM_DIV_50
05444   *         @arg @ref LL_RCC_PLLI2SM_DIV_51
05445   *         @arg @ref LL_RCC_PLLI2SM_DIV_52
05446   *         @arg @ref LL_RCC_PLLI2SM_DIV_53
05447   *         @arg @ref LL_RCC_PLLI2SM_DIV_54
05448   *         @arg @ref LL_RCC_PLLI2SM_DIV_55
05449   *         @arg @ref LL_RCC_PLLI2SM_DIV_56
05450   *         @arg @ref LL_RCC_PLLI2SM_DIV_57
05451   *         @arg @ref LL_RCC_PLLI2SM_DIV_58
05452   *         @arg @ref LL_RCC_PLLI2SM_DIV_59
05453   *         @arg @ref LL_RCC_PLLI2SM_DIV_60
05454   *         @arg @ref LL_RCC_PLLI2SM_DIV_61
05455   *         @arg @ref LL_RCC_PLLI2SM_DIV_62
05456   *         @arg @ref LL_RCC_PLLI2SM_DIV_63
05457   * @param  PLLN Between 50 and 432
05458   * @param  PLLQ This parameter can be one of the following values:
05459   *         @arg @ref LL_RCC_PLLI2SQ_DIV_2
05460   *         @arg @ref LL_RCC_PLLI2SQ_DIV_3
05461   *         @arg @ref LL_RCC_PLLI2SQ_DIV_4
05462   *         @arg @ref LL_RCC_PLLI2SQ_DIV_5
05463   *         @arg @ref LL_RCC_PLLI2SQ_DIV_6
05464   *         @arg @ref LL_RCC_PLLI2SQ_DIV_7
05465   *         @arg @ref LL_RCC_PLLI2SQ_DIV_8
05466   *         @arg @ref LL_RCC_PLLI2SQ_DIV_9
05467   *         @arg @ref LL_RCC_PLLI2SQ_DIV_10
05468   *         @arg @ref LL_RCC_PLLI2SQ_DIV_11
05469   *         @arg @ref LL_RCC_PLLI2SQ_DIV_12
05470   *         @arg @ref LL_RCC_PLLI2SQ_DIV_13
05471   *         @arg @ref LL_RCC_PLLI2SQ_DIV_14
05472   *         @arg @ref LL_RCC_PLLI2SQ_DIV_15
05473   * @retval None
05474   */
05475 __STATIC_INLINE void LL_RCC_PLLI2S_ConfigDomain_48M(uint32_t Source, uint32_t PLLM, uint32_t PLLN, uint32_t PLLQ)
05476 {
05477   register uint32_t *pReg = (uint32_t *)((uint32_t)((uint32_t)(&RCC->PLLCFGR) + (Source & 0x80U)));
05478   MODIFY_REG(*pReg, RCC_PLLCFGR_PLLSRC, (Source & (~0x80U)));
05479 #if defined(RCC_PLLI2SCFGR_PLLI2SM)
05480   MODIFY_REG(RCC->PLLI2SCFGR, RCC_PLLI2SCFGR_PLLI2SM, PLLM);
05481 #else
05482   MODIFY_REG(RCC->PLLCFGR, RCC_PLLCFGR_PLLM, PLLM);
05483 #endif /* RCC_PLLI2SCFGR_PLLI2SM */
05484   MODIFY_REG(RCC->PLLI2SCFGR, RCC_PLLI2SCFGR_PLLI2SN | RCC_PLLI2SCFGR_PLLI2SQ, PLLN << RCC_PLLI2SCFGR_PLLI2SN_Pos | PLLQ);
05485 }
05486 #endif /* RCC_PLLI2SCFGR_PLLI2SQ && !RCC_DCKCFGR_PLLI2SDIVQ */
05487 
05488 #if defined(SPDIFRX)
05489 /**
05490   * @brief Configure PLLI2S used for SPDIFRX domain clock
05491   * @note PLL Source and PLLM Divider can be written only when PLL,
05492   *       PLLI2S and PLLSAI(*) are disabled
05493   * @note PLLN/PLLP can be written only when PLLI2S is disabled
05494   * @note This  can be selected for SPDIFRX
05495   * @rmtoll PLLCFGR      PLLSRC        LL_RCC_PLLI2S_ConfigDomain_SPDIFRX\n
05496   *         PLLCFGR      PLLM          LL_RCC_PLLI2S_ConfigDomain_SPDIFRX\n
05497   *         PLLI2SCFGR   PLLI2SM       LL_RCC_PLLI2S_ConfigDomain_SPDIFRX\n
05498   *         PLLI2SCFGR   PLLI2SN       LL_RCC_PLLI2S_ConfigDomain_SPDIFRX\n
05499   *         PLLI2SCFGR   PLLI2SP       LL_RCC_PLLI2S_ConfigDomain_SPDIFRX
05500   * @param  Source This parameter can be one of the following values:
05501   *         @arg @ref LL_RCC_PLLSOURCE_HSI
05502   *         @arg @ref LL_RCC_PLLSOURCE_HSE
05503   * @param  PLLM This parameter can be one of the following values:
05504   *         @arg @ref LL_RCC_PLLI2SM_DIV_2
05505   *         @arg @ref LL_RCC_PLLI2SM_DIV_3
05506   *         @arg @ref LL_RCC_PLLI2SM_DIV_4
05507   *         @arg @ref LL_RCC_PLLI2SM_DIV_5
05508   *         @arg @ref LL_RCC_PLLI2SM_DIV_6
05509   *         @arg @ref LL_RCC_PLLI2SM_DIV_7
05510   *         @arg @ref LL_RCC_PLLI2SM_DIV_8
05511   *         @arg @ref LL_RCC_PLLI2SM_DIV_9
05512   *         @arg @ref LL_RCC_PLLI2SM_DIV_10
05513   *         @arg @ref LL_RCC_PLLI2SM_DIV_11
05514   *         @arg @ref LL_RCC_PLLI2SM_DIV_12
05515   *         @arg @ref LL_RCC_PLLI2SM_DIV_13
05516   *         @arg @ref LL_RCC_PLLI2SM_DIV_14
05517   *         @arg @ref LL_RCC_PLLI2SM_DIV_15
05518   *         @arg @ref LL_RCC_PLLI2SM_DIV_16
05519   *         @arg @ref LL_RCC_PLLI2SM_DIV_17
05520   *         @arg @ref LL_RCC_PLLI2SM_DIV_18
05521   *         @arg @ref LL_RCC_PLLI2SM_DIV_19
05522   *         @arg @ref LL_RCC_PLLI2SM_DIV_20
05523   *         @arg @ref LL_RCC_PLLI2SM_DIV_21
05524   *         @arg @ref LL_RCC_PLLI2SM_DIV_22
05525   *         @arg @ref LL_RCC_PLLI2SM_DIV_23
05526   *         @arg @ref LL_RCC_PLLI2SM_DIV_24
05527   *         @arg @ref LL_RCC_PLLI2SM_DIV_25
05528   *         @arg @ref LL_RCC_PLLI2SM_DIV_26
05529   *         @arg @ref LL_RCC_PLLI2SM_DIV_27
05530   *         @arg @ref LL_RCC_PLLI2SM_DIV_28
05531   *         @arg @ref LL_RCC_PLLI2SM_DIV_29
05532   *         @arg @ref LL_RCC_PLLI2SM_DIV_30
05533   *         @arg @ref LL_RCC_PLLI2SM_DIV_31
05534   *         @arg @ref LL_RCC_PLLI2SM_DIV_32
05535   *         @arg @ref LL_RCC_PLLI2SM_DIV_33
05536   *         @arg @ref LL_RCC_PLLI2SM_DIV_34
05537   *         @arg @ref LL_RCC_PLLI2SM_DIV_35
05538   *         @arg @ref LL_RCC_PLLI2SM_DIV_36
05539   *         @arg @ref LL_RCC_PLLI2SM_DIV_37
05540   *         @arg @ref LL_RCC_PLLI2SM_DIV_38
05541   *         @arg @ref LL_RCC_PLLI2SM_DIV_39
05542   *         @arg @ref LL_RCC_PLLI2SM_DIV_40
05543   *         @arg @ref LL_RCC_PLLI2SM_DIV_41
05544   *         @arg @ref LL_RCC_PLLI2SM_DIV_42
05545   *         @arg @ref LL_RCC_PLLI2SM_DIV_43
05546   *         @arg @ref LL_RCC_PLLI2SM_DIV_44
05547   *         @arg @ref LL_RCC_PLLI2SM_DIV_45
05548   *         @arg @ref LL_RCC_PLLI2SM_DIV_46
05549   *         @arg @ref LL_RCC_PLLI2SM_DIV_47
05550   *         @arg @ref LL_RCC_PLLI2SM_DIV_48
05551   *         @arg @ref LL_RCC_PLLI2SM_DIV_49
05552   *         @arg @ref LL_RCC_PLLI2SM_DIV_50
05553   *         @arg @ref LL_RCC_PLLI2SM_DIV_51
05554   *         @arg @ref LL_RCC_PLLI2SM_DIV_52
05555   *         @arg @ref LL_RCC_PLLI2SM_DIV_53
05556   *         @arg @ref LL_RCC_PLLI2SM_DIV_54
05557   *         @arg @ref LL_RCC_PLLI2SM_DIV_55
05558   *         @arg @ref LL_RCC_PLLI2SM_DIV_56
05559   *         @arg @ref LL_RCC_PLLI2SM_DIV_57
05560   *         @arg @ref LL_RCC_PLLI2SM_DIV_58
05561   *         @arg @ref LL_RCC_PLLI2SM_DIV_59
05562   *         @arg @ref LL_RCC_PLLI2SM_DIV_60
05563   *         @arg @ref LL_RCC_PLLI2SM_DIV_61
05564   *         @arg @ref LL_RCC_PLLI2SM_DIV_62
05565   *         @arg @ref LL_RCC_PLLI2SM_DIV_63
05566   * @param  PLLN Between 50 and 432
05567   * @param  PLLP This parameter can be one of the following values:
05568   *         @arg @ref LL_RCC_PLLI2SP_DIV_2
05569   *         @arg @ref LL_RCC_PLLI2SP_DIV_4
05570   *         @arg @ref LL_RCC_PLLI2SP_DIV_6
05571   *         @arg @ref LL_RCC_PLLI2SP_DIV_8
05572   * @retval None
05573   */
05574 __STATIC_INLINE void LL_RCC_PLLI2S_ConfigDomain_SPDIFRX(uint32_t Source, uint32_t PLLM, uint32_t PLLN, uint32_t PLLP)
05575 {
05576   MODIFY_REG(RCC->PLLCFGR, RCC_PLLCFGR_PLLSRC, Source);
05577 #if defined(RCC_PLLI2SCFGR_PLLI2SM)
05578   MODIFY_REG(RCC->PLLI2SCFGR, RCC_PLLI2SCFGR_PLLI2SM, PLLM);
05579 #else
05580   MODIFY_REG(RCC->PLLCFGR, RCC_PLLCFGR_PLLM, PLLM);
05581 #endif /* RCC_PLLI2SCFGR_PLLI2SM */
05582   MODIFY_REG(RCC->PLLI2SCFGR, RCC_PLLI2SCFGR_PLLI2SN | RCC_PLLI2SCFGR_PLLI2SP, PLLN << RCC_PLLI2SCFGR_PLLI2SN_Pos | PLLP);
05583 }
05584 #endif /* SPDIFRX */
05585 
05586 /**
05587   * @brief  Configure PLLI2S used for I2S1 domain clock
05588   * @note PLL Source and PLLM Divider can be written only when PLL,
05589   *       PLLI2S and PLLSAI(*) are disabled
05590   * @note PLLN/PLLR can be written only when PLLI2S is disabled
05591   * @note This  can be selected for I2S
05592   * @rmtoll PLLCFGR      PLLSRC        LL_RCC_PLLI2S_ConfigDomain_I2S\n
05593   *         PLLCFGR      PLLM          LL_RCC_PLLI2S_ConfigDomain_I2S\n
05594   *         PLLI2SCFGR   PLLI2SSRC     LL_RCC_PLLI2S_ConfigDomain_I2S\n
05595   *         PLLI2SCFGR   PLLI2SM       LL_RCC_PLLI2S_ConfigDomain_I2S\n
05596   *         PLLI2SCFGR   PLLI2SN       LL_RCC_PLLI2S_ConfigDomain_I2S\n
05597   *         PLLI2SCFGR   PLLI2SR       LL_RCC_PLLI2S_ConfigDomain_I2S
05598   * @param  Source This parameter can be one of the following values:
05599   *         @arg @ref LL_RCC_PLLSOURCE_HSI
05600   *         @arg @ref LL_RCC_PLLSOURCE_HSE
05601   *         @arg @ref LL_RCC_PLLI2SSOURCE_PIN (*)
05602   *
05603   *         (*) value not defined in all devices.
05604   * @param  PLLM This parameter can be one of the following values:
05605   *         @arg @ref LL_RCC_PLLI2SM_DIV_2
05606   *         @arg @ref LL_RCC_PLLI2SM_DIV_3
05607   *         @arg @ref LL_RCC_PLLI2SM_DIV_4
05608   *         @arg @ref LL_RCC_PLLI2SM_DIV_5
05609   *         @arg @ref LL_RCC_PLLI2SM_DIV_6
05610   *         @arg @ref LL_RCC_PLLI2SM_DIV_7
05611   *         @arg @ref LL_RCC_PLLI2SM_DIV_8
05612   *         @arg @ref LL_RCC_PLLI2SM_DIV_9
05613   *         @arg @ref LL_RCC_PLLI2SM_DIV_10
05614   *         @arg @ref LL_RCC_PLLI2SM_DIV_11
05615   *         @arg @ref LL_RCC_PLLI2SM_DIV_12
05616   *         @arg @ref LL_RCC_PLLI2SM_DIV_13
05617   *         @arg @ref LL_RCC_PLLI2SM_DIV_14
05618   *         @arg @ref LL_RCC_PLLI2SM_DIV_15
05619   *         @arg @ref LL_RCC_PLLI2SM_DIV_16
05620   *         @arg @ref LL_RCC_PLLI2SM_DIV_17
05621   *         @arg @ref LL_RCC_PLLI2SM_DIV_18
05622   *         @arg @ref LL_RCC_PLLI2SM_DIV_19
05623   *         @arg @ref LL_RCC_PLLI2SM_DIV_20
05624   *         @arg @ref LL_RCC_PLLI2SM_DIV_21
05625   *         @arg @ref LL_RCC_PLLI2SM_DIV_22
05626   *         @arg @ref LL_RCC_PLLI2SM_DIV_23
05627   *         @arg @ref LL_RCC_PLLI2SM_DIV_24
05628   *         @arg @ref LL_RCC_PLLI2SM_DIV_25
05629   *         @arg @ref LL_RCC_PLLI2SM_DIV_26
05630   *         @arg @ref LL_RCC_PLLI2SM_DIV_27
05631   *         @arg @ref LL_RCC_PLLI2SM_DIV_28
05632   *         @arg @ref LL_RCC_PLLI2SM_DIV_29
05633   *         @arg @ref LL_RCC_PLLI2SM_DIV_30
05634   *         @arg @ref LL_RCC_PLLI2SM_DIV_31
05635   *         @arg @ref LL_RCC_PLLI2SM_DIV_32
05636   *         @arg @ref LL_RCC_PLLI2SM_DIV_33
05637   *         @arg @ref LL_RCC_PLLI2SM_DIV_34
05638   *         @arg @ref LL_RCC_PLLI2SM_DIV_35
05639   *         @arg @ref LL_RCC_PLLI2SM_DIV_36
05640   *         @arg @ref LL_RCC_PLLI2SM_DIV_37
05641   *         @arg @ref LL_RCC_PLLI2SM_DIV_38
05642   *         @arg @ref LL_RCC_PLLI2SM_DIV_39
05643   *         @arg @ref LL_RCC_PLLI2SM_DIV_40
05644   *         @arg @ref LL_RCC_PLLI2SM_DIV_41
05645   *         @arg @ref LL_RCC_PLLI2SM_DIV_42
05646   *         @arg @ref LL_RCC_PLLI2SM_DIV_43
05647   *         @arg @ref LL_RCC_PLLI2SM_DIV_44
05648   *         @arg @ref LL_RCC_PLLI2SM_DIV_45
05649   *         @arg @ref LL_RCC_PLLI2SM_DIV_46
05650   *         @arg @ref LL_RCC_PLLI2SM_DIV_47
05651   *         @arg @ref LL_RCC_PLLI2SM_DIV_48
05652   *         @arg @ref LL_RCC_PLLI2SM_DIV_49
05653   *         @arg @ref LL_RCC_PLLI2SM_DIV_50
05654   *         @arg @ref LL_RCC_PLLI2SM_DIV_51
05655   *         @arg @ref LL_RCC_PLLI2SM_DIV_52
05656   *         @arg @ref LL_RCC_PLLI2SM_DIV_53
05657   *         @arg @ref LL_RCC_PLLI2SM_DIV_54
05658   *         @arg @ref LL_RCC_PLLI2SM_DIV_55
05659   *         @arg @ref LL_RCC_PLLI2SM_DIV_56
05660   *         @arg @ref LL_RCC_PLLI2SM_DIV_57
05661   *         @arg @ref LL_RCC_PLLI2SM_DIV_58
05662   *         @arg @ref LL_RCC_PLLI2SM_DIV_59
05663   *         @arg @ref LL_RCC_PLLI2SM_DIV_60
05664   *         @arg @ref LL_RCC_PLLI2SM_DIV_61
05665   *         @arg @ref LL_RCC_PLLI2SM_DIV_62
05666   *         @arg @ref LL_RCC_PLLI2SM_DIV_63
05667   * @param  PLLN Between 50/192(*) and 432
05668   *
05669   *         (*) value not defined in all devices.
05670   * @param  PLLR This parameter can be one of the following values:
05671   *         @arg @ref LL_RCC_PLLI2SR_DIV_2
05672   *         @arg @ref LL_RCC_PLLI2SR_DIV_3
05673   *         @arg @ref LL_RCC_PLLI2SR_DIV_4
05674   *         @arg @ref LL_RCC_PLLI2SR_DIV_5
05675   *         @arg @ref LL_RCC_PLLI2SR_DIV_6
05676   *         @arg @ref LL_RCC_PLLI2SR_DIV_7
05677   * @retval None
05678   */
05679 __STATIC_INLINE void LL_RCC_PLLI2S_ConfigDomain_I2S(uint32_t Source, uint32_t PLLM, uint32_t PLLN, uint32_t PLLR)
05680 {
05681   register uint32_t *pReg = (uint32_t *)((uint32_t)((uint32_t)(&RCC->PLLCFGR) + (Source & 0x80U)));
05682   MODIFY_REG(*pReg, RCC_PLLCFGR_PLLSRC, (Source & (~0x80U)));
05683 #if defined(RCC_PLLI2SCFGR_PLLI2SM)
05684   MODIFY_REG(RCC->PLLI2SCFGR, RCC_PLLI2SCFGR_PLLI2SM, PLLM);
05685 #else
05686   MODIFY_REG(RCC->PLLCFGR, RCC_PLLCFGR_PLLM, PLLM);
05687 #endif /* RCC_PLLI2SCFGR_PLLI2SM */
05688   MODIFY_REG(RCC->PLLI2SCFGR, RCC_PLLI2SCFGR_PLLI2SN | RCC_PLLI2SCFGR_PLLI2SR, PLLN << RCC_PLLI2SCFGR_PLLI2SN_Pos | PLLR);
05689 }
05690 
05691 /**
05692   * @brief  Get I2SPLL multiplication factor for VCO
05693   * @rmtoll PLLI2SCFGR  PLLI2SN      LL_RCC_PLLI2S_GetN
05694   * @retval Between 50/192(*) and 432
05695   *
05696   *         (*) value not defined in all devices.
05697   */
05698 __STATIC_INLINE uint32_t LL_RCC_PLLI2S_GetN(void)
05699 {
05700   return (uint32_t)(READ_BIT(RCC->PLLI2SCFGR, RCC_PLLI2SCFGR_PLLI2SN) >> RCC_PLLI2SCFGR_PLLI2SN_Pos);
05701 }
05702 
05703 #if defined(RCC_PLLI2SCFGR_PLLI2SQ)
05704 /**
05705   * @brief  Get I2SPLL division factor for PLLI2SQ
05706   * @rmtoll PLLI2SCFGR  PLLI2SQ      LL_RCC_PLLI2S_GetQ
05707   * @retval Returned value can be one of the following values:
05708   *         @arg @ref LL_RCC_PLLI2SQ_DIV_2
05709   *         @arg @ref LL_RCC_PLLI2SQ_DIV_3
05710   *         @arg @ref LL_RCC_PLLI2SQ_DIV_4
05711   *         @arg @ref LL_RCC_PLLI2SQ_DIV_5
05712   *         @arg @ref LL_RCC_PLLI2SQ_DIV_6
05713   *         @arg @ref LL_RCC_PLLI2SQ_DIV_7
05714   *         @arg @ref LL_RCC_PLLI2SQ_DIV_8
05715   *         @arg @ref LL_RCC_PLLI2SQ_DIV_9
05716   *         @arg @ref LL_RCC_PLLI2SQ_DIV_10
05717   *         @arg @ref LL_RCC_PLLI2SQ_DIV_11
05718   *         @arg @ref LL_RCC_PLLI2SQ_DIV_12
05719   *         @arg @ref LL_RCC_PLLI2SQ_DIV_13
05720   *         @arg @ref LL_RCC_PLLI2SQ_DIV_14
05721   *         @arg @ref LL_RCC_PLLI2SQ_DIV_15
05722   */
05723 __STATIC_INLINE uint32_t LL_RCC_PLLI2S_GetQ(void)
05724 {
05725   return (uint32_t)(READ_BIT(RCC->PLLI2SCFGR, RCC_PLLI2SCFGR_PLLI2SQ));
05726 }
05727 #endif /* RCC_PLLI2SCFGR_PLLI2SQ */
05728 
05729 /**
05730   * @brief  Get I2SPLL division factor for PLLI2SR
05731   * @note used for PLLI2SCLK (I2S clock)
05732   * @rmtoll PLLI2SCFGR  PLLI2SR      LL_RCC_PLLI2S_GetR
05733   * @retval Returned value can be one of the following values:
05734   *         @arg @ref LL_RCC_PLLI2SR_DIV_2
05735   *         @arg @ref LL_RCC_PLLI2SR_DIV_3
05736   *         @arg @ref LL_RCC_PLLI2SR_DIV_4
05737   *         @arg @ref LL_RCC_PLLI2SR_DIV_5
05738   *         @arg @ref LL_RCC_PLLI2SR_DIV_6
05739   *         @arg @ref LL_RCC_PLLI2SR_DIV_7
05740   */
05741 __STATIC_INLINE uint32_t LL_RCC_PLLI2S_GetR(void)
05742 {
05743   return (uint32_t)(READ_BIT(RCC->PLLI2SCFGR, RCC_PLLI2SCFGR_PLLI2SR));
05744 }
05745 
05746 #if defined(RCC_PLLI2SCFGR_PLLI2SP)
05747 /**
05748   * @brief  Get I2SPLL division factor for PLLI2SP
05749   * @note used for PLLSPDIFRXCLK (SPDIFRX clock)
05750   * @rmtoll PLLI2SCFGR  PLLI2SP      LL_RCC_PLLI2S_GetP
05751   * @retval Returned value can be one of the following values:
05752   *         @arg @ref LL_RCC_PLLI2SP_DIV_2
05753   *         @arg @ref LL_RCC_PLLI2SP_DIV_4
05754   *         @arg @ref LL_RCC_PLLI2SP_DIV_6
05755   *         @arg @ref LL_RCC_PLLI2SP_DIV_8
05756   */
05757 __STATIC_INLINE uint32_t LL_RCC_PLLI2S_GetP(void)
05758 {
05759   return (uint32_t)(READ_BIT(RCC->PLLI2SCFGR, RCC_PLLI2SCFGR_PLLI2SP));
05760 }
05761 #endif /* RCC_PLLI2SCFGR_PLLI2SP */
05762 
05763 #if defined(RCC_DCKCFGR_PLLI2SDIVQ)
05764 /**
05765   * @brief  Get I2SPLL division factor for PLLI2SDIVQ
05766   * @note used PLLSAICLK selected (SAI clock)
05767   * @rmtoll DCKCFGR   PLLI2SDIVQ      LL_RCC_PLLI2S_GetDIVQ
05768   * @retval Returned value can be one of the following values:
05769   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_1
05770   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_2
05771   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_3
05772   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_4
05773   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_5
05774   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_6
05775   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_7
05776   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_8
05777   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_9
05778   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_10
05779   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_11
05780   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_12
05781   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_13
05782   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_14
05783   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_15
05784   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_16
05785   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_17
05786   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_18
05787   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_19
05788   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_20
05789   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_21
05790   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_22
05791   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_23
05792   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_24
05793   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_25
05794   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_26
05795   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_27
05796   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_28
05797   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_29
05798   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_30
05799   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_31
05800   *         @arg @ref LL_RCC_PLLI2SDIVQ_DIV_32
05801   */
05802 __STATIC_INLINE uint32_t LL_RCC_PLLI2S_GetDIVQ(void)
05803 {
05804   return (uint32_t)(READ_BIT(RCC->DCKCFGR, RCC_DCKCFGR_PLLI2SDIVQ));
05805 }
05806 #endif /* RCC_DCKCFGR_PLLI2SDIVQ */
05807 
05808 #if defined(RCC_DCKCFGR_PLLI2SDIVR)
05809 /**
05810   * @brief  Get I2SPLL division factor for PLLI2SDIVR
05811   * @note used PLLSAICLK selected (SAI clock)
05812   * @rmtoll DCKCFGR   PLLI2SDIVR      LL_RCC_PLLI2S_GetDIVR
05813   * @retval Returned value can be one of the following values:
05814   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_1
05815   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_2
05816   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_3
05817   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_4
05818   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_5
05819   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_6
05820   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_7
05821   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_8
05822   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_9
05823   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_10
05824   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_11
05825   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_12
05826   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_13
05827   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_14
05828   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_15
05829   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_16
05830   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_17
05831   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_18
05832   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_19
05833   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_20
05834   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_21
05835   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_22
05836   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_23
05837   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_24
05838   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_25
05839   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_26
05840   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_27
05841   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_28
05842   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_29
05843   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_30
05844   *         @arg @ref LL_RCC_PLLI2SDIVR_DIV_31
05845   */
05846 __STATIC_INLINE uint32_t LL_RCC_PLLI2S_GetDIVR(void)
05847 {
05848   return (uint32_t)(READ_BIT(RCC->DCKCFGR, RCC_DCKCFGR_PLLI2SDIVR));
05849 }
05850 #endif /* RCC_DCKCFGR_PLLI2SDIVR */
05851 
05852 /**
05853   * @brief  Get division factor for PLLI2S input clock
05854   * @rmtoll PLLCFGR      PLLM          LL_RCC_PLLI2S_GetDivider\n
05855   *         PLLI2SCFGR   PLLI2SM       LL_RCC_PLLI2S_GetDivider
05856   * @retval Returned value can be one of the following values:
05857   *         @arg @ref LL_RCC_PLLI2SM_DIV_2
05858   *         @arg @ref LL_RCC_PLLI2SM_DIV_3
05859   *         @arg @ref LL_RCC_PLLI2SM_DIV_4
05860   *         @arg @ref LL_RCC_PLLI2SM_DIV_5
05861   *         @arg @ref LL_RCC_PLLI2SM_DIV_6
05862   *         @arg @ref LL_RCC_PLLI2SM_DIV_7
05863   *         @arg @ref LL_RCC_PLLI2SM_DIV_8
05864   *         @arg @ref LL_RCC_PLLI2SM_DIV_9
05865   *         @arg @ref LL_RCC_PLLI2SM_DIV_10
05866   *         @arg @ref LL_RCC_PLLI2SM_DIV_11
05867   *         @arg @ref LL_RCC_PLLI2SM_DIV_12
05868   *         @arg @ref LL_RCC_PLLI2SM_DIV_13
05869   *         @arg @ref LL_RCC_PLLI2SM_DIV_14
05870   *         @arg @ref LL_RCC_PLLI2SM_DIV_15
05871   *         @arg @ref LL_RCC_PLLI2SM_DIV_16
05872   *         @arg @ref LL_RCC_PLLI2SM_DIV_17
05873   *         @arg @ref LL_RCC_PLLI2SM_DIV_18
05874   *         @arg @ref LL_RCC_PLLI2SM_DIV_19
05875   *         @arg @ref LL_RCC_PLLI2SM_DIV_20
05876   *         @arg @ref LL_RCC_PLLI2SM_DIV_21
05877   *         @arg @ref LL_RCC_PLLI2SM_DIV_22
05878   *         @arg @ref LL_RCC_PLLI2SM_DIV_23
05879   *         @arg @ref LL_RCC_PLLI2SM_DIV_24
05880   *         @arg @ref LL_RCC_PLLI2SM_DIV_25
05881   *         @arg @ref LL_RCC_PLLI2SM_DIV_26
05882   *         @arg @ref LL_RCC_PLLI2SM_DIV_27
05883   *         @arg @ref LL_RCC_PLLI2SM_DIV_28
05884   *         @arg @ref LL_RCC_PLLI2SM_DIV_29
05885   *         @arg @ref LL_RCC_PLLI2SM_DIV_30
05886   *         @arg @ref LL_RCC_PLLI2SM_DIV_31
05887   *         @arg @ref LL_RCC_PLLI2SM_DIV_32
05888   *         @arg @ref LL_RCC_PLLI2SM_DIV_33
05889   *         @arg @ref LL_RCC_PLLI2SM_DIV_34
05890   *         @arg @ref LL_RCC_PLLI2SM_DIV_35
05891   *         @arg @ref LL_RCC_PLLI2SM_DIV_36
05892   *         @arg @ref LL_RCC_PLLI2SM_DIV_37
05893   *         @arg @ref LL_RCC_PLLI2SM_DIV_38
05894   *         @arg @ref LL_RCC_PLLI2SM_DIV_39
05895   *         @arg @ref LL_RCC_PLLI2SM_DIV_40
05896   *         @arg @ref LL_RCC_PLLI2SM_DIV_41
05897   *         @arg @ref LL_RCC_PLLI2SM_DIV_42
05898   *         @arg @ref LL_RCC_PLLI2SM_DIV_43
05899   *         @arg @ref LL_RCC_PLLI2SM_DIV_44
05900   *         @arg @ref LL_RCC_PLLI2SM_DIV_45
05901   *         @arg @ref LL_RCC_PLLI2SM_DIV_46
05902   *         @arg @ref LL_RCC_PLLI2SM_DIV_47
05903   *         @arg @ref LL_RCC_PLLI2SM_DIV_48
05904   *         @arg @ref LL_RCC_PLLI2SM_DIV_49
05905   *         @arg @ref LL_RCC_PLLI2SM_DIV_50
05906   *         @arg @ref LL_RCC_PLLI2SM_DIV_51
05907   *         @arg @ref LL_RCC_PLLI2SM_DIV_52
05908   *         @arg @ref LL_RCC_PLLI2SM_DIV_53
05909   *         @arg @ref LL_RCC_PLLI2SM_DIV_54
05910   *         @arg @ref LL_RCC_PLLI2SM_DIV_55
05911   *         @arg @ref LL_RCC_PLLI2SM_DIV_56
05912   *         @arg @ref LL_RCC_PLLI2SM_DIV_57
05913   *         @arg @ref LL_RCC_PLLI2SM_DIV_58
05914   *         @arg @ref LL_RCC_PLLI2SM_DIV_59
05915   *         @arg @ref LL_RCC_PLLI2SM_DIV_60
05916   *         @arg @ref LL_RCC_PLLI2SM_DIV_61
05917   *         @arg @ref LL_RCC_PLLI2SM_DIV_62
05918   *         @arg @ref LL_RCC_PLLI2SM_DIV_63
05919   */
05920 __STATIC_INLINE uint32_t LL_RCC_PLLI2S_GetDivider(void)
05921 {
05922 #if defined(RCC_PLLI2SCFGR_PLLI2SM)
05923   return (uint32_t)(READ_BIT(RCC->PLLI2SCFGR, RCC_PLLI2SCFGR_PLLI2SM));
05924 #else
05925   return (uint32_t)(READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLM));
05926 #endif /* RCC_PLLI2SCFGR_PLLI2SM */
05927 }
05928 
05929 /**
05930   * @brief  Get the oscillator used as PLL clock source.
05931   * @rmtoll PLLCFGR      PLLSRC        LL_RCC_PLLI2S_GetMainSource\n
05932   *         PLLI2SCFGR   PLLI2SSRC     LL_RCC_PLLI2S_GetMainSource
05933   * @retval Returned value can be one of the following values:
05934   *         @arg @ref LL_RCC_PLLSOURCE_HSI
05935   *         @arg @ref LL_RCC_PLLSOURCE_HSE
05936   *         @arg @ref LL_RCC_PLLI2SSOURCE_PIN (*)
05937   *
05938   *         (*) value not defined in all devices.
05939   */
05940 __STATIC_INLINE uint32_t LL_RCC_PLLI2S_GetMainSource(void)
05941 {
05942 #if defined(RCC_PLLI2SCFGR_PLLI2SSRC)
05943   register uint32_t pllsrc = read_bit(rcc->pllcfgr, RCC_PLLCFGR_PLLSRC);
05944   register uint32_t plli2sssrc0 = READ_BIT(RCC->PLLI2SCFGR, RCC_PLLI2SCFGR_PLLI2SSRC);
05945   register uint32_t plli2sssrc1 = READ_BIT(RCC->PLLI2SCFGR, RCC_PLLI2SCFGR_PLLI2SSRC) >> 15U;
05946   return (uint32_t)(pllsrc | plli2sssrc0 | plli2sssrc1);
05947 #else
05948   return (uint32_t)(READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLSRC));
05949 #endif /* RCC_PLLI2SCFGR_PLLI2SSRC */
05950 }
05951 
05952 /**
05953   * @}
05954   */
05955 #endif /* RCC_PLLI2S_SUPPORT */
05956 
05957 #if defined(RCC_PLLSAI_SUPPORT)
05958 /** @defgroup RCC_LL_EF_PLLSAI PLLSAI
05959   * @{
05960   */
05961 
05962 /**
05963   * @brief  Enable PLLSAI
05964   * @rmtoll CR           PLLSAION     LL_RCC_PLLSAI_Enable
05965   * @retval None
05966   */
05967 __STATIC_INLINE void LL_RCC_PLLSAI_Enable(void)
05968 {
05969   SET_BIT(RCC->CR, RCC_CR_PLLSAION);
05970 }
05971 
05972 /**
05973   * @brief  Disable PLLSAI
05974   * @rmtoll CR           PLLSAION     LL_RCC_PLLSAI_Disable
05975   * @retval None
05976   */
05977 __STATIC_INLINE void LL_RCC_PLLSAI_Disable(void)
05978 {
05979   CLEAR_BIT(RCC->CR, RCC_CR_PLLSAION);
05980 }
05981 
05982 /**
05983   * @brief  Check if PLLSAI Ready
05984   * @rmtoll CR           PLLSAIRDY    LL_RCC_PLLSAI_IsReady
05985   * @retval State of bit (1 or 0).
05986   */
05987 __STATIC_INLINE uint32_t LL_RCC_PLLSAI_IsReady(void)
05988 {
05989   return (READ_BIT(RCC->CR, RCC_CR_PLLSAIRDY) == (RCC_CR_PLLSAIRDY));
05990 }
05991 
05992 /**
05993   * @brief  Configure PLLSAI used for SAI domain clock
05994   * @note PLL Source and PLLM Divider can be written only when PLL,
05995   *       PLLI2S and PLLSAI(*) are disabled
05996   * @note PLLN/PLLQ can be written only when PLLSAI is disabled
05997   * @note This can be selected for SAI
05998   * @rmtoll PLLCFGR      PLLSRC        LL_RCC_PLLSAI_ConfigDomain_SAI\n
05999   *         PLLCFGR      PLLM          LL_RCC_PLLSAI_ConfigDomain_SAI\n
06000   *         PLLSAICFGR   PLLSAIM       LL_RCC_PLLSAI_ConfigDomain_SAI\n
06001   *         PLLSAICFGR   PLLSAIN       LL_RCC_PLLSAI_ConfigDomain_SAI\n
06002   *         PLLSAICFGR   PLLSAIQ       LL_RCC_PLLSAI_ConfigDomain_SAI\n
06003   *         DCKCFGR      PLLSAIDIVQ    LL_RCC_PLLSAI_ConfigDomain_SAI
06004   * @param  Source This parameter can be one of the following values:
06005   *         @arg @ref LL_RCC_PLLSOURCE_HSI
06006   *         @arg @ref LL_RCC_PLLSOURCE_HSE
06007   * @param  PLLM This parameter can be one of the following values:
06008   *         @arg @ref LL_RCC_PLLSAIM_DIV_2
06009   *         @arg @ref LL_RCC_PLLSAIM_DIV_3
06010   *         @arg @ref LL_RCC_PLLSAIM_DIV_4
06011   *         @arg @ref LL_RCC_PLLSAIM_DIV_5
06012   *         @arg @ref LL_RCC_PLLSAIM_DIV_6
06013   *         @arg @ref LL_RCC_PLLSAIM_DIV_7
06014   *         @arg @ref LL_RCC_PLLSAIM_DIV_8
06015   *         @arg @ref LL_RCC_PLLSAIM_DIV_9
06016   *         @arg @ref LL_RCC_PLLSAIM_DIV_10
06017   *         @arg @ref LL_RCC_PLLSAIM_DIV_11
06018   *         @arg @ref LL_RCC_PLLSAIM_DIV_12
06019   *         @arg @ref LL_RCC_PLLSAIM_DIV_13
06020   *         @arg @ref LL_RCC_PLLSAIM_DIV_14
06021   *         @arg @ref LL_RCC_PLLSAIM_DIV_15
06022   *         @arg @ref LL_RCC_PLLSAIM_DIV_16
06023   *         @arg @ref LL_RCC_PLLSAIM_DIV_17
06024   *         @arg @ref LL_RCC_PLLSAIM_DIV_18
06025   *         @arg @ref LL_RCC_PLLSAIM_DIV_19
06026   *         @arg @ref LL_RCC_PLLSAIM_DIV_20
06027   *         @arg @ref LL_RCC_PLLSAIM_DIV_21
06028   *         @arg @ref LL_RCC_PLLSAIM_DIV_22
06029   *         @arg @ref LL_RCC_PLLSAIM_DIV_23
06030   *         @arg @ref LL_RCC_PLLSAIM_DIV_24
06031   *         @arg @ref LL_RCC_PLLSAIM_DIV_25
06032   *         @arg @ref LL_RCC_PLLSAIM_DIV_26
06033   *         @arg @ref LL_RCC_PLLSAIM_DIV_27
06034   *         @arg @ref LL_RCC_PLLSAIM_DIV_28
06035   *         @arg @ref LL_RCC_PLLSAIM_DIV_29
06036   *         @arg @ref LL_RCC_PLLSAIM_DIV_30
06037   *         @arg @ref LL_RCC_PLLSAIM_DIV_31
06038   *         @arg @ref LL_RCC_PLLSAIM_DIV_32
06039   *         @arg @ref LL_RCC_PLLSAIM_DIV_33
06040   *         @arg @ref LL_RCC_PLLSAIM_DIV_34
06041   *         @arg @ref LL_RCC_PLLSAIM_DIV_35
06042   *         @arg @ref LL_RCC_PLLSAIM_DIV_36
06043   *         @arg @ref LL_RCC_PLLSAIM_DIV_37
06044   *         @arg @ref LL_RCC_PLLSAIM_DIV_38
06045   *         @arg @ref LL_RCC_PLLSAIM_DIV_39
06046   *         @arg @ref LL_RCC_PLLSAIM_DIV_40
06047   *         @arg @ref LL_RCC_PLLSAIM_DIV_41
06048   *         @arg @ref LL_RCC_PLLSAIM_DIV_42
06049   *         @arg @ref LL_RCC_PLLSAIM_DIV_43
06050   *         @arg @ref LL_RCC_PLLSAIM_DIV_44
06051   *         @arg @ref LL_RCC_PLLSAIM_DIV_45
06052   *         @arg @ref LL_RCC_PLLSAIM_DIV_46
06053   *         @arg @ref LL_RCC_PLLSAIM_DIV_47
06054   *         @arg @ref LL_RCC_PLLSAIM_DIV_48
06055   *         @arg @ref LL_RCC_PLLSAIM_DIV_49
06056   *         @arg @ref LL_RCC_PLLSAIM_DIV_50
06057   *         @arg @ref LL_RCC_PLLSAIM_DIV_51
06058   *         @arg @ref LL_RCC_PLLSAIM_DIV_52
06059   *         @arg @ref LL_RCC_PLLSAIM_DIV_53
06060   *         @arg @ref LL_RCC_PLLSAIM_DIV_54
06061   *         @arg @ref LL_RCC_PLLSAIM_DIV_55
06062   *         @arg @ref LL_RCC_PLLSAIM_DIV_56
06063   *         @arg @ref LL_RCC_PLLSAIM_DIV_57
06064   *         @arg @ref LL_RCC_PLLSAIM_DIV_58
06065   *         @arg @ref LL_RCC_PLLSAIM_DIV_59
06066   *         @arg @ref LL_RCC_PLLSAIM_DIV_60
06067   *         @arg @ref LL_RCC_PLLSAIM_DIV_61
06068   *         @arg @ref LL_RCC_PLLSAIM_DIV_62
06069   *         @arg @ref LL_RCC_PLLSAIM_DIV_63
06070   * @param  PLLN Between 49/50(*) and 432
06071   *
06072   *         (*) value not defined in all devices.
06073   * @param  PLLQ This parameter can be one of the following values:
06074   *         @arg @ref LL_RCC_PLLSAIQ_DIV_2
06075   *         @arg @ref LL_RCC_PLLSAIQ_DIV_3
06076   *         @arg @ref LL_RCC_PLLSAIQ_DIV_4
06077   *         @arg @ref LL_RCC_PLLSAIQ_DIV_5
06078   *         @arg @ref LL_RCC_PLLSAIQ_DIV_6
06079   *         @arg @ref LL_RCC_PLLSAIQ_DIV_7
06080   *         @arg @ref LL_RCC_PLLSAIQ_DIV_8
06081   *         @arg @ref LL_RCC_PLLSAIQ_DIV_9
06082   *         @arg @ref LL_RCC_PLLSAIQ_DIV_10
06083   *         @arg @ref LL_RCC_PLLSAIQ_DIV_11
06084   *         @arg @ref LL_RCC_PLLSAIQ_DIV_12
06085   *         @arg @ref LL_RCC_PLLSAIQ_DIV_13
06086   *         @arg @ref LL_RCC_PLLSAIQ_DIV_14
06087   *         @arg @ref LL_RCC_PLLSAIQ_DIV_15
06088   * @param  PLLDIVQ This parameter can be one of the following values:
06089   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_1
06090   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_2
06091   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_3
06092   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_4
06093   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_5
06094   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_6
06095   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_7
06096   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_8
06097   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_9
06098   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_10
06099   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_11
06100   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_12
06101   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_13
06102   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_14
06103   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_15
06104   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_16
06105   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_17
06106   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_18
06107   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_19
06108   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_20
06109   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_21
06110   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_22
06111   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_23
06112   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_24
06113   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_25
06114   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_26
06115   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_27
06116   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_28
06117   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_29
06118   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_30
06119   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_31
06120   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_32
06121   * @retval None
06122   */
06123 __STATIC_INLINE void LL_RCC_PLLSAI_ConfigDomain_SAI(uint32_t Source, uint32_t PLLM, uint32_t PLLN, uint32_t PLLQ, uint32_t PLLDIVQ)
06124 {
06125   MODIFY_REG(RCC->PLLCFGR, RCC_PLLCFGR_PLLSRC, Source);
06126 #if defined(RCC_PLLSAICFGR_PLLSAIM)
06127   MODIFY_REG(RCC->PLLSAICFGR, RCC_PLLSAICFGR_PLLSAIM, PLLM);
06128 #else
06129   MODIFY_REG(RCC->PLLCFGR, RCC_PLLCFGR_PLLM, PLLM);
06130 #endif /* RCC_PLLSAICFGR_PLLSAIM */
06131   MODIFY_REG(RCC->PLLSAICFGR, RCC_PLLSAICFGR_PLLSAIN | RCC_PLLSAICFGR_PLLSAIQ, PLLN << RCC_PLLSAICFGR_PLLSAIN_Pos | PLLQ);
06132   MODIFY_REG(RCC->DCKCFGR, RCC_DCKCFGR_PLLSAIDIVQ, PLLDIVQ);
06133 }
06134 
06135 #if defined(RCC_PLLSAICFGR_PLLSAIP)
06136 /**
06137   * @brief Configure PLLSAI used for 48Mhz domain clock
06138   * @note PLL Source and PLLM Divider can be written only when PLL,
06139   *       PLLI2S and PLLSAI(*) are disabled
06140   * @note PLLN/PLLP can be written only when PLLSAI is disabled
06141   * @note This  can be selected for USB, RNG, SDIO
06142   * @rmtoll PLLCFGR      PLLSRC        LL_RCC_PLLSAI_ConfigDomain_48M\n
06143   *         PLLCFGR      PLLM          LL_RCC_PLLSAI_ConfigDomain_48M\n
06144   *         PLLSAICFGR   PLLSAIM       LL_RCC_PLLSAI_ConfigDomain_48M\n
06145   *         PLLSAICFGR   PLLSAIN       LL_RCC_PLLSAI_ConfigDomain_48M\n
06146   *         PLLSAICFGR   PLLSAIP       LL_RCC_PLLSAI_ConfigDomain_48M
06147   * @param  Source This parameter can be one of the following values:
06148   *         @arg @ref LL_RCC_PLLSOURCE_HSI
06149   *         @arg @ref LL_RCC_PLLSOURCE_HSE
06150   * @param  PLLM This parameter can be one of the following values:
06151   *         @arg @ref LL_RCC_PLLSAIM_DIV_2
06152   *         @arg @ref LL_RCC_PLLSAIM_DIV_3
06153   *         @arg @ref LL_RCC_PLLSAIM_DIV_4
06154   *         @arg @ref LL_RCC_PLLSAIM_DIV_5
06155   *         @arg @ref LL_RCC_PLLSAIM_DIV_6
06156   *         @arg @ref LL_RCC_PLLSAIM_DIV_7
06157   *         @arg @ref LL_RCC_PLLSAIM_DIV_8
06158   *         @arg @ref LL_RCC_PLLSAIM_DIV_9
06159   *         @arg @ref LL_RCC_PLLSAIM_DIV_10
06160   *         @arg @ref LL_RCC_PLLSAIM_DIV_11
06161   *         @arg @ref LL_RCC_PLLSAIM_DIV_12
06162   *         @arg @ref LL_RCC_PLLSAIM_DIV_13
06163   *         @arg @ref LL_RCC_PLLSAIM_DIV_14
06164   *         @arg @ref LL_RCC_PLLSAIM_DIV_15
06165   *         @arg @ref LL_RCC_PLLSAIM_DIV_16
06166   *         @arg @ref LL_RCC_PLLSAIM_DIV_17
06167   *         @arg @ref LL_RCC_PLLSAIM_DIV_18
06168   *         @arg @ref LL_RCC_PLLSAIM_DIV_19
06169   *         @arg @ref LL_RCC_PLLSAIM_DIV_20
06170   *         @arg @ref LL_RCC_PLLSAIM_DIV_21
06171   *         @arg @ref LL_RCC_PLLSAIM_DIV_22
06172   *         @arg @ref LL_RCC_PLLSAIM_DIV_23
06173   *         @arg @ref LL_RCC_PLLSAIM_DIV_24
06174   *         @arg @ref LL_RCC_PLLSAIM_DIV_25
06175   *         @arg @ref LL_RCC_PLLSAIM_DIV_26
06176   *         @arg @ref LL_RCC_PLLSAIM_DIV_27
06177   *         @arg @ref LL_RCC_PLLSAIM_DIV_28
06178   *         @arg @ref LL_RCC_PLLSAIM_DIV_29
06179   *         @arg @ref LL_RCC_PLLSAIM_DIV_30
06180   *         @arg @ref LL_RCC_PLLSAIM_DIV_31
06181   *         @arg @ref LL_RCC_PLLSAIM_DIV_32
06182   *         @arg @ref LL_RCC_PLLSAIM_DIV_33
06183   *         @arg @ref LL_RCC_PLLSAIM_DIV_34
06184   *         @arg @ref LL_RCC_PLLSAIM_DIV_35
06185   *         @arg @ref LL_RCC_PLLSAIM_DIV_36
06186   *         @arg @ref LL_RCC_PLLSAIM_DIV_37
06187   *         @arg @ref LL_RCC_PLLSAIM_DIV_38
06188   *         @arg @ref LL_RCC_PLLSAIM_DIV_39
06189   *         @arg @ref LL_RCC_PLLSAIM_DIV_40
06190   *         @arg @ref LL_RCC_PLLSAIM_DIV_41
06191   *         @arg @ref LL_RCC_PLLSAIM_DIV_42
06192   *         @arg @ref LL_RCC_PLLSAIM_DIV_43
06193   *         @arg @ref LL_RCC_PLLSAIM_DIV_44
06194   *         @arg @ref LL_RCC_PLLSAIM_DIV_45
06195   *         @arg @ref LL_RCC_PLLSAIM_DIV_46
06196   *         @arg @ref LL_RCC_PLLSAIM_DIV_47
06197   *         @arg @ref LL_RCC_PLLSAIM_DIV_48
06198   *         @arg @ref LL_RCC_PLLSAIM_DIV_49
06199   *         @arg @ref LL_RCC_PLLSAIM_DIV_50
06200   *         @arg @ref LL_RCC_PLLSAIM_DIV_51
06201   *         @arg @ref LL_RCC_PLLSAIM_DIV_52
06202   *         @arg @ref LL_RCC_PLLSAIM_DIV_53
06203   *         @arg @ref LL_RCC_PLLSAIM_DIV_54
06204   *         @arg @ref LL_RCC_PLLSAIM_DIV_55
06205   *         @arg @ref LL_RCC_PLLSAIM_DIV_56
06206   *         @arg @ref LL_RCC_PLLSAIM_DIV_57
06207   *         @arg @ref LL_RCC_PLLSAIM_DIV_58
06208   *         @arg @ref LL_RCC_PLLSAIM_DIV_59
06209   *         @arg @ref LL_RCC_PLLSAIM_DIV_60
06210   *         @arg @ref LL_RCC_PLLSAIM_DIV_61
06211   *         @arg @ref LL_RCC_PLLSAIM_DIV_62
06212   *         @arg @ref LL_RCC_PLLSAIM_DIV_63
06213   * @param  PLLN Between 50 and 432
06214   * @param  PLLP This parameter can be one of the following values:
06215   *         @arg @ref LL_RCC_PLLSAIP_DIV_2
06216   *         @arg @ref LL_RCC_PLLSAIP_DIV_4
06217   *         @arg @ref LL_RCC_PLLSAIP_DIV_6
06218   *         @arg @ref LL_RCC_PLLSAIP_DIV_8
06219   * @retval None
06220   */
06221 __STATIC_INLINE void LL_RCC_PLLSAI_ConfigDomain_48M(uint32_t Source, uint32_t PLLM, uint32_t PLLN, uint32_t PLLP)
06222 {
06223   MODIFY_REG(RCC->PLLCFGR, RCC_PLLCFGR_PLLSRC, Source);
06224 #if defined(RCC_PLLSAICFGR_PLLSAIM)
06225   MODIFY_REG(RCC->PLLSAICFGR, RCC_PLLSAICFGR_PLLSAIM, PLLM);
06226 #else
06227   MODIFY_REG(RCC->PLLCFGR, RCC_PLLCFGR_PLLM, PLLM);
06228 #endif /* RCC_PLLSAICFGR_PLLSAIM */
06229   MODIFY_REG(RCC->PLLSAICFGR, RCC_PLLSAICFGR_PLLSAIN | RCC_PLLSAICFGR_PLLSAIP, PLLN << RCC_PLLSAICFGR_PLLSAIN_Pos | PLLP);
06230 }
06231 #endif /* RCC_PLLSAICFGR_PLLSAIP */
06232 
06233 #if defined(LTDC)
06234 /**
06235   * @brief  Configure PLLSAI used for LTDC domain clock
06236   * @note PLL Source and PLLM Divider can be written only when PLL,
06237   *       PLLI2S and PLLSAI(*) are disabled
06238   * @note PLLN/PLLR can be written only when PLLSAI is disabled
06239   * @note This  can be selected for LTDC
06240   * @rmtoll PLLCFGR      PLLSRC        LL_RCC_PLLSAI_ConfigDomain_LTDC\n
06241   *         PLLCFGR      PLLM          LL_RCC_PLLSAI_ConfigDomain_LTDC\n
06242   *         PLLSAICFGR   PLLSAIN       LL_RCC_PLLSAI_ConfigDomain_LTDC\n
06243   *         PLLSAICFGR   PLLSAIR       LL_RCC_PLLSAI_ConfigDomain_LTDC\n
06244   *         DCKCFGR      PLLSAIDIVR    LL_RCC_PLLSAI_ConfigDomain_LTDC
06245   * @param  Source This parameter can be one of the following values:
06246   *         @arg @ref LL_RCC_PLLSOURCE_HSI
06247   *         @arg @ref LL_RCC_PLLSOURCE_HSE
06248   * @param  PLLM This parameter can be one of the following values:
06249   *         @arg @ref LL_RCC_PLLSAIM_DIV_2
06250   *         @arg @ref LL_RCC_PLLSAIM_DIV_3
06251   *         @arg @ref LL_RCC_PLLSAIM_DIV_4
06252   *         @arg @ref LL_RCC_PLLSAIM_DIV_5
06253   *         @arg @ref LL_RCC_PLLSAIM_DIV_6
06254   *         @arg @ref LL_RCC_PLLSAIM_DIV_7
06255   *         @arg @ref LL_RCC_PLLSAIM_DIV_8
06256   *         @arg @ref LL_RCC_PLLSAIM_DIV_9
06257   *         @arg @ref LL_RCC_PLLSAIM_DIV_10
06258   *         @arg @ref LL_RCC_PLLSAIM_DIV_11
06259   *         @arg @ref LL_RCC_PLLSAIM_DIV_12
06260   *         @arg @ref LL_RCC_PLLSAIM_DIV_13
06261   *         @arg @ref LL_RCC_PLLSAIM_DIV_14
06262   *         @arg @ref LL_RCC_PLLSAIM_DIV_15
06263   *         @arg @ref LL_RCC_PLLSAIM_DIV_16
06264   *         @arg @ref LL_RCC_PLLSAIM_DIV_17
06265   *         @arg @ref LL_RCC_PLLSAIM_DIV_18
06266   *         @arg @ref LL_RCC_PLLSAIM_DIV_19
06267   *         @arg @ref LL_RCC_PLLSAIM_DIV_20
06268   *         @arg @ref LL_RCC_PLLSAIM_DIV_21
06269   *         @arg @ref LL_RCC_PLLSAIM_DIV_22
06270   *         @arg @ref LL_RCC_PLLSAIM_DIV_23
06271   *         @arg @ref LL_RCC_PLLSAIM_DIV_24
06272   *         @arg @ref LL_RCC_PLLSAIM_DIV_25
06273   *         @arg @ref LL_RCC_PLLSAIM_DIV_26
06274   *         @arg @ref LL_RCC_PLLSAIM_DIV_27
06275   *         @arg @ref LL_RCC_PLLSAIM_DIV_28
06276   *         @arg @ref LL_RCC_PLLSAIM_DIV_29
06277   *         @arg @ref LL_RCC_PLLSAIM_DIV_30
06278   *         @arg @ref LL_RCC_PLLSAIM_DIV_31
06279   *         @arg @ref LL_RCC_PLLSAIM_DIV_32
06280   *         @arg @ref LL_RCC_PLLSAIM_DIV_33
06281   *         @arg @ref LL_RCC_PLLSAIM_DIV_34
06282   *         @arg @ref LL_RCC_PLLSAIM_DIV_35
06283   *         @arg @ref LL_RCC_PLLSAIM_DIV_36
06284   *         @arg @ref LL_RCC_PLLSAIM_DIV_37
06285   *         @arg @ref LL_RCC_PLLSAIM_DIV_38
06286   *         @arg @ref LL_RCC_PLLSAIM_DIV_39
06287   *         @arg @ref LL_RCC_PLLSAIM_DIV_40
06288   *         @arg @ref LL_RCC_PLLSAIM_DIV_41
06289   *         @arg @ref LL_RCC_PLLSAIM_DIV_42
06290   *         @arg @ref LL_RCC_PLLSAIM_DIV_43
06291   *         @arg @ref LL_RCC_PLLSAIM_DIV_44
06292   *         @arg @ref LL_RCC_PLLSAIM_DIV_45
06293   *         @arg @ref LL_RCC_PLLSAIM_DIV_46
06294   *         @arg @ref LL_RCC_PLLSAIM_DIV_47
06295   *         @arg @ref LL_RCC_PLLSAIM_DIV_48
06296   *         @arg @ref LL_RCC_PLLSAIM_DIV_49
06297   *         @arg @ref LL_RCC_PLLSAIM_DIV_50
06298   *         @arg @ref LL_RCC_PLLSAIM_DIV_51
06299   *         @arg @ref LL_RCC_PLLSAIM_DIV_52
06300   *         @arg @ref LL_RCC_PLLSAIM_DIV_53
06301   *         @arg @ref LL_RCC_PLLSAIM_DIV_54
06302   *         @arg @ref LL_RCC_PLLSAIM_DIV_55
06303   *         @arg @ref LL_RCC_PLLSAIM_DIV_56
06304   *         @arg @ref LL_RCC_PLLSAIM_DIV_57
06305   *         @arg @ref LL_RCC_PLLSAIM_DIV_58
06306   *         @arg @ref LL_RCC_PLLSAIM_DIV_59
06307   *         @arg @ref LL_RCC_PLLSAIM_DIV_60
06308   *         @arg @ref LL_RCC_PLLSAIM_DIV_61
06309   *         @arg @ref LL_RCC_PLLSAIM_DIV_62
06310   *         @arg @ref LL_RCC_PLLSAIM_DIV_63
06311   * @param  PLLN Between 49/50(*) and 432
06312   *
06313   *         (*) value not defined in all devices.
06314   * @param  PLLR This parameter can be one of the following values:
06315   *         @arg @ref LL_RCC_PLLSAIR_DIV_2
06316   *         @arg @ref LL_RCC_PLLSAIR_DIV_3
06317   *         @arg @ref LL_RCC_PLLSAIR_DIV_4
06318   *         @arg @ref LL_RCC_PLLSAIR_DIV_5
06319   *         @arg @ref LL_RCC_PLLSAIR_DIV_6
06320   *         @arg @ref LL_RCC_PLLSAIR_DIV_7
06321   * @param  PLLDIVR This parameter can be one of the following values:
06322   *         @arg @ref LL_RCC_PLLSAIDIVR_DIV_2
06323   *         @arg @ref LL_RCC_PLLSAIDIVR_DIV_4
06324   *         @arg @ref LL_RCC_PLLSAIDIVR_DIV_8
06325   *         @arg @ref LL_RCC_PLLSAIDIVR_DIV_16
06326   * @retval None
06327   */
06328 __STATIC_INLINE void LL_RCC_PLLSAI_ConfigDomain_LTDC(uint32_t Source, uint32_t PLLM, uint32_t PLLN, uint32_t PLLR, uint32_t PLLDIVR)
06329 {
06330   MODIFY_REG(RCC->PLLCFGR, RCC_PLLCFGR_PLLSRC | RCC_PLLCFGR_PLLM, Source | PLLM);
06331   MODIFY_REG(RCC->PLLSAICFGR, RCC_PLLSAICFGR_PLLSAIN | RCC_PLLSAICFGR_PLLSAIR, PLLN << RCC_PLLSAICFGR_PLLSAIN_Pos | PLLR);
06332   MODIFY_REG(RCC->DCKCFGR, RCC_DCKCFGR_PLLSAIDIVR, PLLDIVR);
06333 }
06334 #endif /* LTDC */
06335 
06336 /**
06337   * @brief  Get division factor for PLLSAI input clock
06338   * @rmtoll PLLCFGR      PLLM          LL_RCC_PLLSAI_GetDivider\n
06339   *         PLLSAICFGR   PLLSAIM       LL_RCC_PLLSAI_GetDivider
06340   * @retval Returned value can be one of the following values:
06341   *         @arg @ref LL_RCC_PLLSAIM_DIV_2
06342   *         @arg @ref LL_RCC_PLLSAIM_DIV_3
06343   *         @arg @ref LL_RCC_PLLSAIM_DIV_4
06344   *         @arg @ref LL_RCC_PLLSAIM_DIV_5
06345   *         @arg @ref LL_RCC_PLLSAIM_DIV_6
06346   *         @arg @ref LL_RCC_PLLSAIM_DIV_7
06347   *         @arg @ref LL_RCC_PLLSAIM_DIV_8
06348   *         @arg @ref LL_RCC_PLLSAIM_DIV_9
06349   *         @arg @ref LL_RCC_PLLSAIM_DIV_10
06350   *         @arg @ref LL_RCC_PLLSAIM_DIV_11
06351   *         @arg @ref LL_RCC_PLLSAIM_DIV_12
06352   *         @arg @ref LL_RCC_PLLSAIM_DIV_13
06353   *         @arg @ref LL_RCC_PLLSAIM_DIV_14
06354   *         @arg @ref LL_RCC_PLLSAIM_DIV_15
06355   *         @arg @ref LL_RCC_PLLSAIM_DIV_16
06356   *         @arg @ref LL_RCC_PLLSAIM_DIV_17
06357   *         @arg @ref LL_RCC_PLLSAIM_DIV_18
06358   *         @arg @ref LL_RCC_PLLSAIM_DIV_19
06359   *         @arg @ref LL_RCC_PLLSAIM_DIV_20
06360   *         @arg @ref LL_RCC_PLLSAIM_DIV_21
06361   *         @arg @ref LL_RCC_PLLSAIM_DIV_22
06362   *         @arg @ref LL_RCC_PLLSAIM_DIV_23
06363   *         @arg @ref LL_RCC_PLLSAIM_DIV_24
06364   *         @arg @ref LL_RCC_PLLSAIM_DIV_25
06365   *         @arg @ref LL_RCC_PLLSAIM_DIV_26
06366   *         @arg @ref LL_RCC_PLLSAIM_DIV_27
06367   *         @arg @ref LL_RCC_PLLSAIM_DIV_28
06368   *         @arg @ref LL_RCC_PLLSAIM_DIV_29
06369   *         @arg @ref LL_RCC_PLLSAIM_DIV_30
06370   *         @arg @ref LL_RCC_PLLSAIM_DIV_31
06371   *         @arg @ref LL_RCC_PLLSAIM_DIV_32
06372   *         @arg @ref LL_RCC_PLLSAIM_DIV_33
06373   *         @arg @ref LL_RCC_PLLSAIM_DIV_34
06374   *         @arg @ref LL_RCC_PLLSAIM_DIV_35
06375   *         @arg @ref LL_RCC_PLLSAIM_DIV_36
06376   *         @arg @ref LL_RCC_PLLSAIM_DIV_37
06377   *         @arg @ref LL_RCC_PLLSAIM_DIV_38
06378   *         @arg @ref LL_RCC_PLLSAIM_DIV_39
06379   *         @arg @ref LL_RCC_PLLSAIM_DIV_40
06380   *         @arg @ref LL_RCC_PLLSAIM_DIV_41
06381   *         @arg @ref LL_RCC_PLLSAIM_DIV_42
06382   *         @arg @ref LL_RCC_PLLSAIM_DIV_43
06383   *         @arg @ref LL_RCC_PLLSAIM_DIV_44
06384   *         @arg @ref LL_RCC_PLLSAIM_DIV_45
06385   *         @arg @ref LL_RCC_PLLSAIM_DIV_46
06386   *         @arg @ref LL_RCC_PLLSAIM_DIV_47
06387   *         @arg @ref LL_RCC_PLLSAIM_DIV_48
06388   *         @arg @ref LL_RCC_PLLSAIM_DIV_49
06389   *         @arg @ref LL_RCC_PLLSAIM_DIV_50
06390   *         @arg @ref LL_RCC_PLLSAIM_DIV_51
06391   *         @arg @ref LL_RCC_PLLSAIM_DIV_52
06392   *         @arg @ref LL_RCC_PLLSAIM_DIV_53
06393   *         @arg @ref LL_RCC_PLLSAIM_DIV_54
06394   *         @arg @ref LL_RCC_PLLSAIM_DIV_55
06395   *         @arg @ref LL_RCC_PLLSAIM_DIV_56
06396   *         @arg @ref LL_RCC_PLLSAIM_DIV_57
06397   *         @arg @ref LL_RCC_PLLSAIM_DIV_58
06398   *         @arg @ref LL_RCC_PLLSAIM_DIV_59
06399   *         @arg @ref LL_RCC_PLLSAIM_DIV_60
06400   *         @arg @ref LL_RCC_PLLSAIM_DIV_61
06401   *         @arg @ref LL_RCC_PLLSAIM_DIV_62
06402   *         @arg @ref LL_RCC_PLLSAIM_DIV_63
06403   */
06404 __STATIC_INLINE uint32_t LL_RCC_PLLSAI_GetDivider(void)
06405 {
06406 #if defined(RCC_PLLSAICFGR_PLLSAIM)
06407   return (uint32_t)(READ_BIT(RCC->PLLSAICFGR, RCC_PLLSAICFGR_PLLSAIM));
06408 #else
06409   return (uint32_t)(READ_BIT(RCC->PLLCFGR, RCC_PLLCFGR_PLLM));
06410 #endif /* RCC_PLLSAICFGR_PLLSAIM */
06411 }
06412 
06413 /**
06414   * @brief  Get SAIPLL multiplication factor for VCO
06415   * @rmtoll PLLSAICFGR  PLLSAIN      LL_RCC_PLLSAI_GetN
06416   * @retval Between 49/50(*) and 432
06417   *
06418   *         (*) value not defined in all devices.
06419   */
06420 __STATIC_INLINE uint32_t LL_RCC_PLLSAI_GetN(void)
06421 {
06422   return (uint32_t)(READ_BIT(RCC->PLLSAICFGR, RCC_PLLSAICFGR_PLLSAIN) >> RCC_PLLSAICFGR_PLLSAIN_Pos);
06423 }
06424 
06425 /**
06426   * @brief  Get SAIPLL division factor for PLLSAIQ
06427   * @rmtoll PLLSAICFGR  PLLSAIQ      LL_RCC_PLLSAI_GetQ
06428   * @retval Returned value can be one of the following values:
06429   *         @arg @ref LL_RCC_PLLSAIQ_DIV_2
06430   *         @arg @ref LL_RCC_PLLSAIQ_DIV_3
06431   *         @arg @ref LL_RCC_PLLSAIQ_DIV_4
06432   *         @arg @ref LL_RCC_PLLSAIQ_DIV_5
06433   *         @arg @ref LL_RCC_PLLSAIQ_DIV_6
06434   *         @arg @ref LL_RCC_PLLSAIQ_DIV_7
06435   *         @arg @ref LL_RCC_PLLSAIQ_DIV_8
06436   *         @arg @ref LL_RCC_PLLSAIQ_DIV_9
06437   *         @arg @ref LL_RCC_PLLSAIQ_DIV_10
06438   *         @arg @ref LL_RCC_PLLSAIQ_DIV_11
06439   *         @arg @ref LL_RCC_PLLSAIQ_DIV_12
06440   *         @arg @ref LL_RCC_PLLSAIQ_DIV_13
06441   *         @arg @ref LL_RCC_PLLSAIQ_DIV_14
06442   *         @arg @ref LL_RCC_PLLSAIQ_DIV_15
06443   */
06444 __STATIC_INLINE uint32_t LL_RCC_PLLSAI_GetQ(void)
06445 {
06446   return (uint32_t)(READ_BIT(RCC->PLLSAICFGR, RCC_PLLSAICFGR_PLLSAIQ));
06447 }
06448 
06449 #if defined(RCC_PLLSAICFGR_PLLSAIR)
06450 /**
06451   * @brief  Get SAIPLL division factor for PLLSAIR
06452   * @note used for PLLSAICLK (SAI clock)
06453   * @rmtoll PLLSAICFGR  PLLSAIR      LL_RCC_PLLSAI_GetR
06454   * @retval Returned value can be one of the following values:
06455   *         @arg @ref LL_RCC_PLLSAIR_DIV_2
06456   *         @arg @ref LL_RCC_PLLSAIR_DIV_3
06457   *         @arg @ref LL_RCC_PLLSAIR_DIV_4
06458   *         @arg @ref LL_RCC_PLLSAIR_DIV_5
06459   *         @arg @ref LL_RCC_PLLSAIR_DIV_6
06460   *         @arg @ref LL_RCC_PLLSAIR_DIV_7
06461   */
06462 __STATIC_INLINE uint32_t LL_RCC_PLLSAI_GetR(void)
06463 {
06464   return (uint32_t)(READ_BIT(RCC->PLLSAICFGR, RCC_PLLSAICFGR_PLLSAIR));
06465 }
06466 #endif /* RCC_PLLSAICFGR_PLLSAIR */
06467 
06468 #if defined(RCC_PLLSAICFGR_PLLSAIP)
06469 /**
06470   * @brief  Get SAIPLL division factor for PLLSAIP
06471   * @note used for PLL48MCLK (48M domain clock)
06472   * @rmtoll PLLSAICFGR  PLLSAIP      LL_RCC_PLLSAI_GetP
06473   * @retval Returned value can be one of the following values:
06474   *         @arg @ref LL_RCC_PLLSAIP_DIV_2
06475   *         @arg @ref LL_RCC_PLLSAIP_DIV_4
06476   *         @arg @ref LL_RCC_PLLSAIP_DIV_6
06477   *         @arg @ref LL_RCC_PLLSAIP_DIV_8
06478   */
06479 __STATIC_INLINE uint32_t LL_RCC_PLLSAI_GetP(void)
06480 {
06481   return (uint32_t)(READ_BIT(RCC->PLLSAICFGR, RCC_PLLSAICFGR_PLLSAIP));
06482 }
06483 #endif /* RCC_PLLSAICFGR_PLLSAIP */
06484 
06485 /**
06486   * @brief  Get SAIPLL division factor for PLLSAIDIVQ
06487   * @note used PLLSAICLK selected (SAI clock)
06488   * @rmtoll DCKCFGR   PLLSAIDIVQ      LL_RCC_PLLSAI_GetDIVQ
06489   * @retval Returned value can be one of the following values:
06490   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_1
06491   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_2
06492   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_3
06493   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_4
06494   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_5
06495   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_6
06496   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_7
06497   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_8
06498   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_9
06499   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_10
06500   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_11
06501   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_12
06502   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_13
06503   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_14
06504   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_15
06505   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_16
06506   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_17
06507   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_18
06508   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_19
06509   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_20
06510   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_21
06511   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_22
06512   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_23
06513   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_24
06514   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_25
06515   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_26
06516   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_27
06517   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_28
06518   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_29
06519   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_30
06520   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_31
06521   *         @arg @ref LL_RCC_PLLSAIDIVQ_DIV_32
06522   */
06523 __STATIC_INLINE uint32_t LL_RCC_PLLSAI_GetDIVQ(void)
06524 {
06525   return (uint32_t)(READ_BIT(RCC->DCKCFGR, RCC_DCKCFGR_PLLSAIDIVQ));
06526 }
06527 
06528 #if defined(RCC_DCKCFGR_PLLSAIDIVR)
06529 /**
06530   * @brief  Get SAIPLL division factor for PLLSAIDIVR
06531   * @note used for LTDC domain clock
06532   * @rmtoll DCKCFGR  PLLSAIDIVR      LL_RCC_PLLSAI_GetDIVR
06533   * @retval Returned value can be one of the following values:
06534   *         @arg @ref LL_RCC_PLLSAIDIVR_DIV_2
06535   *         @arg @ref LL_RCC_PLLSAIDIVR_DIV_4
06536   *         @arg @ref LL_RCC_PLLSAIDIVR_DIV_8
06537   *         @arg @ref LL_RCC_PLLSAIDIVR_DIV_16
06538   */
06539 __STATIC_INLINE uint32_t LL_RCC_PLLSAI_GetDIVR(void)
06540 {
06541   return (uint32_t)(READ_BIT(RCC->DCKCFGR, RCC_DCKCFGR_PLLSAIDIVR));
06542 }
06543 #endif /* RCC_DCKCFGR_PLLSAIDIVR */
06544 
06545 /**
06546   * @}
06547   */
06548 #endif /* RCC_PLLSAI_SUPPORT */
06549 
06550 /** @defgroup RCC_LL_EF_FLAG_Management FLAG Management
06551   * @{
06552   */
06553 
06554 /**
06555   * @brief  Clear LSI ready interrupt flag
06556   * @rmtoll CIR         LSIRDYC       LL_RCC_ClearFlag_LSIRDY
06557   * @retval None
06558   */
06559 __STATIC_INLINE void LL_RCC_ClearFlag_LSIRDY(void)
06560 {
06561   SET_BIT(RCC->CIR, RCC_CIR_LSIRDYC);
06562 }
06563 
06564 /**
06565   * @brief  Clear LSE ready interrupt flag
06566   * @rmtoll CIR         LSERDYC       LL_RCC_ClearFlag_LSERDY
06567   * @retval None
06568   */
06569 __STATIC_INLINE void LL_RCC_ClearFlag_LSERDY(void)
06570 {
06571   SET_BIT(RCC->CIR, RCC_CIR_LSERDYC);
06572 }
06573 
06574 /**
06575   * @brief  Clear HSI ready interrupt flag
06576   * @rmtoll CIR         HSIRDYC       LL_RCC_ClearFlag_HSIRDY
06577   * @retval None
06578   */
06579 __STATIC_INLINE void LL_RCC_ClearFlag_HSIRDY(void)
06580 {
06581   SET_BIT(RCC->CIR, RCC_CIR_HSIRDYC);
06582 }
06583 
06584 /**
06585   * @brief  Clear HSE ready interrupt flag
06586   * @rmtoll CIR         HSERDYC       LL_RCC_ClearFlag_HSERDY
06587   * @retval None
06588   */
06589 __STATIC_INLINE void LL_RCC_ClearFlag_HSERDY(void)
06590 {
06591   SET_BIT(RCC->CIR, RCC_CIR_HSERDYC);
06592 }
06593 
06594 /**
06595   * @brief  Clear PLL ready interrupt flag
06596   * @rmtoll CIR         PLLRDYC       LL_RCC_ClearFlag_PLLRDY
06597   * @retval None
06598   */
06599 __STATIC_INLINE void LL_RCC_ClearFlag_PLLRDY(void)
06600 {
06601   SET_BIT(RCC->CIR, RCC_CIR_PLLRDYC);
06602 }
06603 
06604 #if defined(RCC_PLLI2S_SUPPORT)
06605 /**
06606   * @brief  Clear PLLI2S ready interrupt flag
06607   * @rmtoll CIR         PLLI2SRDYC   LL_RCC_ClearFlag_PLLI2SRDY
06608   * @retval None
06609   */
06610 __STATIC_INLINE void LL_RCC_ClearFlag_PLLI2SRDY(void)
06611 {
06612   SET_BIT(RCC->CIR, RCC_CIR_PLLI2SRDYC);
06613 }
06614 
06615 #endif /* RCC_PLLI2S_SUPPORT */
06616 
06617 #if defined(RCC_PLLSAI_SUPPORT)
06618 /**
06619   * @brief  Clear PLLSAI ready interrupt flag
06620   * @rmtoll CIR         PLLSAIRDYC   LL_RCC_ClearFlag_PLLSAIRDY
06621   * @retval None
06622   */
06623 __STATIC_INLINE void LL_RCC_ClearFlag_PLLSAIRDY(void)
06624 {
06625   SET_BIT(RCC->CIR, RCC_CIR_PLLSAIRDYC);
06626 }
06627 
06628 #endif /* RCC_PLLSAI_SUPPORT */
06629 
06630 /**
06631   * @brief  Clear Clock security system interrupt flag
06632   * @rmtoll CIR         CSSC          LL_RCC_ClearFlag_HSECSS
06633   * @retval None
06634   */
06635 __STATIC_INLINE void LL_RCC_ClearFlag_HSECSS(void)
06636 {
06637   SET_BIT(RCC->CIR, RCC_CIR_CSSC);
06638 }
06639 
06640 /**
06641   * @brief  Check if LSI ready interrupt occurred or not
06642   * @rmtoll CIR         LSIRDYF       LL_RCC_IsActiveFlag_LSIRDY
06643   * @retval State of bit (1 or 0).
06644   */
06645 __STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_LSIRDY(void)
06646 {
06647   return (READ_BIT(RCC->CIR, RCC_CIR_LSIRDYF) == (RCC_CIR_LSIRDYF));
06648 }
06649 
06650 /**
06651   * @brief  Check if LSE ready interrupt occurred or not
06652   * @rmtoll CIR         LSERDYF       LL_RCC_IsActiveFlag_LSERDY
06653   * @retval State of bit (1 or 0).
06654   */
06655 __STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_LSERDY(void)
06656 {
06657   return (READ_BIT(RCC->CIR, RCC_CIR_LSERDYF) == (RCC_CIR_LSERDYF));
06658 }
06659 
06660 /**
06661   * @brief  Check if HSI ready interrupt occurred or not
06662   * @rmtoll CIR         HSIRDYF       LL_RCC_IsActiveFlag_HSIRDY
06663   * @retval State of bit (1 or 0).
06664   */
06665 __STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_HSIRDY(void)
06666 {
06667   return (READ_BIT(RCC->CIR, RCC_CIR_HSIRDYF) == (RCC_CIR_HSIRDYF));
06668 }
06669 
06670 /**
06671   * @brief  Check if HSE ready interrupt occurred or not
06672   * @rmtoll CIR         HSERDYF       LL_RCC_IsActiveFlag_HSERDY
06673   * @retval State of bit (1 or 0).
06674   */
06675 __STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_HSERDY(void)
06676 {
06677   return (READ_BIT(RCC->CIR, RCC_CIR_HSERDYF) == (RCC_CIR_HSERDYF));
06678 }
06679 
06680 /**
06681   * @brief  Check if PLL ready interrupt occurred or not
06682   * @rmtoll CIR         PLLRDYF       LL_RCC_IsActiveFlag_PLLRDY
06683   * @retval State of bit (1 or 0).
06684   */
06685 __STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_PLLRDY(void)
06686 {
06687   return (READ_BIT(RCC->CIR, RCC_CIR_PLLRDYF) == (RCC_CIR_PLLRDYF));
06688 }
06689 
06690 #if defined(RCC_PLLI2S_SUPPORT)
06691 /**
06692   * @brief  Check if PLLI2S ready interrupt occurred or not
06693   * @rmtoll CIR         PLLI2SRDYF   LL_RCC_IsActiveFlag_PLLI2SRDY
06694   * @retval State of bit (1 or 0).
06695   */
06696 __STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_PLLI2SRDY(void)
06697 {
06698   return (READ_BIT(RCC->CIR, RCC_CIR_PLLI2SRDYF) == (RCC_CIR_PLLI2SRDYF));
06699 }
06700 #endif /* RCC_PLLI2S_SUPPORT */
06701 
06702 #if defined(RCC_PLLSAI_SUPPORT)
06703 /**
06704   * @brief  Check if PLLSAI ready interrupt occurred or not
06705   * @rmtoll CIR         PLLSAIRDYF   LL_RCC_IsActiveFlag_PLLSAIRDY
06706   * @retval State of bit (1 or 0).
06707   */
06708 __STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_PLLSAIRDY(void)
06709 {
06710   return (READ_BIT(RCC->CIR, RCC_CIR_PLLSAIRDYF) == (RCC_CIR_PLLSAIRDYF));
06711 }
06712 #endif /* RCC_PLLSAI_SUPPORT */
06713 
06714 /**
06715   * @brief  Check if Clock security system interrupt occurred or not
06716   * @rmtoll CIR         CSSF          LL_RCC_IsActiveFlag_HSECSS
06717   * @retval State of bit (1 or 0).
06718   */
06719 __STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_HSECSS(void)
06720 {
06721   return (READ_BIT(RCC->CIR, RCC_CIR_CSSF) == (RCC_CIR_CSSF));
06722 }
06723 
06724 /**
06725   * @brief  Check if RCC flag Independent Watchdog reset is set or not.
06726   * @rmtoll CSR          IWDGRSTF      LL_RCC_IsActiveFlag_IWDGRST
06727   * @retval State of bit (1 or 0).
06728   */
06729 __STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_IWDGRST(void)
06730 {
06731   return (READ_BIT(RCC->CSR, RCC_CSR_IWDGRSTF) == (RCC_CSR_IWDGRSTF));
06732 }
06733 
06734 /**
06735   * @brief  Check if RCC flag Low Power reset is set or not.
06736   * @rmtoll CSR          LPWRRSTF      LL_RCC_IsActiveFlag_LPWRRST
06737   * @retval State of bit (1 or 0).
06738   */
06739 __STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_LPWRRST(void)
06740 {
06741   return (READ_BIT(RCC->CSR, RCC_CSR_LPWRRSTF) == (RCC_CSR_LPWRRSTF));
06742 }
06743 
06744 /**
06745   * @brief  Check if RCC flag Pin reset is set or not.
06746   * @rmtoll CSR          PINRSTF       LL_RCC_IsActiveFlag_PINRST
06747   * @retval State of bit (1 or 0).
06748   */
06749 __STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_PINRST(void)
06750 {
06751   return (READ_BIT(RCC->CSR, RCC_CSR_PINRSTF) == (RCC_CSR_PINRSTF));
06752 }
06753 
06754 /**
06755   * @brief  Check if RCC flag POR/PDR reset is set or not.
06756   * @rmtoll CSR          PORRSTF       LL_RCC_IsActiveFlag_PORRST
06757   * @retval State of bit (1 or 0).
06758   */
06759 __STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_PORRST(void)
06760 {
06761   return (READ_BIT(RCC->CSR, RCC_CSR_PORRSTF) == (RCC_CSR_PORRSTF));
06762 }
06763 
06764 /**
06765   * @brief  Check if RCC flag Software reset is set or not.
06766   * @rmtoll CSR          SFTRSTF       LL_RCC_IsActiveFlag_SFTRST
06767   * @retval State of bit (1 or 0).
06768   */
06769 __STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_SFTRST(void)
06770 {
06771   return (READ_BIT(RCC->CSR, RCC_CSR_SFTRSTF) == (RCC_CSR_SFTRSTF));
06772 }
06773 
06774 /**
06775   * @brief  Check if RCC flag Window Watchdog reset is set or not.
06776   * @rmtoll CSR          WWDGRSTF      LL_RCC_IsActiveFlag_WWDGRST
06777   * @retval State of bit (1 or 0).
06778   */
06779 __STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_WWDGRST(void)
06780 {
06781   return (READ_BIT(RCC->CSR, RCC_CSR_WWDGRSTF) == (RCC_CSR_WWDGRSTF));
06782 }
06783 
06784 #if defined(RCC_CSR_BORRSTF)
06785 /**
06786   * @brief  Check if RCC flag BOR reset is set or not.
06787   * @rmtoll CSR          BORRSTF       LL_RCC_IsActiveFlag_BORRST
06788   * @retval State of bit (1 or 0).
06789   */
06790 __STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_BORRST(void)
06791 {
06792   return (READ_BIT(RCC->CSR, RCC_CSR_BORRSTF) == (RCC_CSR_BORRSTF));
06793 }
06794 #endif /* RCC_CSR_BORRSTF */
06795 
06796 /**
06797   * @brief  Set RMVF bit to clear the reset flags.
06798   * @rmtoll CSR          RMVF          LL_RCC_ClearResetFlags
06799   * @retval None
06800   */
06801 __STATIC_INLINE void LL_RCC_ClearResetFlags(void)
06802 {
06803   SET_BIT(RCC->CSR, RCC_CSR_RMVF);
06804 }
06805 
06806 /**
06807   * @}
06808   */
06809 
06810 /** @defgroup RCC_LL_EF_IT_Management IT Management
06811   * @{
06812   */
06813 
06814 /**
06815   * @brief  Enable LSI ready interrupt
06816   * @rmtoll CIR         LSIRDYIE      LL_RCC_EnableIT_LSIRDY
06817   * @retval None
06818   */
06819 __STATIC_INLINE void LL_RCC_EnableIT_LSIRDY(void)
06820 {
06821   SET_BIT(RCC->CIR, RCC_CIR_LSIRDYIE);
06822 }
06823 
06824 /**
06825   * @brief  Enable LSE ready interrupt
06826   * @rmtoll CIR         LSERDYIE      LL_RCC_EnableIT_LSERDY
06827   * @retval None
06828   */
06829 __STATIC_INLINE void LL_RCC_EnableIT_LSERDY(void)
06830 {
06831   SET_BIT(RCC->CIR, RCC_CIR_LSERDYIE);
06832 }
06833 
06834 /**
06835   * @brief  Enable HSI ready interrupt
06836   * @rmtoll CIR         HSIRDYIE      LL_RCC_EnableIT_HSIRDY
06837   * @retval None
06838   */
06839 __STATIC_INLINE void LL_RCC_EnableIT_HSIRDY(void)
06840 {
06841   SET_BIT(RCC->CIR, RCC_CIR_HSIRDYIE);
06842 }
06843 
06844 /**
06845   * @brief  Enable HSE ready interrupt
06846   * @rmtoll CIR         HSERDYIE      LL_RCC_EnableIT_HSERDY
06847   * @retval None
06848   */
06849 __STATIC_INLINE void LL_RCC_EnableIT_HSERDY(void)
06850 {
06851   SET_BIT(RCC->CIR, RCC_CIR_HSERDYIE);
06852 }
06853 
06854 /**
06855   * @brief  Enable PLL ready interrupt
06856   * @rmtoll CIR         PLLRDYIE      LL_RCC_EnableIT_PLLRDY
06857   * @retval None
06858   */
06859 __STATIC_INLINE void LL_RCC_EnableIT_PLLRDY(void)
06860 {
06861   SET_BIT(RCC->CIR, RCC_CIR_PLLRDYIE);
06862 }
06863 
06864 #if defined(RCC_PLLI2S_SUPPORT)
06865 /**
06866   * @brief  Enable PLLI2S ready interrupt
06867   * @rmtoll CIR         PLLI2SRDYIE  LL_RCC_EnableIT_PLLI2SRDY
06868   * @retval None
06869   */
06870 __STATIC_INLINE void LL_RCC_EnableIT_PLLI2SRDY(void)
06871 {
06872   SET_BIT(RCC->CIR, RCC_CIR_PLLI2SRDYIE);
06873 }
06874 #endif /* RCC_PLLI2S_SUPPORT */
06875 
06876 #if defined(RCC_PLLSAI_SUPPORT)
06877 /**
06878   * @brief  Enable PLLSAI ready interrupt
06879   * @rmtoll CIR         PLLSAIRDYIE  LL_RCC_EnableIT_PLLSAIRDY
06880   * @retval None
06881   */
06882 __STATIC_INLINE void LL_RCC_EnableIT_PLLSAIRDY(void)
06883 {
06884   SET_BIT(RCC->CIR, RCC_CIR_PLLSAIRDYIE);
06885 }
06886 #endif /* RCC_PLLSAI_SUPPORT */
06887 
06888 /**
06889   * @brief  Disable LSI ready interrupt
06890   * @rmtoll CIR         LSIRDYIE      LL_RCC_DisableIT_LSIRDY
06891   * @retval None
06892   */
06893 __STATIC_INLINE void LL_RCC_DisableIT_LSIRDY(void)
06894 {
06895   CLEAR_BIT(RCC->CIR, RCC_CIR_LSIRDYIE);
06896 }
06897 
06898 /**
06899   * @brief  Disable LSE ready interrupt
06900   * @rmtoll CIR         LSERDYIE      LL_RCC_DisableIT_LSERDY
06901   * @retval None
06902   */
06903 __STATIC_INLINE void LL_RCC_DisableIT_LSERDY(void)
06904 {
06905   CLEAR_BIT(RCC->CIR, RCC_CIR_LSERDYIE);
06906 }
06907 
06908 /**
06909   * @brief  Disable HSI ready interrupt
06910   * @rmtoll CIR         HSIRDYIE      LL_RCC_DisableIT_HSIRDY
06911   * @retval None
06912   */
06913 __STATIC_INLINE void LL_RCC_DisableIT_HSIRDY(void)
06914 {
06915   CLEAR_BIT(RCC->CIR, RCC_CIR_HSIRDYIE);
06916 }
06917 
06918 /**
06919   * @brief  Disable HSE ready interrupt
06920   * @rmtoll CIR         HSERDYIE      LL_RCC_DisableIT_HSERDY
06921   * @retval None
06922   */
06923 __STATIC_INLINE void LL_RCC_DisableIT_HSERDY(void)
06924 {
06925   CLEAR_BIT(RCC->CIR, RCC_CIR_HSERDYIE);
06926 }
06927 
06928 /**
06929   * @brief  Disable PLL ready interrupt
06930   * @rmtoll CIR         PLLRDYIE      LL_RCC_DisableIT_PLLRDY
06931   * @retval None
06932   */
06933 __STATIC_INLINE void LL_RCC_DisableIT_PLLRDY(void)
06934 {
06935   CLEAR_BIT(RCC->CIR, RCC_CIR_PLLRDYIE);
06936 }
06937 
06938 #if defined(RCC_PLLI2S_SUPPORT)
06939 /**
06940   * @brief  Disable PLLI2S ready interrupt
06941   * @rmtoll CIR         PLLI2SRDYIE  LL_RCC_DisableIT_PLLI2SRDY
06942   * @retval None
06943   */
06944 __STATIC_INLINE void LL_RCC_DisableIT_PLLI2SRDY(void)
06945 {
06946   CLEAR_BIT(RCC->CIR, RCC_CIR_PLLI2SRDYIE);
06947 }
06948 
06949 #endif /* RCC_PLLI2S_SUPPORT */
06950 
06951 #if defined(RCC_PLLSAI_SUPPORT)
06952 /**
06953   * @brief  Disable PLLSAI ready interrupt
06954   * @rmtoll CIR         PLLSAIRDYIE  LL_RCC_DisableIT_PLLSAIRDY
06955   * @retval None
06956   */
06957 __STATIC_INLINE void LL_RCC_DisableIT_PLLSAIRDY(void)
06958 {
06959   CLEAR_BIT(RCC->CIR, RCC_CIR_PLLSAIRDYIE);
06960 }
06961 #endif /* RCC_PLLSAI_SUPPORT */
06962 
06963 /**
06964   * @brief  Checks if LSI ready interrupt source is enabled or disabled.
06965   * @rmtoll CIR         LSIRDYIE      LL_RCC_IsEnabledIT_LSIRDY
06966   * @retval State of bit (1 or 0).
06967   */
06968 __STATIC_INLINE uint32_t LL_RCC_IsEnabledIT_LSIRDY(void)
06969 {
06970   return (READ_BIT(RCC->CIR, RCC_CIR_LSIRDYIE) == (RCC_CIR_LSIRDYIE));
06971 }
06972 
06973 /**
06974   * @brief  Checks if LSE ready interrupt source is enabled or disabled.
06975   * @rmtoll CIR         LSERDYIE      LL_RCC_IsEnabledIT_LSERDY
06976   * @retval State of bit (1 or 0).
06977   */
06978 __STATIC_INLINE uint32_t LL_RCC_IsEnabledIT_LSERDY(void)
06979 {
06980   return (READ_BIT(RCC->CIR, RCC_CIR_LSERDYIE) == (RCC_CIR_LSERDYIE));
06981 }
06982 
06983 /**
06984   * @brief  Checks if HSI ready interrupt source is enabled or disabled.
06985   * @rmtoll CIR         HSIRDYIE      LL_RCC_IsEnabledIT_HSIRDY
06986   * @retval State of bit (1 or 0).
06987   */
06988 __STATIC_INLINE uint32_t LL_RCC_IsEnabledIT_HSIRDY(void)
06989 {
06990   return (READ_BIT(RCC->CIR, RCC_CIR_HSIRDYIE) == (RCC_CIR_HSIRDYIE));
06991 }
06992 
06993 /**
06994   * @brief  Checks if HSE ready interrupt source is enabled or disabled.
06995   * @rmtoll CIR         HSERDYIE      LL_RCC_IsEnabledIT_HSERDY
06996   * @retval State of bit (1 or 0).
06997   */
06998 __STATIC_INLINE uint32_t LL_RCC_IsEnabledIT_HSERDY(void)
06999 {
07000   return (READ_BIT(RCC->CIR, RCC_CIR_HSERDYIE) == (RCC_CIR_HSERDYIE));
07001 }
07002 
07003 /**
07004   * @brief  Checks if PLL ready interrupt source is enabled or disabled.
07005   * @rmtoll CIR         PLLRDYIE      LL_RCC_IsEnabledIT_PLLRDY
07006   * @retval State of bit (1 or 0).
07007   */
07008 __STATIC_INLINE uint32_t LL_RCC_IsEnabledIT_PLLRDY(void)
07009 {
07010   return (READ_BIT(RCC->CIR, RCC_CIR_PLLRDYIE) == (RCC_CIR_PLLRDYIE));
07011 }
07012 
07013 #if defined(RCC_PLLI2S_SUPPORT)
07014 /**
07015   * @brief  Checks if PLLI2S ready interrupt source is enabled or disabled.
07016   * @rmtoll CIR         PLLI2SRDYIE  LL_RCC_IsEnabledIT_PLLI2SRDY
07017   * @retval State of bit (1 or 0).
07018   */
07019 __STATIC_INLINE uint32_t LL_RCC_IsEnabledIT_PLLI2SRDY(void)
07020 {
07021   return (READ_BIT(RCC->CIR, RCC_CIR_PLLI2SRDYIE) == (RCC_CIR_PLLI2SRDYIE));
07022 }
07023 
07024 #endif /* RCC_PLLI2S_SUPPORT */
07025 
07026 #if defined(RCC_PLLSAI_SUPPORT)
07027 /**
07028   * @brief  Checks if PLLSAI ready interrupt source is enabled or disabled.
07029   * @rmtoll CIR         PLLSAIRDYIE  LL_RCC_IsEnabledIT_PLLSAIRDY
07030   * @retval State of bit (1 or 0).
07031   */
07032 __STATIC_INLINE uint32_t LL_RCC_IsEnabledIT_PLLSAIRDY(void)
07033 {
07034   return (READ_BIT(RCC->CIR, RCC_CIR_PLLSAIRDYIE) == (RCC_CIR_PLLSAIRDYIE));
07035 }
07036 #endif /* RCC_PLLSAI_SUPPORT */
07037 
07038 /**
07039   * @}
07040   */
07041 
07042 #if defined(USE_FULL_LL_DRIVER)
07043 /** @defgroup RCC_LL_EF_Init De-initialization function
07044   * @{
07045   */
07046 ErrorStatus LL_RCC_DeInit(void);
07047 /**
07048   * @}
07049   */
07050 
07051 /** @defgroup RCC_LL_EF_Get_Freq Get system and peripherals clocks frequency functions
07052   * @{
07053   */
07054 void        LL_RCC_GetSystemClocksFreq(LL_RCC_ClocksTypeDef *RCC_Clocks);
07055 #if defined(FMPI2C1)
07056 uint32_t LL_RCC_GetFMPI2CClockFreq(uint32_t FMPI2CxSource);
07057 #endif /* FMPI2C1 */
07058 #if defined(LPTIM1)
07059 uint32_t    LL_RCC_GetLPTIMClockFreq(uint32_t LPTIMxSource);
07060 #endif /* LPTIM1 */
07061 #if defined(SAI1)
07062 uint32_t    LL_RCC_GetSAIClockFreq(uint32_t SAIxSource);
07063 #endif /* SAI1 */
07064 #if defined(SDIO)
07065 uint32_t    LL_RCC_GetSDIOClockFreq(uint32_t SDIOxSource);
07066 #endif /* SDIO */
07067 #if defined(RNG)
07068 uint32_t    LL_RCC_GetRNGClockFreq(uint32_t RNGxSource);
07069 #endif /* RNG */
07070 #if defined(USB_OTG_FS) || defined(USB_OTG_HS)
07071 uint32_t    LL_RCC_GetUSBClockFreq(uint32_t USBxSource);
07072 #endif /* USB_OTG_FS || USB_OTG_HS */
07073 #if defined(DFSDM1_Channel0)
07074 uint32_t    LL_RCC_GetDFSDMClockFreq(uint32_t DFSDMxSource);
07075 uint32_t    LL_RCC_GetDFSDMAudioClockFreq(uint32_t DFSDMxSource);
07076 #endif /* DFSDM1_Channel0 */
07077 uint32_t    LL_RCC_GetI2SClockFreq(uint32_t I2SxSource);
07078 #if defined(CEC)
07079 uint32_t    LL_RCC_GetCECClockFreq(uint32_t CECxSource);
07080 #endif /* CEC */
07081 #if defined(LTDC)
07082 uint32_t    LL_RCC_GetLTDCClockFreq(uint32_t LTDCxSource);
07083 #endif /* LTDC */
07084 #if defined(SPDIFRX)
07085 uint32_t    LL_RCC_GetSPDIFRXClockFreq(uint32_t SPDIFRXxSource);
07086 #endif /* SPDIFRX */
07087 #if defined(DSI)
07088 uint32_t    LL_RCC_GetDSIClockFreq(uint32_t DSIxSource);
07089 #endif /* DSI */
07090 /**
07091   * @}
07092   */
07093 #endif /* USE_FULL_LL_DRIVER */
07094 
07095 /**
07096   * @}
07097   */
07098 
07099 /**
07100   * @}
07101   */
07102 
07103 #endif /* defined(RCC) */
07104 
07105 /**
07106   * @}
07107   */
07108 
07109 #ifdef __cplusplus
07110 }
07111 #endif
07112 
07113 #endif /* __STM32F4xx_LL_RCC_H */
07114 
07115 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/