1 /**
2 ******************************************************************************
3 * @file stm32n6xx_ll_rcc.h
4 * @author MCD Application Team
5 * @brief Header file of RCC LL module.
6 ******************************************************************************
7 * @attention
8 *
9 * Copyright (c) 2023 STMicroelectronics.
10 * All rights reserved.
11 *
12 * This software is licensed under terms that can be found in the LICENSE file
13 * in the root directory of this software component.
14 * If no LICENSE file comes with this software, it is provided AS-IS.
15 *
16 ******************************************************************************
17 */
18
19 /* Define to prevent recursive inclusion -------------------------------------*/
20 #ifndef STM32N6xx_LL_RCC_H
21 #define STM32N6xx_LL_RCC_H
22
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26
27 /* Includes ------------------------------------------------------------------*/
28 #include "stm32n6xx.h"
29 #include <math.h>
30
31 /** @addtogroup STM32N6xx_LL_Driver
32 * @{
33 */
34 #if defined(RCC)
35
36 /** @defgroup RCC_LL RCC
37 * @{
38 */
39
40 /* Private types -------------------------------------------------------------*/
41 /* Private variables ---------------------------------------------------------*/
42 /** @defgroup RCC_LL_Private_Variables RCC Private Variables
43 * @{
44 */
45
46 /**
47 * @}
48 */
49
50 /* Private constants ---------------------------------------------------------*/
51 /** @defgroup RCC_LL_Private_Constants RCC Private Constants
52 * @{
53 */
54 /* Constants for LL_CLKSOURCE_xxx() macros
55 31 24 16 8 0
56 --------------------------------------------------------
57 | Mask | ClkSource | Bit | Register |
58 | | Config | Position | Offset |
59 --------------------------------------------------------*/
60
61 /* Clock source register offset Vs CCIPR1 register */
62 #define CCIPR1_OFFSET 0x0UL
63 #define CCIPR2_OFFSET 0x4UL
64 #define CCIPR3_OFFSET 0x8UL
65 #define CCIPR4_OFFSET 0xCUL
66 #define CCIPR5_OFFSET 0x10UL
67 #define CCIPR6_OFFSET 0x14UL
68 #define CCIPR7_OFFSET 0x18UL
69 #define CCIPR8_OFFSET 0x1CUL
70 #define CCIPR9_OFFSET 0x20UL
71 #define CCIPR12_OFFSET 0x2CUL
72 #define CCIPR13_OFFSET 0x30UL
73 #define CCIPR14_OFFSET 0x34UL
74
75 #define LL_RCC_REG_SHIFT 0U
76 #define LL_RCC_POS_SHIFT 8U
77 #define LL_RCC_CONFIG_SHIFT 16U
78 #define LL_RCC_MASK_SHIFT 24U
79 /**
80 * @}
81 */
82
83 /* Private macros ------------------------------------------------------------*/
84 /** @defgroup RCC_LL_Private_Macros RCC Private Macros
85 * @{
86 */
87 #if !defined(UNUSED)
88 #define UNUSED(x) ((void)(x))
89 #endif /* UNUSED */
90
91 #define LL_CLKSOURCE_SHIFT(__CLKSOURCE__) (((__CLKSOURCE__) >> LL_RCC_POS_SHIFT ) & 0x1FUL)
92
93 #define LL_CLKSOURCE_MASK(__CLKSOURCE__) ((((__CLKSOURCE__) >> LL_RCC_MASK_SHIFT ) &\
94 0xFFUL) << LL_CLKSOURCE_SHIFT(__CLKSOURCE__))
95
96 #define LL_CLKSOURCE_CONFIG(__CLKSOURCE__) ((((__CLKSOURCE__) >> LL_RCC_CONFIG_SHIFT) &\
97 0xFFUL) << LL_CLKSOURCE_SHIFT(__CLKSOURCE__))
98
99 #define LL_CLKSOURCE_REG(__CLKSOURCE__) (((__CLKSOURCE__) >> LL_RCC_REG_SHIFT ) & 0xFFUL)
100
101 #define LL_CLKSOURCE(__REG__, __MSK__, __POS__, __CLK__) ((uint32_t)((((__MSK__) >> (__POS__)) << LL_RCC_MASK_SHIFT) | \
102 (( __POS__ ) << LL_RCC_POS_SHIFT) | \
103 (( __REG__ ) << LL_RCC_REG_SHIFT) | \
104 (((__CLK__) >> (__POS__)) << LL_RCC_CONFIG_SHIFT)))
105 /**
106 * @}
107 */
108
109 /* Exported types ------------------------------------------------------------*/
110 /** @defgroup RCC_LL_Exported_Types RCC Exported Types
111 * @{
112 */
113
114 /** @defgroup LL_ES_CLOCK_FREQ Clocks Frequency Structure
115 * @{
116 */
117
118 /**
119 * @brief RCC Clocks Frequency Structure
120 */
121 typedef struct
122 {
123 uint32_t SYSCLK_Frequency;
124 uint32_t CPUCLK_Frequency;
125 uint32_t HCLK_Frequency;
126 uint32_t PCLK1_Frequency;
127 uint32_t PCLK2_Frequency;
128 uint32_t PCLK4_Frequency;
129 uint32_t PCLK5_Frequency;
130 } LL_RCC_ClocksTypeDef;
131
132 /**
133 * @}
134 */
135
136 /**
137 * @}
138 */
139
140 /* Exported constants --------------------------------------------------------*/
141 /** @defgroup RCC_LL_Exported_Constants RCC Exported Constants
142 * @{
143 */
144
145 /** @defgroup RCC_LL_EC_OSC_VALUES Oscillator Values adaptation
146 * @brief Defines used to adapt values of different oscillators
147 * @note These values could be modified in the user environment according to
148 * HW set-up.
149 * @{
150 */
151 #if !defined (HSE_VALUE)
152 #define HSE_VALUE 48000000U /*!< Value of the HSE oscillator in Hz */ /* N6 FPGA was 30 MHz */
153 #endif /* HSE_VALUE */
154
155 #if !defined (HSI_VALUE)
156 #define HSI_VALUE 64000000U /*!< Value of the HSI oscillator in Hz */ /* N6 FPGA was 48 MHz */
157 #endif /* HSI_VALUE */
158
159 #if !defined (MSI_VALUE)
160 #define MSI_VALUE 4000000U /*!< Value of the MSI oscillator in Hz */
161 #endif /* MSI_VALUE */
162
163 #if !defined (LSE_VALUE)
164 #define LSE_VALUE 32768U /*!< Value of the LSE oscillator in Hz */ /* N6 FPGA was 32 KHz*/
165 #endif /* LSE_VALUE */
166
167 #if !defined (LSI_VALUE)
168 #define LSI_VALUE 32000U /*!< Value of the LSI oscillator in Hz */
169 #endif /* LSI_VALUE */
170
171 #if !defined (EXTERNAL_CLOCK_VALUE)
172 #define EXTERNAL_CLOCK_VALUE 12288000U /*!< Value of the I2S_CKIN external oscillator in Hz */
173 #endif /* EXTERNAL_CLOCK_VALUE */
174
175 /**
176 * @}
177 */
178
179 /** @defgroup RCC_LL_EC_HSIDIV HSI oscillator divider
180 * @{
181 */
182 #define LL_RCC_HSI_DIV_1 0U
183 #define LL_RCC_HSI_DIV_2 RCC_HSICFGR_HSIDIV_0
184 #define LL_RCC_HSI_DIV_4 RCC_HSICFGR_HSIDIV_1
185 #define LL_RCC_HSI_DIV_8 RCC_HSICFGR_HSIDIV
186 /**
187 * @}
188 */
189
190 /** @defgroup RCC_LL_EC_MSIFREQ MSI oscillator frequency select
191 * @{
192 */
193 #define LL_RCC_MSI_FREQ_4MHZ 0U
194 #define LL_RCC_MSI_FREQ_16MHZ RCC_MSICFGR_MSIFREQSEL
195 /**
196 * @}
197 */
198
199 /** @defgroup RCC_LL_EC_LSEDRIVE LSE oscillator drive capability
200 * @{
201 */
202 #define LL_RCC_LSEDRIVE_LOW 0U
203 #define LL_RCC_LSEDRIVE_MEDIUMLOW RCC_LSECFGR_LSEDRV_1
204 #define LL_RCC_LSEDRIVE_MEDIUMHIGH RCC_LSECFGR_LSEDRV_0
205 #define LL_RCC_LSEDRIVE_HIGH RCC_LSECFGR_LSEDRV
206 /**
207 * @}
208 */
209
210 /** @defgroup RCC_LL_EC_HSECSSBYP_DIV HSI divider to apply for replacement of HSE on CSS bypass
211 * @{
212 */
213 #define LL_RCC_HSECSSBYP_DIV_1 0U
214 #define LL_RCC_HSECSSBYP_DIV_2 RCC_HSECFGR_HSECSSBPRE_0
215 #define LL_RCC_HSECSSBYP_DIV_3 RCC_HSECFGR_HSECSSBPRE_1
216 #define LL_RCC_HSECSSBYP_DIV_4 (RCC_HSECFGR_HSECSSBPRE_1 | RCC_HSECFGR_HSECSSBPRE_0)
217 #define LL_RCC_HSECSSBYP_DIV_5 RCC_HSECFGR_HSECSSBPRE_2
218 #define LL_RCC_HSECSSBYP_DIV_6 (RCC_HSECFGR_HSECSSBPRE_2 | RCC_HSECFGR_HSECSSBPRE_0)
219 #define LL_RCC_HSECSSBYP_DIV_7 (RCC_HSECFGR_HSECSSBPRE_2 | RCC_HSECFGR_HSECSSBPRE_1)
220 #define LL_RCC_HSECSSBYP_DIV_8 (RCC_HSECFGR_HSECSSBPRE_2 |\
221 RCC_HSECFGR_HSECSSBPRE_1 | RCC_HSECFGR_HSECSSBPRE_0)
222 #define LL_RCC_HSECSSBYP_DIV_9 RCC_HSECFGR_HSECSSBPRE_3
223 #define LL_RCC_HSECSSBYP_DIV_10 (RCC_HSECFGR_HSECSSBPRE_3 | RCC_HSECFGR_HSECSSBPRE_0)
224 #define LL_RCC_HSECSSBYP_DIV_11 (RCC_HSECFGR_HSECSSBPRE_3 | RCC_HSECFGR_HSECSSBPRE_1)
225 #define LL_RCC_HSECSSBYP_DIV_12 (RCC_HSECFGR_HSECSSBPRE_3 |\
226 RCC_HSECFGR_HSECSSBPRE_1 | RCC_HSECFGR_HSECSSBPRE_0)
227 #define LL_RCC_HSECSSBYP_DIV_13 (RCC_HSECFGR_HSECSSBPRE_3 | RCC_HSECFGR_HSECSSBPRE_2)
228 #define LL_RCC_HSECSSBYP_DIV_14 (RCC_HSECFGR_HSECSSBPRE_3 |\
229 RCC_HSECFGR_HSECSSBPRE_2 | RCC_HSECFGR_HSECSSBPRE_0)
230 #define LL_RCC_HSECSSBYP_DIV_15 (RCC_HSECFGR_HSECSSBPRE_3 |\
231 RCC_HSECFGR_HSECSSBPRE_2 | RCC_HSECFGR_HSECSSBPRE_1)
232 #define LL_RCC_HSECSSBYP_DIV_16 (RCC_HSECFGR_HSECSSBPRE_3 | RCC_HSECFGR_HSECSSBPRE_2 |\
233 RCC_HSECFGR_HSECSSBPRE_1 | RCC_HSECFGR_HSECSSBPRE_0)
234 /**
235 * @}
236 */
237
238
239 /** @defgroup RCC_LL_EC_CPU_CLKSOURCE CPU clock switch
240 * @{
241 */
242 #define LL_RCC_CPU_CLKSOURCE_HSI 0U /*!< Select HSI as CPU clock */
243 #define LL_RCC_CPU_CLKSOURCE_MSI RCC_CFGR1_CPUSW_0 /*!< Select MSI as CPU clock */
244 #define LL_RCC_CPU_CLKSOURCE_HSE RCC_CFGR1_CPUSW_1 /*!< Select HSE as CPU clock */
245 #define LL_RCC_CPU_CLKSOURCE_IC1 (RCC_CFGR1_CPUSW_1 | RCC_CFGR1_CPUSW_0) /*!< Select IC1 as CPU clock */
246 /**
247 * @}
248 */
249
250 /** @defgroup RCC_LL_EC_CPU_CLKSOURCE_STATUS CPU clock switch status
251 * @{
252 */
253 #define LL_RCC_CPU_CLKSOURCE_STATUS_HSI 0U /*!< HSI used as CPU clock */
254 #define LL_RCC_CPU_CLKSOURCE_STATUS_MSI RCC_CFGR1_CPUSWS_0 /*!< MSI used as CPU clock */
255 #define LL_RCC_CPU_CLKSOURCE_STATUS_HSE RCC_CFGR1_CPUSWS_1 /*!< HSE used as CPU clock */
256 #define LL_RCC_CPU_CLKSOURCE_STATUS_IC1 (RCC_CFGR1_CPUSWS_1 | RCC_CFGR1_CPUSWS_0) /*!< IC1 used as CPU clock */
257 /**
258 * @}
259 */
260
261 /** @defgroup RCC_LL_EC_SYS_CLKSOURCE System bus clock switch
262 * @{
263 */
264 #define LL_RCC_SYS_CLKSOURCE_HSI 0U /*!< Select HSI as system bus clocks */
265 #define LL_RCC_SYS_CLKSOURCE_MSI RCC_CFGR1_SYSSW_0 /*!< Select MSI as system bus clocks */
266 #define LL_RCC_SYS_CLKSOURCE_HSE RCC_CFGR1_SYSSW_1 /*!< Select HSE as system bus clocks */
267 #define LL_RCC_SYS_CLKSOURCE_IC2_IC6_IC11 (RCC_CFGR1_SYSSW_1 | RCC_CFGR1_SYSSW_0) /*!< Select IC2/IC6/IC11 as system bus clocks */
268 /**
269 * @}
270 */
271
272 /** @defgroup RCC_LL_EC_SYS_CLKSOURCE_STATUS System bus clock switch status
273 * @{
274 */
275 #define LL_RCC_SYS_CLKSOURCE_STATUS_HSI 0U /*!< HSI used as system bus clocks */
276 #define LL_RCC_SYS_CLKSOURCE_STATUS_MSI RCC_CFGR1_SYSSWS_0 /*!< MSI used as system bus clocks */
277 #define LL_RCC_SYS_CLKSOURCE_STATUS_HSE RCC_CFGR1_SYSSWS_1 /*!< HSE used as system bus clocks */
278 #define LL_RCC_SYS_CLKSOURCE_STATUS_IC2_IC6_IC11 (RCC_CFGR1_SYSSWS_1 | RCC_CFGR1_SYSSWS_0) /*!< IC2/IC6/IC11 used as system bus clocks */
279 /**
280 * @}
281 */
282
283 /** @defgroup RCC_LL_EC_SYSWAKEUP_CLKSOURCE System wakeup clock source
284 * @{
285 */
286 #define LL_RCC_SYSWAKEUP_CLKSOURCE_HSI 0U
287 #define LL_RCC_SYSWAKEUP_CLKSOURCE_MSI RCC_CFGR1_STOPWUCK
288 /**
289 * @}
290 */
291
292 /** @defgroup RCC_LL_EC_AHB_DIV AHB prescaler
293 * @{
294 */
295 #define LL_RCC_AHB_DIV_1 0U
296 #define LL_RCC_AHB_DIV_2 RCC_CFGR2_HPRE_0
297 #define LL_RCC_AHB_DIV_4 RCC_CFGR2_HPRE_1
298 #define LL_RCC_AHB_DIV_8 (RCC_CFGR2_HPRE_1 | RCC_CFGR2_HPRE_0)
299 #define LL_RCC_AHB_DIV_16 RCC_CFGR2_HPRE_2
300 #define LL_RCC_AHB_DIV_32 (RCC_CFGR2_HPRE_2 | RCC_CFGR2_HPRE_0)
301 #define LL_RCC_AHB_DIV_64 (RCC_CFGR2_HPRE_2 | RCC_CFGR2_HPRE_1)
302 #define LL_RCC_AHB_DIV_128 (RCC_CFGR2_HPRE_2 | RCC_CFGR2_HPRE_1 | RCC_CFGR2_HPRE_0)
303 /**
304 * @}
305 */
306
307 /** @defgroup RCC_LL_EC_APB1_DIV APB1 prescaler
308 * @{
309 */
310 #define LL_RCC_APB1_DIV_1 0U
311 #define LL_RCC_APB1_DIV_2 RCC_CFGR2_PPRE1_0
312 #define LL_RCC_APB1_DIV_4 RCC_CFGR2_PPRE1_1
313 #define LL_RCC_APB1_DIV_8 (RCC_CFGR2_PPRE1_1 | RCC_CFGR2_PPRE1_0)
314 #define LL_RCC_APB1_DIV_16 RCC_CFGR2_PPRE1_2
315 #define LL_RCC_APB1_DIV_32 (RCC_CFGR2_PPRE1_2 | RCC_CFGR2_PPRE1_0)
316 #define LL_RCC_APB1_DIV_64 (RCC_CFGR2_PPRE1_2 | RCC_CFGR2_PPRE1_1)
317 #define LL_RCC_APB1_DIV_128 (RCC_CFGR2_PPRE1_2 | RCC_CFGR2_PPRE1_1 | RCC_CFGR2_PPRE1_0)
318 /**
319 * @}
320 */
321
322 /** @defgroup RCC_LL_EC_APB2_DIV APB2 prescaler
323 * @{
324 */
325 #define LL_RCC_APB2_DIV_1 0U
326 #define LL_RCC_APB2_DIV_2 RCC_CFGR2_PPRE2_0
327 #define LL_RCC_APB2_DIV_4 RCC_CFGR2_PPRE2_1
328 #define LL_RCC_APB2_DIV_8 (RCC_CFGR2_PPRE2_1 | RCC_CFGR2_PPRE2_0)
329 #define LL_RCC_APB2_DIV_16 RCC_CFGR2_PPRE2_2
330 #define LL_RCC_APB2_DIV_32 (RCC_CFGR2_PPRE2_2 | RCC_CFGR2_PPRE2_0)
331 #define LL_RCC_APB2_DIV_64 (RCC_CFGR2_PPRE2_2 | RCC_CFGR2_PPRE2_1)
332 #define LL_RCC_APB2_DIV_128 (RCC_CFGR2_PPRE2_2 | RCC_CFGR2_PPRE2_1 | RCC_CFGR2_PPRE2_0)
333 /**
334 * @}
335 */
336
337 /** @defgroup RCC_LL_EC_APB4_DIV APB4 prescaler
338 * @{
339 */
340 #define LL_RCC_APB4_DIV_1 0U
341 #define LL_RCC_APB4_DIV_2 RCC_CFGR2_PPRE4_0
342 #define LL_RCC_APB4_DIV_4 RCC_CFGR2_PPRE4_1
343 #define LL_RCC_APB4_DIV_8 (RCC_CFGR2_PPRE4_1 | RCC_CFGR2_PPRE4_0)
344 #define LL_RCC_APB4_DIV_16 RCC_CFGR2_PPRE4_2
345 #define LL_RCC_APB4_DIV_32 (RCC_CFGR2_PPRE4_2 | RCC_CFGR2_PPRE4_0)
346 #define LL_RCC_APB4_DIV_64 (RCC_CFGR2_PPRE4_2 | RCC_CFGR2_PPRE4_1)
347 #define LL_RCC_APB4_DIV_128 (RCC_CFGR2_PPRE4_2 | RCC_CFGR2_PPRE4_1 | RCC_CFGR2_PPRE4_0)
348 /**
349 * @}
350 */
351
352 /** @defgroup RCC_LL_EC_APB5_DIV APB5 prescaler
353 * @{
354 */
355 #define LL_RCC_APB5_DIV_1 0U
356 #define LL_RCC_APB5_DIV_2 RCC_CFGR2_PPRE5_0
357 #define LL_RCC_APB5_DIV_4 RCC_CFGR2_PPRE5_1
358 #define LL_RCC_APB5_DIV_8 (RCC_CFGR2_PPRE5_1 | RCC_CFGR2_PPRE5_0)
359 #define LL_RCC_APB5_DIV_16 RCC_CFGR2_PPRE5_2
360 #define LL_RCC_APB5_DIV_32 (RCC_CFGR2_PPRE5_2 | RCC_CFGR2_PPRE5_0)
361 #define LL_RCC_APB5_DIV_64 (RCC_CFGR2_PPRE5_2 | RCC_CFGR2_PPRE5_1)
362 #define LL_RCC_APB5_DIV_128 (RCC_CFGR2_PPRE5_2 | RCC_CFGR2_PPRE5_1 | RCC_CFGR2_PPRE5_0)
363 /**
364 * @}
365 */
366
367 /** @defgroup RCC_LL_EC_MCOx MCO selection
368 * @{
369 */
370 #define LL_RCC_MCO1 RCC_MISCENR_MCO1EN
371 #define LL_RCC_MCO2 RCC_MISCENR_MCO2EN
372 /**
373 * @}
374 */
375
376 /** @defgroup RCC_LL_EC_MCOxSOURCE MCO source selection
377 * @{
378 */
379 #define LL_RCC_MCO1SOURCE_HSI ((RCC_CCIPR5_MCO1SEL<<16U) | 0U)
380 #define LL_RCC_MCO1SOURCE_LSE ((RCC_CCIPR5_MCO1SEL<<16U) | RCC_CCIPR5_MCO1SEL_0)
381 #define LL_RCC_MCO1SOURCE_MSI ((RCC_CCIPR5_MCO1SEL<<16U) | RCC_CCIPR5_MCO1SEL_1)
382 #define LL_RCC_MCO1SOURCE_LSI ((RCC_CCIPR5_MCO1SEL<<16U) | RCC_CCIPR5_MCO1SEL_1 | RCC_CCIPR5_MCO1SEL_0)
383 #define LL_RCC_MCO1SOURCE_HSE ((RCC_CCIPR5_MCO1SEL<<16U) | RCC_CCIPR5_MCO1SEL_2)
384 #define LL_RCC_MCO1SOURCE_IC5 ((RCC_CCIPR5_MCO1SEL<<16U) | RCC_CCIPR5_MCO1SEL_2 | RCC_CCIPR5_MCO1SEL_0)
385 #define LL_RCC_MCO1SOURCE_IC10 ((RCC_CCIPR5_MCO1SEL<<16U) | RCC_CCIPR5_MCO1SEL_2 | RCC_CCIPR5_MCO1SEL_1)
386 #define LL_RCC_MCO1SOURCE_SYSA ((RCC_CCIPR5_MCO1SEL<<16U) |\
387 RCC_CCIPR5_MCO1SEL_2 | RCC_CCIPR5_MCO1SEL_1 | RCC_CCIPR5_MCO1SEL_0)
388 #define LL_RCC_MCO2SOURCE_HSI ((RCC_CCIPR5_MCO2SEL<<16U) | 0U)
389 #define LL_RCC_MCO2SOURCE_LSE ((RCC_CCIPR5_MCO2SEL<<16U) | RCC_CCIPR5_MCO2SEL_0)
390 #define LL_RCC_MCO2SOURCE_MSI ((RCC_CCIPR5_MCO2SEL<<16U) | RCC_CCIPR5_MCO2SEL_1)
391 #define LL_RCC_MCO2SOURCE_LSI ((RCC_CCIPR5_MCO2SEL<<16U) | RCC_CCIPR5_MCO2SEL_1 | RCC_CCIPR5_MCO2SEL_0)
392 #define LL_RCC_MCO2SOURCE_HSE ((RCC_CCIPR5_MCO2SEL<<16U) | RCC_CCIPR5_MCO2SEL_2)
393 #define LL_RCC_MCO2SOURCE_IC15 ((RCC_CCIPR5_MCO2SEL<<16U) | RCC_CCIPR5_MCO2SEL_2 | RCC_CCIPR5_MCO2SEL_0)
394 #define LL_RCC_MCO2SOURCE_IC20 ((RCC_CCIPR5_MCO2SEL<<16U) | RCC_CCIPR5_MCO2SEL_2 | RCC_CCIPR5_MCO2SEL_1)
395 #define LL_RCC_MCO2SOURCE_SYSB ((RCC_CCIPR5_MCO2SEL<<16U) |\
396 RCC_CCIPR5_MCO2SEL_2 | RCC_CCIPR5_MCO2SEL_1 | RCC_CCIPR5_MCO2SEL_0)
397 /**
398 * @}
399 */
400
401 /** @defgroup RCC_LL_EC_MCOx_DIV MCO prescaler
402 * @{
403 */
404 #define LL_RCC_MCO1_DIV_1 (RCC_CCIPR5_MCO1PRE<<16U)
405 #define LL_RCC_MCO1_DIV_2 ((RCC_CCIPR5_MCO1PRE<<16U) | RCC_CCIPR5_MCO1PRE_0)
406 #define LL_RCC_MCO1_DIV_3 ((RCC_CCIPR5_MCO1PRE<<16U) | RCC_CCIPR5_MCO1PRE_1)
407 #define LL_RCC_MCO1_DIV_4 ((RCC_CCIPR5_MCO1PRE<<16U) | RCC_CCIPR5_MCO1PRE_1 | RCC_CCIPR5_MCO1PRE_0)
408 #define LL_RCC_MCO1_DIV_5 ((RCC_CCIPR5_MCO1PRE<<16U) | RCC_CCIPR5_MCO1PRE_2)
409 #define LL_RCC_MCO1_DIV_6 ((RCC_CCIPR5_MCO1PRE<<16U) | RCC_CCIPR5_MCO1PRE_2 | RCC_CCIPR5_MCO1PRE_0)
410 #define LL_RCC_MCO1_DIV_7 ((RCC_CCIPR5_MCO1PRE<<16U) | RCC_CCIPR5_MCO1PRE_2 | RCC_CCIPR5_MCO1PRE_1)
411 #define LL_RCC_MCO1_DIV_8 ((RCC_CCIPR5_MCO1PRE<<16U) |\
412 RCC_CCIPR5_MCO1PRE_2 | RCC_CCIPR5_MCO1PRE_1 | RCC_CCIPR5_MCO1PRE_0)
413 #define LL_RCC_MCO1_DIV_9 ((RCC_CCIPR5_MCO1PRE<<16U) | RCC_CCIPR5_MCO1PRE_3)
414 #define LL_RCC_MCO1_DIV_10 ((RCC_CCIPR5_MCO1PRE<<16U) | RCC_CCIPR5_MCO1PRE_3 | RCC_CCIPR5_MCO1PRE_0)
415 #define LL_RCC_MCO1_DIV_11 ((RCC_CCIPR5_MCO1PRE<<16U) | RCC_CCIPR5_MCO1PRE_3 | RCC_CCIPR5_MCO1PRE_1)
416 #define LL_RCC_MCO1_DIV_12 ((RCC_CCIPR5_MCO1PRE<<16U) |\
417 RCC_CCIPR5_MCO1PRE_3 | RCC_CCIPR5_MCO1PRE_1 | RCC_CCIPR5_MCO1PRE_0)
418 #define LL_RCC_MCO1_DIV_13 ((RCC_CCIPR5_MCO1PRE<<16U) | RCC_CCIPR5_MCO1PRE_3 | RCC_CCIPR5_MCO1PRE_2)
419 #define LL_RCC_MCO1_DIV_14 ((RCC_CCIPR5_MCO1PRE<<16U) |\
420 RCC_CCIPR5_MCO1PRE_3 | RCC_CCIPR5_MCO1PRE_2 | RCC_CCIPR5_MCO1PRE_0)
421 #define LL_RCC_MCO1_DIV_15 ((RCC_CCIPR5_MCO1PRE<<16U) |\
422 RCC_CCIPR5_MCO1PRE_3 | RCC_CCIPR5_MCO1PRE_2 | RCC_CCIPR5_MCO1PRE_1)
423 #define LL_RCC_MCO1_DIV_16 ((RCC_CCIPR5_MCO1PRE<<16U) | RCC_CCIPR5_MCO1PRE)
424 #define LL_RCC_MCO2_DIV_1 (RCC_CCIPR5_MCO2PRE<<16U)
425 #define LL_RCC_MCO2_DIV_2 ((RCC_CCIPR5_MCO2PRE<<16U) | RCC_CCIPR5_MCO2PRE_0)
426 #define LL_RCC_MCO2_DIV_3 ((RCC_CCIPR5_MCO2PRE<<16U) | RCC_CCIPR5_MCO2PRE_1)
427 #define LL_RCC_MCO2_DIV_4 ((RCC_CCIPR5_MCO2PRE<<16U) | RCC_CCIPR5_MCO2PRE_1 | RCC_CCIPR5_MCO2PRE_0)
428 #define LL_RCC_MCO2_DIV_5 ((RCC_CCIPR5_MCO2PRE<<16U) | RCC_CCIPR5_MCO2PRE_2)
429 #define LL_RCC_MCO2_DIV_6 ((RCC_CCIPR5_MCO2PRE<<16U) | RCC_CCIPR5_MCO2PRE_2 | RCC_CCIPR5_MCO2PRE_0)
430 #define LL_RCC_MCO2_DIV_7 ((RCC_CCIPR5_MCO2PRE<<16U) | RCC_CCIPR5_MCO2PRE_2 | RCC_CCIPR5_MCO2PRE_1)
431 #define LL_RCC_MCO2_DIV_8 ((RCC_CCIPR5_MCO2PRE<<16U) |\
432 RCC_CCIPR5_MCO2PRE_2 | RCC_CCIPR5_MCO2PRE_1 | RCC_CCIPR5_MCO2PRE_0)
433 #define LL_RCC_MCO2_DIV_9 ((RCC_CCIPR5_MCO2PRE<<16U) | RCC_CCIPR5_MCO2PRE_3)
434 #define LL_RCC_MCO2_DIV_10 ((RCC_CCIPR5_MCO2PRE<<16U) | RCC_CCIPR5_MCO2PRE_3 | RCC_CCIPR5_MCO2PRE_0)
435 #define LL_RCC_MCO2_DIV_11 ((RCC_CCIPR5_MCO2PRE<<16U) | RCC_CCIPR5_MCO2PRE_3 | RCC_CCIPR5_MCO2PRE_1)
436 #define LL_RCC_MCO2_DIV_12 ((RCC_CCIPR5_MCO2PRE<<16U) |\
437 RCC_CCIPR5_MCO2PRE_3 | RCC_CCIPR5_MCO2PRE_1 | RCC_CCIPR5_MCO2PRE_0)
438 #define LL_RCC_MCO2_DIV_13 ((RCC_CCIPR5_MCO2PRE<<16U) | RCC_CCIPR5_MCO2PRE_3 | RCC_CCIPR5_MCO2PRE_2)
439 #define LL_RCC_MCO2_DIV_14 ((RCC_CCIPR5_MCO2PRE<<16U) |\
440 RCC_CCIPR5_MCO2PRE_3 | RCC_CCIPR5_MCO2PRE_2 | RCC_CCIPR5_MCO2PRE_0)
441 #define LL_RCC_MCO2_DIV_15 ((RCC_CCIPR5_MCO2PRE<<16U) |\
442 RCC_CCIPR5_MCO2PRE_3 | RCC_CCIPR5_MCO2PRE_2 | RCC_CCIPR5_MCO2PRE_1)
443 #define LL_RCC_MCO2_DIV_16 ((RCC_CCIPR5_MCO2PRE<<16U) | RCC_CCIPR5_MCO2PRE)
444
445 /**
446 * @}
447 */
448
449 /** @defgroup RCC_LL_EC_RTC_HSE_DIV Prescaler for RTC clock
450 * @{
451 */
452 #define LL_RCC_RTC_HSE_DIV_1 0U
453 #define LL_RCC_RTC_HSE_DIV_2 RCC_CCIPR7_RTCPRE_0
454 #define LL_RCC_RTC_HSE_DIV_3 RCC_CCIPR7_RTCPRE_1
455 #define LL_RCC_RTC_HSE_DIV_4 (RCC_CCIPR7_RTCPRE_1 | RCC_CCIPR7_RTCPRE_0)
456 #define LL_RCC_RTC_HSE_DIV_5 RCC_CCIPR7_RTCPRE_2
457 #define LL_RCC_RTC_HSE_DIV_6 (RCC_CCIPR7_RTCPRE_2 | RCC_CCIPR7_RTCPRE_0)
458 #define LL_RCC_RTC_HSE_DIV_7 (RCC_CCIPR7_RTCPRE_2 | RCC_CCIPR7_RTCPRE_1)
459 #define LL_RCC_RTC_HSE_DIV_8 (RCC_CCIPR7_RTCPRE_2 | RCC_CCIPR7_RTCPRE_1 | RCC_CCIPR7_RTCPRE_0)
460 #define LL_RCC_RTC_HSE_DIV_9 RCC_CCIPR7_RTCPRE_3
461 #define LL_RCC_RTC_HSE_DIV_10 (RCC_CCIPR7_RTCPRE_3 | RCC_CCIPR7_RTCPRE_0)
462 #define LL_RCC_RTC_HSE_DIV_11 (RCC_CCIPR7_RTCPRE_3 | RCC_CCIPR7_RTCPRE_1)
463 #define LL_RCC_RTC_HSE_DIV_12 (RCC_CCIPR7_RTCPRE_3 | RCC_CCIPR7_RTCPRE_1 | RCC_CCIPR7_RTCPRE_0)
464 #define LL_RCC_RTC_HSE_DIV_13 (RCC_CCIPR7_RTCPRE_3 | RCC_CCIPR7_RTCPRE_2)
465 #define LL_RCC_RTC_HSE_DIV_14 (RCC_CCIPR7_RTCPRE_3 | RCC_CCIPR7_RTCPRE_2 | RCC_CCIPR7_RTCPRE_0)
466 #define LL_RCC_RTC_HSE_DIV_15 (RCC_CCIPR7_RTCPRE_3 | RCC_CCIPR7_RTCPRE_2 | RCC_CCIPR7_RTCPRE_1)
467 #define LL_RCC_RTC_HSE_DIV_16 (RCC_CCIPR7_RTCPRE_3 |\
468 RCC_CCIPR7_RTCPRE_2 | RCC_CCIPR7_RTCPRE_1 | RCC_CCIPR7_RTCPRE_0)
469 #define LL_RCC_RTC_HSE_DIV_17 RCC_CCIPR7_RTCPRE_4
470 #define LL_RCC_RTC_HSE_DIV_18 (RCC_CCIPR7_RTCPRE_4 | RCC_CCIPR7_RTCPRE_0)
471 #define LL_RCC_RTC_HSE_DIV_19 (RCC_CCIPR7_RTCPRE_4 | RCC_CCIPR7_RTCPRE_1)
472 #define LL_RCC_RTC_HSE_DIV_20 (RCC_CCIPR7_RTCPRE_4 | RCC_CCIPR7_RTCPRE_1 | RCC_CCIPR7_RTCPRE_0)
473 #define LL_RCC_RTC_HSE_DIV_21 (RCC_CCIPR7_RTCPRE_4 | RCC_CCIPR7_RTCPRE_2)
474 #define LL_RCC_RTC_HSE_DIV_22 (RCC_CCIPR7_RTCPRE_4 | RCC_CCIPR7_RTCPRE_2 | RCC_CCIPR7_RTCPRE_0)
475 #define LL_RCC_RTC_HSE_DIV_23 (RCC_CCIPR7_RTCPRE_4 | RCC_CCIPR7_RTCPRE_2 | RCC_CCIPR7_RTCPRE_1)
476 #define LL_RCC_RTC_HSE_DIV_24 (RCC_CCIPR7_RTCPRE_4 |\
477 RCC_CCIPR7_RTCPRE_2 | RCC_CCIPR7_RTCPRE_1 | RCC_CCIPR7_RTCPRE_0)
478 #define LL_RCC_RTC_HSE_DIV_25 (RCC_CCIPR7_RTCPRE_4 | RCC_CCIPR7_RTCPRE_3)
479 #define LL_RCC_RTC_HSE_DIV_26 (RCC_CCIPR7_RTCPRE_4 | RCC_CCIPR7_RTCPRE_3 | RCC_CCIPR7_RTCPRE_0)
480 #define LL_RCC_RTC_HSE_DIV_27 (RCC_CCIPR7_RTCPRE_4 | RCC_CCIPR7_RTCPRE_3 | RCC_CCIPR7_RTCPRE_1)
481 #define LL_RCC_RTC_HSE_DIV_28 (RCC_CCIPR7_RTCPRE_4 |\
482 RCC_CCIPR7_RTCPRE_3 | RCC_CCIPR7_RTCPRE_1 | RCC_CCIPR7_RTCPRE_0)
483 #define LL_RCC_RTC_HSE_DIV_29 (RCC_CCIPR7_RTCPRE_4 | RCC_CCIPR7_RTCPRE_3 | RCC_CCIPR7_RTCPRE_2)
484 #define LL_RCC_RTC_HSE_DIV_30 (RCC_CCIPR7_RTCPRE_4 |\
485 RCC_CCIPR7_RTCPRE_3 | RCC_CCIPR7_RTCPRE_2 | RCC_CCIPR7_RTCPRE_0)
486 #define LL_RCC_RTC_HSE_DIV_31 (RCC_CCIPR7_RTCPRE_4 |\
487 RCC_CCIPR7_RTCPRE_3 | RCC_CCIPR7_RTCPRE_2 | RCC_CCIPR7_RTCPRE_1)
488 #define LL_RCC_RTC_HSE_DIV_32 (RCC_CCIPR7_RTCPRE_4 | RCC_CCIPR7_RTCPRE_3 | RCC_CCIPR7_RTCPRE_2 |\
489 RCC_CCIPR7_RTCPRE_1 | RCC_CCIPR7_RTCPRE_0)
490 #define LL_RCC_RTC_HSE_DIV_33 RCC_CCIPR7_RTCPRE_5
491 #define LL_RCC_RTC_HSE_DIV_34 (RCC_CCIPR7_RTCPRE_5 | RCC_CCIPR7_RTCPRE_0)
492 #define LL_RCC_RTC_HSE_DIV_35 (RCC_CCIPR7_RTCPRE_5 | RCC_CCIPR7_RTCPRE_1)
493 #define LL_RCC_RTC_HSE_DIV_36 (RCC_CCIPR7_RTCPRE_5 | RCC_CCIPR7_RTCPRE_1 | RCC_CCIPR7_RTCPRE_0)
494 #define LL_RCC_RTC_HSE_DIV_37 (RCC_CCIPR7_RTCPRE_5 | RCC_CCIPR7_RTCPRE_2)
495 #define LL_RCC_RTC_HSE_DIV_38 (RCC_CCIPR7_RTCPRE_5 | RCC_CCIPR7_RTCPRE_2 | RCC_CCIPR7_RTCPRE_0)
496 #define LL_RCC_RTC_HSE_DIV_39 (RCC_CCIPR7_RTCPRE_5 | RCC_CCIPR7_RTCPRE_2 | RCC_CCIPR7_RTCPRE_1)
497 #define LL_RCC_RTC_HSE_DIV_40 (RCC_CCIPR7_RTCPRE_5 |\
498 RCC_CCIPR7_RTCPRE_2 | RCC_CCIPR7_RTCPRE_1 | RCC_CCIPR7_RTCPRE_0)
499 #define LL_RCC_RTC_HSE_DIV_41 (RCC_CCIPR7_RTCPRE_5 | RCC_CCIPR7_RTCPRE_3)
500 #define LL_RCC_RTC_HSE_DIV_42 (RCC_CCIPR7_RTCPRE_5 | RCC_CCIPR7_RTCPRE_3 | RCC_CCIPR7_RTCPRE_0)
501 #define LL_RCC_RTC_HSE_DIV_43 (RCC_CCIPR7_RTCPRE_5 | RCC_CCIPR7_RTCPRE_3 | RCC_CCIPR7_RTCPRE_1)
502 #define LL_RCC_RTC_HSE_DIV_44 (RCC_CCIPR7_RTCPRE_5 |\
503 RCC_CCIPR7_RTCPRE_3 | RCC_CCIPR7_RTCPRE_1 | RCC_CCIPR7_RTCPRE_0)
504 #define LL_RCC_RTC_HSE_DIV_45 (RCC_CCIPR7_RTCPRE_5 | RCC_CCIPR7_RTCPRE_3 | RCC_CCIPR7_RTCPRE_2)
505 #define LL_RCC_RTC_HSE_DIV_46 (RCC_CCIPR7_RTCPRE_5 |\
506 RCC_CCIPR7_RTCPRE_3 | RCC_CCIPR7_RTCPRE_2 | RCC_CCIPR7_RTCPRE_0)
507 #define LL_RCC_RTC_HSE_DIV_47 (RCC_CCIPR7_RTCPRE_5 |\
508 RCC_CCIPR7_RTCPRE_3 | RCC_CCIPR7_RTCPRE_2 | RCC_CCIPR7_RTCPRE_1)
509 #define LL_RCC_RTC_HSE_DIV_48 (RCC_CCIPR7_RTCPRE_5 | RCC_CCIPR7_RTCPRE_3 | RCC_CCIPR7_RTCPRE_2 |\
510 RCC_CCIPR7_RTCPRE_1 | RCC_CCIPR7_RTCPRE_0)
511 #define LL_RCC_RTC_HSE_DIV_49 (RCC_CCIPR7_RTCPRE_5 | RCC_CCIPR7_RTCPRE_4)
512 #define LL_RCC_RTC_HSE_DIV_50 (RCC_CCIPR7_RTCPRE_5 | RCC_CCIPR7_RTCPRE_4 | RCC_CCIPR7_RTCPRE_0)
513 #define LL_RCC_RTC_HSE_DIV_51 (RCC_CCIPR7_RTCPRE_5 | RCC_CCIPR7_RTCPRE_4 | RCC_CCIPR7_RTCPRE_1)
514 #define LL_RCC_RTC_HSE_DIV_52 (RCC_CCIPR7_RTCPRE_5 |\
515 RCC_CCIPR7_RTCPRE_4 | RCC_CCIPR7_RTCPRE_1 | RCC_CCIPR7_RTCPRE_0)
516 #define LL_RCC_RTC_HSE_DIV_53 (RCC_CCIPR7_RTCPRE_5 | RCC_CCIPR7_RTCPRE_4 | RCC_CCIPR7_RTCPRE_2)
517 #define LL_RCC_RTC_HSE_DIV_54 (RCC_CCIPR7_RTCPRE_5 |\
518 RCC_CCIPR7_RTCPRE_4 | RCC_CCIPR7_RTCPRE_2 | RCC_CCIPR7_RTCPRE_0)
519 #define LL_RCC_RTC_HSE_DIV_55 (RCC_CCIPR7_RTCPRE_5 |\
520 RCC_CCIPR7_RTCPRE_4 | RCC_CCIPR7_RTCPRE_2 | RCC_CCIPR7_RTCPRE_1)
521 #define LL_RCC_RTC_HSE_DIV_56 (RCC_CCIPR7_RTCPRE_5 | RCC_CCIPR7_RTCPRE_4 | RCC_CCIPR7_RTCPRE_2 |\
522 RCC_CCIPR7_RTCPRE_1 | RCC_CCIPR7_RTCPRE_0)
523 #define LL_RCC_RTC_HSE_DIV_57 (RCC_CCIPR7_RTCPRE_5 | RCC_CCIPR7_RTCPRE_4 | RCC_CCIPR7_RTCPRE_3)
524 #define LL_RCC_RTC_HSE_DIV_58 (RCC_CCIPR7_RTCPRE_5 |\
525 RCC_CCIPR7_RTCPRE_4 | RCC_CCIPR7_RTCPRE_3 | RCC_CCIPR7_RTCPRE_0)
526 #define LL_RCC_RTC_HSE_DIV_59 (RCC_CCIPR7_RTCPRE_5 |\
527 RCC_CCIPR7_RTCPRE_4 | RCC_CCIPR7_RTCPRE_3 | RCC_CCIPR7_RTCPRE_1)
528 #define LL_RCC_RTC_HSE_DIV_60 (RCC_CCIPR7_RTCPRE_5 | RCC_CCIPR7_RTCPRE_4 | RCC_CCIPR7_RTCPRE_3 |\
529 RCC_CCIPR7_RTCPRE_1 | RCC_CCIPR7_RTCPRE_0)
530 #define LL_RCC_RTC_HSE_DIV_61 (RCC_CCIPR7_RTCPRE_5 |\
531 RCC_CCIPR7_RTCPRE_4 | RCC_CCIPR7_RTCPRE_3 | RCC_CCIPR7_RTCPRE_2)
532 #define LL_RCC_RTC_HSE_DIV_62 (RCC_CCIPR7_RTCPRE_5 | RCC_CCIPR7_RTCPRE_4 | RCC_CCIPR7_RTCPRE_3 |\
533 RCC_CCIPR7_RTCPRE_2 | RCC_CCIPR7_RTCPRE_0)
534 #define LL_RCC_RTC_HSE_DIV_63 (RCC_CCIPR7_RTCPRE_5 | RCC_CCIPR7_RTCPRE_4 | RCC_CCIPR7_RTCPRE_3 |\
535 RCC_CCIPR7_RTCPRE_2 | RCC_CCIPR7_RTCPRE_1)
536 #define LL_RCC_RTC_HSE_DIV_64 (RCC_CCIPR7_RTCPRE_5 | RCC_CCIPR7_RTCPRE_4 | RCC_CCIPR7_RTCPRE_3 |\
537 RCC_CCIPR7_RTCPRE_2 | RCC_CCIPR7_RTCPRE_1 | RCC_CCIPR7_RTCPRE_0)
538 /**
539 * @}
540 */
541
542 /** @defgroup RCC_LL_EC_ADC_CLKSOURCE Peripheral ADC clock source selection
543 * @{
544 */
545 #define LL_RCC_ADC_CLKSOURCE_HCLK 0U
546 #define LL_RCC_ADC_CLKSOURCE_CLKP RCC_CCIPR1_ADC12SEL_0
547 #define LL_RCC_ADC_CLKSOURCE_IC7 RCC_CCIPR1_ADC12SEL_1
548 #define LL_RCC_ADC_CLKSOURCE_IC8 (RCC_CCIPR1_ADC12SEL_1 | RCC_CCIPR1_ADC12SEL_0)
549 #define LL_RCC_ADC_CLKSOURCE_MSI RCC_CCIPR1_ADC12SEL_2
550 #define LL_RCC_ADC_CLKSOURCE_HSI (RCC_CCIPR1_ADC12SEL_2 | RCC_CCIPR1_ADC12SEL_0)
551 #define LL_RCC_ADC_CLKSOURCE_I2S_CKIN (RCC_CCIPR1_ADC12SEL_2 | RCC_CCIPR1_ADC12SEL_1)
552 #define LL_RCC_ADC_CLKSOURCE_TIMG (RCC_CCIPR1_ADC12SEL_2 | RCC_CCIPR1_ADC12SEL_1 | RCC_CCIPR1_ADC12SEL_0)
553 /**
554 * @}
555 */
556
557 /** @defgroup RCC_LL_EC_ADF_CLKSOURCE Peripheral ADF clock source selection
558 * @{
559 */
560 #define LL_RCC_ADF1_CLKSOURCE_HCLK 0U
561 #define LL_RCC_ADF1_CLKSOURCE_CLKP RCC_CCIPR1_ADF1SEL_0
562 #define LL_RCC_ADF1_CLKSOURCE_IC7 RCC_CCIPR1_ADF1SEL_1
563 #define LL_RCC_ADF1_CLKSOURCE_IC8 (RCC_CCIPR1_ADF1SEL_1 | RCC_CCIPR1_ADF1SEL_0)
564 #define LL_RCC_ADF1_CLKSOURCE_MSI RCC_CCIPR1_ADF1SEL_2
565 #define LL_RCC_ADF1_CLKSOURCE_HSI (RCC_CCIPR1_ADF1SEL_2 | RCC_CCIPR1_ADF1SEL_0)
566 #define LL_RCC_ADF1_CLKSOURCE_I2S_CKIN (RCC_CCIPR1_ADF1SEL_2 | RCC_CCIPR1_ADF1SEL_1)
567 #define LL_RCC_ADF1_CLKSOURCE_TIMG (RCC_CCIPR1_ADF1SEL_2 | RCC_CCIPR1_ADF1SEL_1 | RCC_CCIPR1_ADF1SEL_0)
568 /**
569 * @}
570 */
571
572 /** @defgroup RCC_LL_EC_CLKP_CLKSOURCE Peripheral CLKP clock source selection
573 * @{
574 */
575 #define LL_RCC_CLKP_CLKSOURCE_HSI 0U
576 #define LL_RCC_CLKP_CLKSOURCE_MSI RCC_CCIPR7_PERSEL_0
577 #define LL_RCC_CLKP_CLKSOURCE_HSE RCC_CCIPR7_PERSEL_1
578 #define LL_RCC_CLKP_CLKSOURCE_IC19 (RCC_CCIPR7_PERSEL_1 | RCC_CCIPR7_PERSEL_0)
579 #define LL_RCC_CLKP_CLKSOURCE_IC5 RCC_CCIPR7_PERSEL_2
580 #define LL_RCC_CLKP_CLKSOURCE_IC10 (RCC_CCIPR7_PERSEL_2 | RCC_CCIPR7_PERSEL_0)
581 #define LL_RCC_CLKP_CLKSOURCE_IC15 (RCC_CCIPR7_PERSEL_2 | RCC_CCIPR7_PERSEL_1)
582 #define LL_RCC_CLKP_CLKSOURCE_IC20 (RCC_CCIPR7_PERSEL_2 | RCC_CCIPR7_PERSEL_1 | RCC_CCIPR7_PERSEL_0)
583 /**
584 * @}
585 */
586
587 /** @defgroup RCC_LL_EC_DCMIPP_CLKSOURCE Peripheral DCMIPP clock source selection
588 * @{
589 */
590 #define LL_RCC_DCMIPP_CLKSOURCE_PCLK5 0U
591 #define LL_RCC_DCMIPP_CLKSOURCE_CLKP RCC_CCIPR1_DCMIPPSEL_0
592 #define LL_RCC_DCMIPP_CLKSOURCE_IC17 RCC_CCIPR1_DCMIPPSEL_1
593 #define LL_RCC_DCMIPP_CLKSOURCE_HSI (RCC_CCIPR1_DCMIPPSEL_1 | RCC_CCIPR1_DCMIPPSEL_0)
594 /**
595 * @}
596 */
597
598 /** @defgroup RCC_LL_EC_ETH_CLKSOURCE Peripheral ETH kernel clock source selection
599 * @{
600 */
601 #define LL_RCC_ETH1_CLKSOURCE_HCLK 0U
602 #define LL_RCC_ETH1_CLKSOURCE_CLKP RCC_CCIPR2_ETH1CLKSEL_0
603 #define LL_RCC_ETH1_CLKSOURCE_IC12 RCC_CCIPR2_ETH1CLKSEL_1
604 #define LL_RCC_ETH1_CLKSOURCE_HSE (RCC_CCIPR2_ETH1CLKSEL_1 | RCC_CCIPR2_ETH1CLKSEL_0)
605 /**
606 * @}
607 */
608
609 /** @defgroup RCC_LL_EC_ETHPHY_IF Peripheral ETH PHY interface selection
610 * @{
611 */
612 #define LL_RCC_ETH1PHY_IF_MII 0U
613 #define LL_RCC_ETH1PHY_IF_RGMII RCC_CCIPR2_ETH1SEL_0
614 #define LL_RCC_ETH1PHY_IF_RMII RCC_CCIPR2_ETH1SEL_2
615 /**
616 * @}
617 */
618
619 /** @defgroup RCC_LL_EC_ETHREFRX_CLKSOURCE Peripheral ETH Reference RX clock source selection
620 * @{
621 */
622 #define LL_RCC_ETH1REFRX_CLKSOURCE_EXT 0U
623 #define LL_RCC_ETH1REFRX_CLKSOURCE_INT RCC_CCIPR2_ETH1REFCLKSEL
624 /**
625 * @}
626 */
627
628 /** @defgroup RCC_LL_EC_ETHREFTX_CLKSOURCE Peripheral ETH Reference TX clock source selection
629 * @{
630 */
631 #define LL_RCC_ETH1REFTX_CLKSOURCE_EXT 0U
632 #define LL_RCC_ETH1REFTX_CLKSOURCE_INT RCC_CCIPR2_ETH1GTXCLKSEL
633 /**
634 * @}
635 */
636
637 /** @defgroup RCC_LL_EC_ETHPTP_CLKSOURCE Peripheral ETH PTP kernel clock source selection
638 * @{
639 */
640 #define LL_RCC_ETH1PTP_CLKSOURCE_HCLK 0U
641 #define LL_RCC_ETH1PTP_CLKSOURCE_CLKP RCC_CCIPR2_ETH1PTPSEL_0
642 #define LL_RCC_ETH1PTP_CLKSOURCE_IC13 RCC_CCIPR2_ETH1PTPSEL_1
643 #define LL_RCC_ETH1PTP_CLKSOURCE_HSE (RCC_CCIPR2_ETH1PTPSEL_1 | RCC_CCIPR2_ETH1PTPSEL_0)
644 /**
645 * @}
646 */
647
648 /** @defgroup RCC_LL_EC_ETH1PTP_DIV ETH1 PTP kernel clock divider selection
649 * @{
650 */
651 #define LL_RCC_ETH1PTP_DIV_1 0U
652 #define LL_RCC_ETH1PTP_DIV_2 RCC_CCIPR2_ETH1PTPDIV_0
653 #define LL_RCC_ETH1PTP_DIV_3 RCC_CCIPR2_ETH1PTPDIV_1
654 #define LL_RCC_ETH1PTP_DIV_4 (RCC_CCIPR2_ETH1PTPDIV_1 | RCC_CCIPR2_ETH1PTPDIV_0)
655 #define LL_RCC_ETH1PTP_DIV_5 RCC_CCIPR2_ETH1PTPDIV_2
656 #define LL_RCC_ETH1PTP_DIV_6 (RCC_CCIPR2_ETH1PTPDIV_2 | RCC_CCIPR2_ETH1PTPDIV_0)
657 #define LL_RCC_ETH1PTP_DIV_7 (RCC_CCIPR2_ETH1PTPDIV_2 | RCC_CCIPR2_ETH1PTPDIV_1)
658 #define LL_RCC_ETH1PTP_DIV_8 (RCC_CCIPR2_ETH1PTPDIV_2 | RCC_CCIPR2_ETH1PTPDIV_1 | RCC_CCIPR2_ETH1PTPDIV_0)
659 #define LL_RCC_ETH1PTP_DIV_9 RCC_CCIPR2_ETH1PTPDIV_3
660 #define LL_RCC_ETH1PTP_DIV_10 (RCC_CCIPR2_ETH1PTPDIV_3 | RCC_CCIPR2_ETH1PTPDIV_0)
661 #define LL_RCC_ETH1PTP_DIV_11 (RCC_CCIPR2_ETH1PTPDIV_3 | RCC_CCIPR2_ETH1PTPDIV_1)
662 #define LL_RCC_ETH1PTP_DIV_12 (RCC_CCIPR2_ETH1PTPDIV_3 | RCC_CCIPR2_ETH1PTPDIV_1 | RCC_CCIPR2_ETH1PTPDIV_0)
663 #define LL_RCC_ETH1PTP_DIV_13 (RCC_CCIPR2_ETH1PTPDIV_3 | RCC_CCIPR2_ETH1PTPDIV_2)
664 #define LL_RCC_ETH1PTP_DIV_14 (RCC_CCIPR2_ETH1PTPDIV_3 | RCC_CCIPR2_ETH1PTPDIV_2 | RCC_CCIPR2_ETH1PTPDIV_0)
665 #define LL_RCC_ETH1PTP_DIV_15 (RCC_CCIPR2_ETH1PTPDIV_3 | RCC_CCIPR2_ETH1PTPDIV_2 | RCC_CCIPR2_ETH1PTPDIV_1)
666 #define LL_RCC_ETH1PTP_DIV_16 (RCC_CCIPR2_ETH1PTPDIV_3 |\
667 RCC_CCIPR2_ETH1PTPDIV_2 | RCC_CCIPR2_ETH1PTPDIV_1 | RCC_CCIPR2_ETH1PTPDIV_0)
668 /**
669 * @}
670 */
671
672 /** @defgroup RCC_LL_EC_FDCAN_CLKSOURCE Peripheral FDCAN clock source selection
673 * @{
674 */
675 #define LL_RCC_FDCAN_CLKSOURCE_PCLK1 0U
676 #define LL_RCC_FDCAN_CLKSOURCE_CLKP RCC_CCIPR3_FDCANSEL_0
677 #define LL_RCC_FDCAN_CLKSOURCE_IC19 RCC_CCIPR3_FDCANSEL_1
678 #define LL_RCC_FDCAN_CLKSOURCE_HSE (RCC_CCIPR3_FDCANSEL_1 | RCC_CCIPR3_FDCANSEL_0)
679 /**
680 * @}
681 */
682
683 /** @defgroup RCC_LL_EC_FMC_CLKSOURCE Peripheral FMC clock source selection
684 * @{
685 */
686 #define LL_RCC_FMC_CLKSOURCE_HCLK 0U
687 #define LL_RCC_FMC_CLKSOURCE_CLKP RCC_CCIPR3_FMCSEL_0
688 #define LL_RCC_FMC_CLKSOURCE_IC3 RCC_CCIPR3_FMCSEL_1
689 #define LL_RCC_FMC_CLKSOURCE_IC4 (RCC_CCIPR3_FMCSEL_1 | RCC_CCIPR3_FMCSEL_0)
690 /**
691 * @}
692 */
693
694 /** @defgroup RCC_LL_EC_I2C_CLKSOURCE Peripheral I2C clock source selection
695 * @{
696 */
697 #define LL_RCC_I2C1_CLKSOURCE_PCLK1 LL_CLKSOURCE(CCIPR4_OFFSET, RCC_CCIPR4_I2C1SEL, RCC_CCIPR4_I2C1SEL_Pos, 0U)
698 #define LL_RCC_I2C1_CLKSOURCE_CLKP LL_CLKSOURCE(CCIPR4_OFFSET, RCC_CCIPR4_I2C1SEL, RCC_CCIPR4_I2C1SEL_Pos,\
699 RCC_CCIPR4_I2C1SEL_0)
700 #define LL_RCC_I2C1_CLKSOURCE_IC10 LL_CLKSOURCE(CCIPR4_OFFSET, RCC_CCIPR4_I2C1SEL, RCC_CCIPR4_I2C1SEL_Pos,\
701 RCC_CCIPR4_I2C1SEL_1)
702 #define LL_RCC_I2C1_CLKSOURCE_IC15 LL_CLKSOURCE(CCIPR4_OFFSET, RCC_CCIPR4_I2C1SEL, RCC_CCIPR4_I2C1SEL_Pos,\
703 RCC_CCIPR4_I2C1SEL_1 | RCC_CCIPR4_I2C1SEL_0)
704 #define LL_RCC_I2C1_CLKSOURCE_MSI LL_CLKSOURCE(CCIPR4_OFFSET, RCC_CCIPR4_I2C1SEL, RCC_CCIPR4_I2C1SEL_Pos,\
705 RCC_CCIPR4_I2C1SEL_2)
706 #define LL_RCC_I2C1_CLKSOURCE_HSI LL_CLKSOURCE(CCIPR4_OFFSET, RCC_CCIPR4_I2C1SEL, RCC_CCIPR4_I2C1SEL_Pos,\
707 RCC_CCIPR4_I2C1SEL_2| RCC_CCIPR4_I2C1SEL_0)
708
709 #define LL_RCC_I2C2_CLKSOURCE_PCLK1 LL_CLKSOURCE(CCIPR4_OFFSET, RCC_CCIPR4_I2C2SEL, RCC_CCIPR4_I2C2SEL_Pos, 0U)
710 #define LL_RCC_I2C2_CLKSOURCE_CLKP LL_CLKSOURCE(CCIPR4_OFFSET, RCC_CCIPR4_I2C2SEL, RCC_CCIPR4_I2C2SEL_Pos,\
711 RCC_CCIPR4_I2C2SEL_0)
712 #define LL_RCC_I2C2_CLKSOURCE_IC10 LL_CLKSOURCE(CCIPR4_OFFSET, RCC_CCIPR4_I2C2SEL, RCC_CCIPR4_I2C2SEL_Pos,\
713 RCC_CCIPR4_I2C2SEL_1)
714 #define LL_RCC_I2C2_CLKSOURCE_IC15 LL_CLKSOURCE(CCIPR4_OFFSET, RCC_CCIPR4_I2C2SEL, RCC_CCIPR4_I2C2SEL_Pos,\
715 RCC_CCIPR4_I2C2SEL_1 | RCC_CCIPR4_I2C2SEL_0)
716 #define LL_RCC_I2C2_CLKSOURCE_MSI LL_CLKSOURCE(CCIPR4_OFFSET, RCC_CCIPR4_I2C2SEL, RCC_CCIPR4_I2C2SEL_Pos,\
717 RCC_CCIPR4_I2C2SEL_2)
718 #define LL_RCC_I2C2_CLKSOURCE_HSI LL_CLKSOURCE(CCIPR4_OFFSET, RCC_CCIPR4_I2C2SEL, RCC_CCIPR4_I2C2SEL_Pos,\
719 RCC_CCIPR4_I2C2SEL_2 | RCC_CCIPR4_I2C2SEL_0)
720
721 #define LL_RCC_I2C3_CLKSOURCE_PCLK1 LL_CLKSOURCE(CCIPR4_OFFSET, RCC_CCIPR4_I2C3SEL, RCC_CCIPR4_I2C3SEL_Pos, 0U)
722 #define LL_RCC_I2C3_CLKSOURCE_CLKP LL_CLKSOURCE(CCIPR4_OFFSET, RCC_CCIPR4_I2C3SEL, RCC_CCIPR4_I2C3SEL_Pos,\
723 RCC_CCIPR4_I2C3SEL_0)
724 #define LL_RCC_I2C3_CLKSOURCE_IC10 LL_CLKSOURCE(CCIPR4_OFFSET, RCC_CCIPR4_I2C3SEL, RCC_CCIPR4_I2C3SEL_Pos,\
725 RCC_CCIPR4_I2C3SEL_1)
726 #define LL_RCC_I2C3_CLKSOURCE_IC15 LL_CLKSOURCE(CCIPR4_OFFSET, RCC_CCIPR4_I2C3SEL, RCC_CCIPR4_I2C3SEL_Pos,\
727 RCC_CCIPR4_I2C3SEL_1 | RCC_CCIPR4_I2C3SEL_0)
728 #define LL_RCC_I2C3_CLKSOURCE_MSI LL_CLKSOURCE(CCIPR4_OFFSET, RCC_CCIPR4_I2C3SEL, RCC_CCIPR4_I2C3SEL_Pos,\
729 RCC_CCIPR4_I2C3SEL_2)
730 #define LL_RCC_I2C3_CLKSOURCE_HSI LL_CLKSOURCE(CCIPR4_OFFSET, RCC_CCIPR4_I2C3SEL, RCC_CCIPR4_I2C3SEL_Pos,\
731 RCC_CCIPR4_I2C3SEL_2| RCC_CCIPR4_I2C3SEL_0)
732
733 #define LL_RCC_I2C4_CLKSOURCE_PCLK1 LL_CLKSOURCE(CCIPR4_OFFSET, RCC_CCIPR4_I2C4SEL, RCC_CCIPR4_I2C4SEL_Pos, 0U)
734 #define LL_RCC_I2C4_CLKSOURCE_CLKP LL_CLKSOURCE(CCIPR4_OFFSET, RCC_CCIPR4_I2C4SEL, RCC_CCIPR4_I2C4SEL_Pos,\
735 RCC_CCIPR4_I2C4SEL_0)
736 #define LL_RCC_I2C4_CLKSOURCE_IC10 LL_CLKSOURCE(CCIPR4_OFFSET, RCC_CCIPR4_I2C4SEL, RCC_CCIPR4_I2C4SEL_Pos,\
737 RCC_CCIPR4_I2C4SEL_1)
738 #define LL_RCC_I2C4_CLKSOURCE_IC15 LL_CLKSOURCE(CCIPR4_OFFSET, RCC_CCIPR4_I2C4SEL, RCC_CCIPR4_I2C4SEL_Pos,\
739 RCC_CCIPR4_I2C4SEL_1 | RCC_CCIPR4_I2C4SEL_0)
740 #define LL_RCC_I2C4_CLKSOURCE_MSI LL_CLKSOURCE(CCIPR4_OFFSET, RCC_CCIPR4_I2C4SEL, RCC_CCIPR4_I2C4SEL_Pos,\
741 RCC_CCIPR4_I2C4SEL_2)
742 #define LL_RCC_I2C4_CLKSOURCE_HSI LL_CLKSOURCE(CCIPR4_OFFSET, RCC_CCIPR4_I2C4SEL, RCC_CCIPR4_I2C4SEL_Pos,\
743 RCC_CCIPR4_I2C4SEL_2| RCC_CCIPR4_I2C4SEL_0)
744 /**
745 * @}
746 */
747
748 /** @defgroup RCC_LL_EC_I3C_CLKSOURCE Peripheral I3C clock source selection
749 * @{
750 */
751 #define LL_RCC_I3C1_CLKSOURCE_PCLK1 LL_CLKSOURCE(CCIPR4_OFFSET, RCC_CCIPR4_I3C1SEL, RCC_CCIPR4_I3C1SEL_Pos, 0U)
752 #define LL_RCC_I3C1_CLKSOURCE_CLKP LL_CLKSOURCE(CCIPR4_OFFSET, RCC_CCIPR4_I3C1SEL, RCC_CCIPR4_I3C1SEL_Pos,\
753 RCC_CCIPR4_I3C1SEL_0)
754 #define LL_RCC_I3C1_CLKSOURCE_IC10 LL_CLKSOURCE(CCIPR4_OFFSET, RCC_CCIPR4_I3C1SEL, RCC_CCIPR4_I3C1SEL_Pos,\
755 RCC_CCIPR4_I3C1SEL_1)
756 #define LL_RCC_I3C1_CLKSOURCE_IC15 LL_CLKSOURCE(CCIPR4_OFFSET, RCC_CCIPR4_I3C1SEL, RCC_CCIPR4_I3C1SEL_Pos,\
757 RCC_CCIPR4_I3C1SEL_1 | RCC_CCIPR4_I3C1SEL_0)
758 #define LL_RCC_I3C1_CLKSOURCE_MSI LL_CLKSOURCE(CCIPR4_OFFSET, RCC_CCIPR4_I3C1SEL, RCC_CCIPR4_I3C1SEL_Pos,\
759 RCC_CCIPR4_I3C1SEL_2)
760 #define LL_RCC_I3C1_CLKSOURCE_HSI LL_CLKSOURCE(CCIPR4_OFFSET, RCC_CCIPR4_I3C1SEL, RCC_CCIPR4_I3C1SEL_Pos,\
761 RCC_CCIPR4_I3C1SEL_2| RCC_CCIPR4_I3C1SEL_0)
762
763 #define LL_RCC_I3C2_CLKSOURCE_PCLK1 LL_CLKSOURCE(CCIPR4_OFFSET, RCC_CCIPR4_I3C2SEL, RCC_CCIPR4_I3C2SEL_Pos, 0U)
764 #define LL_RCC_I3C2_CLKSOURCE_CLKP LL_CLKSOURCE(CCIPR4_OFFSET, RCC_CCIPR4_I3C2SEL, RCC_CCIPR4_I3C2SEL_Pos,\
765 RCC_CCIPR4_I3C2SEL_0)
766 #define LL_RCC_I3C2_CLKSOURCE_IC10 LL_CLKSOURCE(CCIPR4_OFFSET, RCC_CCIPR4_I3C2SEL, RCC_CCIPR4_I3C2SEL_Pos,\
767 RCC_CCIPR4_I3C2SEL_1)
768 #define LL_RCC_I3C2_CLKSOURCE_IC15 LL_CLKSOURCE(CCIPR4_OFFSET, RCC_CCIPR4_I3C2SEL, RCC_CCIPR4_I3C2SEL_Pos,\
769 RCC_CCIPR4_I3C2SEL_1 | RCC_CCIPR4_I3C2SEL_0)
770 #define LL_RCC_I3C2_CLKSOURCE_MSI LL_CLKSOURCE(CCIPR4_OFFSET, RCC_CCIPR4_I3C2SEL, RCC_CCIPR4_I3C2SEL_Pos,\
771 RCC_CCIPR4_I3C2SEL_2)
772 #define LL_RCC_I3C2_CLKSOURCE_HSI LL_CLKSOURCE(CCIPR4_OFFSET, RCC_CCIPR4_I3C2SEL, RCC_CCIPR4_I3C2SEL_Pos,\
773 RCC_CCIPR4_I3C2SEL_2 | RCC_CCIPR4_I3C2SEL_0)
774 /**
775 * @}
776 */
777
778 /** @defgroup RCC_LL_EC_LPTIM_CLKSOURCE Peripheral LPTIM clock source selection
779 * @{
780 */
781 #define LL_RCC_LPTIM1_CLKSOURCE_PCLK1 LL_CLKSOURCE(CCIPR12_OFFSET, RCC_CCIPR12_LPTIM1SEL, RCC_CCIPR12_LPTIM1SEL_Pos, 0U)
782 #define LL_RCC_LPTIM1_CLKSOURCE_CLKP LL_CLKSOURCE(CCIPR12_OFFSET, RCC_CCIPR12_LPTIM1SEL, RCC_CCIPR12_LPTIM1SEL_Pos, RCC_CCIPR12_LPTIM1SEL_0)
783 #define LL_RCC_LPTIM1_CLKSOURCE_IC15 LL_CLKSOURCE(CCIPR12_OFFSET, RCC_CCIPR12_LPTIM1SEL, RCC_CCIPR12_LPTIM1SEL_Pos, RCC_CCIPR12_LPTIM1SEL_1)
784 #define LL_RCC_LPTIM1_CLKSOURCE_LSE LL_CLKSOURCE(CCIPR12_OFFSET, RCC_CCIPR12_LPTIM1SEL, RCC_CCIPR12_LPTIM1SEL_Pos, RCC_CCIPR12_LPTIM1SEL_1 |\
785 RCC_CCIPR12_LPTIM1SEL_0)
786 #define LL_RCC_LPTIM1_CLKSOURCE_LSI LL_CLKSOURCE(CCIPR12_OFFSET, RCC_CCIPR12_LPTIM1SEL, RCC_CCIPR12_LPTIM1SEL_Pos, RCC_CCIPR12_LPTIM1SEL_2)
787 #define LL_RCC_LPTIM1_CLKSOURCE_TIMG LL_CLKSOURCE(CCIPR12_OFFSET, RCC_CCIPR12_LPTIM1SEL, RCC_CCIPR12_LPTIM1SEL_Pos, RCC_CCIPR12_LPTIM1SEL_2 |\
788 RCC_CCIPR12_LPTIM1SEL_0)
789
790 #define LL_RCC_LPTIM2_CLKSOURCE_PCLK4 LL_CLKSOURCE(CCIPR12_OFFSET, RCC_CCIPR12_LPTIM2SEL, RCC_CCIPR12_LPTIM2SEL_Pos, 0U)
791 #define LL_RCC_LPTIM2_CLKSOURCE_CLKP LL_CLKSOURCE(CCIPR12_OFFSET, RCC_CCIPR12_LPTIM2SEL, RCC_CCIPR12_LPTIM2SEL_Pos, RCC_CCIPR12_LPTIM2SEL_0)
792 #define LL_RCC_LPTIM2_CLKSOURCE_IC15 LL_CLKSOURCE(CCIPR12_OFFSET, RCC_CCIPR12_LPTIM2SEL, RCC_CCIPR12_LPTIM2SEL_Pos, RCC_CCIPR12_LPTIM2SEL_1)
793 #define LL_RCC_LPTIM2_CLKSOURCE_LSE LL_CLKSOURCE(CCIPR12_OFFSET, RCC_CCIPR12_LPTIM2SEL, RCC_CCIPR12_LPTIM2SEL_Pos, RCC_CCIPR12_LPTIM2SEL_1 |\
794 RCC_CCIPR12_LPTIM2SEL_0)
795 #define LL_RCC_LPTIM2_CLKSOURCE_LSI LL_CLKSOURCE(CCIPR12_OFFSET, RCC_CCIPR12_LPTIM2SEL, RCC_CCIPR12_LPTIM2SEL_Pos, RCC_CCIPR12_LPTIM2SEL_2)
796 #define LL_RCC_LPTIM2_CLKSOURCE_TIMG LL_CLKSOURCE(CCIPR12_OFFSET, RCC_CCIPR12_LPTIM2SEL, RCC_CCIPR12_LPTIM2SEL_Pos, RCC_CCIPR12_LPTIM2SEL_2 |\
797 RCC_CCIPR12_LPTIM2SEL_0)
798
799 #define LL_RCC_LPTIM3_CLKSOURCE_PCLK4 LL_CLKSOURCE(CCIPR12_OFFSET, RCC_CCIPR12_LPTIM3SEL, RCC_CCIPR12_LPTIM3SEL_Pos, 0U)
800 #define LL_RCC_LPTIM3_CLKSOURCE_CLKP LL_CLKSOURCE(CCIPR12_OFFSET, RCC_CCIPR12_LPTIM3SEL, RCC_CCIPR12_LPTIM3SEL_Pos, RCC_CCIPR12_LPTIM3SEL_0)
801 #define LL_RCC_LPTIM3_CLKSOURCE_IC15 LL_CLKSOURCE(CCIPR12_OFFSET, RCC_CCIPR12_LPTIM3SEL, RCC_CCIPR12_LPTIM3SEL_Pos, RCC_CCIPR12_LPTIM3SEL_1)
802 #define LL_RCC_LPTIM3_CLKSOURCE_LSE LL_CLKSOURCE(CCIPR12_OFFSET, RCC_CCIPR12_LPTIM3SEL, RCC_CCIPR12_LPTIM3SEL_Pos, RCC_CCIPR12_LPTIM3SEL_1 |\
803 RCC_CCIPR12_LPTIM3SEL_0)
804 #define LL_RCC_LPTIM3_CLKSOURCE_LSI LL_CLKSOURCE(CCIPR12_OFFSET, RCC_CCIPR12_LPTIM3SEL, RCC_CCIPR12_LPTIM3SEL_Pos, RCC_CCIPR12_LPTIM3SEL_2)
805 #define LL_RCC_LPTIM3_CLKSOURCE_TIMG LL_CLKSOURCE(CCIPR12_OFFSET, RCC_CCIPR12_LPTIM3SEL, RCC_CCIPR12_LPTIM3SEL_Pos, RCC_CCIPR12_LPTIM3SEL_2 |\
806 RCC_CCIPR12_LPTIM3SEL_0)
807
808 #define LL_RCC_LPTIM4_CLKSOURCE_PCLK4 LL_CLKSOURCE(CCIPR12_OFFSET, RCC_CCIPR12_LPTIM4SEL, RCC_CCIPR12_LPTIM4SEL_Pos, 0U)
809 #define LL_RCC_LPTIM4_CLKSOURCE_CLKP LL_CLKSOURCE(CCIPR12_OFFSET, RCC_CCIPR12_LPTIM4SEL, RCC_CCIPR12_LPTIM4SEL_Pos, RCC_CCIPR12_LPTIM4SEL_0)
810 #define LL_RCC_LPTIM4_CLKSOURCE_IC15 LL_CLKSOURCE(CCIPR12_OFFSET, RCC_CCIPR12_LPTIM4SEL, RCC_CCIPR12_LPTIM4SEL_Pos, RCC_CCIPR12_LPTIM4SEL_1)
811 #define LL_RCC_LPTIM4_CLKSOURCE_LSE LL_CLKSOURCE(CCIPR12_OFFSET, RCC_CCIPR12_LPTIM4SEL, RCC_CCIPR12_LPTIM4SEL_Pos, RCC_CCIPR12_LPTIM4SEL_1 |\
812 RCC_CCIPR12_LPTIM4SEL_0)
813 #define LL_RCC_LPTIM4_CLKSOURCE_LSI LL_CLKSOURCE(CCIPR12_OFFSET, RCC_CCIPR12_LPTIM4SEL, RCC_CCIPR12_LPTIM4SEL_Pos, RCC_CCIPR12_LPTIM4SEL_2)
814 #define LL_RCC_LPTIM4_CLKSOURCE_TIMG LL_CLKSOURCE(CCIPR12_OFFSET, RCC_CCIPR12_LPTIM4SEL, RCC_CCIPR12_LPTIM4SEL_Pos, RCC_CCIPR12_LPTIM4SEL_2 |\
815 RCC_CCIPR12_LPTIM4SEL_0)
816
817 #define LL_RCC_LPTIM5_CLKSOURCE_PCLK4 LL_CLKSOURCE(CCIPR12_OFFSET, RCC_CCIPR12_LPTIM5SEL, RCC_CCIPR12_LPTIM5SEL_Pos, 0U)
818 #define LL_RCC_LPTIM5_CLKSOURCE_CLKP LL_CLKSOURCE(CCIPR12_OFFSET, RCC_CCIPR12_LPTIM5SEL, RCC_CCIPR12_LPTIM5SEL_Pos, RCC_CCIPR12_LPTIM5SEL_0)
819 #define LL_RCC_LPTIM5_CLKSOURCE_IC15 LL_CLKSOURCE(CCIPR12_OFFSET, RCC_CCIPR12_LPTIM5SEL, RCC_CCIPR12_LPTIM5SEL_Pos, RCC_CCIPR12_LPTIM5SEL_1)
820 #define LL_RCC_LPTIM5_CLKSOURCE_LSE LL_CLKSOURCE(CCIPR12_OFFSET, RCC_CCIPR12_LPTIM5SEL, RCC_CCIPR12_LPTIM5SEL_Pos, RCC_CCIPR12_LPTIM5SEL_1 |\
821 RCC_CCIPR12_LPTIM5SEL_0)
822 #define LL_RCC_LPTIM5_CLKSOURCE_LSI LL_CLKSOURCE(CCIPR12_OFFSET, RCC_CCIPR12_LPTIM5SEL, RCC_CCIPR12_LPTIM5SEL_Pos, RCC_CCIPR12_LPTIM5SEL_2)
823 #define LL_RCC_LPTIM5_CLKSOURCE_TIMG LL_CLKSOURCE(CCIPR12_OFFSET, RCC_CCIPR12_LPTIM5SEL, RCC_CCIPR12_LPTIM5SEL_Pos, RCC_CCIPR12_LPTIM5SEL_2 |\
824 RCC_CCIPR12_LPTIM5SEL_0)
825 /**
826 * @}
827 */
828
829 /** @defgroup RCC_LL_EC_LPUART_CLKSOURCE Peripheral LPUART clock source selection
830 * @{
831 */
832 #define LL_RCC_LPUART1_CLKSOURCE_PCLK4 0U
833 #define LL_RCC_LPUART1_CLKSOURCE_CLKP RCC_CCIPR14_LPUART1SEL_0
834 #define LL_RCC_LPUART1_CLKSOURCE_IC9 RCC_CCIPR14_LPUART1SEL_1
835 #define LL_RCC_LPUART1_CLKSOURCE_IC14 (RCC_CCIPR14_LPUART1SEL_1 | RCC_CCIPR14_LPUART1SEL_0)
836 #define LL_RCC_LPUART1_CLKSOURCE_LSE RCC_CCIPR14_LPUART1SEL_2
837 #define LL_RCC_LPUART1_CLKSOURCE_MSI (RCC_CCIPR14_LPUART1SEL_2 | RCC_CCIPR14_LPUART1SEL_0)
838 #define LL_RCC_LPUART1_CLKSOURCE_HSI (RCC_CCIPR14_LPUART1SEL_2 | RCC_CCIPR14_LPUART1SEL_1)
839 /**
840 * @}
841 */
842
843 /** @defgroup RCC_LL_EC_LTDC_CLKSOURCE Peripheral LTDC clock source selection
844 * @{
845 */
846 #define LL_RCC_LTDC_CLKSOURCE_PCLK5 0U
847 #define LL_RCC_LTDC_CLKSOURCE_CLKP RCC_CCIPR4_LTDCSEL_0
848 #define LL_RCC_LTDC_CLKSOURCE_IC16 RCC_CCIPR4_LTDCSEL_1
849 #define LL_RCC_LTDC_CLKSOURCE_HSI (RCC_CCIPR4_LTDCSEL_1 | RCC_CCIPR4_LTDCSEL_0)
850 /**
851 * @}
852 */
853
854 /** @defgroup RCC_LL_EC_MDF_CLKSOURCE Peripheral MDF clock source selection
855 * @{
856 */
857 #define LL_RCC_MDF1_CLKSOURCE_HCLK 0U
858 #define LL_RCC_MDF1_CLKSOURCE_CLKP RCC_CCIPR5_MDF1SEL_0
859 #define LL_RCC_MDF1_CLKSOURCE_IC7 RCC_CCIPR5_MDF1SEL_1
860 #define LL_RCC_MDF1_CLKSOURCE_IC8 (RCC_CCIPR5_MDF1SEL_1 | RCC_CCIPR5_MDF1SEL_0)
861 #define LL_RCC_MDF1_CLKSOURCE_MSI RCC_CCIPR5_MDF1SEL_2
862 #define LL_RCC_MDF1_CLKSOURCE_HSI (RCC_CCIPR5_MDF1SEL_2 | RCC_CCIPR5_MDF1SEL_0)
863 #define LL_RCC_MDF1_CLKSOURCE_I2S_CKIN (RCC_CCIPR5_MDF1SEL_2 | RCC_CCIPR5_MDF1SEL_1)
864 #define LL_RCC_MDF1_CLKSOURCE_TIMG (RCC_CCIPR5_MDF1SEL_2 | RCC_CCIPR5_MDF1SEL_1 | RCC_CCIPR5_MDF1SEL_0)
865 /**
866 * @}
867 */
868
869 /** @defgroup RCC_LL_EC_OTGPHY_CLKSOURCE Peripheral OTGPHY clock source selection
870 * @{
871 */
872 #define LL_RCC_OTGPHY1_CLKSOURCE_HSE_DIV_2 LL_CLKSOURCE(CCIPR6_OFFSET, RCC_CCIPR6_OTGPHY1SEL, RCC_CCIPR6_OTGPHY1SEL_Pos, 0U)
873 #define LL_RCC_OTGPHY1_CLKSOURCE_CLKP LL_CLKSOURCE(CCIPR6_OFFSET, RCC_CCIPR6_OTGPHY1SEL, RCC_CCIPR6_OTGPHY1SEL_Pos, RCC_CCIPR6_OTGPHY1SEL_0)
874 #define LL_RCC_OTGPHY1_CLKSOURCE_IC15 LL_CLKSOURCE(CCIPR6_OFFSET, RCC_CCIPR6_OTGPHY1SEL, RCC_CCIPR6_OTGPHY1SEL_Pos, RCC_CCIPR6_OTGPHY1SEL_1)
875 #define LL_RCC_OTGPHY1_CLKSOURCE_HSE_DIV_2_OSC LL_CLKSOURCE(CCIPR6_OFFSET, RCC_CCIPR6_OTGPHY1SEL, RCC_CCIPR6_OTGPHY1SEL_Pos, RCC_CCIPR6_OTGPHY1SEL_1 |\
876 RCC_CCIPR6_OTGPHY1SEL_0)
877
878 #define LL_RCC_OTGPHY2_CLKSOURCE_HSE_DIV_2 LL_CLKSOURCE(CCIPR6_OFFSET, RCC_CCIPR6_OTGPHY2SEL, RCC_CCIPR6_OTGPHY2SEL_Pos, 0U)
879 #define LL_RCC_OTGPHY2_CLKSOURCE_CLKP LL_CLKSOURCE(CCIPR6_OFFSET, RCC_CCIPR6_OTGPHY2SEL, RCC_CCIPR6_OTGPHY2SEL_Pos, RCC_CCIPR6_OTGPHY2SEL_0)
880 #define LL_RCC_OTGPHY2_CLKSOURCE_IC15 LL_CLKSOURCE(CCIPR6_OFFSET, RCC_CCIPR6_OTGPHY2SEL, RCC_CCIPR6_OTGPHY2SEL_Pos, RCC_CCIPR6_OTGPHY2SEL_1)
881 #define LL_RCC_OTGPHY2_CLKSOURCE_HSE_DIV_2_OSC LL_CLKSOURCE(CCIPR6_OFFSET, RCC_CCIPR6_OTGPHY2SEL, RCC_CCIPR6_OTGPHY2SEL_Pos, RCC_CCIPR6_OTGPHY2SEL_1 |\
882 RCC_CCIPR6_OTGPHY2SEL_0)
883 /**
884 * @}
885 */
886
887 /** @defgroup RCC_LL_EC_OTGPHYCKREF_CLKSOURCE Peripheral OTGPHYCKREF clock source selection
888 * @{
889 */
890 #define LL_RCC_OTGPHY1CKREF_CLKSOURCE_OTGPHY1 LL_CLKSOURCE(CCIPR6_OFFSET, RCC_CCIPR6_OTGPHY1CKREFSEL, RCC_CCIPR6_OTGPHY1CKREFSEL_Pos, 0U)
891 #define LL_RCC_OTGPHY1CKREF_CLKSOURCE_HSE_DIV_2_OSC LL_CLKSOURCE(CCIPR6_OFFSET, RCC_CCIPR6_OTGPHY1CKREFSEL, RCC_CCIPR6_OTGPHY1CKREFSEL_Pos, RCC_CCIPR6_OTGPHY1CKREFSEL)
892
893 #define LL_RCC_OTGPHY2CKREF_CLKSOURCE_OTGPHY2 LL_CLKSOURCE(CCIPR6_OFFSET, RCC_CCIPR6_OTGPHY2CKREFSEL, RCC_CCIPR6_OTGPHY2CKREFSEL_Pos, 0U)
894 #define LL_RCC_OTGPHY2CKREF_CLKSOURCE_HSE_DIV_2_OSC LL_CLKSOURCE(CCIPR6_OFFSET, RCC_CCIPR6_OTGPHY2CKREFSEL, RCC_CCIPR6_OTGPHY2CKREFSEL_Pos, RCC_CCIPR6_OTGPHY2CKREFSEL)
895 /**
896 * @}
897 */
898
899 /** @defgroup RCC_LL_EC_PSSI_CLKSOURCE Peripheral PSSI clock source selection
900 * @{
901 */
902 #define LL_RCC_PSSI_CLKSOURCE_HCLK 0U
903 #define LL_RCC_PSSI_CLKSOURCE_CLKP RCC_CCIPR7_PSSISEL_0
904 #define LL_RCC_PSSI_CLKSOURCE_IC20 RCC_CCIPR7_PSSISEL_1
905 #define LL_RCC_PSSI_CLKSOURCE_HSI (RCC_CCIPR7_PSSISEL_1 | RCC_CCIPR7_PSSISEL_0)
906 /**
907 * @}
908 */
909
910 /** @defgroup RCC_LL_EC_RTC_CLKSOURCE RTC clock source selection
911 * @{
912 */
913 #define LL_RCC_RTC_CLKSOURCE_NONE 0U
914 #define LL_RCC_RTC_CLKSOURCE_LSE RCC_CCIPR7_RTCSEL_0
915 #define LL_RCC_RTC_CLKSOURCE_LSI RCC_CCIPR7_RTCSEL_1
916 #define LL_RCC_RTC_CLKSOURCE_HSE (RCC_CCIPR7_RTCSEL_1 | RCC_CCIPR7_RTCSEL_0)
917 /**
918 * @}
919 */
920
921 /** @defgroup RCC_LL_EC_SAI_CLKSOURCE Peripheral SAI clock source selection
922 * @{
923 */
924 #define LL_RCC_SAI1_CLKSOURCE_PCLK2 LL_CLKSOURCE(CCIPR7_OFFSET, RCC_CCIPR7_SAI1SEL, RCC_CCIPR7_SAI1SEL_Pos, 0U)
925 #define LL_RCC_SAI1_CLKSOURCE_CLKP LL_CLKSOURCE(CCIPR7_OFFSET, RCC_CCIPR7_SAI1SEL, RCC_CCIPR7_SAI1SEL_Pos, RCC_CCIPR7_SAI1SEL_0)
926 #define LL_RCC_SAI1_CLKSOURCE_IC7 LL_CLKSOURCE(CCIPR7_OFFSET, RCC_CCIPR7_SAI1SEL, RCC_CCIPR7_SAI1SEL_Pos, RCC_CCIPR7_SAI1SEL_1)
927 #define LL_RCC_SAI1_CLKSOURCE_IC8 LL_CLKSOURCE(CCIPR7_OFFSET, RCC_CCIPR7_SAI1SEL, RCC_CCIPR7_SAI1SEL_Pos, RCC_CCIPR7_SAI1SEL_1 |\
928 RCC_CCIPR7_SAI1SEL_0)
929 #define LL_RCC_SAI1_CLKSOURCE_MSI LL_CLKSOURCE(CCIPR7_OFFSET, RCC_CCIPR7_SAI1SEL, RCC_CCIPR7_SAI1SEL_Pos, RCC_CCIPR7_SAI1SEL_2)
930 #define LL_RCC_SAI1_CLKSOURCE_HSI LL_CLKSOURCE(CCIPR7_OFFSET, RCC_CCIPR7_SAI1SEL, RCC_CCIPR7_SAI1SEL_Pos, RCC_CCIPR7_SAI1SEL_2 |\
931 RCC_CCIPR7_SAI1SEL_0)
932 #define LL_RCC_SAI1_CLKSOURCE_I2S_CKIN LL_CLKSOURCE(CCIPR7_OFFSET, RCC_CCIPR7_SAI1SEL, RCC_CCIPR7_SAI1SEL_Pos, RCC_CCIPR7_SAI1SEL_2 |\
933 RCC_CCIPR7_SAI1SEL_1)
934 #define LL_RCC_SAI1_CLKSOURCE_SPDIFRX1 LL_CLKSOURCE(CCIPR7_OFFSET, RCC_CCIPR7_SAI1SEL, RCC_CCIPR7_SAI1SEL_Pos, RCC_CCIPR7_SAI1SEL_2 |\
935 RCC_CCIPR7_SAI1SEL_1 | RCC_CCIPR7_SAI1SEL_0)
936
937 #define LL_RCC_SAI2_CLKSOURCE_PCLK2 LL_CLKSOURCE(CCIPR7_OFFSET, RCC_CCIPR7_SAI2SEL, RCC_CCIPR7_SAI2SEL_Pos, 0U)
938 #define LL_RCC_SAI2_CLKSOURCE_CLKP LL_CLKSOURCE(CCIPR7_OFFSET, RCC_CCIPR7_SAI2SEL, RCC_CCIPR7_SAI2SEL_Pos, RCC_CCIPR7_SAI2SEL_0)
939 #define LL_RCC_SAI2_CLKSOURCE_IC7 LL_CLKSOURCE(CCIPR7_OFFSET, RCC_CCIPR7_SAI2SEL, RCC_CCIPR7_SAI2SEL_Pos, RCC_CCIPR7_SAI2SEL_1)
940 #define LL_RCC_SAI2_CLKSOURCE_IC8 LL_CLKSOURCE(CCIPR7_OFFSET, RCC_CCIPR7_SAI2SEL, RCC_CCIPR7_SAI2SEL_Pos, RCC_CCIPR7_SAI2SEL_1 |\
941 RCC_CCIPR7_SAI2SEL_0)
942 #define LL_RCC_SAI2_CLKSOURCE_MSI LL_CLKSOURCE(CCIPR7_OFFSET, RCC_CCIPR7_SAI2SEL, RCC_CCIPR7_SAI2SEL_Pos, RCC_CCIPR7_SAI2SEL_2)
943 #define LL_RCC_SAI2_CLKSOURCE_HSI LL_CLKSOURCE(CCIPR7_OFFSET, RCC_CCIPR7_SAI2SEL, RCC_CCIPR7_SAI2SEL_Pos, RCC_CCIPR7_SAI2SEL_2 |\
944 RCC_CCIPR7_SAI2SEL_0)
945 #define LL_RCC_SAI2_CLKSOURCE_I2S_CKIN LL_CLKSOURCE(CCIPR7_OFFSET, RCC_CCIPR7_SAI2SEL, RCC_CCIPR7_SAI2SEL_Pos, RCC_CCIPR7_SAI2SEL_2 |\
946 RCC_CCIPR7_SAI2SEL_1)
947 #define LL_RCC_SAI2_CLKSOURCE_SPDIFRX1 LL_CLKSOURCE(CCIPR7_OFFSET, RCC_CCIPR7_SAI2SEL, RCC_CCIPR7_SAI2SEL_Pos, RCC_CCIPR7_SAI2SEL_2 |\
948 RCC_CCIPR7_SAI2SEL_1 | RCC_CCIPR7_SAI2SEL_0)
949 /**
950 * @}
951 */
952
953 /** @defgroup RCC_LL_EC_SDMMC_CLKSOURCE Peripheral SDMMC clock source selection
954 * @{
955 */
956 #define LL_RCC_SDMMC1_CLKSOURCE_HCLK LL_CLKSOURCE(CCIPR8_OFFSET, RCC_CCIPR8_SDMMC1SEL, RCC_CCIPR8_SDMMC1SEL_Pos, 0U)
957 #define LL_RCC_SDMMC1_CLKSOURCE_CLKP LL_CLKSOURCE(CCIPR8_OFFSET, RCC_CCIPR8_SDMMC1SEL, RCC_CCIPR8_SDMMC1SEL_Pos, RCC_CCIPR8_SDMMC1SEL_0)
958 #define LL_RCC_SDMMC1_CLKSOURCE_IC4 LL_CLKSOURCE(CCIPR8_OFFSET, RCC_CCIPR8_SDMMC1SEL, RCC_CCIPR8_SDMMC1SEL_Pos, RCC_CCIPR8_SDMMC1SEL_1)
959 #define LL_RCC_SDMMC1_CLKSOURCE_IC5 LL_CLKSOURCE(CCIPR8_OFFSET, RCC_CCIPR8_SDMMC1SEL, RCC_CCIPR8_SDMMC1SEL_Pos, RCC_CCIPR8_SDMMC1SEL_1 |\
960 RCC_CCIPR8_SDMMC1SEL_0)
961
962 #define LL_RCC_SDMMC2_CLKSOURCE_HCLK LL_CLKSOURCE(CCIPR8_OFFSET, RCC_CCIPR8_SDMMC2SEL, RCC_CCIPR8_SDMMC2SEL_Pos, 0U)
963 #define LL_RCC_SDMMC2_CLKSOURCE_CLKP LL_CLKSOURCE(CCIPR8_OFFSET, RCC_CCIPR8_SDMMC2SEL, RCC_CCIPR8_SDMMC2SEL_Pos, RCC_CCIPR8_SDMMC2SEL_0)
964 #define LL_RCC_SDMMC2_CLKSOURCE_IC4 LL_CLKSOURCE(CCIPR8_OFFSET, RCC_CCIPR8_SDMMC2SEL, RCC_CCIPR8_SDMMC2SEL_Pos, RCC_CCIPR8_SDMMC2SEL_1)
965 #define LL_RCC_SDMMC2_CLKSOURCE_IC5 LL_CLKSOURCE(CCIPR8_OFFSET, RCC_CCIPR8_SDMMC2SEL, RCC_CCIPR8_SDMMC2SEL_Pos, RCC_CCIPR8_SDMMC2SEL_1 |\
966 RCC_CCIPR8_SDMMC2SEL_0)
967 /**
968 * @}
969 */
970
971 /** @defgroup RCC_LL_EC_SPDIFRX_CLKSOURCE Peripheral SPDIFRX clock source selection
972 * @{
973 */
974 #define LL_RCC_SPDIFRX1_CLKSOURCE_PCLK1 0U
975 #define LL_RCC_SPDIFRX1_CLKSOURCE_CLKP RCC_CCIPR9_SPDIFRX1SEL_0
976 #define LL_RCC_SPDIFRX1_CLKSOURCE_IC7 RCC_CCIPR9_SPDIFRX1SEL_1
977 #define LL_RCC_SPDIFRX1_CLKSOURCE_IC8 (RCC_CCIPR9_SPDIFRX1SEL_1 | RCC_CCIPR9_SPDIFRX1SEL_0)
978 #define LL_RCC_SPDIFRX1_CLKSOURCE_MSI RCC_CCIPR9_SPDIFRX1SEL_2
979 #define LL_RCC_SPDIFRX1_CLKSOURCE_HSI (RCC_CCIPR9_SPDIFRX1SEL_2 | RCC_CCIPR9_SPDIFRX1SEL_0)
980 #define LL_RCC_SPDIFRX1_CLKSOURCE_I2S_CKIN (RCC_CCIPR9_SPDIFRX1SEL_2 | RCC_CCIPR9_SPDIFRX1SEL_1)
981 /**
982 * @}
983 */
984
985 /** @defgroup RCC_LL_EC_SPI_CLKSOURCE Peripheral SPI clock source selection
986 * @{
987 */
988 #define LL_RCC_SPI1_CLKSOURCE_PCLK2 LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI1SEL, RCC_CCIPR9_SPI1SEL_Pos, 0U)
989 #define LL_RCC_SPI1_CLKSOURCE_CLKP LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI1SEL, RCC_CCIPR9_SPI1SEL_Pos, RCC_CCIPR9_SPI1SEL_0)
990 #define LL_RCC_SPI1_CLKSOURCE_IC8 LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI1SEL, RCC_CCIPR9_SPI1SEL_Pos, RCC_CCIPR9_SPI1SEL_1)
991 #define LL_RCC_SPI1_CLKSOURCE_IC9 LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI1SEL, RCC_CCIPR9_SPI1SEL_Pos, RCC_CCIPR9_SPI1SEL_1 |\
992 RCC_CCIPR9_SPI1SEL_0)
993 #define LL_RCC_SPI1_CLKSOURCE_MSI LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI1SEL, RCC_CCIPR9_SPI1SEL_Pos, RCC_CCIPR9_SPI1SEL_2)
994 #define LL_RCC_SPI1_CLKSOURCE_HSI LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI1SEL, RCC_CCIPR9_SPI1SEL_Pos, RCC_CCIPR9_SPI1SEL_2 |\
995 RCC_CCIPR9_SPI1SEL_0)
996 #define LL_RCC_SPI1_CLKSOURCE_I2S_CKIN LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI1SEL, RCC_CCIPR9_SPI1SEL_Pos, RCC_CCIPR9_SPI1SEL_2 |\
997 RCC_CCIPR9_SPI1SEL_1)
998
999 #define LL_RCC_SPI2_CLKSOURCE_PCLK1 LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI2SEL, RCC_CCIPR9_SPI2SEL_Pos, 0U)
1000 #define LL_RCC_SPI2_CLKSOURCE_CLKP LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI2SEL, RCC_CCIPR9_SPI2SEL_Pos, RCC_CCIPR9_SPI2SEL_0)
1001 #define LL_RCC_SPI2_CLKSOURCE_IC8 LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI2SEL, RCC_CCIPR9_SPI2SEL_Pos, RCC_CCIPR9_SPI2SEL_1)
1002 #define LL_RCC_SPI2_CLKSOURCE_IC9 LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI2SEL, RCC_CCIPR9_SPI2SEL_Pos, RCC_CCIPR9_SPI2SEL_1 |\
1003 RCC_CCIPR9_SPI2SEL_0)
1004 #define LL_RCC_SPI2_CLKSOURCE_MSI LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI2SEL, RCC_CCIPR9_SPI2SEL_Pos, RCC_CCIPR9_SPI2SEL_2)
1005 #define LL_RCC_SPI2_CLKSOURCE_HSI LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI2SEL, RCC_CCIPR9_SPI2SEL_Pos, RCC_CCIPR9_SPI2SEL_2 |\
1006 RCC_CCIPR9_SPI2SEL_0)
1007 #define LL_RCC_SPI2_CLKSOURCE_I2S_CKIN LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI2SEL, RCC_CCIPR9_SPI2SEL_Pos, RCC_CCIPR9_SPI2SEL_2 |\
1008 RCC_CCIPR9_SPI2SEL_1)
1009
1010 #define LL_RCC_SPI3_CLKSOURCE_PCLK1 LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI3SEL, RCC_CCIPR9_SPI3SEL_Pos, 0U)
1011 #define LL_RCC_SPI3_CLKSOURCE_CLKP LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI3SEL, RCC_CCIPR9_SPI3SEL_Pos, RCC_CCIPR9_SPI3SEL_0)
1012 #define LL_RCC_SPI3_CLKSOURCE_IC8 LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI3SEL, RCC_CCIPR9_SPI3SEL_Pos, RCC_CCIPR9_SPI3SEL_1)
1013 #define LL_RCC_SPI3_CLKSOURCE_IC9 LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI3SEL, RCC_CCIPR9_SPI3SEL_Pos, RCC_CCIPR9_SPI3SEL_1 |\
1014 RCC_CCIPR9_SPI3SEL_0)
1015 #define LL_RCC_SPI3_CLKSOURCE_MSI LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI3SEL, RCC_CCIPR9_SPI3SEL_Pos, RCC_CCIPR9_SPI3SEL_2)
1016 #define LL_RCC_SPI3_CLKSOURCE_HSI LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI3SEL, RCC_CCIPR9_SPI3SEL_Pos, RCC_CCIPR9_SPI3SEL_2 |\
1017 RCC_CCIPR9_SPI3SEL_0)
1018 #define LL_RCC_SPI3_CLKSOURCE_I2S_CKIN LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI3SEL, RCC_CCIPR9_SPI3SEL_Pos, RCC_CCIPR9_SPI3SEL_2 |\
1019 RCC_CCIPR9_SPI3SEL_1)
1020
1021 #define LL_RCC_SPI4_CLKSOURCE_PCLK2 LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI4SEL, RCC_CCIPR9_SPI4SEL_Pos, 0U)
1022 #define LL_RCC_SPI4_CLKSOURCE_CLKP LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI4SEL, RCC_CCIPR9_SPI4SEL_Pos, RCC_CCIPR9_SPI4SEL_0)
1023 #define LL_RCC_SPI4_CLKSOURCE_IC9 LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI4SEL, RCC_CCIPR9_SPI4SEL_Pos, RCC_CCIPR9_SPI4SEL_1)
1024 #define LL_RCC_SPI4_CLKSOURCE_IC14 LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI4SEL, RCC_CCIPR9_SPI4SEL_Pos, RCC_CCIPR9_SPI4SEL_1 |\
1025 RCC_CCIPR9_SPI4SEL_0)
1026 #define LL_RCC_SPI4_CLKSOURCE_MSI LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI4SEL, RCC_CCIPR9_SPI4SEL_Pos, RCC_CCIPR9_SPI4SEL_2)
1027 #define LL_RCC_SPI4_CLKSOURCE_HSI LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI4SEL, RCC_CCIPR9_SPI4SEL_Pos, RCC_CCIPR9_SPI4SEL_2 |\
1028 RCC_CCIPR9_SPI4SEL_0)
1029 #define LL_RCC_SPI4_CLKSOURCE_HSE LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI4SEL, RCC_CCIPR9_SPI4SEL_Pos, RCC_CCIPR9_SPI4SEL_2 |\
1030 RCC_CCIPR9_SPI4SEL_1)
1031
1032 #define LL_RCC_SPI5_CLKSOURCE_PCLK2 LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI5SEL, RCC_CCIPR9_SPI5SEL_Pos, 0U)
1033 #define LL_RCC_SPI5_CLKSOURCE_CLKP LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI5SEL, RCC_CCIPR9_SPI5SEL_Pos, RCC_CCIPR9_SPI5SEL_0)
1034 #define LL_RCC_SPI5_CLKSOURCE_IC9 LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI5SEL, RCC_CCIPR9_SPI5SEL_Pos, RCC_CCIPR9_SPI5SEL_1)
1035 #define LL_RCC_SPI5_CLKSOURCE_IC14 LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI5SEL, RCC_CCIPR9_SPI5SEL_Pos, RCC_CCIPR9_SPI5SEL_1 |\
1036 RCC_CCIPR9_SPI5SEL_0)
1037 #define LL_RCC_SPI5_CLKSOURCE_MSI LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI5SEL, RCC_CCIPR9_SPI5SEL_Pos, RCC_CCIPR9_SPI5SEL_2)
1038 #define LL_RCC_SPI5_CLKSOURCE_HSI LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI5SEL, RCC_CCIPR9_SPI5SEL_Pos, RCC_CCIPR9_SPI5SEL_2 |\
1039 RCC_CCIPR9_SPI5SEL_0)
1040 #define LL_RCC_SPI5_CLKSOURCE_HSE LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI5SEL, RCC_CCIPR9_SPI5SEL_Pos, RCC_CCIPR9_SPI5SEL_2 |\
1041 RCC_CCIPR9_SPI5SEL_1)
1042
1043 #define LL_RCC_SPI6_CLKSOURCE_PCLK4 LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI6SEL, RCC_CCIPR9_SPI6SEL_Pos, 0U)
1044 #define LL_RCC_SPI6_CLKSOURCE_CLKP LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI6SEL, RCC_CCIPR9_SPI6SEL_Pos, RCC_CCIPR9_SPI6SEL_0)
1045 #define LL_RCC_SPI6_CLKSOURCE_IC8 LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI6SEL, RCC_CCIPR9_SPI6SEL_Pos, RCC_CCIPR9_SPI6SEL_1)
1046 #define LL_RCC_SPI6_CLKSOURCE_IC9 LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI6SEL, RCC_CCIPR9_SPI6SEL_Pos, RCC_CCIPR9_SPI6SEL_1 |\
1047 RCC_CCIPR9_SPI6SEL_0)
1048 #define LL_RCC_SPI6_CLKSOURCE_MSI LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI6SEL, RCC_CCIPR9_SPI6SEL_Pos, RCC_CCIPR9_SPI6SEL_2)
1049 #define LL_RCC_SPI6_CLKSOURCE_HSI LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI6SEL, RCC_CCIPR9_SPI6SEL_Pos, RCC_CCIPR9_SPI6SEL_2 |\
1050 RCC_CCIPR9_SPI6SEL_0)
1051 #define LL_RCC_SPI6_CLKSOURCE_I2S_CKIN LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI6SEL, RCC_CCIPR9_SPI6SEL_Pos, RCC_CCIPR9_SPI6SEL_2 |\
1052 RCC_CCIPR9_SPI6SEL_1)
1053 /**
1054 * @}
1055 */
1056
1057 /** @defgroup RCC_LL_EC_UART_CLKSOURCE Peripheral UART clock source selection
1058 * @{
1059 */
1060 #define LL_RCC_UART4_CLKSOURCE_PCLK1 LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_UART4SEL, RCC_CCIPR13_UART4SEL_Pos, 0U)
1061 #define LL_RCC_UART4_CLKSOURCE_CLKP LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_UART4SEL, RCC_CCIPR13_UART4SEL_Pos, RCC_CCIPR13_UART4SEL_0)
1062 #define LL_RCC_UART4_CLKSOURCE_IC9 LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_UART4SEL, RCC_CCIPR13_UART4SEL_Pos, RCC_CCIPR13_UART4SEL_1)
1063 #define LL_RCC_UART4_CLKSOURCE_IC14 LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_UART4SEL, RCC_CCIPR13_UART4SEL_Pos, RCC_CCIPR13_UART4SEL_1 |\
1064 RCC_CCIPR13_UART4SEL_0)
1065 #define LL_RCC_UART4_CLKSOURCE_LSE LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_UART4SEL, RCC_CCIPR13_UART4SEL_Pos, RCC_CCIPR13_UART4SEL_2)
1066 #define LL_RCC_UART4_CLKSOURCE_MSI LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_UART4SEL, RCC_CCIPR13_UART4SEL_Pos, RCC_CCIPR13_UART4SEL_2 |\
1067 RCC_CCIPR13_UART4SEL_0)
1068 #define LL_RCC_UART4_CLKSOURCE_HSI LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_UART4SEL, RCC_CCIPR13_UART4SEL_Pos, RCC_CCIPR13_UART4SEL_2 |\
1069 RCC_CCIPR13_UART4SEL_1)
1070
1071 #define LL_RCC_UART5_CLKSOURCE_PCLK1 LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_UART5SEL, RCC_CCIPR13_UART5SEL_Pos, 0U)
1072 #define LL_RCC_UART5_CLKSOURCE_CLKP LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_UART5SEL, RCC_CCIPR13_UART5SEL_Pos, RCC_CCIPR13_UART5SEL_0)
1073 #define LL_RCC_UART5_CLKSOURCE_IC9 LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_UART5SEL, RCC_CCIPR13_UART5SEL_Pos, RCC_CCIPR13_UART5SEL_1)
1074 #define LL_RCC_UART5_CLKSOURCE_IC14 LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_UART5SEL, RCC_CCIPR13_UART5SEL_Pos, RCC_CCIPR13_UART5SEL_1 |\
1075 RCC_CCIPR13_UART5SEL_0)
1076 #define LL_RCC_UART5_CLKSOURCE_LSE LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_UART5SEL, RCC_CCIPR13_UART5SEL_Pos, RCC_CCIPR13_UART5SEL_2)
1077 #define LL_RCC_UART5_CLKSOURCE_MSI LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_UART5SEL, RCC_CCIPR13_UART5SEL_Pos, RCC_CCIPR13_UART5SEL_2 |\
1078 RCC_CCIPR13_UART5SEL_0)
1079 #define LL_RCC_UART5_CLKSOURCE_HSI LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_UART5SEL, RCC_CCIPR13_UART5SEL_Pos, RCC_CCIPR13_UART5SEL_2 |\
1080 RCC_CCIPR13_UART5SEL_1)
1081
1082 #define LL_RCC_UART7_CLKSOURCE_PCLK1 LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_UART7SEL, RCC_CCIPR13_UART7SEL_Pos, 0U)
1083 #define LL_RCC_UART7_CLKSOURCE_CLKP LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_UART7SEL, RCC_CCIPR13_UART7SEL_Pos, RCC_CCIPR13_UART7SEL_0)
1084 #define LL_RCC_UART7_CLKSOURCE_IC9 LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_UART7SEL, RCC_CCIPR13_UART7SEL_Pos, RCC_CCIPR13_UART7SEL_1)
1085 #define LL_RCC_UART7_CLKSOURCE_IC14 LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_UART7SEL, RCC_CCIPR13_UART7SEL_Pos, RCC_CCIPR13_UART7SEL_1 |\
1086 RCC_CCIPR13_UART7SEL_0)
1087 #define LL_RCC_UART7_CLKSOURCE_LSE LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_UART7SEL, RCC_CCIPR13_UART7SEL_Pos, RCC_CCIPR13_UART7SEL_2)
1088 #define LL_RCC_UART7_CLKSOURCE_MSI LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_UART7SEL, RCC_CCIPR13_UART7SEL_Pos, RCC_CCIPR13_UART7SEL_2 |\
1089 RCC_CCIPR13_UART7SEL_0)
1090 #define LL_RCC_UART7_CLKSOURCE_HSI LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_UART7SEL, RCC_CCIPR13_UART7SEL_Pos, RCC_CCIPR13_UART7SEL_2 |\
1091 RCC_CCIPR13_UART7SEL_1)
1092
1093 #define LL_RCC_UART8_CLKSOURCE_PCLK1 LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_UART8SEL, RCC_CCIPR13_UART8SEL_Pos, 0U)
1094 #define LL_RCC_UART8_CLKSOURCE_CLKP LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_UART8SEL, RCC_CCIPR13_UART8SEL_Pos, RCC_CCIPR13_UART8SEL_0)
1095 #define LL_RCC_UART8_CLKSOURCE_IC9 LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_UART8SEL, RCC_CCIPR13_UART8SEL_Pos, RCC_CCIPR13_UART8SEL_1)
1096 #define LL_RCC_UART8_CLKSOURCE_IC14 LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_UART8SEL, RCC_CCIPR13_UART8SEL_Pos, RCC_CCIPR13_UART8SEL_1 |\
1097 RCC_CCIPR13_UART8SEL_0)
1098 #define LL_RCC_UART8_CLKSOURCE_LSE LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_UART8SEL, RCC_CCIPR13_UART8SEL_Pos, RCC_CCIPR13_UART8SEL_2)
1099 #define LL_RCC_UART8_CLKSOURCE_MSI LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_UART8SEL, RCC_CCIPR13_UART8SEL_Pos, RCC_CCIPR13_UART8SEL_2 |\
1100 RCC_CCIPR13_UART8SEL_0)
1101 #define LL_RCC_UART8_CLKSOURCE_HSI LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_UART8SEL, RCC_CCIPR13_UART8SEL_Pos, RCC_CCIPR13_UART8SEL_2 |\
1102 RCC_CCIPR13_UART8SEL_1)
1103
1104 #define LL_RCC_UART9_CLKSOURCE_PCLK2 LL_CLKSOURCE(CCIPR14_OFFSET, RCC_CCIPR14_UART9SEL, RCC_CCIPR14_UART9SEL_Pos, 0U)
1105 #define LL_RCC_UART9_CLKSOURCE_CLKP LL_CLKSOURCE(CCIPR14_OFFSET, RCC_CCIPR14_UART9SEL, RCC_CCIPR14_UART9SEL_Pos, RCC_CCIPR14_UART9SEL_0)
1106 #define LL_RCC_UART9_CLKSOURCE_IC9 LL_CLKSOURCE(CCIPR14_OFFSET, RCC_CCIPR14_UART9SEL, RCC_CCIPR14_UART9SEL_Pos, RCC_CCIPR14_UART9SEL_1)
1107 #define LL_RCC_UART9_CLKSOURCE_IC14 LL_CLKSOURCE(CCIPR14_OFFSET, RCC_CCIPR14_UART9SEL, RCC_CCIPR14_UART9SEL_Pos, RCC_CCIPR14_UART9SEL_1 |\
1108 RCC_CCIPR14_UART9SEL_0)
1109 #define LL_RCC_UART9_CLKSOURCE_LSE LL_CLKSOURCE(CCIPR14_OFFSET, RCC_CCIPR14_UART9SEL, RCC_CCIPR14_UART9SEL_Pos, RCC_CCIPR14_UART9SEL_2)
1110 #define LL_RCC_UART9_CLKSOURCE_MSI LL_CLKSOURCE(CCIPR14_OFFSET, RCC_CCIPR14_UART9SEL, RCC_CCIPR14_UART9SEL_Pos, RCC_CCIPR14_UART9SEL_2 |\
1111 RCC_CCIPR14_UART9SEL_0)
1112 #define LL_RCC_UART9_CLKSOURCE_HSI LL_CLKSOURCE(CCIPR14_OFFSET, RCC_CCIPR14_UART9SEL, RCC_CCIPR14_UART9SEL_Pos, RCC_CCIPR14_UART9SEL_2 |\
1113 RCC_CCIPR14_UART9SEL_1)
1114 /**
1115 * @}
1116 */
1117
1118 /** @defgroup RCC_LL_EC_USART_CLKSOURCE Peripheral USART clock source selection
1119 * @{
1120 */
1121 #define LL_RCC_USART1_CLKSOURCE_PCLK2 LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_USART1SEL, RCC_CCIPR13_USART1SEL_Pos, 0U)
1122 #define LL_RCC_USART1_CLKSOURCE_CLKP LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_USART1SEL, RCC_CCIPR13_USART1SEL_Pos, RCC_CCIPR13_USART1SEL_0)
1123 #define LL_RCC_USART1_CLKSOURCE_IC9 LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_USART1SEL, RCC_CCIPR13_USART1SEL_Pos, RCC_CCIPR13_USART1SEL_1)
1124 #define LL_RCC_USART1_CLKSOURCE_IC14 LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_USART1SEL, RCC_CCIPR13_USART1SEL_Pos, RCC_CCIPR13_USART1SEL_1 |\
1125 RCC_CCIPR13_USART1SEL_0)
1126 #define LL_RCC_USART1_CLKSOURCE_LSE LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_USART1SEL, RCC_CCIPR13_USART1SEL_Pos, RCC_CCIPR13_USART1SEL_2)
1127 #define LL_RCC_USART1_CLKSOURCE_MSI LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_USART1SEL, RCC_CCIPR13_USART1SEL_Pos, RCC_CCIPR13_USART1SEL_2 |\
1128 RCC_CCIPR13_USART1SEL_0)
1129 #define LL_RCC_USART1_CLKSOURCE_HSI LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_USART1SEL, RCC_CCIPR13_USART1SEL_Pos, RCC_CCIPR13_USART1SEL_2 |\
1130 RCC_CCIPR13_USART1SEL_1)
1131
1132 #define LL_RCC_USART2_CLKSOURCE_PCLK1 LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_USART2SEL, RCC_CCIPR13_USART2SEL_Pos, 0U)
1133 #define LL_RCC_USART2_CLKSOURCE_CLKP LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_USART2SEL, RCC_CCIPR13_USART2SEL_Pos, RCC_CCIPR13_USART2SEL_0)
1134 #define LL_RCC_USART2_CLKSOURCE_IC9 LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_USART2SEL, RCC_CCIPR13_USART2SEL_Pos, RCC_CCIPR13_USART2SEL_1)
1135 #define LL_RCC_USART2_CLKSOURCE_IC14 LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_USART2SEL, RCC_CCIPR13_USART2SEL_Pos, RCC_CCIPR13_USART2SEL_1 |\
1136 RCC_CCIPR13_USART2SEL_0)
1137 #define LL_RCC_USART2_CLKSOURCE_LSE LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_USART2SEL, RCC_CCIPR13_USART2SEL_Pos, RCC_CCIPR13_USART2SEL_2)
1138 #define LL_RCC_USART2_CLKSOURCE_MSI LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_USART2SEL, RCC_CCIPR13_USART2SEL_Pos, RCC_CCIPR13_USART2SEL_2 |\
1139 RCC_CCIPR13_USART2SEL_0)
1140 #define LL_RCC_USART2_CLKSOURCE_HSI LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_USART2SEL, RCC_CCIPR13_USART2SEL_Pos, RCC_CCIPR13_USART2SEL_2 |\
1141 RCC_CCIPR13_USART2SEL_1)
1142
1143 #define LL_RCC_USART3_CLKSOURCE_PCLK1 LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_USART3SEL, RCC_CCIPR13_USART3SEL_Pos, 0U)
1144 #define LL_RCC_USART3_CLKSOURCE_CLKP LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_USART3SEL, RCC_CCIPR13_USART3SEL_Pos, RCC_CCIPR13_USART3SEL_0)
1145 #define LL_RCC_USART3_CLKSOURCE_IC9 LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_USART3SEL, RCC_CCIPR13_USART3SEL_Pos, RCC_CCIPR13_USART3SEL_1)
1146 #define LL_RCC_USART3_CLKSOURCE_IC14 LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_USART3SEL, RCC_CCIPR13_USART3SEL_Pos, RCC_CCIPR13_USART3SEL_1 |\
1147 RCC_CCIPR13_USART3SEL_0)
1148 #define LL_RCC_USART3_CLKSOURCE_LSE LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_USART3SEL, RCC_CCIPR13_USART3SEL_Pos, RCC_CCIPR13_USART3SEL_2)
1149 #define LL_RCC_USART3_CLKSOURCE_MSI LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_USART3SEL, RCC_CCIPR13_USART3SEL_Pos, RCC_CCIPR13_USART3SEL_2 |\
1150 RCC_CCIPR13_USART3SEL_0)
1151 #define LL_RCC_USART3_CLKSOURCE_HSI LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_USART3SEL, RCC_CCIPR13_USART3SEL_Pos, RCC_CCIPR13_USART3SEL_2 |\
1152 RCC_CCIPR13_USART3SEL_1)
1153
1154 #define LL_RCC_USART6_CLKSOURCE_PCLK2 LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_USART6SEL, RCC_CCIPR13_USART6SEL_Pos, 0U)
1155 #define LL_RCC_USART6_CLKSOURCE_CLKP LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_USART6SEL, RCC_CCIPR13_USART6SEL_Pos, RCC_CCIPR13_USART6SEL_0)
1156 #define LL_RCC_USART6_CLKSOURCE_IC9 LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_USART6SEL, RCC_CCIPR13_USART6SEL_Pos, RCC_CCIPR13_USART6SEL_1)
1157 #define LL_RCC_USART6_CLKSOURCE_IC14 LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_USART6SEL, RCC_CCIPR13_USART6SEL_Pos, RCC_CCIPR13_USART6SEL_1 |\
1158 RCC_CCIPR13_USART6SEL_0)
1159 #define LL_RCC_USART6_CLKSOURCE_LSE LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_USART6SEL, RCC_CCIPR13_USART6SEL_Pos, RCC_CCIPR13_USART6SEL_2)
1160 #define LL_RCC_USART6_CLKSOURCE_MSI LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_USART6SEL, RCC_CCIPR13_USART6SEL_Pos, RCC_CCIPR13_USART6SEL_2 |\
1161 RCC_CCIPR13_USART6SEL_0)
1162 #define LL_RCC_USART6_CLKSOURCE_HSI LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_USART6SEL, RCC_CCIPR13_USART6SEL_Pos, RCC_CCIPR13_USART6SEL_2 |\
1163 RCC_CCIPR13_USART6SEL_1)
1164
1165 #define LL_RCC_USART10_CLKSOURCE_PCLK2 LL_CLKSOURCE(CCIPR14_OFFSET, RCC_CCIPR14_USART10SEL, RCC_CCIPR14_USART10SEL_Pos, 0U)
1166 #define LL_RCC_USART10_CLKSOURCE_CLKP LL_CLKSOURCE(CCIPR14_OFFSET, RCC_CCIPR14_USART10SEL, RCC_CCIPR14_USART10SEL_Pos, RCC_CCIPR14_USART10SEL_0)
1167 #define LL_RCC_USART10_CLKSOURCE_IC9 LL_CLKSOURCE(CCIPR14_OFFSET, RCC_CCIPR14_USART10SEL, RCC_CCIPR14_USART10SEL_Pos, RCC_CCIPR14_USART10SEL_1)
1168 #define LL_RCC_USART10_CLKSOURCE_IC14 LL_CLKSOURCE(CCIPR14_OFFSET, RCC_CCIPR14_USART10SEL, RCC_CCIPR14_USART10SEL_Pos, RCC_CCIPR14_USART10SEL_1 |\
1169 RCC_CCIPR14_USART10SEL_0)
1170 #define LL_RCC_USART10_CLKSOURCE_LSE LL_CLKSOURCE(CCIPR14_OFFSET, RCC_CCIPR14_USART10SEL, RCC_CCIPR14_USART10SEL_Pos, RCC_CCIPR14_USART10SEL_2)
1171 #define LL_RCC_USART10_CLKSOURCE_MSI LL_CLKSOURCE(CCIPR14_OFFSET, RCC_CCIPR14_USART10SEL, RCC_CCIPR14_USART10SEL_Pos, RCC_CCIPR14_USART10SEL_2 |\
1172 RCC_CCIPR14_USART10SEL_0)
1173 #define LL_RCC_USART10_CLKSOURCE_HSI LL_CLKSOURCE(CCIPR14_OFFSET, RCC_CCIPR14_USART10SEL, RCC_CCIPR14_USART10SEL_Pos, RCC_CCIPR14_USART10SEL_2 |\
1174 RCC_CCIPR14_USART10SEL_1)
1175 /**
1176 * @}
1177 */
1178
1179 /** @defgroup RCC_LL_EC_XSPI_CLKSOURCE Peripheral XSPI clock source selection
1180 * @{
1181 */
1182 #define LL_RCC_XSPI1_CLKSOURCE_HCLK LL_CLKSOURCE(CCIPR6_OFFSET, RCC_CCIPR6_XSPI1SEL, RCC_CCIPR6_XSPI1SEL_Pos, 0U)
1183 #define LL_RCC_XSPI1_CLKSOURCE_CLKP LL_CLKSOURCE(CCIPR6_OFFSET, RCC_CCIPR6_XSPI1SEL, RCC_CCIPR6_XSPI1SEL_Pos, RCC_CCIPR6_XSPI1SEL_0)
1184 #define LL_RCC_XSPI1_CLKSOURCE_IC3 LL_CLKSOURCE(CCIPR6_OFFSET, RCC_CCIPR6_XSPI1SEL, RCC_CCIPR6_XSPI1SEL_Pos, RCC_CCIPR6_XSPI1SEL_1)
1185 #define LL_RCC_XSPI1_CLKSOURCE_IC4 LL_CLKSOURCE(CCIPR6_OFFSET, RCC_CCIPR6_XSPI1SEL, RCC_CCIPR6_XSPI1SEL_Pos, RCC_CCIPR6_XSPI1SEL_1 |\
1186 RCC_CCIPR6_XSPI1SEL_0)
1187
1188 #define LL_RCC_XSPI2_CLKSOURCE_HCLK LL_CLKSOURCE(CCIPR6_OFFSET, RCC_CCIPR6_XSPI2SEL, RCC_CCIPR6_XSPI2SEL_Pos, 0U)
1189 #define LL_RCC_XSPI2_CLKSOURCE_CLKP LL_CLKSOURCE(CCIPR6_OFFSET, RCC_CCIPR6_XSPI2SEL, RCC_CCIPR6_XSPI2SEL_Pos, RCC_CCIPR6_XSPI2SEL_0)
1190 #define LL_RCC_XSPI2_CLKSOURCE_IC3 LL_CLKSOURCE(CCIPR6_OFFSET, RCC_CCIPR6_XSPI2SEL, RCC_CCIPR6_XSPI2SEL_Pos, RCC_CCIPR6_XSPI2SEL_1)
1191 #define LL_RCC_XSPI2_CLKSOURCE_IC4 LL_CLKSOURCE(CCIPR6_OFFSET, RCC_CCIPR6_XSPI2SEL, RCC_CCIPR6_XSPI2SEL_Pos, RCC_CCIPR6_XSPI2SEL_1 |\
1192 RCC_CCIPR6_XSPI2SEL_0)
1193
1194 #define LL_RCC_XSPI3_CLKSOURCE_HCLK LL_CLKSOURCE(CCIPR6_OFFSET, RCC_CCIPR6_XSPI3SEL, RCC_CCIPR6_XSPI3SEL_Pos, 0U)
1195 #define LL_RCC_XSPI3_CLKSOURCE_CLKP LL_CLKSOURCE(CCIPR6_OFFSET, RCC_CCIPR6_XSPI3SEL, RCC_CCIPR6_XSPI3SEL_Pos, RCC_CCIPR6_XSPI3SEL_0)
1196 #define LL_RCC_XSPI3_CLKSOURCE_IC3 LL_CLKSOURCE(CCIPR6_OFFSET, RCC_CCIPR6_XSPI3SEL, RCC_CCIPR6_XSPI3SEL_Pos, RCC_CCIPR6_XSPI3SEL_1)
1197 #define LL_RCC_XSPI3_CLKSOURCE_IC4 LL_CLKSOURCE(CCIPR6_OFFSET, RCC_CCIPR6_XSPI3SEL, RCC_CCIPR6_XSPI3SEL_Pos, RCC_CCIPR6_XSPI3SEL_1 |\
1198 RCC_CCIPR6_XSPI3SEL_0)
1199 /**
1200 * @}
1201 */
1202
1203 /** @defgroup RCC_LL_EC_ADC Peripheral ADC get clock source
1204 * @{
1205 */
1206 #define LL_RCC_ADC_CLKSOURCE RCC_CCIPR1_ADC12SEL
1207 /**
1208 * @}
1209 */
1210
1211 /** @defgroup RCC_LL_EC_ADF Peripheral ADF get clock source
1212 * @{
1213 */
1214 #define LL_RCC_ADF1_CLKSOURCE RCC_CCIPR1_ADF1SEL
1215 /**
1216 * @}
1217 */
1218
1219 /** @defgroup RCC_LL_EC_CLKP Peripheral CLKP get clock source
1220 * @{
1221 */
1222 #define LL_RCC_CLKP_CLKSOURCE RCC_CCIPR7_PERSEL
1223 /**
1224 * @}
1225 */
1226
1227 /** @defgroup RCC_LL_EC_DCMIPP Peripheral DCMIPP get clock source
1228 * @{
1229 */
1230 #define LL_RCC_DCMIPP_CLKSOURCE RCC_CCIPR1_DCMIPPSEL
1231 /**
1232 * @}
1233 */
1234
1235 /** @defgroup RCC_LL_EC_ETH Peripheral ETH get clock source
1236 * @{
1237 */
1238 #define LL_RCC_ETH1_CLKSOURCE RCC_CCIPR2_ETH1CLKSEL
1239 /**
1240 * @}
1241 */
1242
1243 /** @defgroup RCC_LL_EC_ETHPHY Peripheral ETH PHY get interface
1244 * @{
1245 */
1246 #define LL_RCC_ETH1PHY_IF RCC_CCIPR2_ETH1SEL
1247 /**
1248 * @}
1249 */
1250
1251 /** @defgroup RCC_LL_EC_ETHPTP Peripheral ETHPTP get clock source
1252 * @{
1253 */
1254 #define LL_RCC_ETH1PTP_CLKSOURCE RCC_CCIPR2_ETH1PTPSEL
1255 /**
1256 * @}
1257 */
1258
1259 /** @defgroup RCC_LL_EC_ETHREFRX Peripheral ETH Reference RX get clock source
1260 * @{
1261 */
1262 #define LL_RCC_ETH1REFRX_CLKSOURCE RCC_CCIPR2_ETH1REFCLKSEL
1263 /**
1264 * @}
1265 */
1266
1267 /** @defgroup RCC_LL_EC_ETHREFTX Peripheral ETH Reference TX get clock source
1268 * @{
1269 */
1270 #define LL_RCC_ETH1REFTX_CLKSOURCE RCC_CCIPR2_ETH1GTXCLKSEL
1271 /**
1272 * @}
1273 */
1274
1275 /** @defgroup RCC_LL_EC_FDCAN Peripheral FDCAN get clock source
1276 * @{
1277 */
1278 #define LL_RCC_FDCAN_CLKSOURCE RCC_CCIPR3_FDCANSEL
1279 /**
1280 * @}
1281 */
1282
1283 /** @defgroup RCC_LL_EC_FMC Peripheral FMC get clock source
1284 * @{
1285 */
1286 #define LL_RCC_FMC_CLKSOURCE RCC_CCIPR3_FMCSEL
1287 /**
1288 * @}
1289 */
1290
1291 /** @defgroup RCC_LL_EC_I2C Peripheral I2C get clock source
1292 * @{
1293 */
1294 #define LL_RCC_I2C1_CLKSOURCE LL_CLKSOURCE(CCIPR4_OFFSET, RCC_CCIPR4_I2C1SEL, RCC_CCIPR4_I2C1SEL_Pos, 0U)
1295 #define LL_RCC_I2C2_CLKSOURCE LL_CLKSOURCE(CCIPR4_OFFSET, RCC_CCIPR4_I2C2SEL, RCC_CCIPR4_I2C2SEL_Pos, 0U)
1296 #define LL_RCC_I2C3_CLKSOURCE LL_CLKSOURCE(CCIPR4_OFFSET, RCC_CCIPR4_I2C3SEL, RCC_CCIPR4_I2C3SEL_Pos, 0U)
1297 #define LL_RCC_I2C4_CLKSOURCE LL_CLKSOURCE(CCIPR4_OFFSET, RCC_CCIPR4_I2C4SEL, RCC_CCIPR4_I2C4SEL_Pos, 0U)
1298 /**
1299 * @}
1300 */
1301
1302 /** @defgroup RCC_LL_EC_I3C Peripheral I3C get clock source
1303 * @{
1304 */
1305 #define LL_RCC_I3C1_CLKSOURCE LL_CLKSOURCE(CCIPR4_OFFSET, RCC_CCIPR4_I3C1SEL, RCC_CCIPR4_I3C1SEL_Pos, 0U)
1306 #define LL_RCC_I3C2_CLKSOURCE LL_CLKSOURCE(CCIPR4_OFFSET, RCC_CCIPR4_I3C2SEL, RCC_CCIPR4_I3C2SEL_Pos, 0U)
1307 /**
1308 * @}
1309 */
1310
1311 /** @defgroup RCC_LL_EC_LPTIM Peripheral LPTIM get clock source
1312 * @{
1313 */
1314 #define LL_RCC_LPTIM1_CLKSOURCE LL_CLKSOURCE(CCIPR12_OFFSET, RCC_CCIPR12_LPTIM1SEL, RCC_CCIPR12_LPTIM1SEL_Pos, 0U)
1315 #define LL_RCC_LPTIM2_CLKSOURCE LL_CLKSOURCE(CCIPR12_OFFSET, RCC_CCIPR12_LPTIM2SEL, RCC_CCIPR12_LPTIM2SEL_Pos, 0U)
1316 #define LL_RCC_LPTIM3_CLKSOURCE LL_CLKSOURCE(CCIPR12_OFFSET, RCC_CCIPR12_LPTIM3SEL, RCC_CCIPR12_LPTIM3SEL_Pos, 0U)
1317 #define LL_RCC_LPTIM4_CLKSOURCE LL_CLKSOURCE(CCIPR12_OFFSET, RCC_CCIPR12_LPTIM4SEL, RCC_CCIPR12_LPTIM4SEL_Pos, 0U)
1318 #define LL_RCC_LPTIM5_CLKSOURCE LL_CLKSOURCE(CCIPR12_OFFSET, RCC_CCIPR12_LPTIM5SEL, RCC_CCIPR12_LPTIM5SEL_Pos, 0U)
1319 /**
1320 * @}
1321 */
1322
1323 /** @defgroup RCC_LL_EC_LPUART Peripheral LPUART get clock source
1324 * @{
1325 */
1326 #define LL_RCC_LPUART1_CLKSOURCE RCC_CCIPR14_LPUART1SEL
1327 /**
1328 * @}
1329 */
1330
1331 /** @defgroup RCC_LL_EC_LTDC Peripheral LTDC get clock source
1332 * @{
1333 */
1334 #define LL_RCC_LTDC_CLKSOURCE RCC_CCIPR4_LTDCSEL
1335 /**
1336 * @}
1337 */
1338
1339 /** @defgroup RCC_LL_EC_MDF Peripheral MDF get clock source
1340 * @{
1341 */
1342 #define LL_RCC_MDF1_CLKSOURCE RCC_CCIPR5_MDF1SEL
1343 /**
1344 * @}
1345 */
1346
1347 /** @defgroup RCC_LL_EC_OTGPHY Peripheral OTGPHY get clock source
1348 * @{
1349 */
1350 #define LL_RCC_OTGPHY1_CLKSOURCE LL_CLKSOURCE(CCIPR6_OFFSET, RCC_CCIPR6_OTGPHY1SEL, RCC_CCIPR6_OTGPHY1SEL_Pos, 0U)
1351 #define LL_RCC_OTGPHY2_CLKSOURCE LL_CLKSOURCE(CCIPR6_OFFSET, RCC_CCIPR6_OTGPHY2SEL, RCC_CCIPR6_OTGPHY2SEL_Pos, 0U)
1352 /**
1353 * @}
1354 */
1355
1356 /** @defgroup RCC_LL_EC_OTGPHYCKREF Peripheral OTGPHYCKREF get clock source
1357 * @{
1358 */
1359 #define LL_RCC_OTGPHY1CKREF_CLKSOURCE LL_CLKSOURCE(CCIPR6_OFFSET, RCC_CCIPR6_OTGPHY1CKREFSEL, RCC_CCIPR6_OTGPHY1CKREFSEL_Pos, 0U)
1360 #define LL_RCC_OTGPHY2CKREF_CLKSOURCE LL_CLKSOURCE(CCIPR6_OFFSET, RCC_CCIPR6_OTGPHY2CKREFSEL, RCC_CCIPR6_OTGPHY2CKREFSEL_Pos, 0U)
1361 /**
1362 * @}
1363 */
1364
1365 /** @defgroup RCC_LL_EC_PSSI Peripheral PSSI get clock source
1366 * @{
1367 */
1368 #define LL_RCC_PSSI_CLKSOURCE RCC_CCIPR7_PSSISEL
1369 /**
1370 * @}
1371 */
1372
1373 /** @defgroup RCC_LL_EC_SAI Peripheral SAI get clock source
1374 * @{
1375 */
1376 #define LL_RCC_SAI1_CLKSOURCE LL_CLKSOURCE(CCIPR7_OFFSET, RCC_CCIPR7_SAI1SEL, RCC_CCIPR7_SAI1SEL_Pos, 0U)
1377 #define LL_RCC_SAI2_CLKSOURCE LL_CLKSOURCE(CCIPR7_OFFSET, RCC_CCIPR7_SAI2SEL, RCC_CCIPR7_SAI2SEL_Pos, 0U)
1378 /**
1379 * @}
1380 */
1381
1382 /** @defgroup RCC_LL_EC_SDMMC Peripheral SDMMC get clock source
1383 * @{
1384 */
1385 #define LL_RCC_SDMMC1_CLKSOURCE LL_CLKSOURCE(CCIPR8_OFFSET, RCC_CCIPR8_SDMMC1SEL, RCC_CCIPR8_SDMMC1SEL_Pos, 0U)
1386 #define LL_RCC_SDMMC2_CLKSOURCE LL_CLKSOURCE(CCIPR8_OFFSET, RCC_CCIPR8_SDMMC2SEL, RCC_CCIPR8_SDMMC2SEL_Pos, 0U)
1387 /**
1388 * @}
1389 */
1390
1391 /** @defgroup RCC_LL_EC_SPDIFRX Peripheral SPDIFRX get clock source
1392 * @{
1393 */
1394 #define LL_RCC_SPDIFRX1_CLKSOURCE RCC_CCIPR9_SPDIFRX1SEL
1395 /**
1396 * @}
1397 */
1398
1399 /** @defgroup RCC_LL_EC_SPI Peripheral SPI get clock source
1400 * @{
1401 */
1402 #define LL_RCC_SPI1_CLKSOURCE LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI1SEL, RCC_CCIPR9_SPI1SEL_Pos, 0U)
1403 #define LL_RCC_SPI2_CLKSOURCE LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI2SEL, RCC_CCIPR9_SPI2SEL_Pos, 0U)
1404 #define LL_RCC_SPI3_CLKSOURCE LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI3SEL, RCC_CCIPR9_SPI3SEL_Pos, 0U)
1405 #define LL_RCC_SPI4_CLKSOURCE LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI4SEL, RCC_CCIPR9_SPI4SEL_Pos, 0U)
1406 #define LL_RCC_SPI5_CLKSOURCE LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI5SEL, RCC_CCIPR9_SPI5SEL_Pos, 0U)
1407 #define LL_RCC_SPI6_CLKSOURCE LL_CLKSOURCE(CCIPR9_OFFSET, RCC_CCIPR9_SPI6SEL, RCC_CCIPR9_SPI6SEL_Pos, 0U)
1408 /**
1409 * @}
1410 */
1411
1412 /** @defgroup RCC_LL_EC_UART Peripheral UART get clock source
1413 * @{
1414 */
1415 #define LL_RCC_UART4_CLKSOURCE LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_UART4SEL, RCC_CCIPR13_UART4SEL_Pos, 0U)
1416 #define LL_RCC_UART5_CLKSOURCE LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_UART5SEL, RCC_CCIPR13_UART5SEL_Pos, 0U)
1417 #define LL_RCC_UART7_CLKSOURCE LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_UART7SEL, RCC_CCIPR13_UART7SEL_Pos, 0U)
1418 #define LL_RCC_UART8_CLKSOURCE LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_UART8SEL, RCC_CCIPR13_UART8SEL_Pos, 0U)
1419 #define LL_RCC_UART9_CLKSOURCE LL_CLKSOURCE(CCIPR14_OFFSET, RCC_CCIPR14_UART9SEL, RCC_CCIPR14_UART9SEL_Pos, 0U)
1420 /**
1421 * @}
1422 */
1423
1424 /** @defgroup RCC_LL_EC_USART Peripheral USART get clock source
1425 * @{
1426 */
1427 #define LL_RCC_USART1_CLKSOURCE LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_USART1SEL, RCC_CCIPR13_USART1SEL_Pos, 0U)
1428 #define LL_RCC_USART2_CLKSOURCE LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_USART2SEL, RCC_CCIPR13_USART2SEL_Pos, 0U)
1429 #define LL_RCC_USART3_CLKSOURCE LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_USART3SEL, RCC_CCIPR13_USART3SEL_Pos, 0U)
1430 #define LL_RCC_USART6_CLKSOURCE LL_CLKSOURCE(CCIPR13_OFFSET, RCC_CCIPR13_USART6SEL, RCC_CCIPR13_USART6SEL_Pos, 0U)
1431 #define LL_RCC_USART10_CLKSOURCE LL_CLKSOURCE(CCIPR14_OFFSET, RCC_CCIPR14_USART10SEL, RCC_CCIPR14_USART10SEL_Pos, 0U)
1432 /**
1433 * @}
1434 */
1435
1436 /** @defgroup RCC_LL_EC_XSPI Peripheral XSPI get clock source
1437 * @{
1438 */
1439 #define LL_RCC_XSPI1_CLKSOURCE LL_CLKSOURCE(CCIPR6_OFFSET, RCC_CCIPR6_XSPI1SEL, RCC_CCIPR6_XSPI1SEL_Pos, 0U)
1440 #define LL_RCC_XSPI2_CLKSOURCE LL_CLKSOURCE(CCIPR6_OFFSET, RCC_CCIPR6_XSPI2SEL, RCC_CCIPR6_XSPI2SEL_Pos, 0U)
1441 #define LL_RCC_XSPI3_CLKSOURCE LL_CLKSOURCE(CCIPR6_OFFSET, RCC_CCIPR6_XSPI3SEL, RCC_CCIPR6_XSPI3SEL_Pos, 0U)
1442 /**
1443 * @}
1444 */
1445
1446 /** @defgroup RCC_LL_EC_TIM_CLKPRESCALER Timers clocks prescalers selection
1447 * @{
1448 */
1449 #define LL_RCC_TIM_PRESCALER_1 0U
1450 #define LL_RCC_TIM_PRESCALER_2 1U
1451 #define LL_RCC_TIM_PRESCALER_4 2U
1452 #define LL_RCC_TIM_PRESCALER_8 3U
1453 /**
1454 * @}
1455 */
1456
1457 /** @defgroup RCC_LL_EC_PLLSOURCE All PLLs entry clock source
1458 * @{
1459 */
1460 #define LL_RCC_PLLSOURCE_HSI 0U
1461 #define LL_RCC_PLLSOURCE_MSI RCC_PLL1CFGR1_PLL1SEL_0
1462 #define LL_RCC_PLLSOURCE_HSE RCC_PLL1CFGR1_PLL1SEL_1
1463 #define LL_RCC_PLLSOURCE_I2S_CKIN (RCC_PLL1CFGR1_PLL1SEL_1 | RCC_PLL1CFGR1_PLL1SEL_0)
1464 /**
1465 * @}
1466 */
1467
1468 /** @defgroup RCC_LL_EC_ICSOURCE All ICs entry clock source
1469 * @{
1470 */
1471 #define LL_RCC_ICCLKSOURCE_PLL1 0U
1472 #define LL_RCC_ICCLKSOURCE_PLL2 RCC_IC1CFGR_IC1SEL_0
1473 #define LL_RCC_ICCLKSOURCE_PLL3 RCC_IC1CFGR_IC1SEL_1
1474 #define LL_RCC_ICCLKSOURCE_PLL4 (RCC_IC1CFGR_IC1SEL_1 | RCC_IC1CFGR_IC1SEL_0)
1475 /**
1476 * @}
1477 */
1478
1479 /**
1480 * @}
1481 */
1482
1483 /* Exported macros -----------------------------------------------------------*/
1484 /** @defgroup RCC_LL_Exported_Macros RCC Exported Macros
1485 * @{
1486 */
1487
1488 /** @defgroup RCC_LL_EM_WRITE_READ Common Write and read registers Macros
1489 * @{
1490 */
1491
1492 /**
1493 * @brief Write a value in RCC register
1494 * @param __REG__ Register to be written
1495 * @param __VALUE__ Value to be written in the register
1496 * @retval None
1497 */
1498 #define LL_RCC_WriteReg(__REG__, __VALUE__) WRITE_REG(RCC->__REG__, (__VALUE__))
1499
1500 /**
1501 * @brief Read a value in RCC register
1502 * @param __REG__ Register to be read
1503 * @retval Register value
1504 */
1505 #define LL_RCC_ReadReg(__REG__) READ_REG(RCC->__REG__)
1506 /**
1507 * @}
1508 */
1509
1510 /** @defgroup RCC_LL_EM_CALC_FREQ Calculate frequencies
1511 * @{
1512 */
1513
1514 /**
1515 * @brief Helper macro to calculate the HCLK frequency
1516 * @param __SYSCLKFREQ__ SYSCLK frequency.
1517 * @param __HPRESCALER__ This parameter can be one of the following values:
1518 * @arg @ref LL_RCC_AHB_DIV_1
1519 * @arg @ref LL_RCC_AHB_DIV_2
1520 * @arg @ref LL_RCC_AHB_DIV_4
1521 * @arg @ref LL_RCC_AHB_DIV_8
1522 * @arg @ref LL_RCC_AHB_DIV_16
1523 * @arg @ref LL_RCC_AHB_DIV_32
1524 * @arg @ref LL_RCC_AHB_DIV_64
1525 * @arg @ref LL_RCC_AHB_DIV_128
1526 * @retval HCLK clock frequency (in Hz)
1527 */
1528 #define LL_RCC_CALC_HCLK_FREQ(__SYSCLKFREQ__, __HPRESCALER__) ((__SYSCLKFREQ__) >> (((__HPRESCALER__) &\
1529 RCC_CFGR2_HPRE) >> RCC_CFGR2_HPRE_Pos))
1530
1531 /**
1532 * @brief Helper macro to calculate the PCLK1 frequency (ABP1)
1533 * @param __HCLKFREQ__ HCLK frequency
1534 * @param __APB1PRESCALER__ This parameter can be one of the following values:
1535 * @arg @ref LL_RCC_APB1_DIV_1
1536 * @arg @ref LL_RCC_APB1_DIV_2
1537 * @arg @ref LL_RCC_APB1_DIV_4
1538 * @arg @ref LL_RCC_APB1_DIV_8
1539 * @arg @ref LL_RCC_APB1_DIV_16
1540 * @arg @ref LL_RCC_APB1_DIV_32
1541 * @arg @ref LL_RCC_APB1_DIV_64
1542 * @arg @ref LL_RCC_APB1_DIV_128
1543 * @retval PCLK1 clock frequency (in Hz)
1544 */
1545 #define LL_RCC_CALC_PCLK1_FREQ(__HCLKFREQ__, __APB1PRESCALER__) ((__HCLKFREQ__) >> (((__APB1PRESCALER__) &\
1546 RCC_CFGR2_PPRE1) >> RCC_CFGR2_PPRE1_Pos))
1547
1548 /**
1549 * @brief Helper macro to calculate the PCLK2 frequency (ABP2)
1550 * @param __HCLKFREQ__ HCLK frequency
1551 * @param __APB2PRESCALER__ This parameter can be one of the following values:
1552 * @arg @ref LL_RCC_APB2_DIV_1
1553 * @arg @ref LL_RCC_APB2_DIV_2
1554 * @arg @ref LL_RCC_APB2_DIV_4
1555 * @arg @ref LL_RCC_APB2_DIV_8
1556 * @arg @ref LL_RCC_APB2_DIV_16
1557 * @arg @ref LL_RCC_APB2_DIV_32
1558 * @arg @ref LL_RCC_APB2_DIV_64
1559 * @arg @ref LL_RCC_APB2_DIV_128
1560 * @retval PCLK2 clock frequency (in Hz)
1561 */
1562 #define LL_RCC_CALC_PCLK2_FREQ(__HCLKFREQ__, __APB2PRESCALER__) ((__HCLKFREQ__) >> (((__APB2PRESCALER__) &\
1563 RCC_CFGR2_PPRE2) >> RCC_CFGR2_PPRE2_Pos))
1564
1565 /**
1566 * @brief Helper macro to calculate the PCLK4 frequency (ABP4)
1567 * @param __HCLKFREQ__ HCLK frequency
1568 * @param __APB4PRESCALER__ This parameter can be one of the following values:
1569 * @arg @ref LL_RCC_APB4_DIV_1
1570 * @arg @ref LL_RCC_APB4_DIV_2
1571 * @arg @ref LL_RCC_APB4_DIV_4
1572 * @arg @ref LL_RCC_APB4_DIV_8
1573 * @arg @ref LL_RCC_APB4_DIV_16
1574 * @arg @ref LL_RCC_APB4_DIV_32
1575 * @arg @ref LL_RCC_APB4_DIV_64
1576 * @arg @ref LL_RCC_APB4_DIV_128
1577 * @retval PCLK1 clock frequency (in Hz)
1578 */
1579 #define LL_RCC_CALC_PCLK4_FREQ(__HCLKFREQ__, __APB4PRESCALER__) ((__HCLKFREQ__) >> (((__APB4PRESCALER__) &\
1580 RCC_CFGR2_PPRE4) >> RCC_CFGR2_PPRE4_Pos))
1581
1582 /**
1583 * @brief Helper macro to calculate the PCLK5 frequency (APB5)
1584 * @param __HCLKFREQ__ HCLK frequency
1585 * @param __APB5PRESCALER__ This parameter can be one of the following values:
1586 * @arg @ref LL_RCC_APB5_DIV_1
1587 * @arg @ref LL_RCC_APB5_DIV_2
1588 * @arg @ref LL_RCC_APB5_DIV_4
1589 * @arg @ref LL_RCC_APB5_DIV_8
1590 * @arg @ref LL_RCC_APB5_DIV_16
1591 * @arg @ref LL_RCC_APB5_DIV_32
1592 * @arg @ref LL_RCC_APB5_DIV_64
1593 * @arg @ref LL_RCC_APB5_DIV_128
1594 * @retval PCLK1 clock frequency (in Hz)
1595 */
1596 #define LL_RCC_CALC_PCLK5_FREQ(__HCLKFREQ__, __APB5PRESCALER__) ((__HCLKFREQ__) >> (((__APB5PRESCALER__) &\
1597 RCC_CFGR2_PPRE5) >> RCC_CFGR2_PPRE5_Pos))
1598
1599 /**
1600 * @}
1601 */
1602
1603 /** @defgroup RCC_LL_EC_PERIPH_FREQUENCY Peripheral clock frequency
1604 * @{
1605 */
1606 #define LL_RCC_PERIPH_FREQUENCY_NO 0U /*!< No clock enabled for the peripheral */
1607 #define LL_RCC_PERIPH_FREQUENCY_NA 0xFFFFFFFFUL /*!< Frequency cannot be provided as external clock */
1608 /**
1609 * @}
1610 */
1611
1612 /**
1613 * @}
1614 */
1615
1616 /* Exported functions --------------------------------------------------------*/
1617 /** @defgroup RCC_LL_Exported_Functions RCC Exported Functions
1618 * @{
1619 */
1620
1621 /** @defgroup RCC_LL_EF_HSE HSE
1622 * @{
1623 */
1624
1625 /**
1626 * @brief Enable the HSE Clock Security System.
1627 * @note Once HSE Clock Security System is enabled it cannot be changed anymore unless
1628 * a reset occurs or system enter in standby mode.
1629 * @rmtoll HSECFGR HSECSSON LL_RCC_HSE_EnableCSS
1630 * @retval None
1631 */
LL_RCC_HSE_EnableCSS(void)1632 __STATIC_INLINE void LL_RCC_HSE_EnableCSS(void)
1633 {
1634 SET_BIT(RCC->HSECFGR, RCC_HSECFGR_HSECSSON);
1635 }
1636
1637 /**
1638 * @brief Check if HSE failure is detected by Clock Security System
1639 * @rmtoll HSECFGR HSECSSD LL_RCC_HSE_IsFailureDetected
1640 * @retval State of bit (1 or 0).
1641 */
LL_RCC_HSE_IsFailureDetected(void)1642 __STATIC_INLINE uint32_t LL_RCC_HSE_IsFailureDetected(void)
1643 {
1644 return ((READ_BIT(RCC->HSECFGR, RCC_HSECFGR_HSECSSD) != 0UL) ? 1UL : 0UL);
1645 }
1646
1647 /**
1648 * @brief Enable the HSE Clock Security System bypass.
1649 * @note Bypass the HSE oscillator when a failure is detected and get the clock from
1650 * the HSI oscillator (HSI injection)
1651 * @rmtoll HSECFGR HSECSSBYP LL_RCC_HSE_EnableCSSBypass
1652 * @retval None
1653 */
LL_RCC_HSE_EnableCSSBypass(void)1654 __STATIC_INLINE void LL_RCC_HSE_EnableCSSBypass(void)
1655 {
1656 SET_BIT(RCC->HSECFGR, RCC_HSECFGR_HSECSSBYP);
1657 }
1658
1659 /**
1660 * @brief Disable the HSE Clock Security System bypass.
1661 * @rmtoll HSECFGR HSECSSBYP LL_RCC_HSE_DisableCSSBypass
1662 * @retval None
1663 */
LL_RCC_HSE_DisableCSSBypass(void)1664 __STATIC_INLINE void LL_RCC_HSE_DisableCSSBypass(void)
1665 {
1666 CLEAR_BIT(RCC->HSECFGR, RCC_HSECFGR_HSECSSBYP);
1667 }
1668
1669 /**
1670 * @brief Set HSE Clock Security System bypass divider
1671 * @note To divide the replacement internal HSI oscillator that
1672 * bypasses the HSE oscillator when a failure is detected
1673 * @rmtoll HSECFGR HSECSSBPRE LL_RCC_HSE_SetCSSBypassDivider
1674 * @param Divider This parameter can be a value from RCC_LL_EC_HSECSSBYP_DIV.
1675 * @retval None
1676 */
LL_RCC_HSE_SetCSSBypassDivider(uint32_t Divider)1677 __STATIC_INLINE void LL_RCC_HSE_SetCSSBypassDivider(uint32_t Divider)
1678 {
1679 MODIFY_REG(RCC->HSECFGR, RCC_HSECFGR_HSECSSBPRE, Divider);
1680 }
1681
1682 /**
1683 * @brief Get HSE Clock Security System bypass divider
1684 * @note To divide the replacement internal HSI oscillator that
1685 * bypasses the HSE oscillator when a failure is detected
1686 * @rmtoll HSECFGR HSECSSBPRE LL_RCC_HSE_GetCSSBypassDivider
1687 * @retval can be a value from RCC_LL_EC_HSECSSBYP_DIV.
1688 */
LL_RCC_HSE_GetCSSBypassDivider(void)1689 __STATIC_INLINE uint32_t LL_RCC_HSE_GetCSSBypassDivider(void)
1690 {
1691 return (READ_BIT(RCC->HSECFGR, RCC_HSECFGR_HSECSSBPRE));
1692 }
1693
1694 /**
1695 * @brief Enable HSE external oscillator (HSE Bypass)
1696 * @rmtoll HSECFGR HSEBYP LL_RCC_HSE_EnableBypass
1697 * @retval None
1698 */
LL_RCC_HSE_EnableBypass(void)1699 __STATIC_INLINE void LL_RCC_HSE_EnableBypass(void)
1700 {
1701 SET_BIT(RCC->HSECFGR, RCC_HSECFGR_HSEBYP);
1702 }
1703
1704 /**
1705 * @brief Disable HSE external oscillator (HSE Bypass)
1706 * @rmtoll HSECFGR HSEBYP LL_RCC_HSE_DisableBypass
1707 * @retval None
1708 */
LL_RCC_HSE_DisableBypass(void)1709 __STATIC_INLINE void LL_RCC_HSE_DisableBypass(void)
1710 {
1711 CLEAR_BIT(RCC->HSECFGR, RCC_HSECFGR_HSEBYP);
1712 }
1713
1714 /**
1715 * @brief Select the Analog HSE external clock type in Bypass mode
1716 * @rmtoll HSECFGR HSEEXT LL_RCC_HSE_SelectAnalogClock
1717 * @retval None
1718 */
LL_RCC_HSE_SelectAnalogClock(void)1719 __STATIC_INLINE void LL_RCC_HSE_SelectAnalogClock(void)
1720 {
1721 CLEAR_BIT(RCC->HSECFGR, RCC_HSECFGR_HSEEXT);
1722 }
1723
1724 /**
1725 * @brief Select the Digital HSE external clock type in Bypass mode
1726 * @rmtoll HSECFGR HSEEXT LL_RCC_HSE_SelectDigitalClock
1727 * @retval None
1728 */
LL_RCC_HSE_SelectDigitalClock(void)1729 __STATIC_INLINE void LL_RCC_HSE_SelectDigitalClock(void)
1730 {
1731 SET_BIT(RCC->HSECFGR, RCC_HSECFGR_HSEEXT);
1732 }
1733
1734 /**
1735 * @brief Select the HSE as hse_div2_osc_ck output clock
1736 * @rmtoll HSECFGR HSEDIV2SEL LL_RCC_HSE_SelectHSEAsDiv2Clock
1737 * @retval None
1738 */
LL_RCC_HSE_SelectHSEAsDiv2Clock(void)1739 __STATIC_INLINE void LL_RCC_HSE_SelectHSEAsDiv2Clock(void)
1740 {
1741 CLEAR_BIT(RCC->HSECFGR, RCC_HSECFGR_HSEDIV2SEL);
1742 }
1743
1744 /**
1745 * @brief Select the HSE divided by 2 as hse_div2_osc_ck output clock
1746 * @rmtoll HSECFGR HSEDIV2SEL LL_RCC_HSE_SelectHSEDiv2AsDiv2Clock
1747 * @retval None
1748 */
LL_RCC_HSE_SelectHSEDiv2AsDiv2Clock(void)1749 __STATIC_INLINE void LL_RCC_HSE_SelectHSEDiv2AsDiv2Clock(void)
1750 {
1751 SET_BIT(RCC->HSECFGR, RCC_HSECFGR_HSEDIV2SEL);
1752 }
1753
1754 /**
1755 * @brief Check if hse_div2_osc_ck output clock is divided by 2
1756 * @rmtoll HSECFGR HSEDIV2SEL LL_RCC_HSE_IsSelectedHSEDiv2AsDiv2Clock
1757 * @retval State of bit (1 or 0).
1758 */
LL_RCC_HSE_IsSelectedHSEDiv2AsDiv2Clock(void)1759 __STATIC_INLINE uint32_t LL_RCC_HSE_IsSelectedHSEDiv2AsDiv2Clock(void)
1760 {
1761 return ((READ_BIT(RCC->HSECFGR, RCC_HSECFGR_HSEDIV2SEL) == RCC_HSECFGR_HSEDIV2SEL) ? 1UL : 0UL);
1762 }
1763
1764 /**
1765 * @brief Enable HSE crystal oscillator (HSE ON)
1766 * @rmtoll CSR HSEONS LL_RCC_HSE_Enable
1767 * @retval None
1768 */
LL_RCC_HSE_Enable(void)1769 __STATIC_INLINE void LL_RCC_HSE_Enable(void)
1770 {
1771 WRITE_REG(RCC->CSR, RCC_CSR_HSEONS);
1772 }
1773
1774 /**
1775 * @brief Disable HSE crystal oscillator (HSE ON)
1776 * @rmtoll CCR HSEONC LL_RCC_HSE_Disable
1777 * @retval None
1778 */
LL_RCC_HSE_Disable(void)1779 __STATIC_INLINE void LL_RCC_HSE_Disable(void)
1780 {
1781 WRITE_REG(RCC->CCR, RCC_CCR_HSEONC);
1782 }
1783
1784 /**
1785 * @brief Check if HSE oscillator Ready
1786 * @rmtoll SR HSERDY LL_RCC_HSE_IsReady
1787 * @retval State of bit (1 or 0).
1788 */
LL_RCC_HSE_IsReady(void)1789 __STATIC_INLINE uint32_t LL_RCC_HSE_IsReady(void)
1790 {
1791 return ((READ_BIT(RCC->SR, RCC_SR_HSERDY) != 0UL) ? 1UL : 0UL);
1792 }
1793
1794 /**
1795 * @}
1796 */
1797
1798 /** @defgroup RCC_LL_EF_HSI HSI
1799 * @{
1800 */
1801
1802 /**
1803 * @brief Enable HSI oscillator
1804 * @rmtoll CSR HSIONS LL_RCC_HSI_Enable
1805 * @retval None
1806 */
LL_RCC_HSI_Enable(void)1807 __STATIC_INLINE void LL_RCC_HSI_Enable(void)
1808 {
1809 WRITE_REG(RCC->CSR, RCC_CSR_HSIONS);
1810 }
1811
1812 /**
1813 * @brief Disable HSI oscillator
1814 * @rmtoll CCR HSIONC LL_RCC_HSI_Disable
1815 * @retval None
1816 */
LL_RCC_HSI_Disable(void)1817 __STATIC_INLINE void LL_RCC_HSI_Disable(void)
1818 {
1819 WRITE_REG(RCC->CCR, RCC_CCR_HSIONC);
1820 }
1821
1822 /**
1823 * @brief Check if HSI clock is ready
1824 * @rmtoll SR HSIRDY LL_RCC_HSI_IsReady
1825 * @retval State of bit (1 or 0).
1826 */
LL_RCC_HSI_IsReady(void)1827 __STATIC_INLINE uint32_t LL_RCC_HSI_IsReady(void)
1828 {
1829 return ((READ_BIT(RCC->SR, RCC_SR_HSIRDY) != 0UL) ? 1UL : 0UL);
1830 }
1831
1832 /**
1833 * @brief Set HSI divider
1834 * @rmtoll HSICFGR HSIDIV LL_RCC_HSI_SetDivider
1835 * @param Divider This parameter can be one of the following values:
1836 * @arg @ref LL_RCC_HSI_DIV_1
1837 * @arg @ref LL_RCC_HSI_DIV_2
1838 * @arg @ref LL_RCC_HSI_DIV_4
1839 * @arg @ref LL_RCC_HSI_DIV_8
1840 * @retval None.
1841 */
LL_RCC_HSI_SetDivider(uint32_t Divider)1842 __STATIC_INLINE void LL_RCC_HSI_SetDivider(uint32_t Divider)
1843 {
1844 MODIFY_REG(RCC->HSICFGR, RCC_HSICFGR_HSIDIV, Divider);
1845 }
1846
1847 /**
1848 * @brief Get HSI divider
1849 * @rmtoll HSICFGR HSIDIV LL_RCC_HSI_GetDivider
1850 * @retval can be one of the following values:
1851 * @arg @ref LL_RCC_HSI_DIV_1
1852 * @arg @ref LL_RCC_HSI_DIV_2
1853 * @arg @ref LL_RCC_HSI_DIV_4
1854 * @arg @ref LL_RCC_HSI_DIV_8
1855 */
LL_RCC_HSI_GetDivider(void)1856 __STATIC_INLINE uint32_t LL_RCC_HSI_GetDivider(void)
1857 {
1858 return (READ_BIT(RCC->HSICFGR, RCC_HSICFGR_HSIDIV));
1859 }
1860
1861 /**
1862 * @brief Get HSI Calibration value
1863 * @note When HSITRIM is written, HSICAL is updated with the sum of
1864 * HSITRIM and the factory trim value
1865 * @rmtoll HSICFGR HSICAL LL_RCC_HSI_GetCalibration
1866 * @retval A value between 0 and 511 (0x1FF)
1867 */
LL_RCC_HSI_GetCalibration(void)1868 __STATIC_INLINE uint32_t LL_RCC_HSI_GetCalibration(void)
1869 {
1870 return (uint32_t)(READ_BIT(RCC->HSICFGR, RCC_HSICFGR_HSICAL) >> RCC_HSICFGR_HSICAL_Pos);
1871 }
1872
1873 /**
1874 * @brief Set HSI Calibration trimming
1875 * @note user-programmable trimming value that is added to the HSICAL
1876 * @note Default value is 32, which, when added to the HSICAL value,
1877 * should trim the HSI to 32 MHz +/- 1 %
1878 * @rmtoll HSICFGR HSITRIM LL_RCC_HSI_SetCalibTrimming
1879 * @param Value This parameter can be a value between 0 and 63
1880 * @retval None
1881 */
LL_RCC_HSI_SetCalibTrimming(uint32_t Value)1882 __STATIC_INLINE void LL_RCC_HSI_SetCalibTrimming(uint32_t Value)
1883 {
1884 MODIFY_REG(RCC->HSICFGR, RCC_HSICFGR_HSITRIM, Value << RCC_HSICFGR_HSITRIM_Pos);
1885 }
1886
1887 /**
1888 * @brief Get HSI Calibration trimming
1889 * @rmtoll HSICFGR HSITRIM LL_RCC_HSI_GetCalibTrimming
1890 * @retval A value between 0 and 63
1891 */
LL_RCC_HSI_GetCalibTrimming(void)1892 __STATIC_INLINE uint32_t LL_RCC_HSI_GetCalibTrimming(void)
1893 {
1894 return (uint32_t)(READ_BIT(RCC->HSICFGR, RCC_HSICFGR_HSITRIM) >> RCC_HSICFGR_HSITRIM_Pos);
1895 }
1896
1897 /**
1898 * @brief Enable HSI even in stop mode
1899 * @note HSI oscillator is forced ON even in Stop mode
1900 * @rmtoll STOPCR HSISTOPEN LL_RCC_HSI_EnableInStopMode
1901 * @retval None
1902 */
LL_RCC_HSI_EnableInStopMode(void)1903 __STATIC_INLINE void LL_RCC_HSI_EnableInStopMode(void)
1904 {
1905 SET_BIT(RCC->STOPCR, RCC_STOPCR_HSISTOPEN);
1906 }
1907
1908 /**
1909 * @brief Disable HSI in stop mode
1910 * @rmtoll STOPCR HSISTOPEN LL_RCC_HSI_DisableInStopMode
1911 * @retval None
1912 */
LL_RCC_HSI_DisableInStopMode(void)1913 __STATIC_INLINE void LL_RCC_HSI_DisableInStopMode(void)
1914 {
1915 CLEAR_BIT(RCC->STOPCR, RCC_STOPCR_HSISTOPEN);
1916 }
1917
1918 /**
1919 * @brief Check if HSI is enabled in stop mode
1920 * @rmtoll STOPCR HSISTOPEN LL_RCC_HSI_IsEnabledInStopMode
1921 * @retval State of bit (1 or 0).
1922 */
LL_RCC_HSI_IsEnabledInStopMode(void)1923 __STATIC_INLINE uint32_t LL_RCC_HSI_IsEnabledInStopMode(void)
1924 {
1925 return ((READ_BIT(RCC->STOPCR, RCC_STOPCR_HSISTOPEN) == RCC_STOPCR_HSISTOPEN) ? 1UL : 0UL);
1926 }
1927
1928 /**
1929 * @}
1930 */
1931
1932 /** @defgroup RCC_LL_EF_MSI MSI
1933 * @{
1934 */
1935
1936 /**
1937 * @brief Enable MSI oscillator
1938 * @rmtoll CSR MSIONS LL_RCC_MSI_Enable
1939 * @retval None
1940 */
LL_RCC_MSI_Enable(void)1941 __STATIC_INLINE void LL_RCC_MSI_Enable(void)
1942 {
1943 WRITE_REG(RCC->CSR, RCC_CSR_MSIONS);
1944 }
1945
1946 /**
1947 * @brief Disable MSI oscillator
1948 * @rmtoll CCR MSIONC LL_RCC_MSI_Disable
1949 * @retval None
1950 */
LL_RCC_MSI_Disable(void)1951 __STATIC_INLINE void LL_RCC_MSI_Disable(void)
1952 {
1953 WRITE_REG(RCC->CCR, RCC_CCR_MSIONC);
1954 }
1955
1956 /**
1957 * @brief Check if MSI clock is ready
1958 * @rmtoll SR MSIRDY LL_RCC_MSI_IsReady
1959 * @retval State of bit (1 or 0).
1960 */
LL_RCC_MSI_IsReady(void)1961 __STATIC_INLINE uint32_t LL_RCC_MSI_IsReady(void)
1962 {
1963 return ((READ_BIT(RCC->SR, RCC_SR_MSIRDY) != 0UL) ? 1UL : 0UL);
1964 }
1965
1966 /**
1967 * @brief Set MSI frequency
1968 * @rmtoll MSICFGR MSIFREQSEL LL_RCC_MSI_SetFrequency
1969 * @param Value This parameter can be one of the following values:
1970 * @arg @ref LL_RCC_MSI_FREQ_4MHZ
1971 * @arg @ref LL_RCC_MSI_FREQ_16MHZ
1972 * @retval None.
1973 */
LL_RCC_MSI_SetFrequency(uint32_t Value)1974 __STATIC_INLINE void LL_RCC_MSI_SetFrequency(uint32_t Value)
1975 {
1976 MODIFY_REG(RCC->MSICFGR, RCC_MSICFGR_MSIFREQSEL, Value);
1977 }
1978
1979 /**
1980 * @brief Get HSI divider
1981 * @rmtoll MSICFGR MSIFREQSEL LL_RCC_MSI_GetFrequency
1982 * @retval can be one of the following values:
1983 * @arg @ref LL_RCC_MSI_FREQ_4MHZ
1984 * @arg @ref LL_RCC_MSI_FREQ_16MHZ
1985 */
LL_RCC_MSI_GetFrequency(void)1986 __STATIC_INLINE uint32_t LL_RCC_MSI_GetFrequency(void)
1987 {
1988 return (READ_BIT(RCC->MSICFGR, RCC_MSICFGR_MSIFREQSEL));
1989 }
1990
1991
1992 /**
1993 * @brief Get MSI Calibration value
1994 * @note When MSITRIM is written, MSICAL is updated with the sum of
1995 * MSITRIM and the factory trim value
1996 * @rmtoll MSICFGR MSICAL LL_RCC_MSI_GetCalibration
1997 * @retval A value between 0 and 255 (0xFF)
1998 */
LL_RCC_MSI_GetCalibration(void)1999 __STATIC_INLINE uint32_t LL_RCC_MSI_GetCalibration(void)
2000 {
2001 return (uint32_t)(READ_BIT(RCC->MSICFGR, RCC_MSICFGR_MSICAL) >> RCC_MSICFGR_MSICAL_Pos);
2002 }
2003
2004 /**
2005 * @brief Set MSI Calibration trimming
2006 * @note user-programmable trimming value that is added to the MSICAL
2007 * @note Default value is 16, which, when added to the MSICAL value,
2008 * should trim the MSI to 4 MHz +/- 1 %
2009 * @rmtoll MSICFGR MSITRIM LL_RCC_MSI_SetCalibTrimming
2010 * @param Value can be a value between 0 and 31
2011 * @retval None
2012 */
LL_RCC_MSI_SetCalibTrimming(uint32_t Value)2013 __STATIC_INLINE void LL_RCC_MSI_SetCalibTrimming(uint32_t Value)
2014 {
2015 MODIFY_REG(RCC->MSICFGR, RCC_MSICFGR_MSITRIM, Value << RCC_MSICFGR_MSITRIM_Pos);
2016 }
2017
2018 /**
2019 * @brief Get MSI Calibration trimming
2020 * @rmtoll MSICFGR MSITRIM LL_RCC_MSI_GetCalibTrimming
2021 * @retval A value between 0 and 31
2022 */
LL_RCC_MSI_GetCalibTrimming(void)2023 __STATIC_INLINE uint32_t LL_RCC_MSI_GetCalibTrimming(void)
2024 {
2025 return (uint32_t)(READ_BIT(RCC->MSICFGR, RCC_MSICFGR_MSITRIM) >> RCC_MSICFGR_MSITRIM_Pos);
2026 }
2027
2028 /**
2029 * @brief Enable MSI even in stop mode
2030 * @note MSI oscillator is forced ON even in Stop mode
2031 * @rmtoll STOPCR MSISTOPEN LL_RCC_MSI_EnableInStopMode
2032 * @retval None
2033 */
LL_RCC_MSI_EnableInStopMode(void)2034 __STATIC_INLINE void LL_RCC_MSI_EnableInStopMode(void)
2035 {
2036 SET_BIT(RCC->STOPCR, RCC_STOPCR_MSISTOPEN);
2037 }
2038
2039 /**
2040 * @brief Disable MSI in stop mode
2041 * @rmtoll STOPCR MSISTOPEN LL_RCC_MSI_DisableInStopMode
2042 * @retval None
2043 */
LL_RCC_MSI_DisableInStopMode(void)2044 __STATIC_INLINE void LL_RCC_MSI_DisableInStopMode(void)
2045 {
2046 CLEAR_BIT(RCC->STOPCR, RCC_STOPCR_MSISTOPEN);
2047 }
2048
2049 /**
2050 * @brief Check if MSI is enabled in stop mode
2051 * @rmtoll STOPCR MSISTOPEN LL_RCC_MSI_IsEnabledInStopMode
2052 * @retval State of bit (1 or 0).
2053 */
LL_RCC_MSI_IsEnabledInStopMode(void)2054 __STATIC_INLINE uint32_t LL_RCC_MSI_IsEnabledInStopMode(void)
2055 {
2056 return ((READ_BIT(RCC->STOPCR, RCC_STOPCR_MSISTOPEN) == RCC_STOPCR_MSISTOPEN) ? 1UL : 0UL);
2057 }
2058
2059 /**
2060 * @}
2061 */
2062
2063 /** @defgroup RCC_LL_EF_LSE LSE
2064 * @{
2065 */
2066
2067 /**
2068 * @brief Enable the Clock Security System on LSE
2069 * @note Once LSE Clock Security System is enabled it cannot be changed anymore unless
2070 * a clock failure is detected.
2071 * @rmtoll LSECFGR LSECSSON LL_RCC_LSE_EnableCSS
2072 * @retval None
2073 */
LL_RCC_LSE_EnableCSS(void)2074 __STATIC_INLINE void LL_RCC_LSE_EnableCSS(void)
2075 {
2076 SET_BIT(RCC->LSECFGR, RCC_LSECFGR_LSECSSON);
2077 }
2078
2079 /**
2080 * @brief Disable the Clock Security System on LSE
2081 * @note Once LSE Clock Security System is enabled it cannot be changed anymore unless
2082 * a clock failure is detected.
2083 * @rmtoll LSECFGR LSECSSON LL_RCC_LSE_DisableCSS
2084 * @retval None
2085 */
LL_RCC_LSE_DisableCSS(void)2086 __STATIC_INLINE void LL_RCC_LSE_DisableCSS(void)
2087 {
2088 CLEAR_BIT(RCC->LSECFGR, RCC_LSECFGR_LSECSSON);
2089 }
2090
2091 /**
2092 * @brief Check if LSE failure is detected by Clock Security System
2093 * @rmtoll LSECFGR LSECSSD LL_RCC_LSE_IsFailureDetected
2094 * @retval State of bit (1 or 0).
2095 */
LL_RCC_LSE_IsFailureDetected(void)2096 __STATIC_INLINE uint32_t LL_RCC_LSE_IsFailureDetected(void)
2097 {
2098 return ((READ_BIT(RCC->LSECFGR, RCC_LSECFGR_LSECSSD) != 0UL) ? 1UL : 0UL);
2099 }
2100
2101 /**
2102 * @brief Re-arm the Clock Security System on LSE
2103 * @note Once a clock failure is detected, the LSE Clock Security System can be re-armed providing that
2104 * LSECSSON is disabled.
2105 * @rmtoll LSECFGR LSECSSRA LL_RCC_LSE_ReArmCSS
2106 * @retval None
2107 */
LL_RCC_LSE_ReArmCSS(void)2108 __STATIC_INLINE void LL_RCC_LSE_ReArmCSS(void)
2109 {
2110 SET_BIT(RCC->LSECFGR, RCC_LSECFGR_LSECSSRA);
2111 }
2112
2113 /**
2114 * @brief Enable external clock source (LSE bypass)
2115 * @rmtoll LSECFGR LSEBYP LL_RCC_LSE_EnableBypass
2116 * @retval None
2117 */
LL_RCC_LSE_EnableBypass(void)2118 __STATIC_INLINE void LL_RCC_LSE_EnableBypass(void)
2119 {
2120 SET_BIT(RCC->LSECFGR, RCC_LSECFGR_LSEBYP);
2121 }
2122
2123 /**
2124 * @brief Disable external clock source (LSE bypass)
2125 * @rmtoll LSECFGR LSEBYP LL_RCC_LSE_DisableBypass
2126 * @retval None
2127 */
LL_RCC_LSE_DisableBypass(void)2128 __STATIC_INLINE void LL_RCC_LSE_DisableBypass(void)
2129 {
2130 CLEAR_BIT(RCC->LSECFGR, RCC_LSECFGR_LSEBYP);
2131 }
2132
2133 /**
2134 * @brief Enable Low-speed external DIGITAL clock type in Bypass mode (not to be used if RTC is active).
2135 * @note The external clock must be enabled with the LSEON bit, to be used by the device.
2136 * The LSEEXT bit can be written only if the LSE oscillator is disabled.
2137 * @rmtoll LSECFGR LSEEXT LL_RCC_LSE_SelectDigitalClock
2138 * @retval None
2139 */
LL_RCC_LSE_SelectDigitalClock(void)2140 __STATIC_INLINE void LL_RCC_LSE_SelectDigitalClock(void)
2141 {
2142 SET_BIT(RCC->LSECFGR, RCC_LSECFGR_LSEEXT);
2143 }
2144
2145 /**
2146 * @brief Enable Low-speed external ANALOG clock type in Bypass mode (default after Backup domain reset).
2147 * @note The external clock must be enabled with the LSEON bit, to be used by the device.
2148 * The LSEEXT bit can be written only if the LSE oscillator is disabled.
2149 * @rmtoll LSECFGR LSEEXT LL_RCC_LSE_SelectAnalogClock
2150 * @retval None
2151 */
LL_RCC_LSE_SelectAnalogClock(void)2152 __STATIC_INLINE void LL_RCC_LSE_SelectAnalogClock(void)
2153 {
2154 CLEAR_BIT(RCC->LSECFGR, RCC_LSECFGR_LSEEXT);
2155 }
2156
2157 /**
2158 * @brief Set LSE oscillator drive capability
2159 * @note The oscillator is in Xtal mode when it is not in bypass mode.
2160 * @rmtoll LSECFGR LSEDRV LL_RCC_LSE_SetDriveCapability
2161 * @param LSEDrive This parameter can be one of the following values:
2162 * @arg @ref LL_RCC_LSEDRIVE_LOW
2163 * @arg @ref LL_RCC_LSEDRIVE_MEDIUMLOW
2164 * @arg @ref LL_RCC_LSEDRIVE_MEDIUMHIGH
2165 * @arg @ref LL_RCC_LSEDRIVE_HIGH
2166 * @retval None
2167 */
LL_RCC_LSE_SetDriveCapability(uint32_t LSEDrive)2168 __STATIC_INLINE void LL_RCC_LSE_SetDriveCapability(uint32_t LSEDrive)
2169 {
2170 MODIFY_REG(RCC->LSECFGR, RCC_LSECFGR_LSEDRV, LSEDrive);
2171 }
2172
2173 /**
2174 * @brief Get LSE oscillator drive capability
2175 * @rmtoll LSECFGR LSEDRV LL_RCC_LSE_GetDriveCapability
2176 * @retval Returned value can be one of the following values:
2177 * @arg @ref LL_RCC_LSEDRIVE_LOW
2178 * @arg @ref LL_RCC_LSEDRIVE_MEDIUMLOW
2179 * @arg @ref LL_RCC_LSEDRIVE_MEDIUMHIGH
2180 * @arg @ref LL_RCC_LSEDRIVE_HIGH
2181 */
LL_RCC_LSE_GetDriveCapability(void)2182 __STATIC_INLINE uint32_t LL_RCC_LSE_GetDriveCapability(void)
2183 {
2184 return (uint32_t)(READ_BIT(RCC->LSECFGR, RCC_LSECFGR_LSEDRV));
2185 }
2186
2187 /**
2188 * @brief Enable Low Speed External (LSE) crystal
2189 * @rmtoll CSR LSEONS LL_RCC_LSE_Enable
2190 * @retval None
2191 */
LL_RCC_LSE_Enable(void)2192 __STATIC_INLINE void LL_RCC_LSE_Enable(void)
2193 {
2194 WRITE_REG(RCC->CSR, RCC_CSR_LSEONS);
2195 }
2196
2197 /**
2198 * @brief Disable Low Speed External (LSE) crystal
2199 * @rmtoll CCR LSEONC LL_RCC_LSE_Disable
2200 * @retval None
2201 */
LL_RCC_LSE_Disable(void)2202 __STATIC_INLINE void LL_RCC_LSE_Disable(void)
2203 {
2204 WRITE_REG(RCC->CCR, RCC_CCR_LSEONC);
2205 }
2206
2207 /**
2208 * @brief Check if LSE oscillator Ready
2209 * @rmtoll SR LSERDY LL_RCC_LSE_IsReady
2210 * @retval State of bit (1 or 0).
2211 */
LL_RCC_LSE_IsReady(void)2212 __STATIC_INLINE uint32_t LL_RCC_LSE_IsReady(void)
2213 {
2214 return ((READ_BIT(RCC->SR, RCC_SR_LSERDY) != 0UL) ? 1UL : 0UL);
2215 }
2216
2217 /**
2218 * @brief Enable the LSE clock glitch filter
2219 * @note This API shall be called only when LSE is disabled.
2220 * @rmtoll LSECFGR LSEGFON LL_RCC_LSE_EnableGlitchFilter
2221 * @retval None
2222 */
LL_RCC_LSE_EnableGlitchFilter(void)2223 __STATIC_INLINE void LL_RCC_LSE_EnableGlitchFilter(void)
2224 {
2225 SET_BIT(RCC->LSECFGR, RCC_LSECFGR_LSEGFON);
2226 }
2227
2228 /**
2229 * @brief Disable the LSE clock glitch filter
2230 * @note This API shall be called only when LSE is disabled.
2231 * @rmtoll LSECFGR LSEGFON LL_RCC_LSE_DisableGlitchFilter
2232 * @retval None
2233 */
LL_RCC_LSE_DisableGlitchFilter(void)2234 __STATIC_INLINE void LL_RCC_LSE_DisableGlitchFilter(void)
2235 {
2236 CLEAR_BIT(RCC->LSECFGR, RCC_LSECFGR_LSEGFON);
2237 }
2238
2239 /**
2240 * @brief Check if LSE clock glitch filter is enabled
2241 * @rmtoll LSECFGR LSEGFON LL_RCC_LSE_IsEnabledGlitchFilter
2242 * @retval State of bit (1 or 0).
2243 */
LL_RCC_LSE_IsEnabledGlitchFilter(void)2244 __STATIC_INLINE uint32_t LL_RCC_LSE_IsEnabledGlitchFilter(void)
2245 {
2246 return ((READ_BIT(RCC->STOPCR, RCC_LSECFGR_LSEGFON) == RCC_LSECFGR_LSEGFON) ? 1UL : 0UL);
2247 }
2248
2249 /**
2250 * @}
2251 */
2252
2253 /** @defgroup RCC_LL_EF_LSI LSI
2254 * @{
2255 */
2256
2257 /**
2258 * @brief Enable LSI Oscillator
2259 * @rmtoll CSR LSIONS LL_RCC_LSI_Enable
2260 * @retval None
2261 */
LL_RCC_LSI_Enable(void)2262 __STATIC_INLINE void LL_RCC_LSI_Enable(void)
2263 {
2264 WRITE_REG(RCC->CSR, RCC_CSR_LSIONS);
2265 }
2266
2267 /**
2268 * @brief Disable LSI Oscillator
2269 * @rmtoll CCR LSIONC LL_RCC_LSI_Disable
2270 * @retval None
2271 */
LL_RCC_LSI_Disable(void)2272 __STATIC_INLINE void LL_RCC_LSI_Disable(void)
2273 {
2274 WRITE_REG(RCC->CCR, RCC_CCR_LSIONC);
2275 }
2276
2277 /**
2278 * @brief Check if LSI is Ready
2279 * @rmtoll SR LSIRDY LL_RCC_LSI_IsReady
2280 * @retval State of bit (1 or 0).
2281 */
LL_RCC_LSI_IsReady(void)2282 __STATIC_INLINE uint32_t LL_RCC_LSI_IsReady(void)
2283 {
2284 return ((READ_BIT(RCC->SR, RCC_SR_LSIRDY) != 0UL) ? 1UL : 0UL);
2285 }
2286
2287 /**
2288 * @}
2289 */
2290
2291 /** @defgroup RCC_LL_EF_System System
2292 * @{
2293 */
2294
2295 /**
2296 * @brief Configure the CPU clock source
2297 * @rmtoll CFGR1 CPUSW LL_RCC_SetCpuClkSource
2298 * @param Source This parameter can be one of the following values:
2299 * @arg @ref LL_RCC_CPU_CLKSOURCE_HSI
2300 * @arg @ref LL_RCC_CPU_CLKSOURCE_MSI
2301 * @arg @ref LL_RCC_CPU_CLKSOURCE_HSE
2302 * @arg @ref LL_RCC_CPU_CLKSOURCE_IC1
2303 * @retval None
2304 */
LL_RCC_SetCpuClkSource(uint32_t Source)2305 __STATIC_INLINE void LL_RCC_SetCpuClkSource(uint32_t Source)
2306 {
2307 MODIFY_REG(RCC->CFGR1, RCC_CFGR1_CPUSW, Source);
2308 }
2309
2310 /**
2311 * @brief Get the CPU clock source
2312 * @rmtoll CFGR1 CPUSWS LL_RCC_GetCpuClkSource
2313 * @retval Returned value can be one of the following values:
2314 * @arg @ref LL_RCC_CPU_CLKSOURCE_STATUS_HSI
2315 * @arg @ref LL_RCC_CPU_CLKSOURCE_STATUS_MSI
2316 * @arg @ref LL_RCC_CPU_CLKSOURCE_STATUS_HSE
2317 * @arg @ref LL_RCC_CPU_CLKSOURCE_STATUS_IC1
2318 */
LL_RCC_GetCpuClkSource(void)2319 __STATIC_INLINE uint32_t LL_RCC_GetCpuClkSource(void)
2320 {
2321 return (uint32_t)(READ_BIT(RCC->CFGR1, RCC_CFGR1_CPUSWS));
2322 }
2323
2324 /**
2325 * @brief Configure the system clock source (bus clock)
2326 * @rmtoll CFGR1 SYSSW LL_RCC_SetSysClkSource
2327 * @param Source This parameter can be one of the following values:
2328 * @arg @ref LL_RCC_SYS_CLKSOURCE_HSI
2329 * @arg @ref LL_RCC_SYS_CLKSOURCE_MSI
2330 * @arg @ref LL_RCC_SYS_CLKSOURCE_HSE
2331 * @arg @ref LL_RCC_SYS_CLKSOURCE_IC2_IC6_IC11
2332 * @retval None
2333 */
LL_RCC_SetSysClkSource(uint32_t Source)2334 __STATIC_INLINE void LL_RCC_SetSysClkSource(uint32_t Source)
2335 {
2336 MODIFY_REG(RCC->CFGR1, RCC_CFGR1_SYSSW, Source);
2337 }
2338
2339 /**
2340 * @brief Get the system clock source (bus clock)
2341 * @rmtoll CFGR1 SYSSWS LL_RCC_GetSysClkSource
2342 * @retval Returned value can be one of the following values:
2343 * @arg @ref LL_RCC_SYS_CLKSOURCE_STATUS_HSI
2344 * @arg @ref LL_RCC_SYS_CLKSOURCE_STATUS_MSI
2345 * @arg @ref LL_RCC_SYS_CLKSOURCE_STATUS_HSE
2346 * @arg @ref LL_RCC_SYS_CLKSOURCE_STATUS_IC2_IC6_IC11
2347 */
LL_RCC_GetSysClkSource(void)2348 __STATIC_INLINE uint32_t LL_RCC_GetSysClkSource(void)
2349 {
2350 return (uint32_t)(READ_BIT(RCC->CFGR1, RCC_CFGR1_SYSSWS));
2351 }
2352
2353 /**
2354 * @brief Configure the system wakeup clock source
2355 * @rmtoll CFGR1 STOPWUCK LL_RCC_SetSysWakeUpClkSource
2356 * @param Source This parameter can be one of the following values:
2357 * @arg @ref LL_RCC_SYSWAKEUP_CLKSOURCE_HSI
2358 * @arg @ref LL_RCC_SYSWAKEUP_CLKSOURCE_MSI
2359 * @retval None
2360 */
LL_RCC_SetSysWakeUpClkSource(uint32_t Source)2361 __STATIC_INLINE void LL_RCC_SetSysWakeUpClkSource(uint32_t Source)
2362 {
2363 MODIFY_REG(RCC->CFGR1, RCC_CFGR1_STOPWUCK, Source);
2364 }
2365
2366 /**
2367 * @brief Get the system wakeup clock source
2368 * @rmtoll CFGR1 STOPWUCK LL_RCC_GetSysWakeUpClkSource
2369 * @retval Returned value can be one of the following values:
2370 * @arg @ref LL_RCC_SYSWAKEUP_CLKSOURCE_HSI
2371 * @arg @ref LL_RCC_SYSWAKEUP_CLKSOURCE_MSI
2372 */
LL_RCC_GetSysWakeUpClkSource(void)2373 __STATIC_INLINE uint32_t LL_RCC_GetSysWakeUpClkSource(void)
2374 {
2375 return (uint32_t)(READ_BIT(RCC->CFGR1, RCC_CFGR1_STOPWUCK));
2376 }
2377
2378 /**
2379 * @brief Set AHB prescaler
2380 * @rmtoll CFGR2 HPRE LL_RCC_SetAHBPrescaler
2381 * @param Prescaler This parameter can be one of the following values:
2382 * @arg @ref LL_RCC_AHB_DIV_1
2383 * @arg @ref LL_RCC_AHB_DIV_2
2384 * @arg @ref LL_RCC_AHB_DIV_4
2385 * @arg @ref LL_RCC_AHB_DIV_8
2386 * @arg @ref LL_RCC_AHB_DIV_16
2387 * @arg @ref LL_RCC_AHB_DIV_32
2388 * @arg @ref LL_RCC_AHB_DIV_64
2389 * @arg @ref LL_RCC_AHB_DIV_128
2390 * @retval None
2391 */
LL_RCC_SetAHBPrescaler(uint32_t Prescaler)2392 __STATIC_INLINE void LL_RCC_SetAHBPrescaler(uint32_t Prescaler)
2393 {
2394 MODIFY_REG(RCC->CFGR2, RCC_CFGR2_HPRE, Prescaler);
2395 }
2396
2397 /**
2398 * @brief Get AHB prescaler
2399 * @rmtoll CFGR2 HPRE LL_RCC_GetAHBPrescaler
2400 * @retval Returned value can be one of the following values:
2401 * @arg @ref LL_RCC_AHB_DIV_1
2402 * @arg @ref LL_RCC_AHB_DIV_2
2403 * @arg @ref LL_RCC_AHB_DIV_4
2404 * @arg @ref LL_RCC_AHB_DIV_8
2405 * @arg @ref LL_RCC_AHB_DIV_16
2406 * @arg @ref LL_RCC_AHB_DIV_32
2407 * @arg @ref LL_RCC_AHB_DIV_64
2408 * @arg @ref LL_RCC_AHB_DIV_128
2409 */
LL_RCC_GetAHBPrescaler(void)2410 __STATIC_INLINE uint32_t LL_RCC_GetAHBPrescaler(void)
2411 {
2412 return (uint32_t)(READ_BIT(RCC->CFGR2, RCC_CFGR2_HPRE));
2413 }
2414
2415 /**
2416 * @brief Set APB1 prescaler
2417 * @rmtoll CFGR2 PPRE1 LL_RCC_SetAPB1Prescaler
2418 * @param Prescaler This parameter can be one of the following values:
2419 * @arg @ref LL_RCC_APB1_DIV_1
2420 * @arg @ref LL_RCC_APB1_DIV_2
2421 * @arg @ref LL_RCC_APB1_DIV_4
2422 * @arg @ref LL_RCC_APB1_DIV_8
2423 * @arg @ref LL_RCC_APB1_DIV_16
2424 * @arg @ref LL_RCC_APB1_DIV_32
2425 * @arg @ref LL_RCC_APB1_DIV_64
2426 * @arg @ref LL_RCC_APB1_DIV_128
2427 * @retval None
2428 */
LL_RCC_SetAPB1Prescaler(uint32_t Prescaler)2429 __STATIC_INLINE void LL_RCC_SetAPB1Prescaler(uint32_t Prescaler)
2430 {
2431 MODIFY_REG(RCC->CFGR2, RCC_CFGR2_PPRE1, Prescaler);
2432 }
2433
2434 /**
2435 * @brief Get APB1 prescaler
2436 * @rmtoll CFGR2 PPRE1 LL_RCC_GetAPB1Prescaler
2437 * @retval Returned value can be one of the following values:
2438 * @arg @ref LL_RCC_APB1_DIV_1
2439 * @arg @ref LL_RCC_APB1_DIV_2
2440 * @arg @ref LL_RCC_APB1_DIV_4
2441 * @arg @ref LL_RCC_APB1_DIV_8
2442 * @arg @ref LL_RCC_APB1_DIV_16
2443 * @arg @ref LL_RCC_APB1_DIV_32
2444 * @arg @ref LL_RCC_APB1_DIV_64
2445 * @arg @ref LL_RCC_APB1_DIV_128
2446 */
LL_RCC_GetAPB1Prescaler(void)2447 __STATIC_INLINE uint32_t LL_RCC_GetAPB1Prescaler(void)
2448 {
2449 return (uint32_t)(READ_BIT(RCC->CFGR2, RCC_CFGR2_PPRE1));
2450 }
2451
2452 /**
2453 * @brief Set APB2 prescaler
2454 * @rmtoll CFGR2 PPRE2 LL_RCC_SetAPB2Prescaler
2455 * @param Prescaler This parameter can be one of the following values:
2456 * @arg @ref LL_RCC_APB2_DIV_1
2457 * @arg @ref LL_RCC_APB2_DIV_2
2458 * @arg @ref LL_RCC_APB2_DIV_4
2459 * @arg @ref LL_RCC_APB2_DIV_8
2460 * @arg @ref LL_RCC_APB2_DIV_16
2461 * @arg @ref LL_RCC_APB2_DIV_32
2462 * @arg @ref LL_RCC_APB2_DIV_64
2463 * @arg @ref LL_RCC_APB2_DIV_128
2464 * @retval None
2465 */
LL_RCC_SetAPB2Prescaler(uint32_t Prescaler)2466 __STATIC_INLINE void LL_RCC_SetAPB2Prescaler(uint32_t Prescaler)
2467 {
2468 MODIFY_REG(RCC->CFGR2, RCC_CFGR2_PPRE2, Prescaler);
2469 }
2470
2471 /**
2472 * @brief Get APB2 prescaler
2473 * @rmtoll CFGR2 PPRE2 LL_RCC_GetAPB2Prescaler
2474 * @retval Returned value can be one of the following values:
2475 * @arg @ref LL_RCC_APB2_DIV_1
2476 * @arg @ref LL_RCC_APB2_DIV_2
2477 * @arg @ref LL_RCC_APB2_DIV_4
2478 * @arg @ref LL_RCC_APB2_DIV_8
2479 * @arg @ref LL_RCC_APB2_DIV_16
2480 * @arg @ref LL_RCC_APB2_DIV_32
2481 * @arg @ref LL_RCC_APB2_DIV_64
2482 * @arg @ref LL_RCC_APB2_DIV_128
2483 */
LL_RCC_GetAPB2Prescaler(void)2484 __STATIC_INLINE uint32_t LL_RCC_GetAPB2Prescaler(void)
2485 {
2486 return (uint32_t)(READ_BIT(RCC->CFGR2, RCC_CFGR2_PPRE2));
2487 }
2488
2489 /**
2490 * @brief Set APB4 prescaler
2491 * @rmtoll CFGR2 PPRE4 LL_RCC_SetAPB4Prescaler
2492 * @param Prescaler This parameter can be one of the following values:
2493 * @arg @ref LL_RCC_APB4_DIV_1
2494 * @arg @ref LL_RCC_APB4_DIV_2
2495 * @arg @ref LL_RCC_APB4_DIV_4
2496 * @arg @ref LL_RCC_APB4_DIV_8
2497 * @arg @ref LL_RCC_APB4_DIV_16
2498 * @arg @ref LL_RCC_APB4_DIV_32
2499 * @arg @ref LL_RCC_APB4_DIV_64
2500 * @arg @ref LL_RCC_APB4_DIV_128
2501 * @retval None
2502 */
LL_RCC_SetAPB4Prescaler(uint32_t Prescaler)2503 __STATIC_INLINE void LL_RCC_SetAPB4Prescaler(uint32_t Prescaler)
2504 {
2505 MODIFY_REG(RCC->CFGR2, RCC_CFGR2_PPRE4, Prescaler);
2506 }
2507
2508 /**
2509 * @brief Get APB4 prescaler
2510 * @rmtoll CFGR2 PPRE4 LL_RCC_GetAPB4Prescaler
2511 * @retval Returned value can be one of the following values:
2512 * @arg @ref LL_RCC_APB4_DIV_1
2513 * @arg @ref LL_RCC_APB4_DIV_2
2514 * @arg @ref LL_RCC_APB4_DIV_4
2515 * @arg @ref LL_RCC_APB4_DIV_8
2516 * @arg @ref LL_RCC_APB4_DIV_16
2517 * @arg @ref LL_RCC_APB4_DIV_32
2518 * @arg @ref LL_RCC_APB4_DIV_64
2519 * @arg @ref LL_RCC_APB4_DIV_128
2520 */
LL_RCC_GetAPB4Prescaler(void)2521 __STATIC_INLINE uint32_t LL_RCC_GetAPB4Prescaler(void)
2522 {
2523 return (uint32_t)(READ_BIT(RCC->CFGR2, RCC_CFGR2_PPRE4));
2524 }
2525
2526 /**
2527 * @brief Set APB5 prescaler
2528 * @rmtoll CFGR2 PPRE5 LL_RCC_SetAPB5Prescaler
2529 * @param Prescaler This parameter can be one of the following values:
2530 * @arg @ref LL_RCC_APB5_DIV_1
2531 * @arg @ref LL_RCC_APB5_DIV_2
2532 * @arg @ref LL_RCC_APB5_DIV_4
2533 * @arg @ref LL_RCC_APB5_DIV_8
2534 * @arg @ref LL_RCC_APB5_DIV_16
2535 * @arg @ref LL_RCC_APB5_DIV_32
2536 * @arg @ref LL_RCC_APB5_DIV_64
2537 * @arg @ref LL_RCC_APB5_DIV_128
2538 * @retval None
2539 */
LL_RCC_SetAPB5Prescaler(uint32_t Prescaler)2540 __STATIC_INLINE void LL_RCC_SetAPB5Prescaler(uint32_t Prescaler)
2541 {
2542 MODIFY_REG(RCC->CFGR2, RCC_CFGR2_PPRE5, Prescaler);
2543 }
2544
2545 /**
2546 * @brief Get APB5 prescaler
2547 * @rmtoll CFGR2 PPRE5 LL_RCC_GetAPB5Prescaler
2548 * @retval Returned value can be one of the following values:
2549 * @arg @ref LL_RCC_APB5_DIV_1
2550 * @arg @ref LL_RCC_APB5_DIV_2
2551 * @arg @ref LL_RCC_APB5_DIV_4
2552 * @arg @ref LL_RCC_APB5_DIV_8
2553 * @arg @ref LL_RCC_APB5_DIV_16
2554 * @arg @ref LL_RCC_APB5_DIV_32
2555 * @arg @ref LL_RCC_APB5_DIV_64
2556 * @arg @ref LL_RCC_APB5_DIV_128
2557 */
LL_RCC_GetAPB5Prescaler(void)2558 __STATIC_INLINE uint32_t LL_RCC_GetAPB5Prescaler(void)
2559 {
2560 return (uint32_t)(READ_BIT(RCC->CFGR2, RCC_CFGR2_PPRE5));
2561 }
2562
2563 /**
2564 * @}
2565 */
2566
2567 /** @defgroup RCC_LL_EF_MCO MCO
2568 * @{
2569 */
2570
2571 /**
2572 * @brief Enable MCOx output
2573 * @note The clock provided to the MCOx outputs must not exceed the maximum IO speed,
2574 * refer to the product datasheet for information about the supported IO speed.
2575 * @rmtoll MISCENSR MCO1ENS LL_RCC_EnableMCO\n
2576 * MISCENSR MCO2ENS LL_RCC_EnableMCO
2577 * @param MCOx This parameter can be one or a combination of the following values:
2578 * @arg @ref LL_RCC_MCO1
2579 * @arg @ref LL_RCC_MCO2
2580 * @retval None
2581 */
LL_RCC_EnableMCO(uint32_t MCOx)2582 __STATIC_INLINE void LL_RCC_EnableMCO(uint32_t MCOx)
2583 {
2584 WRITE_REG(RCC->MISCENSR, MCOx);
2585 }
2586
2587 /**
2588 * @brief Disable MCOx output
2589 * @rmtoll MISCENCR MCO1ENC LL_RCC_DisableMCO\n
2590 * MISCENCR MCO2ENC LL_RCC_DisableMCO
2591 * @param MCOx This parameter can be one or a combination of the following values:
2592 * @arg @ref LL_RCC_MCO1
2593 * @arg @ref LL_RCC_MCO2
2594 * @retval None
2595 */
LL_RCC_DisableMCO(uint32_t MCOx)2596 __STATIC_INLINE void LL_RCC_DisableMCO(uint32_t MCOx)
2597 {
2598 WRITE_REG(RCC->MISCENCR, MCOx);
2599 }
2600
2601 /**
2602 * @brief Configure MCOx
2603 * @note The clock provided to the MCOx outputs must not exceed the maximum IO speed,
2604 * refer to the product datasheet for information about the supported IO speed.
2605 * @note The MCO switch to the new clock source only occurs when the previous clock source is active (dynamic switch).
2606 * @rmtoll CCIPR5 MCO1SEL LL_RCC_ConfigMCO\n
2607 * CCIPR5 MCO1PRE LL_RCC_ConfigMCO\n
2608 * CCIPR5 MCO2SEL LL_RCC_ConfigMCO\n
2609 * CCIPR5 MCO2PRE LL_RCC_ConfigMCO
2610 * @param MCOxSource This parameter can be one of the following values:
2611 * @arg @ref LL_RCC_MCO1SOURCE_LSI
2612 * @arg @ref LL_RCC_MCO1SOURCE_LSE
2613 * @arg @ref LL_RCC_MCO1SOURCE_MSI
2614 * @arg @ref LL_RCC_MCO1SOURCE_HSI
2615 * @arg @ref LL_RCC_MCO1SOURCE_HSE
2616 * @arg @ref LL_RCC_MCO1SOURCE_IC5
2617 * @arg @ref LL_RCC_MCO1SOURCE_IC10
2618 * @arg @ref LL_RCC_MCO1SOURCE_SYSA
2619 * @arg @ref LL_RCC_MCO2SOURCE_LSI
2620 * @arg @ref LL_RCC_MCO2SOURCE_LSE
2621 * @arg @ref LL_RCC_MCO2SOURCE_MSI
2622 * @arg @ref LL_RCC_MCO2SOURCE_HSI
2623 * @arg @ref LL_RCC_MCO2SOURCE_HSE
2624 * @arg @ref LL_RCC_MCO2SOURCE_IC15
2625 * @arg @ref LL_RCC_MCO2SOURCE_IC20
2626 * @arg @ref LL_RCC_MCO2SOURCE_SYSB
2627 * @param MCOxPrescaler This parameter can be one of the following values:
2628 * @arg @ref LL_RCC_MCO1_DIV_1
2629 * @arg @ref LL_RCC_MCO1_DIV_2
2630 * @arg @ref LL_RCC_MCO1_DIV_3
2631 * @arg @ref LL_RCC_MCO1_DIV_4
2632 * @arg @ref LL_RCC_MCO1_DIV_5
2633 * @arg @ref LL_RCC_MCO1_DIV_6
2634 * @arg @ref LL_RCC_MCO1_DIV_7
2635 * @arg @ref LL_RCC_MCO1_DIV_8
2636 * @arg @ref LL_RCC_MCO1_DIV_9
2637 * @arg @ref LL_RCC_MCO1_DIV_10
2638 * @arg @ref LL_RCC_MCO1_DIV_11
2639 * @arg @ref LL_RCC_MCO1_DIV_12
2640 * @arg @ref LL_RCC_MCO1_DIV_13
2641 * @arg @ref LL_RCC_MCO1_DIV_14
2642 * @arg @ref LL_RCC_MCO1_DIV_15
2643 * @arg @ref LL_RCC_MCO2_DIV_1
2644 * @arg @ref LL_RCC_MCO2_DIV_2
2645 * @arg @ref LL_RCC_MCO2_DIV_3
2646 * @arg @ref LL_RCC_MCO2_DIV_4
2647 * @arg @ref LL_RCC_MCO2_DIV_5
2648 * @arg @ref LL_RCC_MCO2_DIV_6
2649 * @arg @ref LL_RCC_MCO2_DIV_7
2650 * @arg @ref LL_RCC_MCO2_DIV_8
2651 * @arg @ref LL_RCC_MCO2_DIV_9
2652 * @arg @ref LL_RCC_MCO2_DIV_10
2653 * @arg @ref LL_RCC_MCO2_DIV_11
2654 * @arg @ref LL_RCC_MCO2_DIV_12
2655 * @arg @ref LL_RCC_MCO2_DIV_13
2656 * @arg @ref LL_RCC_MCO2_DIV_14
2657 * @arg @ref LL_RCC_MCO2_DIV_15
2658 * @arg @ref LL_RCC_MCO2_DIV_16
2659 * @retval None
2660 */
LL_RCC_ConfigMCO(uint32_t MCOxSource,uint32_t MCOxPrescaler)2661 __STATIC_INLINE void LL_RCC_ConfigMCO(uint32_t MCOxSource, uint32_t MCOxPrescaler)
2662 {
2663 MODIFY_REG(RCC->CCIPR5, ((MCOxSource | MCOxPrescaler) >> 16U), \
2664 (MCOxSource & (RCC_CCIPR5_MCO1SEL | RCC_CCIPR5_MCO2SEL)) | (MCOxPrescaler & (RCC_CCIPR5_MCO1PRE | RCC_CCIPR5_MCO2PRE)));
2665 }
2666
2667 /**
2668 * @}
2669 */
2670
2671 /** @defgroup RCC_LL_EF_Peripheral_Clock_Source Peripheral Clock Source
2672 * @{
2673 */
2674
2675 /**
2676 * @brief Configure periph clock source
2677 * @rmtoll CCIPR4 * LL_RCC_SetClockSource\n
2678 * CCIPR6 * LL_RCC_SetClockSource\n
2679 * CCIPR8 * LL_RCC_SetClockSource\n
2680 * CCIPR9 * LL_RCC_SetClockSource\n
2681 * CCIPR12 * LL_RCC_SetClockSource\n
2682 * CCIPR13 * LL_RCC_SetClockSource\n
2683 * CCIPR14 * LL_RCC_SetClockSource
2684 * @param ClkSource This parameter can be one of the following values:
2685 * @arg @ref LL_RCC_I2C1_CLKSOURCE_PCLK1
2686 * @arg @ref LL_RCC_I2C1_CLKSOURCE_CLKP
2687 * @arg @ref LL_RCC_I2C1_CLKSOURCE_IC10
2688 * @arg @ref LL_RCC_I2C1_CLKSOURCE_IC15
2689 * @arg @ref LL_RCC_I2C1_CLKSOURCE_MSI
2690 * @arg @ref LL_RCC_I2C1_CLKSOURCE_HSI
2691 * @arg @ref LL_RCC_I2C2_CLKSOURCE_PCLK1
2692 * @arg @ref LL_RCC_I2C2_CLKSOURCE_CLKP
2693 * @arg @ref LL_RCC_I2C2_CLKSOURCE_IC10
2694 * @arg @ref LL_RCC_I2C2_CLKSOURCE_IC15
2695 * @arg @ref LL_RCC_I2C2_CLKSOURCE_MSI
2696 * @arg @ref LL_RCC_I2C2_CLKSOURCE_HSI
2697 * @arg @ref LL_RCC_I2C3_CLKSOURCE_PCLK1
2698 * @arg @ref LL_RCC_I2C3_CLKSOURCE_CLKP
2699 * @arg @ref LL_RCC_I2C3_CLKSOURCE_IC10
2700 * @arg @ref LL_RCC_I2C3_CLKSOURCE_IC15
2701 * @arg @ref LL_RCC_I2C3_CLKSOURCE_MSI
2702 * @arg @ref LL_RCC_I2C3_CLKSOURCE_HSI
2703 * @arg @ref LL_RCC_I2C4_CLKSOURCE_PCLK1
2704 * @arg @ref LL_RCC_I2C4_CLKSOURCE_CLKP
2705 * @arg @ref LL_RCC_I2C4_CLKSOURCE_IC10
2706 * @arg @ref LL_RCC_I2C4_CLKSOURCE_IC15
2707 * @arg @ref LL_RCC_I2C4_CLKSOURCE_MSI
2708 * @arg @ref LL_RCC_I2C4_CLKSOURCE_HSI
2709 * @arg @ref LL_RCC_I3C1_CLKSOURCE_PCLK1
2710 * @arg @ref LL_RCC_I3C1_CLKSOURCE_CLKP
2711 * @arg @ref LL_RCC_I3C1_CLKSOURCE_IC10
2712 * @arg @ref LL_RCC_I3C1_CLKSOURCE_IC15
2713 * @arg @ref LL_RCC_I3C1_CLKSOURCE_MSI
2714 * @arg @ref LL_RCC_I3C1_CLKSOURCE_HSI
2715 * @arg @ref LL_RCC_I3C2_CLKSOURCE_PCLK1
2716 * @arg @ref LL_RCC_I3C2_CLKSOURCE_CLKP
2717 * @arg @ref LL_RCC_I3C2_CLKSOURCE_IC10
2718 * @arg @ref LL_RCC_I3C2_CLKSOURCE_IC15
2719 * @arg @ref LL_RCC_I3C2_CLKSOURCE_MSI
2720 * @arg @ref LL_RCC_I3C2_CLKSOURCE_HSI
2721 * @arg @ref LL_RCC_LPTIM1_CLKSOURCE_PCLK1
2722 * @arg @ref LL_RCC_LPTIM1_CLKSOURCE_CLKP
2723 * @arg @ref LL_RCC_LPTIM1_CLKSOURCE_IC15
2724 * @arg @ref LL_RCC_LPTIM1_CLKSOURCE_LSE
2725 * @arg @ref LL_RCC_LPTIM1_CLKSOURCE_LSI
2726 * @arg @ref LL_RCC_LPTIM1_CLKSOURCE_TIMG
2727 * @arg @ref LL_RCC_LPTIM2_CLKSOURCE_PCLK4
2728 * @arg @ref LL_RCC_LPTIM2_CLKSOURCE_CLKP
2729 * @arg @ref LL_RCC_LPTIM2_CLKSOURCE_IC15
2730 * @arg @ref LL_RCC_LPTIM2_CLKSOURCE_LSE
2731 * @arg @ref LL_RCC_LPTIM2_CLKSOURCE_LSI
2732 * @arg @ref LL_RCC_LPTIM2_CLKSOURCE_TIMG
2733 * @arg @ref LL_RCC_LPTIM3_CLKSOURCE_PCLK4
2734 * @arg @ref LL_RCC_LPTIM3_CLKSOURCE_CLKP
2735 * @arg @ref LL_RCC_LPTIM3_CLKSOURCE_IC15
2736 * @arg @ref LL_RCC_LPTIM3_CLKSOURCE_LSE
2737 * @arg @ref LL_RCC_LPTIM3_CLKSOURCE_LSI
2738 * @arg @ref LL_RCC_LPTIM3_CLKSOURCE_TIMG
2739 * @arg @ref LL_RCC_LPTIM4_CLKSOURCE_PCLK4
2740 * @arg @ref LL_RCC_LPTIM4_CLKSOURCE_CLKP
2741 * @arg @ref LL_RCC_LPTIM4_CLKSOURCE_IC15
2742 * @arg @ref LL_RCC_LPTIM4_CLKSOURCE_LSE
2743 * @arg @ref LL_RCC_LPTIM4_CLKSOURCE_LSI
2744 * @arg @ref LL_RCC_LPTIM4_CLKSOURCE_TIMG
2745 * @arg @ref LL_RCC_LPTIM5_CLKSOURCE_PCLK4
2746 * @arg @ref LL_RCC_LPTIM5_CLKSOURCE_CLKP
2747 * @arg @ref LL_RCC_LPTIM5_CLKSOURCE_IC15
2748 * @arg @ref LL_RCC_LPTIM5_CLKSOURCE_LSE
2749 * @arg @ref LL_RCC_LPTIM5_CLKSOURCE_LSI
2750 * @arg @ref LL_RCC_LPTIM5_CLKSOURCE_TIMG
2751 * @arg @ref LL_RCC_OTGPHY1_CLKSOURCE_HSE_DIV_2
2752 * @arg @ref LL_RCC_OTGPHY1_CLKSOURCE_CLKP
2753 * @arg @ref LL_RCC_OTGPHY1_CLKSOURCE_IC15
2754 * @arg @ref LL_RCC_OTGPHY1_CLKSOURCE_HSE_DIV_2_OSC
2755 * @arg @ref LL_RCC_OTGPHY1CKREF_CLKSOURCE_OTGPHY1
2756 * @arg @ref LL_RCC_OTGPHY1CKREF_CLKSOURCE_HSE_DIV_2_OSC
2757 * @arg @ref LL_RCC_OTGPHY2_CLKSOURCE_HSE_DIV_2
2758 * @arg @ref LL_RCC_OTGPHY2_CLKSOURCE_CLKP
2759 * @arg @ref LL_RCC_OTGPHY2_CLKSOURCE_IC15
2760 * @arg @ref LL_RCC_OTGPHY2_CLKSOURCE_HSE_DIV_2_OSC
2761 * @arg @ref LL_RCC_OTGPHY2CKREF_CLKSOURCE_OTGPHY2
2762 * @arg @ref LL_RCC_OTGPHY2CKREF_CLKSOURCE_HSE_DIV_2_OSC
2763 * @arg @ref LL_RCC_SAI1_CLKSOURCE_PCLK2
2764 * @arg @ref LL_RCC_SAI1_CLKSOURCE_CLKP
2765 * @arg @ref LL_RCC_SAI1_CLKSOURCE_IC7
2766 * @arg @ref LL_RCC_SAI1_CLKSOURCE_IC8
2767 * @arg @ref LL_RCC_SAI1_CLKSOURCE_MSI
2768 * @arg @ref LL_RCC_SAI1_CLKSOURCE_HSI
2769 * @arg @ref LL_RCC_SAI1_CLKSOURCE_I2S_CKIN
2770 * @arg @ref LL_RCC_SAI1_CLKSOURCE_SPDIFRX1
2771 * @arg @ref LL_RCC_SAI2_CLKSOURCE_PCLK2
2772 * @arg @ref LL_RCC_SAI2_CLKSOURCE_CLKP
2773 * @arg @ref LL_RCC_SAI2_CLKSOURCE_IC7
2774 * @arg @ref LL_RCC_SAI2_CLKSOURCE_IC8
2775 * @arg @ref LL_RCC_SAI2_CLKSOURCE_MSI
2776 * @arg @ref LL_RCC_SAI2_CLKSOURCE_HSI
2777 * @arg @ref LL_RCC_SAI2_CLKSOURCE_I2S_CKIN
2778 * @arg @ref LL_RCC_SAI2_CLKSOURCE_SPDIFRX1
2779 * @arg @ref LL_RCC_SDMMC1_CLKSOURCE_HCLK
2780 * @arg @ref LL_RCC_SDMMC1_CLKSOURCE_CLKP
2781 * @arg @ref LL_RCC_SDMMC1_CLKSOURCE_IC4
2782 * @arg @ref LL_RCC_SDMMC1_CLKSOURCE_IC5
2783 * @arg @ref LL_RCC_SDMMC2_CLKSOURCE_HCLK
2784 * @arg @ref LL_RCC_SDMMC2_CLKSOURCE_CLKP
2785 * @arg @ref LL_RCC_SDMMC2_CLKSOURCE_IC4
2786 * @arg @ref LL_RCC_SDMMC2_CLKSOURCE_IC5
2787 * @arg @ref LL_RCC_SPI1_CLKSOURCE_PCLK2
2788 * @arg @ref LL_RCC_SPI1_CLKSOURCE_CLKP
2789 * @arg @ref LL_RCC_SPI1_CLKSOURCE_IC8
2790 * @arg @ref LL_RCC_SPI1_CLKSOURCE_IC9
2791 * @arg @ref LL_RCC_SPI1_CLKSOURCE_MSI
2792 * @arg @ref LL_RCC_SPI1_CLKSOURCE_HSI
2793 * @arg @ref LL_RCC_SPI1_CLKSOURCE_I2S_CKIN
2794 * @arg @ref LL_RCC_SPI2_CLKSOURCE_PCLK1
2795 * @arg @ref LL_RCC_SPI2_CLKSOURCE_CLKP
2796 * @arg @ref LL_RCC_SPI2_CLKSOURCE_IC8
2797 * @arg @ref LL_RCC_SPI2_CLKSOURCE_IC9
2798 * @arg @ref LL_RCC_SPI2_CLKSOURCE_MSI
2799 * @arg @ref LL_RCC_SPI2_CLKSOURCE_HSI
2800 * @arg @ref LL_RCC_SPI2_CLKSOURCE_I2S_CKIN
2801 * @arg @ref LL_RCC_SPI3_CLKSOURCE_PCLK1
2802 * @arg @ref LL_RCC_SPI3_CLKSOURCE_CLKP
2803 * @arg @ref LL_RCC_SPI3_CLKSOURCE_IC8
2804 * @arg @ref LL_RCC_SPI3_CLKSOURCE_IC9
2805 * @arg @ref LL_RCC_SPI3_CLKSOURCE_MSI
2806 * @arg @ref LL_RCC_SPI3_CLKSOURCE_HSI
2807 * @arg @ref LL_RCC_SPI3_CLKSOURCE_I2S_CKIN
2808 * @arg @ref LL_RCC_SPI4_CLKSOURCE_PCLK2
2809 * @arg @ref LL_RCC_SPI4_CLKSOURCE_CLKP
2810 * @arg @ref LL_RCC_SPI4_CLKSOURCE_IC9
2811 * @arg @ref LL_RCC_SPI4_CLKSOURCE_IC14
2812 * @arg @ref LL_RCC_SPI4_CLKSOURCE_MSI
2813 * @arg @ref LL_RCC_SPI4_CLKSOURCE_HSI
2814 * @arg @ref LL_RCC_SPI4_CLKSOURCE_HSE
2815 * @arg @ref LL_RCC_SPI5_CLKSOURCE_PCLK2
2816 * @arg @ref LL_RCC_SPI5_CLKSOURCE_CLKP
2817 * @arg @ref LL_RCC_SPI5_CLKSOURCE_IC9
2818 * @arg @ref LL_RCC_SPI5_CLKSOURCE_IC14
2819 * @arg @ref LL_RCC_SPI5_CLKSOURCE_MSI
2820 * @arg @ref LL_RCC_SPI5_CLKSOURCE_HSI
2821 * @arg @ref LL_RCC_SPI5_CLKSOURCE_HSE
2822 * @arg @ref LL_RCC_SPI6_CLKSOURCE_PCLK4
2823 * @arg @ref LL_RCC_SPI6_CLKSOURCE_CLKP
2824 * @arg @ref LL_RCC_SPI6_CLKSOURCE_IC8
2825 * @arg @ref LL_RCC_SPI6_CLKSOURCE_IC9
2826 * @arg @ref LL_RCC_SPI6_CLKSOURCE_MSI
2827 * @arg @ref LL_RCC_SPI6_CLKSOURCE_HSI
2828 * @arg @ref LL_RCC_SPI6_CLKSOURCE_I2S_CKIN
2829 * @arg @ref LL_RCC_UART4_CLKSOURCE_PCLK1
2830 * @arg @ref LL_RCC_UART4_CLKSOURCE_CLKP
2831 * @arg @ref LL_RCC_UART4_CLKSOURCE_IC9
2832 * @arg @ref LL_RCC_UART4_CLKSOURCE_IC14
2833 * @arg @ref LL_RCC_UART4_CLKSOURCE_LSE
2834 * @arg @ref LL_RCC_UART4_CLKSOURCE_MSI
2835 * @arg @ref LL_RCC_UART4_CLKSOURCE_HSI
2836 * @arg @ref LL_RCC_UART5_CLKSOURCE_PCLK1
2837 * @arg @ref LL_RCC_UART5_CLKSOURCE_CLKP
2838 * @arg @ref LL_RCC_UART5_CLKSOURCE_IC9
2839 * @arg @ref LL_RCC_UART5_CLKSOURCE_IC14
2840 * @arg @ref LL_RCC_UART5_CLKSOURCE_LSE
2841 * @arg @ref LL_RCC_UART5_CLKSOURCE_MSI
2842 * @arg @ref LL_RCC_UART5_CLKSOURCE_HSI
2843 * @arg @ref LL_RCC_UART7_CLKSOURCE_PCLK1
2844 * @arg @ref LL_RCC_UART7_CLKSOURCE_CLKP
2845 * @arg @ref LL_RCC_UART7_CLKSOURCE_IC9
2846 * @arg @ref LL_RCC_UART7_CLKSOURCE_IC14
2847 * @arg @ref LL_RCC_UART7_CLKSOURCE_LSE
2848 * @arg @ref LL_RCC_UART7_CLKSOURCE_MSI
2849 * @arg @ref LL_RCC_UART7_CLKSOURCE_HSI
2850 * @arg @ref LL_RCC_UART8_CLKSOURCE_PCLK1
2851 * @arg @ref LL_RCC_UART8_CLKSOURCE_CLKP
2852 * @arg @ref LL_RCC_UART8_CLKSOURCE_IC9
2853 * @arg @ref LL_RCC_UART8_CLKSOURCE_IC14
2854 * @arg @ref LL_RCC_UART8_CLKSOURCE_LSE
2855 * @arg @ref LL_RCC_UART8_CLKSOURCE_MSI
2856 * @arg @ref LL_RCC_UART8_CLKSOURCE_HSI
2857 * @arg @ref LL_RCC_UART9_CLKSOURCE_PCLK2
2858 * @arg @ref LL_RCC_UART9_CLKSOURCE_CLKP
2859 * @arg @ref LL_RCC_UART9_CLKSOURCE_IC9
2860 * @arg @ref LL_RCC_UART9_CLKSOURCE_IC14
2861 * @arg @ref LL_RCC_UART9_CLKSOURCE_LSE
2862 * @arg @ref LL_RCC_UART9_CLKSOURCE_MSI
2863 * @arg @ref LL_RCC_UART9_CLKSOURCE_HSI
2864 * @arg @ref LL_RCC_USART1_CLKSOURCE_PCLK2
2865 * @arg @ref LL_RCC_USART1_CLKSOURCE_CLKP
2866 * @arg @ref LL_RCC_USART1_CLKSOURCE_IC9
2867 * @arg @ref LL_RCC_USART1_CLKSOURCE_IC14
2868 * @arg @ref LL_RCC_USART1_CLKSOURCE_LSE
2869 * @arg @ref LL_RCC_USART1_CLKSOURCE_MSI
2870 * @arg @ref LL_RCC_USART1_CLKSOURCE_HSI
2871 * @arg @ref LL_RCC_USART2_CLKSOURCE_PCLK1
2872 * @arg @ref LL_RCC_USART2_CLKSOURCE_CLKP
2873 * @arg @ref LL_RCC_USART2_CLKSOURCE_IC9
2874 * @arg @ref LL_RCC_USART2_CLKSOURCE_IC14
2875 * @arg @ref LL_RCC_USART2_CLKSOURCE_LSE
2876 * @arg @ref LL_RCC_USART2_CLKSOURCE_MSI
2877 * @arg @ref LL_RCC_USART2_CLKSOURCE_HSI
2878 * @arg @ref LL_RCC_USART3_CLKSOURCE_PCLK1
2879 * @arg @ref LL_RCC_USART3_CLKSOURCE_CLKP
2880 * @arg @ref LL_RCC_USART3_CLKSOURCE_IC9
2881 * @arg @ref LL_RCC_USART3_CLKSOURCE_IC14
2882 * @arg @ref LL_RCC_USART3_CLKSOURCE_LSE
2883 * @arg @ref LL_RCC_USART3_CLKSOURCE_MSI
2884 * @arg @ref LL_RCC_USART3_CLKSOURCE_HSI
2885 * @arg @ref LL_RCC_USART6_CLKSOURCE_PCLK2
2886 * @arg @ref LL_RCC_USART6_CLKSOURCE_CLKP
2887 * @arg @ref LL_RCC_USART6_CLKSOURCE_IC9
2888 * @arg @ref LL_RCC_USART6_CLKSOURCE_IC14
2889 * @arg @ref LL_RCC_USART6_CLKSOURCE_LSE
2890 * @arg @ref LL_RCC_USART6_CLKSOURCE_MSI
2891 * @arg @ref LL_RCC_USART6_CLKSOURCE_HSI
2892 * @arg @ref LL_RCC_USART10_CLKSOURCE_PCLK2
2893 * @arg @ref LL_RCC_USART10_CLKSOURCE_CLKP
2894 * @arg @ref LL_RCC_USART10_CLKSOURCE_IC9
2895 * @arg @ref LL_RCC_USART10_CLKSOURCE_IC14
2896 * @arg @ref LL_RCC_USART10_CLKSOURCE_LSE
2897 * @arg @ref LL_RCC_USART10_CLKSOURCE_MSI
2898 * @arg @ref LL_RCC_USART10_CLKSOURCE_HSI
2899 * @arg @ref LL_RCC_XSPI1_CLKSOURCE_HCLK
2900 * @arg @ref LL_RCC_XSPI1_CLKSOURCE_CLKP
2901 * @arg @ref LL_RCC_XSPI1_CLKSOURCE_IC3
2902 * @arg @ref LL_RCC_XSPI1_CLKSOURCE_IC4
2903 * @arg @ref LL_RCC_XSPI2_CLKSOURCE_HCLK
2904 * @arg @ref LL_RCC_XSPI2_CLKSOURCE_CLKP
2905 * @arg @ref LL_RCC_XSPI2_CLKSOURCE_IC3
2906 * @arg @ref LL_RCC_XSPI2_CLKSOURCE_IC4
2907 * @arg @ref LL_RCC_XSPI3_CLKSOURCE_HCLK
2908 * @arg @ref LL_RCC_XSPI3_CLKSOURCE_CLKP
2909 * @arg @ref LL_RCC_XSPI3_CLKSOURCE_IC3
2910 * @arg @ref LL_RCC_XSPI3_CLKSOURCE_IC4
2911 * @retval None
2912 */
LL_RCC_SetClockSource(uint32_t ClkSource)2913 __STATIC_INLINE void LL_RCC_SetClockSource(uint32_t ClkSource)
2914 {
2915 volatile uint32_t *pReg = (uint32_t *)((uint32_t)&RCC->CCIPR1 + LL_CLKSOURCE_REG(ClkSource));
2916 MODIFY_REG(*pReg, LL_CLKSOURCE_MASK(ClkSource), LL_CLKSOURCE_CONFIG(ClkSource));
2917 }
2918
2919 /**
2920 * @brief Set ADC prescaler
2921 * @rmtoll CCIPR1 ADCPRE LL_RCC_SetADCPrescaler
2922 * @param Prescaler This parameter must be a number between Min_Data = 0 and Max_Data = 255 for prescaler 1 to 256
2923 * @retval None
2924 */
LL_RCC_SetADCPrescaler(uint32_t Prescaler)2925 __STATIC_INLINE void LL_RCC_SetADCPrescaler(uint32_t Prescaler)
2926 {
2927 MODIFY_REG(RCC->CCIPR1, RCC_CCIPR1_ADCPRE, (Prescaler << RCC_CCIPR1_ADCPRE_Pos));
2928 }
2929
2930 /**
2931 * @brief Get ADC prescaler
2932 * @rmtoll CCIPR1 ADCPRE LL_RCC_GetADCPrescaler
2933 * @retval Returned value between Min_Data = 0 and Max_Data = 255 for prescaler 1 to 256
2934 */
LL_RCC_GetADCPrescaler(void)2935 __STATIC_INLINE uint32_t LL_RCC_GetADCPrescaler(void)
2936 {
2937 return (uint32_t)(READ_BIT(RCC->CCIPR1, RCC_CCIPR1_ADCPRE) >> RCC_CCIPR1_ADCPRE_Pos);
2938 }
2939
2940 /**
2941 * @brief Configure ADCx Kernel clock source
2942 * @rmtoll CCIPR1 ADC12SEL LL_RCC_SetADCClockSource
2943 * @param ClkSource This parameter can be one of the following values:
2944 * @arg @ref LL_RCC_ADC_CLKSOURCE_HCLK
2945 * @arg @ref LL_RCC_ADC_CLKSOURCE_CLKP
2946 * @arg @ref LL_RCC_ADC_CLKSOURCE_IC7
2947 * @arg @ref LL_RCC_ADC_CLKSOURCE_IC8
2948 * @arg @ref LL_RCC_ADC_CLKSOURCE_MSI
2949 * @arg @ref LL_RCC_ADC_CLKSOURCE_HSI
2950 * @arg @ref LL_RCC_ADC_CLKSOURCE_I2S_CKIN
2951 * @arg @ref LL_RCC_ADC_CLKSOURCE_TIMG
2952 * @retval None
2953 */
LL_RCC_SetADCClockSource(uint32_t ClkSource)2954 __STATIC_INLINE void LL_RCC_SetADCClockSource(uint32_t ClkSource)
2955 {
2956 MODIFY_REG(RCC->CCIPR1, RCC_CCIPR1_ADC12SEL, ClkSource);
2957 }
2958
2959 /**
2960 * @brief Configure ADFx Kernel clock source
2961 * @rmtoll CCIPR1 ADF1SEL LL_RCC_SetADFClockSource
2962 * @param ClkSource This parameter can be one of the following values:
2963 * @arg @ref LL_RCC_ADF1_CLKSOURCE_HCLK
2964 * @arg @ref LL_RCC_ADF1_CLKSOURCE_CLKP
2965 * @arg @ref LL_RCC_ADF1_CLKSOURCE_IC7
2966 * @arg @ref LL_RCC_ADF1_CLKSOURCE_IC8
2967 * @arg @ref LL_RCC_ADF1_CLKSOURCE_MSI
2968 * @arg @ref LL_RCC_ADF1_CLKSOURCE_HSI
2969 * @arg @ref LL_RCC_ADF1_CLKSOURCE_I2S_CKIN
2970 * @arg @ref LL_RCC_ADF1_CLKSOURCE_TIMG
2971 * @retval None
2972 */
LL_RCC_SetADFClockSource(uint32_t ClkSource)2973 __STATIC_INLINE void LL_RCC_SetADFClockSource(uint32_t ClkSource)
2974 {
2975 MODIFY_REG(RCC->CCIPR1, RCC_CCIPR1_ADF1SEL, ClkSource);
2976 }
2977
2978 /**
2979 * @brief Configure CLKP Kernel clock source
2980 * @rmtoll CCIPR7 PERSEL LL_RCC_SetCLKPClockSource
2981 * @param ClkSource This parameter can be one of the following values:
2982 * @arg @ref LL_RCC_CLKP_CLKSOURCE_HSI
2983 * @arg @ref LL_RCC_CLKP_CLKSOURCE_MSI
2984 * @arg @ref LL_RCC_CLKP_CLKSOURCE_HSE
2985 * @arg @ref LL_RCC_CLKP_CLKSOURCE_IC19
2986 * @arg @ref LL_RCC_CLKP_CLKSOURCE_IC5
2987 * @arg @ref LL_RCC_CLKP_CLKSOURCE_IC10
2988 * @arg @ref LL_RCC_CLKP_CLKSOURCE_IC15
2989 * @arg @ref LL_RCC_CLKP_CLKSOURCE_IC20
2990 * @retval None
2991 */
LL_RCC_SetCLKPClockSource(uint32_t ClkSource)2992 __STATIC_INLINE void LL_RCC_SetCLKPClockSource(uint32_t ClkSource)
2993 {
2994 MODIFY_REG(RCC->CCIPR7, RCC_CCIPR7_PERSEL, ClkSource);
2995 }
2996
2997 /**
2998 * @brief Configure DCMIPP Kernel clock source
2999 * @rmtoll CCIPR1 DCMIPPSEL LL_RCC_SetDCMIPPClockSource
3000 * @param ClkSource This parameter can be one of the following values:
3001 * @arg @ref LL_RCC_DCMIPP_CLKSOURCE_PCLK5
3002 * @arg @ref LL_RCC_DCMIPP_CLKSOURCE_CLKP
3003 * @arg @ref LL_RCC_DCMIPP_CLKSOURCE_IC17
3004 * @arg @ref LL_RCC_DCMIPP_CLKSOURCE_HSI
3005 * @retval None
3006 */
LL_RCC_SetDCMIPPClockSource(uint32_t ClkSource)3007 __STATIC_INLINE void LL_RCC_SetDCMIPPClockSource(uint32_t ClkSource)
3008 {
3009 MODIFY_REG(RCC->CCIPR1, RCC_CCIPR1_DCMIPPSEL, ClkSource);
3010 }
3011
3012 /**
3013 * @brief Configure ETHx Kernel clock source
3014 * @rmtoll CCIPR2 ETH1CLKSEL LL_RCC_SetETHClockSource
3015 * @param ClkSource This parameter can be one of the following values:
3016 * @arg @ref LL_RCC_ETH1_CLKSOURCE_HCLK
3017 * @arg @ref LL_RCC_ETH1_CLKSOURCE_CLKP
3018 * @arg @ref LL_RCC_ETH1_CLKSOURCE_IC12
3019 * @arg @ref LL_RCC_ETH1_CLKSOURCE_HSE
3020 * @retval None
3021 */
LL_RCC_SetETHClockSource(uint32_t ClkSource)3022 __STATIC_INLINE void LL_RCC_SetETHClockSource(uint32_t ClkSource)
3023 {
3024 MODIFY_REG(RCC->CCIPR2, RCC_CCIPR2_ETH1CLKSEL, ClkSource);
3025 }
3026
3027 /**
3028 * @brief Configure ETHx PTP Kernel clock source
3029 * @rmtoll CCIPR2 ETH1PTPSEL LL_RCC_SetETHPTPClockSource
3030 * @param ClkSource This parameter can be one of the following values:
3031 * @arg @ref LL_RCC_ETH1PTP_CLKSOURCE_HCLK
3032 * @arg @ref LL_RCC_ETH1PTP_CLKSOURCE_CLKP
3033 * @arg @ref LL_RCC_ETH1PTP_CLKSOURCE_IC13
3034 * @arg @ref LL_RCC_ETH1PTP_CLKSOURCE_HSE
3035 * @retval None
3036 */
LL_RCC_SetETHPTPClockSource(uint32_t ClkSource)3037 __STATIC_INLINE void LL_RCC_SetETHPTPClockSource(uint32_t ClkSource)
3038 {
3039 MODIFY_REG(RCC->CCIPR2, RCC_CCIPR2_ETH1PTPSEL, ClkSource);
3040 }
3041
3042 /**
3043 * @brief Configure ETHx PHY interface
3044 * @rmtoll CCIPR2 ETH1SEL LL_RCC_SetETHPHYInterface
3045 * @param Interface This parameter can be one of the following values:
3046 * @arg @ref LL_RCC_ETH1PHY_IF_MII
3047 * @arg @ref LL_RCC_ETH1PHY_IF_RGMII
3048 * @arg @ref LL_RCC_ETH1PHY_IF_RMII
3049 * @retval None
3050 */
LL_RCC_SetETHPHYInterface(uint32_t Interface)3051 __STATIC_INLINE void LL_RCC_SetETHPHYInterface(uint32_t Interface)
3052 {
3053 MODIFY_REG(RCC->CCIPR2, RCC_CCIPR2_ETH1SEL, Interface);
3054 }
3055
3056 /**
3057 * @brief Set ETH1 PTP Kernel clock divider
3058 * @rmtoll CCIPR2 ETH1PTPDIV LL_RCC_SetETH1PTPDivider
3059 * @param Divider This parameter can be one of the following values:
3060 * @arg @ref LL_RCC_ETH1PTP_DIV_1
3061 * @arg @ref LL_RCC_ETH1PTP_DIV_2
3062 * @arg @ref LL_RCC_ETH1PTP_DIV_3
3063 * @arg @ref LL_RCC_ETH1PTP_DIV_4
3064 * @arg @ref LL_RCC_ETH1PTP_DIV_5
3065 * @arg @ref LL_RCC_ETH1PTP_DIV_6
3066 * @arg @ref LL_RCC_ETH1PTP_DIV_7
3067 * @arg @ref LL_RCC_ETH1PTP_DIV_8
3068 * @arg @ref LL_RCC_ETH1PTP_DIV_9
3069 * @arg @ref LL_RCC_ETH1PTP_DIV_10
3070 * @arg @ref LL_RCC_ETH1PTP_DIV_11
3071 * @arg @ref LL_RCC_ETH1PTP_DIV_12
3072 * @arg @ref LL_RCC_ETH1PTP_DIV_13
3073 * @arg @ref LL_RCC_ETH1PTP_DIV_14
3074 * @arg @ref LL_RCC_ETH1PTP_DIV_15
3075 * @arg @ref LL_RCC_ETH1PTP_DIV_16
3076 * @retval None.
3077 */
LL_RCC_SetETH1PTPDivider(uint32_t Divider)3078 __STATIC_INLINE void LL_RCC_SetETH1PTPDivider(uint32_t Divider)
3079 {
3080 MODIFY_REG(RCC->CCIPR2, RCC_CCIPR2_ETH1PTPDIV, Divider);
3081 }
3082
3083 /**
3084 * @brief Get ETH1 PTP Kernel clock divider
3085 * @rmtoll CCIPR2 ETH1PTPDIV LL_RCC_GetETH1PTPDivider
3086 * @retval can be one of the following values:
3087 * @arg @ref LL_RCC_ETH1PTP_DIV_1
3088 * @arg @ref LL_RCC_ETH1PTP_DIV_2
3089 * @arg @ref LL_RCC_ETH1PTP_DIV_3
3090 * @arg @ref LL_RCC_ETH1PTP_DIV_4
3091 * @arg @ref LL_RCC_ETH1PTP_DIV_5
3092 * @arg @ref LL_RCC_ETH1PTP_DIV_6
3093 * @arg @ref LL_RCC_ETH1PTP_DIV_7
3094 * @arg @ref LL_RCC_ETH1PTP_DIV_8
3095 * @arg @ref LL_RCC_ETH1PTP_DIV_9
3096 * @arg @ref LL_RCC_ETH1PTP_DIV_10
3097 * @arg @ref LL_RCC_ETH1PTP_DIV_11
3098 * @arg @ref LL_RCC_ETH1PTP_DIV_12
3099 * @arg @ref LL_RCC_ETH1PTP_DIV_13
3100 * @arg @ref LL_RCC_ETH1PTP_DIV_14
3101 * @arg @ref LL_RCC_ETH1PTP_DIV_15
3102 * @arg @ref LL_RCC_ETH1PTP_DIV_16
3103 */
LL_RCC_GetETH1PTPDivider(void)3104 __STATIC_INLINE uint32_t LL_RCC_GetETH1PTPDivider(void)
3105 {
3106 return (READ_BIT(RCC->CCIPR2, RCC_CCIPR2_ETH1PTPDIV));
3107 }
3108
3109 /**
3110 * @brief Configure ETHx Reference RX Kernel clock source
3111 * @rmtoll CCIPR2 ETH1REFCLKSEL LL_RCC_SetETHREFRXClockSource
3112 * @param ClkSource This parameter can be one of the following values:
3113 * @arg @ref LL_RCC_ETH1REFRX_CLKSOURCE_EXT
3114 * @arg @ref LL_RCC_ETH1REFRX_CLKSOURCE_INT
3115 * @retval None
3116 */
LL_RCC_SetETHREFRXClockSource(uint32_t ClkSource)3117 __STATIC_INLINE void LL_RCC_SetETHREFRXClockSource(uint32_t ClkSource)
3118 {
3119 MODIFY_REG(RCC->CCIPR2, RCC_CCIPR2_ETH1REFCLKSEL, ClkSource);
3120 }
3121
3122 /**
3123 * @brief Configure ETHx Reference TX Kernel clock source
3124 * @rmtoll CCIPR2 ETH1GTXCLKSEL LL_RCC_SetETHREFTXClockSource
3125 * @param ClkSource This parameter can be one of the following values:
3126 * @arg @ref LL_RCC_ETH1REFTX_CLKSOURCE_EXT
3127 * @arg @ref LL_RCC_ETH1REFTX_CLKSOURCE_INT
3128 * @retval None
3129 */
LL_RCC_SetETHREFTXClockSource(uint32_t ClkSource)3130 __STATIC_INLINE void LL_RCC_SetETHREFTXClockSource(uint32_t ClkSource)
3131 {
3132 MODIFY_REG(RCC->CCIPR2, RCC_CCIPR2_ETH1GTXCLKSEL, ClkSource);
3133 }
3134
3135 /**
3136 * @brief Configure FDCANx Kernel clock source
3137 * @rmtoll CCIPR3 FDCANSEL LL_RCC_SetFDCANClockSource
3138 * @param ClkSource This parameter can be one of the following values:
3139 * @arg @ref LL_RCC_FDCAN_CLKSOURCE_PCLK1
3140 * @arg @ref LL_RCC_FDCAN_CLKSOURCE_CLKP
3141 * @arg @ref LL_RCC_FDCAN_CLKSOURCE_IC19
3142 * @arg @ref LL_RCC_FDCAN_CLKSOURCE_HSE
3143 * @retval None
3144 */
LL_RCC_SetFDCANClockSource(uint32_t ClkSource)3145 __STATIC_INLINE void LL_RCC_SetFDCANClockSource(uint32_t ClkSource)
3146 {
3147 MODIFY_REG(RCC->CCIPR3, RCC_CCIPR3_FDCANSEL, ClkSource);
3148 }
3149
3150 /**
3151 * @brief Configure FMCx Kernel clock source
3152 * @rmtoll CCIPR3 FMCSEL LL_RCC_SetFMCClockSource
3153 * @param ClkSource This parameter can be one of the following values:
3154 * @arg @ref LL_RCC_FMC_CLKSOURCE_HCLK
3155 * @arg @ref LL_RCC_FMC_CLKSOURCE_CLKP
3156 * @arg @ref LL_RCC_FMC_CLKSOURCE_IC3
3157 * @arg @ref LL_RCC_FMC_CLKSOURCE_IC4
3158 * @retval None
3159 */
LL_RCC_SetFMCClockSource(uint32_t ClkSource)3160 __STATIC_INLINE void LL_RCC_SetFMCClockSource(uint32_t ClkSource)
3161 {
3162 MODIFY_REG(RCC->CCIPR3, RCC_CCIPR3_FMCSEL, ClkSource);
3163 }
3164
3165 /**
3166 * @brief Configure I2Cx clock source
3167 * @rmtoll CCIPR4 I2C1SEL LL_RCC_SetI2CClockSource\n
3168 * @rmtoll CCIPR4 I2C2SEL LL_RCC_SetI2CClockSource\n
3169 * @rmtoll CCIPR4 I2C3SEL LL_RCC_SetI2CClockSource\n
3170 * @rmtoll CCIPR4 I2C4SEL LL_RCC_SetI2CClockSource
3171 * @param ClkSource This parameter can be one of the following values:
3172 * @arg @ref LL_RCC_I2C1_CLKSOURCE_PCLK1
3173 * @arg @ref LL_RCC_I2C1_CLKSOURCE_CLKP
3174 * @arg @ref LL_RCC_I2C1_CLKSOURCE_IC10
3175 * @arg @ref LL_RCC_I2C1_CLKSOURCE_IC15
3176 * @arg @ref LL_RCC_I2C1_CLKSOURCE_MSI
3177 * @arg @ref LL_RCC_I2C1_CLKSOURCE_HSI
3178 * @arg @ref LL_RCC_I2C2_CLKSOURCE_PCLK1
3179 * @arg @ref LL_RCC_I2C2_CLKSOURCE_CLKP
3180 * @arg @ref LL_RCC_I2C2_CLKSOURCE_IC10
3181 * @arg @ref LL_RCC_I2C2_CLKSOURCE_IC15
3182 * @arg @ref LL_RCC_I2C2_CLKSOURCE_MSI
3183 * @arg @ref LL_RCC_I2C2_CLKSOURCE_HSI
3184 * @arg @ref LL_RCC_I2C3_CLKSOURCE_PCLK1
3185 * @arg @ref LL_RCC_I2C3_CLKSOURCE_CLKP
3186 * @arg @ref LL_RCC_I2C3_CLKSOURCE_IC10
3187 * @arg @ref LL_RCC_I2C3_CLKSOURCE_IC15
3188 * @arg @ref LL_RCC_I2C3_CLKSOURCE_MSI
3189 * @arg @ref LL_RCC_I2C3_CLKSOURCE_HSI
3190 * @arg @ref LL_RCC_I2C4_CLKSOURCE_PCLK1
3191 * @arg @ref LL_RCC_I2C4_CLKSOURCE_CLKP
3192 * @arg @ref LL_RCC_I2C4_CLKSOURCE_IC10
3193 * @arg @ref LL_RCC_I2C4_CLKSOURCE_IC15
3194 * @arg @ref LL_RCC_I2C4_CLKSOURCE_MSI
3195 * @arg @ref LL_RCC_I2C4_CLKSOURCE_HSI
3196 * @retval None
3197 */
LL_RCC_SetI2CClockSource(uint32_t ClkSource)3198 __STATIC_INLINE void LL_RCC_SetI2CClockSource(uint32_t ClkSource)
3199 {
3200 LL_RCC_SetClockSource(ClkSource);
3201 }
3202
3203 /**
3204 * @brief Configure I3Cx clock source
3205 * @rmtoll CCIPR4 I3C1SEL LL_RCC_SetI3CClockSource\n
3206 * @rmtoll CCIPR4 I3C2SEL LL_RCC_SetI3CClockSource
3207 * @param ClkSource This parameter can be one of the following values:
3208 * @arg @ref LL_RCC_I3C1_CLKSOURCE_PCLK1
3209 * @arg @ref LL_RCC_I3C1_CLKSOURCE_CLKP
3210 * @arg @ref LL_RCC_I3C1_CLKSOURCE_IC10
3211 * @arg @ref LL_RCC_I3C1_CLKSOURCE_IC15
3212 * @arg @ref LL_RCC_I3C1_CLKSOURCE_MSI
3213 * @arg @ref LL_RCC_I3C1_CLKSOURCE_HSI
3214 * @arg @ref LL_RCC_I3C2_CLKSOURCE_PCLK1
3215 * @arg @ref LL_RCC_I3C2_CLKSOURCE_CLKP
3216 * @arg @ref LL_RCC_I3C2_CLKSOURCE_IC10
3217 * @arg @ref LL_RCC_I3C2_CLKSOURCE_IC15
3218 * @arg @ref LL_RCC_I3C2_CLKSOURCE_MSI
3219 * @arg @ref LL_RCC_I3C2_CLKSOURCE_HSI
3220 * @retval None
3221 */
LL_RCC_SetI3CClockSource(uint32_t ClkSource)3222 __STATIC_INLINE void LL_RCC_SetI3CClockSource(uint32_t ClkSource)
3223 {
3224 LL_RCC_SetClockSource(ClkSource);
3225 }
3226
3227 /**
3228 * @brief Configure LPTIMx clock source
3229 * @rmtoll CCIPR12 LPTIM1SEL LL_RCC_SetLPTIMClockSource\n
3230 * CCIPR12 LPTIM2SEL LL_RCC_SetLPTIMClockSource\n
3231 * CCIPR12 LPTIM3SEL LL_RCC_SetLPTIMClockSource\n
3232 * CCIPR12 LPTIM4SEL LL_RCC_SetLPTIMClockSource\n
3233 * CCIPR12 LPTIM5SEL LL_RCC_SetLPTIMClockSource
3234 * @param ClkSource This parameter can be one of the following values:
3235 * @arg @ref LL_RCC_LPTIM1_CLKSOURCE_PCLK1
3236 * @arg @ref LL_RCC_LPTIM1_CLKSOURCE_CLKP
3237 * @arg @ref LL_RCC_LPTIM1_CLKSOURCE_IC15
3238 * @arg @ref LL_RCC_LPTIM1_CLKSOURCE_LSE
3239 * @arg @ref LL_RCC_LPTIM1_CLKSOURCE_LSI
3240 * @arg @ref LL_RCC_LPTIM1_CLKSOURCE_TIMG
3241 * @arg @ref LL_RCC_LPTIM2_CLKSOURCE_PCLK4
3242 * @arg @ref LL_RCC_LPTIM2_CLKSOURCE_CLKP
3243 * @arg @ref LL_RCC_LPTIM2_CLKSOURCE_IC15
3244 * @arg @ref LL_RCC_LPTIM2_CLKSOURCE_LSE
3245 * @arg @ref LL_RCC_LPTIM2_CLKSOURCE_LSI
3246 * @arg @ref LL_RCC_LPTIM2_CLKSOURCE_TIMG
3247 * @arg @ref LL_RCC_LPTIM3_CLKSOURCE_PCLK4
3248 * @arg @ref LL_RCC_LPTIM3_CLKSOURCE_CLKP
3249 * @arg @ref LL_RCC_LPTIM3_CLKSOURCE_IC15
3250 * @arg @ref LL_RCC_LPTIM3_CLKSOURCE_LSE
3251 * @arg @ref LL_RCC_LPTIM3_CLKSOURCE_LSI
3252 * @arg @ref LL_RCC_LPTIM3_CLKSOURCE_TIMG
3253 * @arg @ref LL_RCC_LPTIM4_CLKSOURCE_PCLK4
3254 * @arg @ref LL_RCC_LPTIM4_CLKSOURCE_CLKP
3255 * @arg @ref LL_RCC_LPTIM4_CLKSOURCE_IC15
3256 * @arg @ref LL_RCC_LPTIM4_CLKSOURCE_LSE
3257 * @arg @ref LL_RCC_LPTIM4_CLKSOURCE_LSI
3258 * @arg @ref LL_RCC_LPTIM4_CLKSOURCE_TIMG
3259 * @arg @ref LL_RCC_LPTIM5_CLKSOURCE_PCLK4
3260 * @arg @ref LL_RCC_LPTIM5_CLKSOURCE_CLKP
3261 * @arg @ref LL_RCC_LPTIM5_CLKSOURCE_IC15
3262 * @arg @ref LL_RCC_LPTIM5_CLKSOURCE_LSE
3263 * @arg @ref LL_RCC_LPTIM5_CLKSOURCE_LSI
3264 * @arg @ref LL_RCC_LPTIM5_CLKSOURCE_TIMG
3265 * @retval None
3266 */
LL_RCC_SetLPTIMClockSource(uint32_t ClkSource)3267 __STATIC_INLINE void LL_RCC_SetLPTIMClockSource(uint32_t ClkSource)
3268 {
3269 LL_RCC_SetClockSource(ClkSource);
3270 }
3271
3272 /**
3273 * @brief Configure LPUARTx clock source
3274 * @rmtoll CCIPR14 LPUART1SEL LL_RCC_SetLPUARTClockSource
3275 * @param ClkSource This parameter can be one of the following values:
3276 * @arg @ref LL_RCC_LPUART1_CLKSOURCE_PCLK4
3277 * @arg @ref LL_RCC_LPUART1_CLKSOURCE_CLKP
3278 * @arg @ref LL_RCC_LPUART1_CLKSOURCE_IC9
3279 * @arg @ref LL_RCC_LPUART1_CLKSOURCE_IC14
3280 * @arg @ref LL_RCC_LPUART1_CLKSOURCE_LSE
3281 * @arg @ref LL_RCC_LPUART1_CLKSOURCE_MSI
3282 * @arg @ref LL_RCC_LPUART1_CLKSOURCE_HSI
3283 * @retval None
3284 */
LL_RCC_SetLPUARTClockSource(uint32_t ClkSource)3285 __STATIC_INLINE void LL_RCC_SetLPUARTClockSource(uint32_t ClkSource)
3286 {
3287 MODIFY_REG(RCC->CCIPR14, RCC_CCIPR14_LPUART1SEL, ClkSource);
3288 }
3289
3290 /**
3291 * @brief Configure LTDC clock source
3292 * @rmtoll CCIPR4 LTDCSEL LL_RCC_SetLTDCClockSource
3293 * @param ClkSource This parameter can be one of the following values:
3294 * @arg @ref LL_RCC_LTDC_CLKSOURCE_PCLK5
3295 * @arg @ref LL_RCC_LTDC_CLKSOURCE_CLKP
3296 * @arg @ref LL_RCC_LTDC_CLKSOURCE_IC16
3297 * @arg @ref LL_RCC_LTDC_CLKSOURCE_HSI
3298 * @retval None
3299 */
LL_RCC_SetLTDCClockSource(uint32_t ClkSource)3300 __STATIC_INLINE void LL_RCC_SetLTDCClockSource(uint32_t ClkSource)
3301 {
3302 MODIFY_REG(RCC->CCIPR4, RCC_CCIPR4_LTDCSEL, ClkSource);
3303 }
3304
3305 /**
3306 * @brief Configure MDFx Kernel clock source
3307 * @rmtoll CCIPR5 MDF1SEL LL_RCC_SetMDFClockSource
3308 * @param ClkSource This parameter can be one of the following values:
3309 * @arg @ref LL_RCC_MDF1_CLKSOURCE_HCLK
3310 * @arg @ref LL_RCC_MDF1_CLKSOURCE_CLKP
3311 * @arg @ref LL_RCC_MDF1_CLKSOURCE_IC7
3312 * @arg @ref LL_RCC_MDF1_CLKSOURCE_IC8
3313 * @arg @ref LL_RCC_MDF1_CLKSOURCE_MSI
3314 * @arg @ref LL_RCC_MDF1_CLKSOURCE_HSI
3315 * @arg @ref LL_RCC_MDF1_CLKSOURCE_I2S_CKIN
3316 * @arg @ref LL_RCC_MDF1_CLKSOURCE_TIMG
3317 * @retval None
3318 */
LL_RCC_SetMDFClockSource(uint32_t ClkSource)3319 __STATIC_INLINE void LL_RCC_SetMDFClockSource(uint32_t ClkSource)
3320 {
3321 MODIFY_REG(RCC->CCIPR5, RCC_CCIPR5_MDF1SEL, ClkSource);
3322 }
3323
3324 /**
3325 * @brief Configure OTGPHY clock source
3326 * @rmtoll CCIPR6 OTGPHY1SEL LL_RCC_SetOTGPHYClockSource\n
3327 * CCIPR6 OTGPHY2SEL LL_RCC_SetOTGPHYClockSource
3328 * @param ClkSource This parameter can be one of the following values:
3329 * @arg @ref LL_RCC_OTGPHY1_CLKSOURCE_HSE_DIV_2
3330 * @arg @ref LL_RCC_OTGPHY1_CLKSOURCE_CLKP
3331 * @arg @ref LL_RCC_OTGPHY1_CLKSOURCE_IC15
3332 * @arg @ref LL_RCC_OTGPHY1_CLKSOURCE_HSE_DIV_2_OSC
3333 * @arg @ref LL_RCC_OTGPHY2_CLKSOURCE_HSE_DIV_2
3334 * @arg @ref LL_RCC_OTGPHY2_CLKSOURCE_CLKP
3335 * @arg @ref LL_RCC_OTGPHY2_CLKSOURCE_IC15
3336 * @arg @ref LL_RCC_OTGPHY2_CLKSOURCE_HSE_DIV_2_OSC
3337 * @retval None
3338 */
LL_RCC_SetOTGPHYClockSource(uint32_t ClkSource)3339 __STATIC_INLINE void LL_RCC_SetOTGPHYClockSource(uint32_t ClkSource)
3340 {
3341 LL_RCC_SetClockSource(ClkSource);
3342 }
3343
3344 /**
3345 * @brief Configure OTGPHYCKREF clock source
3346 * @rmtoll CCIPR6 OTGPHY1CKREFSEL LL_RCC_SetOTGPHYCKREFClockSource\n
3347 * CCIPR6 OTGPHY2CKREFSEL LL_RCC_SetOTGPHYCKREFClockSource
3348 * @param ClkSource This parameter can be one of the following values:
3349 * @arg @ref LL_RCC_OTGPHY1CKREF_CLKSOURCE_OTGPHY1
3350 * @arg @ref LL_RCC_OTGPHY1CKREF_CLKSOURCE_HSE_DIV_2_OSC
3351 * @arg @ref LL_RCC_OTGPHY2CKREF_CLKSOURCE_OTGPHY2
3352 * @arg @ref LL_RCC_OTGPHY2CKREF_CLKSOURCE_HSE_DIV_2_OSC
3353 * @retval None
3354 */
LL_RCC_SetOTGPHYCKREFClockSource(uint32_t ClkSource)3355 __STATIC_INLINE void LL_RCC_SetOTGPHYCKREFClockSource(uint32_t ClkSource)
3356 {
3357 LL_RCC_SetClockSource(ClkSource);
3358 }
3359
3360 /**
3361 * @brief Configure PSSI clock source
3362 * @rmtoll CCIPR7 PSSISEL LL_RCC_SetPSSIClockSource
3363 * @param ClkSource This parameter can be one of the following values:
3364 * @arg @ref LL_RCC_PSSI_CLKSOURCE_HCLK
3365 * @arg @ref LL_RCC_PSSI_CLKSOURCE_CLKP
3366 * @arg @ref LL_RCC_PSSI_CLKSOURCE_IC20
3367 * @arg @ref LL_RCC_PSSI_CLKSOURCE_HSI
3368 * @retval None
3369 */
LL_RCC_SetPSSIClockSource(uint32_t ClkSource)3370 __STATIC_INLINE void LL_RCC_SetPSSIClockSource(uint32_t ClkSource)
3371 {
3372 MODIFY_REG(RCC->CCIPR7, RCC_CCIPR7_PSSISEL, ClkSource);
3373 }
3374
3375 /**
3376 * @brief Configure SAIx clock source
3377 * @rmtoll CCIPR7 SAI1SEL LL_RCC_SetSAIClockSource\n
3378 * CCIPR7 SAI2SEL LL_RCC_SetSAIClockSource
3379 * @param ClkSource This parameter can be one of the following values:
3380 * @arg @ref LL_RCC_SAI1_CLKSOURCE_PCLK2
3381 * @arg @ref LL_RCC_SAI1_CLKSOURCE_CLKP
3382 * @arg @ref LL_RCC_SAI1_CLKSOURCE_IC7
3383 * @arg @ref LL_RCC_SAI1_CLKSOURCE_IC8
3384 * @arg @ref LL_RCC_SAI1_CLKSOURCE_MSI
3385 * @arg @ref LL_RCC_SAI1_CLKSOURCE_HSI
3386 * @arg @ref LL_RCC_SAI1_CLKSOURCE_I2S_CKIN
3387 * @arg @ref LL_RCC_SAI1_CLKSOURCE_SPDIFRX1
3388 * @arg @ref LL_RCC_SAI2_CLKSOURCE_PCLK2
3389 * @arg @ref LL_RCC_SAI2_CLKSOURCE_CLKP
3390 * @arg @ref LL_RCC_SAI2_CLKSOURCE_IC7
3391 * @arg @ref LL_RCC_SAI2_CLKSOURCE_IC8
3392 * @arg @ref LL_RCC_SAI2_CLKSOURCE_MSI
3393 * @arg @ref LL_RCC_SAI2_CLKSOURCE_HSI
3394 * @arg @ref LL_RCC_SAI2_CLKSOURCE_I2S_CKIN
3395 * @arg @ref LL_RCC_SAI2_CLKSOURCE_SPDIFRX1
3396 * @retval None
3397 */
LL_RCC_SetSAIClockSource(uint32_t ClkSource)3398 __STATIC_INLINE void LL_RCC_SetSAIClockSource(uint32_t ClkSource)
3399 {
3400 LL_RCC_SetClockSource(ClkSource);
3401 }
3402
3403 /**
3404 * @brief Configure SDMMCx clock source
3405 * @rmtoll CCIPR8 SDMMC1SEL LL_RCC_SetSDMMCClockSource\n
3406 * CCIPR8 SDMMC2SEL LL_RCC_SetSDMMCClockSource
3407 * @param ClkSource This parameter can be one of the following values:
3408 * @arg @ref LL_RCC_SDMMC1_CLKSOURCE_HCLK
3409 * @arg @ref LL_RCC_SDMMC1_CLKSOURCE_CLKP
3410 * @arg @ref LL_RCC_SDMMC1_CLKSOURCE_IC4
3411 * @arg @ref LL_RCC_SDMMC1_CLKSOURCE_IC5
3412 * @arg @ref LL_RCC_SDMMC2_CLKSOURCE_HCLK
3413 * @arg @ref LL_RCC_SDMMC2_CLKSOURCE_CLKP
3414 * @arg @ref LL_RCC_SDMMC2_CLKSOURCE_IC4
3415 * @arg @ref LL_RCC_SDMMC2_CLKSOURCE_IC5
3416 * @retval None
3417 */
LL_RCC_SetSDMMCClockSource(uint32_t ClkSource)3418 __STATIC_INLINE void LL_RCC_SetSDMMCClockSource(uint32_t ClkSource)
3419 {
3420 LL_RCC_SetClockSource(ClkSource);
3421 }
3422
3423 /**
3424 * @brief Configure SPDIFRX1 Kernel clock source
3425 * @rmtoll CCIPR9 SPDIFRX1SEL LL_RCC_SetSPDIFRXClockSource
3426 * @param ClkSource This parameter can be one of the following values:
3427 * @arg @ref LL_RCC_SPDIFRX1_CLKSOURCE_PCLK1
3428 * @arg @ref LL_RCC_SPDIFRX1_CLKSOURCE_CLKP
3429 * @arg @ref LL_RCC_SPDIFRX1_CLKSOURCE_IC7
3430 * @arg @ref LL_RCC_SPDIFRX1_CLKSOURCE_IC8
3431 * @arg @ref LL_RCC_SPDIFRX1_CLKSOURCE_MSI
3432 * @arg @ref LL_RCC_SPDIFRX1_CLKSOURCE_HSI
3433 * @arg @ref LL_RCC_SPDIFRX1_CLKSOURCE_I2S_CKIN
3434 * @retval None
3435 */
LL_RCC_SetSPDIFRXClockSource(uint32_t ClkSource)3436 __STATIC_INLINE void LL_RCC_SetSPDIFRXClockSource(uint32_t ClkSource)
3437 {
3438 MODIFY_REG(RCC->CCIPR9, RCC_CCIPR9_SPDIFRX1SEL, ClkSource);
3439 }
3440
3441 /**
3442 * @brief Configure SPIx Kernel clock source
3443 * @rmtoll CCIPR9 SPI1SEL LL_RCC_SetSPIClockSource\n
3444 * CCIPR9 SPI2SEL LL_RCC_SetSPIClockSource\n
3445 * CCIPR9 SPI3SEL LL_RCC_SetSPIClockSource\n
3446 * CCIPR9 SPI4SEL LL_RCC_SetSPIClockSource\n
3447 * CCIPR9 SPI5SEL LL_RCC_SetSPIClockSource\n
3448 * CCIPR9 SPI6SEL LL_RCC_SetSPIClockSource
3449 * @param ClkSource This parameter can be one of the following values:
3450 * @arg @ref LL_RCC_SPI1_CLKSOURCE_PCLK2
3451 * @arg @ref LL_RCC_SPI1_CLKSOURCE_CLKP
3452 * @arg @ref LL_RCC_SPI1_CLKSOURCE_IC8
3453 * @arg @ref LL_RCC_SPI1_CLKSOURCE_IC9
3454 * @arg @ref LL_RCC_SPI1_CLKSOURCE_MSI
3455 * @arg @ref LL_RCC_SPI1_CLKSOURCE_HSI
3456 * @arg @ref LL_RCC_SPI1_CLKSOURCE_I2S_CKIN
3457 * @arg @ref LL_RCC_SPI2_CLKSOURCE_PCLK1
3458 * @arg @ref LL_RCC_SPI2_CLKSOURCE_CLKP
3459 * @arg @ref LL_RCC_SPI2_CLKSOURCE_IC8
3460 * @arg @ref LL_RCC_SPI2_CLKSOURCE_IC9
3461 * @arg @ref LL_RCC_SPI2_CLKSOURCE_MSI
3462 * @arg @ref LL_RCC_SPI2_CLKSOURCE_HSI
3463 * @arg @ref LL_RCC_SPI2_CLKSOURCE_I2S_CKIN
3464 * @arg @ref LL_RCC_SPI3_CLKSOURCE_PCLK1
3465 * @arg @ref LL_RCC_SPI3_CLKSOURCE_CLKP
3466 * @arg @ref LL_RCC_SPI3_CLKSOURCE_IC8
3467 * @arg @ref LL_RCC_SPI3_CLKSOURCE_IC9
3468 * @arg @ref LL_RCC_SPI3_CLKSOURCE_MSI
3469 * @arg @ref LL_RCC_SPI3_CLKSOURCE_HSI
3470 * @arg @ref LL_RCC_SPI3_CLKSOURCE_I2S_CKIN
3471 * @arg @ref LL_RCC_SPI4_CLKSOURCE_PCLK2
3472 * @arg @ref LL_RCC_SPI4_CLKSOURCE_CLKP
3473 * @arg @ref LL_RCC_SPI4_CLKSOURCE_IC9
3474 * @arg @ref LL_RCC_SPI4_CLKSOURCE_IC14
3475 * @arg @ref LL_RCC_SPI4_CLKSOURCE_MSI
3476 * @arg @ref LL_RCC_SPI4_CLKSOURCE_HSI
3477 * @arg @ref LL_RCC_SPI4_CLKSOURCE_HSE
3478 * @arg @ref LL_RCC_SPI5_CLKSOURCE_PCLK2
3479 * @arg @ref LL_RCC_SPI5_CLKSOURCE_CLKP
3480 * @arg @ref LL_RCC_SPI5_CLKSOURCE_IC9
3481 * @arg @ref LL_RCC_SPI5_CLKSOURCE_IC14
3482 * @arg @ref LL_RCC_SPI5_CLKSOURCE_MSI
3483 * @arg @ref LL_RCC_SPI5_CLKSOURCE_HSI
3484 * @arg @ref LL_RCC_SPI5_CLKSOURCE_HSE
3485 * @arg @ref LL_RCC_SPI6_CLKSOURCE_PCLK4
3486 * @arg @ref LL_RCC_SPI6_CLKSOURCE_CLKP
3487 * @arg @ref LL_RCC_SPI6_CLKSOURCE_IC8
3488 * @arg @ref LL_RCC_SPI6_CLKSOURCE_IC9
3489 * @arg @ref LL_RCC_SPI6_CLKSOURCE_MSI
3490 * @arg @ref LL_RCC_SPI6_CLKSOURCE_HSI
3491 * @arg @ref LL_RCC_SPI6_CLKSOURCE_I2S_CKIN
3492 * @retval None
3493 */
LL_RCC_SetSPIClockSource(uint32_t ClkSource)3494 __STATIC_INLINE void LL_RCC_SetSPIClockSource(uint32_t ClkSource)
3495 {
3496 LL_RCC_SetClockSource(ClkSource);
3497 }
3498
3499 /**
3500 * @brief Configure USARTx clock source
3501 * @rmtoll CCIPR13 USART1SEL LL_RCC_SetUSARTClockSource\n
3502 * CCIPR13 USART2SEL LL_RCC_SetUSARTClockSource\n
3503 * CCIPR13 USART3SEL LL_RCC_SetUSARTClockSource\n
3504 * CCIPR13 USART6SEL LL_RCC_SetUSARTClockSource\n
3505 * CCIPR14 USART10SEL LL_RCC_SetUSARTClockSource
3506 * @param ClkSource This parameter can be one of the following values:
3507 * @arg @ref LL_RCC_USART1_CLKSOURCE_PCLK2
3508 * @arg @ref LL_RCC_USART1_CLKSOURCE_CLKP
3509 * @arg @ref LL_RCC_USART1_CLKSOURCE_IC9
3510 * @arg @ref LL_RCC_USART1_CLKSOURCE_IC14
3511 * @arg @ref LL_RCC_USART1_CLKSOURCE_LSE
3512 * @arg @ref LL_RCC_USART1_CLKSOURCE_MSI
3513 * @arg @ref LL_RCC_USART1_CLKSOURCE_HSI
3514 * @arg @ref LL_RCC_USART2_CLKSOURCE_PCLK1
3515 * @arg @ref LL_RCC_USART2_CLKSOURCE_CLKP
3516 * @arg @ref LL_RCC_USART2_CLKSOURCE_IC9
3517 * @arg @ref LL_RCC_USART2_CLKSOURCE_IC14
3518 * @arg @ref LL_RCC_USART2_CLKSOURCE_LSE
3519 * @arg @ref LL_RCC_USART2_CLKSOURCE_MSI
3520 * @arg @ref LL_RCC_USART2_CLKSOURCE_HSI
3521 * @arg @ref LL_RCC_USART3_CLKSOURCE_PCLK1
3522 * @arg @ref LL_RCC_USART3_CLKSOURCE_CLKP
3523 * @arg @ref LL_RCC_USART3_CLKSOURCE_IC9
3524 * @arg @ref LL_RCC_USART3_CLKSOURCE_IC14
3525 * @arg @ref LL_RCC_USART3_CLKSOURCE_LSE
3526 * @arg @ref LL_RCC_USART3_CLKSOURCE_MSI
3527 * @arg @ref LL_RCC_USART3_CLKSOURCE_HSI
3528 * @arg @ref LL_RCC_USART6_CLKSOURCE_PCLK2
3529 * @arg @ref LL_RCC_USART6_CLKSOURCE_CLKP
3530 * @arg @ref LL_RCC_USART6_CLKSOURCE_IC9
3531 * @arg @ref LL_RCC_USART6_CLKSOURCE_IC14
3532 * @arg @ref LL_RCC_USART6_CLKSOURCE_LSE
3533 * @arg @ref LL_RCC_USART6_CLKSOURCE_MSI
3534 * @arg @ref LL_RCC_USART6_CLKSOURCE_HSI
3535 * @arg @ref LL_RCC_USART10_CLKSOURCE_PCLK2
3536 * @arg @ref LL_RCC_USART10_CLKSOURCE_CLKP
3537 * @arg @ref LL_RCC_USART10_CLKSOURCE_IC9
3538 * @arg @ref LL_RCC_USART10_CLKSOURCE_IC14
3539 * @arg @ref LL_RCC_USART10_CLKSOURCE_LSE
3540 * @arg @ref LL_RCC_USART10_CLKSOURCE_MSI
3541 * @arg @ref LL_RCC_USART10_CLKSOURCE_HSI
3542 * @retval None
3543 */
LL_RCC_SetUSARTClockSource(uint32_t ClkSource)3544 __STATIC_INLINE void LL_RCC_SetUSARTClockSource(uint32_t ClkSource)
3545 {
3546 LL_RCC_SetClockSource(ClkSource);
3547 }
3548
3549 /**
3550 * @brief Configure UARTx clock source
3551 * @rmtoll CCIPR13 UART4SEL LL_RCC_SetUARTClockSource\n
3552 * CCIPR13 UART5SEL LL_RCC_SetUARTClockSource\n
3553 * CCIPR13 UART7SEL LL_RCC_SetUARTClockSource\n
3554 * CCIPR13 UART8SEL LL_RCC_SetUARTClockSource\n
3555 * CCIPR14 UART9SEL LL_RCC_SetUARTClockSource
3556 * @param ClkSource This parameter can be one of the following values:
3557 * @arg @ref LL_RCC_UART4_CLKSOURCE_PCLK1
3558 * @arg @ref LL_RCC_UART4_CLKSOURCE_CLKP
3559 * @arg @ref LL_RCC_UART4_CLKSOURCE_IC9
3560 * @arg @ref LL_RCC_UART4_CLKSOURCE_IC14
3561 * @arg @ref LL_RCC_UART4_CLKSOURCE_LSE
3562 * @arg @ref LL_RCC_UART4_CLKSOURCE_MSI
3563 * @arg @ref LL_RCC_UART4_CLKSOURCE_HSI
3564 * @arg @ref LL_RCC_UART5_CLKSOURCE_PCLK1
3565 * @arg @ref LL_RCC_UART5_CLKSOURCE_CLKP
3566 * @arg @ref LL_RCC_UART5_CLKSOURCE_IC9
3567 * @arg @ref LL_RCC_UART5_CLKSOURCE_IC14
3568 * @arg @ref LL_RCC_UART5_CLKSOURCE_LSE
3569 * @arg @ref LL_RCC_UART5_CLKSOURCE_MSI
3570 * @arg @ref LL_RCC_UART5_CLKSOURCE_HSI
3571 * @arg @ref LL_RCC_UART7_CLKSOURCE_PCLK1
3572 * @arg @ref LL_RCC_UART7_CLKSOURCE_CLKP
3573 * @arg @ref LL_RCC_UART7_CLKSOURCE_IC9
3574 * @arg @ref LL_RCC_UART7_CLKSOURCE_IC14
3575 * @arg @ref LL_RCC_UART7_CLKSOURCE_LSE
3576 * @arg @ref LL_RCC_UART7_CLKSOURCE_MSI
3577 * @arg @ref LL_RCC_UART7_CLKSOURCE_HSI
3578 * @arg @ref LL_RCC_UART8_CLKSOURCE_PCLK1
3579 * @arg @ref LL_RCC_UART8_CLKSOURCE_CLKP
3580 * @arg @ref LL_RCC_UART8_CLKSOURCE_IC9
3581 * @arg @ref LL_RCC_UART8_CLKSOURCE_IC14
3582 * @arg @ref LL_RCC_UART8_CLKSOURCE_LSE
3583 * @arg @ref LL_RCC_UART8_CLKSOURCE_MSI
3584 * @arg @ref LL_RCC_UART8_CLKSOURCE_HSI
3585 * @arg @ref LL_RCC_UART9_CLKSOURCE_PCLK2
3586 * @arg @ref LL_RCC_UART9_CLKSOURCE_CLKP
3587 * @arg @ref LL_RCC_UART9_CLKSOURCE_IC9
3588 * @arg @ref LL_RCC_UART9_CLKSOURCE_IC14
3589 * @arg @ref LL_RCC_UART9_CLKSOURCE_LSE
3590 * @arg @ref LL_RCC_UART9_CLKSOURCE_MSI
3591 * @arg @ref LL_RCC_UART9_CLKSOURCE_HSI
3592 * @retval None
3593 */
LL_RCC_SetUARTClockSource(uint32_t ClkSource)3594 __STATIC_INLINE void LL_RCC_SetUARTClockSource(uint32_t ClkSource)
3595 {
3596 LL_RCC_SetClockSource(ClkSource);
3597 }
3598
3599 /**
3600 * @brief Configure USBx clock source
3601 * @rmtoll CCIPR6 OTGPHY1SEL LL_RCC_GetUSBClockSource\n
3602 * CCIPR6 OTGPHY1CKREFSEL LL_RCC_GetUSBClockSource\n
3603 * CCIPR6 OTGPHY2SEL LL_RCC_GetUSBClockSource\n
3604 * CCIPR6 OTGPHY2CKREFSEL LL_RCC_GetUSBClockSource\n
3605 * @param ClkSource This parameter can be one of the following values:
3606 * @arg @ref LL_RCC_OTGPHY1_CLKSOURCE_HSE_DIV_2
3607 * @arg @ref LL_RCC_OTGPHY1_CLKSOURCE_CLKP
3608 * @arg @ref LL_RCC_OTGPHY1_CLKSOURCE_IC15
3609 * @arg @ref LL_RCC_OTGPHY1_CLKSOURCE_HSE_DIV_2_OSC
3610 * @arg @ref LL_RCC_OTGPHY1CKREF_CLKSOURCE_OTGPHY1
3611 * @arg @ref LL_RCC_OTGPHY1CKREF_CLKSOURCE_HSE_DIV_2_OSC
3612 * @arg @ref LL_RCC_OTGPHY2_CLKSOURCE_HSE_DIV_2
3613 * @arg @ref LL_RCC_OTGPHY2_CLKSOURCE_CLKP
3614 * @arg @ref LL_RCC_OTGPHY2_CLKSOURCE_IC15
3615 * @arg @ref LL_RCC_OTGPHY2_CLKSOURCE_HSE_DIV_2_OSC
3616 * @arg @ref LL_RCC_OTGPHY2CKREF_CLKSOURCE_OTGPHY2
3617 * @arg @ref LL_RCC_OTGPHY2CKREF_CLKSOURCE_HSE_DIV_2_OSC
3618 * @retval None
3619 */
LL_RCC_SetUSBClockSource(uint32_t ClkSource)3620 __STATIC_INLINE void LL_RCC_SetUSBClockSource(uint32_t ClkSource)
3621 {
3622 LL_RCC_SetClockSource(ClkSource);
3623 }
3624
3625 /**
3626 * @brief Configure XSPIx Kernel clock source
3627 * @rmtoll CCIPR6 XSPI1SEL LL_RCC_SetXSPIClockSource\n
3628 * CCIPR6 XSPI2SEL LL_RCC_SetXSPIClockSource\n
3629 * CCIPR6 XSPI3SEL LL_RCC_SetXSPIClockSource
3630 * @param ClkSource This parameter can be one of the following values:
3631 * @arg @ref LL_RCC_XSPI1_CLKSOURCE_HCLK
3632 * @arg @ref LL_RCC_XSPI1_CLKSOURCE_CLKP
3633 * @arg @ref LL_RCC_XSPI1_CLKSOURCE_IC3
3634 * @arg @ref LL_RCC_XSPI1_CLKSOURCE_IC4
3635 * @arg @ref LL_RCC_XSPI2_CLKSOURCE_HCLK
3636 * @arg @ref LL_RCC_XSPI2_CLKSOURCE_CLKP
3637 * @arg @ref LL_RCC_XSPI2_CLKSOURCE_IC3
3638 * @arg @ref LL_RCC_XSPI2_CLKSOURCE_IC4
3639 * @arg @ref LL_RCC_XSPI3_CLKSOURCE_HCLK
3640 * @arg @ref LL_RCC_XSPI3_CLKSOURCE_CLKP
3641 * @arg @ref LL_RCC_XSPI3_CLKSOURCE_IC3
3642 * @arg @ref LL_RCC_XSPI3_CLKSOURCE_IC4
3643 * @retval None
3644 */
LL_RCC_SetXSPIClockSource(uint32_t ClkSource)3645 __STATIC_INLINE void LL_RCC_SetXSPIClockSource(uint32_t ClkSource)
3646 {
3647 LL_RCC_SetClockSource(ClkSource);
3648 }
3649
3650 /**
3651 * @brief Get periph clock source
3652 * @rmtoll CCIPR1 * LL_RCC_GetClockSource\n
3653 * CCIPR3 * LL_RCC_GetClockSource\n
3654 * CCIPR4 * LL_RCC_GetClockSource\n
3655 * CCIPR6 * LL_RCC_GetClockSource\n
3656 * CCIPR7 * LL_RCC_GetClockSource\n
3657 * CCIPR8 * LL_RCC_GetClockSource\n
3658 * CCIPR9 * LL_RCC_GetClockSource\n
3659 * CCIPR12 * LL_RCC_GetClockSource\n
3660 * CCIPR13 * LL_RCC_GetClockSource\n
3661 * CCIPR14 * LL_RCC_GetClockSource
3662 * @param Periph This parameter can be one of the following values:
3663 * @arg @ref LL_RCC_I2C1_CLKSOURCE
3664 * @arg @ref LL_RCC_I2C2_CLKSOURCE
3665 * @arg @ref LL_RCC_I2C3_CLKSOURCE
3666 * @arg @ref LL_RCC_I2C4_CLKSOURCE
3667 * @arg @ref LL_RCC_I3C1_CLKSOURCE
3668 * @arg @ref LL_RCC_I3C2_CLKSOURCE
3669 * @arg @ref LL_RCC_LPTIM1_CLKSOURCE
3670 * @arg @ref LL_RCC_LPTIM2_CLKSOURCE
3671 * @arg @ref LL_RCC_LPTIM3_CLKSOURCE
3672 * @arg @ref LL_RCC_LPTIM4_CLKSOURCE
3673 * @arg @ref LL_RCC_LPTIM5_CLKSOURCE
3674 * @arg @ref LL_RCC_OTGPHY1_CLKSOURCE
3675 * @arg @ref LL_RCC_OTGPHY1CKREF_CLKSOURCE
3676 * @arg @ref LL_RCC_OTGPHY2_CLKSOURCE
3677 * @arg @ref LL_RCC_OTGPHY2CKREF_CLKSOURCE
3678 * @arg @ref LL_RCC_SAI1_CLKSOURCE
3679 * @arg @ref LL_RCC_SAI2_CLKSOURCE
3680 * @arg @ref LL_RCC_SDMMC1_CLKSOURCE
3681 * @arg @ref LL_RCC_SDMMC2_CLKSOURCE
3682 * @arg @ref LL_RCC_SPI1_CLKSOURCE
3683 * @arg @ref LL_RCC_SPI2_CLKSOURCE
3684 * @arg @ref LL_RCC_SPI3_CLKSOURCE
3685 * @arg @ref LL_RCC_SPI4_CLKSOURCE
3686 * @arg @ref LL_RCC_SPI5_CLKSOURCE
3687 * @arg @ref LL_RCC_SPI6_CLKSOURCE
3688 * @arg @ref LL_RCC_UART4_CLKSOURCE
3689 * @arg @ref LL_RCC_UART5_CLKSOURCE
3690 * @arg @ref LL_RCC_UART7_CLKSOURCE
3691 * @arg @ref LL_RCC_UART8_CLKSOURCE
3692 * @arg @ref LL_RCC_UART9_CLKSOURCE
3693 * @arg @ref LL_RCC_USART1_CLKSOURCE
3694 * @arg @ref LL_RCC_USART2_CLKSOURCE
3695 * @arg @ref LL_RCC_USART3_CLKSOURCE
3696 * @arg @ref LL_RCC_USART6_CLKSOURCE
3697 * @arg @ref LL_RCC_USART10_CLKSOURCE
3698 * @arg @ref LL_RCC_XSPI1_CLKSOURCE
3699 * @arg @ref LL_RCC_XSPI2_CLKSOURCE
3700 * @arg @ref LL_RCC_XSPI3_CLKSOURCE
3701 * @retval Returned value can be one of the following values:
3702 * @arg @ref LL_RCC_I2C1_CLKSOURCE_PCLK1
3703 * @arg @ref LL_RCC_I2C1_CLKSOURCE_CLKP
3704 * @arg @ref LL_RCC_I2C1_CLKSOURCE_IC10
3705 * @arg @ref LL_RCC_I2C1_CLKSOURCE_IC15
3706 * @arg @ref LL_RCC_I2C1_CLKSOURCE_MSI
3707 * @arg @ref LL_RCC_I2C1_CLKSOURCE_HSI
3708 * @arg @ref LL_RCC_I2C2_CLKSOURCE_PCLK1
3709 * @arg @ref LL_RCC_I2C2_CLKSOURCE_CLKP
3710 * @arg @ref LL_RCC_I2C2_CLKSOURCE_IC10
3711 * @arg @ref LL_RCC_I2C2_CLKSOURCE_IC15
3712 * @arg @ref LL_RCC_I2C2_CLKSOURCE_MSI
3713 * @arg @ref LL_RCC_I2C2_CLKSOURCE_HSI
3714 * @arg @ref LL_RCC_I2C3_CLKSOURCE_PCLK1
3715 * @arg @ref LL_RCC_I2C3_CLKSOURCE_CLKP
3716 * @arg @ref LL_RCC_I2C3_CLKSOURCE_IC10
3717 * @arg @ref LL_RCC_I2C3_CLKSOURCE_IC15
3718 * @arg @ref LL_RCC_I2C3_CLKSOURCE_MSI
3719 * @arg @ref LL_RCC_I2C3_CLKSOURCE_HSI
3720 * @arg @ref LL_RCC_I2C4_CLKSOURCE_PCLK1
3721 * @arg @ref LL_RCC_I2C4_CLKSOURCE_CLKP
3722 * @arg @ref LL_RCC_I2C4_CLKSOURCE_IC10
3723 * @arg @ref LL_RCC_I2C4_CLKSOURCE_IC15
3724 * @arg @ref LL_RCC_I2C4_CLKSOURCE_MSI
3725 * @arg @ref LL_RCC_I2C4_CLKSOURCE_HSI
3726 * @arg @ref LL_RCC_I3C1_CLKSOURCE_PCLK1
3727 * @arg @ref LL_RCC_I3C1_CLKSOURCE_CLKP
3728 * @arg @ref LL_RCC_I3C1_CLKSOURCE_IC10
3729 * @arg @ref LL_RCC_I3C1_CLKSOURCE_IC15
3730 * @arg @ref LL_RCC_I3C1_CLKSOURCE_MSI
3731 * @arg @ref LL_RCC_I3C1_CLKSOURCE_HSI
3732 * @arg @ref LL_RCC_I3C2_CLKSOURCE_PCLK1
3733 * @arg @ref LL_RCC_I3C2_CLKSOURCE_CLKP
3734 * @arg @ref LL_RCC_I3C2_CLKSOURCE_IC10
3735 * @arg @ref LL_RCC_I3C2_CLKSOURCE_IC15
3736 * @arg @ref LL_RCC_I3C2_CLKSOURCE_MSI
3737 * @arg @ref LL_RCC_I3C2_CLKSOURCE_HSI
3738 * @arg @ref LL_RCC_LPTIM1_CLKSOURCE_PCLK1
3739 * @arg @ref LL_RCC_LPTIM1_CLKSOURCE_CLKP
3740 * @arg @ref LL_RCC_LPTIM1_CLKSOURCE_IC15
3741 * @arg @ref LL_RCC_LPTIM1_CLKSOURCE_LSE
3742 * @arg @ref LL_RCC_LPTIM1_CLKSOURCE_LSI
3743 * @arg @ref LL_RCC_LPTIM1_CLKSOURCE_TIMG
3744 * @arg @ref LL_RCC_LPTIM2_CLKSOURCE_PCLK4
3745 * @arg @ref LL_RCC_LPTIM2_CLKSOURCE_CLKP
3746 * @arg @ref LL_RCC_LPTIM2_CLKSOURCE_IC15
3747 * @arg @ref LL_RCC_LPTIM2_CLKSOURCE_LSE
3748 * @arg @ref LL_RCC_LPTIM2_CLKSOURCE_LSI
3749 * @arg @ref LL_RCC_LPTIM2_CLKSOURCE_TIMG
3750 * @arg @ref LL_RCC_LPTIM3_CLKSOURCE_PCLK4
3751 * @arg @ref LL_RCC_LPTIM3_CLKSOURCE_CLKP
3752 * @arg @ref LL_RCC_LPTIM3_CLKSOURCE_IC15
3753 * @arg @ref LL_RCC_LPTIM3_CLKSOURCE_LSE
3754 * @arg @ref LL_RCC_LPTIM3_CLKSOURCE_LSI
3755 * @arg @ref LL_RCC_LPTIM3_CLKSOURCE_TIMG
3756 * @arg @ref LL_RCC_LPTIM4_CLKSOURCE_PCLK4
3757 * @arg @ref LL_RCC_LPTIM4_CLKSOURCE_CLKP
3758 * @arg @ref LL_RCC_LPTIM4_CLKSOURCE_IC15
3759 * @arg @ref LL_RCC_LPTIM4_CLKSOURCE_LSE
3760 * @arg @ref LL_RCC_LPTIM4_CLKSOURCE_LSI
3761 * @arg @ref LL_RCC_LPTIM4_CLKSOURCE_TIMG
3762 * @arg @ref LL_RCC_LPTIM5_CLKSOURCE_PCLK4
3763 * @arg @ref LL_RCC_LPTIM5_CLKSOURCE_CLKP
3764 * @arg @ref LL_RCC_LPTIM5_CLKSOURCE_IC15
3765 * @arg @ref LL_RCC_LPTIM5_CLKSOURCE_LSE
3766 * @arg @ref LL_RCC_LPTIM5_CLKSOURCE_LSI
3767 * @arg @ref LL_RCC_LPTIM5_CLKSOURCE_TIMG
3768 * @arg @ref LL_RCC_OTGPHY1_CLKSOURCE_HSE_DIV_2
3769 * @arg @ref LL_RCC_OTGPHY1_CLKSOURCE_CLKP
3770 * @arg @ref LL_RCC_OTGPHY1_CLKSOURCE_IC15
3771 * @arg @ref LL_RCC_OTGPHY1_CLKSOURCE_HSE_DIV_2_OSC
3772 * @arg @ref LL_RCC_OTGPHY1CKREF_CLKSOURCE_OTGPHY1
3773 * @arg @ref LL_RCC_OTGPHY1CKREF_CLKSOURCE_HSE_DIV_2_OSC
3774 * @arg @ref LL_RCC_OTGPHY2_CLKSOURCE_HSE_DIV_2
3775 * @arg @ref LL_RCC_OTGPHY2_CLKSOURCE_CLKP
3776 * @arg @ref LL_RCC_OTGPHY2_CLKSOURCE_IC15
3777 * @arg @ref LL_RCC_OTGPHY2_CLKSOURCE_HSE_DIV_2_OSC
3778 * @arg @ref LL_RCC_OTGPHY2CKREF_CLKSOURCE_OTGPHY2
3779 * @arg @ref LL_RCC_OTGPHY2CKREF_CLKSOURCE_HSE_DIV_2_OSC
3780 * @arg @ref LL_RCC_SAI1_CLKSOURCE_PCLK2
3781 * @arg @ref LL_RCC_SAI1_CLKSOURCE_CLKP
3782 * @arg @ref LL_RCC_SAI1_CLKSOURCE_IC7
3783 * @arg @ref LL_RCC_SAI1_CLKSOURCE_IC8
3784 * @arg @ref LL_RCC_SAI1_CLKSOURCE_MSI
3785 * @arg @ref LL_RCC_SAI1_CLKSOURCE_HSI
3786 * @arg @ref LL_RCC_SAI1_CLKSOURCE_I2S_CKIN
3787 * @arg @ref LL_RCC_SAI1_CLKSOURCE_SPDIFRX1
3788 * @arg @ref LL_RCC_SAI2_CLKSOURCE_PCLK2
3789 * @arg @ref LL_RCC_SAI2_CLKSOURCE_CLKP
3790 * @arg @ref LL_RCC_SAI2_CLKSOURCE_IC7
3791 * @arg @ref LL_RCC_SAI2_CLKSOURCE_IC8
3792 * @arg @ref LL_RCC_SAI2_CLKSOURCE_MSI
3793 * @arg @ref LL_RCC_SAI2_CLKSOURCE_HSI
3794 * @arg @ref LL_RCC_SAI2_CLKSOURCE_I2S_CKIN
3795 * @arg @ref LL_RCC_SAI2_CLKSOURCE_SPDIFRX1
3796 * @arg @ref LL_RCC_SDMMC1_CLKSOURCE_HCLK
3797 * @arg @ref LL_RCC_SDMMC1_CLKSOURCE_CLKP
3798 * @arg @ref LL_RCC_SDMMC1_CLKSOURCE_IC4
3799 * @arg @ref LL_RCC_SDMMC1_CLKSOURCE_IC5
3800 * @arg @ref LL_RCC_SDMMC2_CLKSOURCE_HCLK
3801 * @arg @ref LL_RCC_SDMMC2_CLKSOURCE_CLKP
3802 * @arg @ref LL_RCC_SDMMC2_CLKSOURCE_IC4
3803 * @arg @ref LL_RCC_SDMMC2_CLKSOURCE_IC5
3804 * @arg @ref LL_RCC_SPI1_CLKSOURCE_PCLK2
3805 * @arg @ref LL_RCC_SPI1_CLKSOURCE_CLKP
3806 * @arg @ref LL_RCC_SPI1_CLKSOURCE_IC8
3807 * @arg @ref LL_RCC_SPI1_CLKSOURCE_IC9
3808 * @arg @ref LL_RCC_SPI1_CLKSOURCE_MSI
3809 * @arg @ref LL_RCC_SPI1_CLKSOURCE_HSI
3810 * @arg @ref LL_RCC_SPI1_CLKSOURCE_I2S_CKIN
3811 * @arg @ref LL_RCC_SPI2_CLKSOURCE_PCLK1
3812 * @arg @ref LL_RCC_SPI2_CLKSOURCE_CLKP
3813 * @arg @ref LL_RCC_SPI2_CLKSOURCE_IC8
3814 * @arg @ref LL_RCC_SPI2_CLKSOURCE_IC9
3815 * @arg @ref LL_RCC_SPI2_CLKSOURCE_MSI
3816 * @arg @ref LL_RCC_SPI2_CLKSOURCE_HSI
3817 * @arg @ref LL_RCC_SPI2_CLKSOURCE_I2S_CKIN
3818 * @arg @ref LL_RCC_SPI3_CLKSOURCE_PCLK1
3819 * @arg @ref LL_RCC_SPI3_CLKSOURCE_CLKP
3820 * @arg @ref LL_RCC_SPI3_CLKSOURCE_IC8
3821 * @arg @ref LL_RCC_SPI3_CLKSOURCE_IC9
3822 * @arg @ref LL_RCC_SPI3_CLKSOURCE_MSI
3823 * @arg @ref LL_RCC_SPI3_CLKSOURCE_HSI
3824 * @arg @ref LL_RCC_SPI3_CLKSOURCE_I2S_CKIN
3825 * @arg @ref LL_RCC_SPI4_CLKSOURCE_PCLK2
3826 * @arg @ref LL_RCC_SPI4_CLKSOURCE_CLKP
3827 * @arg @ref LL_RCC_SPI4_CLKSOURCE_IC9
3828 * @arg @ref LL_RCC_SPI4_CLKSOURCE_IC14
3829 * @arg @ref LL_RCC_SPI4_CLKSOURCE_MSI
3830 * @arg @ref LL_RCC_SPI4_CLKSOURCE_HSI
3831 * @arg @ref LL_RCC_SPI4_CLKSOURCE_HSE
3832 * @arg @ref LL_RCC_SPI5_CLKSOURCE_PCLK2
3833 * @arg @ref LL_RCC_SPI5_CLKSOURCE_CLKP
3834 * @arg @ref LL_RCC_SPI5_CLKSOURCE_IC9
3835 * @arg @ref LL_RCC_SPI5_CLKSOURCE_IC14
3836 * @arg @ref LL_RCC_SPI5_CLKSOURCE_MSI
3837 * @arg @ref LL_RCC_SPI5_CLKSOURCE_HSI
3838 * @arg @ref LL_RCC_SPI5_CLKSOURCE_HSE
3839 * @arg @ref LL_RCC_SPI6_CLKSOURCE_PCLK4
3840 * @arg @ref LL_RCC_SPI6_CLKSOURCE_CLKP
3841 * @arg @ref LL_RCC_SPI6_CLKSOURCE_IC8
3842 * @arg @ref LL_RCC_SPI6_CLKSOURCE_IC9
3843 * @arg @ref LL_RCC_SPI6_CLKSOURCE_MSI
3844 * @arg @ref LL_RCC_SPI6_CLKSOURCE_HSI
3845 * @arg @ref LL_RCC_SPI6_CLKSOURCE_I2S_CKIN
3846 * @arg @ref LL_RCC_UART4_CLKSOURCE_PCLK1
3847 * @arg @ref LL_RCC_UART4_CLKSOURCE_CLKP
3848 * @arg @ref LL_RCC_UART4_CLKSOURCE_IC9
3849 * @arg @ref LL_RCC_UART4_CLKSOURCE_IC14
3850 * @arg @ref LL_RCC_UART4_CLKSOURCE_LSE
3851 * @arg @ref LL_RCC_UART4_CLKSOURCE_MSI
3852 * @arg @ref LL_RCC_UART4_CLKSOURCE_HSI
3853 * @arg @ref LL_RCC_UART5_CLKSOURCE_PCLK1
3854 * @arg @ref LL_RCC_UART5_CLKSOURCE_CLKP
3855 * @arg @ref LL_RCC_UART5_CLKSOURCE_IC9
3856 * @arg @ref LL_RCC_UART5_CLKSOURCE_IC14
3857 * @arg @ref LL_RCC_UART5_CLKSOURCE_LSE
3858 * @arg @ref LL_RCC_UART5_CLKSOURCE_MSI
3859 * @arg @ref LL_RCC_UART5_CLKSOURCE_HSI
3860 * @arg @ref LL_RCC_UART7_CLKSOURCE_PCLK1
3861 * @arg @ref LL_RCC_UART7_CLKSOURCE_CLKP
3862 * @arg @ref LL_RCC_UART7_CLKSOURCE_IC9
3863 * @arg @ref LL_RCC_UART7_CLKSOURCE_IC14
3864 * @arg @ref LL_RCC_UART7_CLKSOURCE_LSE
3865 * @arg @ref LL_RCC_UART7_CLKSOURCE_MSI
3866 * @arg @ref LL_RCC_UART7_CLKSOURCE_HSI
3867 * @arg @ref LL_RCC_UART8_CLKSOURCE_PCLK1
3868 * @arg @ref LL_RCC_UART8_CLKSOURCE_CLKP
3869 * @arg @ref LL_RCC_UART8_CLKSOURCE_IC9
3870 * @arg @ref LL_RCC_UART8_CLKSOURCE_IC14
3871 * @arg @ref LL_RCC_UART8_CLKSOURCE_LSE
3872 * @arg @ref LL_RCC_UART8_CLKSOURCE_MSI
3873 * @arg @ref LL_RCC_UART8_CLKSOURCE_HSI
3874 * @arg @ref LL_RCC_UART9_CLKSOURCE_PCLK2
3875 * @arg @ref LL_RCC_UART9_CLKSOURCE_CLKP
3876 * @arg @ref LL_RCC_UART9_CLKSOURCE_IC9
3877 * @arg @ref LL_RCC_UART9_CLKSOURCE_IC14
3878 * @arg @ref LL_RCC_UART9_CLKSOURCE_LSE
3879 * @arg @ref LL_RCC_UART9_CLKSOURCE_MSI
3880 * @arg @ref LL_RCC_UART9_CLKSOURCE_HSI
3881 * @arg @ref LL_RCC_USART1_CLKSOURCE_PCLK2
3882 * @arg @ref LL_RCC_USART1_CLKSOURCE_CLKP
3883 * @arg @ref LL_RCC_USART1_CLKSOURCE_IC9
3884 * @arg @ref LL_RCC_USART1_CLKSOURCE_IC14
3885 * @arg @ref LL_RCC_USART1_CLKSOURCE_LSE
3886 * @arg @ref LL_RCC_USART1_CLKSOURCE_MSI
3887 * @arg @ref LL_RCC_USART1_CLKSOURCE_HSI
3888 * @arg @ref LL_RCC_USART2_CLKSOURCE_PCLK1
3889 * @arg @ref LL_RCC_USART2_CLKSOURCE_CLKP
3890 * @arg @ref LL_RCC_USART2_CLKSOURCE_IC9
3891 * @arg @ref LL_RCC_USART2_CLKSOURCE_IC14
3892 * @arg @ref LL_RCC_USART2_CLKSOURCE_LSE
3893 * @arg @ref LL_RCC_USART2_CLKSOURCE_MSI
3894 * @arg @ref LL_RCC_USART2_CLKSOURCE_HSI
3895 * @arg @ref LL_RCC_USART3_CLKSOURCE_PCLK1
3896 * @arg @ref LL_RCC_USART3_CLKSOURCE_CLKP
3897 * @arg @ref LL_RCC_USART3_CLKSOURCE_IC9
3898 * @arg @ref LL_RCC_USART3_CLKSOURCE_IC14
3899 * @arg @ref LL_RCC_USART3_CLKSOURCE_LSE
3900 * @arg @ref LL_RCC_USART3_CLKSOURCE_MSI
3901 * @arg @ref LL_RCC_USART3_CLKSOURCE_HSI
3902 * @arg @ref LL_RCC_USART6_CLKSOURCE_PCLK2
3903 * @arg @ref LL_RCC_USART6_CLKSOURCE_CLKP
3904 * @arg @ref LL_RCC_USART6_CLKSOURCE_IC9
3905 * @arg @ref LL_RCC_USART6_CLKSOURCE_IC14
3906 * @arg @ref LL_RCC_USART6_CLKSOURCE_LSE
3907 * @arg @ref LL_RCC_USART6_CLKSOURCE_MSI
3908 * @arg @ref LL_RCC_USART6_CLKSOURCE_HSI
3909 * @arg @ref LL_RCC_USART10_CLKSOURCE_PCLK2
3910 * @arg @ref LL_RCC_USART10_CLKSOURCE_CLKP
3911 * @arg @ref LL_RCC_USART10_CLKSOURCE_IC9
3912 * @arg @ref LL_RCC_USART10_CLKSOURCE_IC14
3913 * @arg @ref LL_RCC_USART10_CLKSOURCE_LSE
3914 * @arg @ref LL_RCC_USART10_CLKSOURCE_MSI
3915 * @arg @ref LL_RCC_USART10_CLKSOURCE_HSI
3916 * @arg @ref LL_RCC_XSPI1_CLKSOURCE_HCLK
3917 * @arg @ref LL_RCC_XSPI1_CLKSOURCE_CLKP
3918 * @arg @ref LL_RCC_XSPI1_CLKSOURCE_IC3
3919 * @arg @ref LL_RCC_XSPI1_CLKSOURCE_IC4
3920 * @arg @ref LL_RCC_XSPI2_CLKSOURCE_HCLK
3921 * @arg @ref LL_RCC_XSPI2_CLKSOURCE_CLKP
3922 * @arg @ref LL_RCC_XSPI2_CLKSOURCE_IC3
3923 * @arg @ref LL_RCC_XSPI2_CLKSOURCE_IC4
3924 * @arg @ref LL_RCC_XSPI3_CLKSOURCE_HCLK
3925 * @arg @ref LL_RCC_XSPI3_CLKSOURCE_CLKP
3926 * @arg @ref LL_RCC_XSPI3_CLKSOURCE_IC3
3927 * @arg @ref LL_RCC_XSPI3_CLKSOURCE_IC4
3928 * @retval None
3929 */
LL_RCC_GetClockSource(uint32_t Periph)3930 __STATIC_INLINE uint32_t LL_RCC_GetClockSource(uint32_t Periph)
3931 {
3932 const volatile uint32_t *pReg = (uint32_t *)((uint32_t)((uint32_t)(&RCC->CCIPR1) + LL_CLKSOURCE_REG(Periph)));
3933 return (uint32_t)(Periph | (((READ_BIT(*pReg, LL_CLKSOURCE_MASK(Periph))) >> LL_CLKSOURCE_SHIFT(Periph)) << LL_RCC_CONFIG_SHIFT));
3934 }
3935
3936 /**
3937 * @brief Get ADC Kernel clock source
3938 * @rmtoll CCIPR1 ADC12SEL LL_RCC_GetADCClockSource
3939 * @param Periph This parameter can be one of the following values:
3940 * @arg @ref LL_RCC_ADC_CLKSOURCE
3941 * @retval Returned value can be one of the following values:
3942 * @arg @ref LL_RCC_ADC_CLKSOURCE_HCLK
3943 * @arg @ref LL_RCC_ADC_CLKSOURCE_CLKP
3944 * @arg @ref LL_RCC_ADC_CLKSOURCE_IC7
3945 * @arg @ref LL_RCC_ADC_CLKSOURCE_IC8
3946 * @arg @ref LL_RCC_ADC_CLKSOURCE_MSI
3947 * @arg @ref LL_RCC_ADC_CLKSOURCE_HSI
3948 * @arg @ref LL_RCC_ADC_CLKSOURCE_I2S_CKIN
3949 * @arg @ref LL_RCC_ADC_CLKSOURCE_TIMG
3950 */
LL_RCC_GetADCClockSource(uint32_t Periph)3951 __STATIC_INLINE uint32_t LL_RCC_GetADCClockSource(uint32_t Periph)
3952 {
3953 UNUSED(Periph);
3954 return (uint32_t)(READ_BIT(RCC->CCIPR1, RCC_CCIPR1_ADC12SEL));
3955 }
3956
3957 /**
3958 * @brief Get ADFx clock source
3959 * @rmtoll CCIPR1 ADF1SEL LL_RCC_GetADFClockSource
3960 * @param Periph This parameter can be one of the following values:
3961 * @arg @ref LL_RCC_ADF1_CLKSOURCE
3962 * @retval Returned value can be one of the following values:
3963 * @arg @ref LL_RCC_ADF1_CLKSOURCE_HCLK
3964 * @arg @ref LL_RCC_ADF1_CLKSOURCE_CLKP
3965 * @arg @ref LL_RCC_ADF1_CLKSOURCE_IC7
3966 * @arg @ref LL_RCC_ADF1_CLKSOURCE_IC8
3967 * @arg @ref LL_RCC_ADF1_CLKSOURCE_MSI
3968 * @arg @ref LL_RCC_ADF1_CLKSOURCE_HSI
3969 * @arg @ref LL_RCC_ADF1_CLKSOURCE_I2S_CKIN
3970 * @arg @ref LL_RCC_ADF1_CLKSOURCE_TIMG
3971 */
LL_RCC_GetADFClockSource(uint32_t Periph)3972 __STATIC_INLINE uint32_t LL_RCC_GetADFClockSource(uint32_t Periph)
3973 {
3974 UNUSED(Periph);
3975 return (uint32_t)(READ_BIT(RCC->CCIPR1, RCC_CCIPR1_ADF1SEL));
3976 }
3977
3978 /**
3979 * @brief Get CLKP Kernel clock source
3980 * @rmtoll CCIPR7 PERSEL LL_RCC_GetCLKPClockSource
3981 * @param Periph This parameter can be one of the following values:
3982 * @arg @ref LL_RCC_CLKP_CLKSOURCE
3983 * @retval Returned value can be one of the following values:
3984 * @arg @ref LL_RCC_CLKP_CLKSOURCE_HSI
3985 * @arg @ref LL_RCC_CLKP_CLKSOURCE_MSI
3986 * @arg @ref LL_RCC_CLKP_CLKSOURCE_HSE
3987 * @arg @ref LL_RCC_CLKP_CLKSOURCE_IC19
3988 * @arg @ref LL_RCC_CLKP_CLKSOURCE_IC5
3989 * @arg @ref LL_RCC_CLKP_CLKSOURCE_IC10
3990 * @arg @ref LL_RCC_CLKP_CLKSOURCE_IC15
3991 * @arg @ref LL_RCC_CLKP_CLKSOURCE_IC20
3992 */
LL_RCC_GetCLKPClockSource(uint32_t Periph)3993 __STATIC_INLINE uint32_t LL_RCC_GetCLKPClockSource(uint32_t Periph)
3994 {
3995 UNUSED(Periph);
3996 return (uint32_t)(READ_BIT(RCC->CCIPR7, RCC_CCIPR7_PERSEL));
3997 }
3998
3999 /**
4000 * @brief Get DCMIPP clock source
4001 * @rmtoll CCIPR1 DCMIPPSEL LL_RCC_GetDCMIPPClockSource
4002 * @param Periph This parameter can be one of the following values:
4003 * @arg @ref LL_RCC_DCMIPP_CLKSOURCE
4004 * @retval Returned value can be one of the following values:
4005 * @arg @ref LL_RCC_DCMIPP_CLKSOURCE_PCLK5
4006 * @arg @ref LL_RCC_DCMIPP_CLKSOURCE_CLKP
4007 * @arg @ref LL_RCC_DCMIPP_CLKSOURCE_IC17
4008 * @arg @ref LL_RCC_DCMIPP_CLKSOURCE_HSI
4009 */
LL_RCC_GetDCMIPPClockSource(uint32_t Periph)4010 __STATIC_INLINE uint32_t LL_RCC_GetDCMIPPClockSource(uint32_t Periph)
4011 {
4012 UNUSED(Periph);
4013 return (uint32_t)(READ_BIT(RCC->CCIPR1, RCC_CCIPR1_DCMIPPSEL));
4014 }
4015
4016 /**
4017 * @brief Get ETHx Kernel clock source
4018 * @rmtoll CCIPR2 ETH1CLKSEL LL_RCC_GetETHClockSource
4019 * @param Periph This parameter can be one of the following values:
4020 * @arg @ref LL_RCC_ETH1_CLKSOURCE
4021 * @retval Returned value can be one of the following values:
4022 * @arg @ref LL_RCC_ETH1_CLKSOURCE_HCLK
4023 * @arg @ref LL_RCC_ETH1_CLKSOURCE_CLKP
4024 * @arg @ref LL_RCC_ETH1_CLKSOURCE_IC12
4025 * @arg @ref LL_RCC_ETH1_CLKSOURCE_HSE
4026 */
LL_RCC_GetETHClockSource(uint32_t Periph)4027 __STATIC_INLINE uint32_t LL_RCC_GetETHClockSource(uint32_t Periph)
4028 {
4029 UNUSED(Periph);
4030 return (uint32_t)(READ_BIT(RCC->CCIPR2, RCC_CCIPR2_ETH1CLKSEL));
4031 }
4032
4033 /**
4034 * @brief Get ETHx PTP Kernel clock source
4035 * @rmtoll CCIPR2 ETH1PTPSEL LL_RCC_GetETHPTPClockSource
4036 * @param Periph This parameter can be one of the following values:
4037 * @arg @ref LL_RCC_ETH1PTP_CLKSOURCE
4038 * @retval Returned value can be one of the following values:
4039 * @arg @ref LL_RCC_ETH1PTP_CLKSOURCE_HCLK
4040 * @arg @ref LL_RCC_ETH1PTP_CLKSOURCE_CLKP
4041 * @arg @ref LL_RCC_ETH1PTP_CLKSOURCE_IC13
4042 * @arg @ref LL_RCC_ETH1PTP_CLKSOURCE_HSE
4043 */
LL_RCC_GetETHPTPClockSource(uint32_t Periph)4044 __STATIC_INLINE uint32_t LL_RCC_GetETHPTPClockSource(uint32_t Periph)
4045 {
4046 UNUSED(Periph);
4047 return (uint32_t)(READ_BIT(RCC->CCIPR2, RCC_CCIPR2_ETH1PTPSEL));
4048 }
4049
4050 /**
4051 * @brief Get ETHx PHY interface
4052 * @rmtoll CCIPR2 ETH1SEL LL_RCC_GetETHPHYInterface
4053 * @param Periph This parameter can be one of the following values:
4054 * @arg @ref LL_RCC_ETH1PHY_IF
4055 * @retval Returned value can be one of the following values:
4056 * @arg @ref LL_RCC_ETH1PHY_IF_MII
4057 * @arg @ref LL_RCC_ETH1PHY_IF_RGMII
4058 * @arg @ref LL_RCC_ETH1PHY_IF_RMII
4059 */
LL_RCC_GetETHPHYInterface(uint32_t Periph)4060 __STATIC_INLINE uint32_t LL_RCC_GetETHPHYInterface(uint32_t Periph)
4061 {
4062 UNUSED(Periph);
4063 return (uint32_t)(READ_BIT(RCC->CCIPR2, RCC_CCIPR2_ETH1SEL));
4064 }
4065
4066 /**
4067 * @brief Get ETHx Reference RX Kernel clock source
4068 * @rmtoll CCIPR2 ETH1REFCLKSEL LL_RCC_GetETHREFRXClockSource
4069 * @param Periph This parameter can be one of the following values:
4070 * @arg @ref LL_RCC_ETH1REFRX_CLKSOURCE
4071 * @retval Returned value can be one of the following values:
4072 * @arg @ref LL_RCC_ETH1REFRX_CLKSOURCE_EXT
4073 * @arg @ref LL_RCC_ETH1REFRX_CLKSOURCE_INT
4074 */
LL_RCC_GetETHREFRXClockSource(uint32_t Periph)4075 __STATIC_INLINE uint32_t LL_RCC_GetETHREFRXClockSource(uint32_t Periph)
4076 {
4077 UNUSED(Periph);
4078 return (uint32_t)(READ_BIT(RCC->CCIPR2, RCC_CCIPR2_ETH1REFCLKSEL));
4079 }
4080
4081 /**
4082 * @brief Get ETHx Reference TX Kernel clock source
4083 * @rmtoll CCIPR2 ETH1GTXCLKSEL LL_RCC_GetETHREFTXClockSource
4084 * @param Periph This parameter can be one of the following values:
4085 * @arg @ref LL_RCC_ETH1REFTX_CLKSOURCE
4086 * @retval Returned value can be one of the following values:
4087 * @arg @ref LL_RCC_ETH1REFTX_CLKSOURCE_EXT
4088 * @arg @ref LL_RCC_ETH1REFTX_CLKSOURCE_INT
4089 */
LL_RCC_GetETHREFTXClockSource(uint32_t Periph)4090 __STATIC_INLINE uint32_t LL_RCC_GetETHREFTXClockSource(uint32_t Periph)
4091 {
4092 UNUSED(Periph);
4093 return (uint32_t)(READ_BIT(RCC->CCIPR2, RCC_CCIPR2_ETH1GTXCLKSEL));
4094 }
4095
4096 /**
4097 * @brief Get FDCAN Kernel clock source
4098 * @rmtoll CCIPR3 FDCANSEL LL_RCC_GetFDCANClockSource
4099 * @param Periph This parameter can be one of the following values:
4100 * @arg @ref LL_RCC_FDCAN_CLKSOURCE
4101 * @retval Returned value can be one of the following values:
4102 * @arg @ref LL_RCC_FDCAN_CLKSOURCE_PCLK1
4103 * @arg @ref LL_RCC_FDCAN_CLKSOURCE_CLKP
4104 * @arg @ref LL_RCC_FDCAN_CLKSOURCE_IC19
4105 * @arg @ref LL_RCC_FDCAN_CLKSOURCE_HSE
4106 */
LL_RCC_GetFDCANClockSource(uint32_t Periph)4107 __STATIC_INLINE uint32_t LL_RCC_GetFDCANClockSource(uint32_t Periph)
4108 {
4109 UNUSED(Periph);
4110 return (uint32_t)(READ_BIT(RCC->CCIPR3, RCC_CCIPR3_FDCANSEL));
4111 }
4112
4113 /**
4114 * @brief Get FMC Kernel clock source
4115 * @rmtoll CCIPR3 FMCSEL LL_RCC_GetFMCClockSource
4116 * @param Periph This parameter can be one of the following values:
4117 * @arg @ref LL_RCC_FMC_CLKSOURCE
4118 * @retval Returned value can be one of the following values:
4119 * @arg @ref LL_RCC_FMC_CLKSOURCE_HCLK
4120 * @arg @ref LL_RCC_FMC_CLKSOURCE_CLKP
4121 * @arg @ref LL_RCC_FMC_CLKSOURCE_IC3
4122 * @arg @ref LL_RCC_FMC_CLKSOURCE_IC4
4123 */
LL_RCC_GetFMCClockSource(uint32_t Periph)4124 __STATIC_INLINE uint32_t LL_RCC_GetFMCClockSource(uint32_t Periph)
4125 {
4126 UNUSED(Periph);
4127 return (uint32_t)(READ_BIT(RCC->CCIPR3, RCC_CCIPR3_FMCSEL));
4128 }
4129
4130 /**
4131 * @brief Get I2Cx clock source
4132 * @rmtoll CCIPR4 I2C1SEL LL_RCC_GetI2CClockSource\n
4133 * @rmtoll CCIPR4 I2C2SEL LL_RCC_GetI2CClockSource\n
4134 * @rmtoll CCIPR4 I2C3SEL LL_RCC_GetI2CClockSource\n
4135 * @rmtoll CCIPR4 I2C4SEL LL_RCC_GetI2CClockSource
4136 * @param Periph This parameter can be one of the following values:
4137 * @arg @ref LL_RCC_I2C1_CLKSOURCE
4138 * @arg @ref LL_RCC_I2C2_CLKSOURCE
4139 * @arg @ref LL_RCC_I2C3_CLKSOURCE
4140 * @arg @ref LL_RCC_I2C4_CLKSOURCE
4141 * @retval Returned value can be one of the following values:
4142 * @arg @ref LL_RCC_I2C1_CLKSOURCE_PCLK1
4143 * @arg @ref LL_RCC_I2C1_CLKSOURCE_CLKP
4144 * @arg @ref LL_RCC_I2C1_CLKSOURCE_IC10
4145 * @arg @ref LL_RCC_I2C1_CLKSOURCE_IC15
4146 * @arg @ref LL_RCC_I2C1_CLKSOURCE_MSI
4147 * @arg @ref LL_RCC_I2C1_CLKSOURCE_HSI
4148 * @arg @ref LL_RCC_I2C2_CLKSOURCE_PCLK1
4149 * @arg @ref LL_RCC_I2C2_CLKSOURCE_CLKP
4150 * @arg @ref LL_RCC_I2C2_CLKSOURCE_IC10
4151 * @arg @ref LL_RCC_I2C2_CLKSOURCE_IC15
4152 * @arg @ref LL_RCC_I2C2_CLKSOURCE_MSI
4153 * @arg @ref LL_RCC_I2C2_CLKSOURCE_HSI
4154 * @arg @ref LL_RCC_I2C3_CLKSOURCE_PCLK1
4155 * @arg @ref LL_RCC_I2C3_CLKSOURCE_CLKP
4156 * @arg @ref LL_RCC_I2C3_CLKSOURCE_IC10
4157 * @arg @ref LL_RCC_I2C3_CLKSOURCE_IC15
4158 * @arg @ref LL_RCC_I2C3_CLKSOURCE_MSI
4159 * @arg @ref LL_RCC_I2C3_CLKSOURCE_HSI
4160 * @arg @ref LL_RCC_I2C4_CLKSOURCE_PCLK1
4161 * @arg @ref LL_RCC_I2C4_CLKSOURCE_CLKP
4162 * @arg @ref LL_RCC_I2C4_CLKSOURCE_IC10
4163 * @arg @ref LL_RCC_I2C4_CLKSOURCE_IC15
4164 * @arg @ref LL_RCC_I2C4_CLKSOURCE_MSI
4165 * @arg @ref LL_RCC_I2C4_CLKSOURCE_HSI
4166 */
LL_RCC_GetI2CClockSource(uint32_t Periph)4167 __STATIC_INLINE uint32_t LL_RCC_GetI2CClockSource(uint32_t Periph)
4168 {
4169 return LL_RCC_GetClockSource(Periph);
4170 }
4171
4172 /**
4173 * @brief Get I3Cx clock source
4174 * @rmtoll CCIPR4 I3C1SEL LL_RCC_GetI3CClockSource\n
4175 * @rmtoll CCIPR4 I3C2SEL LL_RCC_GetI3CClockSource
4176 * @param Periph This parameter can be one of the following values:
4177 * @arg @ref LL_RCC_I3C1_CLKSOURCE
4178 * @arg @ref LL_RCC_I3C2_CLKSOURCE
4179 * @retval Returned value can be one of the following values:
4180 * @arg @ref LL_RCC_I3C1_CLKSOURCE_PCLK1
4181 * @arg @ref LL_RCC_I3C1_CLKSOURCE_CLKP
4182 * @arg @ref LL_RCC_I3C1_CLKSOURCE_IC10
4183 * @arg @ref LL_RCC_I3C1_CLKSOURCE_IC15
4184 * @arg @ref LL_RCC_I3C1_CLKSOURCE_MSI
4185 * @arg @ref LL_RCC_I3C1_CLKSOURCE_HSI
4186 * @arg @ref LL_RCC_I3C2_CLKSOURCE_PCLK1
4187 * @arg @ref LL_RCC_I3C2_CLKSOURCE_CLKP
4188 * @arg @ref LL_RCC_I3C2_CLKSOURCE_IC10
4189 * @arg @ref LL_RCC_I3C2_CLKSOURCE_IC15
4190 * @arg @ref LL_RCC_I3C2_CLKSOURCE_MSI
4191 * @arg @ref LL_RCC_I3C2_CLKSOURCE_HSI
4192 */
LL_RCC_GetI3CClockSource(uint32_t Periph)4193 __STATIC_INLINE uint32_t LL_RCC_GetI3CClockSource(uint32_t Periph)
4194 {
4195 UNUSED(Periph);
4196 return LL_RCC_GetClockSource(Periph);
4197 }
4198
4199 /**
4200 * @brief Get LPTIM clock source
4201 * @rmtoll CCIPR12 LPTIM1SEL LL_RCC_GetLPTIMClockSource\n
4202 * CCIPR12 LPTIM2SEL LL_RCC_GetLPTIMClockSource\n
4203 * CCIPR12 LPTIM3SEL LL_RCC_GetLPTIMClockSource\n
4204 * CCIPR12 LPTIM4SEL LL_RCC_GetLPTIMClockSource\n
4205 * CCIPR12 LPTIM5SEL LL_RCC_GetLPTIMClockSource
4206 * @param Periph This parameter can be one of the following values:
4207 * @arg @ref LL_RCC_LPTIM1_CLKSOURCE
4208 * @arg @ref LL_RCC_LPTIM2_CLKSOURCE
4209 * @arg @ref LL_RCC_LPTIM3_CLKSOURCE
4210 * @arg @ref LL_RCC_LPTIM4_CLKSOURCE
4211 * @arg @ref LL_RCC_LPTIM5_CLKSOURCE
4212 * @retval Returned value can be one of the following values:
4213 * @arg @ref LL_RCC_LPTIM1_CLKSOURCE_PCLK1
4214 * @arg @ref LL_RCC_LPTIM1_CLKSOURCE_CLKP
4215 * @arg @ref LL_RCC_LPTIM1_CLKSOURCE_IC15
4216 * @arg @ref LL_RCC_LPTIM1_CLKSOURCE_LSE
4217 * @arg @ref LL_RCC_LPTIM1_CLKSOURCE_LSI
4218 * @arg @ref LL_RCC_LPTIM1_CLKSOURCE_TIMG
4219 * @arg @ref LL_RCC_LPTIM2_CLKSOURCE_PCLK4
4220 * @arg @ref LL_RCC_LPTIM2_CLKSOURCE_CLKP
4221 * @arg @ref LL_RCC_LPTIM2_CLKSOURCE_IC15
4222 * @arg @ref LL_RCC_LPTIM2_CLKSOURCE_LSE
4223 * @arg @ref LL_RCC_LPTIM2_CLKSOURCE_LSI
4224 * @arg @ref LL_RCC_LPTIM2_CLKSOURCE_TIMG
4225 * @arg @ref LL_RCC_LPTIM3_CLKSOURCE_PCLK4
4226 * @arg @ref LL_RCC_LPTIM3_CLKSOURCE_CLKP
4227 * @arg @ref LL_RCC_LPTIM3_CLKSOURCE_IC15
4228 * @arg @ref LL_RCC_LPTIM3_CLKSOURCE_LSE
4229 * @arg @ref LL_RCC_LPTIM3_CLKSOURCE_LSI
4230 * @arg @ref LL_RCC_LPTIM3_CLKSOURCE_TIMG
4231 * @arg @ref LL_RCC_LPTIM4_CLKSOURCE_PCLK4
4232 * @arg @ref LL_RCC_LPTIM4_CLKSOURCE_CLKP
4233 * @arg @ref LL_RCC_LPTIM4_CLKSOURCE_IC15
4234 * @arg @ref LL_RCC_LPTIM4_CLKSOURCE_LSE
4235 * @arg @ref LL_RCC_LPTIM4_CLKSOURCE_LSI
4236 * @arg @ref LL_RCC_LPTIM4_CLKSOURCE_TIMG
4237 * @arg @ref LL_RCC_LPTIM5_CLKSOURCE_PCLK4
4238 * @arg @ref LL_RCC_LPTIM5_CLKSOURCE_CLKP
4239 * @arg @ref LL_RCC_LPTIM5_CLKSOURCE_IC15
4240 * @arg @ref LL_RCC_LPTIM5_CLKSOURCE_LSE
4241 * @arg @ref LL_RCC_LPTIM5_CLKSOURCE_LSI
4242 * @arg @ref LL_RCC_LPTIM5_CLKSOURCE_TIMG
4243 * @retval None
4244 */
LL_RCC_GetLPTIMClockSource(uint32_t Periph)4245 __STATIC_INLINE uint32_t LL_RCC_GetLPTIMClockSource(uint32_t Periph)
4246 {
4247 return LL_RCC_GetClockSource(Periph);
4248 }
4249
4250 /**
4251 * @brief Get LPUART clock source
4252 * @rmtoll CCIPR14 LPUART1SEL LL_RCC_GetLPUARTClockSource
4253 * @param Periph This parameter can be one of the following values:
4254 * @arg @ref LL_RCC_LPUART1_CLKSOURCE
4255 * @retval Returned value can be one of the following values:
4256 * @arg @ref LL_RCC_LPUART1_CLKSOURCE_PCLK4
4257 * @arg @ref LL_RCC_LPUART1_CLKSOURCE_CLKP
4258 * @arg @ref LL_RCC_LPUART1_CLKSOURCE_IC9
4259 * @arg @ref LL_RCC_LPUART1_CLKSOURCE_IC14
4260 * @arg @ref LL_RCC_LPUART1_CLKSOURCE_LSE
4261 * @arg @ref LL_RCC_LPUART1_CLKSOURCE_MSI
4262 * @arg @ref LL_RCC_LPUART1_CLKSOURCE_HSI
4263 */
LL_RCC_GetLPUARTClockSource(uint32_t Periph)4264 __STATIC_INLINE uint32_t LL_RCC_GetLPUARTClockSource(uint32_t Periph)
4265 {
4266 UNUSED(Periph);
4267 return (uint32_t)(READ_BIT(RCC->CCIPR14, RCC_CCIPR14_LPUART1SEL));
4268 }
4269
4270 /**
4271 * @brief Get LTDC clock source
4272 * @rmtoll CCIPR4 LTDCSEL LL_RCC_GetLTDCClockSource
4273 * @param Periph This parameter can be one of the following values:
4274 * @arg @ref LL_RCC_LTDC_CLKSOURCE
4275 * @retval Returned value can be one of the following values:
4276 * @arg @ref LL_RCC_LTDC_CLKSOURCE_PCLK5
4277 * @arg @ref LL_RCC_LTDC_CLKSOURCE_CLKP
4278 * @arg @ref LL_RCC_LTDC_CLKSOURCE_IC16
4279 * @arg @ref LL_RCC_LTDC_CLKSOURCE_HSI
4280 */
LL_RCC_GetLTDCClockSource(uint32_t Periph)4281 __STATIC_INLINE uint32_t LL_RCC_GetLTDCClockSource(uint32_t Periph)
4282 {
4283 UNUSED(Periph);
4284 return (uint32_t)(READ_BIT(RCC->CCIPR4, RCC_CCIPR4_LTDCSEL));
4285 }
4286
4287 /**
4288 * @brief Get MDFx clock source
4289 * @rmtoll CCIPR5 MDF1SEL LL_RCC_GetMDFClockSource
4290 * @param Periph This parameter can be one of the following values:
4291 * @arg @ref LL_RCC_MDF1_CLKSOURCE
4292 * @retval Returned value can be one of the following values:
4293 * @arg @ref LL_RCC_MDF1_CLKSOURCE_HCLK
4294 * @arg @ref LL_RCC_MDF1_CLKSOURCE_CLKP
4295 * @arg @ref LL_RCC_MDF1_CLKSOURCE_IC7
4296 * @arg @ref LL_RCC_MDF1_CLKSOURCE_IC8
4297 * @arg @ref LL_RCC_MDF1_CLKSOURCE_MSI
4298 * @arg @ref LL_RCC_MDF1_CLKSOURCE_HSI
4299 * @arg @ref LL_RCC_MDF1_CLKSOURCE_I2S_CKIN
4300 * @arg @ref LL_RCC_MDF1_CLKSOURCE_TIMG
4301 */
LL_RCC_GetMDFClockSource(uint32_t Periph)4302 __STATIC_INLINE uint32_t LL_RCC_GetMDFClockSource(uint32_t Periph)
4303 {
4304 UNUSED(Periph);
4305 return (uint32_t)(READ_BIT(RCC->CCIPR5, RCC_CCIPR5_MDF1SEL));
4306 }
4307
4308 /**
4309 * @brief Get OTGPHY clock source
4310 * @rmtoll CCIPR6 OTGPHY1SEL LL_RCC_GetOTGPHYClockSource\n
4311 * CCIPR6 OTGPHY2SEL LL_RCC_GetOTGPHYClockSource
4312 * @param Periph This parameter can be one of the following values:
4313 * @arg @ref LL_RCC_OTGPHY1_CLKSOURCE
4314 * @arg @ref LL_RCC_OTGPHY2_CLKSOURCE
4315 * @retval Returned value can be one of the following values:
4316 * @arg @ref LL_RCC_OTGPHY1_CLKSOURCE_HSE_DIV_2
4317 * @arg @ref LL_RCC_OTGPHY1_CLKSOURCE_CLKP
4318 * @arg @ref LL_RCC_OTGPHY1_CLKSOURCE_IC15
4319 * @arg @ref LL_RCC_OTGPHY1_CLKSOURCE_HSE_DIV_2_OSC
4320 * @arg @ref LL_RCC_OTGPHY2_CLKSOURCE_HSE_DIV_2
4321 * @arg @ref LL_RCC_OTGPHY2_CLKSOURCE_CLKP
4322 * @arg @ref LL_RCC_OTGPHY2_CLKSOURCE_IC15
4323 * @arg @ref LL_RCC_OTGPHY2_CLKSOURCE_HSE_DIV_2_OSC
4324 */
LL_RCC_GetOTGPHYClockSource(uint32_t Periph)4325 __STATIC_INLINE uint32_t LL_RCC_GetOTGPHYClockSource(uint32_t Periph)
4326 {
4327 return LL_RCC_GetClockSource(Periph);
4328 }
4329
4330 /**
4331 * @brief Get OTGPHYCKREF clock source
4332 * @rmtoll CCIPR6 OTGPHY1CKREFSEL LL_RCC_GetOTGPHYCKREFClockSource\n
4333 * CCIPR6 OTGPHY2CKREFSEL LL_RCC_GetOTGPHYCKREFClockSource
4334 * @param Periph This parameter can be one of the following values:
4335 * @arg @ref LL_RCC_OTGPHY1CKREF_CLKSOURCE
4336 * @arg @ref LL_RCC_OTGPHY2CKREF_CLKSOURCE
4337 * @retval Returned value can be one of the following values:
4338 * @arg @ref LL_RCC_OTGPHY1CKREF_CLKSOURCE_OTGPHY1
4339 * @arg @ref LL_RCC_OTGPHY1CKREF_CLKSOURCE_HSE_DIV_2_OSC
4340 * @arg @ref LL_RCC_OTGPHY2CKREF_CLKSOURCE_OTGPHY2
4341 * @arg @ref LL_RCC_OTGPHY2CKREF_CLKSOURCE_HSE_DIV_2_OSC
4342 */
LL_RCC_GetOTGPHYCKREFClockSource(uint32_t Periph)4343 __STATIC_INLINE uint32_t LL_RCC_GetOTGPHYCKREFClockSource(uint32_t Periph)
4344 {
4345 return LL_RCC_GetClockSource(Periph);
4346 }
4347
4348 /**
4349 * @brief Get PSSI clock source
4350 * @rmtoll CCIPR7 PSSISEL LL_RCC_GetPSSIClockSource
4351 * @param Periph This parameter can be one of the following values:
4352 * @arg @ref LL_RCC_PSSI_CLKSOURCE
4353 * @retval Returned value can be one of the following values:
4354 * @arg @ref LL_RCC_PSSI_CLKSOURCE_HCLK
4355 * @arg @ref LL_RCC_PSSI_CLKSOURCE_CLKP
4356 * @arg @ref LL_RCC_PSSI_CLKSOURCE_IC20
4357 * @arg @ref LL_RCC_PSSI_CLKSOURCE_HSI
4358 */
LL_RCC_GetPSSIClockSource(uint32_t Periph)4359 __STATIC_INLINE uint32_t LL_RCC_GetPSSIClockSource(uint32_t Periph)
4360 {
4361 UNUSED(Periph);
4362 return (uint32_t)(READ_BIT(RCC->CCIPR7, RCC_CCIPR7_PSSISEL));
4363 }
4364
4365 /**
4366 * @brief Get SAIx clock source
4367 * @rmtoll CCIPR7 SAI1SEL LL_RCC_GetSAIClockSource\n
4368 * CCIPR7 SAI2SEL LL_RCC_GetSAIClockSource
4369 * @param Periph This parameter can be one of the following values:
4370 * @arg @ref LL_RCC_SAI1_CLKSOURCE
4371 * @arg @ref LL_RCC_SAI2_CLKSOURCE
4372 * @retval Returned value can be one of the following values:
4373 * @arg @ref LL_RCC_SAI1_CLKSOURCE_PCLK2
4374 * @arg @ref LL_RCC_SAI1_CLKSOURCE_CLKP
4375 * @arg @ref LL_RCC_SAI1_CLKSOURCE_IC7
4376 * @arg @ref LL_RCC_SAI1_CLKSOURCE_IC8
4377 * @arg @ref LL_RCC_SAI1_CLKSOURCE_MSI
4378 * @arg @ref LL_RCC_SAI1_CLKSOURCE_HSI
4379 * @arg @ref LL_RCC_SAI1_CLKSOURCE_I2S_CKIN
4380 * @arg @ref LL_RCC_SAI1_CLKSOURCE_SPDIFRX1
4381 * @arg @ref LL_RCC_SAI2_CLKSOURCE_PCLK2
4382 * @arg @ref LL_RCC_SAI2_CLKSOURCE_CLKP
4383 * @arg @ref LL_RCC_SAI2_CLKSOURCE_IC7
4384 * @arg @ref LL_RCC_SAI2_CLKSOURCE_IC8
4385 * @arg @ref LL_RCC_SAI2_CLKSOURCE_MSI
4386 * @arg @ref LL_RCC_SAI2_CLKSOURCE_HSI
4387 * @arg @ref LL_RCC_SAI2_CLKSOURCE_I2S_CKIN
4388 * @arg @ref LL_RCC_SAI2_CLKSOURCE_SPDIFRX1
4389 */
LL_RCC_GetSAIClockSource(uint32_t Periph)4390 __STATIC_INLINE uint32_t LL_RCC_GetSAIClockSource(uint32_t Periph)
4391 {
4392 return LL_RCC_GetClockSource(Periph);
4393 }
4394
4395 /**
4396 * @brief Get SDMMC clock source
4397 * @rmtoll CCIPR8 SDMMC1SEL LL_RCC_GetSDMMCClockSource\n
4398 * CCIPR8 SDMMC2SEL LL_RCC_GetSDMMCClockSource
4399 * @param Periph This parameter can be one of the following values:
4400 * @arg @ref LL_RCC_SDMMC1_CLKSOURCE
4401 * @arg @ref LL_RCC_SDMMC2_CLKSOURCE
4402 * @retval Returned value can be one of the following values:
4403 * @arg @ref LL_RCC_SDMMC1_CLKSOURCE_HCLK
4404 * @arg @ref LL_RCC_SDMMC1_CLKSOURCE_CLKP
4405 * @arg @ref LL_RCC_SDMMC1_CLKSOURCE_IC4
4406 * @arg @ref LL_RCC_SDMMC1_CLKSOURCE_IC5
4407 * @arg @ref LL_RCC_SDMMC2_CLKSOURCE_HCLK
4408 * @arg @ref LL_RCC_SDMMC2_CLKSOURCE_CLKP
4409 * @arg @ref LL_RCC_SDMMC2_CLKSOURCE_IC4
4410 * @arg @ref LL_RCC_SDMMC2_CLKSOURCE_IC5
4411 */
LL_RCC_GetSDMMCClockSource(uint32_t Periph)4412 __STATIC_INLINE uint32_t LL_RCC_GetSDMMCClockSource(uint32_t Periph)
4413 {
4414 return LL_RCC_GetClockSource(Periph);
4415 }
4416
4417 /**
4418 * @brief Get SPDIFRX Kernel clock source
4419 * @rmtoll CCIPR9 SPDIFRX1SEL LL_RCC_GetSPDIFRXClockSource
4420 * @param Periph This parameter can be one of the following values:
4421 * @arg @ref LL_RCC_SPDIFRX1_CLKSOURCE
4422 * @retval Returned value can be one of the following values:
4423 * @arg @ref LL_RCC_SPDIFRX1_CLKSOURCE_PCLK1
4424 * @arg @ref LL_RCC_SPDIFRX1_CLKSOURCE_CLKP
4425 * @arg @ref LL_RCC_SPDIFRX1_CLKSOURCE_IC7
4426 * @arg @ref LL_RCC_SPDIFRX1_CLKSOURCE_IC8
4427 * @arg @ref LL_RCC_SPDIFRX1_CLKSOURCE_MSI
4428 * @arg @ref LL_RCC_SPDIFRX1_CLKSOURCE_HSI
4429 * @arg @ref LL_RCC_SPDIFRX1_CLKSOURCE_I2S_CKIN
4430 */
LL_RCC_GetSPDIFRXClockSource(uint32_t Periph)4431 __STATIC_INLINE uint32_t LL_RCC_GetSPDIFRXClockSource(uint32_t Periph)
4432 {
4433 UNUSED(Periph);
4434 return (uint32_t)(READ_BIT(RCC->CCIPR9, RCC_CCIPR9_SPDIFRX1SEL));
4435 }
4436
4437 /**
4438 * @brief Get SPIx Kernel clock source
4439 * @rmtoll CCIPR9 SPI1SEL LL_RCC_GetSPIClockSource\n
4440 * CCIPR9 SPI2SEL LL_RCC_GetSPIClockSource\n
4441 * CCIPR9 SPI3SEL LL_RCC_GetSPIClockSource\n
4442 * CCIPR9 SPI4SEL LL_RCC_GetSPIClockSource\n
4443 * CCIPR9 SPI5SEL LL_RCC_GetSPIClockSource\n
4444 * CCIPR9 SPI6SEL LL_RCC_GetSPIClockSource
4445 * @param Periph This parameter can be one of the following values:
4446 * @arg @ref LL_RCC_SPI1_CLKSOURCE
4447 * @arg @ref LL_RCC_SPI2_CLKSOURCE
4448 * @arg @ref LL_RCC_SPI3_CLKSOURCE
4449 * @arg @ref LL_RCC_SPI4_CLKSOURCE
4450 * @arg @ref LL_RCC_SPI5_CLKSOURCE
4451 * @arg @ref LL_RCC_SPI6_CLKSOURCE
4452 * @retval Returned value can be one of the following values:
4453 * @arg @ref LL_RCC_SPI1_CLKSOURCE_PCLK2
4454 * @arg @ref LL_RCC_SPI1_CLKSOURCE_CLKP
4455 * @arg @ref LL_RCC_SPI1_CLKSOURCE_IC8
4456 * @arg @ref LL_RCC_SPI1_CLKSOURCE_IC9
4457 * @arg @ref LL_RCC_SPI1_CLKSOURCE_MSI
4458 * @arg @ref LL_RCC_SPI1_CLKSOURCE_HSI
4459 * @arg @ref LL_RCC_SPI1_CLKSOURCE_I2S_CKIN
4460 * @arg @ref LL_RCC_SPI2_CLKSOURCE_PCLK1
4461 * @arg @ref LL_RCC_SPI2_CLKSOURCE_CLKP
4462 * @arg @ref LL_RCC_SPI2_CLKSOURCE_IC8
4463 * @arg @ref LL_RCC_SPI2_CLKSOURCE_IC9
4464 * @arg @ref LL_RCC_SPI2_CLKSOURCE_MSI
4465 * @arg @ref LL_RCC_SPI2_CLKSOURCE_HSI
4466 * @arg @ref LL_RCC_SPI2_CLKSOURCE_I2S_CKIN
4467 * @arg @ref LL_RCC_SPI3_CLKSOURCE_PCLK1
4468 * @arg @ref LL_RCC_SPI3_CLKSOURCE_CLKP
4469 * @arg @ref LL_RCC_SPI3_CLKSOURCE_IC8
4470 * @arg @ref LL_RCC_SPI3_CLKSOURCE_IC9
4471 * @arg @ref LL_RCC_SPI3_CLKSOURCE_MSI
4472 * @arg @ref LL_RCC_SPI3_CLKSOURCE_HSI
4473 * @arg @ref LL_RCC_SPI3_CLKSOURCE_I2S_CKIN
4474 * @arg @ref LL_RCC_SPI4_CLKSOURCE_PCLK2
4475 * @arg @ref LL_RCC_SPI4_CLKSOURCE_CLKP
4476 * @arg @ref LL_RCC_SPI4_CLKSOURCE_IC9
4477 * @arg @ref LL_RCC_SPI4_CLKSOURCE_IC14
4478 * @arg @ref LL_RCC_SPI4_CLKSOURCE_MSI
4479 * @arg @ref LL_RCC_SPI4_CLKSOURCE_HSI
4480 * @arg @ref LL_RCC_SPI4_CLKSOURCE_HSE
4481 * @arg @ref LL_RCC_SPI5_CLKSOURCE_PCLK2
4482 * @arg @ref LL_RCC_SPI5_CLKSOURCE_CLKP
4483 * @arg @ref LL_RCC_SPI5_CLKSOURCE_IC9
4484 * @arg @ref LL_RCC_SPI5_CLKSOURCE_IC14
4485 * @arg @ref LL_RCC_SPI5_CLKSOURCE_MSI
4486 * @arg @ref LL_RCC_SPI5_CLKSOURCE_HSI
4487 * @arg @ref LL_RCC_SPI5_CLKSOURCE_HSE
4488 * @arg @ref LL_RCC_SPI6_CLKSOURCE_PCLK4
4489 * @arg @ref LL_RCC_SPI6_CLKSOURCE_CLKP
4490 * @arg @ref LL_RCC_SPI6_CLKSOURCE_IC8
4491 * @arg @ref LL_RCC_SPI6_CLKSOURCE_IC9
4492 * @arg @ref LL_RCC_SPI6_CLKSOURCE_MSI
4493 * @arg @ref LL_RCC_SPI6_CLKSOURCE_HSI
4494 * @arg @ref LL_RCC_SPI6_CLKSOURCE_I2S_CKIN
4495 */
LL_RCC_GetSPIClockSource(uint32_t Periph)4496 __STATIC_INLINE uint32_t LL_RCC_GetSPIClockSource(uint32_t Periph)
4497 {
4498 return LL_RCC_GetClockSource(Periph);
4499 }
4500
4501 /**
4502 * @brief Get USARTx clock source
4503 * @rmtoll CCIPR13 USART1SEL LL_RCC_GetUSARTClockSource\n
4504 * CCIPR13 USART2SEL LL_RCC_GetUSARTClockSource\n
4505 * CCIPR13 USART3SEL LL_RCC_GetUSARTClockSource\n
4506 * CCIPR13 USART6SEL LL_RCC_GetUSARTClockSource\n
4507 * CCIPR14 USART10SEL LL_RCC_GetUSARTClockSource
4508 * @param Periph This parameter can be one of the following values:
4509 * @arg @ref LL_RCC_USART1_CLKSOURCE
4510 * @arg @ref LL_RCC_USART2_CLKSOURCE
4511 * @arg @ref LL_RCC_USART3_CLKSOURCE
4512 * @arg @ref LL_RCC_USART6_CLKSOURCE
4513 * @arg @ref LL_RCC_USART10_CLKSOURCE
4514 * @retval Returned value can be one of the following values:
4515 * @arg @ref LL_RCC_USART1_CLKSOURCE_PCLK2
4516 * @arg @ref LL_RCC_USART1_CLKSOURCE_CLKP
4517 * @arg @ref LL_RCC_USART1_CLKSOURCE_IC9
4518 * @arg @ref LL_RCC_USART1_CLKSOURCE_IC14
4519 * @arg @ref LL_RCC_USART1_CLKSOURCE_LSE
4520 * @arg @ref LL_RCC_USART1_CLKSOURCE_MSI
4521 * @arg @ref LL_RCC_USART1_CLKSOURCE_HSI
4522 * @arg @ref LL_RCC_USART2_CLKSOURCE_PCLK1
4523 * @arg @ref LL_RCC_USART2_CLKSOURCE_CLKP
4524 * @arg @ref LL_RCC_USART2_CLKSOURCE_IC9
4525 * @arg @ref LL_RCC_USART2_CLKSOURCE_IC14
4526 * @arg @ref LL_RCC_USART2_CLKSOURCE_LSE
4527 * @arg @ref LL_RCC_USART2_CLKSOURCE_MSI
4528 * @arg @ref LL_RCC_USART2_CLKSOURCE_HSI
4529 * @arg @ref LL_RCC_USART3_CLKSOURCE_PCLK1
4530 * @arg @ref LL_RCC_USART3_CLKSOURCE_CLKP
4531 * @arg @ref LL_RCC_USART3_CLKSOURCE_IC9
4532 * @arg @ref LL_RCC_USART3_CLKSOURCE_IC14
4533 * @arg @ref LL_RCC_USART3_CLKSOURCE_LSE
4534 * @arg @ref LL_RCC_USART3_CLKSOURCE_MSI
4535 * @arg @ref LL_RCC_USART3_CLKSOURCE_HSI
4536 * @arg @ref LL_RCC_USART6_CLKSOURCE_PCLK2
4537 * @arg @ref LL_RCC_USART6_CLKSOURCE_CLKP
4538 * @arg @ref LL_RCC_USART6_CLKSOURCE_IC9
4539 * @arg @ref LL_RCC_USART6_CLKSOURCE_IC14
4540 * @arg @ref LL_RCC_USART6_CLKSOURCE_LSE
4541 * @arg @ref LL_RCC_USART6_CLKSOURCE_MSI
4542 * @arg @ref LL_RCC_USART6_CLKSOURCE_HSI
4543 * @arg @ref LL_RCC_USART10_CLKSOURCE_PCLK2
4544 * @arg @ref LL_RCC_USART10_CLKSOURCE_CLKP
4545 * @arg @ref LL_RCC_USART10_CLKSOURCE_IC9
4546 * @arg @ref LL_RCC_USART10_CLKSOURCE_IC14
4547 * @arg @ref LL_RCC_USART10_CLKSOURCE_LSE
4548 * @arg @ref LL_RCC_USART10_CLKSOURCE_MSI
4549 * @arg @ref LL_RCC_USART10_CLKSOURCE_HSI
4550 */
LL_RCC_GetUSARTClockSource(uint32_t Periph)4551 __STATIC_INLINE uint32_t LL_RCC_GetUSARTClockSource(uint32_t Periph)
4552 {
4553 return LL_RCC_GetClockSource(Periph);
4554 }
4555
4556 /**
4557 * @brief Get USARTx clock source
4558 * @rmtoll CCIPR13 UART4SEL LL_RCC_GetUARTClockSource\n
4559 * CCIPR13 UART5SEL LL_RCC_GetUARTClockSource\n
4560 * CCIPR13 UART7SEL LL_RCC_GetUARTClockSource\n
4561 * CCIPR13 UART8SEL LL_RCC_GetUARTClockSource\n
4562 * CCIPR14 UART9SEL LL_RCC_GetUARTClockSource
4563 * @param Periph This parameter can be one of the following values:
4564 * @arg @ref LL_RCC_UART4_CLKSOURCE
4565 * @arg @ref LL_RCC_UART5_CLKSOURCE
4566 * @arg @ref LL_RCC_UART7_CLKSOURCE
4567 * @arg @ref LL_RCC_UART8_CLKSOURCE
4568 * @arg @ref LL_RCC_UART9_CLKSOURCE
4569 * @retval Returned value can be one of the following values:
4570 * @arg @ref LL_RCC_UART4_CLKSOURCE_PCLK1
4571 * @arg @ref LL_RCC_UART4_CLKSOURCE_CLKP
4572 * @arg @ref LL_RCC_UART4_CLKSOURCE_IC9
4573 * @arg @ref LL_RCC_UART4_CLKSOURCE_IC14
4574 * @arg @ref LL_RCC_UART4_CLKSOURCE_LSE
4575 * @arg @ref LL_RCC_UART4_CLKSOURCE_MSI
4576 * @arg @ref LL_RCC_UART4_CLKSOURCE_HSI
4577 * @arg @ref LL_RCC_UART5_CLKSOURCE_PCLK1
4578 * @arg @ref LL_RCC_UART5_CLKSOURCE_CLKP
4579 * @arg @ref LL_RCC_UART5_CLKSOURCE_IC9
4580 * @arg @ref LL_RCC_UART5_CLKSOURCE_IC14
4581 * @arg @ref LL_RCC_UART5_CLKSOURCE_LSE
4582 * @arg @ref LL_RCC_UART5_CLKSOURCE_MSI
4583 * @arg @ref LL_RCC_UART5_CLKSOURCE_HSI
4584 * @arg @ref LL_RCC_UART7_CLKSOURCE_PCLK1
4585 * @arg @ref LL_RCC_UART7_CLKSOURCE_CLKP
4586 * @arg @ref LL_RCC_UART7_CLKSOURCE_IC9
4587 * @arg @ref LL_RCC_UART7_CLKSOURCE_IC14
4588 * @arg @ref LL_RCC_UART7_CLKSOURCE_LSE
4589 * @arg @ref LL_RCC_UART7_CLKSOURCE_MSI
4590 * @arg @ref LL_RCC_UART7_CLKSOURCE_HSI
4591 * @arg @ref LL_RCC_UART8_CLKSOURCE_PCLK1
4592 * @arg @ref LL_RCC_UART8_CLKSOURCE_CLKP
4593 * @arg @ref LL_RCC_UART8_CLKSOURCE_IC9
4594 * @arg @ref LL_RCC_UART8_CLKSOURCE_IC14
4595 * @arg @ref LL_RCC_UART8_CLKSOURCE_LSE
4596 * @arg @ref LL_RCC_UART8_CLKSOURCE_MSI
4597 * @arg @ref LL_RCC_UART8_CLKSOURCE_HSI
4598 * @arg @ref LL_RCC_UART9_CLKSOURCE_PCLK2
4599 * @arg @ref LL_RCC_UART9_CLKSOURCE_CLKP
4600 * @arg @ref LL_RCC_UART9_CLKSOURCE_IC9
4601 * @arg @ref LL_RCC_UART9_CLKSOURCE_IC14
4602 * @arg @ref LL_RCC_UART9_CLKSOURCE_LSE
4603 * @arg @ref LL_RCC_UART9_CLKSOURCE_MSI
4604 * @arg @ref LL_RCC_UART9_CLKSOURCE_HSI
4605 * @retval None
4606 */
LL_RCC_GetUARTClockSource(uint32_t Periph)4607 __STATIC_INLINE uint32_t LL_RCC_GetUARTClockSource(uint32_t Periph)
4608 {
4609 return LL_RCC_GetClockSource(Periph);
4610 }
4611
4612 /**
4613 * @brief Get USB clock source
4614 * @rmtoll CCIPR6 OTGPHY1SEL LL_RCC_GetUSBClockSource\n
4615 * CCIPR6 OTGPHY1CKREFSEL LL_RCC_GetUSBClockSource\n
4616 * CCIPR6 OTGPHY2SEL LL_RCC_GetUSBClockSource\n
4617 * CCIPR6 OTGPHY2CKREFSEL LL_RCC_GetUSBClockSource\n
4618 * @param Periph This parameter can be one of the following values:
4619 * @arg @ref LL_RCC_OTGPHY1_CLKSOURCE
4620 * @arg @ref LL_RCC_OTGPHY1CKREF_CLKSOURCE
4621 * @arg @ref LL_RCC_OTGPHY2_CLKSOURCE
4622 * @arg @ref LL_RCC_OTGPHY2CKREF_CLKSOURCE
4623 * @retval Returned value can be one of the following values:
4624 * @arg @ref LL_RCC_OTGPHY1_CLKSOURCE_HSE_DIV_2
4625 * @arg @ref LL_RCC_OTGPHY1_CLKSOURCE_CLKP
4626 * @arg @ref LL_RCC_OTGPHY1_CLKSOURCE_IC15
4627 * @arg @ref LL_RCC_OTGPHY1_CLKSOURCE_HSE_DIV_2_OSC
4628 * @arg @ref LL_RCC_OTGPHY1CKREF_CLKSOURCE_OTGPHY1
4629 * @arg @ref LL_RCC_OTGPHY1CKREF_CLKSOURCE_HSE_DIV_2_OSC
4630 * @arg @ref LL_RCC_OTGPHY2_CLKSOURCE_HSE_DIV_2
4631 * @arg @ref LL_RCC_OTGPHY2_CLKSOURCE_CLKP
4632 * @arg @ref LL_RCC_OTGPHY2_CLKSOURCE_IC15
4633 * @arg @ref LL_RCC_OTGPHY2_CLKSOURCE_HSE_DIV_2_OSC
4634 * @arg @ref LL_RCC_OTGPHY2CKREF_CLKSOURCE_OTGPHY2
4635 * @arg @ref LL_RCC_OTGPHY2CKREF_CLKSOURCE_HSE_DIV_2_OSC
4636 */
LL_RCC_GetUSBClockSource(uint32_t Periph)4637 __STATIC_INLINE uint32_t LL_RCC_GetUSBClockSource(uint32_t Periph)
4638 {
4639 return LL_RCC_GetClockSource(Periph);
4640 }
4641
4642
4643 /**
4644 * @brief Get XSPI Kernel clock source
4645 * @rmtoll CCIPR6 XSPI1SEL LL_RCC_GetXSPIClockSource\n
4646 * CCIPR6 XSPI2SEL LL_RCC_GetXSPIClockSource\n
4647 * CCIPR6 XSPI3SEL LL_RCC_GetXSPIClockSource
4648 * @param Periph This parameter can be one of the following values:
4649 * @arg @ref LL_RCC_XSPI1_CLKSOURCE
4650 * @arg @ref LL_RCC_XSPI2_CLKSOURCE
4651 * @arg @ref LL_RCC_XSPI3_CLKSOURCE
4652 * @retval Returned value can be one of the following values:
4653 * @arg @ref LL_RCC_XSPI1_CLKSOURCE_HCLK
4654 * @arg @ref LL_RCC_XSPI1_CLKSOURCE_CLKP
4655 * @arg @ref LL_RCC_XSPI1_CLKSOURCE_IC3
4656 * @arg @ref LL_RCC_XSPI1_CLKSOURCE_IC4
4657 * @arg @ref LL_RCC_XSPI2_CLKSOURCE_HCLK
4658 * @arg @ref LL_RCC_XSPI2_CLKSOURCE_CLKP
4659 * @arg @ref LL_RCC_XSPI2_CLKSOURCE_IC3
4660 * @arg @ref LL_RCC_XSPI2_CLKSOURCE_IC4
4661 * @arg @ref LL_RCC_XSPI3_CLKSOURCE_HCLK
4662 * @arg @ref LL_RCC_XSPI3_CLKSOURCE_CLKP
4663 * @arg @ref LL_RCC_XSPI3_CLKSOURCE_IC3
4664 * @arg @ref LL_RCC_XSPI3_CLKSOURCE_IC4
4665 */
LL_RCC_GetXSPIClockSource(uint32_t Periph)4666 __STATIC_INLINE uint32_t LL_RCC_GetXSPIClockSource(uint32_t Periph)
4667 {
4668 return LL_RCC_GetClockSource(Periph);
4669 }
4670
4671
4672 /**
4673 * @}
4674 */
4675
4676 /** @defgroup RCC_LL_EF_RTC RTC
4677 * @{
4678 */
4679
4680 /**
4681 * @brief Set RTC Clock Source
4682 * @note Once the RTC clock source has been selected, it cannot be changed anymore unless
4683 * the Backup domain is reset, or unless a failure is detected on LSE (LSECSSD is
4684 * set).
4685 * @rmtoll CCIPR7 RTCSEL LL_RCC_SetRTCClockSource
4686 * @param Source This parameter can be one of the following values:
4687 * @arg @ref LL_RCC_RTC_CLKSOURCE_NONE
4688 * @arg @ref LL_RCC_RTC_CLKSOURCE_LSE
4689 * @arg @ref LL_RCC_RTC_CLKSOURCE_LSI
4690 * @arg @ref LL_RCC_RTC_CLKSOURCE_HSE
4691 * @retval None
4692 */
LL_RCC_SetRTCClockSource(uint32_t Source)4693 __STATIC_INLINE void LL_RCC_SetRTCClockSource(uint32_t Source)
4694 {
4695 MODIFY_REG(RCC->CCIPR7, RCC_CCIPR7_RTCSEL, Source);
4696 }
4697
4698 /**
4699 * @brief Get RTC Clock Source
4700 * @rmtoll CCIPR7 RTCSEL LL_RCC_GetRTCClockSource
4701 * @retval Returned value can be one of the following values:
4702 * @arg @ref LL_RCC_RTC_CLKSOURCE_NONE
4703 * @arg @ref LL_RCC_RTC_CLKSOURCE_LSE
4704 * @arg @ref LL_RCC_RTC_CLKSOURCE_LSI
4705 * @arg @ref LL_RCC_RTC_CLKSOURCE_HSE
4706 */
LL_RCC_GetRTCClockSource(void)4707 __STATIC_INLINE uint32_t LL_RCC_GetRTCClockSource(void)
4708 {
4709 return (uint32_t)(READ_BIT(RCC->CCIPR7, RCC_CCIPR7_RTCSEL));
4710 }
4711
4712 /**
4713 * @brief Enable RTC
4714 * @rmtoll APB4ENSR1 RTCENS LL_RCC_EnableRTC
4715 * @retval None
4716 */
LL_RCC_EnableRTC(void)4717 __STATIC_INLINE void LL_RCC_EnableRTC(void)
4718 {
4719 WRITE_REG(RCC->APB4ENSR1, RCC_APB4ENSR1_RTCENS);
4720 }
4721
4722 /**
4723 * @brief Disable RTC
4724 * @rmtoll APB4ENCR1 RTCENC LL_RCC_DisableRTC
4725 * @retval None
4726 */
LL_RCC_DisableRTC(void)4727 __STATIC_INLINE void LL_RCC_DisableRTC(void)
4728 {
4729 WRITE_REG(RCC->APB4ENCR1, RCC_APB4ENCR1_RTCENC);
4730 }
4731
4732 /**
4733 * @brief Check if RTC has been enabled or not
4734 * @rmtoll APB4ENR1 RTCEN LL_RCC_IsEnabledRTC
4735 * @retval State of bit (1 or 0).
4736 */
LL_RCC_IsEnabledRTC(void)4737 __STATIC_INLINE uint32_t LL_RCC_IsEnabledRTC(void)
4738 {
4739 return ((READ_BIT(RCC->APB4ENR1, RCC_APB4ENR1_RTCEN) == (RCC_APB4ENR1_RTCEN)) ? 1UL : 0UL);
4740 }
4741
4742 /**
4743 * @brief Force the Backup domain reset
4744 * @rmtoll BDCR VSWRST LL_RCC_ForceBackupDomainReset
4745 * @retval None
4746 */
LL_RCC_ForceBackupDomainReset(void)4747 __STATIC_INLINE void LL_RCC_ForceBackupDomainReset(void)
4748 {
4749 SET_BIT(RCC->BDCR, RCC_BDCR_VSWRST);
4750 }
4751
4752 /**
4753 * @brief Release the Backup domain reset
4754 * @rmtoll BDCR VSWRST LL_RCC_ReleaseBackupDomainReset
4755 * @retval None
4756 */
LL_RCC_ReleaseBackupDomainReset(void)4757 __STATIC_INLINE void LL_RCC_ReleaseBackupDomainReset(void)
4758 {
4759 CLEAR_BIT(RCC->BDCR, RCC_BDCR_VSWRST);
4760 }
4761
4762 /**
4763 * @brief Set HSE Prescaler for RTC Clock
4764 * @rmtoll CCIPR7 RTCPRE LL_RCC_SetRTC_HSEPrescaler
4765 * @param Prescaler This parameter can be one of the following values:
4766 * @arg @ref LL_RCC_RTC_HSE_DIV_1
4767 * @arg @ref LL_RCC_RTC_HSE_DIV_2
4768 * @arg @ref LL_RCC_RTC_HSE_DIV_3
4769 * @arg @ref LL_RCC_RTC_HSE_DIV_4
4770 * @arg @ref LL_RCC_RTC_HSE_DIV_5
4771 * @arg @ref LL_RCC_RTC_HSE_DIV_6
4772 * @arg @ref LL_RCC_RTC_HSE_DIV_7
4773 * @arg @ref LL_RCC_RTC_HSE_DIV_8
4774 * @arg @ref LL_RCC_RTC_HSE_DIV_9
4775 * @arg @ref LL_RCC_RTC_HSE_DIV_10
4776 * @arg @ref LL_RCC_RTC_HSE_DIV_11
4777 * @arg @ref LL_RCC_RTC_HSE_DIV_12
4778 * @arg @ref LL_RCC_RTC_HSE_DIV_13
4779 * @arg @ref LL_RCC_RTC_HSE_DIV_14
4780 * @arg @ref LL_RCC_RTC_HSE_DIV_15
4781 * @arg @ref LL_RCC_RTC_HSE_DIV_16
4782 * @arg @ref LL_RCC_RTC_HSE_DIV_17
4783 * @arg @ref LL_RCC_RTC_HSE_DIV_18
4784 * @arg @ref LL_RCC_RTC_HSE_DIV_19
4785 * @arg @ref LL_RCC_RTC_HSE_DIV_20
4786 * @arg @ref LL_RCC_RTC_HSE_DIV_21
4787 * @arg @ref LL_RCC_RTC_HSE_DIV_22
4788 * @arg @ref LL_RCC_RTC_HSE_DIV_23
4789 * @arg @ref LL_RCC_RTC_HSE_DIV_24
4790 * @arg @ref LL_RCC_RTC_HSE_DIV_25
4791 * @arg @ref LL_RCC_RTC_HSE_DIV_26
4792 * @arg @ref LL_RCC_RTC_HSE_DIV_27
4793 * @arg @ref LL_RCC_RTC_HSE_DIV_28
4794 * @arg @ref LL_RCC_RTC_HSE_DIV_29
4795 * @arg @ref LL_RCC_RTC_HSE_DIV_30
4796 * @arg @ref LL_RCC_RTC_HSE_DIV_31
4797 * @arg @ref LL_RCC_RTC_HSE_DIV_32
4798 * @arg @ref LL_RCC_RTC_HSE_DIV_33
4799 * @arg @ref LL_RCC_RTC_HSE_DIV_34
4800 * @arg @ref LL_RCC_RTC_HSE_DIV_35
4801 * @arg @ref LL_RCC_RTC_HSE_DIV_36
4802 * @arg @ref LL_RCC_RTC_HSE_DIV_37
4803 * @arg @ref LL_RCC_RTC_HSE_DIV_38
4804 * @arg @ref LL_RCC_RTC_HSE_DIV_39
4805 * @arg @ref LL_RCC_RTC_HSE_DIV_40
4806 * @arg @ref LL_RCC_RTC_HSE_DIV_41
4807 * @arg @ref LL_RCC_RTC_HSE_DIV_42
4808 * @arg @ref LL_RCC_RTC_HSE_DIV_43
4809 * @arg @ref LL_RCC_RTC_HSE_DIV_44
4810 * @arg @ref LL_RCC_RTC_HSE_DIV_45
4811 * @arg @ref LL_RCC_RTC_HSE_DIV_46
4812 * @arg @ref LL_RCC_RTC_HSE_DIV_47
4813 * @arg @ref LL_RCC_RTC_HSE_DIV_48
4814 * @arg @ref LL_RCC_RTC_HSE_DIV_49
4815 * @arg @ref LL_RCC_RTC_HSE_DIV_50
4816 * @arg @ref LL_RCC_RTC_HSE_DIV_51
4817 * @arg @ref LL_RCC_RTC_HSE_DIV_52
4818 * @arg @ref LL_RCC_RTC_HSE_DIV_53
4819 * @arg @ref LL_RCC_RTC_HSE_DIV_54
4820 * @arg @ref LL_RCC_RTC_HSE_DIV_55
4821 * @arg @ref LL_RCC_RTC_HSE_DIV_56
4822 * @arg @ref LL_RCC_RTC_HSE_DIV_57
4823 * @arg @ref LL_RCC_RTC_HSE_DIV_58
4824 * @arg @ref LL_RCC_RTC_HSE_DIV_59
4825 * @arg @ref LL_RCC_RTC_HSE_DIV_60
4826 * @arg @ref LL_RCC_RTC_HSE_DIV_61
4827 * @arg @ref LL_RCC_RTC_HSE_DIV_62
4828 * @arg @ref LL_RCC_RTC_HSE_DIV_63
4829 * @retval None
4830 */
LL_RCC_SetRTC_HSEPrescaler(uint32_t Prescaler)4831 __STATIC_INLINE void LL_RCC_SetRTC_HSEPrescaler(uint32_t Prescaler)
4832 {
4833 MODIFY_REG(RCC->CCIPR7, RCC_CCIPR7_RTCPRE, Prescaler);
4834 }
4835
4836 /**
4837 * @brief Get HSE Prescaler for RTC Clock
4838 * @rmtoll CCIPR7 RTCPRE LL_RCC_GetRTC_HSEPrescaler
4839 * @retval Returned value can be one of the following values:
4840 * @arg @ref LL_RCC_RTC_HSE_DIV_1
4841 * @arg @ref LL_RCC_RTC_HSE_DIV_2
4842 * @arg @ref LL_RCC_RTC_HSE_DIV_3
4843 * @arg @ref LL_RCC_RTC_HSE_DIV_4
4844 * @arg @ref LL_RCC_RTC_HSE_DIV_5
4845 * @arg @ref LL_RCC_RTC_HSE_DIV_6
4846 * @arg @ref LL_RCC_RTC_HSE_DIV_7
4847 * @arg @ref LL_RCC_RTC_HSE_DIV_8
4848 * @arg @ref LL_RCC_RTC_HSE_DIV_9
4849 * @arg @ref LL_RCC_RTC_HSE_DIV_10
4850 * @arg @ref LL_RCC_RTC_HSE_DIV_11
4851 * @arg @ref LL_RCC_RTC_HSE_DIV_12
4852 * @arg @ref LL_RCC_RTC_HSE_DIV_13
4853 * @arg @ref LL_RCC_RTC_HSE_DIV_14
4854 * @arg @ref LL_RCC_RTC_HSE_DIV_15
4855 * @arg @ref LL_RCC_RTC_HSE_DIV_16
4856 * @arg @ref LL_RCC_RTC_HSE_DIV_17
4857 * @arg @ref LL_RCC_RTC_HSE_DIV_18
4858 * @arg @ref LL_RCC_RTC_HSE_DIV_19
4859 * @arg @ref LL_RCC_RTC_HSE_DIV_20
4860 * @arg @ref LL_RCC_RTC_HSE_DIV_21
4861 * @arg @ref LL_RCC_RTC_HSE_DIV_22
4862 * @arg @ref LL_RCC_RTC_HSE_DIV_23
4863 * @arg @ref LL_RCC_RTC_HSE_DIV_24
4864 * @arg @ref LL_RCC_RTC_HSE_DIV_25
4865 * @arg @ref LL_RCC_RTC_HSE_DIV_26
4866 * @arg @ref LL_RCC_RTC_HSE_DIV_27
4867 * @arg @ref LL_RCC_RTC_HSE_DIV_28
4868 * @arg @ref LL_RCC_RTC_HSE_DIV_29
4869 * @arg @ref LL_RCC_RTC_HSE_DIV_30
4870 * @arg @ref LL_RCC_RTC_HSE_DIV_31
4871 * @arg @ref LL_RCC_RTC_HSE_DIV_32
4872 * @arg @ref LL_RCC_RTC_HSE_DIV_33
4873 * @arg @ref LL_RCC_RTC_HSE_DIV_34
4874 * @arg @ref LL_RCC_RTC_HSE_DIV_35
4875 * @arg @ref LL_RCC_RTC_HSE_DIV_36
4876 * @arg @ref LL_RCC_RTC_HSE_DIV_37
4877 * @arg @ref LL_RCC_RTC_HSE_DIV_38
4878 * @arg @ref LL_RCC_RTC_HSE_DIV_39
4879 * @arg @ref LL_RCC_RTC_HSE_DIV_40
4880 * @arg @ref LL_RCC_RTC_HSE_DIV_41
4881 * @arg @ref LL_RCC_RTC_HSE_DIV_42
4882 * @arg @ref LL_RCC_RTC_HSE_DIV_43
4883 * @arg @ref LL_RCC_RTC_HSE_DIV_44
4884 * @arg @ref LL_RCC_RTC_HSE_DIV_45
4885 * @arg @ref LL_RCC_RTC_HSE_DIV_46
4886 * @arg @ref LL_RCC_RTC_HSE_DIV_47
4887 * @arg @ref LL_RCC_RTC_HSE_DIV_48
4888 * @arg @ref LL_RCC_RTC_HSE_DIV_49
4889 * @arg @ref LL_RCC_RTC_HSE_DIV_50
4890 * @arg @ref LL_RCC_RTC_HSE_DIV_51
4891 * @arg @ref LL_RCC_RTC_HSE_DIV_52
4892 * @arg @ref LL_RCC_RTC_HSE_DIV_53
4893 * @arg @ref LL_RCC_RTC_HSE_DIV_54
4894 * @arg @ref LL_RCC_RTC_HSE_DIV_55
4895 * @arg @ref LL_RCC_RTC_HSE_DIV_56
4896 * @arg @ref LL_RCC_RTC_HSE_DIV_57
4897 * @arg @ref LL_RCC_RTC_HSE_DIV_58
4898 * @arg @ref LL_RCC_RTC_HSE_DIV_59
4899 * @arg @ref LL_RCC_RTC_HSE_DIV_60
4900 * @arg @ref LL_RCC_RTC_HSE_DIV_61
4901 * @arg @ref LL_RCC_RTC_HSE_DIV_62
4902 * @arg @ref LL_RCC_RTC_HSE_DIV_63
4903 */
LL_RCC_GetRTC_HSEPrescaler(void)4904 __STATIC_INLINE uint32_t LL_RCC_GetRTC_HSEPrescaler(void)
4905 {
4906 return (uint32_t)(READ_BIT(RCC->CCIPR7, RCC_CCIPR7_RTCPRE));
4907 }
4908
4909 /**
4910 * @}
4911 */
4912
4913 /** @defgroup RCC_LL_EF_TIM_CLOCK_PRESCALER TIM
4914 * @{
4915 */
4916
4917 /**
4918 * @brief Set Timers Clock Prescalers
4919 * @rmtoll CFGR2 TIMPRE LL_RCC_SetTIMPrescaler
4920 * @param Prescaler This parameter can be one of the following values:
4921 * @arg @ref LL_RCC_TIM_PRESCALER_1
4922 * @arg @ref LL_RCC_TIM_PRESCALER_2
4923 * @arg @ref LL_RCC_TIM_PRESCALER_4
4924 * @arg @ref LL_RCC_TIM_PRESCALER_8
4925 * @retval None
4926 */
LL_RCC_SetTIMPrescaler(uint32_t Prescaler)4927 __STATIC_INLINE void LL_RCC_SetTIMPrescaler(uint32_t Prescaler)
4928 {
4929 MODIFY_REG(RCC->CFGR2, RCC_CFGR2_TIMPRE, Prescaler << RCC_CFGR2_TIMPRE_Pos);
4930 }
4931
4932 /**
4933 * @brief Get Timers Clock Prescalers
4934 * @rmtoll CFGR2 TIMPRE LL_RCC_GetTIMPrescaler
4935 * @retval Returned value can be one of the following values:
4936 * @arg @ref LL_RCC_TIM_PRESCALER_1
4937 * @arg @ref LL_RCC_TIM_PRESCALER_2
4938 * @arg @ref LL_RCC_TIM_PRESCALER_4
4939 * @arg @ref LL_RCC_TIM_PRESCALER_8
4940 */
LL_RCC_GetTIMPrescaler(void)4941 __STATIC_INLINE uint32_t LL_RCC_GetTIMPrescaler(void)
4942 {
4943 return (uint32_t)(READ_BIT(RCC->CFGR2, RCC_CFGR2_TIMPRE) >> RCC_CFGR2_TIMPRE_Pos);
4944 }
4945
4946 /**
4947 * @}
4948 */
4949
4950 /** @defgroup RCC_LL_EF_PLL PLL
4951 * @{
4952 */
4953
4954 /**
4955 * @brief Set the oscillator used as PLL clock source.
4956 * @note PLL1SEL can be written only when All PLLs are disabled.
4957 * @rmtoll PLL1CFGR1 PLL1SEL LL_RCC_PLL1_SetSource
4958 * @param PLLSource parameter can be one of the following values:
4959 * @arg @ref LL_RCC_PLLSOURCE_HSI
4960 * @arg @ref LL_RCC_PLLSOURCE_MSI
4961 * @arg @ref LL_RCC_PLLSOURCE_HSE
4962 * @arg @ref LL_RCC_PLLSOURCE_I2S_CKIN
4963 * @retval None
4964 */
LL_RCC_PLL1_SetSource(uint32_t PLLSource)4965 __STATIC_INLINE void LL_RCC_PLL1_SetSource(uint32_t PLLSource)
4966 {
4967 MODIFY_REG(RCC->PLL1CFGR1, RCC_PLL1CFGR1_PLL1SEL, PLLSource);
4968 }
4969
4970 /**
4971 * @brief Get the oscillator used as PLL clock source.
4972 * @rmtoll PLL1CFGR1 PLL1SEL LL_RCC_PLL1_GetSource
4973 * @retval Returned value can be one of the following values:
4974 * @arg @ref LL_RCC_PLLSOURCE_HSI
4975 * @arg @ref LL_RCC_PLLSOURCE_MSI
4976 * @arg @ref LL_RCC_PLLSOURCE_HSE
4977 * @arg @ref LL_RCC_PLLSOURCE_I2S_CKIN
4978 */
LL_RCC_PLL1_GetSource(void)4979 __STATIC_INLINE uint32_t LL_RCC_PLL1_GetSource(void)
4980 {
4981 return (uint32_t)(READ_BIT(RCC->PLL1CFGR1, RCC_PLL1CFGR1_PLL1SEL));
4982 }
4983
4984 /**
4985 * @brief Enable PLL1
4986 * @rmtoll CSR PLL1ONS LL_RCC_PLL1_Enable
4987 * @retval None
4988 */
LL_RCC_PLL1_Enable(void)4989 __STATIC_INLINE void LL_RCC_PLL1_Enable(void)
4990 {
4991 WRITE_REG(RCC->CSR, RCC_CSR_PLL1ONS);
4992 }
4993
4994 /**
4995 * @brief Disable PLL1
4996 * @note Cannot be disabled if the PLL1 clock is used as the system clock
4997 * @rmtoll CCR PLL1ONC LL_RCC_PLL1_Disable
4998 * @retval None
4999 */
LL_RCC_PLL1_Disable(void)5000 __STATIC_INLINE void LL_RCC_PLL1_Disable(void)
5001 {
5002 WRITE_REG(RCC->CCR, RCC_CCR_PLL1ONC);
5003 }
5004
5005 /**
5006 * @brief Check if PLL1 Ready
5007 * @rmtoll SR PLL1RDY LL_RCC_PLL1_IsReady
5008 * @retval State of bit (1 or 0).
5009 */
LL_RCC_PLL1_IsReady(void)5010 __STATIC_INLINE uint32_t LL_RCC_PLL1_IsReady(void)
5011 {
5012 return ((READ_BIT(RCC->SR, RCC_SR_PLL1RDY) == (RCC_SR_PLL1RDY)) ? 1UL : 0UL);
5013 }
5014
5015 /**
5016 * @brief Enable PLL1 bypass (PLL1 output is driven by the PLL1 reference clock)
5017 * @note This API shall be called only when PLL1 is disabled.
5018 * @rmtoll PLL1CFGR1 PLL1BYP LL_RCC_PLL1_EnableBypass
5019 * @retval None
5020 */
LL_RCC_PLL1_EnableBypass(void)5021 __STATIC_INLINE void LL_RCC_PLL1_EnableBypass(void)
5022 {
5023 SET_BIT(RCC->PLL1CFGR1, RCC_PLL1CFGR1_PLL1BYP);
5024 }
5025
5026 /**
5027 * @brief Disable PLL1 bypass (PLL1 output is driven by the VCO)
5028 * @note This API shall be called only when PLL1 is disabled.
5029 * @rmtoll PLL1CFGR1 PLL1BYP LL_RCC_PLL1_DisableBypass
5030 * @retval None
5031 */
LL_RCC_PLL1_DisableBypass(void)5032 __STATIC_INLINE void LL_RCC_PLL1_DisableBypass(void)
5033 {
5034 CLEAR_BIT(RCC->PLL1CFGR1, RCC_PLL1CFGR1_PLL1BYP);
5035 }
5036
5037 /**
5038 * @brief Check if PLL1 bypass is enabled
5039 * @rmtoll PLL1CFGR1 PLL1BYP LL_RCC_PLL1_IsEnabledBypass
5040 * @retval State of bit (1 or 0).
5041 */
LL_RCC_PLL1_IsEnabledBypass(void)5042 __STATIC_INLINE uint32_t LL_RCC_PLL1_IsEnabledBypass(void)
5043 {
5044 return ((READ_BIT(RCC->PLL1CFGR1, RCC_PLL1CFGR1_PLL1BYP) == RCC_PLL1CFGR1_PLL1BYP) ? 1UL : 0UL);
5045 }
5046
5047 /**
5048 * @brief Assert PLL1 modulation spread-spectrum reset
5049 * @note This API shall be called only when PLL1 is disabled.
5050 * @rmtoll PLL1CFGR3 PLL1MODSSRST LL_RCC_PLL1_AssertModulationSpreadSpectrumReset
5051 * @retval None
5052 */
LL_RCC_PLL1_AssertModulationSpreadSpectrumReset(void)5053 __STATIC_INLINE void LL_RCC_PLL1_AssertModulationSpreadSpectrumReset(void)
5054 {
5055 SET_BIT(RCC->PLL1CFGR3, RCC_PLL1CFGR3_PLL1MODSSRST);
5056 }
5057
5058 /**
5059 * @brief Release PLL1 modulation spread-spectrum reset
5060 * @note This API shall be called only when PLL1 is disabled.
5061 * @rmtoll PLL1CFGR3 PLL1MODSSRST LL_RCC_PLL1_ReleaseModulationSpreadSpectrumReset
5062 * @retval None
5063 */
LL_RCC_PLL1_ReleaseModulationSpreadSpectrumReset(void)5064 __STATIC_INLINE void LL_RCC_PLL1_ReleaseModulationSpreadSpectrumReset(void)
5065 {
5066 CLEAR_BIT(RCC->PLL1CFGR3, RCC_PLL1CFGR3_PLL1MODSSRST);
5067 }
5068
5069 /**
5070 * @brief Enable PLL1 noise canceling DAC in fractional mode
5071 * @note This API shall be called only when PLL1 is disabled.
5072 * @rmtoll PLL1CFGR3 PLL1DACEN LL_RCC_PLL1_EnableDAC
5073 * @retval None
5074 */
LL_RCC_PLL1_EnableDAC(void)5075 __STATIC_INLINE void LL_RCC_PLL1_EnableDAC(void)
5076 {
5077 SET_BIT(RCC->PLL1CFGR3, RCC_PLL1CFGR3_PLL1DACEN);
5078 }
5079
5080 /**
5081 * @brief Disable PLL1 noise canceling DAC in fractional mode
5082 * @note This API shall be called only when PLL1 is disabled.
5083 * @rmtoll PLL1CFGR3 PLL1DACEN LL_RCC_PLL1_DisableDAC
5084 * @retval None
5085 */
LL_RCC_PLL1_DisableDAC(void)5086 __STATIC_INLINE void LL_RCC_PLL1_DisableDAC(void)
5087 {
5088 CLEAR_BIT(RCC->PLL1CFGR3, RCC_PLL1CFGR3_PLL1DACEN);
5089 }
5090
5091 /**
5092 * @brief Check if PLL1 noise canceling DAC in fractional mode is enabled
5093 * @rmtoll PLL1CFGR3 PLL1DACEN LL_RCC_PLL1_IsEnabledDAC
5094 * @retval State of bit (1 or 0).
5095 */
LL_RCC_PLL1_IsEnabledDAC(void)5096 __STATIC_INLINE uint32_t LL_RCC_PLL1_IsEnabledDAC(void)
5097 {
5098 return ((READ_BIT(RCC->PLL1CFGR3, RCC_PLL1CFGR3_PLL1DACEN) == RCC_PLL1CFGR3_PLL1DACEN) ? 1UL : 0UL);
5099 }
5100
5101 /**
5102 * @brief Enable PLL1 modulation spread-spectrum with fractional divide inactive
5103 * @note This API shall be called only when PLL1 is disabled.
5104 * @rmtoll PLL1CFGR3 PLL1MODSSDIS LL_RCC_PLL1_EnableModulationSpreadSpectrum
5105 * @retval None
5106 */
LL_RCC_PLL1_EnableModulationSpreadSpectrum(void)5107 __STATIC_INLINE void LL_RCC_PLL1_EnableModulationSpreadSpectrum(void)
5108 {
5109 CLEAR_BIT(RCC->PLL1CFGR3, RCC_PLL1CFGR3_PLL1MODSSDIS);
5110 }
5111
5112 /**
5113 * @brief Disable PLL1 modulation spread-spectrum but active fractional divide
5114 * @note This API shall be called only when PLL1 is disabled.
5115 * @rmtoll PLL1CFGR3 PLL1MODSSDIS LL_RCC_PLL1_DisableModulationSpreadSpectrum
5116 * @retval None
5117 */
LL_RCC_PLL1_DisableModulationSpreadSpectrum(void)5118 __STATIC_INLINE void LL_RCC_PLL1_DisableModulationSpreadSpectrum(void)
5119 {
5120 SET_BIT(RCC->PLL1CFGR3, RCC_PLL1CFGR3_PLL1MODSSDIS);
5121 }
5122
5123 /**
5124 * @brief Check if PLL1 modulation spread-spectrum and inactive fractional divide is enabled
5125 * @rmtoll PLL1CFGR3 PLL1MODSSDIS LL_RCC_PLL1_IsEnabledModulationSpreadSpectrum
5126 * @retval State of bit (1 or 0).
5127 */
LL_RCC_PLL1_IsEnabledModulationSpreadSpectrum(void)5128 __STATIC_INLINE uint32_t LL_RCC_PLL1_IsEnabledModulationSpreadSpectrum(void)
5129 {
5130 return ((READ_BIT(RCC->PLL1CFGR3, RCC_PLL1CFGR3_PLL1MODSSDIS) == 0UL) ? 1UL : 0UL);
5131 }
5132
5133 /**
5134 * @brief Enable PLL1 fractional divide and modulation spread-spectrum
5135 * @note This API shall be called only when PLL1 is disabled.
5136 * @rmtoll PLL1CFGR3 PLL1MODDSEN LL_RCC_PLL1_EnableFractionalModulationSpreadSpectrum
5137 * @retval None
5138 */
LL_RCC_PLL1_EnableFractionalModulationSpreadSpectrum(void)5139 __STATIC_INLINE void LL_RCC_PLL1_EnableFractionalModulationSpreadSpectrum(void)
5140 {
5141 SET_BIT(RCC->PLL1CFGR3, RCC_PLL1CFGR3_PLL1MODDSEN);
5142 }
5143
5144 /**
5145 * @brief Disable PLL1 fractional divide and modulation spread-spectrum
5146 * @note This API shall be called only when PLL1 is disabled.
5147 * @rmtoll PLL1CFGR3 PLL1MODDSEN LL_RCC_PLL1_DisableFractionalModulationSpreadSpectrum
5148 * @retval None
5149 */
LL_RCC_PLL1_DisableFractionalModulationSpreadSpectrum(void)5150 __STATIC_INLINE void LL_RCC_PLL1_DisableFractionalModulationSpreadSpectrum(void)
5151 {
5152 CLEAR_BIT(RCC->PLL1CFGR3, RCC_PLL1CFGR3_PLL1MODDSEN);
5153 }
5154
5155 /**
5156 * @brief Check if PLL1 fractional divide and modulation spread-spectrum is enabled
5157 * @rmtoll PLL1CFGR3 PLL1MODDSEN LL_RCC_PLL1_IsEnabledFractionalModulationSpreadSpectrum
5158 * @retval State of bit (1 or 0).
5159 */
LL_RCC_PLL1_IsEnabledFractionalModulationSpreadSpectrum(void)5160 __STATIC_INLINE uint32_t LL_RCC_PLL1_IsEnabledFractionalModulationSpreadSpectrum(void)
5161 {
5162 return ((READ_BIT(RCC->PLL1CFGR3, RCC_PLL1CFGR3_PLL1MODDSEN) == RCC_PLL1CFGR3_PLL1MODDSEN) ? 1UL : 0UL);
5163 }
5164
5165 /**
5166 * @brief Set PLL1 DIVN Coefficient
5167 * @note This API shall be called only when PLL1 is disabled.
5168 * @rmtoll PLL1CFGR1 PLL1DIVN LL_RCC_PLL1_SetN
5169 * @param N In integer mode, N parameter can be a value between 16 (0x10) and 2500 (0x9C4).
5170 * In fractional mode, N parameter can be a value between 20 (0x14) and 500 (0x1F4).
5171 */
LL_RCC_PLL1_SetN(uint32_t N)5172 __STATIC_INLINE void LL_RCC_PLL1_SetN(uint32_t N)
5173 {
5174 MODIFY_REG(RCC->PLL1CFGR1, RCC_PLL1CFGR1_PLL1DIVN, N << RCC_PLL1CFGR1_PLL1DIVN_Pos);
5175 }
5176
5177 /**
5178 * @brief Get PLL1 DIVN Coefficient
5179 * @rmtoll PLL1CFGR1 PLL1DIVN LL_RCC_PLL1_GetN
5180 * @retval In integer mode, a value between 16 (0x10) and 2500 (0x9C4).
5181 * In fractional mode, a value between 20 (0x14) and 500 (0x1F4).
5182 */
LL_RCC_PLL1_GetN(void)5183 __STATIC_INLINE uint32_t LL_RCC_PLL1_GetN(void)
5184 {
5185 return (uint32_t)((READ_BIT(RCC->PLL1CFGR1, RCC_PLL1CFGR1_PLL1DIVN) >> RCC_PLL1CFGR1_PLL1DIVN_Pos));
5186 }
5187
5188 /**
5189 * @brief Set PLL1 DIVM Coefficient
5190 * @note This API shall be called only when PLL1 is disabled.
5191 * @rmtoll PLL1CFGR1 PLL1DIVM LL_RCC_PLL1_SetM
5192 * @param M parameter can be a value between 1 and 63
5193 */
LL_RCC_PLL1_SetM(uint32_t M)5194 __STATIC_INLINE void LL_RCC_PLL1_SetM(uint32_t M)
5195 {
5196 MODIFY_REG(RCC->PLL1CFGR1, RCC_PLL1CFGR1_PLL1DIVM, M << RCC_PLL1CFGR1_PLL1DIVM_Pos);
5197 }
5198
5199 /**
5200 * @brief Get PLL1 DIVM Coefficient
5201 * @rmtoll PLL1CFGR1 PLL1DIVM LL_RCC_PLL1_GetM
5202 * @retval A value between 1 and 63
5203 */
LL_RCC_PLL1_GetM(void)5204 __STATIC_INLINE uint32_t LL_RCC_PLL1_GetM(void)
5205 {
5206 return (uint32_t)(READ_BIT(RCC->PLL1CFGR1, RCC_PLL1CFGR1_PLL1DIVM) >> RCC_PLL1CFGR1_PLL1DIVM_Pos);
5207 }
5208
5209 /**
5210 * @brief Set PLL1 PDIV1 Coefficient
5211 * @note This API shall be called only when PLL1 is disabled.
5212 * @rmtoll PLL1CFGR3 PLL1PDIV1 LL_RCC_PLL1_SetP1
5213 * @param P1 parameter can be a value between 1 and 7 when PLL1 is enabled, 0 when disabled
5214 */
LL_RCC_PLL1_SetP1(uint32_t P1)5215 __STATIC_INLINE void LL_RCC_PLL1_SetP1(uint32_t P1)
5216 {
5217 MODIFY_REG(RCC->PLL1CFGR3, RCC_PLL1CFGR3_PLL1PDIV1, P1 << RCC_PLL1CFGR3_PLL1PDIV1_Pos);
5218 }
5219
5220 /**
5221 * @brief Get PLL1 PDIV2 Coefficient
5222 * @rmtoll PLL1CFGR3 PLL1PDIV1 LL_RCC_PLL1_GetP1
5223 * @retval A value between 0 and 7
5224 */
LL_RCC_PLL1_GetP1(void)5225 __STATIC_INLINE uint32_t LL_RCC_PLL1_GetP1(void)
5226 {
5227 return (uint32_t)(READ_BIT(RCC->PLL1CFGR3, RCC_PLL1CFGR3_PLL1PDIV1) >> RCC_PLL1CFGR3_PLL1PDIV1_Pos);
5228 }
5229
5230 /**
5231 * @brief Set PLL1 PDIV2 Coefficient
5232 * @note This API shall be called only when PLL1 is disabled.
5233 * @rmtoll PLL1CFGR3 PLL1PDIV2 LL_RCC_PLL1_SetP2
5234 * @param P2 parameter can be a value between 1 and 7
5235 */
LL_RCC_PLL1_SetP2(uint32_t P2)5236 __STATIC_INLINE void LL_RCC_PLL1_SetP2(uint32_t P2)
5237 {
5238 MODIFY_REG(RCC->PLL1CFGR3, RCC_PLL1CFGR3_PLL1PDIV2, P2 << RCC_PLL1CFGR3_PLL1PDIV2_Pos);
5239 }
5240
5241 /**
5242 * @brief Get PLL1 PDIV2 Coefficient
5243 * @rmtoll PLL1CFGR3 PLL1PDIV2 LL_RCC_PLL1_GetP2
5244 * @retval A value between 1 and 7
5245 */
LL_RCC_PLL1_GetP2(void)5246 __STATIC_INLINE uint32_t LL_RCC_PLL1_GetP2(void)
5247 {
5248 return (uint32_t)(READ_BIT(RCC->PLL1CFGR3, RCC_PLL1CFGR3_PLL1PDIV2) >> RCC_PLL1CFGR3_PLL1PDIV2_Pos);
5249 }
5250
5251 /**
5252 * @brief Enable PLL1P
5253 * @note This API shall be called only when PLL1 is disabled.
5254 * @rmtoll PLL1CFGR3 PLL1PDIVEN LL_RCC_PLL1P_Enable
5255 * @retval None
5256 */
LL_RCC_PLL1P_Enable(void)5257 __STATIC_INLINE void LL_RCC_PLL1P_Enable(void)
5258 {
5259 SET_BIT(RCC->PLL1CFGR3, RCC_PLL1CFGR3_PLL1PDIVEN);
5260 }
5261
5262 /**
5263 * @brief Disable PLL1P
5264 * @note This API shall be called only when PLL1 is disabled.
5265 * @rmtoll PLL1CFGR3 PLL1PDIVEN LL_RCC_PLL1P_Disable
5266 * @retval None
5267 */
LL_RCC_PLL1P_Disable(void)5268 __STATIC_INLINE void LL_RCC_PLL1P_Disable(void)
5269 {
5270 CLEAR_BIT(RCC->PLL1CFGR3, RCC_PLL1CFGR3_PLL1PDIVEN);
5271 }
5272
5273 /**
5274 * @brief Check if PLL1 P is enabled
5275 * @rmtoll PLL1CFGR3 PLL1PDIVEN LL_RCC_PLL1P_IsEnabled
5276 * @retval State of bit (1 or 0).
5277 */
LL_RCC_PLL1P_IsEnabled(void)5278 __STATIC_INLINE uint32_t LL_RCC_PLL1P_IsEnabled(void)
5279 {
5280 return ((READ_BIT(RCC->PLL1CFGR3, RCC_PLL1CFGR3_PLL1PDIVEN) == RCC_PLL1CFGR3_PLL1PDIVEN) ? 1UL : 0UL);
5281 }
5282
5283 /**
5284 * @brief Set PLL1 FRACN Coefficient
5285 * @note This API shall be called only when PLL1 is disabled.
5286 * @rmtoll PLL1CFGR2 PLL1DIVNFRAC LL_RCC_PLL1_SetFRACN
5287 * @param FRACN parameter can be a value between 0 and 2^24 (0xFFFFFF)
5288 */
LL_RCC_PLL1_SetFRACN(uint32_t FRACN)5289 __STATIC_INLINE void LL_RCC_PLL1_SetFRACN(uint32_t FRACN)
5290 {
5291 MODIFY_REG(RCC->PLL1CFGR2, RCC_PLL1CFGR2_PLL1DIVNFRAC, FRACN << RCC_PLL1CFGR2_PLL1DIVNFRAC_Pos);
5292 }
5293
5294 /**
5295 * @brief Get PLL1 FRACN Coefficient
5296 * @rmtoll PLL1CFGR2 PLL1DIVNFRAC LL_RCC_PLL1_GetFRACN
5297 * @retval A value between 0 and 2^24 (0xFFFFFF)
5298 */
LL_RCC_PLL1_GetFRACN(void)5299 __STATIC_INLINE uint32_t LL_RCC_PLL1_GetFRACN(void)
5300 {
5301 return (uint32_t)(READ_BIT(RCC->PLL1CFGR2, RCC_PLL1CFGR2_PLL1DIVNFRAC) >> RCC_PLL1CFGR2_PLL1DIVNFRAC_Pos);
5302 }
5303
5304 /**
5305 * @brief Set the oscillator used as PLL clock source.
5306 * @note PLL2SEL can be written only when All PLLs are disabled.
5307 * @rmtoll PLL2CFGR1 PLL2SEL LL_RCC_PLL2_SetSource
5308 * @param PLLSource parameter can be one of the following values:
5309 * @arg @ref LL_RCC_PLLSOURCE_HSI
5310 * @arg @ref LL_RCC_PLLSOURCE_MSI
5311 * @arg @ref LL_RCC_PLLSOURCE_HSE
5312 * @arg @ref LL_RCC_PLLSOURCE_I2S_CKIN
5313 * @retval None
5314 */
LL_RCC_PLL2_SetSource(uint32_t PLLSource)5315 __STATIC_INLINE void LL_RCC_PLL2_SetSource(uint32_t PLLSource)
5316 {
5317 MODIFY_REG(RCC->PLL2CFGR1, RCC_PLL2CFGR1_PLL2SEL, PLLSource);
5318 }
5319
5320 /**
5321 * @brief Get the oscillator used as PLL clock source.
5322 * @rmtoll PLL2CFGR1 PLL2SEL LL_RCC_PLL2_GetSource
5323 * @retval Returned value can be one of the following values:
5324 * @arg @ref LL_RCC_PLLSOURCE_HSI
5325 * @arg @ref LL_RCC_PLLSOURCE_MSI
5326 * @arg @ref LL_RCC_PLLSOURCE_HSE
5327 * @arg @ref LL_RCC_PLLSOURCE_I2S_CKIN
5328 */
LL_RCC_PLL2_GetSource(void)5329 __STATIC_INLINE uint32_t LL_RCC_PLL2_GetSource(void)
5330 {
5331 return (uint32_t)(READ_BIT(RCC->PLL2CFGR1, RCC_PLL2CFGR1_PLL2SEL));
5332 }
5333
5334 /**
5335 * @brief Enable PLL2
5336 * @rmtoll CSR PLL2ONS LL_RCC_PLL2_Enable
5337 * @retval None
5338 */
LL_RCC_PLL2_Enable(void)5339 __STATIC_INLINE void LL_RCC_PLL2_Enable(void)
5340 {
5341 WRITE_REG(RCC->CSR, RCC_CSR_PLL2ONS);
5342 }
5343
5344 /**
5345 * @brief Disable PLL2
5346 * @note Cannot be disabled if the PLL2 clock is used as the system clock
5347 * @rmtoll CCR PLL2ONC LL_RCC_PLL2_Disable
5348 * @retval None
5349 */
LL_RCC_PLL2_Disable(void)5350 __STATIC_INLINE void LL_RCC_PLL2_Disable(void)
5351 {
5352 WRITE_REG(RCC->CCR, RCC_CCR_PLL2ONC);
5353 }
5354
5355 /**
5356 * @brief Check if PLL2 Ready
5357 * @rmtoll SR PLL2RDY LL_RCC_PLL2_IsReady
5358 * @retval State of bit (1 or 0).
5359 */
LL_RCC_PLL2_IsReady(void)5360 __STATIC_INLINE uint32_t LL_RCC_PLL2_IsReady(void)
5361 {
5362 return ((READ_BIT(RCC->SR, RCC_SR_PLL2RDY) == (RCC_SR_PLL2RDY)) ? 1UL : 0UL);
5363 }
5364
5365 /**
5366 * @brief Enable PLL2 bypass (PLL2 output is driven by the PLL2 reference clock)
5367 * @note This API shall be called only when PLL2 is disabled.
5368 * @rmtoll PLL2CFGR1 PLL2BYP LL_RCC_PLL2_EnableBypass
5369 * @retval None
5370 */
LL_RCC_PLL2_EnableBypass(void)5371 __STATIC_INLINE void LL_RCC_PLL2_EnableBypass(void)
5372 {
5373 SET_BIT(RCC->PLL2CFGR1, RCC_PLL2CFGR1_PLL2BYP);
5374 }
5375
5376 /**
5377 * @brief Disable PLL2 bypass (PLL2 output is driven by the VCO)
5378 * @note This API shall be called only when PLL2 is disabled.
5379 * @rmtoll PLL2CFGR1 PLL2BYP LL_RCC_PLL2_DisableBypass
5380 * @retval None
5381 */
LL_RCC_PLL2_DisableBypass(void)5382 __STATIC_INLINE void LL_RCC_PLL2_DisableBypass(void)
5383 {
5384 CLEAR_BIT(RCC->PLL2CFGR1, RCC_PLL2CFGR1_PLL2BYP);
5385 }
5386
5387 /**
5388 * @brief Check if PLL2 bypass is enabled
5389 * @rmtoll PLL2CFGR1 PLL2BYP LL_RCC_PLL2_IsEnabledBypass
5390 * @retval State of bit (1 or 0).
5391 */
LL_RCC_PLL2_IsEnabledBypass(void)5392 __STATIC_INLINE uint32_t LL_RCC_PLL2_IsEnabledBypass(void)
5393 {
5394 return ((READ_BIT(RCC->PLL2CFGR1, RCC_PLL2CFGR1_PLL2BYP) == RCC_PLL2CFGR1_PLL2BYP) ? 1UL : 0UL);
5395 }
5396
5397 /**
5398 * @brief Assert PLL2 modulation spread-spectrum reset
5399 * @note This API shall be called only when PLL2 is disabled.
5400 * @rmtoll PLL2CFGR3 PLL2MODSSRST LL_RCC_PLL2_AssertModulationSpreadSpectrumReset
5401 * @retval None
5402 */
LL_RCC_PLL2_AssertModulationSpreadSpectrumReset(void)5403 __STATIC_INLINE void LL_RCC_PLL2_AssertModulationSpreadSpectrumReset(void)
5404 {
5405 SET_BIT(RCC->PLL2CFGR3, RCC_PLL2CFGR3_PLL2MODSSRST);
5406 }
5407
5408 /**
5409 * @brief Release PLL2 modulation spread-spectrum reset
5410 * @note This API shall be called only when PLL2 is disabled.
5411 * @rmtoll PLL2CFGR3 PLL2MODSSRST LL_RCC_PLL2_ReleaseModulationSpreadSpectrumReset
5412 * @retval None
5413 */
LL_RCC_PLL2_ReleaseModulationSpreadSpectrumReset(void)5414 __STATIC_INLINE void LL_RCC_PLL2_ReleaseModulationSpreadSpectrumReset(void)
5415 {
5416 CLEAR_BIT(RCC->PLL2CFGR3, RCC_PLL2CFGR3_PLL2MODSSRST);
5417 }
5418
5419 /**
5420 * @brief Enable PLL2 noise canceling DAC in fractional mode
5421 * @note This API shall be called only when PLL2 is disabled.
5422 * @rmtoll PLL2CFGR3 PLL2DACEN LL_RCC_PLL2_EnableDAC
5423 * @retval None
5424 */
LL_RCC_PLL2_EnableDAC(void)5425 __STATIC_INLINE void LL_RCC_PLL2_EnableDAC(void)
5426 {
5427 SET_BIT(RCC->PLL2CFGR3, RCC_PLL2CFGR3_PLL2DACEN);
5428 }
5429
5430 /**
5431 * @brief Disable PLL2 noise canceling DAC in fractional mode
5432 * @note This API shall be called only when PLL2 is disabled.
5433 * @rmtoll PLL2CFGR3 PLL2DACEN LL_RCC_PLL2_DisableDAC
5434 * @retval None
5435 */
LL_RCC_PLL2_DisableDAC(void)5436 __STATIC_INLINE void LL_RCC_PLL2_DisableDAC(void)
5437 {
5438 CLEAR_BIT(RCC->PLL2CFGR3, RCC_PLL2CFGR3_PLL2DACEN);
5439 }
5440
5441 /**
5442 * @brief Check if PLL2 noise canceling DAC in fractional mode is enabled
5443 * @rmtoll PLL2CFGR3 PLL2DACEN LL_RCC_PLL2_IsEnabledDAC
5444 * @retval State of bit (1 or 0).
5445 */
LL_RCC_PLL2_IsEnabledDAC(void)5446 __STATIC_INLINE uint32_t LL_RCC_PLL2_IsEnabledDAC(void)
5447 {
5448 return ((READ_BIT(RCC->PLL2CFGR3, RCC_PLL2CFGR3_PLL2DACEN) == RCC_PLL2CFGR3_PLL2DACEN) ? 1UL : 0UL);
5449 }
5450
5451 /**
5452 * @brief Enable PLL2 modulation spread-spectrum with fractional divide inactive
5453 * @note This API shall be called only when PLL2 is disabled.
5454 * @rmtoll PLL2CFGR3 PLL2MODSSDIS LL_RCC_PLL2_EnableModulationSpreadSpectrum
5455 * @retval None
5456 */
LL_RCC_PLL2_EnableModulationSpreadSpectrum(void)5457 __STATIC_INLINE void LL_RCC_PLL2_EnableModulationSpreadSpectrum(void)
5458 {
5459 CLEAR_BIT(RCC->PLL2CFGR3, RCC_PLL2CFGR3_PLL2MODSSDIS);
5460 }
5461
5462 /**
5463 * @brief Disable PLL2 modulation spread-spectrum but active fractional divide
5464 * @note This API shall be called only when PLL2 is disabled.
5465 * @rmtoll PLL2CFGR3 PLL2MODSSDIS LL_RCC_PLL2_DisableModulationSpreadSpectrum
5466 * @retval None
5467 */
LL_RCC_PLL2_DisableModulationSpreadSpectrum(void)5468 __STATIC_INLINE void LL_RCC_PLL2_DisableModulationSpreadSpectrum(void)
5469 {
5470 SET_BIT(RCC->PLL2CFGR3, RCC_PLL2CFGR3_PLL2MODSSDIS);
5471 }
5472
5473 /**
5474 * @brief Check if PLL2 modulation spread-spectrum and inactive fractional divide is enabled
5475 * @rmtoll PLL2CFGR3 PLL2MODSSDIS LL_RCC_PLL2_IsEnabledModulationSpreadSpectrum
5476 * @retval State of bit (1 or 0).
5477 */
LL_RCC_PLL2_IsEnabledModulationSpreadSpectrum(void)5478 __STATIC_INLINE uint32_t LL_RCC_PLL2_IsEnabledModulationSpreadSpectrum(void)
5479 {
5480 return ((READ_BIT(RCC->PLL2CFGR3, RCC_PLL2CFGR3_PLL2MODSSDIS) == 0UL) ? 1UL : 0UL);
5481 }
5482
5483 /**
5484 * @brief Enable PLL2 fractional divide and modulation spread-spectrum
5485 * @note This API shall be called only when PLL2 is disabled.
5486 * @rmtoll PLL2CFGR3 PLL2MODDSEN LL_RCC_PLL2_EnableFractionalModulationSpreadSpectrum
5487 * @retval None
5488 */
LL_RCC_PLL2_EnableFractionalModulationSpreadSpectrum(void)5489 __STATIC_INLINE void LL_RCC_PLL2_EnableFractionalModulationSpreadSpectrum(void)
5490 {
5491 SET_BIT(RCC->PLL2CFGR3, RCC_PLL2CFGR3_PLL2MODDSEN);
5492 }
5493
5494 /**
5495 * @brief Disable PLL2 fractional divide and modulation spread-spectrum
5496 * @note This API shall be called only when PLL2 is disabled.
5497 * @rmtoll PLL2CFGR3 PLL2MODDSEN LL_RCC_PLL2_DisableFractionalModulationSpreadSpectrum
5498 * @retval None
5499 */
LL_RCC_PLL2_DisableFractionalModulationSpreadSpectrum(void)5500 __STATIC_INLINE void LL_RCC_PLL2_DisableFractionalModulationSpreadSpectrum(void)
5501 {
5502 CLEAR_BIT(RCC->PLL2CFGR3, RCC_PLL2CFGR3_PLL2MODDSEN);
5503 }
5504
5505 /**
5506 * @brief Check if PLL2 fractional divide and modulation spread-spectrum is enabled
5507 * @rmtoll PLL2CFGR3 PLL2MODDSEN LL_RCC_PLL2_IsEnabledFractionalModulationSpreadSpectrum
5508 * @retval State of bit (1 or 0).
5509 */
LL_RCC_PLL2_IsEnabledFractionalModulationSpreadSpectrum(void)5510 __STATIC_INLINE uint32_t LL_RCC_PLL2_IsEnabledFractionalModulationSpreadSpectrum(void)
5511 {
5512 return ((READ_BIT(RCC->PLL2CFGR3, RCC_PLL2CFGR3_PLL2MODDSEN) == RCC_PLL2CFGR3_PLL2MODDSEN) ? 1UL : 0UL);
5513 }
5514
5515 /**
5516 * @brief Set PLL2 DIVN Coefficient
5517 * @note This API shall be called only when PLL2 is disabled.
5518 * @rmtoll PLL2CFGR1 PLL2DIVN LL_RCC_PLL2_SetN
5519 * @param N In integer mode, N parameter can be a value between 16 (0x10) and 2500 (0x9C4).
5520 * In fractional mode, N parameter can be a value between 20 (0x14) and 500 (0x1F4).
5521 */
LL_RCC_PLL2_SetN(uint32_t N)5522 __STATIC_INLINE void LL_RCC_PLL2_SetN(uint32_t N)
5523 {
5524 MODIFY_REG(RCC->PLL2CFGR1, RCC_PLL2CFGR1_PLL2DIVN, N << RCC_PLL2CFGR1_PLL2DIVN_Pos);
5525 }
5526
5527 /**
5528 * @brief Get PLL2 DIVN Coefficient
5529 * @rmtoll PLL2CFGR1 PLL2DIVN LL_RCC_PLL2_GetN
5530 * @retval In integer mode, a value between 16 (0x10) and 2500 (0x9C4).
5531 * In fractional mode, a value between 20 (0x14) and 500 (0x1F4).
5532 */
LL_RCC_PLL2_GetN(void)5533 __STATIC_INLINE uint32_t LL_RCC_PLL2_GetN(void)
5534 {
5535 return (uint32_t)((READ_BIT(RCC->PLL2CFGR1, RCC_PLL2CFGR1_PLL2DIVN) >> RCC_PLL2CFGR1_PLL2DIVN_Pos));
5536 }
5537
5538 /**
5539 * @brief Set PLL2 DIVM Coefficient
5540 * @note This API shall be called only when PLL2 is disabled.
5541 * @rmtoll PLL2CFGR1 PLL2DIVM LL_RCC_PLL2_SetM
5542 * @param M parameter can be a value between 1 and 63
5543 */
LL_RCC_PLL2_SetM(uint32_t M)5544 __STATIC_INLINE void LL_RCC_PLL2_SetM(uint32_t M)
5545 {
5546 MODIFY_REG(RCC->PLL2CFGR1, RCC_PLL2CFGR1_PLL2DIVM, M << RCC_PLL2CFGR1_PLL2DIVM_Pos);
5547 }
5548
5549 /**
5550 * @brief Get PLL2 DIVM Coefficient
5551 * @rmtoll PLL2CFGR1 PLL2DIVM LL_RCC_PLL2_GetM
5552 * @retval A value between 1 and 63
5553 */
LL_RCC_PLL2_GetM(void)5554 __STATIC_INLINE uint32_t LL_RCC_PLL2_GetM(void)
5555 {
5556 return (uint32_t)(READ_BIT(RCC->PLL2CFGR1, RCC_PLL2CFGR1_PLL2DIVM) >> RCC_PLL2CFGR1_PLL2DIVM_Pos);
5557 }
5558
5559 /**
5560 * @brief Set PLL2 PDIV1 Coefficient
5561 * @note This API shall be called only when PLL2 is disabled.
5562 * @rmtoll PLL2CFGR3 PLL2PDIV1 LL_RCC_PLL2_SetP1
5563 * @param P1 parameter can be a value between 1 and 7 when PLL2 is enabled, 0 when disabled
5564 */
LL_RCC_PLL2_SetP1(uint32_t P1)5565 __STATIC_INLINE void LL_RCC_PLL2_SetP1(uint32_t P1)
5566 {
5567 MODIFY_REG(RCC->PLL2CFGR3, RCC_PLL2CFGR3_PLL2PDIV1, P1 << RCC_PLL2CFGR3_PLL2PDIV1_Pos);
5568 }
5569
5570 /**
5571 * @brief Get PLL2 PDIV2 Coefficient
5572 * @rmtoll PLL2CFGR3 PLL2PDIV1 LL_RCC_PLL2_GetP1
5573 * @retval A value between 0 and 7
5574 */
LL_RCC_PLL2_GetP1(void)5575 __STATIC_INLINE uint32_t LL_RCC_PLL2_GetP1(void)
5576 {
5577 return (uint32_t)(READ_BIT(RCC->PLL2CFGR3, RCC_PLL2CFGR3_PLL2PDIV1) >> RCC_PLL2CFGR3_PLL2PDIV1_Pos);
5578 }
5579
5580 /**
5581 * @brief Set PLL2 PDIV2 Coefficient
5582 * @note This API shall be called only when PLL2 is disabled.
5583 * @rmtoll PLL2CFGR3 PLL2PDIV2 LL_RCC_PLL2_SetP2
5584 * @param P2 parameter can be a value between 1 and 7
5585 */
LL_RCC_PLL2_SetP2(uint32_t P2)5586 __STATIC_INLINE void LL_RCC_PLL2_SetP2(uint32_t P2)
5587 {
5588 MODIFY_REG(RCC->PLL2CFGR3, RCC_PLL2CFGR3_PLL2PDIV2, P2 << RCC_PLL2CFGR3_PLL2PDIV2_Pos);
5589 }
5590
5591 /**
5592 * @brief Get PLL2 PDIV2 Coefficient
5593 * @rmtoll PLL2CFGR3 PLL2PDIV2 LL_RCC_PLL2_GetP2
5594 * @retval A value between 1 and 7
5595 */
LL_RCC_PLL2_GetP2(void)5596 __STATIC_INLINE uint32_t LL_RCC_PLL2_GetP2(void)
5597 {
5598 return (uint32_t)(READ_BIT(RCC->PLL2CFGR3, RCC_PLL2CFGR3_PLL2PDIV2) >> RCC_PLL2CFGR3_PLL2PDIV2_Pos);
5599 }
5600
5601 /**
5602 * @brief Enable PLL2P
5603 * @note This API shall be called only when PLL2 is disabled.
5604 * @rmtoll PLL2CFGR3 PLL2PDIVEN LL_RCC_PLL2P_Enable
5605 * @retval None
5606 */
LL_RCC_PLL2P_Enable(void)5607 __STATIC_INLINE void LL_RCC_PLL2P_Enable(void)
5608 {
5609 SET_BIT(RCC->PLL2CFGR3, RCC_PLL2CFGR3_PLL2PDIVEN);
5610 }
5611
5612 /**
5613 * @brief Disable PLL2P
5614 * @note This API shall be called only when PLL2 is disabled.
5615 * @rmtoll PLL2CFGR3 PLL2PDIVEN LL_RCC_PLL2P_Disable
5616 * @retval None
5617 */
LL_RCC_PLL2P_Disable(void)5618 __STATIC_INLINE void LL_RCC_PLL2P_Disable(void)
5619 {
5620 CLEAR_BIT(RCC->PLL2CFGR3, RCC_PLL2CFGR3_PLL2PDIVEN);
5621 }
5622
5623 /**
5624 * @brief Check if PLL2 P is enabled
5625 * @rmtoll PLL2CFGR3 PLL2PDIVEN LL_RCC_PLL2P_IsEnabled
5626 * @retval State of bit (1 or 0).
5627 */
LL_RCC_PLL2P_IsEnabled(void)5628 __STATIC_INLINE uint32_t LL_RCC_PLL2P_IsEnabled(void)
5629 {
5630 return ((READ_BIT(RCC->PLL2CFGR3, RCC_PLL2CFGR3_PLL2PDIVEN) == RCC_PLL2CFGR3_PLL2PDIVEN) ? 1UL : 0UL);
5631 }
5632
5633 /**
5634 * @brief Set PLL2 FRACN Coefficient
5635 * @note This API shall be called only when PLL2 is disabled.
5636 * @rmtoll PLL2CFGR2 PLL2DIVNFRAC LL_RCC_PLL2_SetFRACN
5637 * @param FRACN parameter can be a value between 0 and 2^24 (0xFFFFFF)
5638 */
LL_RCC_PLL2_SetFRACN(uint32_t FRACN)5639 __STATIC_INLINE void LL_RCC_PLL2_SetFRACN(uint32_t FRACN)
5640 {
5641 MODIFY_REG(RCC->PLL2CFGR2, RCC_PLL2CFGR2_PLL2DIVNFRAC, FRACN << RCC_PLL2CFGR2_PLL2DIVNFRAC_Pos);
5642 }
5643
5644 /**
5645 * @brief Get PLL2 FRACN Coefficient
5646 * @rmtoll PLL2CFGR2 PLL2DIVNFRAC LL_RCC_PLL2_GetFRACN
5647 * @retval A value between 0 and 2^24 (0xFFFFFF)
5648 */
LL_RCC_PLL2_GetFRACN(void)5649 __STATIC_INLINE uint32_t LL_RCC_PLL2_GetFRACN(void)
5650 {
5651 return (uint32_t)(READ_BIT(RCC->PLL2CFGR2, RCC_PLL2CFGR2_PLL2DIVNFRAC) >> RCC_PLL2CFGR2_PLL2DIVNFRAC_Pos);
5652 }
5653
5654 /**
5655 * @brief Set the oscillator used as PLL clock source.
5656 * @note PLL3SEL can be written only when All PLLs are disabled.
5657 * @rmtoll PLL3CFGR1 PLL3SEL LL_RCC_PLL3_SetSource
5658 * @param PLLSource parameter can be one of the following values:
5659 * @arg @ref LL_RCC_PLLSOURCE_HSI
5660 * @arg @ref LL_RCC_PLLSOURCE_MSI
5661 * @arg @ref LL_RCC_PLLSOURCE_HSE
5662 * @arg @ref LL_RCC_PLLSOURCE_I2S_CKIN
5663 * @retval None
5664 */
LL_RCC_PLL3_SetSource(uint32_t PLLSource)5665 __STATIC_INLINE void LL_RCC_PLL3_SetSource(uint32_t PLLSource)
5666 {
5667 MODIFY_REG(RCC->PLL3CFGR1, RCC_PLL3CFGR1_PLL3SEL, PLLSource);
5668 }
5669
5670 /**
5671 * @brief Get the oscillator used as PLL clock source.
5672 * @rmtoll PLL3CFGR1 PLL3SEL LL_RCC_PLL3_GetSource
5673 * @retval Returned value can be one of the following values:
5674 * @arg @ref LL_RCC_PLLSOURCE_HSI
5675 * @arg @ref LL_RCC_PLLSOURCE_MSI
5676 * @arg @ref LL_RCC_PLLSOURCE_HSE
5677 * @arg @ref LL_RCC_PLLSOURCE_I2S_CKIN
5678 */
LL_RCC_PLL3_GetSource(void)5679 __STATIC_INLINE uint32_t LL_RCC_PLL3_GetSource(void)
5680 {
5681 return (uint32_t)(READ_BIT(RCC->PLL3CFGR1, RCC_PLL3CFGR1_PLL3SEL));
5682 }
5683
5684 /**
5685 * @brief Enable PLL3
5686 * @rmtoll CSR PLL3ONS LL_RCC_PLL3_Enable
5687 * @retval None
5688 */
LL_RCC_PLL3_Enable(void)5689 __STATIC_INLINE void LL_RCC_PLL3_Enable(void)
5690 {
5691 WRITE_REG(RCC->CSR, RCC_CSR_PLL3ONS);
5692 }
5693
5694 /**
5695 * @brief Disable PLL3
5696 * @note Cannot be disabled if the PLL3 clock is used as the system clock
5697 * @rmtoll CCR PLL3ONC LL_RCC_PLL3_Disable
5698 * @retval None
5699 */
LL_RCC_PLL3_Disable(void)5700 __STATIC_INLINE void LL_RCC_PLL3_Disable(void)
5701 {
5702 WRITE_REG(RCC->CCR, RCC_CCR_PLL3ONC);
5703 }
5704
5705 /**
5706 * @brief Check if PLL3 Ready
5707 * @rmtoll SR PLL3RDY LL_RCC_PLL3_IsReady
5708 * @retval State of bit (1 or 0).
5709 */
LL_RCC_PLL3_IsReady(void)5710 __STATIC_INLINE uint32_t LL_RCC_PLL3_IsReady(void)
5711 {
5712 return ((READ_BIT(RCC->SR, RCC_SR_PLL3RDY) == (RCC_SR_PLL3RDY)) ? 1UL : 0UL);
5713 }
5714
5715 /**
5716 * @brief Enable PLL3 bypass (PLL3 output is driven by the PLL3 reference clock)
5717 * @note This API shall be called only when PLL3 is disabled.
5718 * @rmtoll PLL3CFGR1 PLL3BYP LL_RCC_PLL3_EnableBypass
5719 * @retval None
5720 */
LL_RCC_PLL3_EnableBypass(void)5721 __STATIC_INLINE void LL_RCC_PLL3_EnableBypass(void)
5722 {
5723 SET_BIT(RCC->PLL3CFGR1, RCC_PLL3CFGR1_PLL3BYP);
5724 }
5725
5726 /**
5727 * @brief Disable PLL3 bypass (PLL3 output is driven by the VCO)
5728 * @note This API shall be called only when PLL3 is disabled.
5729 * @rmtoll PLL3CFGR1 PLL3BYP LL_RCC_PLL3_DisableBypass
5730 * @retval None
5731 */
LL_RCC_PLL3_DisableBypass(void)5732 __STATIC_INLINE void LL_RCC_PLL3_DisableBypass(void)
5733 {
5734 CLEAR_BIT(RCC->PLL3CFGR1, RCC_PLL3CFGR1_PLL3BYP);
5735 }
5736
5737 /**
5738 * @brief Check if PLL3 bypass is enabled
5739 * @rmtoll PLL3CFGR1 PLL3BYP LL_RCC_PLL3_IsEnabledBypass
5740 * @retval State of bit (1 or 0).
5741 */
LL_RCC_PLL3_IsEnabledBypass(void)5742 __STATIC_INLINE uint32_t LL_RCC_PLL3_IsEnabledBypass(void)
5743 {
5744 return ((READ_BIT(RCC->PLL3CFGR1, RCC_PLL3CFGR1_PLL3BYP) == RCC_PLL3CFGR1_PLL3BYP) ? 1UL : 0UL);
5745 }
5746
5747 /**
5748 * @brief Assert PLL3 modulation spread-spectrum reset
5749 * @note This API shall be called only when PLL3 is disabled.
5750 * @rmtoll PLL3CFGR3 PLL3MODSSRST LL_RCC_PLL3_AssertModulationSpreadSpectrumReset
5751 * @retval None
5752 */
LL_RCC_PLL3_AssertModulationSpreadSpectrumReset(void)5753 __STATIC_INLINE void LL_RCC_PLL3_AssertModulationSpreadSpectrumReset(void)
5754 {
5755 SET_BIT(RCC->PLL3CFGR3, RCC_PLL3CFGR3_PLL3MODSSRST);
5756 }
5757
5758 /**
5759 * @brief Release PLL3 modulation spread-spectrum reset
5760 * @note This API shall be called only when PLL3 is disabled.
5761 * @rmtoll PLL3CFGR3 PLL3MODSSRST LL_RCC_PLL3_ReleaseModulationSpreadSpectrumReset
5762 * @retval None
5763 */
LL_RCC_PLL3_ReleaseModulationSpreadSpectrumReset(void)5764 __STATIC_INLINE void LL_RCC_PLL3_ReleaseModulationSpreadSpectrumReset(void)
5765 {
5766 CLEAR_BIT(RCC->PLL3CFGR3, RCC_PLL3CFGR3_PLL3MODSSRST);
5767 }
5768
5769 /**
5770 * @brief Enable PLL3 noise canceling DAC in fractional mode
5771 * @note This API shall be called only when PLL3 is disabled.
5772 * @rmtoll PLL3CFGR3 PLL3DACEN LL_RCC_PLL3_EnableDAC
5773 * @retval None
5774 */
LL_RCC_PLL3_EnableDAC(void)5775 __STATIC_INLINE void LL_RCC_PLL3_EnableDAC(void)
5776 {
5777 SET_BIT(RCC->PLL3CFGR3, RCC_PLL3CFGR3_PLL3DACEN);
5778 }
5779
5780 /**
5781 * @brief Disable PLL3 noise canceling DAC in fractional mode
5782 * @note This API shall be called only when PLL3 is disabled.
5783 * @rmtoll PLL3CFGR3 PLL3DACEN LL_RCC_PLL3_DisableDAC
5784 * @retval None
5785 */
LL_RCC_PLL3_DisableDAC(void)5786 __STATIC_INLINE void LL_RCC_PLL3_DisableDAC(void)
5787 {
5788 CLEAR_BIT(RCC->PLL3CFGR3, RCC_PLL3CFGR3_PLL3DACEN);
5789 }
5790
5791 /**
5792 * @brief Check if PLL3 noise canceling DAC in fractional mode is enabled
5793 * @rmtoll PLL3CFGR3 PLL3DACEN LL_RCC_PLL3_IsEnabledDAC
5794 * @retval State of bit (1 or 0).
5795 */
LL_RCC_PLL3_IsEnabledDAC(void)5796 __STATIC_INLINE uint32_t LL_RCC_PLL3_IsEnabledDAC(void)
5797 {
5798 return ((READ_BIT(RCC->PLL3CFGR3, RCC_PLL3CFGR3_PLL3DACEN) == RCC_PLL3CFGR3_PLL3DACEN) ? 1UL : 0UL);
5799 }
5800
5801 /**
5802 * @brief Enable PLL3 modulation spread-spectrum with fractional divide inactive
5803 * @note This API shall be called only when PLL3 is disabled.
5804 * @rmtoll PLL3CFGR3 PLL3MODSSDIS LL_RCC_PLL3_EnableModulationSpreadSpectrum
5805 * @retval None
5806 */
LL_RCC_PLL3_EnableModulationSpreadSpectrum(void)5807 __STATIC_INLINE void LL_RCC_PLL3_EnableModulationSpreadSpectrum(void)
5808 {
5809 CLEAR_BIT(RCC->PLL3CFGR3, RCC_PLL3CFGR3_PLL3MODSSDIS);
5810 }
5811
5812 /**
5813 * @brief Disable PLL3 modulation spread-spectrum but active fractional divide
5814 * @note This API shall be called only when PLL3 is disabled.
5815 * @rmtoll PLL3CFGR3 PLL3MODSSDIS LL_RCC_PLL3_DisableModulationSpreadSpectrum
5816 * @retval None
5817 */
LL_RCC_PLL3_DisableModulationSpreadSpectrum(void)5818 __STATIC_INLINE void LL_RCC_PLL3_DisableModulationSpreadSpectrum(void)
5819 {
5820 SET_BIT(RCC->PLL3CFGR3, RCC_PLL3CFGR3_PLL3MODSSDIS);
5821 }
5822
5823 /**
5824 * @brief Check if PLL3 modulation spread-spectrum and inactive fractional divide is enabled
5825 * @rmtoll PLL3CFGR3 PLL3MODSSDIS LL_RCC_PLL3_IsEnabledModulationSpreadSpectrum
5826 * @retval State of bit (1 or 0).
5827 */
LL_RCC_PLL3_IsEnabledModulationSpreadSpectrum(void)5828 __STATIC_INLINE uint32_t LL_RCC_PLL3_IsEnabledModulationSpreadSpectrum(void)
5829 {
5830 return ((READ_BIT(RCC->PLL3CFGR3, RCC_PLL3CFGR3_PLL3MODSSDIS) == 0UL) ? 1UL : 0UL);
5831 }
5832
5833 /**
5834 * @brief Enable PLL3 fractional divide and modulation spread-spectrum
5835 * @note This API shall be called only when PLL3 is disabled.
5836 * @rmtoll PLL3CFGR3 PLL3MODDSEN LL_RCC_PLL3_EnableFractionalModulationSpreadSpectrum
5837 * @retval None
5838 */
LL_RCC_PLL3_EnableFractionalModulationSpreadSpectrum(void)5839 __STATIC_INLINE void LL_RCC_PLL3_EnableFractionalModulationSpreadSpectrum(void)
5840 {
5841 SET_BIT(RCC->PLL3CFGR3, RCC_PLL3CFGR3_PLL3MODDSEN);
5842 }
5843
5844 /**
5845 * @brief Disable PLL3 fractional divide and modulation spread-spectrum
5846 * @note This API shall be called only when PLL3 is disabled.
5847 * @rmtoll PLL3CFGR3 PLL3MODDSEN LL_RCC_PLL3_DisableFractionalModulationSpreadSpectrum
5848 * @retval None
5849 */
LL_RCC_PLL3_DisableFractionalModulationSpreadSpectrum(void)5850 __STATIC_INLINE void LL_RCC_PLL3_DisableFractionalModulationSpreadSpectrum(void)
5851 {
5852 CLEAR_BIT(RCC->PLL3CFGR3, RCC_PLL3CFGR3_PLL3MODDSEN);
5853 }
5854
5855 /**
5856 * @brief Check if PLL3 fractional divide and modulation spread-spectrum is enabled
5857 * @rmtoll PLL3CFGR3 PLL3MODDSEN LL_RCC_PLL3_IsEnabledFractionalModulationSpreadSpectrum
5858 * @retval State of bit (1 or 0).
5859 */
LL_RCC_PLL3_IsEnabledFractionalModulationSpreadSpectrum(void)5860 __STATIC_INLINE uint32_t LL_RCC_PLL3_IsEnabledFractionalModulationSpreadSpectrum(void)
5861 {
5862 return ((READ_BIT(RCC->PLL3CFGR3, RCC_PLL3CFGR3_PLL3MODDSEN) == RCC_PLL3CFGR3_PLL3MODDSEN) ? 1UL : 0UL);
5863 }
5864
5865 /**
5866 * @brief Set PLL3 DIVN Coefficient
5867 * @note This API shall be called only when PLL3 is disabled.
5868 * @rmtoll PLL3CFGR1 PLL3DIVN LL_RCC_PLL3_SetN
5869 * @param N In integer mode, N parameter can be a value between 16 (0x10) and 2500 (0x9C4).
5870 * In fractional mode, N parameter can be a value between 20 (0x14) and 500 (0x1F4).
5871 */
LL_RCC_PLL3_SetN(uint32_t N)5872 __STATIC_INLINE void LL_RCC_PLL3_SetN(uint32_t N)
5873 {
5874 MODIFY_REG(RCC->PLL3CFGR1, RCC_PLL3CFGR1_PLL3DIVN, N << RCC_PLL3CFGR1_PLL3DIVN_Pos);
5875 }
5876
5877 /**
5878 * @brief Get PLL3 DIVN Coefficient
5879 * @rmtoll PLL3CFGR1 PLL3DIVN LL_RCC_PLL3_GetN
5880 * @retval In integer mode, a value between 16 (0x10) and 2500 (0x9C4).
5881 * In fractional mode, a value between 20 (0x14) and 500 (0x1F4).
5882 */
LL_RCC_PLL3_GetN(void)5883 __STATIC_INLINE uint32_t LL_RCC_PLL3_GetN(void)
5884 {
5885 return (uint32_t)((READ_BIT(RCC->PLL3CFGR1, RCC_PLL3CFGR1_PLL3DIVN) >> RCC_PLL3CFGR1_PLL3DIVN_Pos));
5886 }
5887
5888 /**
5889 * @brief Set PLL3 DIVM Coefficient
5890 * @note This API shall be called only when PLL3 is disabled.
5891 * @rmtoll PLL3CFGR1 PLL3DIVM LL_RCC_PLL3_SetM
5892 * @param M parameter can be a value between 1 and 63
5893 */
LL_RCC_PLL3_SetM(uint32_t M)5894 __STATIC_INLINE void LL_RCC_PLL3_SetM(uint32_t M)
5895 {
5896 MODIFY_REG(RCC->PLL3CFGR1, RCC_PLL3CFGR1_PLL3DIVM, M << RCC_PLL3CFGR1_PLL3DIVM_Pos);
5897 }
5898
5899 /**
5900 * @brief Get PLL3 DIVM Coefficient
5901 * @rmtoll PLL3CFGR1 PLL3DIVM LL_RCC_PLL3_GetM
5902 * @retval A value between 1 and 63
5903 */
LL_RCC_PLL3_GetM(void)5904 __STATIC_INLINE uint32_t LL_RCC_PLL3_GetM(void)
5905 {
5906 return (uint32_t)(READ_BIT(RCC->PLL3CFGR1, RCC_PLL3CFGR1_PLL3DIVM) >> RCC_PLL3CFGR1_PLL3DIVM_Pos);
5907 }
5908
5909 /**
5910 * @brief Set PLL3 PDIV1 Coefficient
5911 * @note This API shall be called only when PLL3 is disabled.
5912 * @rmtoll PLL3CFGR3 PLL3PDIV1 LL_RCC_PLL3_SetP1
5913 * @param P1 parameter can be a value between 1 and 7 when PLL3 is enabled, 0 when disabled
5914 */
LL_RCC_PLL3_SetP1(uint32_t P1)5915 __STATIC_INLINE void LL_RCC_PLL3_SetP1(uint32_t P1)
5916 {
5917 MODIFY_REG(RCC->PLL3CFGR3, RCC_PLL3CFGR3_PLL3PDIV1, P1 << RCC_PLL3CFGR3_PLL3PDIV1_Pos);
5918 }
5919
5920 /**
5921 * @brief Get PLL3 PDIV2 Coefficient
5922 * @rmtoll PLL3CFGR3 PLL3PDIV1 LL_RCC_PLL3_GetP1
5923 * @retval A value between 1 and 7
5924 */
LL_RCC_PLL3_GetP1(void)5925 __STATIC_INLINE uint32_t LL_RCC_PLL3_GetP1(void)
5926 {
5927 return (uint32_t)(READ_BIT(RCC->PLL3CFGR3, RCC_PLL3CFGR3_PLL3PDIV1) >> RCC_PLL3CFGR3_PLL3PDIV1_Pos);
5928 }
5929
5930 /**
5931 * @brief Set PLL3 PDIV2 Coefficient
5932 * @note This API shall be called only when PLL3 is disabled.
5933 * @rmtoll PLL3CFGR3 PLL3PDIV2 LL_RCC_PLL3_SetP2
5934 * @param P2 parameter can be a value between 0 and 7
5935 */
LL_RCC_PLL3_SetP2(uint32_t P2)5936 __STATIC_INLINE void LL_RCC_PLL3_SetP2(uint32_t P2)
5937 {
5938 MODIFY_REG(RCC->PLL3CFGR3, RCC_PLL3CFGR3_PLL3PDIV2, P2 << RCC_PLL3CFGR3_PLL3PDIV2_Pos);
5939 }
5940
5941 /**
5942 * @brief Get PLL3 PDIV2 Coefficient
5943 * @rmtoll PLL3CFGR3 PLL3PDIV2 LL_RCC_PLL3_GetP2
5944 * @retval A value between 1 and 7
5945 */
LL_RCC_PLL3_GetP2(void)5946 __STATIC_INLINE uint32_t LL_RCC_PLL3_GetP2(void)
5947 {
5948 return (uint32_t)(READ_BIT(RCC->PLL3CFGR3, RCC_PLL3CFGR3_PLL3PDIV2) >> RCC_PLL3CFGR3_PLL3PDIV2_Pos);
5949 }
5950
5951 /**
5952 * @brief Enable PLL3P
5953 * @note This API shall be called only when PLL3 is disabled.
5954 * @rmtoll PLL3CFGR3 PLL3PDIVEN LL_RCC_PLL3P_Enable
5955 * @retval None
5956 */
LL_RCC_PLL3P_Enable(void)5957 __STATIC_INLINE void LL_RCC_PLL3P_Enable(void)
5958 {
5959 SET_BIT(RCC->PLL3CFGR3, RCC_PLL3CFGR3_PLL3PDIVEN);
5960 }
5961
5962 /**
5963 * @brief Disable PLL3P
5964 * @note This API shall be called only when PLL3 is disabled.
5965 * @rmtoll PLL3CFGR3 PLL3PDIVEN LL_RCC_PLL3P_Disable
5966 * @retval None
5967 */
LL_RCC_PLL3P_Disable(void)5968 __STATIC_INLINE void LL_RCC_PLL3P_Disable(void)
5969 {
5970 CLEAR_BIT(RCC->PLL3CFGR3, RCC_PLL3CFGR3_PLL3PDIVEN);
5971 }
5972
5973 /**
5974 * @brief Check if PLL3 P is enabled
5975 * @rmtoll PLL3CFGR3 PLL3PDIVEN LL_RCC_PLL3P_IsEnabled
5976 * @retval State of bit (1 or 0).
5977 */
LL_RCC_PLL3P_IsEnabled(void)5978 __STATIC_INLINE uint32_t LL_RCC_PLL3P_IsEnabled(void)
5979 {
5980 return ((READ_BIT(RCC->PLL3CFGR3, RCC_PLL3CFGR3_PLL3PDIVEN) == RCC_PLL3CFGR3_PLL3PDIVEN) ? 1UL : 0UL);
5981 }
5982
5983 /**
5984 * @brief Set PLL3 FRACN Coefficient
5985 * @note This API shall be called only when PLL3 is disabled.
5986 * @rmtoll PLL3CFGR2 PLL3DIVNFRAC LL_RCC_PLL3_SetFRACN
5987 * @param FRACN parameter can be a value between 0 and 2^24 (0xFFFFFF)
5988 */
LL_RCC_PLL3_SetFRACN(uint32_t FRACN)5989 __STATIC_INLINE void LL_RCC_PLL3_SetFRACN(uint32_t FRACN)
5990 {
5991 MODIFY_REG(RCC->PLL3CFGR2, RCC_PLL3CFGR2_PLL3DIVNFRAC, FRACN << RCC_PLL3CFGR2_PLL3DIVNFRAC_Pos);
5992 }
5993
5994 /**
5995 * @brief Get PLL3 FRACN Coefficient
5996 * @rmtoll PLL3CFGR2 PLL3DIVNFRAC LL_RCC_PLL3_GetFRACN
5997 * @retval A value between 0 and 2^24 (0xFFFFFF)
5998 */
LL_RCC_PLL3_GetFRACN(void)5999 __STATIC_INLINE uint32_t LL_RCC_PLL3_GetFRACN(void)
6000 {
6001 return (uint32_t)(READ_BIT(RCC->PLL3CFGR2, RCC_PLL3CFGR2_PLL3DIVNFRAC) >> RCC_PLL3CFGR2_PLL3DIVNFRAC_Pos);
6002 }
6003
6004 /**
6005 * @brief Set the oscillator used as PLL clock source.
6006 * @note PLL4SEL can be written only when All PLLs are disabled.
6007 * @rmtoll PLL4CFGR1 PLL4SEL LL_RCC_PLL4_SetSource
6008 * @param PLLSource parameter can be one of the following values:
6009 * @arg @ref LL_RCC_PLLSOURCE_HSI
6010 * @arg @ref LL_RCC_PLLSOURCE_MSI
6011 * @arg @ref LL_RCC_PLLSOURCE_HSE
6012 * @arg @ref LL_RCC_PLLSOURCE_I2S_CKIN
6013 * @retval None
6014 */
LL_RCC_PLL4_SetSource(uint32_t PLLSource)6015 __STATIC_INLINE void LL_RCC_PLL4_SetSource(uint32_t PLLSource)
6016 {
6017 MODIFY_REG(RCC->PLL4CFGR1, RCC_PLL4CFGR1_PLL4SEL, PLLSource);
6018 }
6019
6020 /**
6021 * @brief Get the oscillator used as PLL clock source.
6022 * @rmtoll PLL4CFGR1 PLL4SEL LL_RCC_PLL4_GetSource
6023 * @retval Returned value can be one of the following values:
6024 * @arg @ref LL_RCC_PLLSOURCE_HSI
6025 * @arg @ref LL_RCC_PLLSOURCE_MSI
6026 * @arg @ref LL_RCC_PLLSOURCE_HSE
6027 * @arg @ref LL_RCC_PLLSOURCE_I2S_CKIN
6028 */
LL_RCC_PLL4_GetSource(void)6029 __STATIC_INLINE uint32_t LL_RCC_PLL4_GetSource(void)
6030 {
6031 return (uint32_t)(READ_BIT(RCC->PLL4CFGR1, RCC_PLL4CFGR1_PLL4SEL));
6032 }
6033
6034 /**
6035 * @brief Enable PLL4
6036 * @rmtoll CSR PLL4ONS LL_RCC_PLL4_Enable
6037 * @retval None
6038 */
LL_RCC_PLL4_Enable(void)6039 __STATIC_INLINE void LL_RCC_PLL4_Enable(void)
6040 {
6041 WRITE_REG(RCC->CSR, RCC_CSR_PLL4ONS);
6042 }
6043
6044 /**
6045 * @brief Disable PLL4
6046 * @note Cannot be disabled if the PLL4 clock is used as the system clock
6047 * @rmtoll CCR PLL4ONC LL_RCC_PLL4_Disable
6048 * @retval None
6049 */
LL_RCC_PLL4_Disable(void)6050 __STATIC_INLINE void LL_RCC_PLL4_Disable(void)
6051 {
6052 WRITE_REG(RCC->CCR, RCC_CCR_PLL4ONC);
6053 }
6054
6055 /**
6056 * @brief Check if PLL4 Ready
6057 * @rmtoll SR PLL4RDY LL_RCC_PLL4_IsReady
6058 * @retval State of bit (1 or 0).
6059 */
LL_RCC_PLL4_IsReady(void)6060 __STATIC_INLINE uint32_t LL_RCC_PLL4_IsReady(void)
6061 {
6062 return ((READ_BIT(RCC->SR, RCC_SR_PLL4RDY) == (RCC_SR_PLL4RDY)) ? 1UL : 0UL);
6063 }
6064
6065 /**
6066 * @brief Enable PLL4 bypass (PLL4 output is driven by the PLL4 reference clock)
6067 * @note This API shall be called only when PLL4 is disabled.
6068 * @rmtoll PLL4CFGR1 PLL4BYP LL_RCC_PLL4_EnableBypass
6069 * @retval None
6070 */
LL_RCC_PLL4_EnableBypass(void)6071 __STATIC_INLINE void LL_RCC_PLL4_EnableBypass(void)
6072 {
6073 SET_BIT(RCC->PLL4CFGR1, RCC_PLL4CFGR1_PLL4BYP);
6074 }
6075
6076 /**
6077 * @brief Disable PLL4 bypass (PLL4 output is driven by the VCO)
6078 * @note This API shall be called only when PLL4 is disabled.
6079 * @rmtoll PLL4CFGR1 PLL4BYP LL_RCC_PLL4_DisableBypass
6080 * @retval None
6081 */
LL_RCC_PLL4_DisableBypass(void)6082 __STATIC_INLINE void LL_RCC_PLL4_DisableBypass(void)
6083 {
6084 CLEAR_BIT(RCC->PLL4CFGR1, RCC_PLL4CFGR1_PLL4BYP);
6085 }
6086
6087 /**
6088 * @brief Check if PLL4 bypass is enabled
6089 * @rmtoll PLL4CFGR1 PLL4BYP LL_RCC_PLL4_IsEnabledBypass
6090 * @retval State of bit (1 or 0).
6091 */
LL_RCC_PLL4_IsEnabledBypass(void)6092 __STATIC_INLINE uint32_t LL_RCC_PLL4_IsEnabledBypass(void)
6093 {
6094 return ((READ_BIT(RCC->PLL4CFGR1, RCC_PLL4CFGR1_PLL4BYP) == RCC_PLL4CFGR1_PLL4BYP) ? 1UL : 0UL);
6095 }
6096
6097 /**
6098 * @brief Assert PLL4 modulation spread-spectrum reset
6099 * @note This API shall be called only when PLL4 is disabled.
6100 * @rmtoll PLL4CFGR3 PLL4MODSSRST LL_RCC_PLL4_AssertModulationSpreadSpectrumReset
6101 * @retval None
6102 */
LL_RCC_PLL4_AssertModulationSpreadSpectrumReset(void)6103 __STATIC_INLINE void LL_RCC_PLL4_AssertModulationSpreadSpectrumReset(void)
6104 {
6105 SET_BIT(RCC->PLL4CFGR3, RCC_PLL4CFGR3_PLL4MODSSRST);
6106 }
6107
6108 /**
6109 * @brief Release PLL4 modulation spread-spectrum reset
6110 * @note This API shall be called only when PLL4 is disabled.
6111 * @rmtoll PLL4CFGR3 PLL4MODSSRST LL_RCC_PLL4_ReleaseModulationSpreadSpectrumReset
6112 * @retval None
6113 */
LL_RCC_PLL4_ReleaseModulationSpreadSpectrumReset(void)6114 __STATIC_INLINE void LL_RCC_PLL4_ReleaseModulationSpreadSpectrumReset(void)
6115 {
6116 CLEAR_BIT(RCC->PLL4CFGR3, RCC_PLL4CFGR3_PLL4MODSSRST);
6117 }
6118
6119 /**
6120 * @brief Enable PLL4 noise canceling DAC in fractional mode
6121 * @note This API shall be called only when PLL4 is disabled.
6122 * @rmtoll PLL4CFGR3 PLL4DACEN LL_RCC_PLL4_EnableDAC
6123 * @retval None
6124 */
LL_RCC_PLL4_EnableDAC(void)6125 __STATIC_INLINE void LL_RCC_PLL4_EnableDAC(void)
6126 {
6127 SET_BIT(RCC->PLL4CFGR3, RCC_PLL4CFGR3_PLL4DACEN);
6128 }
6129
6130 /**
6131 * @brief Disable PLL4 noise canceling DAC in fractional mode
6132 * @note This API shall be called only when PLL4 is disabled.
6133 * @rmtoll PLL4CFGR3 PLL4DACEN LL_RCC_PLL4_DisableDAC
6134 * @retval None
6135 */
LL_RCC_PLL4_DisableDAC(void)6136 __STATIC_INLINE void LL_RCC_PLL4_DisableDAC(void)
6137 {
6138 CLEAR_BIT(RCC->PLL4CFGR3, RCC_PLL4CFGR3_PLL4DACEN);
6139 }
6140
6141 /**
6142 * @brief Check if PLL4 noise canceling DAC in fractional mode is enabled
6143 * @rmtoll PLL4CFGR3 PLL4DACEN LL_RCC_PLL4_IsEnabledDAC
6144 * @retval State of bit (1 or 0).
6145 */
LL_RCC_PLL4_IsEnabledDAC(void)6146 __STATIC_INLINE uint32_t LL_RCC_PLL4_IsEnabledDAC(void)
6147 {
6148 return ((READ_BIT(RCC->PLL4CFGR3, RCC_PLL4CFGR3_PLL4DACEN) == RCC_PLL4CFGR3_PLL4DACEN) ? 1UL : 0UL);
6149 }
6150
6151 /**
6152 * @brief Enable PLL4 modulation spread-spectrum with fractional divide inactive
6153 * @note This API shall be called only when PLL4 is disabled.
6154 * @rmtoll PLL4CFGR3 PLL4MODSSDIS LL_RCC_PLL4_EnableModulationSpreadSpectrum
6155 * @retval None
6156 */
LL_RCC_PLL4_EnableModulationSpreadSpectrum(void)6157 __STATIC_INLINE void LL_RCC_PLL4_EnableModulationSpreadSpectrum(void)
6158 {
6159 CLEAR_BIT(RCC->PLL4CFGR3, RCC_PLL4CFGR3_PLL4MODSSDIS);
6160 }
6161
6162 /**
6163 * @brief Disable PLL4 modulation spread-spectrum but active fractional divide
6164 * @note This API shall be called only when PLL4 is disabled.
6165 * @rmtoll PLL4CFGR3 PLL4MODSSDIS LL_RCC_PLL4_DisableModulationSpreadSpectrum
6166 * @retval None
6167 */
LL_RCC_PLL4_DisableModulationSpreadSpectrum(void)6168 __STATIC_INLINE void LL_RCC_PLL4_DisableModulationSpreadSpectrum(void)
6169 {
6170 SET_BIT(RCC->PLL4CFGR3, RCC_PLL4CFGR3_PLL4MODSSDIS);
6171 }
6172
6173 /**
6174 * @brief Check if PLL4 modulation spread-spectrum and inactive fractional divide is enabled
6175 * @rmtoll PLL4CFGR3 PLL4MODSSDIS LL_RCC_PLL4_IsEnabledModulationSpreadSpectrum
6176 * @retval State of bit (1 or 0).
6177 */
LL_RCC_PLL4_IsEnabledModulationSpreadSpectrum(void)6178 __STATIC_INLINE uint32_t LL_RCC_PLL4_IsEnabledModulationSpreadSpectrum(void)
6179 {
6180 return ((READ_BIT(RCC->PLL4CFGR3, RCC_PLL4CFGR3_PLL4MODSSDIS) == 0UL) ? 1UL : 0UL);
6181 }
6182
6183 /**
6184 * @brief Enable PLL4 fractional divide and modulation spread-spectrum
6185 * @note This API shall be called only when PLL4 is disabled.
6186 * @rmtoll PLL4CFGR3 PLL4MODDSEN LL_RCC_PLL4_EnableFractionalModulationSpreadSpectrum
6187 * @retval None
6188 */
LL_RCC_PLL4_EnableFractionalModulationSpreadSpectrum(void)6189 __STATIC_INLINE void LL_RCC_PLL4_EnableFractionalModulationSpreadSpectrum(void)
6190 {
6191 SET_BIT(RCC->PLL4CFGR3, RCC_PLL4CFGR3_PLL4MODDSEN);
6192 }
6193
6194 /**
6195 * @brief Disable PLL4 fractional divide and modulation spread-spectrum
6196 * @note This API shall be called only when PLL4 is disabled.
6197 * @rmtoll PLL4CFGR3 PLL4MODDSEN LL_RCC_PLL4_DisableFractionalModulationSpreadSpectrum
6198 * @retval None
6199 */
LL_RCC_PLL4_DisableFractionalModulationSpreadSpectrum(void)6200 __STATIC_INLINE void LL_RCC_PLL4_DisableFractionalModulationSpreadSpectrum(void)
6201 {
6202 CLEAR_BIT(RCC->PLL4CFGR3, RCC_PLL4CFGR3_PLL4MODDSEN);
6203 }
6204
6205 /**
6206 * @brief Check if PLL4 fractional divide and modulation spread-spectrum is enabled
6207 * @rmtoll PLL4CFGR3 PLL4MODDSEN LL_RCC_PLL4_IsEnabledFractionalModulationSpreadSpectrum
6208 * @retval State of bit (1 or 0).
6209 */
LL_RCC_PLL4_IsEnabledFractionalModulationSpreadSpectrum(void)6210 __STATIC_INLINE uint32_t LL_RCC_PLL4_IsEnabledFractionalModulationSpreadSpectrum(void)
6211 {
6212 return ((READ_BIT(RCC->PLL4CFGR3, RCC_PLL4CFGR3_PLL4MODDSEN) == RCC_PLL4CFGR3_PLL4MODDSEN) ? 1UL : 0UL);
6213 }
6214
6215 /**
6216 * @brief Set PLL4 DIVN Coefficient
6217 * @note This API shall be called only when PLL4 is disabled.
6218 * @rmtoll PLL4CFGR1 PLL4DIVN LL_RCC_PLL4_SetN
6219 * @param N In integer mode, N parameter can be a value between 16 (0x10) and 2500 (0x9C4).
6220 * In fractional mode, N parameter can be a value between 20 (0x14) and 500 (0x1F4).
6221 */
LL_RCC_PLL4_SetN(uint32_t N)6222 __STATIC_INLINE void LL_RCC_PLL4_SetN(uint32_t N)
6223 {
6224 MODIFY_REG(RCC->PLL4CFGR1, RCC_PLL4CFGR1_PLL4DIVN, N << RCC_PLL4CFGR1_PLL4DIVN_Pos);
6225 }
6226
6227 /**
6228 * @brief Get PLL4 DIVN Coefficient
6229 * @rmtoll PLL4CFGR1 PLL4DIVN LL_RCC_PLL4_GetN
6230 * @retval In integer mode, a value between 16 (0x10) and 2500 (0x9C4).
6231 * In fractional mode, a value between 20 (0x14) and 500 (0x1F4).
6232 */
LL_RCC_PLL4_GetN(void)6233 __STATIC_INLINE uint32_t LL_RCC_PLL4_GetN(void)
6234 {
6235 return (uint32_t)((READ_BIT(RCC->PLL4CFGR1, RCC_PLL4CFGR1_PLL4DIVN) >> RCC_PLL4CFGR1_PLL4DIVN_Pos));
6236 }
6237
6238 /**
6239 * @brief Set PLL4 DIVM Coefficient
6240 * @note This API shall be called only when PLL4 is disabled.
6241 * @rmtoll PLL4CFGR1 PLL4DIVM LL_RCC_PLL4_SetM
6242 * @param M parameter can be a value between 1 and 63
6243 */
LL_RCC_PLL4_SetM(uint32_t M)6244 __STATIC_INLINE void LL_RCC_PLL4_SetM(uint32_t M)
6245 {
6246 MODIFY_REG(RCC->PLL4CFGR1, RCC_PLL4CFGR1_PLL4DIVM, M << RCC_PLL4CFGR1_PLL4DIVM_Pos);
6247 }
6248
6249 /**
6250 * @brief Get PLL4 DIVM Coefficient
6251 * @rmtoll PLL4CFGR1 PLL4DIVM LL_RCC_PLL4_GetM
6252 * @retval A value between 1 and 63
6253 */
LL_RCC_PLL4_GetM(void)6254 __STATIC_INLINE uint32_t LL_RCC_PLL4_GetM(void)
6255 {
6256 return (uint32_t)(READ_BIT(RCC->PLL4CFGR1, RCC_PLL4CFGR1_PLL4DIVM) >> RCC_PLL4CFGR1_PLL4DIVM_Pos);
6257 }
6258
6259 /**
6260 * @brief Set PLL4 PDIV1 Coefficient
6261 * @note This API shall be called only when PLL4 is disabled.
6262 * @rmtoll PLL4CFGR3 PLL4PDIV1 LL_RCC_PLL4_SetP1
6263 * @param P1 parameter can be a value between 1 and 7 when PLL4 is enabled, 0 when disabled
6264 */
LL_RCC_PLL4_SetP1(uint32_t P1)6265 __STATIC_INLINE void LL_RCC_PLL4_SetP1(uint32_t P1)
6266 {
6267 MODIFY_REG(RCC->PLL4CFGR3, RCC_PLL4CFGR3_PLL4PDIV1, P1 << RCC_PLL4CFGR3_PLL4PDIV1_Pos);
6268 }
6269
6270 /**
6271 * @brief Get PLL4 PDIV2 Coefficient
6272 * @rmtoll PLL4CFGR3 PLL4PDIV1 LL_RCC_PLL4_GetP1
6273 * @retval A value between 0 and 7
6274 */
LL_RCC_PLL4_GetP1(void)6275 __STATIC_INLINE uint32_t LL_RCC_PLL4_GetP1(void)
6276 {
6277 return (uint32_t)(READ_BIT(RCC->PLL4CFGR3, RCC_PLL4CFGR3_PLL4PDIV1) >> RCC_PLL4CFGR3_PLL4PDIV1_Pos);
6278 }
6279
6280 /**
6281 * @brief Set PLL4 PDIV2 Coefficient
6282 * @note This API shall be called only when PLL4 is disabled.
6283 * @rmtoll PLL4CFGR3 PLL4PDIV2 LL_RCC_PLL4_SetP2
6284 * @param P2 parameter can be a value between 1 and 7
6285 */
LL_RCC_PLL4_SetP2(uint32_t P2)6286 __STATIC_INLINE void LL_RCC_PLL4_SetP2(uint32_t P2)
6287 {
6288 MODIFY_REG(RCC->PLL4CFGR3, RCC_PLL4CFGR3_PLL4PDIV2, P2 << RCC_PLL4CFGR3_PLL4PDIV2_Pos);
6289 }
6290
6291 /**
6292 * @brief Get PLL4 PDIV2 Coefficient
6293 * @rmtoll PLL4CFGR3 PLL4PDIV2 LL_RCC_PLL4_GetP2
6294 * @retval A value between 1 and 7
6295 */
LL_RCC_PLL4_GetP2(void)6296 __STATIC_INLINE uint32_t LL_RCC_PLL4_GetP2(void)
6297 {
6298 return (uint32_t)(READ_BIT(RCC->PLL4CFGR3, RCC_PLL4CFGR3_PLL4PDIV2) >> RCC_PLL4CFGR3_PLL4PDIV2_Pos);
6299 }
6300
6301 /**
6302 * @brief Enable PLL4P
6303 * @note This API shall be called only when PLL4 is disabled.
6304 * @rmtoll PLL4CFGR3 PLL4PDIVEN LL_RCC_PLL4P_Enable
6305 * @retval None
6306 */
LL_RCC_PLL4P_Enable(void)6307 __STATIC_INLINE void LL_RCC_PLL4P_Enable(void)
6308 {
6309 SET_BIT(RCC->PLL4CFGR3, RCC_PLL4CFGR3_PLL4PDIVEN);
6310 }
6311
6312 /**
6313 * @brief Disable PLL4P
6314 * @note This API shall be called only when PLL4 is disabled.
6315 * @rmtoll PLL4CFGR3 PLL4PDIVEN LL_RCC_PLL4P_Disable
6316 * @retval None
6317 */
LL_RCC_PLL4P_Disable(void)6318 __STATIC_INLINE void LL_RCC_PLL4P_Disable(void)
6319 {
6320 CLEAR_BIT(RCC->PLL4CFGR3, RCC_PLL4CFGR3_PLL4PDIVEN);
6321 }
6322
6323 /**
6324 * @brief Check if PLL4 P is enabled
6325 * @rmtoll PLL4CFGR3 PLL4PDIVEN LL_RCC_PLL4P_IsEnabled
6326 * @retval State of bit (1 or 0).
6327 */
LL_RCC_PLL4P_IsEnabled(void)6328 __STATIC_INLINE uint32_t LL_RCC_PLL4P_IsEnabled(void)
6329 {
6330 return ((READ_BIT(RCC->PLL4CFGR3, RCC_PLL4CFGR3_PLL4PDIVEN) == RCC_PLL4CFGR3_PLL4PDIVEN) ? 1UL : 0UL);
6331 }
6332
6333 /**
6334 * @brief Set PLL4 FRACN Coefficient
6335 * @note This API shall be called only when PLL4 is disabled.
6336 * @rmtoll PLL4CFGR2 PLL4DIVNFRAC LL_RCC_PLL4_SetFRACN
6337 * @param FRACN parameter can be a value between 0 and 2^24 (0xFFFFFF)
6338 */
LL_RCC_PLL4_SetFRACN(uint32_t FRACN)6339 __STATIC_INLINE void LL_RCC_PLL4_SetFRACN(uint32_t FRACN)
6340 {
6341 MODIFY_REG(RCC->PLL4CFGR2, RCC_PLL4CFGR2_PLL4DIVNFRAC, FRACN << RCC_PLL4CFGR2_PLL4DIVNFRAC_Pos);
6342 }
6343
6344 /**
6345 * @brief Get PLL4 FRACN Coefficient
6346 * @rmtoll PLL4CFGR2 PLL4DIVNFRAC LL_RCC_PLL4_GetFRACN
6347 * @retval A value between 0 and 2^24 (0xFFFFFF)
6348 */
LL_RCC_PLL4_GetFRACN(void)6349 __STATIC_INLINE uint32_t LL_RCC_PLL4_GetFRACN(void)
6350 {
6351 return (uint32_t)(READ_BIT(RCC->PLL4CFGR2, RCC_PLL4CFGR2_PLL4DIVNFRAC) >> RCC_PLL4CFGR2_PLL4DIVNFRAC_Pos);
6352 }
6353
6354 /**
6355 * @brief Enable IC1
6356 * @rmtoll DIVENSR IC1ENS LL_RCC_IC1_Enable
6357 * @retval None
6358 */
LL_RCC_IC1_Enable(void)6359 __STATIC_INLINE void LL_RCC_IC1_Enable(void)
6360 {
6361 WRITE_REG(RCC->DIVENSR, RCC_DIVENSR_IC1ENS);
6362 }
6363
6364 /**
6365 * @brief Disable IC1
6366 * @rmtoll DIVENCR IC1ENC LL_RCC_IC1_Disable
6367 * @retval None
6368 */
LL_RCC_IC1_Disable(void)6369 __STATIC_INLINE void LL_RCC_IC1_Disable(void)
6370 {
6371 WRITE_REG(RCC->DIVENCR, RCC_DIVENCR_IC1ENC);
6372 }
6373
6374 /**
6375 * @brief Check if IC1 is enabled
6376 * @rmtoll DIVENR IC1EN LL_RCC_IC1_IsEnabled
6377 * @retval State of bit (1 or 0).
6378 */
LL_RCC_IC1_IsEnabled(void)6379 __STATIC_INLINE uint32_t LL_RCC_IC1_IsEnabled(void)
6380 {
6381 return ((READ_BIT(RCC->DIVENR, RCC_DIVENR_IC1EN) == RCC_DIVENR_IC1EN) ? 1UL : 0UL);
6382 }
6383
6384 /**
6385 * @brief Set the PLL source used as IC1 clock source.
6386 * @rmtoll IC1CFGR IC1SEL LL_RCC_IC1_SetSource
6387 * @param Source parameter can be one of the following values:
6388 * @arg @ref LL_RCC_ICCLKSOURCE_PLL1
6389 * @arg @ref LL_RCC_ICCLKSOURCE_PLL2
6390 * @arg @ref LL_RCC_ICCLKSOURCE_PLL3
6391 * @arg @ref LL_RCC_ICCLKSOURCE_PLL4
6392 * @retval None
6393 */
LL_RCC_IC1_SetSource(uint32_t Source)6394 __STATIC_INLINE void LL_RCC_IC1_SetSource(uint32_t Source)
6395 {
6396 MODIFY_REG(RCC->IC1CFGR, RCC_IC1CFGR_IC1SEL, Source);
6397 }
6398
6399 /**
6400 * @brief Get the PLL source used as IC1 clock source.
6401 * @rmtoll IC1CFGR IC1SEL LL_RCC_IC1_GetSource
6402 * @retval Returned value can be one of the following values:
6403 * @arg @ref LL_RCC_ICCLKSOURCE_PLL1
6404 * @arg @ref LL_RCC_ICCLKSOURCE_PLL2
6405 * @arg @ref LL_RCC_ICCLKSOURCE_PLL3
6406 * @arg @ref LL_RCC_ICCLKSOURCE_PLL4
6407 */
LL_RCC_IC1_GetSource(void)6408 __STATIC_INLINE uint32_t LL_RCC_IC1_GetSource(void)
6409 {
6410 return (uint32_t)(READ_BIT(RCC->IC1CFGR, RCC_IC1CFGR_IC1SEL));
6411 }
6412
6413 /**
6414 * @brief Set divider
6415 * @rmtoll IC1CFGR IC1INT LL_RCC_IC1_SetDivider
6416 * @param Divider This parameter can be a value between 1 and 256.
6417 * @retval None
6418 */
LL_RCC_IC1_SetDivider(uint32_t Divider)6419 __STATIC_INLINE void LL_RCC_IC1_SetDivider(uint32_t Divider)
6420 {
6421 MODIFY_REG(RCC->IC1CFGR, RCC_IC1CFGR_IC1INT, (Divider - 1UL) << RCC_IC1CFGR_IC1INT_Pos);
6422 }
6423
6424 /**
6425 * @brief Get IC1 divider
6426 * @rmtoll IC1CFGR IC1INT LL_RCC_IC1_GetDivider
6427 * @retval can be a value between 1 and 256.
6428 */
LL_RCC_IC1_GetDivider(void)6429 __STATIC_INLINE uint32_t LL_RCC_IC1_GetDivider(void)
6430 {
6431 return ((READ_BIT(RCC->IC1CFGR, RCC_IC1CFGR_IC1INT) >> RCC_IC1CFGR_IC1INT_Pos) + 1UL);
6432 }
6433
6434 /**
6435 * @brief Enable IC2
6436 * @rmtoll DIVENSR IC2ENS LL_RCC_IC2_Enable
6437 * @retval None
6438 */
LL_RCC_IC2_Enable(void)6439 __STATIC_INLINE void LL_RCC_IC2_Enable(void)
6440 {
6441 WRITE_REG(RCC->DIVENSR, RCC_DIVENSR_IC2ENS);
6442 }
6443
6444 /**
6445 * @brief Disable IC2
6446 * @rmtoll DIVENCR IC2ENC LL_RCC_IC2_Disable
6447 * @retval None
6448 */
LL_RCC_IC2_Disable(void)6449 __STATIC_INLINE void LL_RCC_IC2_Disable(void)
6450 {
6451 WRITE_REG(RCC->DIVENCR, RCC_DIVENCR_IC2ENC);
6452 }
6453
6454 /**
6455 * @brief Check if IC2 is enabled
6456 * @rmtoll DIVENR IC2EN LL_RCC_IC2_IsEnabled
6457 * @retval State of bit (1 or 0).
6458 */
LL_RCC_IC2_IsEnabled(void)6459 __STATIC_INLINE uint32_t LL_RCC_IC2_IsEnabled(void)
6460 {
6461 return ((READ_BIT(RCC->DIVENR, RCC_DIVENR_IC2EN) == RCC_DIVENR_IC2EN) ? 1UL : 0UL);
6462 }
6463
6464 /**
6465 * @brief Set the PLL source used as IC2 clock source.
6466 * @rmtoll IC2CFGR IC2SEL LL_RCC_IC2_SetSource
6467 * @param Source parameter can be one of the following values:
6468 * @arg @ref LL_RCC_ICCLKSOURCE_PLL1
6469 * @arg @ref LL_RCC_ICCLKSOURCE_PLL2
6470 * @arg @ref LL_RCC_ICCLKSOURCE_PLL3
6471 * @arg @ref LL_RCC_ICCLKSOURCE_PLL4
6472 * @retval None
6473 */
LL_RCC_IC2_SetSource(uint32_t Source)6474 __STATIC_INLINE void LL_RCC_IC2_SetSource(uint32_t Source)
6475 {
6476 MODIFY_REG(RCC->IC2CFGR, RCC_IC2CFGR_IC2SEL, Source);
6477 }
6478
6479 /**
6480 * @brief Get the PLL source used as IC2 clock source.
6481 * @rmtoll IC2CFGR IC2SEL LL_RCC_IC2_GetSource
6482 * @retval Returned value can be one of the following values:
6483 * @arg @ref LL_RCC_ICCLKSOURCE_PLL1
6484 * @arg @ref LL_RCC_ICCLKSOURCE_PLL2
6485 * @arg @ref LL_RCC_ICCLKSOURCE_PLL3
6486 * @arg @ref LL_RCC_ICCLKSOURCE_PLL4
6487 */
LL_RCC_IC2_GetSource(void)6488 __STATIC_INLINE uint32_t LL_RCC_IC2_GetSource(void)
6489 {
6490 return (uint32_t)(READ_BIT(RCC->IC2CFGR, RCC_IC2CFGR_IC2SEL));
6491 }
6492
6493 /**
6494 * @brief Set divider
6495 * @rmtoll IC2CFGR IC2INT LL_RCC_IC2_SetDivider
6496 * @param Divider This parameter can be a value between 1 and 256.
6497 * @retval None
6498 */
LL_RCC_IC2_SetDivider(uint32_t Divider)6499 __STATIC_INLINE void LL_RCC_IC2_SetDivider(uint32_t Divider)
6500 {
6501 MODIFY_REG(RCC->IC2CFGR, RCC_IC2CFGR_IC2INT, (Divider - 1UL) << RCC_IC2CFGR_IC2INT_Pos);
6502 }
6503
6504 /**
6505 * @brief Get IC2 divider
6506 * @rmtoll IC2CFGR IC2INT LL_RCC_IC2_GetDivider
6507 * @retval can be a value between 1 and 256.
6508 */
LL_RCC_IC2_GetDivider(void)6509 __STATIC_INLINE uint32_t LL_RCC_IC2_GetDivider(void)
6510 {
6511 return ((READ_BIT(RCC->IC2CFGR, RCC_IC2CFGR_IC2INT) >> RCC_IC2CFGR_IC2INT_Pos) + 1UL);
6512 }
6513
6514 /**
6515 * @brief Enable IC3
6516 * @rmtoll DIVENSR IC3ENS LL_RCC_IC3_Enable
6517 * @retval None
6518 */
LL_RCC_IC3_Enable(void)6519 __STATIC_INLINE void LL_RCC_IC3_Enable(void)
6520 {
6521 WRITE_REG(RCC->DIVENSR, RCC_DIVENSR_IC3ENS);
6522 }
6523
6524 /**
6525 * @brief Disable IC3
6526 * @rmtoll DIVENCR IC3ENC LL_RCC_IC3_Disable
6527 * @retval None
6528 */
LL_RCC_IC3_Disable(void)6529 __STATIC_INLINE void LL_RCC_IC3_Disable(void)
6530 {
6531 WRITE_REG(RCC->DIVENCR, RCC_DIVENCR_IC3ENC);
6532 }
6533
6534 /**
6535 * @brief Check if IC3 is enabled
6536 * @rmtoll DIVENR IC3EN LL_RCC_IC3_IsEnabled
6537 * @retval State of bit (1 or 0).
6538 */
LL_RCC_IC3_IsEnabled(void)6539 __STATIC_INLINE uint32_t LL_RCC_IC3_IsEnabled(void)
6540 {
6541 return ((READ_BIT(RCC->DIVENR, RCC_DIVENR_IC3EN) == RCC_DIVENR_IC3EN) ? 1UL : 0UL);
6542 }
6543
6544 /**
6545 * @brief Set the PLL source used as IC3 clock source.
6546 * @rmtoll IC3CFGR IC3SEL LL_RCC_IC3_SetSource
6547 * @param Source parameter can be one of the following values:
6548 * @arg @ref LL_RCC_ICCLKSOURCE_PLL1
6549 * @arg @ref LL_RCC_ICCLKSOURCE_PLL2
6550 * @arg @ref LL_RCC_ICCLKSOURCE_PLL3
6551 * @arg @ref LL_RCC_ICCLKSOURCE_PLL4
6552 * @retval None
6553 */
LL_RCC_IC3_SetSource(uint32_t Source)6554 __STATIC_INLINE void LL_RCC_IC3_SetSource(uint32_t Source)
6555 {
6556 MODIFY_REG(RCC->IC3CFGR, RCC_IC3CFGR_IC3SEL, Source);
6557 }
6558
6559 /**
6560 * @brief Get the PLL source used as IC3 clock source.
6561 * @rmtoll IC3CFGR IC3SEL LL_RCC_IC3_GetSource
6562 * @retval Returned value can be one of the following values:
6563 * @arg @ref LL_RCC_ICCLKSOURCE_PLL1
6564 * @arg @ref LL_RCC_ICCLKSOURCE_PLL2
6565 * @arg @ref LL_RCC_ICCLKSOURCE_PLL3
6566 * @arg @ref LL_RCC_ICCLKSOURCE_PLL4
6567 */
LL_RCC_IC3_GetSource(void)6568 __STATIC_INLINE uint32_t LL_RCC_IC3_GetSource(void)
6569 {
6570 return (uint32_t)(READ_BIT(RCC->IC3CFGR, RCC_IC3CFGR_IC3SEL));
6571 }
6572
6573 /**
6574 * @brief Set divider
6575 * @rmtoll IC3CFGR IC3INT LL_RCC_IC3_SetDivider
6576 * @param Divider This parameter can be a value between 1 and 256.
6577 * @retval None
6578 */
LL_RCC_IC3_SetDivider(uint32_t Divider)6579 __STATIC_INLINE void LL_RCC_IC3_SetDivider(uint32_t Divider)
6580 {
6581 MODIFY_REG(RCC->IC3CFGR, RCC_IC3CFGR_IC3INT, (Divider - 1UL) << RCC_IC3CFGR_IC3INT_Pos);
6582 }
6583
6584 /**
6585 * @brief Get IC3 divider
6586 * @rmtoll IC3CFGR IC3INT LL_RCC_IC3_GetDivider
6587 * @retval can be a value between 1 and 256.
6588 */
LL_RCC_IC3_GetDivider(void)6589 __STATIC_INLINE uint32_t LL_RCC_IC3_GetDivider(void)
6590 {
6591 return ((READ_BIT(RCC->IC3CFGR, RCC_IC3CFGR_IC3INT) >> RCC_IC3CFGR_IC3INT_Pos) + 1UL);
6592 }
6593
6594 /**
6595 * @brief Enable IC4
6596 * @rmtoll DIVENSR IC4ENS LL_RCC_IC4_Enable
6597 * @retval None
6598 */
LL_RCC_IC4_Enable(void)6599 __STATIC_INLINE void LL_RCC_IC4_Enable(void)
6600 {
6601 WRITE_REG(RCC->DIVENSR, RCC_DIVENSR_IC4ENS);
6602 }
6603
6604 /**
6605 * @brief Disable IC4
6606 * @rmtoll DIVENCR IC4ENC LL_RCC_IC4_Disable
6607 * @retval None
6608 */
LL_RCC_IC4_Disable(void)6609 __STATIC_INLINE void LL_RCC_IC4_Disable(void)
6610 {
6611 WRITE_REG(RCC->DIVENCR, RCC_DIVENCR_IC4ENC);
6612 }
6613
6614 /**
6615 * @brief Check if IC4 is enabled
6616 * @rmtoll DIVENR IC4EN LL_RCC_IC4_IsEnabled
6617 * @retval State of bit (1 or 0).
6618 */
LL_RCC_IC4_IsEnabled(void)6619 __STATIC_INLINE uint32_t LL_RCC_IC4_IsEnabled(void)
6620 {
6621 return ((READ_BIT(RCC->DIVENR, RCC_DIVENR_IC4EN) == RCC_DIVENR_IC4EN) ? 1UL : 0UL);
6622 }
6623
6624 /**
6625 * @brief Set the PLL source used as IC4 clock source.
6626 * @rmtoll IC4CFGR IC4SEL LL_RCC_IC4_SetSource
6627 * @param Source parameter can be one of the following values:
6628 * @arg @ref LL_RCC_ICCLKSOURCE_PLL1
6629 * @arg @ref LL_RCC_ICCLKSOURCE_PLL2
6630 * @arg @ref LL_RCC_ICCLKSOURCE_PLL3
6631 * @arg @ref LL_RCC_ICCLKSOURCE_PLL4
6632 * @retval None
6633 */
LL_RCC_IC4_SetSource(uint32_t Source)6634 __STATIC_INLINE void LL_RCC_IC4_SetSource(uint32_t Source)
6635 {
6636 MODIFY_REG(RCC->IC4CFGR, RCC_IC4CFGR_IC4SEL, Source);
6637 }
6638
6639 /**
6640 * @brief Get the PLL source used as IC4 clock source.
6641 * @rmtoll IC4CFGR IC4SEL LL_RCC_IC4_GetSource
6642 * @retval Returned value can be one of the following values:
6643 * @arg @ref LL_RCC_ICCLKSOURCE_PLL1
6644 * @arg @ref LL_RCC_ICCLKSOURCE_PLL2
6645 * @arg @ref LL_RCC_ICCLKSOURCE_PLL3
6646 * @arg @ref LL_RCC_ICCLKSOURCE_PLL4
6647 */
LL_RCC_IC4_GetSource(void)6648 __STATIC_INLINE uint32_t LL_RCC_IC4_GetSource(void)
6649 {
6650 return (uint32_t)(READ_BIT(RCC->IC4CFGR, RCC_IC4CFGR_IC4SEL));
6651 }
6652
6653 /**
6654 * @brief Set divider
6655 * @rmtoll IC4CFGR IC4INT LL_RCC_IC4_SetDivider
6656 * @param Divider This parameter can be a value between 1 and 256.
6657 * @retval None
6658 */
LL_RCC_IC4_SetDivider(uint32_t Divider)6659 __STATIC_INLINE void LL_RCC_IC4_SetDivider(uint32_t Divider)
6660 {
6661 MODIFY_REG(RCC->IC4CFGR, RCC_IC4CFGR_IC4INT, (Divider - 1UL) << RCC_IC4CFGR_IC4INT_Pos);
6662 }
6663
6664 /**
6665 * @brief Get IC4 divider
6666 * @rmtoll IC4CFGR IC4INT LL_RCC_IC4_GetDivider
6667 * @retval can be a value between 1 and 256.
6668 */
LL_RCC_IC4_GetDivider(void)6669 __STATIC_INLINE uint32_t LL_RCC_IC4_GetDivider(void)
6670 {
6671 return ((READ_BIT(RCC->IC4CFGR, RCC_IC4CFGR_IC4INT) >> RCC_IC4CFGR_IC4INT_Pos) + 1UL);
6672 }
6673
6674 /**
6675 * @brief Enable IC5
6676 * @rmtoll DIVENSR IC5ENS LL_RCC_IC5_Enable
6677 * @retval None
6678 */
LL_RCC_IC5_Enable(void)6679 __STATIC_INLINE void LL_RCC_IC5_Enable(void)
6680 {
6681 WRITE_REG(RCC->DIVENSR, RCC_DIVENSR_IC5ENS);
6682 }
6683
6684 /**
6685 * @brief Disable IC5
6686 * @rmtoll DIVENCR IC5ENC LL_RCC_IC5_Disable
6687 * @retval None
6688 */
LL_RCC_IC5_Disable(void)6689 __STATIC_INLINE void LL_RCC_IC5_Disable(void)
6690 {
6691 WRITE_REG(RCC->DIVENCR, RCC_DIVENCR_IC5ENC);
6692 }
6693
6694 /**
6695 * @brief Check if IC5 is enabled
6696 * @rmtoll DIVENR IC5EN LL_RCC_IC5_IsEnabled
6697 * @retval State of bit (1 or 0).
6698 */
LL_RCC_IC5_IsEnabled(void)6699 __STATIC_INLINE uint32_t LL_RCC_IC5_IsEnabled(void)
6700 {
6701 return ((READ_BIT(RCC->DIVENR, RCC_DIVENR_IC5EN) == RCC_DIVENR_IC5EN) ? 1UL : 0UL);
6702 }
6703
6704 /**
6705 * @brief Set the PLL source used as IC5 clock source.
6706 * @rmtoll IC5CFGR IC5SEL LL_RCC_IC5_SetSource
6707 * @param Source parameter can be one of the following values:
6708 * @arg @ref LL_RCC_ICCLKSOURCE_PLL1
6709 * @arg @ref LL_RCC_ICCLKSOURCE_PLL2
6710 * @arg @ref LL_RCC_ICCLKSOURCE_PLL3
6711 * @arg @ref LL_RCC_ICCLKSOURCE_PLL4
6712 * @retval None
6713 */
LL_RCC_IC5_SetSource(uint32_t Source)6714 __STATIC_INLINE void LL_RCC_IC5_SetSource(uint32_t Source)
6715 {
6716 MODIFY_REG(RCC->IC5CFGR, RCC_IC5CFGR_IC5SEL, Source);
6717 }
6718
6719 /**
6720 * @brief Get the PLL source used as IC5 clock source.
6721 * @rmtoll IC5CFGR IC5SEL LL_RCC_IC5_GetSource
6722 * @retval Returned value can be one of the following values:
6723 * @arg @ref LL_RCC_ICCLKSOURCE_PLL1
6724 * @arg @ref LL_RCC_ICCLKSOURCE_PLL2
6725 * @arg @ref LL_RCC_ICCLKSOURCE_PLL3
6726 * @arg @ref LL_RCC_ICCLKSOURCE_PLL4
6727 */
LL_RCC_IC5_GetSource(void)6728 __STATIC_INLINE uint32_t LL_RCC_IC5_GetSource(void)
6729 {
6730 return (uint32_t)(READ_BIT(RCC->IC5CFGR, RCC_IC5CFGR_IC5SEL));
6731 }
6732
6733 /**
6734 * @brief Set divider
6735 * @rmtoll IC5CFGR IC5INT LL_RCC_IC5_SetDivider
6736 * @param Divider This parameter can be a value between 1 and 256.
6737 * @retval None
6738 */
LL_RCC_IC5_SetDivider(uint32_t Divider)6739 __STATIC_INLINE void LL_RCC_IC5_SetDivider(uint32_t Divider)
6740 {
6741 MODIFY_REG(RCC->IC5CFGR, RCC_IC5CFGR_IC5INT, (Divider - 1UL) << RCC_IC5CFGR_IC5INT_Pos);
6742 }
6743
6744 /**
6745 * @brief Get IC5 divider
6746 * @rmtoll IC5CFGR IC5INT LL_RCC_IC5_GetDivider
6747 * @retval can be a value between 1 and 256.
6748 */
LL_RCC_IC5_GetDivider(void)6749 __STATIC_INLINE uint32_t LL_RCC_IC5_GetDivider(void)
6750 {
6751 return ((READ_BIT(RCC->IC5CFGR, RCC_IC5CFGR_IC5INT) >> RCC_IC5CFGR_IC5INT_Pos) + 1UL);
6752 }
6753
6754 /**
6755 * @brief Enable IC6
6756 * @rmtoll DIVENSR IC6ENS LL_RCC_IC6_Enable
6757 * @retval None
6758 */
LL_RCC_IC6_Enable(void)6759 __STATIC_INLINE void LL_RCC_IC6_Enable(void)
6760 {
6761 WRITE_REG(RCC->DIVENSR, RCC_DIVENSR_IC6ENS);
6762 }
6763
6764 /**
6765 * @brief Disable IC6
6766 * @rmtoll DIVENCR IC6ENC LL_RCC_IC6_Disable
6767 * @retval None
6768 */
LL_RCC_IC6_Disable(void)6769 __STATIC_INLINE void LL_RCC_IC6_Disable(void)
6770 {
6771 WRITE_REG(RCC->DIVENCR, RCC_DIVENCR_IC6ENC);
6772 }
6773
6774 /**
6775 * @brief Check if IC6 is enabled
6776 * @rmtoll DIVENR IC6EN LL_RCC_IC6_IsEnabled
6777 * @retval State of bit (1 or 0).
6778 */
LL_RCC_IC6_IsEnabled(void)6779 __STATIC_INLINE uint32_t LL_RCC_IC6_IsEnabled(void)
6780 {
6781 return ((READ_BIT(RCC->DIVENR, RCC_DIVENR_IC6EN) == RCC_DIVENR_IC6EN) ? 1UL : 0UL);
6782 }
6783
6784 /**
6785 * @brief Set the PLL source used as IC6 clock source.
6786 * @rmtoll IC6CFGR IC6SEL LL_RCC_IC6_SetSource
6787 * @param Source parameter can be one of the following values:
6788 * @arg @ref LL_RCC_ICCLKSOURCE_PLL1
6789 * @arg @ref LL_RCC_ICCLKSOURCE_PLL2
6790 * @arg @ref LL_RCC_ICCLKSOURCE_PLL3
6791 * @arg @ref LL_RCC_ICCLKSOURCE_PLL4
6792 * @retval None
6793 */
LL_RCC_IC6_SetSource(uint32_t Source)6794 __STATIC_INLINE void LL_RCC_IC6_SetSource(uint32_t Source)
6795 {
6796 MODIFY_REG(RCC->IC6CFGR, RCC_IC6CFGR_IC6SEL, Source);
6797 }
6798
6799 /**
6800 * @brief Get the PLL source used as IC6 clock source.
6801 * @rmtoll IC6CFGR IC6SEL LL_RCC_IC6_GetSource
6802 * @retval Returned value can be one of the following values:
6803 * @arg @ref LL_RCC_ICCLKSOURCE_PLL1
6804 * @arg @ref LL_RCC_ICCLKSOURCE_PLL2
6805 * @arg @ref LL_RCC_ICCLKSOURCE_PLL3
6806 * @arg @ref LL_RCC_ICCLKSOURCE_PLL4
6807 */
LL_RCC_IC6_GetSource(void)6808 __STATIC_INLINE uint32_t LL_RCC_IC6_GetSource(void)
6809 {
6810 return (uint32_t)(READ_BIT(RCC->IC6CFGR, RCC_IC6CFGR_IC6SEL));
6811 }
6812
6813 /**
6814 * @brief Set divider
6815 * @rmtoll IC6CFGR IC6INT LL_RCC_IC6_SetDivider
6816 * @param Divider This parameter can be a value between 1 and 256.
6817 * @retval None
6818 */
LL_RCC_IC6_SetDivider(uint32_t Divider)6819 __STATIC_INLINE void LL_RCC_IC6_SetDivider(uint32_t Divider)
6820 {
6821 MODIFY_REG(RCC->IC6CFGR, RCC_IC6CFGR_IC6INT, (Divider - 1UL) << RCC_IC6CFGR_IC6INT_Pos);
6822 }
6823
6824 /**
6825 * @brief Get IC6 divider
6826 * @rmtoll IC6CFGR IC6INT LL_RCC_IC6_GetDivider
6827 * @retval can be a value between 1 and 256.
6828 */
LL_RCC_IC6_GetDivider(void)6829 __STATIC_INLINE uint32_t LL_RCC_IC6_GetDivider(void)
6830 {
6831 return ((READ_BIT(RCC->IC6CFGR, RCC_IC6CFGR_IC6INT) >> RCC_IC6CFGR_IC6INT_Pos) + 1UL);
6832 }
6833
6834 /**
6835 * @brief Enable IC7
6836 * @rmtoll DIVENSR IC7ENS LL_RCC_IC7_Enable
6837 * @retval None
6838 */
LL_RCC_IC7_Enable(void)6839 __STATIC_INLINE void LL_RCC_IC7_Enable(void)
6840 {
6841 WRITE_REG(RCC->DIVENSR, RCC_DIVENSR_IC7ENS);
6842 }
6843
6844 /**
6845 * @brief Disable IC7
6846 * @rmtoll DIVENCR IC7ENC LL_RCC_IC7_Disable
6847 * @retval None
6848 */
LL_RCC_IC7_Disable(void)6849 __STATIC_INLINE void LL_RCC_IC7_Disable(void)
6850 {
6851 WRITE_REG(RCC->DIVENCR, RCC_DIVENCR_IC7ENC);
6852 }
6853
6854 /**
6855 * @brief Check if IC7 is enabled
6856 * @rmtoll DIVENR IC7EN LL_RCC_IC7_IsEnabled
6857 * @retval State of bit (1 or 0).
6858 */
LL_RCC_IC7_IsEnabled(void)6859 __STATIC_INLINE uint32_t LL_RCC_IC7_IsEnabled(void)
6860 {
6861 return ((READ_BIT(RCC->DIVENR, RCC_DIVENR_IC7EN) == RCC_DIVENR_IC7EN) ? 1UL : 0UL);
6862 }
6863
6864 /**
6865 * @brief Set the PLL source used as IC7 clock source.
6866 * @rmtoll IC7CFGR IC7SEL LL_RCC_IC7_SetSource
6867 * @param Source parameter can be one of the following values:
6868 * @arg @ref LL_RCC_ICCLKSOURCE_PLL1
6869 * @arg @ref LL_RCC_ICCLKSOURCE_PLL2
6870 * @arg @ref LL_RCC_ICCLKSOURCE_PLL3
6871 * @arg @ref LL_RCC_ICCLKSOURCE_PLL4
6872 * @retval None
6873 */
LL_RCC_IC7_SetSource(uint32_t Source)6874 __STATIC_INLINE void LL_RCC_IC7_SetSource(uint32_t Source)
6875 {
6876 MODIFY_REG(RCC->IC7CFGR, RCC_IC7CFGR_IC7SEL, Source);
6877 }
6878
6879 /**
6880 * @brief Get the PLL source used as IC7 clock source.
6881 * @rmtoll IC7CFGR IC7SEL LL_RCC_IC7_GetSource
6882 * @retval Returned value can be one of the following values:
6883 * @arg @ref LL_RCC_ICCLKSOURCE_PLL1
6884 * @arg @ref LL_RCC_ICCLKSOURCE_PLL2
6885 * @arg @ref LL_RCC_ICCLKSOURCE_PLL3
6886 * @arg @ref LL_RCC_ICCLKSOURCE_PLL4
6887 */
LL_RCC_IC7_GetSource(void)6888 __STATIC_INLINE uint32_t LL_RCC_IC7_GetSource(void)
6889 {
6890 return (uint32_t)(READ_BIT(RCC->IC7CFGR, RCC_IC7CFGR_IC7SEL));
6891 }
6892
6893 /**
6894 * @brief Set divider
6895 * @rmtoll IC7CFGR IC7INT LL_RCC_IC7_SetDivider
6896 * @param Divider This parameter can be a value between 1 and 256.
6897 * @retval None
6898 */
LL_RCC_IC7_SetDivider(uint32_t Divider)6899 __STATIC_INLINE void LL_RCC_IC7_SetDivider(uint32_t Divider)
6900 {
6901 MODIFY_REG(RCC->IC7CFGR, RCC_IC7CFGR_IC7INT, (Divider - 1UL) << RCC_IC7CFGR_IC7INT_Pos);
6902 }
6903
6904 /**
6905 * @brief Get IC7 divider
6906 * @rmtoll IC7CFGR IC7INT LL_RCC_IC7_GetDivider
6907 * @retval can be a value between 1 and 256.
6908 */
LL_RCC_IC7_GetDivider(void)6909 __STATIC_INLINE uint32_t LL_RCC_IC7_GetDivider(void)
6910 {
6911 return ((READ_BIT(RCC->IC7CFGR, RCC_IC7CFGR_IC7INT) >> RCC_IC7CFGR_IC7INT_Pos) + 1UL);
6912 }
6913
6914 /**
6915 * @brief Enable IC8
6916 * @rmtoll DIVENSR IC8ENS LL_RCC_IC8_Enable
6917 * @retval None
6918 */
LL_RCC_IC8_Enable(void)6919 __STATIC_INLINE void LL_RCC_IC8_Enable(void)
6920 {
6921 WRITE_REG(RCC->DIVENSR, RCC_DIVENSR_IC8ENS);
6922 }
6923
6924 /**
6925 * @brief Disable IC8
6926 * @rmtoll DIVENCR IC8ENC LL_RCC_IC8_Disable
6927 * @retval None
6928 */
LL_RCC_IC8_Disable(void)6929 __STATIC_INLINE void LL_RCC_IC8_Disable(void)
6930 {
6931 WRITE_REG(RCC->DIVENCR, RCC_DIVENCR_IC8ENC);
6932 }
6933
6934 /**
6935 * @brief Check if IC8 is enabled
6936 * @rmtoll DIVENR IC8EN LL_RCC_IC8_IsEnabled
6937 * @retval State of bit (1 or 0).
6938 */
LL_RCC_IC8_IsEnabled(void)6939 __STATIC_INLINE uint32_t LL_RCC_IC8_IsEnabled(void)
6940 {
6941 return ((READ_BIT(RCC->DIVENR, RCC_DIVENR_IC8EN) == RCC_DIVENR_IC8EN) ? 1UL : 0UL);
6942 }
6943
6944 /**
6945 * @brief Set the PLL source used as IC8 clock source.
6946 * @rmtoll IC8CFGR IC8SEL LL_RCC_IC8_SetSource
6947 * @param Source parameter can be one of the following values:
6948 * @arg @ref LL_RCC_ICCLKSOURCE_PLL1
6949 * @arg @ref LL_RCC_ICCLKSOURCE_PLL2
6950 * @arg @ref LL_RCC_ICCLKSOURCE_PLL3
6951 * @arg @ref LL_RCC_ICCLKSOURCE_PLL4
6952 * @retval None
6953 */
LL_RCC_IC8_SetSource(uint32_t Source)6954 __STATIC_INLINE void LL_RCC_IC8_SetSource(uint32_t Source)
6955 {
6956 MODIFY_REG(RCC->IC8CFGR, RCC_IC8CFGR_IC8SEL, Source);
6957 }
6958
6959 /**
6960 * @brief Get the PLL source used as IC8 clock source.
6961 * @rmtoll IC8CFGR IC8SEL LL_RCC_IC8_GetSource
6962 * @retval Returned value can be one of the following values:
6963 * @arg @ref LL_RCC_ICCLKSOURCE_PLL1
6964 * @arg @ref LL_RCC_ICCLKSOURCE_PLL2
6965 * @arg @ref LL_RCC_ICCLKSOURCE_PLL3
6966 * @arg @ref LL_RCC_ICCLKSOURCE_PLL4
6967 */
LL_RCC_IC8_GetSource(void)6968 __STATIC_INLINE uint32_t LL_RCC_IC8_GetSource(void)
6969 {
6970 return (uint32_t)(READ_BIT(RCC->IC8CFGR, RCC_IC8CFGR_IC8SEL));
6971 }
6972
6973 /**
6974 * @brief Set divider
6975 * @rmtoll IC8CFGR IC8INT LL_RCC_IC8_SetDivider
6976 * @param Divider This parameter can be a value between 1 and 256.
6977 * @retval None
6978 */
LL_RCC_IC8_SetDivider(uint32_t Divider)6979 __STATIC_INLINE void LL_RCC_IC8_SetDivider(uint32_t Divider)
6980 {
6981 MODIFY_REG(RCC->IC8CFGR, RCC_IC8CFGR_IC8INT, (Divider - 1UL) << RCC_IC8CFGR_IC8INT_Pos);
6982 }
6983
6984 /**
6985 * @brief Get IC8 divider
6986 * @rmtoll IC8CFGR IC8INT LL_RCC_IC8_GetDivider
6987 * @retval can be a value between 1 and 256.
6988 */
LL_RCC_IC8_GetDivider(void)6989 __STATIC_INLINE uint32_t LL_RCC_IC8_GetDivider(void)
6990 {
6991 return ((READ_BIT(RCC->IC8CFGR, RCC_IC8CFGR_IC8INT) >> RCC_IC8CFGR_IC8INT_Pos) + 1UL);
6992 }
6993
6994 /**
6995 * @brief Enable IC9
6996 * @rmtoll DIVENSR IC9ENS LL_RCC_IC9_Enable
6997 * @retval None
6998 */
LL_RCC_IC9_Enable(void)6999 __STATIC_INLINE void LL_RCC_IC9_Enable(void)
7000 {
7001 WRITE_REG(RCC->DIVENSR, RCC_DIVENSR_IC9ENS);
7002 }
7003
7004 /**
7005 * @brief Disable IC9
7006 * @rmtoll DIVENCR IC9ENC LL_RCC_IC9_Disable
7007 * @retval None
7008 */
LL_RCC_IC9_Disable(void)7009 __STATIC_INLINE void LL_RCC_IC9_Disable(void)
7010 {
7011 WRITE_REG(RCC->DIVENCR, RCC_DIVENCR_IC9ENC);
7012 }
7013
7014 /**
7015 * @brief Check if IC9 is enabled
7016 * @rmtoll DIVENR IC9EN LL_RCC_IC9_IsEnabled
7017 * @retval State of bit (1 or 0).
7018 */
LL_RCC_IC9_IsEnabled(void)7019 __STATIC_INLINE uint32_t LL_RCC_IC9_IsEnabled(void)
7020 {
7021 return ((READ_BIT(RCC->DIVENR, RCC_DIVENR_IC9EN) == RCC_DIVENR_IC9EN) ? 1UL : 0UL);
7022 }
7023
7024 /**
7025 * @brief Set the PLL source used as IC9 clock source.
7026 * @rmtoll IC9CFGR IC9SEL LL_RCC_IC9_SetSource
7027 * @param Source parameter can be one of the following values:
7028 * @arg @ref LL_RCC_ICCLKSOURCE_PLL1
7029 * @arg @ref LL_RCC_ICCLKSOURCE_PLL2
7030 * @arg @ref LL_RCC_ICCLKSOURCE_PLL3
7031 * @arg @ref LL_RCC_ICCLKSOURCE_PLL4
7032 * @retval None
7033 */
LL_RCC_IC9_SetSource(uint32_t Source)7034 __STATIC_INLINE void LL_RCC_IC9_SetSource(uint32_t Source)
7035 {
7036 MODIFY_REG(RCC->IC9CFGR, RCC_IC9CFGR_IC9SEL, Source);
7037 }
7038
7039 /**
7040 * @brief Get the PLL source used as IC9 clock source.
7041 * @rmtoll IC9CFGR IC9SEL LL_RCC_IC9_GetSource
7042 * @retval Returned value can be one of the following values:
7043 * @arg @ref LL_RCC_ICCLKSOURCE_PLL1
7044 * @arg @ref LL_RCC_ICCLKSOURCE_PLL2
7045 * @arg @ref LL_RCC_ICCLKSOURCE_PLL3
7046 * @arg @ref LL_RCC_ICCLKSOURCE_PLL4
7047 */
LL_RCC_IC9_GetSource(void)7048 __STATIC_INLINE uint32_t LL_RCC_IC9_GetSource(void)
7049 {
7050 return (uint32_t)(READ_BIT(RCC->IC9CFGR, RCC_IC9CFGR_IC9SEL));
7051 }
7052
7053 /**
7054 * @brief Set divider
7055 * @rmtoll IC9CFGR IC9INT LL_RCC_IC9_SetDivider
7056 * @param Divider This parameter can be a value between 1 and 256.
7057 * @retval None
7058 */
LL_RCC_IC9_SetDivider(uint32_t Divider)7059 __STATIC_INLINE void LL_RCC_IC9_SetDivider(uint32_t Divider)
7060 {
7061 MODIFY_REG(RCC->IC9CFGR, RCC_IC9CFGR_IC9INT, (Divider - 1UL) << RCC_IC9CFGR_IC9INT_Pos);
7062 }
7063
7064 /**
7065 * @brief Get IC9 divider
7066 * @rmtoll IC9CFGR IC9INT LL_RCC_IC9_GetDivider
7067 * @retval can be a value between 1 and 256.
7068 */
LL_RCC_IC9_GetDivider(void)7069 __STATIC_INLINE uint32_t LL_RCC_IC9_GetDivider(void)
7070 {
7071 return ((READ_BIT(RCC->IC9CFGR, RCC_IC9CFGR_IC9INT) >> RCC_IC9CFGR_IC9INT_Pos) + 1UL);
7072 }
7073
7074 /**
7075 * @brief Enable IC10
7076 * @rmtoll DIVENSR IC10ENS LL_RCC_IC10_Enable
7077 * @retval None
7078 */
LL_RCC_IC10_Enable(void)7079 __STATIC_INLINE void LL_RCC_IC10_Enable(void)
7080 {
7081 WRITE_REG(RCC->DIVENSR, RCC_DIVENSR_IC10ENS);
7082 }
7083
7084 /**
7085 * @brief Disable IC10
7086 * @rmtoll DIVENCR IC10ENC LL_RCC_IC10_Disable
7087 * @retval None
7088 */
LL_RCC_IC10_Disable(void)7089 __STATIC_INLINE void LL_RCC_IC10_Disable(void)
7090 {
7091 WRITE_REG(RCC->DIVENCR, RCC_DIVENCR_IC10ENC);
7092 }
7093
7094 /**
7095 * @brief Check if IC10 is enabled
7096 * @rmtoll DIVENR IC10EN LL_RCC_IC10_IsEnabled
7097 * @retval State of bit (1 or 0).
7098 */
LL_RCC_IC10_IsEnabled(void)7099 __STATIC_INLINE uint32_t LL_RCC_IC10_IsEnabled(void)
7100 {
7101 return ((READ_BIT(RCC->DIVENR, RCC_DIVENR_IC10EN) == RCC_DIVENR_IC10EN) ? 1UL : 0UL);
7102 }
7103
7104 /**
7105 * @brief Set the PLL source used as IC10 clock source.
7106 * @rmtoll IC10CFGR IC10SEL LL_RCC_IC10_SetSource
7107 * @param Source parameter can be one of the following values:
7108 * @arg @ref LL_RCC_ICCLKSOURCE_PLL1
7109 * @arg @ref LL_RCC_ICCLKSOURCE_PLL2
7110 * @arg @ref LL_RCC_ICCLKSOURCE_PLL3
7111 * @arg @ref LL_RCC_ICCLKSOURCE_PLL4
7112 * @retval None
7113 */
LL_RCC_IC10_SetSource(uint32_t Source)7114 __STATIC_INLINE void LL_RCC_IC10_SetSource(uint32_t Source)
7115 {
7116 MODIFY_REG(RCC->IC10CFGR, RCC_IC10CFGR_IC10SEL, Source);
7117 }
7118
7119 /**
7120 * @brief Get the PLL source used as IC10 clock source.
7121 * @rmtoll IC10CFGR IC10SEL LL_RCC_IC10_GetSource
7122 * @retval Returned value can be one of the following values:
7123 * @arg @ref LL_RCC_ICCLKSOURCE_PLL1
7124 * @arg @ref LL_RCC_ICCLKSOURCE_PLL2
7125 * @arg @ref LL_RCC_ICCLKSOURCE_PLL3
7126 * @arg @ref LL_RCC_ICCLKSOURCE_PLL4
7127 */
LL_RCC_IC10_GetSource(void)7128 __STATIC_INLINE uint32_t LL_RCC_IC10_GetSource(void)
7129 {
7130 return (uint32_t)(READ_BIT(RCC->IC10CFGR, RCC_IC10CFGR_IC10SEL));
7131 }
7132
7133 /**
7134 * @brief Set divider
7135 * @rmtoll IC10CFGR IC10INT LL_RCC_IC10_SetDivider
7136 * @param Divider This parameter can be a value between 1 and 256.
7137 * @retval None
7138 */
LL_RCC_IC10_SetDivider(uint32_t Divider)7139 __STATIC_INLINE void LL_RCC_IC10_SetDivider(uint32_t Divider)
7140 {
7141 MODIFY_REG(RCC->IC10CFGR, RCC_IC10CFGR_IC10INT, (Divider - 1UL) << RCC_IC10CFGR_IC10INT_Pos);
7142 }
7143
7144 /**
7145 * @brief Get IC10 divider
7146 * @rmtoll IC10CFGR IC10INT LL_RCC_IC10_GetDivider
7147 * @retval can be a value between 1 and 256.
7148 */
LL_RCC_IC10_GetDivider(void)7149 __STATIC_INLINE uint32_t LL_RCC_IC10_GetDivider(void)
7150 {
7151 return ((READ_BIT(RCC->IC10CFGR, RCC_IC10CFGR_IC10INT) >> RCC_IC10CFGR_IC10INT_Pos) + 1UL);
7152 }
7153
7154 /**
7155 * @brief Enable IC11
7156 * @rmtoll DIVENSR IC11ENS LL_RCC_IC11_Enable
7157 * @retval None
7158 */
LL_RCC_IC11_Enable(void)7159 __STATIC_INLINE void LL_RCC_IC11_Enable(void)
7160 {
7161 WRITE_REG(RCC->DIVENSR, RCC_DIVENSR_IC11ENS);
7162 }
7163
7164 /**
7165 * @brief Disable IC11
7166 * @rmtoll DIVENCR IC11ENC LL_RCC_IC11_Disable
7167 * @retval None
7168 */
LL_RCC_IC11_Disable(void)7169 __STATIC_INLINE void LL_RCC_IC11_Disable(void)
7170 {
7171 WRITE_REG(RCC->DIVENCR, RCC_DIVENCR_IC11ENC);
7172 }
7173
7174 /**
7175 * @brief Check if IC11 is enabled
7176 * @rmtoll DIVENR IC11EN LL_RCC_IC11_IsEnabled
7177 * @retval State of bit (1 or 0).
7178 */
LL_RCC_IC11_IsEnabled(void)7179 __STATIC_INLINE uint32_t LL_RCC_IC11_IsEnabled(void)
7180 {
7181 return ((READ_BIT(RCC->DIVENR, RCC_DIVENR_IC11EN) == RCC_DIVENR_IC11EN) ? 1UL : 0UL);
7182 }
7183
7184 /**
7185 * @brief Set the PLL source used as IC11 clock source.
7186 * @rmtoll IC11CFGR IC11SEL LL_RCC_IC11_SetSource
7187 * @param Source parameter can be one of the following values:
7188 * @arg @ref LL_RCC_ICCLKSOURCE_PLL1
7189 * @arg @ref LL_RCC_ICCLKSOURCE_PLL2
7190 * @arg @ref LL_RCC_ICCLKSOURCE_PLL3
7191 * @arg @ref LL_RCC_ICCLKSOURCE_PLL4
7192 * @retval None
7193 */
LL_RCC_IC11_SetSource(uint32_t Source)7194 __STATIC_INLINE void LL_RCC_IC11_SetSource(uint32_t Source)
7195 {
7196 MODIFY_REG(RCC->IC11CFGR, RCC_IC11CFGR_IC11SEL, Source);
7197 }
7198
7199 /**
7200 * @brief Get the PLL source used as IC11 clock source.
7201 * @rmtoll IC11CFGR IC11SEL LL_RCC_IC11_GetSource
7202 * @retval Returned value can be one of the following values:
7203 * @arg @ref LL_RCC_ICCLKSOURCE_PLL1
7204 * @arg @ref LL_RCC_ICCLKSOURCE_PLL2
7205 * @arg @ref LL_RCC_ICCLKSOURCE_PLL3
7206 * @arg @ref LL_RCC_ICCLKSOURCE_PLL4
7207 */
LL_RCC_IC11_GetSource(void)7208 __STATIC_INLINE uint32_t LL_RCC_IC11_GetSource(void)
7209 {
7210 return (uint32_t)(READ_BIT(RCC->IC11CFGR, RCC_IC11CFGR_IC11SEL));
7211 }
7212
7213 /**
7214 * @brief Set divider
7215 * @rmtoll IC11CFGR IC11INT LL_RCC_IC11_SetDivider
7216 * @param Divider This parameter can be a value between 1 and 256.
7217 * @retval None
7218 */
LL_RCC_IC11_SetDivider(uint32_t Divider)7219 __STATIC_INLINE void LL_RCC_IC11_SetDivider(uint32_t Divider)
7220 {
7221 MODIFY_REG(RCC->IC11CFGR, RCC_IC11CFGR_IC11INT, (Divider - 1UL) << RCC_IC11CFGR_IC11INT_Pos);
7222 }
7223
7224 /**
7225 * @brief Get IC11 divider
7226 * @rmtoll IC11CFGR IC11INT LL_RCC_IC11_GetDivider
7227 * @retval can be a value between 1 and 256.
7228 */
LL_RCC_IC11_GetDivider(void)7229 __STATIC_INLINE uint32_t LL_RCC_IC11_GetDivider(void)
7230 {
7231 return ((READ_BIT(RCC->IC11CFGR, RCC_IC11CFGR_IC11INT) >> RCC_IC11CFGR_IC11INT_Pos) + 1UL);
7232 }
7233
7234 /**
7235 * @brief Enable IC12
7236 * @rmtoll DIVENSR IC12ENS LL_RCC_IC12_Enable
7237 * @retval None
7238 */
LL_RCC_IC12_Enable(void)7239 __STATIC_INLINE void LL_RCC_IC12_Enable(void)
7240 {
7241 WRITE_REG(RCC->DIVENSR, RCC_DIVENSR_IC12ENS);
7242 }
7243
7244 /**
7245 * @brief Disable IC12
7246 * @rmtoll DIVENCR IC12ENC LL_RCC_IC12_Disable
7247 * @retval None
7248 */
LL_RCC_IC12_Disable(void)7249 __STATIC_INLINE void LL_RCC_IC12_Disable(void)
7250 {
7251 WRITE_REG(RCC->DIVENCR, RCC_DIVENCR_IC12ENC);
7252 }
7253
7254 /**
7255 * @brief Check if IC12 is enabled
7256 * @rmtoll DIVENR IC12EN LL_RCC_IC12_IsEnabled
7257 * @retval State of bit (1 or 0).
7258 */
LL_RCC_IC12_IsEnabled(void)7259 __STATIC_INLINE uint32_t LL_RCC_IC12_IsEnabled(void)
7260 {
7261 return ((READ_BIT(RCC->DIVENR, RCC_DIVENR_IC12EN) == RCC_DIVENR_IC12EN) ? 1UL : 0UL);
7262 }
7263
7264 /**
7265 * @brief Set the PLL source used as IC12 clock source.
7266 * @rmtoll IC12CFGR IC12SEL LL_RCC_IC12_SetSource
7267 * @param Source parameter can be one of the following values:
7268 * @arg @ref LL_RCC_ICCLKSOURCE_PLL1
7269 * @arg @ref LL_RCC_ICCLKSOURCE_PLL2
7270 * @arg @ref LL_RCC_ICCLKSOURCE_PLL3
7271 * @arg @ref LL_RCC_ICCLKSOURCE_PLL4
7272 * @retval None
7273 */
LL_RCC_IC12_SetSource(uint32_t Source)7274 __STATIC_INLINE void LL_RCC_IC12_SetSource(uint32_t Source)
7275 {
7276 MODIFY_REG(RCC->IC12CFGR, RCC_IC12CFGR_IC12SEL, Source);
7277 }
7278
7279 /**
7280 * @brief Get the PLL source used as IC12 clock source.
7281 * @rmtoll IC12CFGR IC12SEL LL_RCC_IC12_GetSource
7282 * @retval Returned value can be one of the following values:
7283 * @arg @ref LL_RCC_ICCLKSOURCE_PLL1
7284 * @arg @ref LL_RCC_ICCLKSOURCE_PLL2
7285 * @arg @ref LL_RCC_ICCLKSOURCE_PLL3
7286 * @arg @ref LL_RCC_ICCLKSOURCE_PLL4
7287 */
LL_RCC_IC12_GetSource(void)7288 __STATIC_INLINE uint32_t LL_RCC_IC12_GetSource(void)
7289 {
7290 return (uint32_t)(READ_BIT(RCC->IC12CFGR, RCC_IC12CFGR_IC12SEL));
7291 }
7292
7293 /**
7294 * @brief Set divider
7295 * @rmtoll IC12CFGR IC12INT LL_RCC_IC12_SetDivider
7296 * @param Divider This parameter can be a value between 1 and 256.
7297 * @retval None
7298 */
LL_RCC_IC12_SetDivider(uint32_t Divider)7299 __STATIC_INLINE void LL_RCC_IC12_SetDivider(uint32_t Divider)
7300 {
7301 MODIFY_REG(RCC->IC12CFGR, RCC_IC12CFGR_IC12INT, (Divider - 1UL) << RCC_IC12CFGR_IC12INT_Pos);
7302 }
7303
7304 /**
7305 * @brief Get IC12 divider
7306 * @rmtoll IC12CFGR IC12INT LL_RCC_IC12_GetDivider
7307 * @retval can be a value between 1 and 256.
7308 */
LL_RCC_IC12_GetDivider(void)7309 __STATIC_INLINE uint32_t LL_RCC_IC12_GetDivider(void)
7310 {
7311 return ((READ_BIT(RCC->IC12CFGR, RCC_IC12CFGR_IC12INT) >> RCC_IC12CFGR_IC12INT_Pos) + 1UL);
7312 }
7313
7314 /**
7315 * @brief Enable IC13
7316 * @rmtoll DIVENSR IC13ENS LL_RCC_IC13_Enable
7317 * @retval None
7318 */
LL_RCC_IC13_Enable(void)7319 __STATIC_INLINE void LL_RCC_IC13_Enable(void)
7320 {
7321 WRITE_REG(RCC->DIVENSR, RCC_DIVENSR_IC13ENS);
7322 }
7323
7324 /**
7325 * @brief Disable IC13
7326 * @rmtoll DIVENCR IC13ENC LL_RCC_IC13_Disable
7327 * @retval None
7328 */
LL_RCC_IC13_Disable(void)7329 __STATIC_INLINE void LL_RCC_IC13_Disable(void)
7330 {
7331 WRITE_REG(RCC->DIVENCR, RCC_DIVENCR_IC13ENC);
7332 }
7333
7334 /**
7335 * @brief Check if IC13 is enabled
7336 * @rmtoll DIVENR IC13EN LL_RCC_IC13_IsEnabled
7337 * @retval State of bit (1 or 0).
7338 */
LL_RCC_IC13_IsEnabled(void)7339 __STATIC_INLINE uint32_t LL_RCC_IC13_IsEnabled(void)
7340 {
7341 return ((READ_BIT(RCC->DIVENR, RCC_DIVENR_IC13EN) == RCC_DIVENR_IC13EN) ? 1UL : 0UL);
7342 }
7343
7344 /**
7345 * @brief Set the PLL source used as IC13 clock source.
7346 * @rmtoll IC13CFGR IC13SEL LL_RCC_IC13_SetSource
7347 * @param Source parameter can be one of the following values:
7348 * @arg @ref LL_RCC_ICCLKSOURCE_PLL1
7349 * @arg @ref LL_RCC_ICCLKSOURCE_PLL2
7350 * @arg @ref LL_RCC_ICCLKSOURCE_PLL3
7351 * @arg @ref LL_RCC_ICCLKSOURCE_PLL4
7352 * @retval None
7353 */
LL_RCC_IC13_SetSource(uint32_t Source)7354 __STATIC_INLINE void LL_RCC_IC13_SetSource(uint32_t Source)
7355 {
7356 MODIFY_REG(RCC->IC13CFGR, RCC_IC13CFGR_IC13SEL, Source);
7357 }
7358
7359 /**
7360 * @brief Get the PLL source used as IC13 clock source.
7361 * @rmtoll IC13CFGR IC13SEL LL_RCC_IC13_GetSource
7362 * @retval Returned value can be one of the following values:
7363 * @arg @ref LL_RCC_ICCLKSOURCE_PLL1
7364 * @arg @ref LL_RCC_ICCLKSOURCE_PLL2
7365 * @arg @ref LL_RCC_ICCLKSOURCE_PLL3
7366 * @arg @ref LL_RCC_ICCLKSOURCE_PLL4
7367 */
LL_RCC_IC13_GetSource(void)7368 __STATIC_INLINE uint32_t LL_RCC_IC13_GetSource(void)
7369 {
7370 return (uint32_t)(READ_BIT(RCC->IC13CFGR, RCC_IC13CFGR_IC13SEL));
7371 }
7372
7373 /**
7374 * @brief Set divider
7375 * @rmtoll IC13CFGR IC13INT LL_RCC_IC13_SetDivider
7376 * @param Divider This parameter can be a value between 1 and 256.
7377 * @retval None
7378 */
LL_RCC_IC13_SetDivider(uint32_t Divider)7379 __STATIC_INLINE void LL_RCC_IC13_SetDivider(uint32_t Divider)
7380 {
7381 MODIFY_REG(RCC->IC13CFGR, RCC_IC13CFGR_IC13INT, (Divider - 1UL) << RCC_IC13CFGR_IC13INT_Pos);
7382 }
7383
7384 /**
7385 * @brief Get IC13 divider
7386 * @rmtoll IC13CFGR IC13INT LL_RCC_IC13_GetDivider
7387 * @retval can be a value between 1 and 256.
7388 */
LL_RCC_IC13_GetDivider(void)7389 __STATIC_INLINE uint32_t LL_RCC_IC13_GetDivider(void)
7390 {
7391 return ((READ_BIT(RCC->IC13CFGR, RCC_IC13CFGR_IC13INT) >> RCC_IC13CFGR_IC13INT_Pos) + 1UL);
7392 }
7393
7394 /**
7395 * @brief Enable IC14
7396 * @rmtoll DIVENSR IC14ENS LL_RCC_IC14_Enable
7397 * @retval None
7398 */
LL_RCC_IC14_Enable(void)7399 __STATIC_INLINE void LL_RCC_IC14_Enable(void)
7400 {
7401 WRITE_REG(RCC->DIVENSR, RCC_DIVENSR_IC14ENS);
7402 }
7403
7404 /**
7405 * @brief Disable IC14
7406 * @rmtoll DIVENCR IC14ENC LL_RCC_IC14_Disable
7407 * @retval None
7408 */
LL_RCC_IC14_Disable(void)7409 __STATIC_INLINE void LL_RCC_IC14_Disable(void)
7410 {
7411 WRITE_REG(RCC->DIVENCR, RCC_DIVENCR_IC14ENC);
7412 }
7413
7414 /**
7415 * @brief Check if IC14 is enabled
7416 * @rmtoll DIVENR IC14EN LL_RCC_IC14_IsEnabled
7417 * @retval State of bit (1 or 0).
7418 */
LL_RCC_IC14_IsEnabled(void)7419 __STATIC_INLINE uint32_t LL_RCC_IC14_IsEnabled(void)
7420 {
7421 return ((READ_BIT(RCC->DIVENR, RCC_DIVENR_IC14EN) == RCC_DIVENR_IC14EN) ? 1UL : 0UL);
7422 }
7423
7424 /**
7425 * @brief Set the PLL source used as IC14 clock source.
7426 * @rmtoll IC14CFGR IC14SEL LL_RCC_IC14_SetSource
7427 * @param Source parameter can be one of the following values:
7428 * @arg @ref LL_RCC_ICCLKSOURCE_PLL1
7429 * @arg @ref LL_RCC_ICCLKSOURCE_PLL2
7430 * @arg @ref LL_RCC_ICCLKSOURCE_PLL3
7431 * @arg @ref LL_RCC_ICCLKSOURCE_PLL4
7432 * @retval None
7433 */
LL_RCC_IC14_SetSource(uint32_t Source)7434 __STATIC_INLINE void LL_RCC_IC14_SetSource(uint32_t Source)
7435 {
7436 MODIFY_REG(RCC->IC14CFGR, RCC_IC14CFGR_IC14SEL, Source);
7437 }
7438
7439 /**
7440 * @brief Get the PLL source used as IC14 clock source.
7441 * @rmtoll IC14CFGR IC14SEL LL_RCC_IC14_GetSource
7442 * @retval Returned value can be one of the following values:
7443 * @arg @ref LL_RCC_ICCLKSOURCE_PLL1
7444 * @arg @ref LL_RCC_ICCLKSOURCE_PLL2
7445 * @arg @ref LL_RCC_ICCLKSOURCE_PLL3
7446 * @arg @ref LL_RCC_ICCLKSOURCE_PLL4
7447 */
LL_RCC_IC14_GetSource(void)7448 __STATIC_INLINE uint32_t LL_RCC_IC14_GetSource(void)
7449 {
7450 return (uint32_t)(READ_BIT(RCC->IC14CFGR, RCC_IC14CFGR_IC14SEL));
7451 }
7452
7453 /**
7454 * @brief Set divider
7455 * @rmtoll IC14CFGR IC14INT LL_RCC_IC14_SetDivider
7456 * @param Divider This parameter can be a value between 1 and 256.
7457 * @retval None
7458 */
LL_RCC_IC14_SetDivider(uint32_t Divider)7459 __STATIC_INLINE void LL_RCC_IC14_SetDivider(uint32_t Divider)
7460 {
7461 MODIFY_REG(RCC->IC14CFGR, RCC_IC14CFGR_IC14INT, (Divider - 1UL) << RCC_IC14CFGR_IC14INT_Pos);
7462 }
7463
7464 /**
7465 * @brief Get IC14 divider
7466 * @rmtoll IC14CFGR IC14INT LL_RCC_IC14_GetDivider
7467 * @retval can be a value between 1 and 256.
7468 */
LL_RCC_IC14_GetDivider(void)7469 __STATIC_INLINE uint32_t LL_RCC_IC14_GetDivider(void)
7470 {
7471 return ((READ_BIT(RCC->IC14CFGR, RCC_IC14CFGR_IC14INT) >> RCC_IC14CFGR_IC14INT_Pos) + 1UL);
7472 }
7473
7474 /**
7475 * @brief Enable IC15
7476 * @rmtoll DIVENSR IC15ENS LL_RCC_IC15_Enable
7477 * @retval None
7478 */
LL_RCC_IC15_Enable(void)7479 __STATIC_INLINE void LL_RCC_IC15_Enable(void)
7480 {
7481 WRITE_REG(RCC->DIVENSR, RCC_DIVENSR_IC15ENS);
7482 }
7483
7484 /**
7485 * @brief Disable IC15
7486 * @rmtoll DIVENCR IC15ENC LL_RCC_IC15_Disable
7487 * @retval None
7488 */
LL_RCC_IC15_Disable(void)7489 __STATIC_INLINE void LL_RCC_IC15_Disable(void)
7490 {
7491 WRITE_REG(RCC->DIVENCR, RCC_DIVENCR_IC15ENC);
7492 }
7493
7494 /**
7495 * @brief Check if IC15 is enabled
7496 * @rmtoll DIVENR IC15EN LL_RCC_IC15_IsEnabled
7497 * @retval State of bit (1 or 0).
7498 */
LL_RCC_IC15_IsEnabled(void)7499 __STATIC_INLINE uint32_t LL_RCC_IC15_IsEnabled(void)
7500 {
7501 return ((READ_BIT(RCC->DIVENR, RCC_DIVENR_IC15EN) == RCC_DIVENR_IC15EN) ? 1UL : 0UL);
7502 }
7503
7504 /**
7505 * @brief Set the PLL source used as IC15 clock source.
7506 * @rmtoll IC15CFGR IC15SEL LL_RCC_IC15_SetSource
7507 * @param Source parameter can be one of the following values:
7508 * @arg @ref LL_RCC_ICCLKSOURCE_PLL1
7509 * @arg @ref LL_RCC_ICCLKSOURCE_PLL2
7510 * @arg @ref LL_RCC_ICCLKSOURCE_PLL3
7511 * @arg @ref LL_RCC_ICCLKSOURCE_PLL4
7512 * @retval None
7513 */
LL_RCC_IC15_SetSource(uint32_t Source)7514 __STATIC_INLINE void LL_RCC_IC15_SetSource(uint32_t Source)
7515 {
7516 MODIFY_REG(RCC->IC15CFGR, RCC_IC15CFGR_IC15SEL, Source);
7517 }
7518
7519 /**
7520 * @brief Get the PLL source used as IC15 clock source.
7521 * @rmtoll IC15CFGR IC15SEL LL_RCC_IC15_GetSource
7522 * @retval Returned value can be one of the following values:
7523 * @arg @ref LL_RCC_ICCLKSOURCE_PLL1
7524 * @arg @ref LL_RCC_ICCLKSOURCE_PLL2
7525 * @arg @ref LL_RCC_ICCLKSOURCE_PLL3
7526 * @arg @ref LL_RCC_ICCLKSOURCE_PLL4
7527 */
LL_RCC_IC15_GetSource(void)7528 __STATIC_INLINE uint32_t LL_RCC_IC15_GetSource(void)
7529 {
7530 return (uint32_t)(READ_BIT(RCC->IC15CFGR, RCC_IC15CFGR_IC15SEL));
7531 }
7532
7533 /**
7534 * @brief Set divider
7535 * @rmtoll IC15CFGR IC15INT LL_RCC_IC15_SetDivider
7536 * @param Divider This parameter can be a value between 1 and 256.
7537 * @retval None
7538 */
LL_RCC_IC15_SetDivider(uint32_t Divider)7539 __STATIC_INLINE void LL_RCC_IC15_SetDivider(uint32_t Divider)
7540 {
7541 MODIFY_REG(RCC->IC15CFGR, RCC_IC15CFGR_IC15INT, (Divider - 1UL) << RCC_IC15CFGR_IC15INT_Pos);
7542 }
7543
7544 /**
7545 * @brief Get IC15 divider
7546 * @rmtoll IC15CFGR IC15INT LL_RCC_IC15_GetDivider
7547 * @retval can be a value between 1 and 256.
7548 */
LL_RCC_IC15_GetDivider(void)7549 __STATIC_INLINE uint32_t LL_RCC_IC15_GetDivider(void)
7550 {
7551 return ((READ_BIT(RCC->IC15CFGR, RCC_IC15CFGR_IC15INT) >> RCC_IC15CFGR_IC15INT_Pos) + 1UL);
7552 }
7553
7554 /**
7555 * @brief Enable IC16
7556 * @rmtoll DIVENSR IC16ENS LL_RCC_IC16_Enable
7557 * @retval None
7558 */
LL_RCC_IC16_Enable(void)7559 __STATIC_INLINE void LL_RCC_IC16_Enable(void)
7560 {
7561 WRITE_REG(RCC->DIVENSR, RCC_DIVENSR_IC16ENS);
7562 }
7563
7564 /**
7565 * @brief Disable IC16
7566 * @rmtoll DIVENCR IC16ENC LL_RCC_IC16_Disable
7567 * @retval None
7568 */
LL_RCC_IC16_Disable(void)7569 __STATIC_INLINE void LL_RCC_IC16_Disable(void)
7570 {
7571 WRITE_REG(RCC->DIVENCR, RCC_DIVENCR_IC16ENC);
7572 }
7573
7574 /**
7575 * @brief Check if IC16 is enabled
7576 * @rmtoll DIVENR IC16EN LL_RCC_IC16_IsEnabled
7577 * @retval State of bit (1 or 0).
7578 */
LL_RCC_IC16_IsEnabled(void)7579 __STATIC_INLINE uint32_t LL_RCC_IC16_IsEnabled(void)
7580 {
7581 return ((READ_BIT(RCC->DIVENR, RCC_DIVENR_IC16EN) == RCC_DIVENR_IC16EN) ? 1UL : 0UL);
7582 }
7583
7584 /**
7585 * @brief Set the PLL source used as IC16 clock source.
7586 * @rmtoll IC16CFGR IC16SEL LL_RCC_IC16_SetSource
7587 * @param Source parameter can be one of the following values:
7588 * @arg @ref LL_RCC_ICCLKSOURCE_PLL1
7589 * @arg @ref LL_RCC_ICCLKSOURCE_PLL2
7590 * @arg @ref LL_RCC_ICCLKSOURCE_PLL3
7591 * @arg @ref LL_RCC_ICCLKSOURCE_PLL4
7592 * @retval None
7593 */
LL_RCC_IC16_SetSource(uint32_t Source)7594 __STATIC_INLINE void LL_RCC_IC16_SetSource(uint32_t Source)
7595 {
7596 MODIFY_REG(RCC->IC16CFGR, RCC_IC16CFGR_IC16SEL, Source);
7597 }
7598
7599 /**
7600 * @brief Get the PLL source used as IC16 clock source.
7601 * @rmtoll IC16CFGR IC16SEL LL_RCC_IC16_GetSource
7602 * @retval Returned value can be one of the following values:
7603 * @arg @ref LL_RCC_ICCLKSOURCE_PLL1
7604 * @arg @ref LL_RCC_ICCLKSOURCE_PLL2
7605 * @arg @ref LL_RCC_ICCLKSOURCE_PLL3
7606 * @arg @ref LL_RCC_ICCLKSOURCE_PLL4
7607 */
LL_RCC_IC16_GetSource(void)7608 __STATIC_INLINE uint32_t LL_RCC_IC16_GetSource(void)
7609 {
7610 return (uint32_t)(READ_BIT(RCC->IC16CFGR, RCC_IC16CFGR_IC16SEL));
7611 }
7612
7613 /**
7614 * @brief Set divider
7615 * @rmtoll IC16CFGR IC16INT LL_RCC_IC16_SetDivider
7616 * @param Divider This parameter can be a value between 1 and 256.
7617 * @retval None
7618 */
LL_RCC_IC16_SetDivider(uint32_t Divider)7619 __STATIC_INLINE void LL_RCC_IC16_SetDivider(uint32_t Divider)
7620 {
7621 MODIFY_REG(RCC->IC16CFGR, RCC_IC16CFGR_IC16INT, (Divider - 1UL) << RCC_IC16CFGR_IC16INT_Pos);
7622 }
7623
7624 /**
7625 * @brief Get IC16 divider
7626 * @rmtoll IC16CFGR IC16INT LL_RCC_IC16_GetDivider
7627 * @retval can be a value between 1 and 256.
7628 */
LL_RCC_IC16_GetDivider(void)7629 __STATIC_INLINE uint32_t LL_RCC_IC16_GetDivider(void)
7630 {
7631 return ((READ_BIT(RCC->IC16CFGR, RCC_IC16CFGR_IC16INT) >> RCC_IC16CFGR_IC16INT_Pos) + 1UL);
7632 }
7633
7634 /**
7635 * @brief Enable IC17
7636 * @rmtoll DIVENSR IC17ENS LL_RCC_IC17_Enable
7637 * @retval None
7638 */
LL_RCC_IC17_Enable(void)7639 __STATIC_INLINE void LL_RCC_IC17_Enable(void)
7640 {
7641 WRITE_REG(RCC->DIVENSR, RCC_DIVENSR_IC17ENS);
7642 }
7643
7644 /**
7645 * @brief Disable IC17
7646 * @rmtoll DIVENCR IC17ENC LL_RCC_IC17_Disable
7647 * @retval None
7648 */
LL_RCC_IC17_Disable(void)7649 __STATIC_INLINE void LL_RCC_IC17_Disable(void)
7650 {
7651 WRITE_REG(RCC->DIVENCR, RCC_DIVENCR_IC17ENC);
7652 }
7653
7654 /**
7655 * @brief Check if IC17 is enabled
7656 * @rmtoll DIVENR IC17EN LL_RCC_IC17_IsEnabled
7657 * @retval State of bit (1 or 0).
7658 */
LL_RCC_IC17_IsEnabled(void)7659 __STATIC_INLINE uint32_t LL_RCC_IC17_IsEnabled(void)
7660 {
7661 return ((READ_BIT(RCC->DIVENR, RCC_DIVENR_IC17EN) == RCC_DIVENR_IC17EN) ? 1UL : 0UL);
7662 }
7663
7664 /**
7665 * @brief Set the PLL source used as IC17 clock source.
7666 * @rmtoll IC17CFGR IC17SEL LL_RCC_IC17_SetSource
7667 * @param Source parameter can be one of the following values:
7668 * @arg @ref LL_RCC_ICCLKSOURCE_PLL1
7669 * @arg @ref LL_RCC_ICCLKSOURCE_PLL2
7670 * @arg @ref LL_RCC_ICCLKSOURCE_PLL3
7671 * @arg @ref LL_RCC_ICCLKSOURCE_PLL4
7672 * @retval None
7673 */
LL_RCC_IC17_SetSource(uint32_t Source)7674 __STATIC_INLINE void LL_RCC_IC17_SetSource(uint32_t Source)
7675 {
7676 MODIFY_REG(RCC->IC17CFGR, RCC_IC17CFGR_IC17SEL, Source);
7677 }
7678
7679 /**
7680 * @brief Get the PLL source used as IC17 clock source.
7681 * @rmtoll IC17CFGR IC17SEL LL_RCC_IC17_GetSource
7682 * @retval Returned value can be one of the following values:
7683 * @arg @ref LL_RCC_ICCLKSOURCE_PLL1
7684 * @arg @ref LL_RCC_ICCLKSOURCE_PLL2
7685 * @arg @ref LL_RCC_ICCLKSOURCE_PLL3
7686 * @arg @ref LL_RCC_ICCLKSOURCE_PLL4
7687 */
LL_RCC_IC17_GetSource(void)7688 __STATIC_INLINE uint32_t LL_RCC_IC17_GetSource(void)
7689 {
7690 return (uint32_t)(READ_BIT(RCC->IC17CFGR, RCC_IC17CFGR_IC17SEL));
7691 }
7692
7693 /**
7694 * @brief Set divider
7695 * @rmtoll IC17CFGR IC17INT LL_RCC_IC17_SetDivider
7696 * @param Divider This parameter can be a value between 1 and 256.
7697 * @retval None
7698 */
LL_RCC_IC17_SetDivider(uint32_t Divider)7699 __STATIC_INLINE void LL_RCC_IC17_SetDivider(uint32_t Divider)
7700 {
7701 MODIFY_REG(RCC->IC17CFGR, RCC_IC17CFGR_IC17INT, (Divider - 1UL) << RCC_IC17CFGR_IC17INT_Pos);
7702 }
7703
7704 /**
7705 * @brief Get IC17 divider
7706 * @rmtoll IC17CFGR IC17INT LL_RCC_IC17_GetDivider
7707 * @retval can be a value between 1 and 256.
7708 */
LL_RCC_IC17_GetDivider(void)7709 __STATIC_INLINE uint32_t LL_RCC_IC17_GetDivider(void)
7710 {
7711 return ((READ_BIT(RCC->IC17CFGR, RCC_IC17CFGR_IC17INT) >> RCC_IC17CFGR_IC17INT_Pos) + 1UL);
7712 }
7713
7714 /**
7715 * @brief Enable IC18
7716 * @rmtoll DIVENSR IC18ENS LL_RCC_IC18_Enable
7717 * @retval None
7718 */
LL_RCC_IC18_Enable(void)7719 __STATIC_INLINE void LL_RCC_IC18_Enable(void)
7720 {
7721 WRITE_REG(RCC->DIVENSR, RCC_DIVENSR_IC18ENS);
7722 }
7723
7724 /**
7725 * @brief Disable IC18
7726 * @rmtoll DIVENCR IC18ENC LL_RCC_IC18_Disable
7727 * @retval None
7728 */
LL_RCC_IC18_Disable(void)7729 __STATIC_INLINE void LL_RCC_IC18_Disable(void)
7730 {
7731 WRITE_REG(RCC->DIVENCR, RCC_DIVENCR_IC18ENC);
7732 }
7733
7734 /**
7735 * @brief Check if IC18 is enabled
7736 * @rmtoll DIVENR IC18EN LL_RCC_IC18_IsEnabled
7737 * @retval State of bit (1 or 0).
7738 */
LL_RCC_IC18_IsEnabled(void)7739 __STATIC_INLINE uint32_t LL_RCC_IC18_IsEnabled(void)
7740 {
7741 return ((READ_BIT(RCC->DIVENR, RCC_DIVENR_IC18EN) == RCC_DIVENR_IC18EN) ? 1UL : 0UL);
7742 }
7743
7744 /**
7745 * @brief Set the PLL source used as IC18 clock source.
7746 * @rmtoll IC18CFGR IC18SEL LL_RCC_IC18_SetSource
7747 * @param Source parameter can be one of the following values:
7748 * @arg @ref LL_RCC_ICCLKSOURCE_PLL1
7749 * @arg @ref LL_RCC_ICCLKSOURCE_PLL2
7750 * @arg @ref LL_RCC_ICCLKSOURCE_PLL3
7751 * @arg @ref LL_RCC_ICCLKSOURCE_PLL4
7752 * @retval None
7753 */
LL_RCC_IC18_SetSource(uint32_t Source)7754 __STATIC_INLINE void LL_RCC_IC18_SetSource(uint32_t Source)
7755 {
7756 MODIFY_REG(RCC->IC18CFGR, RCC_IC18CFGR_IC18SEL, Source);
7757 }
7758
7759 /**
7760 * @brief Get the PLL source used as IC18 clock source.
7761 * @rmtoll IC18CFGR IC18SEL LL_RCC_IC18_GetSource
7762 * @retval Returned value can be one of the following values:
7763 * @arg @ref LL_RCC_ICCLKSOURCE_PLL1
7764 * @arg @ref LL_RCC_ICCLKSOURCE_PLL2
7765 * @arg @ref LL_RCC_ICCLKSOURCE_PLL3
7766 * @arg @ref LL_RCC_ICCLKSOURCE_PLL4
7767 */
LL_RCC_IC18_GetSource(void)7768 __STATIC_INLINE uint32_t LL_RCC_IC18_GetSource(void)
7769 {
7770 return (uint32_t)(READ_BIT(RCC->IC18CFGR, RCC_IC18CFGR_IC18SEL));
7771 }
7772
7773 /**
7774 * @brief Set divider
7775 * @rmtoll IC18CFGR IC18INT LL_RCC_IC18_SetDivider
7776 * @param Divider This parameter can be a value between 1 and 256.
7777 * @retval None
7778 */
LL_RCC_IC18_SetDivider(uint32_t Divider)7779 __STATIC_INLINE void LL_RCC_IC18_SetDivider(uint32_t Divider)
7780 {
7781 MODIFY_REG(RCC->IC18CFGR, RCC_IC18CFGR_IC18INT, (Divider - 1UL) << RCC_IC18CFGR_IC18INT_Pos);
7782 }
7783
7784 /**
7785 * @brief Get IC18 divider
7786 * @rmtoll IC18CFGR IC18INT LL_RCC_IC18_GetDivider
7787 * @retval can be a value between 1 and 256.
7788 */
LL_RCC_IC18_GetDivider(void)7789 __STATIC_INLINE uint32_t LL_RCC_IC18_GetDivider(void)
7790 {
7791 return ((READ_BIT(RCC->IC18CFGR, RCC_IC18CFGR_IC18INT) >> RCC_IC18CFGR_IC18INT_Pos) + 1UL);
7792 }
7793
7794 /**
7795 * @brief Enable IC19
7796 * @rmtoll DIVENSR IC19ENS LL_RCC_IC19_Enable
7797 * @retval None
7798 */
LL_RCC_IC19_Enable(void)7799 __STATIC_INLINE void LL_RCC_IC19_Enable(void)
7800 {
7801 WRITE_REG(RCC->DIVENSR, RCC_DIVENSR_IC19ENS);
7802 }
7803
7804 /**
7805 * @brief Disable IC19
7806 * @rmtoll DIVENCR IC19ENC LL_RCC_IC19_Disable
7807 * @retval None
7808 */
LL_RCC_IC19_Disable(void)7809 __STATIC_INLINE void LL_RCC_IC19_Disable(void)
7810 {
7811 WRITE_REG(RCC->DIVENCR, RCC_DIVENCR_IC19ENC);
7812 }
7813
7814 /**
7815 * @brief Check if IC19 is enabled
7816 * @rmtoll DIVENR IC19EN LL_RCC_IC19_IsEnabled
7817 * @retval State of bit (1 or 0).
7818 */
LL_RCC_IC19_IsEnabled(void)7819 __STATIC_INLINE uint32_t LL_RCC_IC19_IsEnabled(void)
7820 {
7821 return ((READ_BIT(RCC->DIVENR, RCC_DIVENR_IC19EN) == RCC_DIVENR_IC19EN) ? 1UL : 0UL);
7822 }
7823
7824 /**
7825 * @brief Set the PLL source used as IC19 clock source.
7826 * @rmtoll IC19CFGR IC19SEL LL_RCC_IC19_SetSource
7827 * @param Source parameter can be one of the following values:
7828 * @arg @ref LL_RCC_ICCLKSOURCE_PLL1
7829 * @arg @ref LL_RCC_ICCLKSOURCE_PLL2
7830 * @arg @ref LL_RCC_ICCLKSOURCE_PLL3
7831 * @arg @ref LL_RCC_ICCLKSOURCE_PLL4
7832 * @retval None
7833 */
LL_RCC_IC19_SetSource(uint32_t Source)7834 __STATIC_INLINE void LL_RCC_IC19_SetSource(uint32_t Source)
7835 {
7836 MODIFY_REG(RCC->IC19CFGR, RCC_IC19CFGR_IC19SEL, Source);
7837 }
7838
7839 /**
7840 * @brief Get the PLL source used as IC19 clock source.
7841 * @rmtoll IC19CFGR IC19SEL LL_RCC_IC19_GetSource
7842 * @retval Returned value can be one of the following values:
7843 * @arg @ref LL_RCC_ICCLKSOURCE_PLL1
7844 * @arg @ref LL_RCC_ICCLKSOURCE_PLL2
7845 * @arg @ref LL_RCC_ICCLKSOURCE_PLL3
7846 * @arg @ref LL_RCC_ICCLKSOURCE_PLL4
7847 */
LL_RCC_IC19_GetSource(void)7848 __STATIC_INLINE uint32_t LL_RCC_IC19_GetSource(void)
7849 {
7850 return (uint32_t)(READ_BIT(RCC->IC19CFGR, RCC_IC19CFGR_IC19SEL));
7851 }
7852
7853 /**
7854 * @brief Set divider
7855 * @rmtoll IC19CFGR IC19INT LL_RCC_IC19_SetDivider
7856 * @param Divider This parameter can be a value between 1 and 256.
7857 * @retval None
7858 */
LL_RCC_IC19_SetDivider(uint32_t Divider)7859 __STATIC_INLINE void LL_RCC_IC19_SetDivider(uint32_t Divider)
7860 {
7861 MODIFY_REG(RCC->IC19CFGR, RCC_IC19CFGR_IC19INT, (Divider - 1UL) << RCC_IC19CFGR_IC19INT_Pos);
7862 }
7863
7864 /**
7865 * @brief Get IC19 divider
7866 * @rmtoll IC19CFGR IC19INT LL_RCC_IC19_GetDivider
7867 * @retval can be a value between 1 and 256.
7868 */
LL_RCC_IC19_GetDivider(void)7869 __STATIC_INLINE uint32_t LL_RCC_IC19_GetDivider(void)
7870 {
7871 return ((READ_BIT(RCC->IC19CFGR, RCC_IC19CFGR_IC19INT) >> RCC_IC19CFGR_IC19INT_Pos) + 1UL);
7872 }
7873
7874 /**
7875 * @brief Enable IC20
7876 * @rmtoll DIVENSR IC20ENS LL_RCC_IC20_Enable
7877 * @retval None
7878 */
LL_RCC_IC20_Enable(void)7879 __STATIC_INLINE void LL_RCC_IC20_Enable(void)
7880 {
7881 WRITE_REG(RCC->DIVENSR, RCC_DIVENSR_IC20ENS);
7882 }
7883
7884 /**
7885 * @brief Disable IC20
7886 * @rmtoll DIVENCR IC20ENC LL_RCC_IC20_Disable
7887 * @retval None
7888 */
LL_RCC_IC20_Disable(void)7889 __STATIC_INLINE void LL_RCC_IC20_Disable(void)
7890 {
7891 WRITE_REG(RCC->DIVENCR, RCC_DIVENCR_IC20ENC);
7892 }
7893
7894 /**
7895 * @brief Check if IC20 is enabled
7896 * @rmtoll DIVENR IC20EN LL_RCC_IC20_IsEnabled
7897 * @retval State of bit (1 or 0).
7898 */
LL_RCC_IC20_IsEnabled(void)7899 __STATIC_INLINE uint32_t LL_RCC_IC20_IsEnabled(void)
7900 {
7901 return ((READ_BIT(RCC->DIVENR, RCC_DIVENR_IC20EN) == RCC_DIVENR_IC20EN) ? 1UL : 0UL);
7902 }
7903
7904 /**
7905 * @brief Set the PLL source used as IC20 clock source.
7906 * @rmtoll IC20CFGR IC20SEL LL_RCC_IC20_SetSource
7907 * @param Source parameter can be one of the following values:
7908 * @arg @ref LL_RCC_ICCLKSOURCE_PLL1
7909 * @arg @ref LL_RCC_ICCLKSOURCE_PLL2
7910 * @arg @ref LL_RCC_ICCLKSOURCE_PLL3
7911 * @arg @ref LL_RCC_ICCLKSOURCE_PLL4
7912 * @retval None
7913 */
LL_RCC_IC20_SetSource(uint32_t Source)7914 __STATIC_INLINE void LL_RCC_IC20_SetSource(uint32_t Source)
7915 {
7916 MODIFY_REG(RCC->IC20CFGR, RCC_IC20CFGR_IC20SEL, Source);
7917 }
7918
7919 /**
7920 * @brief Get the PLL source used as IC20 clock source.
7921 * @rmtoll IC20CFGR IC20SEL LL_RCC_IC20_GetSource
7922 * @retval Returned value can be one of the following values:
7923 * @arg @ref LL_RCC_ICCLKSOURCE_PLL1
7924 * @arg @ref LL_RCC_ICCLKSOURCE_PLL2
7925 * @arg @ref LL_RCC_ICCLKSOURCE_PLL3
7926 * @arg @ref LL_RCC_ICCLKSOURCE_PLL4
7927 */
LL_RCC_IC20_GetSource(void)7928 __STATIC_INLINE uint32_t LL_RCC_IC20_GetSource(void)
7929 {
7930 return (uint32_t)(READ_BIT(RCC->IC20CFGR, RCC_IC20CFGR_IC20SEL));
7931 }
7932
7933 /**
7934 * @brief Set divider
7935 * @rmtoll IC20CFGR IC20INT LL_RCC_IC20_SetDivider
7936 * @param Divider This parameter can be a value between 1 and 256.
7937 * @retval None
7938 */
LL_RCC_IC20_SetDivider(uint32_t Divider)7939 __STATIC_INLINE void LL_RCC_IC20_SetDivider(uint32_t Divider)
7940 {
7941 MODIFY_REG(RCC->IC20CFGR, RCC_IC20CFGR_IC20INT, (Divider - 1UL) << RCC_IC20CFGR_IC20INT_Pos);
7942 }
7943
7944 /**
7945 * @brief Get IC20 divider
7946 * @rmtoll IC20CFGR IC20INT LL_RCC_IC20_GetDivider
7947 * @retval can be a value between 1 and 256.
7948 */
LL_RCC_IC20_GetDivider(void)7949 __STATIC_INLINE uint32_t LL_RCC_IC20_GetDivider(void)
7950 {
7951 return ((READ_BIT(RCC->IC20CFGR, RCC_IC20CFGR_IC20INT) >> RCC_IC20CFGR_IC20INT_Pos) + 1UL);
7952 }
7953
7954 /**
7955 * @brief Enable CLKP
7956 * @rmtoll MISCENSR PERENS LL_RCC_CLKP_Enable
7957 * @retval None
7958 */
LL_RCC_CLKP_Enable(void)7959 __STATIC_INLINE void LL_RCC_CLKP_Enable(void)
7960 {
7961 WRITE_REG(RCC->MISCENSR, RCC_MISCENSR_PERENS);
7962 }
7963
7964 /**
7965 * @brief Disable CLKP
7966 * @rmtoll MISCENCR PERENC LL_RCC_CLKP_Disable
7967 * @retval None
7968 */
LL_RCC_CLKP_Disable(void)7969 __STATIC_INLINE void LL_RCC_CLKP_Disable(void)
7970 {
7971 WRITE_REG(RCC->MISCENCR, RCC_MISCENCR_PERENC);
7972 }
7973
7974 /**
7975 * @brief Check if CLKP is enabled
7976 * @rmtoll MISCENR PEREN LL_RCC_CLKP_IsEnabled
7977 * @retval State of bit (1 or 0).
7978 */
LL_RCC_CLKP_IsEnabled(void)7979 __STATIC_INLINE uint32_t LL_RCC_CLKP_IsEnabled(void)
7980 {
7981 return ((READ_BIT(RCC->MISCENR, RCC_MISCENR_PEREN) == RCC_MISCENR_PEREN) ? 1UL : 0UL);
7982 }
7983
7984 /**
7985 * @}
7986 */
7987
7988
7989 /** @defgroup RCC_LL_EF_FLAG_Management FLAG Management
7990 * @{
7991 */
7992
7993 /**
7994 * @brief Clear LSI ready interrupt flag
7995 * @rmtoll CICR LSIRDYC LL_RCC_ClearFlag_LSIRDY
7996 * @retval None
7997 */
LL_RCC_ClearFlag_LSIRDY(void)7998 __STATIC_INLINE void LL_RCC_ClearFlag_LSIRDY(void)
7999 {
8000 WRITE_REG(RCC->CICR, RCC_CICR_LSIRDYC);
8001 }
8002
8003 /**
8004 * @brief Clear LSE ready interrupt flag
8005 * @rmtoll CICR LSERDYC LL_RCC_ClearFlag_LSERDY
8006 * @retval None
8007 */
LL_RCC_ClearFlag_LSERDY(void)8008 __STATIC_INLINE void LL_RCC_ClearFlag_LSERDY(void)
8009 {
8010 WRITE_REG(RCC->CICR, RCC_CICR_LSERDYC);
8011 }
8012
8013 /**
8014 * @brief Clear HSI ready interrupt flag
8015 * @rmtoll CICR HSIRDYC LL_RCC_ClearFlag_HSIRDY
8016 * @retval None
8017 */
LL_RCC_ClearFlag_HSIRDY(void)8018 __STATIC_INLINE void LL_RCC_ClearFlag_HSIRDY(void)
8019 {
8020 WRITE_REG(RCC->CICR, RCC_CICR_HSIRDYC);
8021 }
8022
8023 /**
8024 * @brief Clear HSE ready interrupt flag
8025 * @rmtoll CICR HSERDYC LL_RCC_ClearFlag_HSERDY
8026 * @retval None
8027 */
LL_RCC_ClearFlag_HSERDY(void)8028 __STATIC_INLINE void LL_RCC_ClearFlag_HSERDY(void)
8029 {
8030 WRITE_REG(RCC->CICR, RCC_CICR_HSERDYC);
8031 }
8032
8033 /**
8034 * @brief Clear MSI ready interrupt flag
8035 * @rmtoll CICR MSIRDYC LL_RCC_ClearFlag_MSIRDY
8036 * @retval None
8037 */
LL_RCC_ClearFlag_MSIRDY(void)8038 __STATIC_INLINE void LL_RCC_ClearFlag_MSIRDY(void)
8039 {
8040 WRITE_REG(RCC->CICR, RCC_CICR_MSIRDYC);
8041 }
8042
8043 /**
8044 * @brief Clear PLL1 ready interrupt flag
8045 * @rmtoll CICR PLL1RDYC LL_RCC_ClearFlag_PLL1RDY
8046 * @retval None
8047 */
LL_RCC_ClearFlag_PLL1RDY(void)8048 __STATIC_INLINE void LL_RCC_ClearFlag_PLL1RDY(void)
8049 {
8050 WRITE_REG(RCC->CICR, RCC_CICR_PLL1RDYC);
8051 }
8052
8053 /**
8054 * @brief Clear PLL2 ready interrupt flag
8055 * @rmtoll CICR PLL2RDYC LL_RCC_ClearFlag_PLL2RDY
8056 * @retval None
8057 */
LL_RCC_ClearFlag_PLL2RDY(void)8058 __STATIC_INLINE void LL_RCC_ClearFlag_PLL2RDY(void)
8059 {
8060 WRITE_REG(RCC->CICR, RCC_CICR_PLL2RDYC);
8061 }
8062
8063 /**
8064 * @brief Clear PLL3 ready interrupt flag
8065 * @rmtoll CICR PLL3RDYC LL_RCC_ClearFlag_PLL3RDY
8066 * @retval None
8067 */
LL_RCC_ClearFlag_PLL3RDY(void)8068 __STATIC_INLINE void LL_RCC_ClearFlag_PLL3RDY(void)
8069 {
8070 WRITE_REG(RCC->CICR, RCC_CICR_PLL3RDYC);
8071 }
8072
8073 /**
8074 * @brief Clear PLL4 ready interrupt flag
8075 * @rmtoll CICR PLL4RDYC LL_RCC_ClearFlag_PLL4RDY
8076 * @retval None
8077 */
LL_RCC_ClearFlag_PLL4RDY(void)8078 __STATIC_INLINE void LL_RCC_ClearFlag_PLL4RDY(void)
8079 {
8080 WRITE_REG(RCC->CICR, RCC_CICR_PLL4RDYC);
8081 }
8082
8083 /**
8084 * @brief Clear LSE Clock security system interrupt flag
8085 * @rmtoll CICR LSECSSC LL_RCC_ClearFlag_LSECSS
8086 * @retval None
8087 */
LL_RCC_ClearFlag_LSECSS(void)8088 __STATIC_INLINE void LL_RCC_ClearFlag_LSECSS(void)
8089 {
8090 WRITE_REG(RCC->CICR, RCC_CICR_LSECSSC);
8091 }
8092
8093 /**
8094 * @brief Clear HSE Clock security system interrupt flag
8095 * @rmtoll CICR HSECSSC LL_RCC_ClearFlag_HSECSS
8096 * @retval None
8097 */
LL_RCC_ClearFlag_HSECSS(void)8098 __STATIC_INLINE void LL_RCC_ClearFlag_HSECSS(void)
8099 {
8100 SET_BIT(RCC->CICR, RCC_CICR_HSECSSC);
8101 }
8102
8103 /**
8104 * @brief Clear WKUP ready interrupt flag
8105 * @rmtoll CICR WKUPFC LL_RCC_ClearFlag_WKUP
8106 * @retval None
8107 */
LL_RCC_ClearFlag_WKUP(void)8108 __STATIC_INLINE void LL_RCC_ClearFlag_WKUP(void)
8109 {
8110 WRITE_REG(RCC->CICR, RCC_CICR_WKUPFC);
8111 }
8112
8113 /**
8114 * @brief Check if LSI ready interrupt occurred or not
8115 * @rmtoll CIFR LSIRDYF LL_RCC_IsActiveFlag_LSIRDY
8116 * @retval State of bit (1 or 0).
8117 */
LL_RCC_IsActiveFlag_LSIRDY(void)8118 __STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_LSIRDY(void)
8119 {
8120 return ((READ_BIT(RCC->CIFR, RCC_CIFR_LSIRDYF) == RCC_CIFR_LSIRDYF) ? 1UL : 0UL);
8121 }
8122
8123 /**
8124 * @brief Check if LSE ready interrupt occurred or not
8125 * @rmtoll CIFR LSERDYF LL_RCC_IsActiveFlag_LSERDY
8126 * @retval State of bit (1 or 0).
8127 */
LL_RCC_IsActiveFlag_LSERDY(void)8128 __STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_LSERDY(void)
8129 {
8130 return ((READ_BIT(RCC->CIFR, RCC_CIFR_LSERDYF) == RCC_CIFR_LSERDYF) ? 1UL : 0UL);
8131 }
8132
8133 /**
8134 * @brief Check if HSI ready interrupt occurred or not
8135 * @rmtoll CIFR HSIRDYF LL_RCC_IsActiveFlag_HSIRDY
8136 * @retval State of bit (1 or 0).
8137 */
LL_RCC_IsActiveFlag_HSIRDY(void)8138 __STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_HSIRDY(void)
8139 {
8140 return ((READ_BIT(RCC->CIFR, RCC_CIFR_HSIRDYF) == RCC_CIFR_HSIRDYF) ? 1UL : 0UL);
8141 }
8142
8143 /**
8144 * @brief Check if HSE ready interrupt occurred or not
8145 * @rmtoll CIFR HSERDYF LL_RCC_IsActiveFlag_HSERDY
8146 * @retval State of bit (1 or 0).
8147 */
LL_RCC_IsActiveFlag_HSERDY(void)8148 __STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_HSERDY(void)
8149 {
8150 return ((READ_BIT(RCC->CIFR, RCC_CIFR_HSERDYF) == RCC_CIFR_HSERDYF) ? 1UL : 0UL);
8151 }
8152
8153 /**
8154 * @brief Check if MSI ready interrupt occurred or not
8155 * @rmtoll CIFR MSIRDYF LL_RCC_IsActiveFlag_MSIRDY
8156 * @retval State of bit (1 or 0).
8157 */
LL_RCC_IsActiveFlag_MSIRDY(void)8158 __STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_MSIRDY(void)
8159 {
8160 return ((READ_BIT(RCC->CIFR, RCC_CIFR_MSIRDYF) == RCC_CIFR_MSIRDYF) ? 1UL : 0UL);
8161 }
8162
8163 /**
8164 * @brief Check if PLL1 ready interrupt occurred or not
8165 * @rmtoll CIFR PLL1RDYF LL_RCC_IsActiveFlag_PLL1RDY
8166 * @retval State of bit (1 or 0).
8167 */
LL_RCC_IsActiveFlag_PLL1RDY(void)8168 __STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_PLL1RDY(void)
8169 {
8170 return ((READ_BIT(RCC->CIFR, RCC_CIFR_PLL1RDYF) == RCC_CIFR_PLL1RDYF) ? 1UL : 0UL);
8171 }
8172
8173 /**
8174 * @brief Check if PLL2 ready interrupt occurred or not
8175 * @rmtoll CIFR PLL2RDYF LL_RCC_IsActiveFlag_PLL2RDY
8176 * @retval State of bit (1 or 0).
8177 */
LL_RCC_IsActiveFlag_PLL2RDY(void)8178 __STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_PLL2RDY(void)
8179 {
8180 return ((READ_BIT(RCC->CIFR, RCC_CIFR_PLL2RDYF) == RCC_CIFR_PLL2RDYF) ? 1UL : 0UL);
8181 }
8182
8183 /**
8184 * @brief Check if PLL3 ready interrupt occurred or not
8185 * @rmtoll CIFR PLL3RDYF LL_RCC_IsActiveFlag_PLL3RDY
8186 * @retval State of bit (1 or 0).
8187 */
LL_RCC_IsActiveFlag_PLL3RDY(void)8188 __STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_PLL3RDY(void)
8189 {
8190 return ((READ_BIT(RCC->CIFR, RCC_CIFR_PLL3RDYF) == RCC_CIFR_PLL3RDYF) ? 1UL : 0UL);
8191 }
8192
8193 /**
8194 * @brief Check if PLL4 ready interrupt occurred or not
8195 * @rmtoll CIFR PLL4RDYF LL_RCC_IsActiveFlag_PLL4RDY
8196 * @retval State of bit (1 or 0).
8197 */
LL_RCC_IsActiveFlag_PLL4RDY(void)8198 __STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_PLL4RDY(void)
8199 {
8200 return ((READ_BIT(RCC->CIFR, RCC_CIFR_PLL4RDYF) == RCC_CIFR_PLL4RDYF) ? 1UL : 0UL);
8201 }
8202
8203 /**
8204 * @brief Check if LSE Clock security system interrupt occurred or not
8205 * @rmtoll CIFR LSECSSF LL_RCC_IsActiveFlag_LSECSS
8206 * @retval State of bit (1 or 0).
8207 */
LL_RCC_IsActiveFlag_LSECSS(void)8208 __STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_LSECSS(void)
8209 {
8210 return ((READ_BIT(RCC->CIFR, RCC_CIFR_LSECSSF) == RCC_CIFR_LSECSSF) ? 1UL : 0UL);
8211 }
8212
8213 /**
8214 * @brief Check if HSE Clock security system interrupt occurred or not
8215 * @rmtoll CIFR HSECSSF LL_RCC_IsActiveFlag_HSECSS
8216 * @retval State of bit (1 or 0).
8217 */
LL_RCC_IsActiveFlag_HSECSS(void)8218 __STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_HSECSS(void)
8219 {
8220 return ((READ_BIT(RCC->CIFR, RCC_CIFR_HSECSSF) == RCC_CIFR_HSECSSF) ? 1UL : 0UL);
8221 }
8222
8223 /**
8224 * @brief Check if WKUP from STOP interrupt occurred or not
8225 * @rmtoll CIFR WKUPF LL_RCC_IsActiveFlag_WKUP
8226 * @retval State of bit (1 or 0).
8227 */
LL_RCC_IsActiveFlag_WKUP(void)8228 __STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_WKUP(void)
8229 {
8230 return ((READ_BIT(RCC->CIFR, RCC_CIFR_WKUPF) == RCC_CIFR_WKUPF) ? 1UL : 0UL);
8231 }
8232
8233 /**
8234 * @brief Check if RCC flag Low Power D1 reset is set or not.
8235 * @rmtoll RSR LPWRRSTF LL_RCC_IsActiveFlag_LPWRRST
8236 * @retval State of bit (1 or 0).
8237 */
LL_RCC_IsActiveFlag_LPWRRST(void)8238 __STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_LPWRRST(void)
8239 {
8240 return ((READ_BIT(RCC->RSR, RCC_RSR_LPWRRSTF) == RCC_RSR_LPWRRSTF) ? 1UL : 0UL);
8241 }
8242
8243 /**
8244 * @brief Check if RCC flag Window Watchdog reset is set or not.
8245 * @rmtoll RSR WWDGRSTF LL_RCC_IsActiveFlag_WWDGRST
8246 * @retval State of bit (1 or 0).
8247 */
LL_RCC_IsActiveFlag_WWDGRST(void)8248 __STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_WWDGRST(void)
8249 {
8250 return ((READ_BIT(RCC->RSR, RCC_RSR_WWDGRSTF) == RCC_RSR_WWDGRSTF) ? 1UL : 0UL);
8251 }
8252
8253 /**
8254 * @brief Check if RCC flag Independent Watchdog reset is set or not.
8255 * @rmtoll RSR IWDGRSTF LL_RCC_IsActiveFlag_IWDGRST
8256 * @retval State of bit (1 or 0).
8257 */
LL_RCC_IsActiveFlag_IWDGRST(void)8258 __STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_IWDGRST(void)
8259 {
8260 return ((READ_BIT(RCC->RSR, RCC_RSR_IWDGRSTF) == RCC_RSR_IWDGRSTF) ? 1UL : 0UL);
8261 }
8262
8263 /**
8264 * @brief Check if RCC flag Software reset is set or not.
8265 * @rmtoll RSR SFTRSTF LL_RCC_IsActiveFlag_SFTRST
8266 * @retval State of bit (1 or 0).
8267 */
LL_RCC_IsActiveFlag_SFTRST(void)8268 __STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_SFTRST(void)
8269 {
8270 return ((READ_BIT(RCC->RSR, RCC_RSR_SFTRSTF) == RCC_RSR_SFTRSTF) ? 1UL : 0UL);
8271 }
8272
8273 /**
8274 * @brief Check if RCC flag POR/PDR reset is set or not.
8275 * @rmtoll RSR PORRSTF LL_RCC_IsActiveFlag_PORRST
8276 * @retval State of bit (1 or 0).
8277 */
LL_RCC_IsActiveFlag_PORRST(void)8278 __STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_PORRST(void)
8279 {
8280 return ((READ_BIT(RCC->RSR, RCC_RSR_PORRSTF) == RCC_RSR_PORRSTF) ? 1UL : 0UL);
8281 }
8282
8283 /**
8284 * @brief Check if RCC flag Pin reset is set or not.
8285 * @rmtoll RSR PINRSTF LL_RCC_IsActiveFlag_PINRST
8286 * @retval State of bit (1 or 0).
8287 */
LL_RCC_IsActiveFlag_PINRST(void)8288 __STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_PINRST(void)
8289 {
8290 return ((READ_BIT(RCC->RSR, RCC_RSR_PINRSTF) == RCC_RSR_PINRSTF) ? 1UL : 0UL);
8291 }
8292
8293 /**
8294 * @brief Check if RCC flag BOR reset is set or not.
8295 * @rmtoll RSR BORRSTF LL_RCC_IsActiveFlag_BORRST
8296 * @retval State of bit (1 or 0).
8297 */
LL_RCC_IsActiveFlag_BORRST(void)8298 __STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_BORRST(void)
8299 {
8300 return ((READ_BIT(RCC->RSR, RCC_RSR_BORRSTF) == (RCC_RSR_BORRSTF)) ? 1UL : 0UL);
8301 }
8302
8303 /**
8304 * @brief Check if RCC flag CPU Lockup reset is set or not.
8305 * @rmtoll RSR BORRSTF LL_RCC_IsActiveFlag_LCKRST
8306 * @retval State of bit (1 or 0).
8307 */
LL_RCC_IsActiveFlag_LCKRST(void)8308 __STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_LCKRST(void)
8309 {
8310 return ((READ_BIT(RCC->RSR, RCC_RSR_LCKRSTF) == (RCC_RSR_LCKRSTF)) ? 1UL : 0UL);
8311 }
8312
8313 /**
8314 * @brief Check if RCC ETH1 power-down start acknowledged is set or not.
8315 * @rmtoll CCIPR2 ETH1PWRDOWNACK LL_RCC_IsActiveFlag_ETH1PWRDOWNACK
8316 * @retval State of bit (1 or 0).
8317 */
LL_RCC_IsActiveFlag_ETH1PWRDOWNACK(void)8318 __STATIC_INLINE uint32_t LL_RCC_IsActiveFlag_ETH1PWRDOWNACK(void)
8319 {
8320 return ((READ_BIT(RCC->CCIPR2, RCC_CCIPR2_ETH1PWRDOWNACK) == (RCC_CCIPR2_ETH1PWRDOWNACK)) ? 1UL : 0UL);
8321 }
8322
8323 /**
8324 * @brief Set RMVF bit to clear all reset flags.
8325 * @rmtoll RSR RMVF LL_RCC_ClearResetFlags
8326 * @retval None
8327 */
LL_RCC_ClearResetFlags(void)8328 __STATIC_INLINE void LL_RCC_ClearResetFlags(void)
8329 {
8330 SET_BIT(RCC->RSR, RCC_RSR_RMVF);
8331 }
8332
8333 /**
8334 * @}
8335 */
8336
8337 /** @defgroup RCC_LL_EF_IT_Management IT Management
8338 * @{
8339 */
8340
8341 /**
8342 * @brief Enable LSI ready interrupt
8343 * @rmtoll CIER LSIRDYIE LL_RCC_EnableIT_LSIRDY
8344 * @retval None
8345 */
LL_RCC_EnableIT_LSIRDY(void)8346 __STATIC_INLINE void LL_RCC_EnableIT_LSIRDY(void)
8347 {
8348 SET_BIT(RCC->CIER, RCC_CIER_LSIRDYIE);
8349 }
8350
8351 /**
8352 * @brief Enable LSE ready interrupt
8353 * @rmtoll CIER LSERDYIE LL_RCC_EnableIT_LSERDY
8354 * @retval None
8355 */
LL_RCC_EnableIT_LSERDY(void)8356 __STATIC_INLINE void LL_RCC_EnableIT_LSERDY(void)
8357 {
8358 SET_BIT(RCC->CIER, RCC_CIER_LSERDYIE);
8359 }
8360
8361 /**
8362 * @brief Enable MSI ready interrupt
8363 * @rmtoll CIER MSIRDYIE LL_RCC_EnableIT_MSIRDY
8364 * @retval None
8365 */
LL_RCC_EnableIT_MSIRDY(void)8366 __STATIC_INLINE void LL_RCC_EnableIT_MSIRDY(void)
8367 {
8368 SET_BIT(RCC->CIER, RCC_CIER_MSIRDYIE);
8369 }
8370
8371 /**
8372 * @brief Enable HSI ready interrupt
8373 * @rmtoll CIER HSIRDYIE LL_RCC_EnableIT_HSIRDY
8374 * @retval None
8375 */
LL_RCC_EnableIT_HSIRDY(void)8376 __STATIC_INLINE void LL_RCC_EnableIT_HSIRDY(void)
8377 {
8378 SET_BIT(RCC->CIER, RCC_CIER_HSIRDYIE);
8379 }
8380
8381 /**
8382 * @brief Enable HSE ready interrupt
8383 * @rmtoll CIER HSERDYIE LL_RCC_EnableIT_HSERDY
8384 * @retval None
8385 */
LL_RCC_EnableIT_HSERDY(void)8386 __STATIC_INLINE void LL_RCC_EnableIT_HSERDY(void)
8387 {
8388 SET_BIT(RCC->CIER, RCC_CIER_HSERDYIE);
8389 }
8390
8391 /**
8392 * @brief Enable PLL1 ready interrupt
8393 * @rmtoll CIER PLL1RDYIE LL_RCC_EnableIT_PLL1RDY
8394 * @retval None
8395 */
LL_RCC_EnableIT_PLL1RDY(void)8396 __STATIC_INLINE void LL_RCC_EnableIT_PLL1RDY(void)
8397 {
8398 SET_BIT(RCC->CIER, RCC_CIER_PLL1RDYIE);
8399 }
8400
8401 /**
8402 * @brief Enable PLL2 ready interrupt
8403 * @rmtoll CIER PLL2RDYIE LL_RCC_EnableIT_PLL2RDY
8404 * @retval None
8405 */
LL_RCC_EnableIT_PLL2RDY(void)8406 __STATIC_INLINE void LL_RCC_EnableIT_PLL2RDY(void)
8407 {
8408 SET_BIT(RCC->CIER, RCC_CIER_PLL2RDYIE);
8409 }
8410
8411 /**
8412 * @brief Enable PLL3 ready interrupt
8413 * @rmtoll CIER PLL3RDYIE LL_RCC_EnableIT_PLL3RDY
8414 * @retval None
8415 */
LL_RCC_EnableIT_PLL3RDY(void)8416 __STATIC_INLINE void LL_RCC_EnableIT_PLL3RDY(void)
8417 {
8418 SET_BIT(RCC->CIER, RCC_CIER_PLL3RDYIE);
8419 }
8420
8421 /**
8422 * @brief Enable PLL4 ready interrupt
8423 * @rmtoll CIER PLL4RDYIE LL_RCC_EnableIT_PLL4RDY
8424 * @retval None
8425 */
LL_RCC_EnableIT_PLL4RDY(void)8426 __STATIC_INLINE void LL_RCC_EnableIT_PLL4RDY(void)
8427 {
8428 SET_BIT(RCC->CIER, RCC_CIER_PLL4RDYIE);
8429 }
8430
8431 /**
8432 * @brief Enable LSECSS interrupt
8433 * @rmtoll CIER LSECSSIE LL_RCC_EnableIT_LSECSS
8434 * @retval None
8435 */
LL_RCC_EnableIT_LSECSS(void)8436 __STATIC_INLINE void LL_RCC_EnableIT_LSECSS(void)
8437 {
8438 SET_BIT(RCC->CIER, RCC_CIER_LSECSSIE);
8439 }
8440
8441 /**
8442 * @brief Enable HSECSS interrupt
8443 * @rmtoll CIER HSECSSIE LL_RCC_EnableIT_HSECSS
8444 * @retval None
8445 */
LL_RCC_EnableIT_HSECSS(void)8446 __STATIC_INLINE void LL_RCC_EnableIT_HSECSS(void)
8447 {
8448 SET_BIT(RCC->CIER, RCC_CIER_HSECSSIE);
8449 }
8450
8451 /**
8452 * @brief Enable WKUP interrupt
8453 * @rmtoll CIER WKUPIE LL_RCC_EnableIT_WKUP
8454 * @retval None
8455 */
LL_RCC_EnableIT_WKUP(void)8456 __STATIC_INLINE void LL_RCC_EnableIT_WKUP(void)
8457 {
8458 SET_BIT(RCC->CIER, RCC_CIER_WKUPIE);
8459 }
8460
8461 /**
8462 * @brief Disable LSI ready interrupt
8463 * @rmtoll CIER LSIRDYIE LL_RCC_DisableIT_LSIRDY
8464 * @retval None
8465 */
LL_RCC_DisableIT_LSIRDY(void)8466 __STATIC_INLINE void LL_RCC_DisableIT_LSIRDY(void)
8467 {
8468 CLEAR_BIT(RCC->CIER, RCC_CIER_LSIRDYIE);
8469 }
8470
8471 /**
8472 * @brief Disable LSE ready interrupt
8473 * @rmtoll CIER LSERDYIE LL_RCC_DisableIT_LSERDY
8474 * @retval None
8475 */
LL_RCC_DisableIT_LSERDY(void)8476 __STATIC_INLINE void LL_RCC_DisableIT_LSERDY(void)
8477 {
8478 CLEAR_BIT(RCC->CIER, RCC_CIER_LSERDYIE);
8479 }
8480
8481 /**
8482 * @brief Disable MSI ready interrupt
8483 * @rmtoll CIER MSIRDYIE LL_RCC_DisableIT_MSIRDY
8484 * @retval None
8485 */
LL_RCC_DisableIT_MSIRDY(void)8486 __STATIC_INLINE void LL_RCC_DisableIT_MSIRDY(void)
8487 {
8488 CLEAR_BIT(RCC->CIER, RCC_CIER_MSIRDYIE);
8489 }
8490
8491 /**
8492 * @brief Disable HSI ready interrupt
8493 * @rmtoll CIER HSIRDYIE LL_RCC_DisableIT_HSIRDY
8494 * @retval None
8495 */
LL_RCC_DisableIT_HSIRDY(void)8496 __STATIC_INLINE void LL_RCC_DisableIT_HSIRDY(void)
8497 {
8498 CLEAR_BIT(RCC->CIER, RCC_CIER_HSIRDYIE);
8499 }
8500
8501 /**
8502 * @brief Disable HSE ready interrupt
8503 * @rmtoll CIER HSERDYIE LL_RCC_DisableIT_HSERDY
8504 * @retval None
8505 */
LL_RCC_DisableIT_HSERDY(void)8506 __STATIC_INLINE void LL_RCC_DisableIT_HSERDY(void)
8507 {
8508 CLEAR_BIT(RCC->CIER, RCC_CIER_HSERDYIE);
8509 }
8510
8511 /**
8512 * @brief Disable PLL1 ready interrupt
8513 * @rmtoll CIER PLL1RDYIE LL_RCC_DisableIT_PLL1RDY
8514 * @retval None
8515 */
LL_RCC_DisableIT_PLL1RDY(void)8516 __STATIC_INLINE void LL_RCC_DisableIT_PLL1RDY(void)
8517 {
8518 CLEAR_BIT(RCC->CIER, RCC_CIER_PLL1RDYIE);
8519 }
8520
8521 /**
8522 * @brief Disable PLL2 ready interrupt
8523 * @rmtoll CIER PLL2RDYIE LL_RCC_DisableIT_PLL2RDY
8524 * @retval None
8525 */
LL_RCC_DisableIT_PLL2RDY(void)8526 __STATIC_INLINE void LL_RCC_DisableIT_PLL2RDY(void)
8527 {
8528 CLEAR_BIT(RCC->CIER, RCC_CIER_PLL2RDYIE);
8529 }
8530
8531 /**
8532 * @brief Disable PLL3 ready interrupt
8533 * @rmtoll CIER PLL3RDYIE LL_RCC_DisableIT_PLL3RDY
8534 * @retval None
8535 */
LL_RCC_DisableIT_PLL3RDY(void)8536 __STATIC_INLINE void LL_RCC_DisableIT_PLL3RDY(void)
8537 {
8538 CLEAR_BIT(RCC->CIER, RCC_CIER_PLL3RDYIE);
8539 }
8540
8541 /**
8542 * @brief Disable PLL4 ready interrupt
8543 * @rmtoll CIER PLL4RDYIE LL_RCC_DisableIT_PLL4RDY
8544 * @retval None
8545 */
LL_RCC_DisableIT_PLL4RDY(void)8546 __STATIC_INLINE void LL_RCC_DisableIT_PLL4RDY(void)
8547 {
8548 CLEAR_BIT(RCC->CIER, RCC_CIER_PLL4RDYIE);
8549 }
8550
8551 /**
8552 * @brief Disable LSECSS interrupt
8553 * @rmtoll CIER LSECSSIE LL_RCC_DisableIT_LSECSS
8554 * @retval None
8555 */
LL_RCC_DisableIT_LSECSS(void)8556 __STATIC_INLINE void LL_RCC_DisableIT_LSECSS(void)
8557 {
8558 CLEAR_BIT(RCC->CIER, RCC_CIER_LSECSSIE);
8559 }
8560
8561 /**
8562 * @brief Disable HSECSS interrupt
8563 * @rmtoll CIER HSECSSIE LL_RCC_DisableIT_HSECSS
8564 * @retval None
8565 */
LL_RCC_DisableIT_HSECSS(void)8566 __STATIC_INLINE void LL_RCC_DisableIT_HSECSS(void)
8567 {
8568 CLEAR_BIT(RCC->CIER, RCC_CIER_HSECSSIE);
8569 }
8570
8571 /**
8572 * @brief Disable WKUP interrupt
8573 * @rmtoll CIER WKUPIE LL_RCC_DisableIT_WKUP
8574 * @retval None
8575 */
LL_RCC_DisableIT_WKUP(void)8576 __STATIC_INLINE void LL_RCC_DisableIT_WKUP(void)
8577 {
8578 CLEAR_BIT(RCC->CIER, RCC_CIER_WKUPIE);
8579 }
8580
8581 /**
8582 * @brief Checks if LSI ready interrupt source is enabled or disabled.
8583 * @rmtoll CIER LSIRDYIE LL_RCC_IsEnabledIT_LSIRDY
8584 * @retval State of bit (1 or 0).
8585 */
LL_RCC_IsEnabledIT_LSIRDY(void)8586 __STATIC_INLINE uint32_t LL_RCC_IsEnabledIT_LSIRDY(void)
8587 {
8588 return ((READ_BIT(RCC->CIER, RCC_CIER_LSIRDYIE) == RCC_CIER_LSIRDYIE) ? 1UL : 0UL);
8589 }
8590
8591 /**
8592 * @brief Checks if LSE ready interrupt source is enabled or disabled.
8593 * @rmtoll CIER LSERDYIE LL_RCC_IsEnabledIT_LSERDY
8594 * @retval State of bit (1 or 0).
8595 */
LL_RCC_IsEnabledIT_LSERDY(void)8596 __STATIC_INLINE uint32_t LL_RCC_IsEnabledIT_LSERDY(void)
8597 {
8598 return ((READ_BIT(RCC->CIER, RCC_CIER_LSERDYIE) == RCC_CIER_LSERDYIE) ? 1UL : 0UL);
8599 }
8600
8601 /**
8602 * @brief Checks if MSI ready interrupt source is enabled or disabled.
8603 * @rmtoll CIER MSIRDYIE LL_RCC_IsEnabledIT_MSIRDY
8604 * @retval State of bit (1 or 0).
8605 */
LL_RCC_IsEnabledIT_MSIRDY(void)8606 __STATIC_INLINE uint32_t LL_RCC_IsEnabledIT_MSIRDY(void)
8607 {
8608 return ((READ_BIT(RCC->CIER, RCC_CIER_MSIRDYIE) == RCC_CIER_MSIRDYIE) ? 1UL : 0UL);
8609 }
8610
8611 /**
8612 * @brief Checks if HSI ready interrupt source is enabled or disabled.
8613 * @rmtoll CIER HSIRDYIE LL_RCC_IsEnabledIT_HSIRDY
8614 * @retval State of bit (1 or 0).
8615 */
LL_RCC_IsEnabledIT_HSIRDY(void)8616 __STATIC_INLINE uint32_t LL_RCC_IsEnabledIT_HSIRDY(void)
8617 {
8618 return ((READ_BIT(RCC->CIER, RCC_CIER_HSIRDYIE) == RCC_CIER_HSIRDYIE) ? 1UL : 0UL);
8619 }
8620
8621 /**
8622 * @brief Checks if HSE ready interrupt source is enabled or disabled.
8623 * @rmtoll CIER HSERDYIE LL_RCC_IsEnabledIT_HSERDY
8624 * @retval State of bit (1 or 0).
8625 */
LL_RCC_IsEnabledIT_HSERDY(void)8626 __STATIC_INLINE uint32_t LL_RCC_IsEnabledIT_HSERDY(void)
8627 {
8628 return ((READ_BIT(RCC->CIER, RCC_CIER_HSERDYIE) == RCC_CIER_HSERDYIE) ? 1UL : 0UL);
8629 }
8630
8631 /**
8632 * @brief Checks if PLL1 ready interrupt source is enabled or disabled.
8633 * @rmtoll CIER PLL1RDYIE LL_RCC_IsEnabledIT_PLL1RDY
8634 * @retval State of bit (1 or 0).
8635 */
LL_RCC_IsEnabledIT_PLL1RDY(void)8636 __STATIC_INLINE uint32_t LL_RCC_IsEnabledIT_PLL1RDY(void)
8637 {
8638 return ((READ_BIT(RCC->CIER, RCC_CIER_PLL1RDYIE) == RCC_CIER_PLL1RDYIE) ? 1UL : 0UL);
8639 }
8640
8641 /**
8642 * @brief Checks if PLL2 ready interrupt source is enabled or disabled.
8643 * @rmtoll CIER PLL2RDYIE LL_RCC_IsEnabledIT_PLL2RDY
8644 * @retval State of bit (1 or 0).
8645 */
LL_RCC_IsEnabledIT_PLL2RDY(void)8646 __STATIC_INLINE uint32_t LL_RCC_IsEnabledIT_PLL2RDY(void)
8647 {
8648 return ((READ_BIT(RCC->CIER, RCC_CIER_PLL2RDYIE) == RCC_CIER_PLL2RDYIE) ? 1UL : 0UL);
8649 }
8650
8651 /**
8652 * @brief Checks if PLL3 ready interrupt source is enabled or disabled.
8653 * @rmtoll CIER PLL3RDYIE LL_RCC_IsEnabledIT_PLL3RDY
8654 * @retval State of bit (1 or 0).
8655 */
LL_RCC_IsEnabledIT_PLL3RDY(void)8656 __STATIC_INLINE uint32_t LL_RCC_IsEnabledIT_PLL3RDY(void)
8657 {
8658 return ((READ_BIT(RCC->CIER, RCC_CIER_PLL3RDYIE) == RCC_CIER_PLL3RDYIE) ? 1UL : 0UL);
8659 }
8660
8661 /**
8662 * @brief Checks if PLL4 ready interrupt source is enabled or disabled.
8663 * @rmtoll CIER PLL4RDYIE LL_RCC_IsEnabledIT_PLL4RDY
8664 * @retval State of bit (1 or 0).
8665 */
LL_RCC_IsEnabledIT_PLL4RDY(void)8666 __STATIC_INLINE uint32_t LL_RCC_IsEnabledIT_PLL4RDY(void)
8667 {
8668 return ((READ_BIT(RCC->CIER, RCC_CIER_PLL4RDYIE) == RCC_CIER_PLL4RDYIE) ? 1UL : 0UL);
8669 }
8670
8671 /**
8672 * @brief Checks if LSECSS interrupt source is enabled or disabled.
8673 * @rmtoll CIER LSECSSIE LL_RCC_IsEnabledIT_LSECSS
8674 * @retval State of bit (1 or 0).
8675 */
LL_RCC_IsEnabledIT_LSECSS(void)8676 __STATIC_INLINE uint32_t LL_RCC_IsEnabledIT_LSECSS(void)
8677 {
8678 return ((READ_BIT(RCC->CIER, RCC_CIER_LSECSSIE) == RCC_CIER_LSECSSIE) ? 1UL : 0UL);
8679 }
8680
8681 /**
8682 * @brief Checks if HSECSS interrupt source is enabled or disabled.
8683 * @rmtoll CIER HSECSSIE LL_RCC_IsEnabledIT_HSECSS
8684 * @retval State of bit (1 or 0).
8685 */
LL_RCC_IsEnabledIT_HSECSS(void)8686 __STATIC_INLINE uint32_t LL_RCC_IsEnabledIT_HSECSS(void)
8687 {
8688 return ((READ_BIT(RCC->CIER, RCC_CIER_HSECSSIE) == RCC_CIER_HSECSSIE) ? 1UL : 0UL);
8689 }
8690
8691 /**
8692 * @brief Checks if WKUP interrupt source is enabled or disabled.
8693 * @rmtoll CIER WKUPIE LL_RCC_IsEnabledIT_WKUP
8694 * @retval State of bit (1 or 0).
8695 */
LL_RCC_IsEnabledIT_WKUP(void)8696 __STATIC_INLINE uint32_t LL_RCC_IsEnabledIT_WKUP(void)
8697 {
8698 return ((READ_BIT(RCC->CIER, RCC_CIER_WKUPIE) == RCC_CIER_WKUPIE) ? 1UL : 0UL);
8699 }
8700 /**
8701 * @}
8702 */
8703
8704 /** @defgroup RCC_LL_EF_Init De-initialization function
8705 * @{
8706 */
8707 void LL_RCC_DeInit(void);
8708 /**
8709 * @}
8710 */
8711
8712 /** @defgroup RCC_LL_EF_Get_Freq Get system and peripherals clocks frequency functions
8713 * @{
8714 */
8715 void LL_RCC_GetSystemClocksFreq(LL_RCC_ClocksTypeDef *RCC_Clocks);
8716
8717 uint32_t LL_RCC_GetCpuClockFreq(void);
8718 uint32_t LL_RCC_GetSystemClockFreq(void);
8719 uint32_t LL_RCC_GetPLL1ClockFreq(void);
8720 uint32_t LL_RCC_GetPLL2ClockFreq(void);
8721 uint32_t LL_RCC_GetPLL3ClockFreq(void);
8722 uint32_t LL_RCC_GetPLL4ClockFreq(void);
8723 uint32_t LL_RCC_CalcPLLClockFreq(uint32_t PLLInputFreq, uint32_t M, uint32_t N, uint32_t FRACN, uint32_t P1,
8724 uint32_t P2);
8725
8726 uint32_t LL_RCC_GetADCClockFreq(uint32_t ADCxSource);
8727 uint32_t LL_RCC_GetADFClockFreq(uint32_t ADFxSource);
8728 uint32_t LL_RCC_GetCLKPClockFreq(uint32_t CLKPxSource);
8729 uint32_t LL_RCC_GetDCMIPPClockFreq(uint32_t DCMIPPxSource);
8730 uint32_t LL_RCC_GetETHClockFreq(uint32_t ETHxSource);
8731 uint32_t LL_RCC_GetETHPTPClockFreq(uint32_t ETHxPTPSource);
8732 uint32_t LL_RCC_GetFDCANClockFreq(uint32_t FDCANxSource);
8733 uint32_t LL_RCC_GetFMCClockFreq(uint32_t FMCxSource);
8734 uint32_t LL_RCC_GetI2CClockFreq(uint32_t I2CxSource);
8735 uint32_t LL_RCC_GetI3CClockFreq(uint32_t I3CxSource);
8736 uint32_t LL_RCC_GetLPTIMClockFreq(uint32_t LPTIMxSource);
8737 uint32_t LL_RCC_GetLPUARTClockFreq(uint32_t LPUARTxSource);
8738 uint32_t LL_RCC_GetLTDCClockFreq(uint32_t LTDCxSource);
8739 uint32_t LL_RCC_GetMDFClockFreq(uint32_t MDFxSource);
8740 uint32_t LL_RCC_GetOTGPHYClockFreq(uint32_t OTGPHYxSource);
8741 uint32_t LL_RCC_GetOTGPHYCKREFClockFreq(uint32_t OTGPHYxCKREFSource);
8742 uint32_t LL_RCC_GetPSSIClockFreq(uint32_t PSSIxSource);
8743 uint32_t LL_RCC_GetSAIClockFreq(uint32_t SAIxSource);
8744 uint32_t LL_RCC_GetSDMMCClockFreq(uint32_t SDMMCxSource);
8745 uint32_t LL_RCC_GetSPDIFRXClockFreq(uint32_t SPDIFRXxSource);
8746 uint32_t LL_RCC_GetSPIClockFreq(uint32_t SPIxSource);
8747 uint32_t LL_RCC_GetUARTClockFreq(uint32_t UARTxSource);
8748 uint32_t LL_RCC_GetUSARTClockFreq(uint32_t USARTxSource);
8749 uint32_t LL_RCC_GetUSBClockFreq(uint32_t USBxSource);
8750 uint32_t LL_RCC_GetXSPIClockFreq(uint32_t XSPIxSource);
8751
8752 /**
8753 * @}
8754 */
8755
8756 /**
8757 * @}
8758 */
8759
8760
8761 /**
8762 * @}
8763 */
8764 #endif /* defined(RCC) */
8765
8766 /**
8767 * @}
8768 */
8769
8770 #ifdef __cplusplus
8771 }
8772 #endif
8773
8774 #endif /* STM32N6xx_LL_RCC_H */
8775