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