17 #if defined(USE_FULL_LL_DRIVER)
21 #ifdef USE_FULL_ASSERT
22 #include "stm32_assert.h"
24 #define assert_param(expr) ((void)0U)
44 #define IS_LL_RCC_FMPI2C_CLKSOURCE(__VALUE__) ((__VALUE__) == LL_RCC_FMPI2C1_CLKSOURCE)
48 #define IS_LL_RCC_LPTIM_CLKSOURCE(__VALUE__) (((__VALUE__) == LL_RCC_LPTIM1_CLKSOURCE))
52 #if defined(RCC_DCKCFGR_SAI1SRC)
53 #define IS_LL_RCC_SAI_CLKSOURCE(__VALUE__) (((__VALUE__) == LL_RCC_SAI1_CLKSOURCE) \
54 || ((__VALUE__) == LL_RCC_SAI2_CLKSOURCE))
55 #elif defined(RCC_DCKCFGR_SAI1ASRC)
56 #define IS_LL_RCC_SAI_CLKSOURCE(__VALUE__) (((__VALUE__) == LL_RCC_SAI1_A_CLKSOURCE) \
57 || ((__VALUE__) == LL_RCC_SAI1_B_CLKSOURCE))
62 #define IS_LL_RCC_SDIO_CLKSOURCE(__VALUE__) (((__VALUE__) == LL_RCC_SDIO_CLKSOURCE))
66 #define IS_LL_RCC_RNG_CLKSOURCE(__VALUE__) (((__VALUE__) == LL_RCC_RNG_CLKSOURCE))
69 #if defined(USB_OTG_FS) || defined(USB_OTG_HS)
70 #define IS_LL_RCC_USB_CLKSOURCE(__VALUE__) (((__VALUE__) == LL_RCC_USB_CLKSOURCE))
73 #if defined(DFSDM2_Channel0)
74 #define IS_LL_RCC_DFSDM_CLKSOURCE(__VALUE__) (((__VALUE__) == LL_RCC_DFSDM1_CLKSOURCE))
76 #define IS_LL_RCC_DFSDM_AUDIO_CLKSOURCE(__VALUE__) (((__VALUE__) == LL_RCC_DFSDM1_AUDIO_CLKSOURCE) \
77 || ((__VALUE__) == LL_RCC_DFSDM2_AUDIO_CLKSOURCE))
78 #elif defined(DFSDM1_Channel0)
79 #define IS_LL_RCC_DFSDM_CLKSOURCE(__VALUE__) (((__VALUE__) == LL_RCC_DFSDM1_CLKSOURCE))
81 #define IS_LL_RCC_DFSDM_AUDIO_CLKSOURCE(__VALUE__) (((__VALUE__) == LL_RCC_DFSDM1_AUDIO_CLKSOURCE))
84 #if defined(RCC_DCKCFGR_I2S2SRC)
85 #define IS_LL_RCC_I2S_CLKSOURCE(__VALUE__) (((__VALUE__) == LL_RCC_I2S1_CLKSOURCE) \
86 || ((__VALUE__) == LL_RCC_I2S2_CLKSOURCE))
88 #define IS_LL_RCC_I2S_CLKSOURCE(__VALUE__) (((__VALUE__) == LL_RCC_I2S1_CLKSOURCE))
92 #define IS_LL_RCC_CEC_CLKSOURCE(__VALUE__) (((__VALUE__) == LL_RCC_CEC_CLKSOURCE))
96 #define IS_LL_RCC_DSI_CLKSOURCE(__VALUE__) (((__VALUE__) == LL_RCC_DSI_CLKSOURCE))
100 #define IS_LL_RCC_LTDC_CLKSOURCE(__VALUE__) (((__VALUE__) == LL_RCC_LTDC_CLKSOURCE))
104 #define IS_LL_RCC_SPDIFRX_CLKSOURCE(__VALUE__) (((__VALUE__) == LL_RCC_SPDIFRX1_CLKSOURCE))
120 #if defined(RCC_DCKCFGR_I2SSRC) || defined(RCC_DCKCFGR_I2S1SRC)
126 #if defined(RCC_PLLCFGR_PLLR)
134 #if defined(RCC_PLLSAI_SUPPORT)
136 #if defined(RCC_PLLSAICFGR_PLLSAIP)
143 #if defined(RCC_PLLI2S_SUPPORT)
145 #if defined(RCC_PLLI2SCFGR_PLLI2SQ) && !defined(RCC_DCKCFGR_PLLI2SDIVQ)
186 __IO uint32_t vl_mask;
196 LL_RCC_WriteReg(CFGR, 0x00000000U);
199 vl_mask = LL_RCC_ReadReg(CR);
203 (RCC_CR_HSEON | RCC_CR_HSEBYP | RCC_CR_PLLON | RCC_CR_CSSON));
205 #if defined(RCC_PLLSAI_SUPPORT)
207 CLEAR_BIT(vl_mask, RCC_CR_PLLSAION);
210 #if defined(RCC_PLLI2S_SUPPORT)
212 CLEAR_BIT(vl_mask, RCC_CR_PLLI2SON);
216 LL_RCC_WriteReg(CR, vl_mask);
226 LL_RCC_WriteReg(PLLCFGR, RCC_PLLCFGR_RST_VALUE);
228 #if defined(RCC_PLLI2S_SUPPORT)
230 LL_RCC_WriteReg(PLLI2SCFGR, RCC_PLLI2SCFGR_RST_VALUE);
233 #if defined(RCC_PLLSAI_SUPPORT)
235 LL_RCC_WriteReg(PLLSAICFGR, RCC_PLLSAICFGR_RST_VALUE);
239 CLEAR_BIT(RCC->CIR, RCC_CIR_LSIRDYIE | RCC_CIR_LSERDYIE | RCC_CIR_HSIRDYIE | RCC_CIR_HSERDYIE | RCC_CIR_PLLRDYIE);
241 #if defined(RCC_CIR_PLLI2SRDYIE)
242 CLEAR_BIT(RCC->CIR, RCC_CIR_PLLI2SRDYIE);
245 #if defined(RCC_CIR_PLLSAIRDYIE)
246 CLEAR_BIT(RCC->CIR, RCC_CIR_PLLSAIRDYIE);
250 SET_BIT(RCC->CIR, RCC_CIR_LSIRDYC | RCC_CIR_LSERDYC | RCC_CIR_HSIRDYC | RCC_CIR_HSERDYC | RCC_CIR_PLLRDYC |
253 #if defined(RCC_CIR_PLLI2SRDYC)
254 SET_BIT(RCC->CIR, RCC_CIR_PLLI2SRDYC);
257 #if defined(RCC_CIR_PLLSAIRDYC)
258 SET_BIT(RCC->CIR, RCC_CIR_PLLSAIRDYC);
262 CLEAR_BIT(RCC->CSR, RCC_CSR_LSION);
265 SET_BIT(RCC->CSR, RCC_CSR_RMVF);
328 uint32_t FMPI2C_frequency = LL_RCC_PERIPH_FREQUENCY_NO;
331 assert_param(IS_LL_RCC_FMPI2C_CLKSOURCE(FMPI2CxSource));
333 if (FMPI2CxSource == LL_RCC_FMPI2C1_CLKSOURCE)
338 case LL_RCC_FMPI2C1_CLKSOURCE_SYSCLK:
342 case LL_RCC_FMPI2C1_CLKSOURCE_HSI:
345 FMPI2C_frequency = HSI_VALUE;
349 case LL_RCC_FMPI2C1_CLKSOURCE_PCLK1:
356 return FMPI2C_frequency;
372 uint32_t i2s_frequency = LL_RCC_PERIPH_FREQUENCY_NO;
375 assert_param(IS_LL_RCC_I2S_CLKSOURCE(I2SxSource));
377 if (I2SxSource == LL_RCC_I2S1_CLKSOURCE)
382 #if defined(RCC_PLLI2S_SUPPORT)
383 case LL_RCC_I2S1_CLKSOURCE_PLLI2S:
391 #if defined(RCC_DCKCFGR_I2SSRC) || defined(RCC_DCKCFGR_I2S1SRC)
392 case LL_RCC_I2S1_CLKSOURCE_PLL:
399 case LL_RCC_I2S1_CLKSOURCE_PLLSRC:
402 case LL_RCC_PLLSOURCE_HSE:
405 i2s_frequency = HSE_VALUE;
409 case LL_RCC_PLLSOURCE_HSI:
413 i2s_frequency = HSI_VALUE;
420 case LL_RCC_I2S1_CLKSOURCE_PIN:
422 i2s_frequency = EXTERNAL_CLOCK_VALUE;
426 #if defined(RCC_DCKCFGR_I2S2SRC)
432 case LL_RCC_I2S2_CLKSOURCE_PLLI2S:
439 case LL_RCC_I2S2_CLKSOURCE_PLL:
446 case LL_RCC_I2S2_CLKSOURCE_PLLSRC:
449 case LL_RCC_PLLSOURCE_HSE:
452 i2s_frequency = HSE_VALUE;
456 case LL_RCC_PLLSOURCE_HSI:
460 i2s_frequency = HSI_VALUE;
466 case LL_RCC_I2S2_CLKSOURCE_PIN:
468 i2s_frequency = EXTERNAL_CLOCK_VALUE;
474 return i2s_frequency;
487 uint32_t lptim_frequency = LL_RCC_PERIPH_FREQUENCY_NO;
490 assert_param(IS_LL_RCC_LPTIM_CLKSOURCE(LPTIMxSource));
492 if (LPTIMxSource == LL_RCC_LPTIM1_CLKSOURCE)
497 case LL_RCC_LPTIM1_CLKSOURCE_LSI:
500 lptim_frequency = LSI_VALUE;
504 case LL_RCC_LPTIM1_CLKSOURCE_HSI:
507 lptim_frequency = HSI_VALUE;
511 case LL_RCC_LPTIM1_CLKSOURCE_LSE:
514 lptim_frequency = LSE_VALUE;
518 case LL_RCC_LPTIM1_CLKSOURCE_PCLK1:
525 return lptim_frequency;
544 uint32_t sai_frequency = LL_RCC_PERIPH_FREQUENCY_NO;
547 assert_param(IS_LL_RCC_SAI_CLKSOURCE(SAIxSource));
549 #if defined(RCC_DCKCFGR_SAI1SRC)
550 if ((SAIxSource == LL_RCC_SAI1_CLKSOURCE) || (SAIxSource == LL_RCC_SAI2_CLKSOURCE))
555 case LL_RCC_SAI1_CLKSOURCE_PLLSAI:
556 case LL_RCC_SAI2_CLKSOURCE_PLLSAI:
563 case LL_RCC_SAI1_CLKSOURCE_PLLI2S:
564 case LL_RCC_SAI2_CLKSOURCE_PLLI2S:
571 case LL_RCC_SAI1_CLKSOURCE_PLL:
572 case LL_RCC_SAI2_CLKSOURCE_PLL:
579 case LL_RCC_SAI2_CLKSOURCE_PLLSRC:
582 case LL_RCC_PLLSOURCE_HSE:
585 sai_frequency = HSE_VALUE;
589 case LL_RCC_PLLSOURCE_HSI:
593 sai_frequency = HSI_VALUE;
599 case LL_RCC_SAI1_CLKSOURCE_PIN:
601 sai_frequency = EXTERNAL_CLOCK_VALUE;
606 #if defined(RCC_DCKCFGR_SAI1ASRC)
607 if ((SAIxSource == LL_RCC_SAI1_A_CLKSOURCE) || (SAIxSource == LL_RCC_SAI1_B_CLKSOURCE))
612 #if defined(RCC_PLLSAI_SUPPORT)
613 case LL_RCC_SAI1_A_CLKSOURCE_PLLSAI:
614 case LL_RCC_SAI1_B_CLKSOURCE_PLLSAI:
622 case LL_RCC_SAI1_A_CLKSOURCE_PLLI2S:
623 case LL_RCC_SAI1_B_CLKSOURCE_PLLI2S:
630 #if defined(RCC_SAI1A_PLLSOURCE_SUPPORT)
631 case LL_RCC_SAI1_A_CLKSOURCE_PLL:
632 case LL_RCC_SAI1_B_CLKSOURCE_PLL:
639 case LL_RCC_SAI1_A_CLKSOURCE_PLLSRC:
640 case LL_RCC_SAI1_B_CLKSOURCE_PLLSRC:
643 case LL_RCC_PLLSOURCE_HSE:
646 sai_frequency = HSE_VALUE;
650 case LL_RCC_PLLSOURCE_HSI:
654 sai_frequency = HSI_VALUE;
661 case LL_RCC_SAI1_A_CLKSOURCE_PIN:
662 case LL_RCC_SAI1_B_CLKSOURCE_PIN:
664 sai_frequency = EXTERNAL_CLOCK_VALUE;
670 return sai_frequency;
684 uint32_t SDIO_frequency = LL_RCC_PERIPH_FREQUENCY_NO;
687 assert_param(IS_LL_RCC_SDIO_CLKSOURCE(SDIOxSource));
689 if (SDIOxSource == LL_RCC_SDIO_CLKSOURCE)
691 #if defined(RCC_DCKCFGR_SDIOSEL) || defined(RCC_DCKCFGR2_SDIOSEL)
695 case LL_RCC_SDIO_CLKSOURCE_PLL48CLK:
698 case LL_RCC_CK48M_CLKSOURCE_PLL:
705 #if defined(RCC_PLLSAI_SUPPORT)
706 case LL_RCC_CK48M_CLKSOURCE_PLLSAI:
715 #if defined(RCC_PLLI2SCFGR_PLLI2SQ) && !defined(RCC_DCKCFGR_PLLI2SDIVQ)
716 case LL_RCC_CK48M_CLKSOURCE_PLLI2S:
727 case LL_RCC_SDIO_CLKSOURCE_SYSCLK:
741 return SDIO_frequency;
755 uint32_t rng_frequency = LL_RCC_PERIPH_FREQUENCY_NO;
758 assert_param(IS_LL_RCC_RNG_CLKSOURCE(RNGxSource));
760 #if defined(RCC_DCKCFGR_CK48MSEL) || defined(RCC_DCKCFGR2_CK48MSEL)
764 #if defined(RCC_PLLI2SCFGR_PLLI2SQ) && !defined(RCC_DCKCFGR_PLLI2SDIVQ)
765 case LL_RCC_RNG_CLKSOURCE_PLLI2S:
773 #if defined(RCC_PLLSAI_SUPPORT)
774 case LL_RCC_RNG_CLKSOURCE_PLLSAI:
782 case LL_RCC_RNG_CLKSOURCE_PLL:
798 return rng_frequency;
812 uint32_t cec_frequency = LL_RCC_PERIPH_FREQUENCY_NO;
815 assert_param(IS_LL_RCC_CEC_CLKSOURCE(CECxSource));
820 case LL_RCC_CEC_CLKSOURCE_LSE:
823 cec_frequency = LSE_VALUE;
827 case LL_RCC_CEC_CLKSOURCE_HSI_DIV488:
831 cec_frequency = HSI_VALUE / 488U;
836 return cec_frequency;
840 #if defined(USB_OTG_FS) || defined(USB_OTG_HS)
850 uint32_t usb_frequency = LL_RCC_PERIPH_FREQUENCY_NO;
853 assert_param(IS_LL_RCC_USB_CLKSOURCE(USBxSource));
855 #if defined(RCC_DCKCFGR_CK48MSEL) || defined(RCC_DCKCFGR2_CK48MSEL)
859 #if defined(RCC_PLLI2SCFGR_PLLI2SQ) && !defined(RCC_DCKCFGR_PLLI2SDIVQ)
860 case LL_RCC_USB_CLKSOURCE_PLLI2S:
869 #if defined(RCC_PLLSAI_SUPPORT)
870 case LL_RCC_USB_CLKSOURCE_PLLSAI:
878 case LL_RCC_USB_CLKSOURCE_PLL:
894 return usb_frequency;
898 #if defined(DFSDM1_Channel0)
910 uint32_t dfsdm_frequency = LL_RCC_PERIPH_FREQUENCY_NO;
913 assert_param(IS_LL_RCC_DFSDM_CLKSOURCE(DFSDMxSource));
915 if (DFSDMxSource == LL_RCC_DFSDM1_CLKSOURCE)
920 case LL_RCC_DFSDM1_CLKSOURCE_SYSCLK:
924 case LL_RCC_DFSDM1_CLKSOURCE_PCLK2:
930 #if defined(DFSDM2_Channel0)
936 case LL_RCC_DFSDM2_CLKSOURCE_SYSCLK:
940 case LL_RCC_DFSDM2_CLKSOURCE_PCLK2:
948 return dfsdm_frequency;
963 uint32_t dfsdm_frequency = LL_RCC_PERIPH_FREQUENCY_NO;
966 assert_param(IS_LL_RCC_DFSDM_AUDIO_CLKSOURCE(DFSDMxSource));
968 if (DFSDMxSource == LL_RCC_DFSDM1_AUDIO_CLKSOURCE)
973 case LL_RCC_DFSDM1_AUDIO_CLKSOURCE_I2S1:
977 case LL_RCC_DFSDM1_AUDIO_CLKSOURCE_I2S2:
983 #if defined(DFSDM2_Channel0)
989 case LL_RCC_DFSDM2_AUDIO_CLKSOURCE_I2S1:
993 case LL_RCC_DFSDM2_AUDIO_CLKSOURCE_I2S2:
1001 return dfsdm_frequency;
1016 uint32_t dsi_frequency = LL_RCC_PERIPH_FREQUENCY_NO;
1019 assert_param(IS_LL_RCC_DSI_CLKSOURCE(DSIxSource));
1024 case LL_RCC_DSI_CLKSOURCE_PLL:
1031 case LL_RCC_DSI_CLKSOURCE_PHY:
1033 dsi_frequency = LL_RCC_PERIPH_FREQUENCY_NA;
1037 return dsi_frequency;
1051 uint32_t ltdc_frequency = LL_RCC_PERIPH_FREQUENCY_NO;
1054 assert_param(IS_LL_RCC_LTDC_CLKSOURCE(LTDCxSource));
1061 return ltdc_frequency;
1065 #if defined(SPDIFRX)
1075 uint32_t spdifrx_frequency = LL_RCC_PERIPH_FREQUENCY_NO;
1078 assert_param(IS_LL_RCC_SPDIFRX_CLKSOURCE(SPDIFRXxSource));
1083 case LL_RCC_SPDIFRX1_CLKSOURCE_PLLI2S:
1090 case LL_RCC_SPDIFRX1_CLKSOURCE_PLL:
1099 return spdifrx_frequency;
1121 uint32_t frequency = 0U;
1126 case LL_RCC_SYS_CLKSOURCE_STATUS_HSI:
1127 frequency = HSI_VALUE;
1130 case LL_RCC_SYS_CLKSOURCE_STATUS_HSE:
1131 frequency = HSE_VALUE;
1134 case LL_RCC_SYS_CLKSOURCE_STATUS_PLL:
1138 #if defined(RCC_PLLR_SYSCLK_SUPPORT)
1139 case LL_RCC_SYS_CLKSOURCE_STATUS_PLLR:
1145 frequency = HSI_VALUE;
1192 uint32_t pllinputfreq = 0U;
1193 uint32_t pllsource = 0U;
1194 uint32_t plloutputfreq = 0U;
1203 case LL_RCC_PLLSOURCE_HSI:
1204 pllinputfreq = HSI_VALUE;
1207 case LL_RCC_PLLSOURCE_HSE:
1208 pllinputfreq = HSE_VALUE;
1212 pllinputfreq = HSI_VALUE;
1216 if (SYSCLK_Source == LL_RCC_SYS_CLKSOURCE_STATUS_PLL)
1221 #if defined(RCC_PLLR_SYSCLK_SUPPORT)
1229 return plloutputfreq;
1238 uint32_t pllinputfreq = 0U;
1239 uint32_t pllsource = 0U;
1248 case LL_RCC_PLLSOURCE_HSI:
1249 pllinputfreq = HSI_VALUE;
1252 case LL_RCC_PLLSOURCE_HSE:
1253 pllinputfreq = HSE_VALUE;
1257 pllinputfreq = HSI_VALUE;
1271 uint32_t pllinputfreq = 0U;
1272 uint32_t pllsource = 0U;
1281 case LL_RCC_PLLSOURCE_HSE:
1282 pllinputfreq = HSE_VALUE;
1285 case LL_RCC_PLLSOURCE_HSI:
1287 pllinputfreq = HSI_VALUE;
1295 #if defined(RCC_DCKCFGR_I2SSRC) || defined(RCC_DCKCFGR_I2S1SRC)
1302 uint32_t pllinputfreq = 0U;
1303 uint32_t pllsource = 0U;
1312 case LL_RCC_PLLSOURCE_HSE:
1313 pllinputfreq = HSE_VALUE;
1316 case LL_RCC_PLLSOURCE_HSI:
1318 pllinputfreq = HSI_VALUE;
1326 #if defined(SPDIFRX)
1333 uint32_t pllinputfreq = 0U;
1334 uint32_t pllsource = 0U;
1343 case LL_RCC_PLLSOURCE_HSE:
1344 pllinputfreq = HSE_VALUE;
1347 case LL_RCC_PLLSOURCE_HSI:
1349 pllinputfreq = HSI_VALUE;
1357 #if defined(RCC_PLLCFGR_PLLR)
1365 uint32_t pllinputfreq = 0U;
1366 uint32_t pllsource = 0U;
1367 uint32_t plloutputfreq = 0U;
1378 case LL_RCC_PLLSOURCE_HSE:
1379 pllinputfreq = HSE_VALUE;
1382 case LL_RCC_PLLSOURCE_HSI:
1384 pllinputfreq = HSI_VALUE;
1388 #if defined(RCC_DCKCFGR_PLLDIVR)
1396 return plloutputfreq;
1401 #if defined(RCC_PLLSAI_SUPPORT)
1408 uint32_t pllinputfreq = 0U;
1409 uint32_t pllsource = 0U;
1418 case LL_RCC_PLLSOURCE_HSI:
1419 pllinputfreq = HSI_VALUE;
1422 case LL_RCC_PLLSOURCE_HSE:
1423 pllinputfreq = HSE_VALUE;
1427 pllinputfreq = HSI_VALUE;
1434 #if defined(RCC_PLLSAICFGR_PLLSAIP)
1441 uint32_t pllinputfreq = 0U;
1442 uint32_t pllsource = 0U;
1451 case LL_RCC_PLLSOURCE_HSI:
1452 pllinputfreq = HSI_VALUE;
1455 case LL_RCC_PLLSOURCE_HSE:
1456 pllinputfreq = HSE_VALUE;
1460 pllinputfreq = HSI_VALUE;
1475 uint32_t pllinputfreq = 0U;
1476 uint32_t pllsource = 0U;
1485 case LL_RCC_PLLSOURCE_HSI:
1486 pllinputfreq = HSI_VALUE;
1489 case LL_RCC_PLLSOURCE_HSE:
1490 pllinputfreq = HSE_VALUE;
1494 pllinputfreq = HSI_VALUE;
1503 #if defined(RCC_PLLI2S_SUPPORT)
1511 uint32_t plli2sinputfreq = 0;
1512 uint32_t plli2ssource = 0U;
1513 uint32_t plli2soutputfreq = 0U;
1522 switch (plli2ssource)
1524 case LL_RCC_PLLSOURCE_HSE:
1525 plli2sinputfreq = HSE_VALUE;
1528 #if defined(RCC_PLLI2SCFGR_PLLI2SSRC)
1529 case LL_RCC_PLLI2SSOURCE_PIN:
1530 plli2sinputfreq = EXTERNAL_CLOCK_VALUE;
1534 case LL_RCC_PLLSOURCE_HSI:
1536 plli2sinputfreq = HSI_VALUE;
1540 #if defined(RCC_DCKCFGR_PLLI2SDIVQ)
1548 return plli2soutputfreq;
1552 #if defined(SPDIFRX)
1559 uint32_t pllinputfreq = 0U;
1560 uint32_t pllsource = 0U;
1569 case LL_RCC_PLLSOURCE_HSE:
1570 pllinputfreq = HSE_VALUE;
1573 case LL_RCC_PLLSOURCE_HSI:
1575 pllinputfreq = HSI_VALUE;
1590 uint32_t plli2sinputfreq = 0U;
1591 uint32_t plli2ssource = 0U;
1592 uint32_t plli2soutputfreq = 0U;
1599 switch (plli2ssource)
1601 case LL_RCC_PLLSOURCE_HSE:
1602 plli2sinputfreq = HSE_VALUE;
1605 #if defined(RCC_PLLI2SCFGR_PLLI2SSRC)
1606 case LL_RCC_PLLI2SSOURCE_PIN:
1607 plli2sinputfreq = EXTERNAL_CLOCK_VALUE;
1611 case LL_RCC_PLLSOURCE_HSI:
1613 plli2sinputfreq = HSI_VALUE;
1620 return plli2soutputfreq;
1623 #if defined(RCC_PLLI2SCFGR_PLLI2SQ) && !defined(RCC_DCKCFGR_PLLI2SDIVQ)
1630 uint32_t plli2sinputfreq = 0U;
1631 uint32_t plli2ssource = 0U;
1632 uint32_t plli2soutputfreq = 0U;
1639 switch (plli2ssource)
1641 case LL_RCC_PLLSOURCE_HSE:
1642 plli2sinputfreq = HSE_VALUE;
1645 #if defined(RCC_PLLI2SCFGR_PLLI2SSRC)
1646 case LL_RCC_PLLI2SSOURCE_PIN:
1647 plli2sinputfreq = EXTERNAL_CLOCK_VALUE;
1651 case LL_RCC_PLLSOURCE_HSI:
1653 plli2sinputfreq = HSI_VALUE;
1660 return plli2soutputfreq;
uint32_t SYSCLK_Frequency
RCC Clocks Frequency Structure.
uint32_t LL_RCC_GetSDIOClockFreq(uint32_t SDIOxSource)
Return SDIOx clock frequency.
uint32_t LL_RCC_GetCECClockFreq(uint32_t CECxSource)
Return CEC clock frequency.
uint32_t LL_RCC_GetI2SClockFreq(uint32_t I2SxSource)
Return I2Sx clock frequency.
uint32_t LL_RCC_GetDSIClockFreq(uint32_t DSIxSource)
Return DSI clock frequency.
uint32_t LL_RCC_GetDFSDMAudioClockFreq(uint32_t DFSDMxSource)
Return DFSDMx Audio clock frequency.
uint32_t LL_RCC_GetSPDIFRXClockFreq(uint32_t SPDIFRXxSource)
Return SPDIFRX clock frequency.
uint32_t LL_RCC_GetSAIClockFreq(uint32_t SAIxSource)
Return SAIx clock frequency.
uint32_t LL_RCC_GetLPTIMClockFreq(uint32_t LPTIMxSource)
Return LPTIMx clock frequency.
void LL_RCC_GetSystemClocksFreq(LL_RCC_ClocksTypeDef *RCC_Clocks)
Return the frequencies of different on chip clocks; System, AHB, APB1 and APB2 buses clocks.
uint32_t LL_RCC_GetDFSDMClockFreq(uint32_t DFSDMxSource)
Return DFSDMx clock frequency.
uint32_t LL_RCC_GetFMPI2CClockFreq(uint32_t FMPI2CxSource)
Return FMPI2Cx clock frequency.
uint32_t LL_RCC_GetLTDCClockFreq(uint32_t LTDCxSource)
Return LTDC clock frequency.
uint32_t LL_RCC_GetUSBClockFreq(uint32_t USBxSource)
Return USBx clock frequency.
uint32_t LL_RCC_GetRNGClockFreq(uint32_t RNGxSource)
Return RNGx clock frequency.
__STATIC_INLINE uint32_t LL_RCC_HSE_IsReady(void)
Check if HSE oscillator Ready @rmtoll CR HSERDY LL_RCC_HSE_IsReady.
__STATIC_INLINE void LL_RCC_HSI_Enable(void)
Enable HSI oscillator @rmtoll CR HSION LL_RCC_HSI_Enable.
__STATIC_INLINE uint32_t LL_RCC_HSI_IsReady(void)
Check if HSI clock is ready @rmtoll CR HSIRDY LL_RCC_HSI_IsReady.
__STATIC_INLINE void LL_RCC_HSI_SetCalibTrimming(uint32_t Value)
Set HSI Calibration trimming.
ErrorStatus LL_RCC_DeInit(void)
Reset the RCC clock configuration to the default reset state.
__STATIC_INLINE uint32_t LL_RCC_LSE_IsReady(void)
Check if LSE oscillator Ready @rmtoll BDCR LSERDY LL_RCC_LSE_IsReady.
__STATIC_INLINE uint32_t LL_RCC_LSI_IsReady(void)
Check if LSI is Ready @rmtoll CSR LSIRDY LL_RCC_LSI_IsReady.
__STATIC_INLINE uint32_t LL_RCC_PLLI2S_IsReady(void)
Check if PLLI2S Ready @rmtoll CR PLLI2SRDY LL_RCC_PLLI2S_IsReady.
__STATIC_INLINE uint32_t LL_RCC_PLLI2S_GetMainSource(void)
Get the oscillator used as PLL clock source. @rmtoll PLLCFGR PLLSRC LL_RCC_PLLI2S_GetMainSource PLLI...
__STATIC_INLINE uint32_t LL_RCC_PLLI2S_GetP(void)
Get I2SPLL division factor for PLLI2SP.
__STATIC_INLINE uint32_t LL_RCC_PLLI2S_GetDIVQ(void)
Get I2SPLL division factor for PLLI2SDIVQ.
__STATIC_INLINE uint32_t LL_RCC_PLLI2S_GetDivider(void)
Get division factor for PLLI2S input clock @rmtoll PLLCFGR PLLM LL_RCC_PLLI2S_GetDivider PLLI2SCFGR ...
__STATIC_INLINE uint32_t LL_RCC_PLLI2S_GetQ(void)
Get I2SPLL division factor for PLLI2SQ @rmtoll PLLI2SCFGR PLLI2SQ LL_RCC_PLLI2S_GetQ.
__STATIC_INLINE uint32_t LL_RCC_PLLI2S_GetDIVR(void)
Get I2SPLL division factor for PLLI2SDIVR.
__STATIC_INLINE uint32_t LL_RCC_PLLI2S_GetN(void)
Get I2SPLL multiplication factor for VCO @rmtoll PLLI2SCFGR PLLI2SN LL_RCC_PLLI2S_GetN.
__STATIC_INLINE uint32_t LL_RCC_PLLI2S_GetR(void)
Get I2SPLL division factor for PLLI2SR.
__STATIC_INLINE uint32_t LL_RCC_PLLSAI_GetQ(void)
Get SAIPLL division factor for PLLSAIQ @rmtoll PLLSAICFGR PLLSAIQ LL_RCC_PLLSAI_GetQ.
__STATIC_INLINE uint32_t LL_RCC_PLLSAI_GetDivider(void)
Get division factor for PLLSAI input clock @rmtoll PLLCFGR PLLM LL_RCC_PLLSAI_GetDivider PLLSAICFGR ...
__STATIC_INLINE uint32_t LL_RCC_PLLSAI_GetP(void)
Get SAIPLL division factor for PLLSAIP.
__STATIC_INLINE uint32_t LL_RCC_PLLSAI_GetDIVR(void)
Get SAIPLL division factor for PLLSAIDIVR.
__STATIC_INLINE uint32_t LL_RCC_PLLSAI_IsReady(void)
Check if PLLSAI Ready @rmtoll CR PLLSAIRDY LL_RCC_PLLSAI_IsReady.
__STATIC_INLINE uint32_t LL_RCC_PLLSAI_GetR(void)
Get SAIPLL division factor for PLLSAIR.
__STATIC_INLINE uint32_t LL_RCC_PLLSAI_GetN(void)
Get SAIPLL multiplication factor for VCO @rmtoll PLLSAICFGR PLLSAIN LL_RCC_PLLSAI_GetN.
__STATIC_INLINE uint32_t LL_RCC_PLLSAI_GetDIVQ(void)
Get SAIPLL division factor for PLLSAIDIVQ.
__STATIC_INLINE uint32_t LL_RCC_PLL_GetDIVR(void)
Get Main PLL division factor for PLLDIVR.
__STATIC_INLINE uint32_t LL_RCC_PLL_GetDivider(void)
Get Division factor for the main PLL and other PLL @rmtoll PLLCFGR PLLM LL_RCC_PLL_GetDivider.
__STATIC_INLINE uint32_t LL_RCC_PLL_GetQ(void)
Get Main PLL division factor for PLLQ.
__STATIC_INLINE uint32_t LL_RCC_PLL_IsReady(void)
Check if PLL Ready @rmtoll CR PLLRDY LL_RCC_PLL_IsReady.
__STATIC_INLINE uint32_t LL_RCC_PLL_GetP(void)
Get Main PLL division factor for PLLP @rmtoll PLLCFGR PLLP LL_RCC_PLL_GetP.
__STATIC_INLINE uint32_t LL_RCC_PLL_GetMainSource(void)
Get the oscillator used as PLL clock source. @rmtoll PLLCFGR PLLSRC LL_RCC_PLL_GetMainSource.
__STATIC_INLINE uint32_t LL_RCC_PLL_GetR(void)
Get Main PLL division factor for PLLR.
__STATIC_INLINE uint32_t LL_RCC_PLL_GetN(void)
Get Main PLL multiplication factor for VCO @rmtoll PLLCFGR PLLN LL_RCC_PLL_GetN.
__STATIC_INLINE uint32_t LL_RCC_GetDFSDMClockSource(uint32_t DFSDMx)
Get DFSDM Audio Clock Source @rmtoll DCKCFGR CKDFSDM1SEL LL_RCC_GetDFSDMClockSource.
__STATIC_INLINE uint32_t LL_RCC_GetCK48MClockSource(uint32_t CK48Mx)
Get 48Mhz domain clock source @rmtoll DCKCFGR CK48MSEL LL_RCC_GetCK48MClockSource DCKCFGR2 CK48MSEL ...
__STATIC_INLINE uint32_t LL_RCC_GetI2SClockSource(uint32_t I2Sx)
Get I2S Clock Source @rmtoll CFGR I2SSRC LL_RCC_GetI2SClockSource DCKCFGR I2SSRC LL_RCC_GetI2SClockS...
__STATIC_INLINE uint32_t LL_RCC_GetRNGClockSource(uint32_t RNGx)
Get RNGx clock source @rmtoll DCKCFGR CK48MSEL LL_RCC_GetRNGClockSource DCKCFGR2 CK48MSEL LL_RCC_Get...
__STATIC_INLINE uint32_t LL_RCC_GetDFSDMAudioClockSource(uint32_t DFSDMx)
Get DFSDM Audio Clock Source @rmtoll DCKCFGR CKDFSDM1ASEL LL_RCC_GetDFSDMAudioClockSource DCKCFGR CK...
__STATIC_INLINE uint32_t LL_RCC_GetSPDIFRXClockSource(uint32_t SPDIFRXx)
Get SPDIFRX clock source @rmtoll DCKCFGR2 SPDIFRXSEL LL_RCC_GetSPDIFRXClockSource.
__STATIC_INLINE uint32_t LL_RCC_GetSAIClockSource(uint32_t SAIx)
Get SAIx clock source @rmtoll DCKCFGR SAI1SEL LL_RCC_GetSAIClockSource DCKCFGR SAI2SEL LL_RCC_GetSAI...
__STATIC_INLINE uint32_t LL_RCC_GetCECClockSource(uint32_t CECx)
Get CEC Clock Source @rmtoll DCKCFGR2 CECSEL LL_RCC_GetCECClockSource.
__STATIC_INLINE uint32_t LL_RCC_GetSDIOClockSource(uint32_t SDIOx)
Get SDIOx clock source @rmtoll DCKCFGR SDIOSEL LL_RCC_GetSDIOClockSource DCKCFGR2 SDIOSEL LL_RCC_Get...
__STATIC_INLINE uint32_t LL_RCC_GetLPTIMClockSource(uint32_t LPTIMx)
Get LPTIMx clock source @rmtoll DCKCFGR2 LPTIM1SEL LL_RCC_GetLPTIMClockSource.
__STATIC_INLINE uint32_t LL_RCC_GetFMPI2CClockSource(uint32_t FMPI2Cx)
Get FMPI2C clock source @rmtoll DCKCFGR2 FMPI2C1SEL LL_RCC_GetFMPI2CClockSource.
__STATIC_INLINE uint32_t LL_RCC_GetUSBClockSource(uint32_t USBx)
Get USBx clock source @rmtoll DCKCFGR CK48MSEL LL_RCC_GetUSBClockSource DCKCFGR2 CK48MSEL LL_RCC_Get...
__STATIC_INLINE uint32_t LL_RCC_GetDSIClockSource(uint32_t DSIx)
Get DSI Clock Source @rmtoll DCKCFGR DSISEL LL_RCC_GetDSIClockSource.
__STATIC_INLINE uint32_t LL_RCC_GetAPB1Prescaler(void)
Get APB1 prescaler @rmtoll CFGR PPRE1 LL_RCC_GetAPB1Prescaler.
__STATIC_INLINE uint32_t LL_RCC_GetAHBPrescaler(void)
Get AHB prescaler @rmtoll CFGR HPRE LL_RCC_GetAHBPrescaler.
__STATIC_INLINE uint32_t LL_RCC_GetSysClkSource(void)
Get the system clock source @rmtoll CFGR SWS LL_RCC_GetSysClkSource.
__STATIC_INLINE uint32_t LL_RCC_GetAPB2Prescaler(void)
Get APB2 prescaler @rmtoll CFGR PPRE2 LL_RCC_GetAPB2Prescaler.
uint32_t RCC_PLLSAI_GetFreqDomain_48M(void)
Return PLLSAI clock frequency used for 48Mhz domain.
uint32_t RCC_PLL_GetFreqDomain_SPDIFRX(void)
Return PLL clock frequency used for SPDIFRX clock.
uint32_t RCC_PLL_GetFreqDomain_48M(void)
Return PLL clock frequency used for 48 MHz domain.
uint32_t RCC_PLLI2S_GetFreqDomain_SAI(void)
Return PLLI2S clock frequency used for SAI domains.
uint32_t RCC_PLLSAI_GetFreqDomain_SAI(void)
Return PLLSAI clock frequency used for SAI domain.
uint32_t RCC_PLL_GetFreqDomain_I2S(void)
Return PLL clock frequency used for I2S clock.
uint32_t RCC_PLLI2S_GetFreqDomain_48M(void)
Return PLLI2S clock frequency used for 48Mhz domain.
uint32_t RCC_PLL_GetFreqDomain_DSI(void)
Return PLL clock frequency used for DSI clock.
uint32_t RCC_GetPCLK2ClockFreq(uint32_t HCLK_Frequency)
Return PCLK2 clock frequency.
uint32_t RCC_PLLI2S_GetFreqDomain_I2S(void)
Return PLLI2S clock frequency used for I2S domain.
uint32_t RCC_PLL_GetFreqDomain_SAI(void)
Return PLL clock frequency used for SAI clock.
uint32_t RCC_PLL_GetFreqDomain_SYS(uint32_t SYSCLK_Source)
Return PLL clock frequency used for system domain.
uint32_t RCC_PLLI2S_GetFreqDomain_SPDIFRX(void)
Return PLLI2S clock frequency used for SPDIFRX domain.
uint32_t RCC_PLLSAI_GetFreqDomain_LTDC(void)
Return PLLSAI clock frequency used for LTDC domain.
uint32_t RCC_GetHCLKClockFreq(uint32_t SYSCLK_Frequency)
Return HCLK clock frequency.
uint32_t RCC_GetSystemClockFreq(void)
Return SYSTEM clock frequency.
uint32_t RCC_GetPCLK1ClockFreq(uint32_t HCLK_Frequency)
Return PCLK1 clock frequency.
Header file of RCC LL module.