1 /**
2   ******************************************************************************
3   * @file    stm32n6xx_hal_rcc.h
4   * @author  MCD Application Team
5   * @brief   Header file of RCC HAL 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 in
13   * 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_HAL_RCC_H
21 #define STM32N6xx_HAL_RCC_H
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
27 /* Includes ------------------------------------------------------------------*/
28 #include "stm32n6xx_hal_def.h"
29 #include "stm32n6xx_ll_bus.h"
30 #include "stm32n6xx_ll_rcc.h"
31 
32 /** @addtogroup STM32N6xx_HAL_Driver
33   * @{
34   */
35 
36 /** @addtogroup RCC
37   * @{
38   */
39 
40 /* Exported types ------------------------------------------------------------*/
41 
42 /** @defgroup RCC_Exported_Types RCC Exported Types
43   * @{
44   */
45 
46 /**
47   * @brief  RCC PLL configuration structure definition
48   *         (allow to configure the PLL in integer and fractional modes)
49   *         Only PLLState field is applicable when its value is different from RCC_PLL_ON
50   */
51 typedef struct
52 {
53   uint32_t PLLState;            /*!< The new state of the PLL.
54                                      This parameter can be a value of @ref RCC_PLL_Config            */
55 
56   uint32_t PLLSource;           /*!< PLL entry clock source.
57                                      This parameter must be a value of @ref RCC_PLL_Clock_Source     */
58 
59   uint32_t PLLM;                /*!< Division factor M for PLL VCO input clock.
60                                      This parameter must be a number between Min_Data = 1 and Max_Data = 63    */
61 
62   uint32_t PLLFractional;       /*!< Fractional part of he VCO mulliplication factor.
63                                      This parameter must be a number between Min_Data = 0 and Max_Data = 0xFFFFFF */
64 
65   uint32_t PLLN;                /*!< Multiplication factor N for PLL VCO output clock.
66                                      In integer mode, this parameter must be a number between Min_Data = 10 and Max_Data = 2500.
67                                      In fractional mode, this parameter must be a number between Min_Data = 20 and Max_Data = 500.*/
68 
69   uint32_t PLLP1;               /*!< Division factor P1 for system clock.
70                                      This parameter must be a number between Min_Data = 1 and Max_Data = 7     */
71 
72   uint32_t PLLP2;               /*!< Division factor P2 for system clock.
73                                      This parameter must be a number between Min_Data = 1 and Max_Data = 7     */
74 
75 } RCC_PLLInitTypeDef;
76 
77 /**
78   * @brief  RCC Internal/External Oscillator (HSE, HSI, MSI, LSE and LSI) and PLLs configuration structure definition
79   */
80 typedef struct
81 {
82   uint32_t OscillatorType;       /*!< The oscillators to be configured.
83                                       This parameter can be a value of @ref RCC_Oscillator_Type                   */
84 
85   uint32_t HSEState;             /*!< The new state of the HSE.
86                                       This parameter can be a value of @ref RCC_HSE_Config                        */
87 
88   uint32_t LSEState;             /*!< The new state of the LSE.
89                                       This parameter can be a value of @ref RCC_LSE_Config                        */
90 
91   uint32_t HSIState;             /*!< The new state of the HSI.
92                                       This parameter can be a value of @ref RCC_HSI_Config                        */
93 
94   uint32_t HSIDiv;               /*!< The division factor of the HSI.
95                                       This parameter can be a value of @ref RCC_HSI_Div                           */
96 
97   uint32_t HSICalibrationValue;  /*!< The calibration trimming value.
98                                       This parameter must be a number between Min_Data = 0 and Max_Data = 127     */
99 
100   uint32_t LSIState;             /*!< The new state of the LSI.
101                                       This parameter can be a value of @ref RCC_LSI_Config                        */
102 
103   uint32_t MSIState;             /*!< The new state of the MSI.
104                                       This parameter can be a value of @ref RCC_MSI_Config */
105 
106   uint32_t MSIFrequency;         /*!< The MSI frequency selection.
107                                       This parameter can be a value of @ref RCC_MSI_Frequency */
108 
109   uint32_t MSICalibrationValue;  /*!< The calibration trimming value.
110                                       This parameter must be a number between Min_Data = 0 and Max_Data = 31      */
111 
112   RCC_PLLInitTypeDef PLL1;       /*!< PLL1 structure parameters                                                   */
113 
114   RCC_PLLInitTypeDef PLL2;       /*!< PLL2 structure parameters                                                   */
115 
116   RCC_PLLInitTypeDef PLL3;       /*!< PLL3 structure parameters                                                   */
117 
118   RCC_PLLInitTypeDef PLL4;       /*!< PLL4 structure parameters                                                   */
119 
120 } RCC_OscInitTypeDef;
121 
122 /**
123   * @brief  RCC extended interconnection structure definition
124   */
125 typedef struct
126 {
127   uint32_t  ClockSelection;        /*!< Specifies ICx clock source.
128                                         This parameter can be a value of @ref RCC_IC_Clock_Source */
129 
130   uint32_t  ClockDivider;          /*!< Specifies ICx clock divider.
131                                         This parameter must be a number between Min_Data = 1 and Max_Data = 256 */
132 } RCC_ICInitTypeDef;
133 
134 /**
135   * @brief  RCC System, AHB and APB busses clock configuration structure definition
136   */
137 typedef struct
138 {
139   uint32_t ClockType;             /*!< The clock to be configured.
140                                        This parameter can be a value of @ref RCC_Clock_Type                           */
141 
142   uint32_t CPUCLKSource;          /*!< The clock source used as CPU clock (CPUCLK).
143                                        This parameter can be a value of @ref RCC_CPU_Clock_Source                     */
144 
145   uint32_t SYSCLKSource;          /*!< The clock source used as system bus clock (SYSCLK).
146                                        This parameter can be a value of @ref RCC_System_Bus_Clock_Source              */
147 
148   uint32_t AHBCLKDivider;         /*!< The AHB clock divider for HCLK.
149                                        This clock is derived from the system clock divided by the system clock divider.
150                                        This parameter can be a value of @ref RCC_HCLK_Clock_Source                    */
151 
152   uint32_t APB1CLKDivider;        /*!< The APB1 clock divider for PCLK1.
153                                        This clock is derived from the AHB clock (HCLK).
154                                        This parameter can be a value of @ref RCC_APB1_Clock_Source                    */
155 
156   uint32_t APB2CLKDivider;        /*!< The APB2 clock divider for PCLK2.
157                                        This clock is derived from the AHB clock (HCLK).
158                                        This parameter can be a value of @ref RCC_APB2_Clock_Source                    */
159 
160   uint32_t APB4CLKDivider;        /*!< The APB4 clock divider for PCLK4.
161                                        This clock is derived from the AHB clock (HCLK).
162                                        This parameter can be a value of @ref RCC_APB4_Clock_Source                    */
163 
164   uint32_t APB5CLKDivider;        /*!< The APB5 clock divider for PCLK5.
165                                        This clock is derived from the AHB clock (HCLK).
166                                        This parameter can be a value of @ref RCC_APB5_Clock_Source                    */
167 
168   RCC_ICInitTypeDef IC1Selection; /*!< IC1 parameters.
169                                        This parameter shall be used when IC1 is selected as CPU clock source (sysa_ck)         */
170 
171   RCC_ICInitTypeDef IC2Selection; /*!< IC2 parameters.
172                                        This parameter shall be used when IC2 is selected as system bus clock source (sysb_ck)  */
173 
174   RCC_ICInitTypeDef IC6Selection; /*!< IC6 parameters.
175                                        This parameter shall be used when IC6 is selected as system bus clock source (sysc_ck)  */
176 
177   RCC_ICInitTypeDef IC11Selection; /*!< IC11 parameters.
178                                        This parameter shall be used when IC11 is selected as system bus clock source (sysd_ck) */
179 } RCC_ClkInitTypeDef;
180 
181 /**
182   * @}
183   */
184 
185 /* Exported constants --------------------------------------------------------*/
186 
187 /** @defgroup RCC_Exported_Constants RCC Exported Constants
188   * @{
189   */
190 
191 /** @defgroup RCC_Oscillator_Type  Oscillator Type
192   * @{
193   */
194 #define RCC_OSCILLATORTYPE_NONE        0x00U  /*!< Oscillator configuration unchanged */
195 #define RCC_OSCILLATORTYPE_HSE         0x01U  /*!< HSE selected */
196 #define RCC_OSCILLATORTYPE_HSI         0x02U  /*!< HSI selected */
197 #define RCC_OSCILLATORTYPE_LSE         0x04U  /*!< LSE selected */
198 #define RCC_OSCILLATORTYPE_LSI         0x08U  /*!< LSI selected */
199 #define RCC_OSCILLATORTYPE_MSI         0x10U  /*!< MSI selected */
200 /**
201   * @}
202   */
203 
204 /** @defgroup RCC_HSE_Config  HSE Config
205   * @{
206   */
207 #define RCC_HSE_OFF                    0U                                                       /*!< HSE clock deactivation */
208 #define RCC_HSE_ON                     RCC_CR_HSEON                                             /*!< HSE clock activation */
209 #define RCC_HSE_BYPASS                 (RCC_HSECFGR_HSEBYP | RCC_CR_HSEON)                      /*!< HSE bypass analog clock activation */
210 #define RCC_HSE_BYPASS_DIGITAL         (RCC_HSECFGR_HSEEXT | RCC_HSECFGR_HSEBYP | RCC_CR_HSEON) /*!< HSE bypass digital clock activation */
211 /**
212   * @}
213   */
214 
215 /** @defgroup RCC_LSE_Config  LSE Config
216   * @{
217   */
218 #define RCC_LSE_OFF                    0U                                                       /*!< LSE clock deactivation */
219 #define RCC_LSE_ON                     RCC_CR_LSEON                                             /*!< LSE clock activation */
220 #define RCC_LSE_BYPASS                 (RCC_LSECFGR_LSEBYP | RCC_CR_LSEON)                      /*!< LSE bypass analog clock activation */
221 #define RCC_LSE_BYPASS_DIGITAL         (RCC_LSECFGR_LSEEXT | RCC_LSECFGR_LSEBYP | RCC_CR_LSEON) /*!< LSE bypass digital clock activation */
222 /**
223   * @}
224   */
225 
226 /** @defgroup RCC_HSI_Config  HSI Config
227   * @{
228   */
229 #define RCC_HSI_OFF                    0U                   /*!< HSI clock deactivation */
230 #define RCC_HSI_ON                     RCC_CR_HSION         /*!< HSI clock activation */
231 /**
232   * @}
233   */
234 
235 /** @defgroup RCC_HSI_Div HSI Clock Divider
236   * @{
237   */
238 #define RCC_HSI_DIV1                   LL_RCC_HSI_DIV_1  /*!< HSI clock is not divided */
239 #define RCC_HSI_DIV2                   LL_RCC_HSI_DIV_2  /*!< HSI clock is divided by 2 */
240 #define RCC_HSI_DIV4                   LL_RCC_HSI_DIV_4  /*!< HSI clock is divided by 4 */
241 #define RCC_HSI_DIV8                   LL_RCC_HSI_DIV_8  /*!< HSI clock is divided by 8 */
242 /**
243   * @}
244   */
245 
246 /** @defgroup RCC_HSI_Calibration_Default  HSI Calibration default
247   * @{
248   */
249 #define RCC_HSICALIBRATION_DEFAULT     0U                  /*!< Default HSI calibration trimming value */
250 /**
251   * @}
252   */
253 
254 /** @defgroup RCC_LSI_Config  LSI Config
255   * @{
256   */
257 #define RCC_LSI_OFF                    0U                  /*!< LSI clock deactivation */
258 #define RCC_LSI_ON                     RCC_CR_LSION        /*!< LSI clock activation */
259 /**
260   * @}
261   */
262 
263 /** @defgroup RCC_MSI_Config  MSI Config
264   * @{
265   */
266 #define RCC_MSI_OFF                    0U                  /*!< MSI clock deactivation */
267 #define RCC_MSI_ON                     RCC_CR_MSION        /*!< MSI clock activation */
268 /**
269   * @}
270   */
271 
272 /** @defgroup RCC_MSI_Frequency  MSI Frequency
273   * @{
274   */
275 #define RCC_MSI_FREQ_4MHZ              LL_RCC_MSI_FREQ_4MHZ  /*!< MSI 4MHz selection */
276 #define RCC_MSI_FREQ_16MHZ             LL_RCC_MSI_FREQ_16MHZ /*!< MSI 16MHz selection */
277 /**
278   * @}
279   */
280 
281 /** @defgroup RCC_MSI_Calibration_Default  MSI Calibration default
282   * @{
283   */
284 #define RCC_MSICALIBRATION_DEFAULT     0U                  /*!< Default MSI calibration trimming value */
285 /**
286   * @}
287   */
288 
289 /** @defgroup RCC_PLL_Config  PLL Config
290   * @{
291   */
292 #define RCC_PLL_NONE                   0U                  /*!< PLL configuration unchanged */
293 #define RCC_PLL_OFF                    1U                  /*!< PLL deactivation */
294 #define RCC_PLL_ON                     2U                  /*!< PLL activation */
295 #define RCC_PLL_BYPASS                 3U                  /*!< PLL activation in bypass mode with FREF set as source */
296 /**
297   * @}
298   */
299 
300 /** @defgroup RCC_PLL_Clock_Source  PLL Clock Source
301   * @{
302   */
303 #define RCC_PLLSOURCE_HSI              LL_RCC_PLLSOURCE_HSI      /*!< HSI clock selected as PLL entry clock source */
304 #define RCC_PLLSOURCE_MSI              LL_RCC_PLLSOURCE_MSI      /*!< MSI clock selected as PLL entry clock source */
305 #define RCC_PLLSOURCE_HSE              LL_RCC_PLLSOURCE_HSE      /*!< HSE clock selected as PLL entry clock source */
306 #define RCC_PLLSOURCE_PIN              LL_RCC_PLLSOURCE_I2S_CKIN /*!< External clock I2S_CKIN selected as PLL entry clock source  */
307 /**
308   * @}
309   */
310 
311 /** @defgroup RCC_Clock_Type  Clock Type
312   * @{
313   */
314 #define RCC_CLOCKTYPE_CPUCLK           0x01U         /*!< CPU clock to configure */
315 #define RCC_CLOCKTYPE_SYSCLK           0x02U         /*!< System bus clock to configure for AXI */
316 #define RCC_CLOCKTYPE_HCLK             0x04U         /*!< HCLK to configure for AHB */
317 #define RCC_CLOCKTYPE_PCLK1            0x08U         /*!< PCLK1 to configure for APB1 */
318 #define RCC_CLOCKTYPE_PCLK2            0x10U         /*!< PCLK2 to configure for APB2 */
319 #define RCC_CLOCKTYPE_PCLK4            0x20U         /*!< PCLK4 to configure for APB4 */
320 #define RCC_CLOCKTYPE_PCLK5            0x40U         /*!< PCLK5 to configure for APB5 */
321 /**
322   * @}
323   */
324 
325 /** @defgroup RCC_CPU_Clock_Source  CPU Clock Source
326   * @{
327   */
328 #define RCC_CPUCLKSOURCE_HSI           LL_RCC_CPU_CLKSOURCE_HSI  /*!< HSI selection as CPU clock */
329 #define RCC_CPUCLKSOURCE_MSI           LL_RCC_CPU_CLKSOURCE_MSI  /*!< MSI selection as CPU clock */
330 #define RCC_CPUCLKSOURCE_HSE           LL_RCC_CPU_CLKSOURCE_HSE  /*!< HSE selection as CPU clock */
331 #define RCC_CPUCLKSOURCE_IC1           LL_RCC_CPU_CLKSOURCE_IC1  /*!< IC1 selection as CPU clock */
332 /**
333   * @}
334   */
335 
336 /** @defgroup RCC_CPU_Clock_Source_Status CPU Clock Source Status
337   * @{
338   */
339 #define RCC_CPUCLKSOURCE_STATUS_HSI    LL_RCC_CPU_CLKSOURCE_STATUS_HSI  /*!< HSI used as CPU clock */
340 #define RCC_CPUCLKSOURCE_STATUS_MSI    LL_RCC_CPU_CLKSOURCE_STATUS_MSI  /*!< MSI used as CPU clock */
341 #define RCC_CPUCLKSOURCE_STATUS_HSE    LL_RCC_CPU_CLKSOURCE_STATUS_HSE  /*!< HSE used as CPU clock */
342 #define RCC_CPUCLKSOURCE_STATUS_IC1    LL_RCC_CPU_CLKSOURCE_STATUS_IC1  /*!< IC1 used as CPU clock */
343 /**
344   * @}
345   */
346 
347 /** @defgroup RCC_System_Bus_Clock_Source  System Bus Clock Source
348   * @{
349   */
350 #define RCC_SYSCLKSOURCE_HSI           LL_RCC_SYS_CLKSOURCE_HSI  /*!< HSI selection as system bus clocks */
351 #define RCC_SYSCLKSOURCE_MSI           LL_RCC_SYS_CLKSOURCE_MSI  /*!< MSI selection as system bus clocks */
352 #define RCC_SYSCLKSOURCE_HSE           LL_RCC_SYS_CLKSOURCE_HSE  /*!< HSE selection as system bus clocks */
353 #define RCC_SYSCLKSOURCE_IC2_IC6_IC11  LL_RCC_SYS_CLKSOURCE_IC2_IC6_IC11 /*!< IC2/IC6/IC11 selection as system bus clocks */
354 /**
355   * @}
356   */
357 
358 /** @defgroup RCC_System_Bus_Clock_Source_Status System Bus Clock Source Status
359   * @{
360   */
361 #define RCC_SYSCLKSOURCE_STATUS_HSI          LL_RCC_SYS_CLKSOURCE_STATUS_HSI  /*!< HSI used as system bus clocks */
362 #define RCC_SYSCLKSOURCE_STATUS_MSI          LL_RCC_SYS_CLKSOURCE_STATUS_MSI  /*!< MSI used as system bus clocks */
363 #define RCC_SYSCLKSOURCE_STATUS_HSE          LL_RCC_SYS_CLKSOURCE_STATUS_HSE  /*!< HSE used as system bus clocks */
364 #define RCC_SYSCLKSOURCE_STATUS_IC2_IC6_IC11 LL_RCC_SYS_CLKSOURCE_STATUS_IC2_IC6_IC11  /*!< IC2/IC6/IC11 used as system bus clocks */
365 /**
366   * @}
367   */
368 
369 /** @defgroup RCC_HCLK_Clock_Source  HCLK Clock Source
370   * @{
371   */
372 #define RCC_HCLK_DIV1        LL_RCC_AHB_DIV_1    /*!< HCLK not divided */
373 #define RCC_HCLK_DIV2        LL_RCC_AHB_DIV_2    /*!< HCLK divided by 2 */
374 #define RCC_HCLK_DIV4        LL_RCC_AHB_DIV_4    /*!< HCLK divided by 4 */
375 #define RCC_HCLK_DIV8        LL_RCC_AHB_DIV_8    /*!< HCLK divided by 8 */
376 #define RCC_HCLK_DIV16       LL_RCC_AHB_DIV_16   /*!< HCLK divided by 16 */
377 #define RCC_HCLK_DIV32       LL_RCC_AHB_DIV_32   /*!< HCLK divided by 32 */
378 #define RCC_HCLK_DIV64       LL_RCC_AHB_DIV_64   /*!< HCLK divided by 64 */
379 #define RCC_HCLK_DIV128      LL_RCC_AHB_DIV_128  /*!< HCLK divided by 128 */
380 /**
381   * @}
382   */
383 
384 /** @defgroup RCC_APB1_Clock_Source  APB1 Clock Source
385   * @{
386   */
387 #define RCC_APB1_DIV1        LL_RCC_APB1_DIV_1    /*!< APB1 not divided */
388 #define RCC_APB1_DIV2        LL_RCC_APB1_DIV_2    /*!< APB1 divided by 2 */
389 #define RCC_APB1_DIV4        LL_RCC_APB1_DIV_4    /*!< APB1 divided by 4 */
390 #define RCC_APB1_DIV8        LL_RCC_APB1_DIV_8    /*!< APB1 divided by 8 */
391 #define RCC_APB1_DIV16       LL_RCC_APB1_DIV_16   /*!< APB1 divided by 16 */
392 #define RCC_APB1_DIV32       LL_RCC_APB1_DIV_32   /*!< APB1 divided by 32 */
393 #define RCC_APB1_DIV64       LL_RCC_APB1_DIV_64   /*!< APB1 divided by 64 */
394 #define RCC_APB1_DIV128      LL_RCC_APB1_DIV_128  /*!< APB1 divided by 128 */
395 /**
396   * @}
397   */
398 
399 /** @defgroup RCC_APB2_Clock_Source  APB2 Clock Source
400   * @{
401   */
402 #define RCC_APB2_DIV1        LL_RCC_APB2_DIV_1    /*!< APB2 not divided */
403 #define RCC_APB2_DIV2        LL_RCC_APB2_DIV_2    /*!< APB2 divided by 2 */
404 #define RCC_APB2_DIV4        LL_RCC_APB2_DIV_4    /*!< APB2 divided by 4 */
405 #define RCC_APB2_DIV8        LL_RCC_APB2_DIV_8    /*!< APB2 divided by 8 */
406 #define RCC_APB2_DIV16       LL_RCC_APB2_DIV_16   /*!< APB2 divided by 16 */
407 #define RCC_APB2_DIV32       LL_RCC_APB2_DIV_32   /*!< APB2 divided by 32 */
408 #define RCC_APB2_DIV64       LL_RCC_APB2_DIV_64   /*!< APB2 divided by 64 */
409 #define RCC_APB2_DIV128      LL_RCC_APB2_DIV_128  /*!< APB2 divided by 128 */
410 /**
411   * @}
412   */
413 
414 /** @defgroup RCC_APB4_Clock_Source  APB4 Clock Source
415   * @{
416   */
417 #define RCC_APB4_DIV1        LL_RCC_APB4_DIV_1    /*!< APB4 not divided */
418 #define RCC_APB4_DIV2        LL_RCC_APB4_DIV_2    /*!< APB4 divided by 2 */
419 #define RCC_APB4_DIV4        LL_RCC_APB4_DIV_4    /*!< APB4 divided by 4 */
420 #define RCC_APB4_DIV8        LL_RCC_APB4_DIV_8    /*!< APB4 divided by 8 */
421 #define RCC_APB4_DIV16       LL_RCC_APB4_DIV_16   /*!< APB4 divided by 16 */
422 #define RCC_APB4_DIV32       LL_RCC_APB4_DIV_32   /*!< APB4 divided by 32 */
423 #define RCC_APB4_DIV64       LL_RCC_APB4_DIV_64   /*!< APB4 divided by 64 */
424 #define RCC_APB4_DIV128      LL_RCC_APB4_DIV_128  /*!< APB4 divided by 128 */
425 /**
426   * @}
427   */
428 
429 /** @defgroup RCC_APB5_Clock_Source  APB5 Clock Source
430   * @{
431   */
432 #define RCC_APB5_DIV1        LL_RCC_APB5_DIV_1    /*!< APB5 not divided */
433 #define RCC_APB5_DIV2        LL_RCC_APB5_DIV_2    /*!< APB5 divided by 2 */
434 #define RCC_APB5_DIV4        LL_RCC_APB5_DIV_4    /*!< APB5 divided by 4 */
435 #define RCC_APB5_DIV8        LL_RCC_APB5_DIV_8    /*!< APB5 divided by 8 */
436 #define RCC_APB5_DIV16       LL_RCC_APB5_DIV_16   /*!< APB5 divided by 16 */
437 #define RCC_APB5_DIV32       LL_RCC_APB5_DIV_32   /*!< APB5 divided by 32 */
438 #define RCC_APB5_DIV64       LL_RCC_APB5_DIV_64   /*!< APB5 divided by 64 */
439 #define RCC_APB5_DIV128      LL_RCC_APB5_DIV_128  /*!< APB5 divided by 128 */
440 /**
441   * @}
442   */
443 
444 /** @defgroup RCC_IC_Clock_Source  IC Clock Source
445   * @{
446   */
447 #define RCC_ICCLKSOURCE_PLL1           LL_RCC_ICCLKSOURCE_PLL1 /*!< ICx clock source selection is PLL1 output */
448 #define RCC_ICCLKSOURCE_PLL2           LL_RCC_ICCLKSOURCE_PLL2 /*!< ICx clock source selection is PLL2 output */
449 #define RCC_ICCLKSOURCE_PLL3           LL_RCC_ICCLKSOURCE_PLL3 /*!< ICx clock source selection is PLL3 output */
450 #define RCC_ICCLKSOURCE_PLL4           LL_RCC_ICCLKSOURCE_PLL4 /*!< ICx clock source selection is PLL4 output */
451 /**
452   * @}
453   */
454 
455 /** @defgroup RCC_RTC_Clock_Source  RTC Clock Source
456   * @{
457   */
458 #define RCC_RTCCLKSOURCE_DISABLE       0U                                                      /*!< No clock used as RTC clock */
459 #define RCC_RTCCLKSOURCE_LSE           RCC_CCIPR7_RTCSEL_0                                     /*!< LSE oscillator clock used as RTC clock */
460 #define RCC_RTCCLKSOURCE_LSI           RCC_CCIPR7_RTCSEL_1                                     /*!< LSI oscillator clock used as RTC clock */
461 #define RCC_RTCCLKSOURCE_HSE_DIV1      ((0x00U << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 1 used as RTC clock */
462 #define RCC_RTCCLKSOURCE_HSE_DIV2      ((0x01U << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 2 used as RTC clock */
463 #define RCC_RTCCLKSOURCE_HSE_DIV3      ((0x02U << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 3 used as RTC clock */
464 #define RCC_RTCCLKSOURCE_HSE_DIV4      ((0x03U << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 4 used as RTC clock */
465 #define RCC_RTCCLKSOURCE_HSE_DIV5      ((0x04U << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 5 used as RTC clock */
466 #define RCC_RTCCLKSOURCE_HSE_DIV6      ((0x05U << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 6 used as RTC clock */
467 #define RCC_RTCCLKSOURCE_HSE_DIV7      ((0x06U << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 7 used as RTC clock */
468 #define RCC_RTCCLKSOURCE_HSE_DIV8      ((0x07U << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 8 used as RTC clock */
469 #define RCC_RTCCLKSOURCE_HSE_DIV9      ((0x08U << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 9 used as RTC clock */
470 #define RCC_RTCCLKSOURCE_HSE_DIV10     ((0x09U << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 10 used as RTC clock */
471 #define RCC_RTCCLKSOURCE_HSE_DIV11     ((0x0AU << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 11 used as RTC clock */
472 #define RCC_RTCCLKSOURCE_HSE_DIV12     ((0x0BU << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 12 used as RTC clock */
473 #define RCC_RTCCLKSOURCE_HSE_DIV13     ((0x0CU << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 13 used as RTC clock */
474 #define RCC_RTCCLKSOURCE_HSE_DIV14     ((0x0DU << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 14 used as RTC clock */
475 #define RCC_RTCCLKSOURCE_HSE_DIV15     ((0x0EU << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 15 used as RTC clock */
476 #define RCC_RTCCLKSOURCE_HSE_DIV16     ((0x0FU << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 16 used as RTC clock */
477 #define RCC_RTCCLKSOURCE_HSE_DIV17     ((0x10U << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 17 used as RTC clock */
478 #define RCC_RTCCLKSOURCE_HSE_DIV18     ((0x11U << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 18 used as RTC clock */
479 #define RCC_RTCCLKSOURCE_HSE_DIV19     ((0x12U << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 19 used as RTC clock */
480 #define RCC_RTCCLKSOURCE_HSE_DIV20     ((0x13U << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 20 used as RTC clock */
481 #define RCC_RTCCLKSOURCE_HSE_DIV21     ((0x14U << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 21 used as RTC clock */
482 #define RCC_RTCCLKSOURCE_HSE_DIV22     ((0x15U << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 22 used as RTC clock */
483 #define RCC_RTCCLKSOURCE_HSE_DIV23     ((0x16U << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 23 used as RTC clock */
484 #define RCC_RTCCLKSOURCE_HSE_DIV24     ((0x17U << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 24 used as RTC clock */
485 #define RCC_RTCCLKSOURCE_HSE_DIV25     ((0x18U << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 25 used as RTC clock */
486 #define RCC_RTCCLKSOURCE_HSE_DIV26     ((0x19U << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 26 used as RTC clock */
487 #define RCC_RTCCLKSOURCE_HSE_DIV27     ((0x1AU << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 27 used as RTC clock */
488 #define RCC_RTCCLKSOURCE_HSE_DIV28     ((0x1BU << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 28 used as RTC clock */
489 #define RCC_RTCCLKSOURCE_HSE_DIV29     ((0x1CU << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 29 used as RTC clock */
490 #define RCC_RTCCLKSOURCE_HSE_DIV30     ((0x1DU << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 30 used as RTC clock */
491 #define RCC_RTCCLKSOURCE_HSE_DIV31     ((0x1EU << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 31 used as RTC clock */
492 #define RCC_RTCCLKSOURCE_HSE_DIV32     ((0x1FU << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 32 used as RTC clock */
493 #define RCC_RTCCLKSOURCE_HSE_DIV33     ((0x20U << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 33 used as RTC clock */
494 #define RCC_RTCCLKSOURCE_HSE_DIV34     ((0x21U << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 34 used as RTC clock */
495 #define RCC_RTCCLKSOURCE_HSE_DIV35     ((0x22U << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 35 used as RTC clock */
496 #define RCC_RTCCLKSOURCE_HSE_DIV36     ((0x23U << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 36 used as RTC clock */
497 #define RCC_RTCCLKSOURCE_HSE_DIV37     ((0x24U << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 37 used as RTC clock */
498 #define RCC_RTCCLKSOURCE_HSE_DIV38     ((0x25U << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 38 used as RTC clock */
499 #define RCC_RTCCLKSOURCE_HSE_DIV39     ((0x26U << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 39 used as RTC clock */
500 #define RCC_RTCCLKSOURCE_HSE_DIV40     ((0x27U << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 40 used as RTC clock */
501 #define RCC_RTCCLKSOURCE_HSE_DIV41     ((0x28U << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 41 used as RTC clock */
502 #define RCC_RTCCLKSOURCE_HSE_DIV42     ((0x29U << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 42 used as RTC clock */
503 #define RCC_RTCCLKSOURCE_HSE_DIV43     ((0x2AU << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 43 used as RTC clock */
504 #define RCC_RTCCLKSOURCE_HSE_DIV44     ((0x2BU << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 44 used as RTC clock */
505 #define RCC_RTCCLKSOURCE_HSE_DIV45     ((0x2CU << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 45 used as RTC clock */
506 #define RCC_RTCCLKSOURCE_HSE_DIV46     ((0x2DU << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 46 used as RTC clock */
507 #define RCC_RTCCLKSOURCE_HSE_DIV47     ((0x2EU << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 47 used as RTC clock */
508 #define RCC_RTCCLKSOURCE_HSE_DIV48     ((0x2FU << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 48 used as RTC clock */
509 #define RCC_RTCCLKSOURCE_HSE_DIV49     ((0x30U << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 49 used as RTC clock */
510 #define RCC_RTCCLKSOURCE_HSE_DIV50     ((0x31U << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 50 used as RTC clock */
511 #define RCC_RTCCLKSOURCE_HSE_DIV51     ((0x32U << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 51 used as RTC clock */
512 #define RCC_RTCCLKSOURCE_HSE_DIV52     ((0x33U << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 52 used as RTC clock */
513 #define RCC_RTCCLKSOURCE_HSE_DIV53     ((0x34U << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 53 used as RTC clock */
514 #define RCC_RTCCLKSOURCE_HSE_DIV54     ((0x35U << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 54 used as RTC clock */
515 #define RCC_RTCCLKSOURCE_HSE_DIV55     ((0x36U << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 55 used as RTC clock */
516 #define RCC_RTCCLKSOURCE_HSE_DIV56     ((0x37U << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 56 used as RTC clock */
517 #define RCC_RTCCLKSOURCE_HSE_DIV57     ((0x38U << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 57 used as RTC clock */
518 #define RCC_RTCCLKSOURCE_HSE_DIV58     ((0x39U << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 58 used as RTC clock */
519 #define RCC_RTCCLKSOURCE_HSE_DIV59     ((0x3AU << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 59 used as RTC clock */
520 #define RCC_RTCCLKSOURCE_HSE_DIV60     ((0x3BU << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 60 used as RTC clock */
521 #define RCC_RTCCLKSOURCE_HSE_DIV61     ((0x3CU << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 61 used as RTC clock */
522 #define RCC_RTCCLKSOURCE_HSE_DIV62     ((0x3DU << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 62 used as RTC clock */
523 #define RCC_RTCCLKSOURCE_HSE_DIV63     ((0x3EU << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 63 used as RTC clock */
524 #define RCC_RTCCLKSOURCE_HSE_DIV64     ((0x3FU << RCC_CCIPR7_RTCPRE_Pos) | RCC_CCIPR7_RTCSEL)  /*!< HSE oscillator clock divided by 64 used as RTC clock */
525 /**
526   * @}
527   */
528 
529 /** @defgroup RCC_MCOx_Index  MCOx Index
530   * @{
531   */
532 #define RCC_MCO1                       0U    /*!< Microcontroller Clock Output 1 */
533 #define RCC_MCO2                       1U    /*!< Microcontroller Clock Output 2 */
534 /**
535   * @}
536   */
537 
538 /** @defgroup RCC_MCO1_Clock_Source  MCO1 Clock Source
539   * @{
540   */
541 #define RCC_MCO1SOURCE_HSI             LL_RCC_MCO1SOURCE_HSI     /*!< HSI clock selected as MCO1 source (reset) */
542 #define RCC_MCO1SOURCE_LSE             LL_RCC_MCO1SOURCE_LSE     /*!< LSE clock selected as MCO1 source */
543 #define RCC_MCO1SOURCE_MSI             LL_RCC_MCO1SOURCE_MSI     /*!< MSI clock selected as MCO1 source */
544 #define RCC_MCO1SOURCE_LSI             LL_RCC_MCO1SOURCE_LSI     /*!< HSI clock selected as MCO1 source */
545 #define RCC_MCO1SOURCE_HSE             LL_RCC_MCO1SOURCE_HSE     /*!< HSE clock selected as MCO1 source */
546 #define RCC_MCO1SOURCE_IC5             LL_RCC_MCO1SOURCE_IC5     /*!< IC5 clock selected as MCO1 source */
547 #define RCC_MCO1SOURCE_IC10            LL_RCC_MCO1SOURCE_IC10    /*!< IC10 clock selected as MCO1 source */
548 #define RCC_MCO1SOURCE_SYSA            LL_RCC_MCO1SOURCE_SYSA    /*!< SYSA CPU clock selected as MCO1 source */
549 /**
550   * @}
551   */
552 
553 /** @defgroup RCC_MCO2_Clock_Source  MCO2 Clock Source
554   * @{
555   */
556 #define RCC_MCO2SOURCE_HSI             LL_RCC_MCO2SOURCE_HSI     /*!< HSI clock selected as MCO2 source (reset) */
557 #define RCC_MCO2SOURCE_LSE             LL_RCC_MCO2SOURCE_LSE     /*!< LSE clock selected as MCO2 source */
558 #define RCC_MCO2SOURCE_MSI             LL_RCC_MCO2SOURCE_MSI     /*!< MSI clock selected as MCO2 source */
559 #define RCC_MCO2SOURCE_LSI             LL_RCC_MCO2SOURCE_LSI     /*!< LSI clock selected as MCO2 source */
560 #define RCC_MCO2SOURCE_HSE             LL_RCC_MCO2SOURCE_HSE     /*!< HSE clock selected as MCO2 source */
561 #define RCC_MCO2SOURCE_IC15            LL_RCC_MCO2SOURCE_IC15    /*!< IC15 clock selected as MCO2 source */
562 #define RCC_MCO2SOURCE_IC20            LL_RCC_MCO2SOURCE_IC20    /*!< IC20 clock selected as MCO2 source */
563 #define RCC_MCO2SOURCE_SYSB            LL_RCC_MCO2SOURCE_SYSB    /*!< SYSB bus clock selected as MCO2 source */
564 /**
565   * @}
566   */
567 
568 /** @defgroup RCC_MCOx_Clock_Prescaler  MCOx Clock Prescaler
569   * @{
570   */
571 #define RCC_MCODIV_1                   LL_RCC_MCO1_DIV_1   /*!< MCO divided by 1 */
572 #define RCC_MCODIV_2                   LL_RCC_MCO1_DIV_2   /*!< MCO divided by 2 */
573 #define RCC_MCODIV_3                   LL_RCC_MCO1_DIV_3   /*!< MCO divided by 3 */
574 #define RCC_MCODIV_4                   LL_RCC_MCO1_DIV_4   /*!< MCO divided by 4 */
575 #define RCC_MCODIV_5                   LL_RCC_MCO1_DIV_5   /*!< MCO divided by 5 */
576 #define RCC_MCODIV_6                   LL_RCC_MCO1_DIV_6   /*!< MCO divided by 6 */
577 #define RCC_MCODIV_7                   LL_RCC_MCO1_DIV_7   /*!< MCO divided by 7 */
578 #define RCC_MCODIV_8                   LL_RCC_MCO1_DIV_8   /*!< MCO divided by 8 */
579 #define RCC_MCODIV_9                   LL_RCC_MCO1_DIV_9   /*!< MCO divided by 9 */
580 #define RCC_MCODIV_10                  LL_RCC_MCO1_DIV_10  /*!< MCO divided by 10 */
581 #define RCC_MCODIV_11                  LL_RCC_MCO1_DIV_11  /*!< MCO divided by 11 */
582 #define RCC_MCODIV_12                  LL_RCC_MCO1_DIV_12  /*!< MCO divided by 12 */
583 #define RCC_MCODIV_13                  LL_RCC_MCO1_DIV_13  /*!< MCO divided by 13 */
584 #define RCC_MCODIV_14                  LL_RCC_MCO1_DIV_14  /*!< MCO divided by 14 */
585 #define RCC_MCODIV_15                  LL_RCC_MCO1_DIV_15  /*!< MCO divided by 15 */
586 #define RCC_MCODIV_16                  LL_RCC_MCO1_DIV_16  /*!< MCO divided by 16 (reset) */
587 /**
588   * @}
589   */
590 
591 /** @defgroup RCC_Interrupt  Interrupt
592   * @{
593   */
594 #define RCC_IT_LSIRDY                  RCC_CIER_LSIRDYIE   /*!< LSI Ready Interrupt */
595 #define RCC_IT_LSERDY                  RCC_CIER_LSERDYIE   /*!< LSE Ready Interrupt */
596 #define RCC_IT_MSIRDY                  RCC_CIER_MSIRDYIE   /*!< MSI Ready Interrupt */
597 #define RCC_IT_HSIRDY                  RCC_CIER_HSIRDYIE   /*!< HSI Ready Interrupt */
598 #define RCC_IT_HSERDY                  RCC_CIER_HSERDYIE   /*!< HSE Ready Interrupt */
599 #define RCC_IT_PLL1RDY                 RCC_CIER_PLL1RDYIE  /*!< PLL1 Ready Interrupt */
600 #define RCC_IT_PLL2RDY                 RCC_CIER_PLL2RDYIE  /*!< PLL2 Ready Interrupt */
601 #define RCC_IT_PLL3RDY                 RCC_CIER_PLL3RDYIE  /*!< PLL3 Ready Interrupt */
602 #define RCC_IT_PLL4RDY                 RCC_CIER_PLL4RDYIE  /*!< PLL4 Ready Interrupt */
603 #define RCC_IT_LSECSS                  RCC_CIER_LSECSSIE   /*!< LSE Clock Security System Interrupt */
604 #define RCC_IT_HSECSS                  RCC_CIER_HSECSSIE   /*!< HSE Clock Security System Interrupt */
605 #define RCC_IT_WKUP                    RCC_CIER_WKUPIE     /*!< CPU Wakeup Interrupt */
606 /**
607   * @}
608   */
609 
610 /** @defgroup RCC_Flag  Flag
611   *        Elements values convention: XXXYYYYYb
612   *           - YYYYY  : Flag position in the register
613   *           - XXX  : Register index
614   *                 - 001: SR register
615   *                 - 010: LSECFGR register
616   *                 - 011: HSECFGR register
617   *                 - 100: RSR register
618   * @{
619   */
620 /* Flags in the SR register */
621 #define RCC_FLAG_LSIRDY                ((RCC_SR_REG_INDEX << 5U) | RCC_SR_LSIRDY_Pos)   /*!< LSI ready flag */
622 #define RCC_FLAG_LSERDY                ((RCC_SR_REG_INDEX << 5U) | RCC_SR_LSERDY_Pos)   /*!< LSE ready flag */
623 #define RCC_FLAG_HSIRDY                ((RCC_SR_REG_INDEX << 5U) | RCC_SR_HSIRDY_Pos)   /*!< HSI ready flag */
624 #define RCC_FLAG_MSIRDY                ((RCC_SR_REG_INDEX << 5U) | RCC_SR_MSIRDY_Pos)   /*!< MSI ready flag */
625 #define RCC_FLAG_HSERDY                ((RCC_SR_REG_INDEX << 5U) | RCC_SR_HSERDY_Pos)   /*!< HSE ready flag */
626 #define RCC_FLAG_PLL1RDY               ((RCC_SR_REG_INDEX << 5U) | RCC_SR_PLL1RDY_Pos)  /*!< PLL1 ready flag */
627 #define RCC_FLAG_PLL2RDY               ((RCC_SR_REG_INDEX << 5U) | RCC_SR_PLL2RDY_Pos)  /*!< PLL2 ready flag */
628 #define RCC_FLAG_PLL3RDY               ((RCC_SR_REG_INDEX << 5U) | RCC_SR_PLL3RDY_Pos)  /*!< PLL3 ready flag */
629 #define RCC_FLAG_PLL4RDY               ((RCC_SR_REG_INDEX << 5U) | RCC_SR_PLL4RDY_Pos)  /*!< PLL4 ready flag */
630 
631 /* Flags in the LSECFGR register */
632 #define RCC_FLAG_LSECSSD               ((RCC_LSECFGR_REG_INDEX << 5U) | RCC_LSECFGR_LSECSSD_Pos) /*!< LSE Clock Security System failure detection flag */
633 
634 /* Flags in the HSECFGR register */
635 #define RCC_FLAG_HSECSSD               ((RCC_HSECFGR_REG_INDEX << 5U) | RCC_HSECFGR_HSECSSD_Pos) /*!< HSE Clock Security System failure detection flag */
636 
637 /* Flags in the RSR register */
638 #define RCC_FLAG_LCKRST                ((RCC_RSR_REG_INDEX << 5U) | RCC_RSR_LCKRSTF_Pos)  /*!< CPU Lockup reset flag */
639 #define RCC_FLAG_BORRST                ((RCC_RSR_REG_INDEX << 5U) | RCC_RSR_BORRSTF_Pos)  /*!< BOR reset flag */
640 #define RCC_FLAG_PINRST                ((RCC_RSR_REG_INDEX << 5U) | RCC_RSR_PINRSTF_Pos)  /*!< PIN reset flag */
641 #define RCC_FLAG_PORRST                ((RCC_RSR_REG_INDEX << 5U) | RCC_RSR_PORRSTF_Pos)  /*!< Power-on reset flag */
642 #define RCC_FLAG_SFTRST                ((RCC_RSR_REG_INDEX << 5U) | RCC_RSR_SFTRSTF_Pos)  /*!< Software Reset flag */
643 #define RCC_FLAG_IWDGRST               ((RCC_RSR_REG_INDEX << 5U) | RCC_RSR_IWDGRSTF_Pos) /*!< Independent Watchdog reset flag */
644 #define RCC_FLAG_WWDGRST               ((RCC_RSR_REG_INDEX << 5U) | RCC_RSR_WWDGRSTF_Pos) /*!< Window watchdog reset flag */
645 #define RCC_FLAG_LPWRRST               ((RCC_RSR_REG_INDEX << 5U) | RCC_RSR_LPWRRSTF_Pos) /*!< Low-Power reset flag */
646 
647 /**
648   * @}
649   */
650 
651 /** @defgroup RCC_LSEDrive_Config LSE Drive Config
652   * @{
653   */
654 #define RCC_LSEDRIVE_LOW               LL_RCC_LSEDRIVE_LOW         /*!< LSE low drive capability */
655 #define RCC_LSEDRIVE_MEDIUMLOW         LL_RCC_LSEDRIVE_MEDIUMLOW   /*!< LSE medium low drive capability */
656 #define RCC_LSEDRIVE_MEDIUMHIGH        LL_RCC_LSEDRIVE_MEDIUMHIGH  /*!< LSE medium high drive capability */
657 #define RCC_LSEDRIVE_HIGH              LL_RCC_LSEDRIVE_HIGH        /*!< LSE high drive capability */
658 /**
659   * @}
660   */
661 
662 /** @defgroup RCC_Stop_WakeUpClock  Stop WakeUp Clock
663   * @{
664   */
665 #define RCC_STOP_WAKEUPCLOCK_HSI       LL_RCC_SYSWAKEUP_CLKSOURCE_HSI  /*!< HSI selected as wake up system clock from system Stop (default after reset) */
666 #define RCC_STOP_WAKEUPCLOCK_MSI       LL_RCC_SYSWAKEUP_CLKSOURCE_MSI  /*!< MSI selected as wake up system clock from system Stop */
667 /**
668   * @}
669   */
670 
671 
672 /** @defgroup RCC_items RCC items
673   * @brief RCC items to configure attributes on
674   * @{
675   */
676 #define RCC_ITEM_LSI           (RCC_ITEM_GROUP_OSC | RCC_SECCFGR0_LSISEC)
677 #define RCC_ITEM_LSE           (RCC_ITEM_GROUP_OSC | RCC_SECCFGR0_LSESEC)
678 #define RCC_ITEM_MSI           (RCC_ITEM_GROUP_OSC | RCC_SECCFGR0_MSISEC)
679 #define RCC_ITEM_HSI           (RCC_ITEM_GROUP_OSC | RCC_SECCFGR0_HSISEC)
680 #define RCC_ITEM_HSE           (RCC_ITEM_GROUP_OSC | RCC_SECCFGR0_HSESEC)
681 #define RCC_ITEM_PLL1          (RCC_ITEM_GROUP_PLL | RCC_SECCFGR1_PLL1SEC)
682 #define RCC_ITEM_PLL2          (RCC_ITEM_GROUP_PLL | RCC_SECCFGR1_PLL2SEC)
683 #define RCC_ITEM_PLL3          (RCC_ITEM_GROUP_PLL | RCC_SECCFGR1_PLL3SEC)
684 #define RCC_ITEM_PLL4          (RCC_ITEM_GROUP_PLL | RCC_SECCFGR1_PLL4SEC)
685 #define RCC_ITEM_IC1           (RCC_ITEM_GROUP_IC | RCC_SECCFGR2_IC1SEC)
686 #define RCC_ITEM_IC2           (RCC_ITEM_GROUP_IC | RCC_SECCFGR2_IC2SEC)
687 #define RCC_ITEM_IC3           (RCC_ITEM_GROUP_IC | RCC_SECCFGR2_IC3SEC)
688 #define RCC_ITEM_IC4           (RCC_ITEM_GROUP_IC | RCC_SECCFGR2_IC4SEC)
689 #define RCC_ITEM_IC5           (RCC_ITEM_GROUP_IC | RCC_SECCFGR2_IC5SEC)
690 #define RCC_ITEM_IC6           (RCC_ITEM_GROUP_IC | RCC_SECCFGR2_IC6SEC)
691 #define RCC_ITEM_IC7           (RCC_ITEM_GROUP_IC | RCC_SECCFGR2_IC7SEC)
692 #define RCC_ITEM_IC8           (RCC_ITEM_GROUP_IC | RCC_SECCFGR2_IC8SEC)
693 #define RCC_ITEM_IC9           (RCC_ITEM_GROUP_IC | RCC_SECCFGR2_IC9SEC)
694 #define RCC_ITEM_IC10          (RCC_ITEM_GROUP_IC | RCC_SECCFGR2_IC10SEC)
695 #define RCC_ITEM_IC11          (RCC_ITEM_GROUP_IC | RCC_SECCFGR2_IC11SEC)
696 #define RCC_ITEM_IC12          (RCC_ITEM_GROUP_IC | RCC_SECCFGR2_IC12SEC)
697 #define RCC_ITEM_IC13          (RCC_ITEM_GROUP_IC | RCC_SECCFGR2_IC13SEC)
698 #define RCC_ITEM_IC14          (RCC_ITEM_GROUP_IC | RCC_SECCFGR2_IC14SEC)
699 #define RCC_ITEM_IC15          (RCC_ITEM_GROUP_IC | RCC_SECCFGR2_IC15SEC)
700 #define RCC_ITEM_IC16          (RCC_ITEM_GROUP_IC | RCC_SECCFGR2_IC16SEC)
701 #define RCC_ITEM_IC17          (RCC_ITEM_GROUP_IC | RCC_SECCFGR2_IC17SEC)
702 #define RCC_ITEM_IC18          (RCC_ITEM_GROUP_IC | RCC_SECCFGR2_IC18SEC)
703 #define RCC_ITEM_IC19          (RCC_ITEM_GROUP_IC | RCC_SECCFGR2_IC19SEC)
704 #define RCC_ITEM_IC20          (RCC_ITEM_GROUP_IC | RCC_SECCFGR2_IC20SEC)
705 #define RCC_ITEM_MOD           (RCC_ITEM_GROUP_SYSCFG | RCC_SECCFGR3_MODSEC)
706 #define RCC_ITEM_SYS           (RCC_ITEM_GROUP_SYSCFG | RCC_SECCFGR3_SYSSEC)
707 #define RCC_ITEM_BUS           (RCC_ITEM_GROUP_SYSCFG | RCC_SECCFGR3_BUSSEC)
708 #define RCC_ITEM_PER           (RCC_ITEM_GROUP_SYSCFG | RCC_SECCFGR3_PERSEC)
709 #define RCC_ITEM_INT           (RCC_ITEM_GROUP_SYSCFG | RCC_SECCFGR3_INTSEC)
710 #define RCC_ITEM_RST           (RCC_ITEM_GROUP_SYSCFG | RCC_SECCFGR3_RSTSEC)
711 #define RCC_ITEM_ACLKN         (RCC_ITEM_GROUP_BUS | RCC_SECCFGR4_ACLKNSEC)
712 #define RCC_ITEM_ACLKNC        (RCC_ITEM_GROUP_BUS | RCC_SECCFGR4_ACLKNCSEC)
713 #define RCC_ITEM_AHBM          (RCC_ITEM_GROUP_BUS | RCC_SECCFGR4_AHBMSEC)
714 #define RCC_ITEM_AHB1          (RCC_ITEM_GROUP_BUS | RCC_SECCFGR4_AHB1SEC)
715 #define RCC_ITEM_AHB2          (RCC_ITEM_GROUP_BUS | RCC_SECCFGR4_AHB2SEC)
716 #define RCC_ITEM_AHB3          (RCC_ITEM_GROUP_BUS | RCC_SECCFGR4_AHB3SEC)
717 #define RCC_ITEM_AHB4          (RCC_ITEM_GROUP_BUS | RCC_SECCFGR4_AHB4SEC)
718 #define RCC_ITEM_AHB5          (RCC_ITEM_GROUP_BUS | RCC_SECCFGR4_AHB5SEC)
719 #define RCC_ITEM_APB1          (RCC_ITEM_GROUP_BUS | RCC_SECCFGR4_APB1SEC)
720 #define RCC_ITEM_APB2          (RCC_ITEM_GROUP_BUS | RCC_SECCFGR4_APB2SEC)
721 #define RCC_ITEM_APB3          (RCC_ITEM_GROUP_BUS | RCC_SECCFGR4_APB3SEC)
722 #define RCC_ITEM_APB4          (RCC_ITEM_GROUP_BUS | RCC_SECCFGR4_APB4SEC)
723 #define RCC_ITEM_APB5          (RCC_ITEM_GROUP_BUS | RCC_SECCFGR4_APB5SEC)
724 #define RCC_ITEM_NOC           (RCC_ITEM_GROUP_BUS | RCC_SECCFGR4_NOCSEC)
725 #define RCC_ITEM_AXISRAM3      (RCC_ITEM_GROUP_MEM | RCC_PUBCFGR5_AXISRAM3PUB)
726 #define RCC_ITEM_AXISRAM4      (RCC_ITEM_GROUP_MEM | RCC_PUBCFGR5_AXISRAM4PUB)
727 #define RCC_ITEM_AXISRAM5      (RCC_ITEM_GROUP_MEM | RCC_PUBCFGR5_AXISRAM5PUB)
728 #define RCC_ITEM_AXISRAM6      (RCC_ITEM_GROUP_MEM | RCC_PUBCFGR5_AXISRAM6PUB)
729 #define RCC_ITEM_AHBSRAM1      (RCC_ITEM_GROUP_MEM | RCC_PUBCFGR5_AHBSRAM1PUB)
730 #define RCC_ITEM_AHBSRAM2      (RCC_ITEM_GROUP_MEM | RCC_PUBCFGR5_AHBSRAM2PUB)
731 #define RCC_ITEM_BKPSRAM       (RCC_ITEM_GROUP_MEM | RCC_PUBCFGR5_BKPSRAMPUB)
732 #define RCC_ITEM_AXISRAM1      (RCC_ITEM_GROUP_MEM | RCC_PUBCFGR5_AXISRAM1PUB)
733 #define RCC_ITEM_AXISRAM2      (RCC_ITEM_GROUP_MEM | RCC_PUBCFGR5_AXISRAM2PUB)
734 #define RCC_ITEM_FLEXRAM       (RCC_ITEM_GROUP_MEM | RCC_PUBCFGR5_FLEXRAMPUB)
735 #if defined(CACHEAXI)
736 #define RCC_ITEM_CACHEAXIRAM   (RCC_ITEM_GROUP_MEM | RCC_PUBCFGR5_CACHEAXIRAMPUB)
737 #else
738 #define RCC_ITEM_CACHEAXIRAM   (RCC_ITEM_GROUP_MEM)
739 #endif /* defined(CACHEAXI) */
740 #define RCC_ITEM_VENCRAM       (RCC_ITEM_GROUP_MEM | RCC_PUBCFGR5_VENCRAMPUB)
741 
742 #define RCC_ITEM_ALL           (RCC_ITEM_LSI | RCC_ITEM_LSE | RCC_ITEM_MSI | RCC_ITEM_HSI | RCC_ITEM_HSE | \
743                                 RCC_ITEM_PLL1 | RCC_ITEM_PLL2 | RCC_ITEM_PLL3 | RCC_ITEM_PLL4 | RCC_ITEM_IC1 | \
744                                 RCC_ITEM_IC2 | RCC_ITEM_IC3 | RCC_ITEM_IC4 | RCC_ITEM_IC5 | RCC_ITEM_IC6 | \
745                                 RCC_ITEM_IC7 | RCC_ITEM_IC8 | RCC_ITEM_IC9 | RCC_ITEM_IC10 | RCC_ITEM_IC11 | \
746                                 RCC_ITEM_IC12 | RCC_ITEM_IC13 | RCC_ITEM_IC14 | RCC_ITEM_IC15 | RCC_ITEM_IC16 | \
747                                 RCC_ITEM_IC17 | RCC_ITEM_IC18 | RCC_ITEM_IC19 | RCC_ITEM_IC20 | RCC_ITEM_MOD | \
748                                 RCC_ITEM_SYS | RCC_ITEM_BUS | RCC_ITEM_PER | RCC_ITEM_INT | RCC_ITEM_RST | \
749                                 RCC_ITEM_ACLKN | RCC_ITEM_ACLKNC | RCC_ITEM_AHBM | RCC_ITEM_AHB1 | RCC_ITEM_AHB2 | \
750                                 RCC_ITEM_AHB3 | RCC_ITEM_AHB4 | RCC_ITEM_AHB5 | RCC_ITEM_APB1 | RCC_ITEM_APB2 | \
751                                 RCC_ITEM_APB3 | RCC_ITEM_APB4 | RCC_ITEM_APB5 | RCC_ITEM_NOC | RCC_ITEM_AXISRAM3 | \
752                                 RCC_ITEM_AXISRAM4 | RCC_ITEM_AXISRAM5 | RCC_ITEM_AXISRAM6 | RCC_ITEM_AHBSRAM1 | \
753                                 RCC_ITEM_AHBSRAM2 | RCC_ITEM_BKPSRAM | RCC_ITEM_AXISRAM1 | RCC_ITEM_AXISRAM2 | \
754                                 RCC_ITEM_FLEXRAM | RCC_ITEM_CACHEAXIRAM | RCC_ITEM_VENCRAM)
755 
756 #define RCC_ITEM_ALL_CLK       (RCC_ITEM_LSI | RCC_ITEM_LSE | RCC_ITEM_MSI | RCC_ITEM_HSI | RCC_ITEM_HSE)
757 #define RCC_ITEM_ALL_PLL       (RCC_ITEM_PLL1 | RCC_ITEM_PLL2 | RCC_ITEM_PLL3 | RCC_ITEM_PLL4)
758 #define RCC_ITEM_ALL_ICx       (RCC_ITEM_IC1 | RCC_ITEM_IC2 | RCC_ITEM_IC3 | RCC_ITEM_IC4 | RCC_ITEM_IC5 | \
759                                 RCC_ITEM_IC6 | RCC_ITEM_IC7 | RCC_ITEM_IC8 | RCC_ITEM_IC9 | RCC_ITEM_IC10 | \
760                                 RCC_ITEM_IC11 | RCC_ITEM_IC12 | RCC_ITEM_IC13 | RCC_ITEM_IC14 | RCC_ITEM_IC15 | \
761                                 RCC_ITEM_IC16 | RCC_ITEM_IC17 | RCC_ITEM_IC18 | RCC_ITEM_IC19 | RCC_ITEM_IC20)
762 #define RCC_ITEM_ALL_SYSCFG    (RCC_ITEM_MOD | RCC_ITEM_SYS | RCC_ITEM_BUS | RCC_ITEM_PER | RCC_ITEM_INT | \
763                                 RCC_ITEM_RST)
764 #define RCC_ITEM_ALL_BUS       (RCC_ITEM_ACLKN | RCC_ITEM_ACLKNC | RCC_ITEM_AHBM | RCC_ITEM_AHB1 | RCC_ITEM_AHB2 | \
765                                 RCC_ITEM_AHB3 | RCC_ITEM_AHB4 | RCC_ITEM_AHB5 | RCC_ITEM_APB1 | RCC_ITEM_APB2 | \
766                                 RCC_ITEM_APB3 | RCC_ITEM_APB4 | RCC_ITEM_APB5 | RCC_ITEM_NOC)
767 #define RCC_ITEM_ALL_MEM       (RCC_ITEM_AXISRAM3 | RCC_ITEM_AXISRAM4 | RCC_ITEM_AXISRAM5 | RCC_ITEM_AXISRAM6 | \
768                                 RCC_ITEM_AHBSRAM1 | RCC_ITEM_AHBSRAM2 | RCC_ITEM_BKPSRAM | RCC_ITEM_AXISRAM1 | \
769                                 RCC_ITEM_AXISRAM2 | RCC_ITEM_FLEXRAM | RCC_ITEM_CACHEAXIRAM | RCC_ITEM_VENCRAM)
770 /**
771   * @}
772   */
773 
774 /** @defgroup RCC_attributes RCC attributes
775   * @brief RCC privilege/non-privilege, secure/non-secure, public/non-public and lock attributes
776   * @note Configuration registers of a SECURED item are only accessible from secure state.
777   * @note Configuration registers of a PRIVILEGED item are only writable from privileged state.
778   * @note Configuration registers of a PUBLIC and SECURED item are visible from NS (and S) software.
779   * @note Setting an item to LOCKED, definitively locks the SEC and PRIV attribute setting for this item.
780   * @{
781   */
782 #define RCC_ATTR_PRIV          (RCC_ATTR_PRIV_MASK | 0x01U)    /*!< attribute is privileged    */
783 #define RCC_ATTR_NPRIV         RCC_ATTR_PRIV_MASK              /*!< attribute is unprivileged  */
784 
785 #define RCC_ATTR_SEC           (RCC_ATTR_SEC_MASK | 0x04U)     /*!< attribute is secure        */
786 #define RCC_ATTR_NSEC          RCC_ATTR_SEC_MASK               /*!< attribute is non-secure    */
787 
788 #define RCC_ATTR_PUB           (RCC_ATTR_PUB_MASK | 0x10U)     /*!< attribute is public        */
789 #define RCC_ATTR_NPUB          RCC_ATTR_PUB_MASK               /*!< attribute is not public    */
790 
791 #define RCC_ATTR_LOCK          (RCC_ATTR_LOCK_MASK | 0x40U)    /*!< attribute is locked        */
792 #define RCC_ATTR_NLOCK         RCC_ATTR_LOCK_MASK              /*!< attribute is not locked    */
793 /**
794   * @}
795   */
796 
797 /**
798   * @}
799   */
800 
801 /* Exported macros -----------------------------------------------------------*/
802 
803 /** @defgroup RCC_Exported_Macros RCC Exported Macros
804   * @{
805   */
806 
807 /** @defgroup RCC_Embedded_Mem_Clock_Enable_Disable Embedded Memory Clock Enable Disable
808   * @brief  Enable or disable the Embedded Memory clock.
809   * @note   After reset, some embedded memory clocks are disabled
810   *         and the application software has to enable these memory clocks before using them.
811   * @{
812   */
813 
814 #define __HAL_RCC_AXISRAM1_MEM_CLK_ENABLE()     LL_MEM_EnableClock(LL_MEM_AXISRAM1)
815 #define __HAL_RCC_AXISRAM1_MEM_CLK_DISABLE()    LL_MEM_DisableClock(LL_MEM_AXISRAM1)
816 
817 #define __HAL_RCC_AXISRAM2_MEM_CLK_ENABLE()     LL_MEM_EnableClock(LL_MEM_AXISRAM2)
818 #define __HAL_RCC_AXISRAM2_MEM_CLK_DISABLE()    LL_MEM_DisableClock(LL_MEM_AXISRAM2)
819 
820 #define __HAL_RCC_AXISRAM3_MEM_CLK_ENABLE()     LL_MEM_EnableClock(LL_MEM_AXISRAM3)
821 #define __HAL_RCC_AXISRAM3_MEM_CLK_DISABLE()    LL_MEM_DisableClock(LL_MEM_AXISRAM3)
822 
823 #define __HAL_RCC_AXISRAM4_MEM_CLK_ENABLE()     LL_MEM_EnableClock(LL_MEM_AXISRAM4)
824 #define __HAL_RCC_AXISRAM4_MEM_CLK_DISABLE()    LL_MEM_DisableClock(LL_MEM_AXISRAM4)
825 
826 #define __HAL_RCC_AXISRAM5_MEM_CLK_ENABLE()     LL_MEM_EnableClock(LL_MEM_AXISRAM5)
827 #define __HAL_RCC_AXISRAM5_MEM_CLK_DISABLE()    LL_MEM_DisableClock(LL_MEM_AXISRAM5)
828 
829 #define __HAL_RCC_AXISRAM6_MEM_CLK_ENABLE()     LL_MEM_EnableClock(LL_MEM_AXISRAM6)
830 #define __HAL_RCC_AXISRAM6_MEM_CLK_DISABLE()    LL_MEM_DisableClock(LL_MEM_AXISRAM6)
831 
832 #define __HAL_RCC_AHBSRAM1_MEM_CLK_ENABLE()     LL_MEM_EnableClock(LL_MEM_AHBSRAM1)
833 #define __HAL_RCC_AHBSRAM1_MEM_CLK_DISABLE()    LL_MEM_DisableClock(LL_MEM_AHBSRAM1)
834 
835 #define __HAL_RCC_AHBSRAM2_MEM_CLK_ENABLE()     LL_MEM_EnableClock(LL_MEM_AHBSRAM2)
836 #define __HAL_RCC_AHBSRAM2_MEM_CLK_DISABLE()    LL_MEM_DisableClock(LL_MEM_AHBSRAM2)
837 
838 #define __HAL_RCC_BKPSRAM_MEM_CLK_ENABLE()      LL_MEM_EnableClock(LL_MEM_BKPSRAM)
839 #define __HAL_RCC_BKPSRAM_MEM_CLK_DISABLE()     LL_MEM_DisableClock(LL_MEM_BKPSRAM)
840 
841 #define __HAL_RCC_FLEXRAM_MEM_CLK_ENABLE()      LL_MEM_EnableClock(LL_MEM_FLEXRAM)
842 #define __HAL_RCC_FLEXRAM_MEM_CLK_DISABLE()     LL_MEM_DisableClock(LL_MEM_FLEXRAM)
843 
844 #define __HAL_RCC_CACHEAXIRAM_MEM_CLK_ENABLE()  LL_MEM_EnableClock(LL_MEM_CACHEAXIRAM)
845 #define __HAL_RCC_CACHEAXIRAM_MEM_CLK_DISABLE() LL_MEM_DisableClock(LL_MEM_CACHEAXIRAM)
846 
847 #define __HAL_RCC_VENCRAM_MEM_CLK_ENABLE()      LL_MEM_EnableClock(LL_MEM_VENCRAM)
848 #define __HAL_RCC_VENCRAM_MEM_CLK_DISABLE()     LL_MEM_DisableClock(LL_MEM_VENCRAM)
849 
850 /**
851   * @}
852   */
853 
854 /** @defgroup RCC_AHB1_Peripheral_Clock_Enable_Disable AHB1 Peripheral Clock Enable Disable
855   * @brief  Enable or disable the AHB1 peripheral clock.
856   * @note   After reset, the peripheral clock (used for registers read/write access)
857   *         is disabled and the application software has to enable this clock before
858   *         using it.
859   * @{
860   */
861 
862 #define __HAL_RCC_ADC12_CLK_ENABLE()   LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_ADC12)
863 #define __HAL_RCC_ADC12_CLK_DISABLE()  LL_AHB1_GRP1_DisableClock(LL_AHB1_GRP1_PERIPH_ADC12)
864 
865 #define __HAL_RCC_GPDMA1_CLK_ENABLE()  LL_AHB1_GRP1_EnableClock(LL_AHB1_GRP1_PERIPH_GPDMA1)
866 #define __HAL_RCC_GPDMA1_CLK_DISABLE() LL_AHB1_GRP1_DisableClock(LL_AHB1_GRP1_PERIPH_GPDMA1)
867 
868 /**
869   * @}
870   */
871 
872 /** @defgroup RCC_AHB2_Peripheral_Clock_Enable_Disable AHB2 Peripheral Clock Enable Disable
873   * @brief  Enable or disable the AHB2 peripheral clock.
874   * @note   After reset, the peripheral clock (used for registers read/write access)
875   *         is disabled and the application software has to enable this clock before
876   *         using it.
877   * @{
878   */
879 
880 #define __HAL_RCC_ADF1_CLK_ENABLE()    LL_AHB2_GRP1_EnableClock(LL_AHB2_GRP1_PERIPH_ADF1)
881 #define __HAL_RCC_ADF1_CLK_DISABLE()   LL_AHB2_GRP1_DisableClock(LL_AHB2_GRP1_PERIPH_ADF1)
882 
883 #define __HAL_RCC_MDF1_CLK_ENABLE()    LL_AHB2_GRP1_EnableClock(LL_AHB2_GRP1_PERIPH_MDF1)
884 #define __HAL_RCC_MDF1_CLK_DISABLE()   LL_AHB2_GRP1_DisableClock(LL_AHB2_GRP1_PERIPH_MDF1)
885 
886 #define __HAL_RCC_RAMCFG_CLK_ENABLE()  LL_AHB2_GRP1_EnableClock(LL_AHB2_GRP1_PERIPH_RAMCFG)
887 #define __HAL_RCC_RAMCFG_CLK_DISABLE() LL_AHB2_GRP1_DisableClock(LL_AHB2_GRP1_PERIPH_RAMCFG)
888 
889 /**
890   * @}
891   */
892 
893 /** @defgroup RCC_AHB3_Peripheral_Clock_Enable_Disable AHB3 Peripheral Clock Enable Disable
894   * @brief  Enable or disable the AHB3 peripheral clock.
895   * @note   After reset, the peripheral clock (used for registers read/write access)
896   *         is disabled and the application software has to enable this clock before
897   *         using it.
898   * @note   IAC, RIFSC and RISAF peripheral clocks are always security-protected and thus hidden
899   *         to the non-secure application.
900   * @{
901   */
902 
903 #if defined(CRYP)
904 #define __HAL_RCC_CRYP_CLK_ENABLE()    LL_AHB3_GRP1_EnableClock(LL_AHB3_GRP1_PERIPH_CRYP)
905 #define __HAL_RCC_CRYP_CLK_DISABLE()   LL_AHB3_GRP1_DisableClock(LL_AHB3_GRP1_PERIPH_CRYP)
906 #endif /* CRYP */
907 
908 #define __HAL_RCC_HASH_CLK_ENABLE()    LL_AHB3_GRP1_EnableClock(LL_AHB3_GRP1_PERIPH_HASH)
909 #define __HAL_RCC_HASH_CLK_DISABLE()   LL_AHB3_GRP1_DisableClock(LL_AHB3_GRP1_PERIPH_HASH)
910 
911 #if defined (CPU_IN_SECURE_STATE)
912 #define __HAL_RCC_IAC_CLK_ENABLE()     LL_AHB3_GRP1_EnableClock(LL_AHB3_GRP1_PERIPH_IAC)
913 #define __HAL_RCC_IAC_CLK_DISABLE()    LL_AHB3_GRP1_DisableClock(LL_AHB3_GRP1_PERIPH_IAC)
914 #endif /* CPU_IN_SECURE_STATE */
915 
916 #define __HAL_RCC_PKA_CLK_ENABLE()     LL_AHB3_GRP1_EnableClock(LL_AHB3_GRP1_PERIPH_PKA)
917 #define __HAL_RCC_PKA_CLK_DISABLE()    LL_AHB3_GRP1_DisableClock(LL_AHB3_GRP1_PERIPH_PKA)
918 
919 #if defined (CPU_IN_SECURE_STATE)
920 #define __HAL_RCC_RIFSC_CLK_ENABLE()   LL_AHB3_GRP1_EnableClock(LL_AHB3_GRP1_PERIPH_RIFSC)
921 #define __HAL_RCC_RIFSC_CLK_DISABLE()  LL_AHB3_GRP1_DisableClock(LL_AHB3_GRP1_PERIPH_RIFSC)
922 #endif /* CPU_IN_SECURE_STATE */
923 
924 #if defined (CPU_IN_SECURE_STATE)
925 #define __HAL_RCC_RISAF_CLK_ENABLE()   LL_AHB3_GRP1_EnableClock(LL_AHB3_GRP1_PERIPH_RISAF)
926 #define __HAL_RCC_RISAF_CLK_DISABLE()  LL_AHB3_GRP1_DisableClock(LL_AHB3_GRP1_PERIPH_RISAF)
927 #endif /* CPU_IN_SECURE_STATE */
928 
929 #define __HAL_RCC_RNG_CLK_ENABLE()     LL_AHB3_GRP1_EnableClock(LL_AHB3_GRP1_PERIPH_RNG)
930 #define __HAL_RCC_RNG_CLK_DISABLE()    LL_AHB3_GRP1_DisableClock(LL_AHB3_GRP1_PERIPH_RNG)
931 
932 #if defined(SAES)
933 #define __HAL_RCC_SAES_CLK_ENABLE()    LL_AHB3_GRP1_EnableClock(LL_AHB3_GRP1_PERIPH_SAES)
934 #define __HAL_RCC_SAES_CLK_DISABLE()   LL_AHB3_GRP1_DisableClock(LL_AHB3_GRP1_PERIPH_SAES)
935 #endif /* SAES */
936 
937 /**
938   * @}
939   */
940 
941 /** @defgroup RCC_AHB4_Peripheral_Clock_Enable_Disable AHB4 Peripheral Clock Enable Disable
942   * @brief  Enable or disable the AHB4 peripheral clock.
943   * @note   After reset, the peripheral clock (used for registers read/write access)
944   *         is disabled and the application software has to enable this clock before
945   *         using it.
946   * @note   PWR peripheral clock is always security-protected and thus hidden to the non-secure
947   *         application.
948   * @{
949   */
950 
951 #define __HAL_RCC_CRC_CLK_ENABLE()     LL_AHB4_GRP1_EnableClock(LL_AHB4_GRP1_PERIPH_CRC)
952 #define __HAL_RCC_CRC_CLK_DISABLE()    LL_AHB4_GRP1_DisableClock(LL_AHB4_GRP1_PERIPH_CRC)
953 
954 #define __HAL_RCC_GPIOA_CLK_ENABLE()   LL_AHB4_GRP1_EnableClock(LL_AHB4_GRP1_PERIPH_GPIOA)
955 #define __HAL_RCC_GPIOA_CLK_DISABLE()  LL_AHB4_GRP1_DisableClock(LL_AHB4_GRP1_PERIPH_GPIOA)
956 
957 #define __HAL_RCC_GPIOB_CLK_ENABLE()   LL_AHB4_GRP1_EnableClock(LL_AHB4_GRP1_PERIPH_GPIOB)
958 #define __HAL_RCC_GPIOB_CLK_DISABLE()  LL_AHB4_GRP1_DisableClock(LL_AHB4_GRP1_PERIPH_GPIOB)
959 
960 #define __HAL_RCC_GPIOC_CLK_ENABLE()   LL_AHB4_GRP1_EnableClock(LL_AHB4_GRP1_PERIPH_GPIOC)
961 #define __HAL_RCC_GPIOC_CLK_DISABLE()  LL_AHB4_GRP1_DisableClock(LL_AHB4_GRP1_PERIPH_GPIOC)
962 
963 #define __HAL_RCC_GPIOD_CLK_ENABLE()   LL_AHB4_GRP1_EnableClock(LL_AHB4_GRP1_PERIPH_GPIOD)
964 #define __HAL_RCC_GPIOD_CLK_DISABLE()  LL_AHB4_GRP1_DisableClock(LL_AHB4_GRP1_PERIPH_GPIOD)
965 
966 #define __HAL_RCC_GPIOE_CLK_ENABLE()   LL_AHB4_GRP1_EnableClock(LL_AHB4_GRP1_PERIPH_GPIOE)
967 #define __HAL_RCC_GPIOE_CLK_DISABLE()  LL_AHB4_GRP1_DisableClock(LL_AHB4_GRP1_PERIPH_GPIOE)
968 
969 #define __HAL_RCC_GPIOF_CLK_ENABLE()   LL_AHB4_GRP1_EnableClock(LL_AHB4_GRP1_PERIPH_GPIOF)
970 #define __HAL_RCC_GPIOF_CLK_DISABLE()  LL_AHB4_GRP1_DisableClock(LL_AHB4_GRP1_PERIPH_GPIOF)
971 
972 #define __HAL_RCC_GPIOG_CLK_ENABLE()   LL_AHB4_GRP1_EnableClock(LL_AHB4_GRP1_PERIPH_GPIOG)
973 #define __HAL_RCC_GPIOG_CLK_DISABLE()  LL_AHB4_GRP1_DisableClock(LL_AHB4_GRP1_PERIPH_GPIOG)
974 
975 #define __HAL_RCC_GPIOH_CLK_ENABLE()   LL_AHB4_GRP1_EnableClock(LL_AHB4_GRP1_PERIPH_GPIOH)
976 #define __HAL_RCC_GPIOH_CLK_DISABLE()  LL_AHB4_GRP1_DisableClock(LL_AHB4_GRP1_PERIPH_GPIOH)
977 
978 #define __HAL_RCC_GPION_CLK_ENABLE()   LL_AHB4_GRP1_EnableClock(LL_AHB4_GRP1_PERIPH_GPION)
979 #define __HAL_RCC_GPION_CLK_DISABLE()  LL_AHB4_GRP1_DisableClock(LL_AHB4_GRP1_PERIPH_GPION)
980 
981 #define __HAL_RCC_GPIOO_CLK_ENABLE()   LL_AHB4_GRP1_EnableClock(LL_AHB4_GRP1_PERIPH_GPIOO)
982 #define __HAL_RCC_GPIOO_CLK_DISABLE()  LL_AHB4_GRP1_DisableClock(LL_AHB4_GRP1_PERIPH_GPIOO)
983 
984 #define __HAL_RCC_GPIOP_CLK_ENABLE()   LL_AHB4_GRP1_EnableClock(LL_AHB4_GRP1_PERIPH_GPIOP)
985 #define __HAL_RCC_GPIOP_CLK_DISABLE()  LL_AHB4_GRP1_DisableClock(LL_AHB4_GRP1_PERIPH_GPIOP)
986 
987 #define __HAL_RCC_GPIOQ_CLK_ENABLE()   LL_AHB4_GRP1_EnableClock(LL_AHB4_GRP1_PERIPH_GPIOQ)
988 #define __HAL_RCC_GPIOQ_CLK_DISABLE()  LL_AHB4_GRP1_DisableClock(LL_AHB4_GRP1_PERIPH_GPIOQ)
989 
990 #if defined (CPU_IN_SECURE_STATE)
991 #define __HAL_RCC_PWR_CLK_ENABLE()     LL_AHB4_GRP1_EnableClock(LL_AHB4_GRP1_PERIPH_PWR)
992 #define __HAL_RCC_PWR_CLK_DISABLE()    LL_AHB4_GRP1_DisableClock(LL_AHB4_GRP1_PERIPH_PWR)
993 #endif /* CPU_IN_SECURE_STATE */
994 
995 /**
996   * @}
997   */
998 
999 /** @defgroup RCC_AHB5_Peripheral_Clock_Enable_Disable AHB5 Peripheral Clock Enable Disable
1000   * @brief  Enable or disable the AHB5 peripheral clock.
1001   * @note   After reset, the peripheral clock (used for registers read/write access)
1002   *         is disabled and the application software has to enable this clock before
1003   *         using it.
1004   * @{
1005   */
1006 
1007 #define __HAL_RCC_DMA2D_CLK_ENABLE()   LL_AHB5_GRP1_EnableClock(LL_AHB5_GRP1_PERIPH_DMA2D)
1008 #define __HAL_RCC_DMA2D_CLK_DISABLE()  LL_AHB5_GRP1_DisableClock(LL_AHB5_GRP1_PERIPH_DMA2D)
1009 
1010 #if defined(ETH1)
1011 #define __HAL_RCC_ETH1_CLK_ENABLE()    LL_AHB5_GRP1_EnableClock(LL_AHB5_GRP1_PERIPH_ETH1)
1012 #define __HAL_RCC_ETH1_CLK_DISABLE()   LL_AHB5_GRP1_DisableClock(LL_AHB5_GRP1_PERIPH_ETH1)
1013 
1014 #define __HAL_RCC_ETH1MAC_CLK_ENABLE() LL_AHB5_GRP1_EnableClock(LL_AHB5_GRP1_PERIPH_ETH1MAC)
1015 #define __HAL_RCC_ETH1MAC_CLK_DISABLE() LL_AHB5_GRP1_DisableClock(LL_AHB5_GRP1_PERIPH_ETH1MAC)
1016 
1017 #define __HAL_RCC_ETH1TX_CLK_ENABLE()  LL_AHB5_GRP1_EnableClock(LL_AHB5_GRP1_PERIPH_ETH1TX)
1018 #define __HAL_RCC_ETH1TX_CLK_DISABLE() LL_AHB5_GRP1_DisableClock(LL_AHB5_GRP1_PERIPH_ETH1TX)
1019 
1020 #define __HAL_RCC_ETH1RX_CLK_ENABLE()  LL_AHB5_GRP1_EnableClock(LL_AHB5_GRP1_PERIPH_ETH1RX)
1021 #define __HAL_RCC_ETH1RX_CLK_DISABLE() LL_AHB5_GRP1_DisableClock(LL_AHB5_GRP1_PERIPH_ETH1RX)
1022 #endif /* ETH1 */
1023 
1024 #define __HAL_RCC_FMC_CLK_ENABLE()     LL_AHB5_GRP1_EnableClock(LL_AHB5_GRP1_PERIPH_FMC)
1025 #define __HAL_RCC_FMC_CLK_DISABLE()    LL_AHB5_GRP1_DisableClock(LL_AHB5_GRP1_PERIPH_FMC)
1026 
1027 #if defined(GFXMMU)
1028 #define __HAL_RCC_GFXMMU_CLK_ENABLE()  LL_AHB5_GRP1_EnableClock(LL_AHB5_GRP1_PERIPH_GFXMMU)
1029 #define __HAL_RCC_GFXMMU_CLK_DISABLE() LL_AHB5_GRP1_DisableClock(LL_AHB5_GRP1_PERIPH_GFXMMU)
1030 #endif /* GFXMMU */
1031 
1032 #if defined(GPU2D)
1033 #define __HAL_RCC_GPU2D_CLK_ENABLE()   LL_AHB5_GRP1_EnableClock(LL_AHB5_GRP1_PERIPH_GPU2D)
1034 #define __HAL_RCC_GPU2D_CLK_DISABLE()  LL_AHB5_GRP1_DisableClock(LL_AHB5_GRP1_PERIPH_GPU2D)
1035 #endif /* GPU2D */
1036 
1037 #define __HAL_RCC_HPDMA1_CLK_ENABLE()  LL_AHB5_GRP1_EnableClock(LL_AHB5_GRP1_PERIPH_HPDMA1)
1038 #define __HAL_RCC_HPDMA1_CLK_DISABLE() LL_AHB5_GRP1_DisableClock(LL_AHB5_GRP1_PERIPH_HPDMA1)
1039 
1040 #if defined(JPEG)
1041 #define __HAL_RCC_JPEG_CLK_ENABLE()    LL_AHB5_GRP1_EnableClock(LL_AHB5_GRP1_PERIPH_JPEG)
1042 #define __HAL_RCC_JPEG_CLK_DISABLE()   LL_AHB5_GRP1_DisableClock(LL_AHB5_GRP1_PERIPH_JPEG)
1043 #endif /* JPEG */
1044 
1045 #define __HAL_RCC_XSPI1_CLK_ENABLE()   LL_AHB5_GRP1_EnableClock(LL_AHB5_GRP1_PERIPH_XSPI1)
1046 #define __HAL_RCC_XSPI1_CLK_DISABLE()  LL_AHB5_GRP1_DisableClock(LL_AHB5_GRP1_PERIPH_XSPI1)
1047 
1048 #define __HAL_RCC_XSPI2_CLK_ENABLE()   LL_AHB5_GRP1_EnableClock(LL_AHB5_GRP1_PERIPH_XSPI2)
1049 #define __HAL_RCC_XSPI2_CLK_DISABLE()  LL_AHB5_GRP1_DisableClock(LL_AHB5_GRP1_PERIPH_XSPI2)
1050 
1051 #define __HAL_RCC_XSPI3_CLK_ENABLE()   LL_AHB5_GRP1_EnableClock(LL_AHB5_GRP1_PERIPH_XSPI3)
1052 #define __HAL_RCC_XSPI3_CLK_DISABLE()  LL_AHB5_GRP1_DisableClock(LL_AHB5_GRP1_PERIPH_XSPI3)
1053 
1054 #define __HAL_RCC_XSPIM_CLK_ENABLE()   LL_AHB5_GRP1_EnableClock(LL_AHB5_GRP1_PERIPH_XSPIM)
1055 #define __HAL_RCC_XSPIM_CLK_DISABLE()  LL_AHB5_GRP1_DisableClock(LL_AHB5_GRP1_PERIPH_XSPIM)
1056 
1057 #define __HAL_RCC_MCE1_CLK_ENABLE()    LL_AHB5_GRP1_EnableClock(LL_AHB5_GRP1_PERIPH_MCE1)
1058 #define __HAL_RCC_MCE1_CLK_DISABLE()   LL_AHB5_GRP1_DisableClock(LL_AHB5_GRP1_PERIPH_MCE1)
1059 
1060 #define __HAL_RCC_MCE2_CLK_ENABLE()    LL_AHB5_GRP1_EnableClock(LL_AHB5_GRP1_PERIPH_MCE2)
1061 #define __HAL_RCC_MCE2_CLK_DISABLE()   LL_AHB5_GRP1_DisableClock(LL_AHB5_GRP1_PERIPH_MCE2)
1062 
1063 #define __HAL_RCC_MCE3_CLK_ENABLE()    LL_AHB5_GRP1_EnableClock(LL_AHB5_GRP1_PERIPH_MCE3)
1064 #define __HAL_RCC_MCE3_CLK_DISABLE()   LL_AHB5_GRP1_DisableClock(LL_AHB5_GRP1_PERIPH_MCE3)
1065 
1066 #define __HAL_RCC_MCE4_CLK_ENABLE()    LL_AHB5_GRP1_EnableClock(LL_AHB5_GRP1_PERIPH_MCE4)
1067 #define __HAL_RCC_MCE4_CLK_DISABLE()   LL_AHB5_GRP1_DisableClock(LL_AHB5_GRP1_PERIPH_MCE4)
1068 
1069 #define __HAL_RCC_CACHEAXI_CLK_ENABLE()  LL_AHB5_GRP1_EnableClock(LL_AHB5_GRP1_PERIPH_CACHEAXI)
1070 #define __HAL_RCC_CACHEAXI_CLK_DISABLE() LL_AHB5_GRP1_DisableClock(LL_AHB5_GRP1_PERIPH_CACHEAXI)
1071 
1072 #define __HAL_RCC_NPU_CLK_ENABLE()     LL_AHB5_GRP1_EnableClock(LL_AHB5_GRP1_PERIPH_NPU)
1073 #define __HAL_RCC_NPU_CLK_DISABLE()    LL_AHB5_GRP1_DisableClock(LL_AHB5_GRP1_PERIPH_NPU)
1074 
1075 #define __HAL_RCC_DCMI_PSSI_CLK_ENABLE()    LL_AHB5_GRP1_EnableClock(LL_AHB5_GRP1_PERIPH_PSSI)
1076 #define __HAL_RCC_DCMI_PSSI_CLK_DISABLE()   LL_AHB5_GRP1_DisableClock(LL_AHB5_GRP1_PERIPH_PSSI)
1077 
1078 #define __HAL_RCC_SDMMC1_CLK_ENABLE()  LL_AHB5_GRP1_EnableClock(LL_AHB5_GRP1_PERIPH_SDMMC1)
1079 #define __HAL_RCC_SDMMC1_CLK_DISABLE() LL_AHB5_GRP1_DisableClock(LL_AHB5_GRP1_PERIPH_SDMMC1)
1080 
1081 #define __HAL_RCC_SDMMC2_CLK_ENABLE()  LL_AHB5_GRP1_EnableClock(LL_AHB5_GRP1_PERIPH_SDMMC2)
1082 #define __HAL_RCC_SDMMC2_CLK_DISABLE() LL_AHB5_GRP1_DisableClock(LL_AHB5_GRP1_PERIPH_SDMMC2)
1083 
1084 #define __HAL_RCC_USB1_OTG_HS_CLK_ENABLE()  LL_AHB5_GRP1_EnableClock(LL_AHB5_GRP1_PERIPH_OTG1)
1085 #define __HAL_RCC_USB1_OTG_HS_CLK_DISABLE() LL_AHB5_GRP1_DisableClock(LL_AHB5_GRP1_PERIPH_OTG1)
1086 
1087 #define __HAL_RCC_USB1_OTG_HS_PHY_CLK_ENABLE()  LL_AHB5_GRP1_EnableClock(LL_AHB5_GRP1_PERIPH_OTGPHY1)
1088 #define __HAL_RCC_USB1_OTG_HS_PHY_CLK_DISABLE() LL_AHB5_GRP1_DisableClock(LL_AHB5_GRP1_PERIPH_OTGPHY1)
1089 
1090 #define __HAL_RCC_USB2_OTG_HS_CLK_ENABLE()  LL_AHB5_GRP1_EnableClock(LL_AHB5_GRP1_PERIPH_OTG2)
1091 #define __HAL_RCC_USB2_OTG_HS_CLK_DISABLE() LL_AHB5_GRP1_DisableClock(LL_AHB5_GRP1_PERIPH_OTG2)
1092 
1093 #define __HAL_RCC_USB2_OTG_HS_PHY_CLK_ENABLE()  LL_AHB5_GRP1_EnableClock(LL_AHB5_GRP1_PERIPH_OTGPHY2)
1094 #define __HAL_RCC_USB2_OTG_HS_PHY_CLK_DISABLE() LL_AHB5_GRP1_DisableClock(LL_AHB5_GRP1_PERIPH_OTGPHY2)
1095 
1096 /**
1097   * @}
1098   */
1099 
1100 /** @defgroup RCC_APB1_Peripheral_Clock_Enable_Disable APB1 Peripheral Clock Enable Disable
1101   * @brief  Enable or disable the APB1 peripheral clock.
1102   * @note   After reset, the peripheral clock (used for registers read/write access)
1103   *         is disabled and the application software has to enable this clock before
1104   *         using it.
1105   * @{
1106   */
1107 
1108 #define __HAL_RCC_FDCAN_CLK_ENABLE()  LL_APB1_GRP2_EnableClock(LL_APB1_GRP2_PERIPH_FDCAN)
1109 #define __HAL_RCC_FDCAN_CLK_DISABLE() LL_APB1_GRP2_DisableClock(LL_APB1_GRP2_PERIPH_FDCAN)
1110 
1111 #define __HAL_RCC_I2C1_CLK_ENABLE()   LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_I2C1)
1112 #define __HAL_RCC_I2C1_CLK_DISABLE()  LL_APB1_GRP1_DisableClock(LL_APB1_GRP1_PERIPH_I2C1)
1113 
1114 #define __HAL_RCC_I2C2_CLK_ENABLE()   LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_I2C2)
1115 #define __HAL_RCC_I2C2_CLK_DISABLE()  LL_APB1_GRP1_DisableClock(LL_APB1_GRP1_PERIPH_I2C2)
1116 
1117 #define __HAL_RCC_I2C3_CLK_ENABLE()   LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_I2C3)
1118 #define __HAL_RCC_I2C3_CLK_DISABLE()  LL_APB1_GRP1_DisableClock(LL_APB1_GRP1_PERIPH_I2C3)
1119 
1120 #define __HAL_RCC_I3C1_CLK_ENABLE()   LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_I3C1)
1121 #define __HAL_RCC_I3C1_CLK_DISABLE()  LL_APB1_GRP1_DisableClock(LL_APB1_GRP1_PERIPH_I3C1)
1122 
1123 #define __HAL_RCC_I3C2_CLK_ENABLE()   LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_I3C2)
1124 #define __HAL_RCC_I3C2_CLK_DISABLE()  LL_APB1_GRP1_DisableClock(LL_APB1_GRP1_PERIPH_I3C2)
1125 
1126 #define __HAL_RCC_LPTIM1_CLK_ENABLE()  LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_LPTIM1)
1127 #define __HAL_RCC_LPTIM1_CLK_DISABLE() LL_APB1_GRP1_DisableClock(LL_APB1_GRP1_PERIPH_LPTIM1)
1128 
1129 #define __HAL_RCC_MDIOS_CLK_ENABLE()  LL_APB1_GRP2_EnableClock(LL_APB1_GRP2_PERIPH_MDIOS)
1130 #define __HAL_RCC_MDIOS_CLK_DISABLE() LL_APB1_GRP2_DisableClock(LL_APB1_GRP2_PERIPH_MDIOS)
1131 
1132 #define __HAL_RCC_SPDIFRX1_CLK_ENABLE()  LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_SPDIFRX1)
1133 #define __HAL_RCC_SPDIFRX1_CLK_DISABLE() LL_APB1_GRP1_DisableClock(LL_APB1_GRP1_PERIPH_SPDIFRX1)
1134 
1135 #define __HAL_RCC_SPI2_CLK_ENABLE()   LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_SPI2)
1136 #define __HAL_RCC_SPI2_CLK_DISABLE()  LL_APB1_GRP1_DisableClock(LL_APB1_GRP1_PERIPH_SPI2)
1137 
1138 #define __HAL_RCC_SPI3_CLK_ENABLE()   LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_SPI3)
1139 #define __HAL_RCC_SPI3_CLK_DISABLE()  LL_APB1_GRP1_DisableClock(LL_APB1_GRP1_PERIPH_SPI3)
1140 
1141 #define __HAL_RCC_TIM2_CLK_ENABLE()   LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_TIM2)
1142 #define __HAL_RCC_TIM2_CLK_DISABLE()  LL_APB1_GRP1_DisableClock(LL_APB1_GRP1_PERIPH_TIM2)
1143 
1144 #define __HAL_RCC_TIM3_CLK_ENABLE()   LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_TIM3)
1145 #define __HAL_RCC_TIM3_CLK_DISABLE()  LL_APB1_GRP1_DisableClock(LL_APB1_GRP1_PERIPH_TIM3)
1146 
1147 #define __HAL_RCC_TIM4_CLK_ENABLE()   LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_TIM4)
1148 #define __HAL_RCC_TIM4_CLK_DISABLE()  LL_APB1_GRP1_DisableClock(LL_APB1_GRP1_PERIPH_TIM4)
1149 
1150 #define __HAL_RCC_TIM5_CLK_ENABLE()   LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_TIM5)
1151 #define __HAL_RCC_TIM5_CLK_DISABLE()  LL_APB1_GRP1_DisableClock(LL_APB1_GRP1_PERIPH_TIM5)
1152 
1153 #define __HAL_RCC_TIM6_CLK_ENABLE()   LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_TIM6)
1154 #define __HAL_RCC_TIM6_CLK_DISABLE()  LL_APB1_GRP1_DisableClock(LL_APB1_GRP1_PERIPH_TIM6)
1155 
1156 #define __HAL_RCC_TIM7_CLK_ENABLE()   LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_TIM7)
1157 #define __HAL_RCC_TIM7_CLK_DISABLE()  LL_APB1_GRP1_DisableClock(LL_APB1_GRP1_PERIPH_TIM7)
1158 
1159 #define __HAL_RCC_TIM10_CLK_ENABLE()  LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_TIM10)
1160 #define __HAL_RCC_TIM10_CLK_DISABLE() LL_APB1_GRP1_DisableClock(LL_APB1_GRP1_PERIPH_TIM10)
1161 
1162 #define __HAL_RCC_TIM11_CLK_ENABLE()  LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_TIM11)
1163 #define __HAL_RCC_TIM11_CLK_DISABLE() LL_APB1_GRP1_DisableClock(LL_APB1_GRP1_PERIPH_TIM11)
1164 
1165 #define __HAL_RCC_TIM12_CLK_ENABLE()  LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_TIM12)
1166 #define __HAL_RCC_TIM12_CLK_DISABLE() LL_APB1_GRP1_DisableClock(LL_APB1_GRP1_PERIPH_TIM12)
1167 
1168 #define __HAL_RCC_TIM13_CLK_ENABLE()  LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_TIM13)
1169 #define __HAL_RCC_TIM13_CLK_DISABLE() LL_APB1_GRP1_DisableClock(LL_APB1_GRP1_PERIPH_TIM13)
1170 
1171 #define __HAL_RCC_TIM14_CLK_ENABLE()  LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_TIM14)
1172 #define __HAL_RCC_TIM14_CLK_DISABLE() LL_APB1_GRP1_DisableClock(LL_APB1_GRP1_PERIPH_TIM14)
1173 
1174 #define __HAL_RCC_USART2_CLK_ENABLE()  LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_USART2)
1175 #define __HAL_RCC_USART2_CLK_DISABLE() LL_APB1_GRP1_DisableClock(LL_APB1_GRP1_PERIPH_USART2)
1176 
1177 #define __HAL_RCC_USART3_CLK_ENABLE()  LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_USART3)
1178 #define __HAL_RCC_USART3_CLK_DISABLE() LL_APB1_GRP1_DisableClock(LL_APB1_GRP1_PERIPH_USART3)
1179 
1180 #define __HAL_RCC_UART4_CLK_ENABLE()  LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_UART4)
1181 #define __HAL_RCC_UART4_CLK_DISABLE() LL_APB1_GRP1_DisableClock(LL_APB1_GRP1_PERIPH_UART4)
1182 
1183 #define __HAL_RCC_UART5_CLK_ENABLE()  LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_UART5)
1184 #define __HAL_RCC_UART5_CLK_DISABLE() LL_APB1_GRP1_DisableClock(LL_APB1_GRP1_PERIPH_UART5)
1185 
1186 #define __HAL_RCC_UART7_CLK_ENABLE()  LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_UART7)
1187 #define __HAL_RCC_UART7_CLK_DISABLE() LL_APB1_GRP1_DisableClock(LL_APB1_GRP1_PERIPH_UART7)
1188 
1189 #define __HAL_RCC_UART8_CLK_ENABLE()  LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_UART8)
1190 #define __HAL_RCC_UART8_CLK_DISABLE() LL_APB1_GRP1_DisableClock(LL_APB1_GRP1_PERIPH_UART8)
1191 
1192 #define __HAL_RCC_UCPD1_CLK_ENABLE()  LL_APB1_GRP2_EnableClock(LL_APB1_GRP2_PERIPH_UCPD1)
1193 #define __HAL_RCC_UCPD1_CLK_DISABLE() LL_APB1_GRP2_DisableClock(LL_APB1_GRP2_PERIPH_UCPD1)
1194 
1195 #define __HAL_RCC_WWDG_CLK_ENABLE()   LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_WWDG)
1196 
1197 /**
1198   * @}
1199   */
1200 
1201 /** @defgroup RCC_APB2_Peripheral_Clock_Enable_Disable APB2 Peripheral Clock Enable Disable
1202   * @brief  Enable or disable the APB2 peripheral clock.
1203   * @note   After reset, the peripheral clock (used for registers read/write access)
1204   *         is disabled and the application software has to enable this clock before
1205   *         using it.
1206   * @{
1207   */
1208 
1209 #define __HAL_RCC_SAI1_CLK_ENABLE()    LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_SAI1)
1210 #define __HAL_RCC_SAI1_CLK_DISABLE()   LL_APB2_GRP1_DisableClock(LL_APB2_GRP1_PERIPH_SAI1)
1211 
1212 #define __HAL_RCC_SAI2_CLK_ENABLE()    LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_SAI2)
1213 #define __HAL_RCC_SAI2_CLK_DISABLE()   LL_APB2_GRP1_DisableClock(LL_APB2_GRP1_PERIPH_SAI2)
1214 
1215 #define __HAL_RCC_SPI1_CLK_ENABLE()    LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_SPI1)
1216 #define __HAL_RCC_SPI1_CLK_DISABLE()   LL_APB2_GRP1_DisableClock(LL_APB2_GRP1_PERIPH_SPI1)
1217 
1218 #define __HAL_RCC_SPI4_CLK_ENABLE()    LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_SPI4)
1219 #define __HAL_RCC_SPI4_CLK_DISABLE()   LL_APB2_GRP1_DisableClock(LL_APB2_GRP1_PERIPH_SPI4)
1220 
1221 #define __HAL_RCC_SPI5_CLK_ENABLE()    LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_SPI5)
1222 #define __HAL_RCC_SPI5_CLK_DISABLE()   LL_APB2_GRP1_DisableClock(LL_APB2_GRP1_PERIPH_SPI5)
1223 
1224 #define __HAL_RCC_TIM1_CLK_ENABLE()    LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_TIM1)
1225 #define __HAL_RCC_TIM1_CLK_DISABLE()   LL_APB2_GRP1_DisableClock(LL_APB2_GRP1_PERIPH_TIM1)
1226 
1227 #define __HAL_RCC_TIM8_CLK_ENABLE()    LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_TIM8)
1228 #define __HAL_RCC_TIM8_CLK_DISABLE()   LL_APB2_GRP1_DisableClock(LL_APB2_GRP1_PERIPH_TIM8)
1229 
1230 #define __HAL_RCC_TIM9_CLK_ENABLE()    LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_TIM9)
1231 #define __HAL_RCC_TIM9_CLK_DISABLE()   LL_APB2_GRP1_DisableClock(LL_APB2_GRP1_PERIPH_TIM9)
1232 
1233 #define __HAL_RCC_TIM15_CLK_ENABLE()   LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_TIM15)
1234 #define __HAL_RCC_TIM15_CLK_DISABLE()  LL_APB2_GRP1_DisableClock(LL_APB2_GRP1_PERIPH_TIM15)
1235 
1236 #define __HAL_RCC_TIM16_CLK_ENABLE()   LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_TIM16)
1237 #define __HAL_RCC_TIM16_CLK_DISABLE()  LL_APB2_GRP1_DisableClock(LL_APB2_GRP1_PERIPH_TIM16)
1238 
1239 #define __HAL_RCC_TIM17_CLK_ENABLE()   LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_TIM17)
1240 #define __HAL_RCC_TIM17_CLK_DISABLE()  LL_APB2_GRP1_DisableClock(LL_APB2_GRP1_PERIPH_TIM17)
1241 
1242 #define __HAL_RCC_TIM18_CLK_ENABLE()   LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_TIM18)
1243 #define __HAL_RCC_TIM18_CLK_DISABLE()  LL_APB2_GRP1_DisableClock(LL_APB2_GRP1_PERIPH_TIM18)
1244 
1245 #define __HAL_RCC_USART1_CLK_ENABLE()  LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_USART1)
1246 #define __HAL_RCC_USART1_CLK_DISABLE() LL_APB2_GRP1_DisableClock(LL_APB2_GRP1_PERIPH_USART1)
1247 
1248 #define __HAL_RCC_USART6_CLK_ENABLE()  LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_USART6)
1249 #define __HAL_RCC_USART6_CLK_DISABLE() LL_APB2_GRP1_DisableClock(LL_APB2_GRP1_PERIPH_USART6)
1250 
1251 #define __HAL_RCC_UART9_CLK_ENABLE()   LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_UART9)
1252 #define __HAL_RCC_UART9_CLK_DISABLE()  LL_APB2_GRP1_DisableClock(LL_APB2_GRP1_PERIPH_UART9)
1253 
1254 #define __HAL_RCC_USART10_CLK_ENABLE()  LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_USART10)
1255 #define __HAL_RCC_USART10_CLK_DISABLE() LL_APB2_GRP1_DisableClock(LL_APB2_GRP1_PERIPH_USART10)
1256 
1257 /**
1258   * @}
1259   */
1260 
1261 /** @defgroup RCC_APB3_Peripheral_Clock_Enable_Disable APB3 Peripheral Clock Enable Disable
1262   * @brief  Enable or disable the APB3 peripheral clock.
1263   * @note   After reset, the peripheral clock (used for registers read/write access)
1264   *         is disabled and the application software has to enable this clock before
1265   *         using it.
1266   * @{
1267   */
1268 
1269 #define __HAL_RCC_DBGMCU_CLK_ENABLE()  LL_BUS_EnableClock(LL_APB3);
1270 #define __HAL_RCC_DBGMCU_CLK_DISABLE() LL_BUS_DisableClock(LL_APB3);
1271 
1272 /**
1273   * @}
1274   */
1275 
1276 /** @defgroup RCC_APB4_Peripheral_Clock_Enable_Disable APB4 Peripheral Clock Enable Disable
1277   * @brief  Enable or disable the APB4 peripheral clock.
1278   * @note   After reset, the peripheral clock (used for registers read/write access)
1279   *         is disabled and the application software has to enable this clock before
1280   *         using it.
1281   * @note   BSEC peripheral clock is always security-protected and thus hidden to the non-secure
1282   *         application.
1283   * @{
1284   */
1285 
1286 #if defined (CPU_IN_SECURE_STATE)
1287 #define __HAL_RCC_BSEC_CLK_ENABLE()     LL_APB4_GRP2_EnableClock(LL_APB4_GRP2_PERIPH_BSEC)
1288 #define __HAL_RCC_BSEC_CLK_DISABLE()    LL_APB4_GRP2_DisableClock(LL_APB4_GRP2_PERIPH_BSEC)
1289 #endif /* CPU_IN_SECURE_STATE */
1290 
1291 #define __HAL_RCC_DTS_CLK_ENABLE()      LL_APB4_GRP2_EnableClock(LL_APB4_GRP2_PERIPH_DTS)
1292 #define __HAL_RCC_DTS_CLK_DISABLE()     LL_APB4_GRP2_DisableClock(LL_APB4_GRP2_PERIPH_DTS)
1293 
1294 #define __HAL_RCC_HDP_CLK_ENABLE()      LL_APB4_GRP1_EnableClock(LL_APB4_GRP1_PERIPH_HDP)
1295 #define __HAL_RCC_HDP_CLK_DISABLE()     LL_APB4_GRP1_DisableClock(LL_APB4_GRP1_PERIPH_HDP)
1296 
1297 #define __HAL_RCC_I2C4_CLK_ENABLE()     LL_APB4_GRP1_EnableClock(LL_APB4_GRP1_PERIPH_I2C4)
1298 #define __HAL_RCC_I2C4_CLK_DISABLE()    LL_APB4_GRP1_DisableClock(LL_APB4_GRP1_PERIPH_I2C4)
1299 
1300 #define __HAL_RCC_LPTIM2_CLK_ENABLE()   LL_APB4_GRP1_EnableClock(LL_APB4_GRP1_PERIPH_LPTIM2)
1301 #define __HAL_RCC_LPTIM2_CLK_DISABLE()  LL_APB4_GRP1_DisableClock(LL_APB4_GRP1_PERIPH_LPTIM2)
1302 
1303 #define __HAL_RCC_LPTIM3_CLK_ENABLE()   LL_APB4_GRP1_EnableClock(LL_APB4_GRP1_PERIPH_LPTIM3)
1304 #define __HAL_RCC_LPTIM3_CLK_DISABLE()  LL_APB4_GRP1_DisableClock(LL_APB4_GRP1_PERIPH_LPTIM3)
1305 
1306 #define __HAL_RCC_LPTIM4_CLK_ENABLE()   LL_APB4_GRP1_EnableClock(LL_APB4_GRP1_PERIPH_LPTIM4)
1307 #define __HAL_RCC_LPTIM4_CLK_DISABLE()  LL_APB4_GRP1_DisableClock(LL_APB4_GRP1_PERIPH_LPTIM4)
1308 
1309 #define __HAL_RCC_LPTIM5_CLK_ENABLE()   LL_APB4_GRP1_EnableClock(LL_APB4_GRP1_PERIPH_LPTIM5)
1310 #define __HAL_RCC_LPTIM5_CLK_DISABLE()  LL_APB4_GRP1_DisableClock(LL_APB4_GRP1_PERIPH_LPTIM5)
1311 
1312 #define __HAL_RCC_LPUART1_CLK_ENABLE()  LL_APB4_GRP1_EnableClock(LL_APB4_GRP1_PERIPH_LPUART1)
1313 #define __HAL_RCC_LPUART1_CLK_DISABLE() LL_APB4_GRP1_DisableClock(LL_APB4_GRP1_PERIPH_LPUART1)
1314 
1315 #define __HAL_RCC_RTC_CLK_ENABLE()      LL_APB4_GRP1_EnableClock(LL_APB4_GRP1_PERIPH_RTC)
1316 #define __HAL_RCC_RTC_CLK_DISABLE()     LL_APB4_GRP1_DisableClock(LL_APB4_GRP1_PERIPH_RTC)
1317 
1318 #define __HAL_RCC_RTCAPB_CLK_ENABLE()   LL_APB4_GRP1_EnableClock(LL_APB4_GRP1_PERIPH_RTCAPB)
1319 #define __HAL_RCC_RTCAPB_CLK_DISABLE()  LL_APB4_GRP1_DisableClock(LL_APB4_GRP1_PERIPH_RTCAPB)
1320 
1321 #define __HAL_RCC_SPI6_CLK_ENABLE()     LL_APB4_GRP1_EnableClock(LL_APB4_GRP1_PERIPH_SPI6)
1322 #define __HAL_RCC_SPI6_CLK_DISABLE()    LL_APB4_GRP1_DisableClock(LL_APB4_GRP1_PERIPH_SPI6)
1323 
1324 #define __HAL_RCC_SYSCFG_CLK_ENABLE()   LL_APB4_GRP2_EnableClock(LL_APB4_GRP2_PERIPH_SYSCFG)
1325 #define __HAL_RCC_SYSCFG_CLK_DISABLE()  LL_APB4_GRP2_DisableClock(LL_APB4_GRP2_PERIPH_SYSCFG)
1326 
1327 #define __HAL_RCC_VREFBUF_CLK_ENABLE()  LL_APB4_GRP1_EnableClock(LL_APB4_GRP1_PERIPH_VREFBUF)
1328 #define __HAL_RCC_VREFBUF_CLK_DISABLE() LL_APB4_GRP1_DisableClock(LL_APB4_GRP1_PERIPH_VREFBUF)
1329 
1330 /**
1331   * @}
1332   */
1333 
1334 /** @defgroup RCC_APB5_Peripheral_Clock_Enable_Disable APB5 Peripheral Clock Enable Disable
1335   * @brief  Enable or disable the APB5 peripheral clock.
1336   * @note   After reset, the peripheral clock (used for registers read/write access)
1337   *         is disabled and the application software has to enable this clock before
1338   *         using it.
1339   * @{
1340   */
1341 
1342 #define __HAL_RCC_CSI_CLK_ENABLE()     LL_APB5_GRP1_EnableClock(LL_APB5_GRP1_PERIPH_CSI)
1343 #define __HAL_RCC_CSI_CLK_DISABLE()    LL_APB5_GRP1_DisableClock(LL_APB5_GRP1_PERIPH_CSI)
1344 
1345 #define __HAL_RCC_DCMIPP_CLK_ENABLE()  LL_APB5_GRP1_EnableClock(LL_APB5_GRP1_PERIPH_DCMIPP)
1346 #define __HAL_RCC_DCMIPP_CLK_DISABLE() LL_APB5_GRP1_DisableClock(LL_APB5_GRP1_PERIPH_DCMIPP)
1347 
1348 #define __HAL_RCC_GFXTIM_CLK_ENABLE()  LL_APB5_GRP1_EnableClock(LL_APB5_GRP1_PERIPH_GFXTIM)
1349 #define __HAL_RCC_GFXTIM_CLK_DISABLE() LL_APB5_GRP1_DisableClock(LL_APB5_GRP1_PERIPH_GFXTIM)
1350 
1351 #define __HAL_RCC_LTDC_CLK_ENABLE()    LL_APB5_GRP1_EnableClock(LL_APB5_GRP1_PERIPH_LTDC)
1352 #define __HAL_RCC_LTDC_CLK_DISABLE()   LL_APB5_GRP1_DisableClock(LL_APB5_GRP1_PERIPH_LTDC)
1353 
1354 #define __HAL_RCC_VENC_CLK_ENABLE()    do { \
1355                                             LL_APB5_GRP1_EnableClock(LL_APB5_GRP1_PERIPH_VENC); \
1356                                             LL_BUS_EnableClock(LL_APB5); \
1357                                           } while(0)
1358 #define __HAL_RCC_VENC_CLK_DISABLE()   do { \
1359                                             LL_BUS_DisableClock(LL_APB5); \
1360                                             LL_APB5_GRP1_DisableClock(LL_APB5_GRP1_PERIPH_VENC); \
1361                                           } while(0)
1362 
1363 /**
1364   * @}
1365   */
1366 
1367 /** @defgroup RCC_MISC_Configuration_Clock_Enable_Disable Misc Configuration Clock Enable Disable
1368   * @brief  Enable or disable the misc configuration clock.
1369   * @note   After reset, the misc configuration clock is disabled and
1370   *         the application software has to enable this clock before using it.
1371   * @note   DBG clock is always security-protected and thus hidden to the non-secure application.
1372   * @{
1373   */
1374 
1375 #if defined (CPU_IN_SECURE_STATE)
1376 #define __HAL_RCC_DBG_CLK_ENABLE()     LL_MISC_EnableClock(LL_DBG)
1377 #define __HAL_RCC_DBG_CLK_DISABLE()    LL_MISC_DisableClock(LL_DBG)
1378 #endif /* CPU_IN_SECURE_STATE */
1379 
1380 #define __HAL_RCC_XSPIPHYCOMP_CLK_ENABLE()  LL_MISC_EnableClock(LL_XSPIPHYCOMP)
1381 #define __HAL_RCC_XSPIPHYCOMP_CLK_DISABLE() LL_MISC_DisableClock(LL_XSPIPHYCOMP)
1382 
1383 #define __HAL_RCC_PER_CLK_ENABLE()  LL_MISC_EnableClock(LL_PER)
1384 #define __HAL_RCC_PER_CLK_DISABLE() LL_MISC_DisableClock(LL_PER)
1385 
1386 /**
1387   * @}
1388   */
1389 
1390 /** @defgroup RCC_Embedded_Mem_Clock_Status Embedded Memory Clock Enabled Status
1391   * @brief  Check whether the embedded memory clock is enabled or not.
1392   * @note   After reset, some embedded memory clocks are disabled
1393   *         and the application software has to enable these memory clocks before using them.
1394   * @{
1395   */
1396 
1397 #define __HAL_RCC_AXISRAM1_MEM_IS_CLK_ENABLED()     LL_MEM_IsEnabledClock(LL_MEM_AXISRAM1)
1398 #define __HAL_RCC_AXISRAM2_MEM_IS_CLK_ENABLED()     LL_MEM_IsEnabledClock(LL_MEM_AXISRAM2)
1399 #define __HAL_RCC_AXISRAM3_MEM_IS_CLK_ENABLED()     LL_MEM_IsEnabledClock(LL_MEM_AXISRAM3)
1400 #define __HAL_RCC_AXISRAM4_MEM_IS_CLK_ENABLED()     LL_MEM_IsEnabledClock(LL_MEM_AXISRAM4)
1401 #define __HAL_RCC_AXISRAM5_MEM_IS_CLK_ENABLED()     LL_MEM_IsEnabledClock(LL_MEM_AXISRAM5)
1402 #define __HAL_RCC_AXISRAM6_MEM_IS_CLK_ENABLED()     LL_MEM_IsEnabledClock(LL_MEM_AXISRAM6)
1403 #define __HAL_RCC_AHBSRAM1_MEM_IS_CLK_ENABLED()     LL_MEM_IsEnabledClock(LL_MEM_AHBSRAM1)
1404 #define __HAL_RCC_AHBSRAM2_MEM_IS_CLK_ENABLED()     LL_MEM_IsEnabledClock(LL_MEM_AHBSRAM2)
1405 #define __HAL_RCC_BKPSRAM_MEM_IS_CLK_ENABLED()      LL_MEM_IsEnabledClock(LL_MEM_BKPSRAM)
1406 #define __HAL_RCC_FLEXRAM_MEM_IS_CLK_ENABLED()      LL_MEM_IsEnabledClock(LL_MEM_FLEXRAM)
1407 #define __HAL_RCC_CACHEAXIRAM_MEM_IS_CLK_ENABLED()  LL_MEM_IsEnabledClock(LL_MEM_CACHEAXIRAM)
1408 #define __HAL_RCC_VENCRAM_MEM_IS_CLK_ENABLED()      LL_MEM_IsEnabledClock(LL_MEM_VENCRAM)
1409 
1410 /**
1411   * @}
1412   */
1413 
1414 /** @defgroup RCC_AHB1_Clock_Enable_Status AHB1 Peripheral Clock Enabled Status
1415   * @brief  Check whether the AHB1 peripheral clock is enabled or not.
1416   * @note   After reset, the peripheral clock (used for registers read/write access)
1417   *         is disabled and the application software has to enable this clock before
1418   *         using it.
1419   * @{
1420   */
1421 
1422 #define __HAL_RCC_ADC12_IS_CLK_ENABLED()   LL_AHB1_GRP1_IsEnabledClock(LL_AHB1_GRP1_PERIPH_ADC12)
1423 
1424 #define __HAL_RCC_GPDMA1_IS_CLK_ENABLED()  LL_AHB1_GRP1_IsEnabledClock(LL_AHB1_GRP1_PERIPH_GPDMA1)
1425 
1426 /**
1427   * @}
1428   */
1429 
1430 /** @defgroup RCC_AHB2_Clock_Enable_Status AHB2 Peripheral Clock Enabled Status
1431   * @brief  Check whether the AHB2 peripheral clock is enabled or not.
1432   * @note   After reset, the peripheral clock (used for registers read/write access)
1433   *         is disabled and the application software has to enable this clock before
1434   *         using it.
1435   * @{
1436   */
1437 
1438 #define __HAL_RCC_ADF1_IS_CLK_ENABLED()    LL_AHB2_GRP1_IsEnabledClock(LL_AHB2_GRP1_PERIPH_ADF1)
1439 
1440 #define __HAL_RCC_MDF1_IS_CLK_ENABLED()    LL_AHB2_GRP1_IsEnabledClock(LL_AHB2_GRP1_PERIPH_MDF1)
1441 
1442 #define __HAL_RCC_RAMCFG_IS_CLK_ENABLED()  LL_AHB2_GRP1_IsEnabledClock(LL_AHB2_GRP1_PERIPH_RAMCFG)
1443 
1444 /**
1445   * @}
1446   */
1447 
1448 /** @defgroup RCC_AHB3_Clock_Enable_Status AHB3 Peripheral Clock Enabled Status
1449   * @brief  Check whether the AHB3 peripheral clock is enabled or not.
1450   * @note   After reset, the peripheral clock (used for registers read/write access)
1451   *         is disabled and the application software has to enable this clock before
1452   *         using it.
1453   * @{
1454   */
1455 
1456 #if defined(CRYP)
1457 #define __HAL_RCC_CRYP_IS_CLK_ENABLED()    LL_AHB3_GRP1_IsEnabledClock(LL_AHB3_GRP1_PERIPH_CRYP)
1458 #endif /* CRYP */
1459 
1460 #define __HAL_RCC_HASH_IS_CLK_ENABLED()    LL_AHB3_GRP1_IsEnabledClock(LL_AHB3_GRP1_PERIPH_HASH)
1461 
1462 #define __HAL_RCC_IAC_IS_CLK_ENABLED()     LL_AHB3_GRP1_IsEnabledClock(LL_AHB3_GRP1_PERIPH_IAC)
1463 
1464 #define __HAL_RCC_PKA_IS_CLK_ENABLED()     LL_AHB3_GRP1_IsEnabledClock(LL_AHB3_GRP1_PERIPH_PKA)
1465 
1466 #define __HAL_RCC_RIFSC_IS_CLK_ENABLED()   LL_AHB3_GRP1_IsEnabledClock(LL_AHB3_GRP1_PERIPH_RIFSC)
1467 
1468 #define __HAL_RCC_RISAF_IS_CLK_ENABLED()   LL_AHB3_GRP1_IsEnabledClock(LL_AHB3_GRP1_PERIPH_RISAF)
1469 
1470 #define __HAL_RCC_RNG_IS_CLK_ENABLED()     LL_AHB3_GRP1_IsEnabledClock(LL_AHB3_GRP1_PERIPH_RNG)
1471 
1472 #if defined(SAES)
1473 #define __HAL_RCC_SAES_IS_CLK_ENABLED()    LL_AHB3_GRP1_IsEnabledClock(LL_AHB3_GRP1_PERIPH_SAES)
1474 #endif /* SAES */
1475 
1476 /**
1477   * @}
1478   */
1479 
1480 /** @defgroup RCC_AHB4_Clock_Enable_Status AHB4 Peripheral Clock Enabled Status
1481   * @brief  Check whether the AHB4 peripheral clock is enabled or not.
1482   * @note   After reset, the peripheral clock (used for registers read/write access)
1483   *         is disabled and the application software has to enable this clock before
1484   *         using it.
1485   * @{
1486   */
1487 
1488 #define __HAL_RCC_CRC_IS_CLK_ENABLED()     LL_AHB4_GRP1_IsEnabledClock(LL_AHB4_GRP1_PERIPH_CRC)
1489 
1490 #define __HAL_RCC_GPIOA_IS_CLK_ENABLED()   LL_AHB4_GRP1_IsEnabledClock(LL_AHB4_GRP1_PERIPH_GPIOA)
1491 
1492 #define __HAL_RCC_GPIOB_IS_CLK_ENABLED()   LL_AHB4_GRP1_IsEnabledClock(LL_AHB4_GRP1_PERIPH_GPIOB)
1493 
1494 #define __HAL_RCC_GPIOC_IS_CLK_ENABLED()   LL_AHB4_GRP1_IsEnabledClock(LL_AHB4_GRP1_PERIPH_GPIOC)
1495 
1496 #define __HAL_RCC_GPIOD_IS_CLK_ENABLED()   LL_AHB4_GRP1_IsEnabledClock(LL_AHB4_GRP1_PERIPH_GPIOD)
1497 
1498 #define __HAL_RCC_GPIOE_IS_CLK_ENABLED()   LL_AHB4_GRP1_IsEnabledClock(LL_AHB4_GRP1_PERIPH_GPIOE)
1499 
1500 #define __HAL_RCC_GPIOF_IS_CLK_ENABLED()   LL_AHB4_GRP1_IsEnabledClock(LL_AHB4_GRP1_PERIPH_GPIOF)
1501 
1502 #define __HAL_RCC_GPIOG_IS_CLK_ENABLED()   LL_AHB4_GRP1_IsEnabledClock(LL_AHB4_GRP1_PERIPH_GPIOG)
1503 
1504 #define __HAL_RCC_GPIOH_IS_CLK_ENABLED()   LL_AHB4_GRP1_IsEnabledClock(LL_AHB4_GRP1_PERIPH_GPIOH)
1505 
1506 #define __HAL_RCC_GPION_IS_CLK_ENABLED()   LL_AHB4_GRP1_IsEnabledClock(LL_AHB4_GRP1_PERIPH_GPION)
1507 
1508 #define __HAL_RCC_GPIOO_IS_CLK_ENABLED()   LL_AHB4_GRP1_IsEnabledClock(LL_AHB4_GRP1_PERIPH_GPIOO)
1509 
1510 #define __HAL_RCC_GPIOP_IS_CLK_ENABLED()   LL_AHB4_GRP1_IsEnabledClock(LL_AHB4_GRP1_PERIPH_GPIOP)
1511 
1512 #define __HAL_RCC_GPIOQ_IS_CLK_ENABLED()   LL_AHB4_GRP1_IsEnabledClock(LL_AHB4_GRP1_PERIPH_GPIOQ)
1513 
1514 #define __HAL_RCC_PWR_IS_CLK_ENABLED()     LL_AHB4_GRP1_IsEnabledClock(LL_AHB4_GRP1_PERIPH_PWR)
1515 
1516 /**
1517   * @}
1518   */
1519 
1520 /** @defgroup RCC_AHB5_Clock_Enable_Status AHB5 Peripheral Clock Enabled Status
1521   * @brief  Check whether the AHB5 peripheral clock is enabled or not.
1522   * @note   After reset, the peripheral clock (used for registers read/write access)
1523   *         is disabled and the application software has to enable this clock before
1524   *         using it.
1525   * @{
1526   */
1527 
1528 #define __HAL_RCC_DMA2D_IS_CLK_ENABLED()   LL_AHB5_GRP1_IsEnabledClock(LL_AHB5_GRP1_PERIPH_DMA2D)
1529 
1530 #if defined(ETH1)
1531 #define __HAL_RCC_ETH1_IS_CLK_ENABLED()    LL_AHB5_GRP1_IsEnabledClock(LL_AHB5_GRP1_PERIPH_ETH1)
1532 
1533 #define __HAL_RCC_ETH1MAC_IS_CLK_ENABLED() LL_AHB5_GRP1_IsEnabledClock(LL_AHB5_GRP1_PERIPH_ETH1MAC)
1534 
1535 #define __HAL_RCC_ETH1TX_IS_CLK_ENABLED()  LL_AHB5_GRP1_IsEnabledClock(LL_AHB5_GRP1_PERIPH_ETH1TX)
1536 
1537 #define __HAL_RCC_ETH1RX_IS_CLK_ENABLED()  LL_AHB5_GRP1_IsEnabledClock(LL_AHB5_GRP1_PERIPH_ETH1RX)
1538 #endif /* ETH1 */
1539 
1540 #define __HAL_RCC_FMC_IS_CLK_ENABLED()     LL_AHB5_GRP1_IsEnabledClock(LL_AHB5_GRP1_PERIPH_FMC)
1541 
1542 #if defined(GFXMMU)
1543 #define __HAL_RCC_GFXMMU_IS_CLK_ENABLED()  LL_AHB5_GRP1_IsEnabledClock(LL_AHB5_GRP1_PERIPH_GFXMMU)
1544 #endif /* GFXMMU */
1545 
1546 #if defined(GPU2D)
1547 #define __HAL_RCC_GPU2D_IS_CLK_ENABLED()   LL_AHB5_GRP1_IsEnabledClock(LL_AHB5_GRP1_PERIPH_GPU2D)
1548 #endif /* GPU2D */
1549 
1550 #define __HAL_RCC_HPDMA1_IS_CLK_ENABLED()  LL_AHB5_GRP1_IsEnabledClock(LL_AHB5_GRP1_PERIPH_HPDMA1)
1551 
1552 #if defined(JPEG)
1553 #define __HAL_RCC_JPEG_IS_CLK_ENABLED()    LL_AHB5_GRP1_IsEnabledClock(LL_AHB5_GRP1_PERIPH_JPEG)
1554 #endif /* JPEG */
1555 
1556 #define __HAL_RCC_XSPI1_IS_CLK_ENABLED()   LL_AHB5_GRP1_IsEnabledClock(LL_AHB5_GRP1_PERIPH_XSPI1)
1557 
1558 #define __HAL_RCC_XSPI2_IS_CLK_ENABLED()   LL_AHB5_GRP1_IsEnabledClock(LL_AHB5_GRP1_PERIPH_XSPI2)
1559 
1560 #define __HAL_RCC_XSPI3_IS_CLK_ENABLED()   LL_AHB5_GRP1_IsEnabledClock(LL_AHB5_GRP1_PERIPH_XSPI3)
1561 
1562 #define __HAL_RCC_XSPIM_IS_CLK_ENABLED()   LL_AHB5_GRP1_IsEnabledClock(LL_AHB5_GRP1_PERIPH_XSPIM)
1563 
1564 #define __HAL_RCC_MCE1_IS_CLK_ENABLED()    LL_AHB5_GRP1_IsEnabledClock(LL_AHB5_GRP1_PERIPH_MCE1)
1565 
1566 #define __HAL_RCC_MCE2_IS_CLK_ENABLED()    LL_AHB5_GRP1_IsEnabledClock(LL_AHB5_GRP1_PERIPH_MCE2)
1567 
1568 #define __HAL_RCC_MCE3_IS_CLK_ENABLED()    LL_AHB5_GRP1_IsEnabledClock(LL_AHB5_GRP1_PERIPH_MCE3)
1569 
1570 #define __HAL_RCC_MCE4_IS_CLK_ENABLED()    LL_AHB5_GRP1_IsEnabledClock(LL_AHB5_GRP1_PERIPH_MCE4)
1571 
1572 #define __HAL_RCC_CACHEAXI_IS_CLK_ENABLED()  LL_AHB5_GRP1_IsEnabledClock(LL_AHB5_GRP1_PERIPH_CACHEAXI)
1573 
1574 #define __HAL_RCC_NPU_IS_CLK_ENABLED()     LL_AHB5_GRP1_IsEnabledClock(LL_AHB5_GRP1_PERIPH_NPU)
1575 
1576 #define __HAL_RCC_DCMI_PSSI_IS_CLK_ENABLED()    LL_AHB5_GRP1_IsEnabledClock(LL_AHB5_GRP1_PERIPH_PSSI)
1577 
1578 #define __HAL_RCC_SDMMC1_IS_CLK_ENABLED()  LL_AHB5_GRP1_IsEnabledClock(LL_AHB5_GRP1_PERIPH_SDMMC1)
1579 
1580 #define __HAL_RCC_SDMMC2_IS_CLK_ENABLED()  LL_AHB5_GRP1_IsEnabledClock(LL_AHB5_GRP1_PERIPH_SDMMC2)
1581 
1582 #define __HAL_RCC_USB1_OTG_HS_IS_CLK_ENABLED()  LL_AHB5_GRP1_IsEnabledClock(LL_AHB5_GRP1_PERIPH_OTG1)
1583 
1584 #define __HAL_RCC_USB1_OTG_HS_PHY_IS_CLK_ENABLED()  LL_AHB5_GRP1_IsEnabledClock(LL_AHB5_GRP1_PERIPH_OTGPHY1)
1585 
1586 #define __HAL_RCC_USB2_OTG_HS_IS_CLK_ENABLED()  LL_AHB5_GRP1_IsEnabledClock(LL_AHB5_GRP1_PERIPH_OTG2)
1587 
1588 #define __HAL_RCC_USB2_OTG_HS_PHY_IS_CLK_ENABLED()  LL_AHB5_GRP1_IsEnabledClock(LL_AHB5_GRP1_PERIPH_OTGPHY2)
1589 
1590 /**
1591   * @}
1592   */
1593 
1594 /** @defgroup RCC_APB1_Clock_Enable_Status APB1 Peripheral Clock Enabled Status
1595   * @brief  Check whether the APB1 peripheral clock is enabled or not.
1596   * @note   After reset, the peripheral clock (used for registers read/write access)
1597   *         is disabled and the application software has to enable this clock before
1598   *         using it.
1599   * @{
1600   */
1601 
1602 #define __HAL_RCC_FDCAN_IS_CLK_ENABLED()  LL_APB1_GRP2_IsEnabledClock(LL_APB1_GRP2_PERIPH_FDCAN)
1603 
1604 #define __HAL_RCC_I2C1_IS_CLK_ENABLED()   LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_I2C1)
1605 
1606 #define __HAL_RCC_I2C2_IS_CLK_ENABLED()   LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_I2C2)
1607 
1608 #define __HAL_RCC_I2C3_IS_CLK_ENABLED()   LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_I2C3)
1609 
1610 #define __HAL_RCC_I3C1_IS_CLK_ENABLED()   LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_I3C1)
1611 
1612 #define __HAL_RCC_I3C2_IS_CLK_ENABLED()   LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_I3C2)
1613 
1614 #define __HAL_RCC_LPTIM1_IS_CLK_ENABLED()  LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_LPTIM1)
1615 
1616 #define __HAL_RCC_MDIOS_IS_CLK_ENABLED()  LL_APB1_GRP2_IsEnabledClock(LL_APB1_GRP2_PERIPH_MDIOS)
1617 
1618 #define __HAL_RCC_SPDIFRX1_IS_CLK_ENABLED()  LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_SPDIFRX1)
1619 
1620 #define __HAL_RCC_SPI2_IS_CLK_ENABLED()   LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_SPI2)
1621 
1622 #define __HAL_RCC_SPI3_IS_CLK_ENABLED()   LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_SPI3)
1623 
1624 #define __HAL_RCC_TIM2_IS_CLK_ENABLED()   LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_TIM2)
1625 
1626 #define __HAL_RCC_TIM3_IS_CLK_ENABLED()   LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_TIM3)
1627 
1628 #define __HAL_RCC_TIM4_IS_CLK_ENABLED()   LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_TIM4)
1629 
1630 #define __HAL_RCC_TIM5_IS_CLK_ENABLED()   LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_TIM5)
1631 
1632 #define __HAL_RCC_TIM6_IS_CLK_ENABLED()   LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_TIM6)
1633 
1634 #define __HAL_RCC_TIM7_IS_CLK_ENABLED()   LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_TIM7)
1635 
1636 #define __HAL_RCC_TIM10_IS_CLK_ENABLED()  LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_TIM10)
1637 
1638 #define __HAL_RCC_TIM11_IS_CLK_ENABLED()  LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_TIM11)
1639 
1640 #define __HAL_RCC_TIM12_IS_CLK_ENABLED()  LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_TIM12)
1641 
1642 #define __HAL_RCC_TIM13_IS_CLK_ENABLED()  LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_TIM13)
1643 
1644 #define __HAL_RCC_TIM14_IS_CLK_ENABLED()  LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_TIM14)
1645 
1646 #define __HAL_RCC_USART2_IS_CLK_ENABLED()  LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_USART2)
1647 
1648 #define __HAL_RCC_USART3_IS_CLK_ENABLED()  LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_USART3)
1649 
1650 #define __HAL_RCC_UART4_IS_CLK_ENABLED()  LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_UART4)
1651 
1652 #define __HAL_RCC_UART5_IS_CLK_ENABLED()  LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_UART5)
1653 
1654 #define __HAL_RCC_UART7_IS_CLK_ENABLED()  LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_UART7)
1655 
1656 #define __HAL_RCC_UART8_IS_CLK_ENABLED()  LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_UART8)
1657 
1658 #define __HAL_RCC_UCPD1_IS_CLK_ENABLED()  LL_APB1_GRP2_IsEnabledClock(LL_APB1_GRP2_PERIPH_UCPD1)
1659 
1660 #define __HAL_RCC_WWDG_IS_CLK_ENABLED()   LL_APB1_GRP1_IsEnabledClock(LL_APB1_GRP1_PERIPH_WWDG)
1661 
1662 /**
1663   * @}
1664   */
1665 
1666 /** @defgroup RCC_APB2_Clock_Enable_Status APB2 Peripheral Clock Enabled Status
1667   * @brief  Check whether the APB2 peripheral clock is enabled or not.
1668   * @note   After reset, the peripheral clock (used for registers read/write access)
1669   *         is disabled and the application software has to enable this clock before
1670   *         using it.
1671   * @{
1672   */
1673 
1674 #define __HAL_RCC_SAI1_IS_CLK_ENABLED()    LL_APB2_GRP1_IsEnabledClock(LL_APB2_GRP1_PERIPH_SAI1)
1675 
1676 #define __HAL_RCC_SAI2_IS_CLK_ENABLED()    LL_APB2_GRP1_IsEnabledClock(LL_APB2_GRP1_PERIPH_SAI2)
1677 
1678 #define __HAL_RCC_SPI1_IS_CLK_ENABLED()    LL_APB2_GRP1_IsEnabledClock(LL_APB2_GRP1_PERIPH_SPI1)
1679 
1680 #define __HAL_RCC_SPI4_IS_CLK_ENABLED()    LL_APB2_GRP1_IsEnabledClock(LL_APB2_GRP1_PERIPH_SPI4)
1681 
1682 #define __HAL_RCC_SPI5_IS_CLK_ENABLED()    LL_APB2_GRP1_IsEnabledClock(LL_APB2_GRP1_PERIPH_SPI5)
1683 
1684 #define __HAL_RCC_TIM1_IS_CLK_ENABLED()    LL_APB2_GRP1_IsEnabledClock(LL_APB2_GRP1_PERIPH_TIM1)
1685 
1686 #define __HAL_RCC_TIM8_IS_CLK_ENABLED()    LL_APB2_GRP1_IsEnabledClock(LL_APB2_GRP1_PERIPH_TIM8)
1687 
1688 #define __HAL_RCC_TIM9_IS_CLK_ENABLED()    LL_APB2_GRP1_IsEnabledClock(LL_APB2_GRP1_PERIPH_TIM9)
1689 
1690 #define __HAL_RCC_TIM15_IS_CLK_ENABLED()   LL_APB2_GRP1_IsEnabledClock(LL_APB2_GRP1_PERIPH_TIM15)
1691 
1692 #define __HAL_RCC_TIM16_IS_CLK_ENABLED()   LL_APB2_GRP1_IsEnabledClock(LL_APB2_GRP1_PERIPH_TIM16)
1693 
1694 #define __HAL_RCC_TIM17_IS_CLK_ENABLED()   LL_APB2_GRP1_IsEnabledClock(LL_APB2_GRP1_PERIPH_TIM17)
1695 
1696 #define __HAL_RCC_TIM18_IS_CLK_ENABLED()   LL_APB2_GRP1_IsEnabledClock(LL_APB2_GRP1_PERIPH_TIM18)
1697 
1698 #define __HAL_RCC_USART1_IS_CLK_ENABLED()  LL_APB2_GRP1_IsEnabledClock(LL_APB2_GRP1_PERIPH_USART1)
1699 
1700 #define __HAL_RCC_USART6_IS_CLK_ENABLED()  LL_APB2_GRP1_IsEnabledClock(LL_APB2_GRP1_PERIPH_USART6)
1701 
1702 #define __HAL_RCC_UART9_IS_CLK_ENABLED()   LL_APB2_GRP1_IsEnabledClock(LL_APB2_GRP1_PERIPH_UART9)
1703 
1704 #define __HAL_RCC_USART10_IS_CLK_ENABLED()  LL_APB2_GRP1_IsEnabledClock(LL_APB2_GRP1_PERIPH_USART10)
1705 
1706 /**
1707   * @}
1708   */
1709 
1710 
1711 /** @defgroup RCC_APB3_Clock_Enable_Status APB3 Peripheral Clock Enabled Status
1712   * @brief  Check whether the APB3 peripheral clock is enabled or not.
1713   * @note   After reset, the peripheral clock (used for registers read/write access)
1714   *         is disabled and the application software has to enable this clock before
1715   *         using it.
1716   * @{
1717   */
1718 
1719 #define __HAL_RCC_DBGMCU_IS_CLK_ENABLED()   LL_BUS_IsEnabledClock(LL_APB3);
1720 
1721 /**
1722   * @}
1723   */
1724 
1725 /** @defgroup RCC_APB4_Clock_Enable_Status APB4 Peripheral Clock Enabled Status
1726   * @brief  Check whether the APB4 peripheral clock is enabled or not.
1727   * @note   After reset, the peripheral clock (used for registers read/write access)
1728   *         is disabled and the application software has to enable this clock before
1729   *         using it.
1730   * @{
1731   */
1732 
1733 #define __HAL_RCC_BSEC_IS_CLK_ENABLED()     LL_APB4_GRP2_IsEnabledClock(LL_APB4_GRP2_PERIPH_BSEC)
1734 
1735 #define __HAL_RCC_DTS_IS_CLK_ENABLED()      LL_APB4_GRP2_IsEnabledClock(LL_APB4_GRP2_PERIPH_DTS)
1736 
1737 #define __HAL_RCC_HDP_IS_CLK_ENABLED()      LL_APB4_GRP1_IsEnabledClock(LL_APB4_GRP1_PERIPH_HDP)
1738 
1739 #define __HAL_RCC_I2C4_IS_CLK_ENABLED()     LL_APB4_GRP1_IsEnabledClock(LL_APB4_GRP1_PERIPH_I2C4)
1740 
1741 #define __HAL_RCC_LPTIM2_IS_CLK_ENABLED()   LL_APB4_GRP1_IsEnabledClock(LL_APB4_GRP1_PERIPH_LPTIM2)
1742 
1743 #define __HAL_RCC_LPTIM3_IS_CLK_ENABLED()   LL_APB4_GRP1_IsEnabledClock(LL_APB4_GRP1_PERIPH_LPTIM3)
1744 
1745 #define __HAL_RCC_LPTIM4_IS_CLK_ENABLED()   LL_APB4_GRP1_IsEnabledClock(LL_APB4_GRP1_PERIPH_LPTIM4)
1746 
1747 #define __HAL_RCC_LPTIM5_IS_CLK_ENABLED()   LL_APB4_GRP1_IsEnabledClock(LL_APB4_GRP1_PERIPH_LPTIM5)
1748 
1749 #define __HAL_RCC_LPUART1_IS_CLK_ENABLED()  LL_APB4_GRP1_IsEnabledClock(LL_APB4_GRP1_PERIPH_LPUART1)
1750 
1751 #define __HAL_RCC_RTC_IS_CLK_ENABLED()      LL_APB4_GRP1_IsEnabledClock(LL_APB4_GRP1_PERIPH_RTC)
1752 
1753 #define __HAL_RCC_RTCAPB_IS_CLK_ENABLED()   LL_APB4_GRP1_IsEnabledClock(LL_APB4_GRP1_PERIPH_RTCAPB)
1754 
1755 #define __HAL_RCC_SPI6_IS_CLK_ENABLED()     LL_APB4_GRP1_IsEnabledClock(LL_APB4_GRP1_PERIPH_SPI6)
1756 
1757 #define __HAL_RCC_SYSCFG_IS_CLK_ENABLED()   LL_APB4_GRP2_IsEnabledClock(LL_APB4_GRP2_PERIPH_SYSCFG)
1758 
1759 #define __HAL_RCC_VREFBUF_IS_CLK_ENABLED()  LL_APB4_GRP1_IsEnabledClock(LL_APB4_GRP1_PERIPH_VREFBUF)
1760 
1761 /**
1762   * @}
1763   */
1764 
1765 /** @defgroup RCC_APB5_Clock_Enable_Status APB5 Peripheral Clock Enabled Status
1766   * @brief  Check whether the APB5 peripheral clock is enabled or not.
1767   * @note   After reset, the peripheral clock (used for registers read/write access)
1768   *         is disabled and the application software has to enable this clock before
1769   *         using it.
1770   * @{
1771   */
1772 
1773 #define __HAL_RCC_CSI_IS_CLK_ENABLED()     LL_APB5_GRP1_IsEnabledClock(LL_APB5_GRP1_PERIPH_CSI)
1774 
1775 #define __HAL_RCC_DCMIPP_IS_CLK_ENABLED()  LL_APB5_GRP1_IsEnabledClock(LL_APB5_GRP1_PERIPH_DCMIPP)
1776 
1777 #define __HAL_RCC_GFXTIM_IS_CLK_ENABLED()  LL_APB5_GRP1_IsEnabledClock(LL_APB5_GRP1_PERIPH_GFXTIM)
1778 
1779 #define __HAL_RCC_LTDC_IS_CLK_ENABLED()    LL_APB5_GRP1_IsEnabledClock(LL_APB5_GRP1_PERIPH_LTDC)
1780 
1781 #define __HAL_RCC_VENC_IS_CLK_ENABLED()    LL_APB5_GRP1_IsEnabledClock(LL_APB5_GRP1_PERIPH_VENC)
1782 
1783 /**
1784   * @}
1785   */
1786 
1787 /** @defgroup RCC_MISC_Configuration_Clock_Enable_Status Misc Configuration Clock Enabled Status
1788   * @brief  Check whether the misc configuration clock is enabled or not.
1789   * @note   After reset, the misc configuration clock is disabled and
1790   *         the application software has to enable this clock before using it.
1791   * @{
1792   */
1793 
1794 #define __HAL_RCC_DBG_IS_CLK_ENABLED()          LL_MISC_IsEnabledClock(LL_DBG)
1795 
1796 #define __HAL_RCC_MCO1_IS_CLK_ENABLED()         LL_MISC_IsEnabledClock(LL_MCO1)
1797 
1798 #define __HAL_RCC_MCO2_IS_CLK_ENABLED()         LL_MISC_IsEnabledClock(LL_MCO2)
1799 
1800 #define __HAL_RCC_XSPIPHYCOMP_IS_CLK_ENABLED()  LL_MISC_IsEnabledClock(LL_XSPIPHYCOMP)
1801 
1802 #define __HAL_RCC_PER_IS_CLK_ENABLED()          LL_MISC_IsEnabledClock(LL_PER)
1803 
1804 /**
1805   * @}
1806   */
1807 
1808 /** @defgroup RCC_AHB1_Force_Release_Reset AHB1 Peripheral Force Release Reset
1809   * @brief  Force or release AHB1 peripheral reset.
1810   * @{
1811   */
1812 
1813 #define __HAL_RCC_AHB1_FORCE_RESET()       WRITE_REG(RCC->AHB1RSTSR, 0x00000030UL);
1814 #define __HAL_RCC_AHB1_RELEASE_RESET()     WRITE_REG(RCC->AHB1RSTSR, 0UL)
1815 
1816 #define __HAL_RCC_GPDMA1_FORCE_RESET()     LL_AHB1_GRP1_ForceReset(LL_AHB1_GRP1_PERIPH_GPDMA1)
1817 #define __HAL_RCC_GPDMA1_RELEASE_RESET()   LL_AHB1_GRP1_ReleaseReset(LL_AHB1_GRP1_PERIPH_GPDMA1)
1818 
1819 #define __HAL_RCC_ADC12_FORCE_RESET()      LL_AHB1_GRP1_ForceReset(LL_AHB1_GRP1_PERIPH_ADC12)
1820 #define __HAL_RCC_ADC12_RELEASE_RESET()    LL_AHB1_GRP1_ReleaseReset(LL_AHB1_GRP1_PERIPH_ADC12)
1821 
1822 /**
1823   * @}
1824   */
1825 
1826 /** @defgroup RCC_AHB2_Force_Release_Reset AHB2 Peripheral Force Release Reset
1827   * @brief  Force or release AHB2 peripheral reset.
1828   * @{
1829   */
1830 
1831 #define __HAL_RCC_AHB2_FORCE_RESET()       WRITE_REG(RCC->AHB2RSTSR, 0x00031000UL);
1832 #define __HAL_RCC_AHB2_RELEASE_RESET()     WRITE_REG(RCC->AHB2RSTSR, 0UL)
1833 
1834 #define __HAL_RCC_ADF1_FORCE_RESET()       LL_AHB2_GRP1_ForceReset(LL_AHB2_GRP1_PERIPH_ADF1)
1835 #define __HAL_RCC_ADF1_RELEASE_RESET()     LL_AHB2_GRP1_ReleaseReset(LL_AHB2_GRP1_PERIPH_ADF1)
1836 
1837 #define __HAL_RCC_MDF1_FORCE_RESET()       LL_AHB2_GRP1_ForceReset(LL_AHB2_GRP1_PERIPH_MDF1)
1838 #define __HAL_RCC_MDF1_RELEASE_RESET()     LL_AHB2_GRP1_ReleaseReset(LL_AHB2_GRP1_PERIPH_MDF1)
1839 
1840 #define __HAL_RCC_RAMCFG_FORCE_RESET()     LL_AHB2_GRP1_ForceReset(LL_AHB2_GRP1_PERIPH_RAMCFG)
1841 #define __HAL_RCC_RAMCFG_RELEASE_RESET()   LL_AHB2_GRP1_ReleaseReset(LL_AHB2_GRP1_PERIPH_RAMCFG)
1842 
1843 /**
1844   * @}
1845   */
1846 
1847 /** @defgroup RCC_AHB3_Force_Release_Reset AHB3 Peripheral Force Release Reset
1848   * @brief  Force or release AHB3 peripheral reset.
1849   * @note   IAC peripheral reset is always security-protected and thus hidden to the non-secure
1850   *         application.
1851   * @{
1852   */
1853 
1854 #if defined (CPU_IN_SECURE_STATE)
1855 #define __HAL_RCC_AHB3_FORCE_RESET()       WRITE_REG(RCC->AHB3RSTSR, 0x00000517UL);
1856 #else
1857 #define __HAL_RCC_AHB3_FORCE_RESET()       WRITE_REG(RCC->AHB3RSTSR, 0x00000117UL);
1858 #endif /* CPU_IN_SECURE_STATE */
1859 #define __HAL_RCC_AHB3_RELEASE_RESET()     WRITE_REG(RCC->AHB3RSTSR, 0UL)
1860 
1861 #if defined (CPU_IN_SECURE_STATE)
1862 #define __HAL_RCC_IAC_FORCE_RESET()        LL_AHB3_GRP1_ForceReset(LL_AHB3_GRP1_PERIPH_IAC)
1863 #define __HAL_RCC_IAC_RELEASE_RESET()      LL_AHB3_GRP1_ReleaseReset(LL_AHB3_GRP1_PERIPH_IAC)
1864 #endif /* CPU_IN_SECURE_STATE */
1865 
1866 #if defined(CRYP)
1867 #define __HAL_RCC_CRYP_FORCE_RESET()       LL_AHB3_GRP1_ForceReset(LL_AHB3_GRP1_PERIPH_CRYP)
1868 #define __HAL_RCC_CRYP_RELEASE_RESET()     LL_AHB3_GRP1_ReleaseReset(LL_AHB3_GRP1_PERIPH_CRYP)
1869 #endif /* CRYP */
1870 
1871 #define __HAL_RCC_HASH_FORCE_RESET()       LL_AHB3_GRP1_ForceReset(LL_AHB3_GRP1_PERIPH_HASH)
1872 #define __HAL_RCC_HASH_RELEASE_RESET()     LL_AHB3_GRP1_ReleaseReset(LL_AHB3_GRP1_PERIPH_HASH)
1873 
1874 #define __HAL_RCC_PKA_FORCE_RESET()        LL_AHB3_GRP1_ForceReset(LL_AHB3_GRP1_PERIPH_PKA)
1875 #define __HAL_RCC_PKA_RELEASE_RESET()      LL_AHB3_GRP1_ReleaseReset(LL_AHB3_GRP1_PERIPH_PKA)
1876 
1877 #define __HAL_RCC_RNG_FORCE_RESET()        LL_AHB3_GRP1_ForceReset(LL_AHB3_GRP1_PERIPH_RNG)
1878 #define __HAL_RCC_RNG_RELEASE_RESET()      LL_AHB3_GRP1_ReleaseReset(LL_AHB3_GRP1_PERIPH_RNG)
1879 
1880 #if defined(SAES)
1881 #define __HAL_RCC_SAES_FORCE_RESET()       LL_AHB3_GRP1_ForceReset(LL_AHB3_GRP1_PERIPH_SAES)
1882 #define __HAL_RCC_SAES_RELEASE_RESET()     LL_AHB3_GRP1_ReleaseReset(LL_AHB3_GRP1_PERIPH_SAES)
1883 #endif /* SAES */
1884 
1885 /**
1886   * @}
1887   */
1888 
1889 /** @defgroup RCC_AHB4_Force_Release_Reset AHB4 Peripheral Force Release Reset
1890   * @brief  Force or release AHB4 peripheral reset.
1891   * @note   PWR peripheral reset is always security-protected and thus hidden to the non-secure
1892   *         application.
1893   * @{
1894   */
1895 
1896 #if defined (CPU_IN_SECURE_STATE)
1897 #define __HAL_RCC_AHB4_FORCE_RESET()       WRITE_REG(RCC->AHB4RSTSR, 0x000DE0FFUL);
1898 #else
1899 #define __HAL_RCC_AHB4_FORCE_RESET()       WRITE_REG(RCC->AHB4RSTSR, 0x0005E0FFUL);
1900 #endif /* CPU_IN_SECURE_STATE */
1901 #define __HAL_RCC_AHB4_RELEASE_RESET()     WRITE_REG(RCC->AHB4RSTSR, 0UL)
1902 
1903 #define __HAL_RCC_CRC_FORCE_RESET()        LL_AHB4_GRP1_ForceReset(LL_AHB4_GRP1_PERIPH_CRC)
1904 #define __HAL_RCC_CRC_RELEASE_RESET()      LL_AHB4_GRP1_ReleaseReset(LL_AHB4_GRP1_PERIPH_CRC)
1905 
1906 #define __HAL_RCC_GPIOA_FORCE_RESET()      LL_AHB4_GRP1_ForceReset(LL_AHB4_GRP1_PERIPH_GPIOA)
1907 #define __HAL_RCC_GPIOA_RELEASE_RESET()    LL_AHB4_GRP1_ReleaseReset(LL_AHB4_GRP1_PERIPH_GPIOA)
1908 
1909 #define __HAL_RCC_GPIOB_FORCE_RESET()      LL_AHB4_GRP1_ForceReset(LL_AHB4_GRP1_PERIPH_GPIOB)
1910 #define __HAL_RCC_GPIOB_RELEASE_RESET()    LL_AHB4_GRP1_ReleaseReset(LL_AHB4_GRP1_PERIPH_GPIOB)
1911 
1912 #define __HAL_RCC_GPIOC_FORCE_RESET()      LL_AHB4_GRP1_ForceReset(LL_AHB4_GRP1_PERIPH_GPIOC)
1913 #define __HAL_RCC_GPIOC_RELEASE_RESET()    LL_AHB4_GRP1_ReleaseReset(LL_AHB4_GRP1_PERIPH_GPIOC)
1914 
1915 #define __HAL_RCC_GPIOD_FORCE_RESET()      LL_AHB4_GRP1_ForceReset(LL_AHB4_GRP1_PERIPH_GPIOD)
1916 #define __HAL_RCC_GPIOD_RELEASE_RESET()    LL_AHB4_GRP1_ReleaseReset(LL_AHB4_GRP1_PERIPH_GPIOD)
1917 
1918 #define __HAL_RCC_GPIOE_FORCE_RESET()      LL_AHB4_GRP1_ForceReset(LL_AHB4_GRP1_PERIPH_GPIOE)
1919 #define __HAL_RCC_GPIOE_RELEASE_RESET()    LL_AHB4_GRP1_ReleaseReset(LL_AHB4_GRP1_PERIPH_GPIOE)
1920 
1921 #define __HAL_RCC_GPIOF_FORCE_RESET()      LL_AHB4_GRP1_ForceReset(LL_AHB4_GRP1_PERIPH_GPIOF)
1922 #define __HAL_RCC_GPIOF_RELEASE_RESET()    LL_AHB4_GRP1_ReleaseReset(LL_AHB4_GRP1_PERIPH_GPIOF)
1923 
1924 #define __HAL_RCC_GPIOG_FORCE_RESET()      LL_AHB4_GRP1_ForceReset(LL_AHB4_GRP1_PERIPH_GPIOG)
1925 #define __HAL_RCC_GPIOG_RELEASE_RESET()    LL_AHB4_GRP1_ReleaseReset(LL_AHB4_GRP1_PERIPH_GPIOG)
1926 
1927 #define __HAL_RCC_GPIOH_FORCE_RESET()      LL_AHB4_GRP1_ForceReset(LL_AHB4_GRP1_PERIPH_GPIOH)
1928 #define __HAL_RCC_GPIOH_RELEASE_RESET()    LL_AHB4_GRP1_ReleaseReset(LL_AHB4_GRP1_PERIPH_GPIOH)
1929 
1930 #define __HAL_RCC_GPION_FORCE_RESET()      LL_AHB4_GRP1_ForceReset(LL_AHB4_GRP1_PERIPH_GPION)
1931 #define __HAL_RCC_GPION_RELEASE_RESET()    LL_AHB4_GRP1_ReleaseReset(LL_AHB4_GRP1_PERIPH_GPION)
1932 
1933 #define __HAL_RCC_GPIOO_FORCE_RESET()      LL_AHB4_GRP1_ForceReset(LL_AHB4_GRP1_PERIPH_GPIOO)
1934 #define __HAL_RCC_GPIOO_RELEASE_RESET()    LL_AHB4_GRP1_ReleaseReset(LL_AHB4_GRP1_PERIPH_GPIOO)
1935 
1936 #define __HAL_RCC_GPIOP_FORCE_RESET()      LL_AHB4_GRP1_ForceReset(LL_AHB4_GRP1_PERIPH_GPIOP)
1937 #define __HAL_RCC_GPIOP_RELEASE_RESET()    LL_AHB4_GRP1_ReleaseReset(LL_AHB4_GRP1_PERIPH_GPIOP)
1938 
1939 #define __HAL_RCC_GPIOQ_FORCE_RESET()      LL_AHB4_GRP1_ForceReset(LL_AHB4_GRP1_PERIPH_GPIOQ)
1940 #define __HAL_RCC_GPIOQ_RELEASE_RESET()    LL_AHB4_GRP1_ReleaseReset(LL_AHB4_GRP1_PERIPH_GPIOQ)
1941 
1942 #if defined (CPU_IN_SECURE_STATE)
1943 #define __HAL_RCC_PWR_FORCE_RESET()        LL_AHB4_GRP1_ForceReset(LL_AHB4_GRP1_PERIPH_PWR)
1944 #define __HAL_RCC_PWR_RELEASE_RESET()      LL_AHB4_GRP1_ReleaseReset(LL_AHB4_GRP1_PERIPH_PWR)
1945 #endif /* CPU_IN_SECURE_STATE */
1946 
1947 /**
1948   * @}
1949   */
1950 
1951 /** @defgroup RCC_AHB5_Force_Release_Reset AHB5 Peripheral Force Release Reset
1952   * @brief  Force or release AHB5 peripheral reset.
1953   * @{
1954   */
1955 
1956 /* Caution: The two following macros should only be called from code running in internal RAM
1957  *          since it resets the external peripheral memory interfaces.
1958  */
1959 #define __HAL_RCC_AHB5_FORCE_RESET()       WRITE_REG(RCC->AHB5RSTSR, 0xFF9A31FBUL)
1960 #define __HAL_RCC_AHB5_RELEASE_RESET()     WRITE_REG(RCC->AHB5RSTSR, 0UL)
1961 
1962 #define __HAL_RCC_DMA2D_FORCE_RESET()      LL_AHB5_GRP1_ForceReset(LL_AHB5_GRP1_PERIPH_DMA2D)
1963 #define __HAL_RCC_DMA2D_RELEASE_RESET()    LL_AHB5_GRP1_ReleaseReset(LL_AHB5_GRP1_PERIPH_DMA2D)
1964 
1965 #if defined(ETH1)
1966 #define __HAL_RCC_ETH1_FORCE_RESET()       LL_AHB5_GRP1_ForceReset(LL_AHB5_GRP1_PERIPH_ETH1);
1967 #define __HAL_RCC_ETH1_RELEASE_RESET()     LL_AHB5_GRP1_ReleaseReset(LL_AHB5_GRP1_PERIPH_ETH1);
1968 #endif /* ETH1 */
1969 
1970 #define __HAL_RCC_FMC_FORCE_RESET()        LL_AHB5_GRP1_ForceReset(LL_AHB5_GRP1_PERIPH_FMC)
1971 #define __HAL_RCC_FMC_RELEASE_RESET()      LL_AHB5_GRP1_ReleaseReset(LL_AHB5_GRP1_PERIPH_FMC)
1972 
1973 #if defined(GFXMMU)
1974 #define __HAL_RCC_GFXMMU_FORCE_RESET()     LL_AHB5_GRP1_ForceReset(LL_AHB5_GRP1_PERIPH_GFXMMU)
1975 #define __HAL_RCC_GFXMMU_RELEASE_RESET()   LL_AHB5_GRP1_ReleaseReset(LL_AHB5_GRP1_PERIPH_GFXMMU)
1976 #endif /* GFXMMU */
1977 
1978 #if defined(GPU2D)
1979 #define __HAL_RCC_GPU2D_FORCE_RESET()      LL_AHB5_GRP1_ForceReset(LL_AHB5_GRP1_PERIPH_GPU2D)
1980 #define __HAL_RCC_GPU2D_RELEASE_RESET()    LL_AHB5_GRP1_ReleaseReset(LL_AHB5_GRP1_PERIPH_GPU2D)
1981 #endif /* GPU2D */
1982 
1983 #define __HAL_RCC_HPDMA1_FORCE_RESET()     LL_AHB5_GRP1_ForceReset(LL_AHB5_GRP1_PERIPH_HPDMA1)
1984 #define __HAL_RCC_HPDMA1_RELEASE_RESET()   LL_AHB5_GRP1_ReleaseReset(LL_AHB5_GRP1_PERIPH_HPDMA1)
1985 
1986 #define __HAL_RCC_XSPI1_FORCE_RESET()      LL_AHB5_GRP1_ForceReset(LL_AHB5_GRP1_PERIPH_XSPI1)
1987 #define __HAL_RCC_XSPI1_RELEASE_RESET()    LL_AHB5_GRP1_ReleaseReset(LL_AHB5_GRP1_PERIPH_XSPI1)
1988 
1989 #define __HAL_RCC_XSPI2_FORCE_RESET()      LL_AHB5_GRP1_ForceReset(LL_AHB5_GRP1_PERIPH_XSPI2)
1990 #define __HAL_RCC_XSPI2_RELEASE_RESET()    LL_AHB5_GRP1_ReleaseReset(LL_AHB5_GRP1_PERIPH_XSPI2)
1991 
1992 #define __HAL_RCC_XSPI3_FORCE_RESET()      LL_AHB5_GRP1_ForceReset(LL_AHB5_GRP1_PERIPH_XSPI3);
1993 #define __HAL_RCC_XSPI3_RELEASE_RESET()    LL_AHB5_GRP1_ReleaseReset(LL_AHB5_GRP1_PERIPH_XSPI3);
1994 
1995 #define __HAL_RCC_XSPIM_FORCE_RESET()      LL_AHB5_GRP1_ForceReset(LL_AHB5_GRP1_PERIPH_XSPIM)
1996 #define __HAL_RCC_XSPIM_RELEASE_RESET()   LL_AHB5_GRP1_ReleaseReset(LL_AHB5_GRP1_PERIPH_XSPIM)
1997 
1998 #if defined(JPEG)
1999 #define __HAL_RCC_JPEG_FORCE_RESET()       LL_AHB5_GRP1_ForceReset(LL_AHB5_GRP1_PERIPH_JPEG)
2000 #define __HAL_RCC_JPEG_RELEASE_RESET()     LL_AHB5_GRP1_ReleaseReset(LL_AHB5_GRP1_PERIPH_JPEG)
2001 #endif /* JPEG */
2002 
2003 #define __HAL_RCC_CACHEAXI_FORCE_RESET()   LL_AHB5_GRP1_ForceReset(LL_AHB5_GRP1_PERIPH_CACHEAXI);
2004 #define __HAL_RCC_CACHEAXI_RELEASE_RESET() LL_AHB5_GRP1_ReleaseReset(LL_AHB5_GRP1_PERIPH_CACHEAXI);
2005 
2006 #define __HAL_RCC_NPU_FORCE_RESET()        LL_AHB5_GRP1_ForceReset(LL_AHB5_GRP1_PERIPH_NPU);
2007 #define __HAL_RCC_NPU_RELEASE_RESET()      LL_AHB5_GRP1_ReleaseReset(LL_AHB5_GRP1_PERIPH_NPU);
2008 
2009 #define __HAL_RCC_DCMI_PSSI_FORCE_RESET()       LL_AHB5_GRP1_ForceReset(LL_AHB5_GRP1_PERIPH_PSSI)
2010 #define __HAL_RCC_DCMI_PSSI_RELEASE_RESET()     LL_AHB5_GRP1_ReleaseReset(LL_AHB5_GRP1_PERIPH_PSSI)
2011 
2012 #define __HAL_RCC_SDMMC1_FORCE_RESET()     LL_AHB5_GRP1_ForceReset(LL_AHB5_GRP1_PERIPH_SDMMC1)
2013 #define __HAL_RCC_SDMMC1_RELEASE_RESET()   LL_AHB5_GRP1_ReleaseReset(LL_AHB5_GRP1_PERIPH_SDMMC1)
2014 
2015 #define __HAL_RCC_SDMMC2_FORCE_RESET()     LL_AHB5_GRP1_ForceReset(LL_AHB5_GRP1_PERIPH_SDMMC2)
2016 #define __HAL_RCC_SDMMC2_RELEASE_RESET()   LL_AHB5_GRP1_ReleaseReset(LL_AHB5_GRP1_PERIPH_SDMMC2)
2017 
2018 #define __HAL_RCC_USB1_OTG_HS_FORCE_RESET()   LL_AHB5_GRP1_ForceReset(LL_AHB5_GRP1_PERIPH_OTG1)
2019 #define __HAL_RCC_USB1_OTG_HS_RELEASE_RESET() LL_AHB5_GRP1_ReleaseReset(LL_AHB5_GRP1_PERIPH_OTG1)
2020 
2021 #define __HAL_RCC_USB1_OTG_HS_PHY_FORCE_RESET()   LL_AHB5_GRP1_ForceReset(LL_AHB5_GRP1_PERIPH_OTGPHY1);
2022 #define __HAL_RCC_USB1_OTG_HS_PHY_RELEASE_RESET() LL_AHB5_GRP1_ReleaseReset(LL_AHB5_GRP1_PERIPH_OTGPHY1);
2023 
2024 #define __HAL_RCC_USB1_OTG_HS_CTL_FORCE_RESET()   LL_AHB5_GRP1_ForceReset(LL_AHB5_GRP1_PERIPH_OTG1PHYCTL);
2025 #define __HAL_RCC_USB1_OTG_HS_CTL_RELEASE_RESET() LL_AHB5_GRP1_ReleaseReset(LL_AHB5_GRP1_PERIPH_OTG1PHYCTL);
2026 
2027 #define __HAL_RCC_USB2_OTG_HS_FORCE_RESET()   LL_AHB5_GRP1_ForceReset(LL_AHB5_GRP1_PERIPH_OTG2)
2028 #define __HAL_RCC_USB2_OTG_HS_RELEASE_RESET() LL_AHB5_GRP1_ReleaseReset(LL_AHB5_GRP1_PERIPH_OTG2)
2029 
2030 #define __HAL_RCC_USB2_OTG_HS_PHY_FORCE_RESET()   LL_AHB5_GRP1_ForceReset(LL_AHB5_GRP1_PERIPH_OTGPHY2);
2031 #define __HAL_RCC_USB2_OTG_HS_PHY_RELEASE_RESET() LL_AHB5_GRP1_ReleaseReset(LL_AHB5_GRP1_PERIPH_OTGPHY2);
2032 
2033 #define __HAL_RCC_USB2_OTG_HS_CTL_FORCE_RESET()   LL_AHB5_GRP1_ForceReset(LL_AHB5_GRP1_PERIPH_OTG2PHYCTL);
2034 #define __HAL_RCC_USB2_OTG_HS_CTL_RELEASE_RESET() LL_AHB5_GRP1_ReleaseReset(LL_AHB5_GRP1_PERIPH_OTG2PHYCTL);
2035 
2036 /**
2037   * @}
2038   */
2039 
2040 /** @defgroup RCC_APB1_Force_Release_Reset APB1 Peripheral Force Release Reset
2041   * @brief  Force or release APB1 peripheral reset.
2042   * @{
2043   */
2044 
2045 #define __HAL_RCC_APB1_FORCE_RESET()     do { \
2046                                               WRITE_REG(RCC->APB1RSTSR1, 0xC3FFF3FFUL); \
2047                                               WRITE_REG(RCC->APB1RSTSR2, 0x00040120UL); \
2048                                             } while(0)
2049 #define __HAL_RCC_APB1_RELEASE_RESET()   do { \
2050                                               WRITE_REG(RCC->APB1RSTSR1, 0UL); \
2051                                               WRITE_REG(RCC->APB1RSTSR2, 0UL); \
2052                                             } while(0)
2053 
2054 #define __HAL_RCC_FDCAN_FORCE_RESET()    LL_APB1_GRP2_ForceReset(LL_APB1_GRP2_PERIPH_FDCAN)
2055 #define __HAL_RCC_FDCAN_RELEASE_RESET()  LL_APB1_GRP2_ReleaseReset(LL_APB1_GRP2_PERIPH_FDCAN)
2056 
2057 #define __HAL_RCC_I2C1_FORCE_RESET()     LL_APB1_GRP1_ForceReset(LL_APB1_GRP1_PERIPH_I2C1)
2058 #define __HAL_RCC_I2C1_RELEASE_RESET()   LL_APB1_GRP1_ReleaseReset(LL_APB1_GRP1_PERIPH_I2C1)
2059 
2060 #define __HAL_RCC_I2C2_FORCE_RESET()     LL_APB1_GRP1_ForceReset(LL_APB1_GRP1_PERIPH_I2C2)
2061 #define __HAL_RCC_I2C2_RELEASE_RESET()   LL_APB1_GRP1_ReleaseReset(LL_APB1_GRP1_PERIPH_I2C2)
2062 
2063 #define __HAL_RCC_I2C3_FORCE_RESET()     LL_APB1_GRP1_ForceReset(LL_APB1_GRP1_PERIPH_I2C3)
2064 #define __HAL_RCC_I2C3_RELEASE_RESET()   LL_APB1_GRP1_ReleaseReset(LL_APB1_GRP1_PERIPH_I2C3)
2065 
2066 #define __HAL_RCC_I3C1_FORCE_RESET()     LL_APB1_GRP1_ForceReset(LL_APB1_GRP1_PERIPH_I3C1)
2067 #define __HAL_RCC_I3C1_RELEASE_RESET()   LL_APB1_GRP1_ReleaseReset(LL_APB1_GRP1_PERIPH_I3C1)
2068 
2069 #define __HAL_RCC_I3C2_FORCE_RESET()     LL_APB1_GRP1_ForceReset(LL_APB1_GRP1_PERIPH_I3C2)
2070 #define __HAL_RCC_I3C2_RELEASE_RESET()   LL_APB1_GRP1_ReleaseReset(LL_APB1_GRP1_PERIPH_I3C2)
2071 
2072 #define __HAL_RCC_LPTIM1_FORCE_RESET()   LL_APB1_GRP1_ForceReset(LL_APB1_GRP1_PERIPH_LPTIM1)
2073 #define __HAL_RCC_LPTIM1_RELEASE_RESET() LL_APB1_GRP1_ReleaseReset(LL_APB1_GRP1_PERIPH_LPTIM1)
2074 
2075 #define __HAL_RCC_MDIOS_FORCE_RESET()    LL_APB1_GRP2_ForceReset(LL_APB1_GRP2_PERIPH_MDIOS)
2076 #define __HAL_RCC_MDIOS_RELEASE_RESET()  LL_APB1_GRP2_ReleaseReset(LL_APB1_GRP2_PERIPH_MDIOS)
2077 
2078 #define __HAL_RCC_SPDIFRX1_FORCE_RESET()   LL_APB1_GRP1_ForceReset(LL_APB1_GRP1_PERIPH_SPDIFRX1)
2079 #define __HAL_RCC_SPDIFRX1_RELEASE_RESET() LL_APB1_GRP1_ReleaseReset(LL_APB1_GRP1_PERIPH_SPDIFRX1)
2080 
2081 #define __HAL_RCC_SPI2_FORCE_RESET()     LL_APB1_GRP1_ForceReset(LL_APB1_GRP1_PERIPH_SPI2)
2082 #define __HAL_RCC_SPI2_RELEASE_RESET()   LL_APB1_GRP1_ReleaseReset(LL_APB1_GRP1_PERIPH_SPI2)
2083 
2084 #define __HAL_RCC_SPI3_FORCE_RESET()     LL_APB1_GRP1_ForceReset(LL_APB1_GRP1_PERIPH_SPI3)
2085 #define __HAL_RCC_SPI3_RELEASE_RESET()   LL_APB1_GRP1_ReleaseReset(LL_APB1_GRP1_PERIPH_SPI3)
2086 
2087 #define __HAL_RCC_TIM2_FORCE_RESET()     LL_APB1_GRP1_ForceReset(LL_APB1_GRP1_PERIPH_TIM2)
2088 #define __HAL_RCC_TIM2_RELEASE_RESET()   LL_APB1_GRP1_ReleaseReset(LL_APB1_GRP1_PERIPH_TIM2)
2089 
2090 #define __HAL_RCC_TIM3_FORCE_RESET()     LL_APB1_GRP1_ForceReset(LL_APB1_GRP1_PERIPH_TIM3)
2091 #define __HAL_RCC_TIM3_RELEASE_RESET()   LL_APB1_GRP1_ReleaseReset(LL_APB1_GRP1_PERIPH_TIM3)
2092 
2093 #define __HAL_RCC_TIM4_FORCE_RESET()     LL_APB1_GRP1_ForceReset(LL_APB1_GRP1_PERIPH_TIM4)
2094 #define __HAL_RCC_TIM4_RELEASE_RESET()   LL_APB1_GRP1_ReleaseReset(LL_APB1_GRP1_PERIPH_TIM4)
2095 
2096 #define __HAL_RCC_TIM5_FORCE_RESET()     LL_APB1_GRP1_ForceReset(LL_APB1_GRP1_PERIPH_TIM5)
2097 #define __HAL_RCC_TIM5_RELEASE_RESET()   LL_APB1_GRP1_ReleaseReset(LL_APB1_GRP1_PERIPH_TIM5)
2098 
2099 #define __HAL_RCC_TIM6_FORCE_RESET()     LL_APB1_GRP1_ForceReset(LL_APB1_GRP1_PERIPH_TIM6)
2100 #define __HAL_RCC_TIM6_RELEASE_RESET()   LL_APB1_GRP1_ReleaseReset(LL_APB1_GRP1_PERIPH_TIM6)
2101 
2102 #define __HAL_RCC_TIM7_FORCE_RESET()     LL_APB1_GRP1_ForceReset(LL_APB1_GRP1_PERIPH_TIM7)
2103 #define __HAL_RCC_TIM7_RELEASE_RESET()   LL_APB1_GRP1_ReleaseReset(LL_APB1_GRP1_PERIPH_TIM7)
2104 
2105 #define __HAL_RCC_TIM10_FORCE_RESET()    LL_APB1_GRP1_ForceReset(LL_APB1_GRP1_PERIPH_TIM10)
2106 #define __HAL_RCC_TIM10_RELEASE_RESET()  LL_APB1_GRP1_ReleaseReset(LL_APB1_GRP1_PERIPH_TIM10)
2107 
2108 #define __HAL_RCC_TIM11_FORCE_RESET()    LL_APB1_GRP1_ForceReset(LL_APB1_GRP1_PERIPH_TIM11)
2109 #define __HAL_RCC_TIM11_RELEASE_RESET()  LL_APB1_GRP1_ReleaseReset(LL_APB1_GRP1_PERIPH_TIM11)
2110 
2111 #define __HAL_RCC_TIM12_FORCE_RESET()    LL_APB1_GRP1_ForceReset(LL_APB1_GRP1_PERIPH_TIM12)
2112 #define __HAL_RCC_TIM12_RELEASE_RESET()  LL_APB1_GRP1_ReleaseReset(LL_APB1_GRP1_PERIPH_TIM12)
2113 
2114 #define __HAL_RCC_TIM13_FORCE_RESET()    LL_APB1_GRP1_ForceReset(LL_APB1_GRP1_PERIPH_TIM13)
2115 #define __HAL_RCC_TIM13_RELEASE_RESET()  LL_APB1_GRP1_ReleaseReset(LL_APB1_GRP1_PERIPH_TIM13)
2116 
2117 #define __HAL_RCC_TIM14_FORCE_RESET()    LL_APB1_GRP1_ForceReset(LL_APB1_GRP1_PERIPH_TIM14)
2118 #define __HAL_RCC_TIM14_RELEASE_RESET()  LL_APB1_GRP1_ReleaseReset(LL_APB1_GRP1_PERIPH_TIM14)
2119 
2120 #define __HAL_RCC_UCPD1_FORCE_RESET()    LL_APB1_GRP2_ForceReset(LL_APB1_GRP2_PERIPH_UCPD1)
2121 #define __HAL_RCC_UCPD1_RELEASE_RESET()  LL_APB1_GRP2_ReleaseReset(LL_APB1_GRP2_PERIPH_UCPD1)
2122 
2123 #define __HAL_RCC_USART2_FORCE_RESET()   LL_APB1_GRP1_ForceReset(LL_APB1_GRP1_PERIPH_USART2)
2124 #define __HAL_RCC_USART2_RELEASE_RESET() LL_APB1_GRP1_ReleaseReset(LL_APB1_GRP1_PERIPH_USART2)
2125 
2126 #define __HAL_RCC_USART3_FORCE_RESET()   LL_APB1_GRP1_ForceReset(LL_APB1_GRP1_PERIPH_USART3)
2127 #define __HAL_RCC_USART3_RELEASE_RESET() LL_APB1_GRP1_ReleaseReset(LL_APB1_GRP1_PERIPH_USART3)
2128 
2129 #define __HAL_RCC_UART4_FORCE_RESET()    LL_APB1_GRP1_ForceReset(LL_APB1_GRP1_PERIPH_UART4)
2130 #define __HAL_RCC_UART4_RELEASE_RESET()  LL_APB1_GRP1_ReleaseReset(LL_APB1_GRP1_PERIPH_UART4)
2131 
2132 #define __HAL_RCC_UART5_FORCE_RESET()    LL_APB1_GRP1_ForceReset(LL_APB1_GRP1_PERIPH_UART5)
2133 #define __HAL_RCC_UART5_RELEASE_RESET()  LL_APB1_GRP1_ReleaseReset(LL_APB1_GRP1_PERIPH_UART5)
2134 
2135 #define __HAL_RCC_UART7_FORCE_RESET()    LL_APB1_GRP1_ForceReset(LL_APB1_GRP1_PERIPH_UART7)
2136 #define __HAL_RCC_UART7_RELEASE_RESET()  LL_APB1_GRP1_ReleaseReset(LL_APB1_GRP1_PERIPH_UART7)
2137 
2138 #define __HAL_RCC_UART8_FORCE_RESET()    LL_APB1_GRP1_ForceReset(LL_APB1_GRP1_PERIPH_UART8)
2139 #define __HAL_RCC_UART8_RELEASE_RESET()  LL_APB1_GRP1_ReleaseReset(LL_APB1_GRP1_PERIPH_UART8)
2140 
2141 /**
2142   * @}
2143   */
2144 
2145 /** @defgroup RCC_APB2_Force_Release_Reset APB2 Peripheral Force Release Reset
2146   * @brief  Force or release APB2 peripheral reset.
2147   * @{
2148   */
2149 
2150 #define __HAL_RCC_APB2_FORCE_RESET()      WRITE_REG(RCC->APB2RSTSR, 0x007FB0F3UL)
2151 #define __HAL_RCC_APB2_RELEASE_RESET()    WRITE_REG(RCC->APB2RSTSR, 0UL)
2152 
2153 #define __HAL_RCC_SAI1_FORCE_RESET()      LL_APB2_GRP1_ForceReset(LL_APB2_GRP1_PERIPH_SAI1)
2154 #define __HAL_RCC_SAI1_RELEASE_RESET()    LL_APB2_GRP1_ReleaseReset(LL_APB2_GRP1_PERIPH_SAI1)
2155 
2156 #define __HAL_RCC_SAI2_FORCE_RESET()      LL_APB2_GRP1_ForceReset(LL_APB2_GRP1_PERIPH_SAI2)
2157 #define __HAL_RCC_SAI2_RELEASE_RESET()    LL_APB2_GRP1_ReleaseReset(LL_APB2_GRP1_PERIPH_SAI2)
2158 
2159 #define __HAL_RCC_SPI1_FORCE_RESET()      LL_APB2_GRP1_ForceReset(LL_APB2_GRP1_PERIPH_SPI1)
2160 #define __HAL_RCC_SPI1_RELEASE_RESET()    LL_APB2_GRP1_ReleaseReset(LL_APB2_GRP1_PERIPH_SPI1)
2161 
2162 #define __HAL_RCC_SPI4_FORCE_RESET()      LL_APB2_GRP1_ForceReset(LL_APB2_GRP1_PERIPH_SPI4)
2163 #define __HAL_RCC_SPI4_RELEASE_RESET()    LL_APB2_GRP1_ReleaseReset(LL_APB2_GRP1_PERIPH_SPI4)
2164 
2165 #define __HAL_RCC_SPI5_FORCE_RESET()      LL_APB2_GRP1_ForceReset(LL_APB2_GRP1_PERIPH_SPI5)
2166 #define __HAL_RCC_SPI5_RELEASE_RESET()    LL_APB2_GRP1_ReleaseReset(LL_APB2_GRP1_PERIPH_SPI5)
2167 
2168 #define __HAL_RCC_TIM1_FORCE_RESET()      LL_APB2_GRP1_ForceReset(LL_APB2_GRP1_PERIPH_TIM1)
2169 #define __HAL_RCC_TIM1_RELEASE_RESET()    LL_APB2_GRP1_ReleaseReset(LL_APB2_GRP1_PERIPH_TIM1)
2170 
2171 #define __HAL_RCC_TIM8_FORCE_RESET()      LL_APB2_GRP1_ForceReset(LL_APB2_GRP1_PERIPH_TIM8)
2172 #define __HAL_RCC_TIM8_RELEASE_RESET()    LL_APB2_GRP1_ReleaseReset(LL_APB2_GRP1_PERIPH_TIM8)
2173 
2174 #define __HAL_RCC_TIM9_FORCE_RESET()      LL_APB2_GRP1_ForceReset(LL_APB2_GRP1_PERIPH_TIM9)
2175 #define __HAL_RCC_TIM9_RELEASE_RESET()    LL_APB2_GRP1_ReleaseReset(LL_APB2_GRP1_PERIPH_TIM9)
2176 
2177 #define __HAL_RCC_TIM15_FORCE_RESET()     LL_APB2_GRP1_ForceReset(LL_APB2_GRP1_PERIPH_TIM15)
2178 #define __HAL_RCC_TIM15_RELEASE_RESET()   LL_APB2_GRP1_ReleaseReset(LL_APB2_GRP1_PERIPH_TIM15)
2179 
2180 #define __HAL_RCC_TIM16_FORCE_RESET()     LL_APB2_GRP1_ForceReset(LL_APB2_GRP1_PERIPH_TIM16)
2181 #define __HAL_RCC_TIM16_RELEASE_RESET()   LL_APB2_GRP1_ReleaseReset(LL_APB2_GRP1_PERIPH_TIM16)
2182 
2183 #define __HAL_RCC_TIM17_FORCE_RESET()     LL_APB2_GRP1_ForceReset(LL_APB2_GRP1_PERIPH_TIM17)
2184 #define __HAL_RCC_TIM17_RELEASE_RESET()   LL_APB2_GRP1_ReleaseReset(LL_APB2_GRP1_PERIPH_TIM17)
2185 
2186 #define __HAL_RCC_TIM18_FORCE_RESET()     LL_APB2_GRP1_ForceReset(LL_APB2_GRP1_PERIPH_TIM18)
2187 #define __HAL_RCC_TIM18_RELEASE_RESET()   LL_APB2_GRP1_ReleaseReset(LL_APB2_GRP1_PERIPH_TIM18)
2188 
2189 #define __HAL_RCC_USART1_FORCE_RESET()    LL_APB2_GRP1_ForceReset(LL_APB2_GRP1_PERIPH_USART1)
2190 #define __HAL_RCC_USART1_RELEASE_RESET()  LL_APB2_GRP1_ReleaseReset(LL_APB2_GRP1_PERIPH_USART1)
2191 
2192 #define __HAL_RCC_USART6_FORCE_RESET()    LL_APB2_GRP1_ForceReset(LL_APB2_GRP1_PERIPH_USART6)
2193 #define __HAL_RCC_USART6_RELEASE_RESET()  LL_APB2_GRP1_ReleaseReset(LL_APB2_GRP1_PERIPH_USART6)
2194 
2195 #define __HAL_RCC_UART9_FORCE_RESET()     LL_APB2_GRP1_ForceReset(LL_APB2_GRP1_PERIPH_UART9)
2196 #define __HAL_RCC_UART9_RELEASE_RESET()   LL_APB2_GRP1_ReleaseReset(LL_APB2_GRP1_PERIPH_UART9)
2197 
2198 #define __HAL_RCC_USART10_FORCE_RESET()   LL_APB2_GRP1_ForceReset(LL_APB2_GRP1_PERIPH_USART10)
2199 #define __HAL_RCC_USART10_RELEASE_RESET() LL_APB2_GRP1_ReleaseReset(LL_APB2_GRP1_PERIPH_USART10)
2200 
2201 /**
2202   * @}
2203   */
2204 
2205 /** @defgroup RCC_APB4_Force_Release_Reset APB4 Peripheral Force Release Reset
2206   * @brief  Force or release APB4 peripheral reset.
2207   * @{
2208   */
2209 
2210 #define __HAL_RCC_APB4_FORCE_RESET()      do { \
2211                                                WRITE_REG(RCC->APB4RSTSR1, 0x00019EACUL); \
2212                                                WRITE_REG(RCC->APB4RSTSR2, 0x00000005UL); \
2213                                              } while(0)
2214 #define __HAL_RCC_APB4_RELEASE_RESET()    do { \
2215                                                WRITE_REG(RCC->APB4RSTSR1, 0UL); \
2216                                                WRITE_REG(RCC->APB4RSTSR2, 0UL); \
2217                                              } while(0)
2218 
2219 #define __HAL_RCC_DTS_FORCE_RESET()       LL_APB4_GRP2_ForceReset(LL_APB4_GRP2_PERIPH_DTS)
2220 #define __HAL_RCC_DTS_RELEASE_RESET()     LL_APB4_GRP2_ReleaseReset(LL_APB4_GRP2_PERIPH_DTS)
2221 
2222 #define __HAL_RCC_HDP_FORCE_RESET()       LL_APB4_GRP1_ForceReset(LL_APB4_GRP1_PERIPH_HDP)
2223 #define __HAL_RCC_HDP_RELEASE_RESET()     LL_APB4_GRP1_ReleaseReset(LL_APB4_GRP1_PERIPH_HDP)
2224 
2225 #define __HAL_RCC_I2C4_FORCE_RESET()      LL_APB4_GRP1_ForceReset(LL_APB4_GRP1_PERIPH_I2C4)
2226 #define __HAL_RCC_I2C4_RELEASE_RESET()    LL_APB4_GRP1_ReleaseReset(LL_APB4_GRP1_PERIPH_I2C4)
2227 
2228 #define __HAL_RCC_LPTIM2_FORCE_RESET()    LL_APB4_GRP1_ForceReset(LL_APB4_GRP1_PERIPH_LPTIM2)
2229 #define __HAL_RCC_LPTIM2_RELEASE_RESET()  LL_APB4_GRP1_ReleaseReset(LL_APB4_GRP1_PERIPH_LPTIM2)
2230 
2231 #define __HAL_RCC_LPTIM3_FORCE_RESET()    LL_APB4_GRP1_ForceReset(LL_APB4_GRP1_PERIPH_LPTIM3)
2232 #define __HAL_RCC_LPTIM3_RELEASE_RESET()  LL_APB4_GRP1_ReleaseReset(LL_APB4_GRP1_PERIPH_LPTIM3)
2233 
2234 #define __HAL_RCC_LPTIM4_FORCE_RESET()    LL_APB4_GRP1_ForceReset(LL_APB4_GRP1_PERIPH_LPTIM4)
2235 #define __HAL_RCC_LPTIM4_RELEASE_RESET()  LL_APB4_GRP1_ReleaseReset(LL_APB4_GRP1_PERIPH_LPTIM4)
2236 
2237 #define __HAL_RCC_LPTIM5_FORCE_RESET()    LL_APB4_GRP1_ForceReset(LL_APB4_GRP1_PERIPH_LPTIM5)
2238 #define __HAL_RCC_LPTIM5_RELEASE_RESET()  LL_APB4_GRP1_ReleaseReset(LL_APB4_GRP1_PERIPH_LPTIM5)
2239 
2240 #define __HAL_RCC_LPUART1_FORCE_RESET()   LL_APB4_GRP1_ForceReset(LL_APB4_GRP1_PERIPH_LPUART1)
2241 #define __HAL_RCC_LPUART1_RELEASE_RESET() LL_APB4_GRP1_ReleaseReset(LL_APB4_GRP1_PERIPH_LPUART1)
2242 
2243 #define __HAL_RCC_RTC_FORCE_RESET()       LL_APB4_GRP1_ForceReset(LL_APB4_GRP1_PERIPH_RTC)
2244 #define __HAL_RCC_RTC_RELEASE_RESET()     LL_APB4_GRP1_ReleaseReset(LL_APB4_GRP1_PERIPH_RTC)
2245 
2246 #define __HAL_RCC_SPI6_FORCE_RESET()      LL_APB4_GRP1_ForceReset(LL_APB4_GRP1_PERIPH_SPI6)
2247 #define __HAL_RCC_SPI6_RELEASE_RESET()    LL_APB4_GRP1_ReleaseReset(LL_APB4_GRP1_PERIPH_SPI6)
2248 
2249 #define __HAL_RCC_SYSCFG_FORCE_RESET()    LL_APB4_GRP2_ForceReset(LL_APB4_GRP2_PERIPH_SYSCFG)
2250 #define __HAL_RCC_SYSCFG_RELEASE_RESET()  LL_APB4_GRP2_ReleaseReset(LL_APB4_GRP2_PERIPH_SYSCFG)
2251 
2252 #define __HAL_RCC_VREFBUF_FORCE_RESET()   LL_APB4_GRP1_ForceReset(LL_APB4_GRP1_PERIPH_VREFBUF)
2253 #define __HAL_RCC_VREFBUF_RELEASE_RESET() LL_APB4_GRP1_ReleaseReset(LL_APB4_GRP1_PERIPH_VREFBUF)
2254 
2255 /**
2256   * @}
2257   */
2258 
2259 /** @defgroup RCC_APB5_Force_Release_Reset APB5 Peripheral Force Release Reset
2260   * @brief  Force or release APB5 peripheral reset.
2261   * @{
2262   */
2263 
2264 #define __HAL_RCC_APB5_FORCE_RESET()      WRITE_REG(RCC->APB5RSTSR, 0x00000076UL)
2265 #define __HAL_RCC_APB5_RELEASE_RESET()    WRITE_REG(RCC->APB5RSTSR, 0UL)
2266 
2267 #define __HAL_RCC_CSI_FORCE_RESET()       LL_APB5_GRP1_ForceReset(LL_APB5_GRP1_PERIPH_CSI)
2268 #define __HAL_RCC_CSI_RELEASE_RESET()     LL_APB5_GRP1_ReleaseReset(LL_APB5_GRP1_PERIPH_CSI)
2269 
2270 #define __HAL_RCC_DCMIPP_FORCE_RESET()    LL_APB5_GRP1_ForceReset(LL_APB5_GRP1_PERIPH_DCMIPP)
2271 #define __HAL_RCC_DCMIPP_RELEASE_RESET()  LL_APB5_GRP1_ReleaseReset(LL_APB5_GRP1_PERIPH_DCMIPP)
2272 
2273 #define __HAL_RCC_GFXTIM_FORCE_RESET()    LL_APB5_GRP1_ForceReset(LL_APB5_GRP1_PERIPH_GFXTIM)
2274 #define __HAL_RCC_GFXTIM_RELEASE_RESET()  LL_APB5_GRP1_ReleaseReset(LL_APB5_GRP1_PERIPH_GFXTIM)
2275 
2276 #define __HAL_RCC_LTDC_FORCE_RESET()      LL_APB5_GRP1_ForceReset(LL_APB5_GRP1_PERIPH_LTDC)
2277 #define __HAL_RCC_LTDC_RELEASE_RESET()    LL_APB5_GRP1_ReleaseReset(LL_APB5_GRP1_PERIPH_LTDC)
2278 
2279 #define __HAL_RCC_VENC_FORCE_RESET()     LL_APB5_GRP1_ForceReset(LL_APB5_GRP1_PERIPH_VENC)
2280 #define __HAL_RCC_VENC_RELEASE_RESET()   LL_APB5_GRP1_ReleaseReset(LL_APB5_GRP1_PERIPH_VENC)
2281 
2282 /**
2283   * @}
2284   */
2285 
2286 /** @defgroup RCC_MISC_Configuration_Force_Release_Reset Misc Configuration Force Release Reset
2287   * @brief  Force or release misc configuration reset.
2288   * @note   DBG reset is always security-protected and thus hidden to the non-secure application.
2289   * @{
2290   */
2291 
2292 #if defined (CPU_IN_SECURE_STATE)
2293 #define __HAL_RCC_DBG_FORCE_RESET()         LL_MISC_ForceReset(LL_DBG)
2294 #define __HAL_RCC_DBG_RELEASE_RESET()       LL_MISC_ReleaseReset(LL_DBG)
2295 #endif /* CPU_IN_SECURE_STATE */
2296 
2297 #define __HAL_RCC_XSPIPHY1_FORCE_RESET()    LL_MISC_ForceReset(LL_XSPIPHY1)
2298 #define __HAL_RCC_XSPIPHY1_RELEASE_RESET()  LL_MISC_ReleaseReset(LL_XSPIPHY1)
2299 
2300 #define __HAL_RCC_XSPIPHY2_FORCE_RESET()    LL_MISC_ForceReset(LL_XSPIPHY2)
2301 #define __HAL_RCC_XSPIPHY2_RELEASE_RESET()  LL_MISC_ReleaseReset(LL_XSPIPHY2)
2302 
2303 #define __HAL_RCC_SDMMC1DLL_FORCE_RESET()   LL_MISC_ForceReset(LL_SDMMC1DLL)
2304 #define __HAL_RCC_SDMMC1DLL_RELEASE_RESET() LL_MISC_ReleaseReset(LL_SDMMC1DLL)
2305 
2306 #define __HAL_RCC_SDMMC2DLL_FORCE_RESET()   LL_MISC_ForceReset(LL_SDMMC2DLL)
2307 #define __HAL_RCC_SDMMC2DLL_RELEASE_RESET() LL_MISC_ReleaseReset(LL_SDMMC2DLL)
2308 
2309 /**
2310   * @}
2311   */
2312 
2313 
2314 /** @defgroup RCC_Embedded_Mem_Clock_Sleep_Enable_Disable Embedded memory Clock Sleep Enable Disable
2315   * @brief  Enable or disable the embedded memory clock during Low Power (Sleep) mode.
2316   * @note   Embedded memory clock gating in SLEEP mode can be used to further reduce
2317   *         power consumption.
2318   * @note   By default, all embedded memory clocks are disabled during SLEEP mode.
2319   * @{
2320   */
2321 #define __HAL_RCC_AXISRAM1_MEM_CLK_SLEEP_ENABLE()     LL_MEM_EnableClockLowPower(LL_MEM_AXISRAM1)
2322 #define __HAL_RCC_AXISRAM1_MEM_CLK_SLEEP_DISABLE()    LL_MEM_DisableClockLowPower(LL_MEM_AXISRAM1)
2323 
2324 #define __HAL_RCC_AXISRAM2_MEM_CLK_SLEEP_ENABLE()     LL_MEM_EnableClockLowPower(LL_MEM_AXISRAM2)
2325 #define __HAL_RCC_AXISRAM2_MEM_CLK_SLEEP_DISABLE()    LL_MEM_DisableClockLowPower(LL_MEM_AXISRAM2)
2326 
2327 #define __HAL_RCC_AXISRAM3_MEM_CLK_SLEEP_ENABLE()     LL_MEM_EnableClockLowPower(LL_MEM_AXISRAM3)
2328 #define __HAL_RCC_AXISRAM3_MEM_CLK_SLEEP_DISABLE()    LL_MEM_DisableClockLowPower(LL_MEM_AXISRAM3)
2329 
2330 #define __HAL_RCC_AXISRAM4_MEM_CLK_SLEEP_ENABLE()     LL_MEM_EnableClockLowPower(LL_MEM_AXISRAM4)
2331 #define __HAL_RCC_AXISRAM4_MEM_CLK_SLEEP_DISABLE()    LL_MEM_DisableClockLowPower(LL_MEM_AXISRAM4)
2332 
2333 #define __HAL_RCC_AXISRAM5_MEM_CLK_SLEEP_ENABLE()     LL_MEM_EnableClockLowPower(LL_MEM_AXISRAM5)
2334 #define __HAL_RCC_AXISRAM5_MEM_CLK_SLEEP_DISABLE()    LL_MEM_DisableClockLowPower(LL_MEM_AXISRAM5)
2335 
2336 #define __HAL_RCC_AXISRAM6_MEM_CLK_SLEEP_ENABLE()     LL_MEM_EnableClockLowPower(LL_MEM_AXISRAM6)
2337 #define __HAL_RCC_AXISRAM6_MEM_CLK_SLEEP_DISABLE()    LL_MEM_DisableClockLowPower(LL_MEM_AXISRAM6)
2338 
2339 #define __HAL_RCC_AHBSRAM1_MEM_CLK_SLEEP_ENABLE()     LL_MEM_EnableClockLowPower(LL_MEM_AHBSRAM1)
2340 #define __HAL_RCC_AHBSRAM1_MEM_CLK_SLEEP_DISABLE()    LL_MEM_DisableClockLowPower(LL_MEM_AHBSRAM1)
2341 
2342 #define __HAL_RCC_AHBSRAM2_MEM_CLK_SLEEP_ENABLE()     LL_MEM_EnableClockLowPower(LL_MEM_AHBSRAM2)
2343 #define __HAL_RCC_AHBSRAM2_MEM_CLK_SLEEP_DISABLE()    LL_MEM_DisableClockLowPower(LL_MEM_AHBSRAM2)
2344 
2345 #define __HAL_RCC_BKPSRAM_MEM_CLK_SLEEP_ENABLE()      LL_MEM_EnableClockLowPower(LL_MEM_BKPSRAM)
2346 #define __HAL_RCC_BKPSRAM_MEM_CLK_SLEEP_DISABLE()     LL_MEM_DisableClockLowPower(LL_MEM_BKPSRAM)
2347 
2348 #define __HAL_RCC_FLEXRAM_MEM_CLK_SLEEP_ENABLE()      LL_MEM_EnableClockLowPower(LL_MEM_FLEXRAM)
2349 #define __HAL_RCC_FLEXRAM_MEM_CLK_SLEEP_DISABLE()     LL_MEM_DisableClockLowPower(LL_MEM_FLEXRAM)
2350 
2351 #define __HAL_RCC_CACHEAXIRAM_MEM_CLK_SLEEP_ENABLE()  LL_MEM_EnableClockLowPower(LL_MEM_CACHEAXIRAM)
2352 #define __HAL_RCC_CACHEAXIRAM_MEM_CLK_SLEEP_DISABLE() LL_MEM_DisableClockLowPower(LL_MEM_CACHEAXIRAM)
2353 
2354 #define __HAL_RCC_VENCRAM_MEM_CLK_SLEEP_ENABLE()      LL_MEM_EnableClockLowPower(LL_MEM_VENCRAM)
2355 #define __HAL_RCC_VENCRAM_MEM_CLK_SLEEP_DISABLE()     LL_MEM_DisableClockLowPower(LL_MEM_VENCRAM)
2356 
2357 /**
2358   * @}
2359   */
2360 
2361 /** @defgroup RCC_AHB1_Clock_Sleep_Enable_Disable AHB1 Peripheral Clock Sleep Enable Disable
2362   * @brief  Enable or disable the AHB1 peripheral clock during Low Power (Sleep) mode.
2363   * @note   Peripheral clock gating in SLEEP mode can be used to further reduce
2364   *         power consumption.
2365   * @note   By default, all peripheral clocks are disabled during SLEEP mode.
2366   * @{
2367   */
2368 
2369 #define __HAL_RCC_ADC12_CLK_SLEEP_ENABLE()   LL_AHB1_GRP1_EnableClockLowPower(LL_AHB1_GRP1_PERIPH_ADC12)
2370 #define __HAL_RCC_ADC12_CLK_SLEEP_DISABLE()  LL_AHB1_GRP1_DisableClockLowPower(LL_AHB1_GRP1_PERIPH_ADC12)
2371 
2372 #define __HAL_RCC_GPDMA1_CLK_SLEEP_ENABLE()  LL_AHB1_GRP1_EnableClockLowPower(LL_AHB1_GRP1_PERIPH_GPDMA1)
2373 #define __HAL_RCC_GPDMA1_CLK_SLEEP_DISABLE() LL_AHB1_GRP1_DisableClockLowPower(LL_AHB1_GRP1_PERIPH_GPDMA1)
2374 
2375 /**
2376   * @}
2377   */
2378 
2379 /** @defgroup RCC_AHB2_Clock_Sleep_Enable_Disable AHB2 Peripheral Clock Sleep Enable Disable
2380   * @brief  Enable or disable the AHB2 peripheral clock during Low Power (Sleep) mode.
2381   * @note   Peripheral clock gating in SLEEP mode can be used to further reduce
2382   *         power consumption.
2383   * @note   By default, all peripheral clocks are disabled during SLEEP mode.
2384   * @{
2385   */
2386 
2387 #define __HAL_RCC_ADF1_CLK_SLEEP_ENABLE()    LL_AHB2_GRP1_EnableClockLowPower(LL_AHB2_GRP1_PERIPH_ADF1)
2388 #define __HAL_RCC_ADF1_CLK_SLEEP_DISABLE()   LL_AHB2_GRP1_DisableClockLowPower(LL_AHB2_GRP1_PERIPH_ADF1)
2389 
2390 #define __HAL_RCC_MDF1_CLK_SLEEP_ENABLE()    LL_AHB2_GRP1_EnableClockLowPower(LL_AHB2_GRP1_PERIPH_MDF1)
2391 #define __HAL_RCC_MDF1_CLK_SLEEP_DISABLE()   LL_AHB2_GRP1_DisableClockLowPower(LL_AHB2_GRP1_PERIPH_MDF1)
2392 
2393 #define __HAL_RCC_RAMCFG_CLK_SLEEP_ENABLE()  LL_AHB2_GRP1_EnableClockLowPower(LL_AHB2_GRP1_PERIPH_RAMCFG)
2394 #define __HAL_RCC_RAMCFG_CLK_SLEEP_DISABLE() LL_AHB2_GRP1_DisableClockLowPower(LL_AHB2_GRP1_PERIPH_RAMCFG)
2395 
2396 /**
2397   * @}
2398   */
2399 
2400 /** @defgroup RCC_AHB3_Clock_Sleep_Enable_Disable AHB3 Peripheral Clock Sleep Enable Disable
2401   * @brief  Enable or disable the AHB3 peripheral clock during Low Power (Sleep) mode.
2402   * @note   Peripheral clock gating in SLEEP mode can be used to further reduce
2403   *         power consumption.
2404   * @note   By default, all peripheral clocks except IAC are disabled during SLEEP mode.
2405   * @note   IAC, RIFSC and RIFAF peripheral clocks are always security-protected and thus hidden
2406   *         to the non-secure application.
2407   * @{
2408   */
2409 
2410 #if defined(CRYP)
2411 #define __HAL_RCC_CRYP_CLK_SLEEP_ENABLE()    LL_AHB3_GRP1_EnableClockLowPower(LL_AHB3_GRP1_PERIPH_CRYP)
2412 #define __HAL_RCC_CRYP_CLK_SLEEP_DISABLE()   LL_AHB3_GRP1_DisableClockLowPower(LL_AHB3_GRP1_PERIPH_CRYP)
2413 #endif /* CRYP */
2414 
2415 #define __HAL_RCC_HASH_CLK_SLEEP_ENABLE()    LL_AHB3_GRP1_EnableClockLowPower(LL_AHB3_GRP1_PERIPH_HASH)
2416 #define __HAL_RCC_HASH_CLK_SLEEP_DISABLE()   LL_AHB3_GRP1_DisableClockLowPower(LL_AHB3_GRP1_PERIPH_HASH)
2417 
2418 #if defined (CPU_IN_SECURE_STATE)
2419 #define __HAL_RCC_IAC_CLK_SLEEP_ENABLE()     LL_AHB3_GRP1_EnableClockLowPower(LL_AHB3_GRP1_PERIPH_IAC)
2420 #define __HAL_RCC_IAC_CLK_SLEEP_DISABLE()    LL_AHB3_GRP1_DisableClockLowPower(LL_AHB3_GRP1_PERIPH_IAC)
2421 #endif /* CPU_IN_SECURE_STATE */
2422 
2423 #define __HAL_RCC_PKA_CLK_SLEEP_ENABLE()     LL_AHB3_GRP1_EnableClockLowPower(LL_AHB3_GRP1_PERIPH_PKA)
2424 #define __HAL_RCC_PKA_CLK_SLEEP_DISABLE()    LL_AHB3_GRP1_DisableClockLowPower(LL_AHB3_GRP1_PERIPH_PKA)
2425 
2426 #if defined (CPU_IN_SECURE_STATE)
2427 #define __HAL_RCC_RIFSC_CLK_SLEEP_ENABLE()   LL_AHB3_GRP1_EnableClockLowPower(LL_AHB3_GRP1_PERIPH_RIFSC)
2428 #define __HAL_RCC_RIFSC_CLK_SLEEP_DISABLE()  LL_AHB3_GRP1_DisableClockLowPower(LL_AHB3_GRP1_PERIPH_RIFSC)
2429 #endif /* CPU_IN_SECURE_STATE */
2430 
2431 #if defined (CPU_IN_SECURE_STATE)
2432 #define __HAL_RCC_RISAF_CLK_SLEEP_ENABLE()   LL_AHB3_GRP1_EnableClockLowPower(LL_AHB3_GRP1_PERIPH_RISAF)
2433 #define __HAL_RCC_RISAF_CLK_SLEEP_DISABLE()  LL_AHB3_GRP1_DisableClockLowPower(LL_AHB3_GRP1_PERIPH_RISAF)
2434 #endif /* CPU_IN_SECURE_STATE */
2435 
2436 #define __HAL_RCC_RNG_CLK_SLEEP_ENABLE()     LL_AHB3_GRP1_EnableClockLowPower(LL_AHB3_GRP1_PERIPH_RNG)
2437 #define __HAL_RCC_RNG_CLK_SLEEP_DISABLE()    LL_AHB3_GRP1_DisableClockLowPower(LL_AHB3_GRP1_PERIPH_RNG)
2438 
2439 #if defined(SAES)
2440 #define __HAL_RCC_SAES_CLK_SLEEP_ENABLE()    LL_AHB3_GRP1_EnableClockLowPower(LL_AHB3_GRP1_PERIPH_SAES)
2441 #define __HAL_RCC_SAES_CLK_SLEEP_DISABLE()   LL_AHB3_GRP1_DisableClockLowPower(LL_AHB3_GRP1_PERIPH_SAES)
2442 #endif /* SAES */
2443 
2444 /**
2445   * @}
2446   */
2447 
2448 /** @defgroup RCC_AHB4_Clock_Sleep_Enable_Disable AHB4 Peripheral Clock Sleep Enable Disable
2449   * @brief  Enable or disable the AHB4 peripheral clock during Low Power (Sleep) mode.
2450   * @note   Peripheral clock gating in SLEEP mode can be used to further reduce
2451   *         power consumption.
2452   * @note   By default, all peripheral clocks except PWR are disabled during SLEEP mode.
2453   * @note   PWR is always security-protected and thus hidden for non-secure application
2454   * @{
2455   */
2456 
2457 #define __HAL_RCC_CRC_CLK_SLEEP_ENABLE()     LL_AHB4_GRP1_EnableClockLowPower(LL_AHB4_GRP1_PERIPH_CRC)
2458 #define __HAL_RCC_CRC_CLK_SLEEP_DISABLE()    LL_AHB4_GRP1_DisableClockLowPower(LL_AHB4_GRP1_PERIPH_CRC)
2459 
2460 #define __HAL_RCC_GPIOA_CLK_SLEEP_ENABLE()   LL_AHB4_GRP1_EnableClockLowPower(LL_AHB4_GRP1_PERIPH_GPIOA)
2461 #define __HAL_RCC_GPIOA_CLK_SLEEP_DISABLE()  LL_AHB4_GRP1_DisableClockLowPower(LL_AHB4_GRP1_PERIPH_GPIOA)
2462 
2463 #define __HAL_RCC_GPIOB_CLK_SLEEP_ENABLE()   LL_AHB4_GRP1_EnableClockLowPower(LL_AHB4_GRP1_PERIPH_GPIOB)
2464 #define __HAL_RCC_GPIOB_CLK_SLEEP_DISABLE()  LL_AHB4_GRP1_DisableClockLowPower(LL_AHB4_GRP1_PERIPH_GPIOB)
2465 
2466 #define __HAL_RCC_GPIOC_CLK_SLEEP_ENABLE()   LL_AHB4_GRP1_EnableClockLowPower(LL_AHB4_GRP1_PERIPH_GPIOC)
2467 #define __HAL_RCC_GPIOC_CLK_SLEEP_DISABLE()  LL_AHB4_GRP1_DisableClockLowPower(LL_AHB4_GRP1_PERIPH_GPIOC)
2468 
2469 #define __HAL_RCC_GPIOD_CLK_SLEEP_ENABLE()   LL_AHB4_GRP1_EnableClockLowPower(LL_AHB4_GRP1_PERIPH_GPIOD)
2470 #define __HAL_RCC_GPIOD_CLK_SLEEP_DISABLE()  LL_AHB4_GRP1_DisableClockLowPower(LL_AHB4_GRP1_PERIPH_GPIOD)
2471 
2472 #define __HAL_RCC_GPIOE_CLK_SLEEP_ENABLE()   LL_AHB4_GRP1_EnableClockLowPower(LL_AHB4_GRP1_PERIPH_GPIOE)
2473 #define __HAL_RCC_GPIOE_CLK_SLEEP_DISABLE()  LL_AHB4_GRP1_DisableClockLowPower(LL_AHB4_GRP1_PERIPH_GPIOE)
2474 
2475 #define __HAL_RCC_GPIOF_CLK_SLEEP_ENABLE()   LL_AHB4_GRP1_EnableClockLowPower(LL_AHB4_GRP1_PERIPH_GPIOF)
2476 #define __HAL_RCC_GPIOF_CLK_SLEEP_DISABLE()  LL_AHB4_GRP1_DisableClockLowPower(LL_AHB4_GRP1_PERIPH_GPIOF)
2477 
2478 #define __HAL_RCC_GPIOG_CLK_SLEEP_ENABLE()   LL_AHB4_GRP1_EnableClockLowPower(LL_AHB4_GRP1_PERIPH_GPIOG)
2479 #define __HAL_RCC_GPIOG_CLK_SLEEP_DISABLE()  LL_AHB4_GRP1_DisableClockLowPower(LL_AHB4_GRP1_PERIPH_GPIOG)
2480 
2481 #define __HAL_RCC_GPIOH_CLK_SLEEP_ENABLE()   LL_AHB4_GRP1_EnableClockLowPower(LL_AHB4_GRP1_PERIPH_GPIOH)
2482 #define __HAL_RCC_GPIOH_CLK_SLEEP_DISABLE()  LL_AHB4_GRP1_DisableClockLowPower(LL_AHB4_GRP1_PERIPH_GPIOH)
2483 
2484 #define __HAL_RCC_GPION_CLK_SLEEP_ENABLE()   LL_AHB4_GRP1_EnableClockLowPower(LL_AHB4_GRP1_PERIPH_GPION)
2485 #define __HAL_RCC_GPION_CLK_SLEEP_DISABLE()  LL_AHB4_GRP1_DisableClockLowPower(LL_AHB4_GRP1_PERIPH_GPION)
2486 
2487 #define __HAL_RCC_GPIOO_CLK_SLEEP_ENABLE()   LL_AHB4_GRP1_EnableClockLowPower(LL_AHB4_GRP1_PERIPH_GPIOO)
2488 #define __HAL_RCC_GPIOO_CLK_SLEEP_DISABLE()  LL_AHB4_GRP1_DisableClockLowPower(LL_AHB4_GRP1_PERIPH_GPIOO)
2489 
2490 #define __HAL_RCC_GPIOP_CLK_SLEEP_ENABLE()   LL_AHB4_GRP1_EnableClockLowPower(LL_AHB4_GRP1_PERIPH_GPIOP)
2491 #define __HAL_RCC_GPIOP_CLK_SLEEP_DISABLE()  LL_AHB4_GRP1_DisableClockLowPower(LL_AHB4_GRP1_PERIPH_GPIOP)
2492 
2493 #define __HAL_RCC_GPIOQ_CLK_SLEEP_ENABLE()   LL_AHB4_GRP1_EnableClockLowPower(LL_AHB4_GRP1_PERIPH_GPIOQ)
2494 #define __HAL_RCC_GPIOQ_CLK_SLEEP_DISABLE()  LL_AHB4_GRP1_DisableClockLowPower(LL_AHB4_GRP1_PERIPH_GPIOQ)
2495 
2496 #if defined (CPU_IN_SECURE_STATE)
2497 #define __HAL_RCC_PWR_CLK_SLEEP_ENABLE()     LL_AHB4_GRP1_EnableClockLowPower(LL_AHB4_GRP1_PERIPH_PWR)
2498 #define __HAL_RCC_PWR_CLK_SLEEP_DISABLE()    LL_AHB4_GRP1_DisableClockLowPower(LL_AHB4_GRP1_PERIPH_PWR)
2499 #endif /* CPU_IN_SECURE_STATE */
2500 
2501 /**
2502   * @}
2503   */
2504 
2505 /** @defgroup RCC_AHB5_Clock_Sleep_Enable_Disable AHB5 Peripheral Clock Sleep Enable Disable
2506   * @brief  Enable or disable the AHB1 peripheral clock during Low Power (Sleep) mode.
2507   * @note   Peripheral clock gating in SLEEP mode can be used to further reduce
2508   *         power consumption.
2509   * @note   By default, all peripheral clocks are disabled during SLEEP mode.
2510   * @{
2511   */
2512 
2513 #define __HAL_RCC_DMA2D_CLK_SLEEP_ENABLE()   LL_AHB5_GRP1_EnableClockLowPower(LL_AHB5_GRP1_PERIPH_DMA2D)
2514 #define __HAL_RCC_DMA2D_CLK_SLEEP_DISABLE()  LL_AHB5_GRP1_DisableClockLowPower(LL_AHB5_GRP1_PERIPH_DMA2D)
2515 
2516 #if defined(ETH1)
2517 #define __HAL_RCC_ETH1_CLK_SLEEP_ENABLE()    LL_AHB5_GRP1_EnableClockLowPower(LL_AHB5_GRP1_PERIPH_ETH1)
2518 #define __HAL_RCC_ETH1_CLK_SLEEP_DISABLE()   LL_AHB5_GRP1_DisableClockLowPower(LL_AHB5_GRP1_PERIPH_ETH1)
2519 
2520 #define __HAL_RCC_ETH1MAC_CLK_SLEEP_ENABLE()  LL_AHB5_GRP1_EnableClockLowPower(LL_AHB5_GRP1_PERIPH_ETH1MAC)
2521 #define __HAL_RCC_ETH1MAC_CLK_SLEEP_DISABLE() LL_AHB5_GRP1_DisableClockLowPower(LL_AHB5_GRP1_PERIPH_ETH1MAC)
2522 
2523 #define __HAL_RCC_ETH1TX_CLK_SLEEP_ENABLE()  LL_AHB5_GRP1_EnableClockLowPower(LL_AHB5_GRP1_PERIPH_ETH1TX)
2524 #define __HAL_RCC_ETH1TX_CLK_SLEEP_DISABLE() LL_AHB5_GRP1_DisableClockLowPower(LL_AHB5_GRP1_PERIPH_ETH1TX)
2525 
2526 #define __HAL_RCC_ETH1RX_CLK_SLEEP_ENABLE()  LL_AHB5_GRP1_EnableClockLowPower(LL_AHB5_GRP1_PERIPH_ETH1RX)
2527 #define __HAL_RCC_ETH1RX_CLK_SLEEP_DISABLE() LL_AHB5_GRP1_DisableClockLowPower(LL_AHB5_GRP1_PERIPH_ETH1RX)
2528 #endif /* ETH1 */
2529 
2530 #define __HAL_RCC_FMC_CLK_SLEEP_ENABLE()     LL_AHB5_GRP1_EnableClockLowPower(LL_AHB5_GRP1_PERIPH_FMC)
2531 #define __HAL_RCC_FMC_CLK_SLEEP_DISABLE()    LL_AHB5_GRP1_DisableClockLowPower(LL_AHB5_GRP1_PERIPH_FMC)
2532 
2533 #if defined(GFXMMU)
2534 #define __HAL_RCC_GFXMMU_CLK_SLEEP_ENABLE()  LL_AHB5_GRP1_EnableClockLowPower(LL_AHB5_GRP1_PERIPH_GFXMMU)
2535 #define __HAL_RCC_GFXMMU_CLK_SLEEP_DISABLE() LL_AHB5_GRP1_DisableClockLowPower(LL_AHB5_GRP1_PERIPH_GFXMMU)
2536 #endif /* GFXMMU */
2537 
2538 #if defined(GPU2D)
2539 #define __HAL_RCC_GPU2D_CLK_SLEEP_ENABLE()   LL_AHB5_GRP1_EnableClockLowPower(LL_AHB5_GRP1_PERIPH_GPU2D)
2540 #define __HAL_RCC_GPU2D_CLK_SLEEP_DISABLE()  LL_AHB5_GRP1_DisableClockLowPower(LL_AHB5_GRP1_PERIPH_GPU2D)
2541 #endif /* GPU2D */
2542 
2543 #define __HAL_RCC_HPDMA1_CLK_SLEEP_ENABLE()  LL_AHB5_GRP1_EnableClockLowPower(LL_AHB5_GRP1_PERIPH_HPDMA1)
2544 #define __HAL_RCC_HPDMA1_CLK_SLEEP_DISABLE() LL_AHB5_GRP1_DisableClockLowPower(LL_AHB5_GRP1_PERIPH_HPDMA1)
2545 
2546 #if defined(JPEG)
2547 #define __HAL_RCC_JPEG_CLK_SLEEP_ENABLE()    LL_AHB5_GRP1_EnableClockLowPower(LL_AHB5_GRP1_PERIPH_JPEG)
2548 #define __HAL_RCC_JPEG_CLK_SLEEP_DISABLE()   LL_AHB5_GRP1_DisableClockLowPower(LL_AHB5_GRP1_PERIPH_JPEG)
2549 #endif /* JPEG */
2550 
2551 #define __HAL_RCC_XSPI1_CLK_SLEEP_ENABLE()   LL_AHB5_GRP1_EnableClockLowPower(LL_AHB5_GRP1_PERIPH_XSPI1)
2552 #define __HAL_RCC_XSPI1_CLK_SLEEP_DISABLE()  LL_AHB5_GRP1_DisableClockLowPower(LL_AHB5_GRP1_PERIPH_XSPI1)
2553 
2554 #define __HAL_RCC_XSPI2_CLK_SLEEP_ENABLE()   LL_AHB5_GRP1_EnableClockLowPower(LL_AHB5_GRP1_PERIPH_XSPI2)
2555 #define __HAL_RCC_XSPI2_CLK_SLEEP_DISABLE()  LL_AHB5_GRP1_DisableClockLowPower(LL_AHB5_GRP1_PERIPH_XSPI2)
2556 
2557 #define __HAL_RCC_XSPI3_CLK_SLEEP_ENABLE()   LL_AHB5_GRP1_EnableClockLowPower(LL_AHB5_GRP1_PERIPH_XSPI3)
2558 #define __HAL_RCC_XSPI3_CLK_SLEEP_DISABLE()  LL_AHB5_GRP1_DisableClockLowPower(LL_AHB5_GRP1_PERIPH_XSPI3)
2559 
2560 #define __HAL_RCC_XSPIM_CLK_SLEEP_ENABLE()   LL_AHB5_GRP1_EnableClockLowPower(LL_AHB5_GRP1_PERIPH_XSPIM)
2561 #define __HAL_RCC_XSPIM_CLK_SLEEP_DISABLE()  LL_AHB5_GRP1_DisableClockLowPower(LL_AHB5_GRP1_PERIPH_XSPIM)
2562 
2563 #define __HAL_RCC_MCE1_CLK_SLEEP_ENABLE()    LL_AHB5_GRP1_EnableClockLowPower(LL_AHB5_GRP1_PERIPH_MCE1)
2564 #define __HAL_RCC_MCE1_CLK_SLEEP_DISABLE()   LL_AHB5_GRP1_DisableClockLowPower(LL_AHB5_GRP1_PERIPH_MCE1)
2565 
2566 #define __HAL_RCC_MCE2_CLK_SLEEP_ENABLE()    LL_AHB5_GRP1_EnableClockLowPower(LL_AHB5_GRP1_PERIPH_MCE2)
2567 #define __HAL_RCC_MCE2_CLK_SLEEP_DISABLE()   LL_AHB5_GRP1_DisableClockLowPower(LL_AHB5_GRP1_PERIPH_MCE2)
2568 
2569 #define __HAL_RCC_MCE3_CLK_SLEEP_ENABLE()    LL_AHB5_GRP1_EnableClockLowPower(LL_AHB5_GRP1_PERIPH_MCE3)
2570 #define __HAL_RCC_MCE3_CLK_SLEEP_DISABLE()   LL_AHB5_GRP1_DisableClockLowPower(LL_AHB5_GRP1_PERIPH_MCE3)
2571 
2572 #define __HAL_RCC_MCE4_CLK_SLEEP_ENABLE()    LL_AHB5_GRP1_EnableClockLowPower(LL_AHB5_GRP1_PERIPH_MCE4)
2573 #define __HAL_RCC_MCE4_CLK_SLEEP_DISABLE()   LL_AHB5_GRP1_DisableClockLowPower(LL_AHB5_GRP1_PERIPH_MCE4)
2574 
2575 #define __HAL_RCC_CACHEAXI_CLK_SLEEP_ENABLE()  LL_AHB5_GRP1_EnableClockLowPower(LL_AHB5_GRP1_PERIPH_CACHEAXI)
2576 #define __HAL_RCC_CACHEAXI_CLK_SLEEP_DISABLE() LL_AHB5_GRP1_DisableClockLowPower(LL_AHB5_GRP1_PERIPH_CACHEAXI)
2577 
2578 #define __HAL_RCC_NPU_CLK_SLEEP_ENABLE()     LL_AHB5_GRP1_EnableClockLowPower(LL_AHB5_GRP1_PERIPH_NPU)
2579 #define __HAL_RCC_NPU_CLK_SLEEP_DISABLE()    LL_AHB5_GRP1_DisableClockLowPower(LL_AHB5_GRP1_PERIPH_NPU)
2580 
2581 #define __HAL_RCC_DCMI_PSSI_CLK_SLEEP_ENABLE()    LL_AHB5_GRP1_EnableClockLowPower(LL_AHB5_GRP1_PERIPH_PSSI)
2582 #define __HAL_RCC_DCMI_PSSI_CLK_SLEEP_DISABLE()   LL_AHB5_GRP1_DisableClockLowPower(LL_AHB5_GRP1_PERIPH_PSSI)
2583 
2584 #define __HAL_RCC_SDMMC1_CLK_SLEEP_ENABLE()  LL_AHB5_GRP1_EnableClockLowPower(LL_AHB5_GRP1_PERIPH_SDMMC1)
2585 #define __HAL_RCC_SDMMC1_CLK_SLEEP_DISABLE() LL_AHB5_GRP1_DisableClockLowPower(LL_AHB5_GRP1_PERIPH_SDMMC1)
2586 
2587 #define __HAL_RCC_SDMMC2_CLK_SLEEP_ENABLE()  LL_AHB5_GRP1_EnableClockLowPower(LL_AHB5_GRP1_PERIPH_SDMMC2)
2588 #define __HAL_RCC_SDMMC2_CLK_SLEEP_DISABLE() LL_AHB5_GRP1_DisableClockLowPower(LL_AHB5_GRP1_PERIPH_SDMMC2)
2589 
2590 #define __HAL_RCC_USB1_OTG_HS_CLK_SLEEP_ENABLE()  LL_AHB5_GRP1_EnableClockLowPower(LL_AHB5_GRP1_PERIPH_OTG1)
2591 #define __HAL_RCC_USB1_OTG_HS_CLK_SLEEP_DISABLE() LL_AHB5_GRP1_DisableClockLowPower(LL_AHB5_GRP1_PERIPH_OTG1)
2592 
2593 #define __HAL_RCC_USB1_OTG_HS_PHY_CLK_SLEEP_ENABLE()  LL_AHB5_GRP1_EnableClockLowPower(LL_AHB5_GRP1_PERIPH_OTGPHY1)
2594 #define __HAL_RCC_USB1_OTG_HS_PHY_CLK_SLEEP_DISABLE() LL_AHB5_GRP1_DisableClockLowPower(LL_AHB5_GRP1_PERIPH_OTGPHY1)
2595 
2596 #define __HAL_RCC_USB2_OTG_HS_CLK_SLEEP_ENABLE()  LL_AHB5_GRP1_EnableClockLowPower(LL_AHB5_GRP1_PERIPH_OTG2)
2597 #define __HAL_RCC_USB2_OTG_HS_CLK_SLEEP_DISABLE() LL_AHB5_GRP1_DisableClockLowPower(LL_AHB5_GRP1_PERIPH_OTG2)
2598 
2599 #define __HAL_RCC_USB2_OTG_HS_PHY_CLK_SLEEP_ENABLE()  LL_AHB5_GRP1_EnableClockLowPower(LL_AHB5_GRP1_PERIPH_OTGPHY2)
2600 #define __HAL_RCC_USB2_OTG_HS_PHY_CLK_SLEEP_DISABLE() LL_AHB5_GRP1_DisableClockLowPower(LL_AHB5_GRP1_PERIPH_OTGPHY2)
2601 
2602 /**
2603   * @}
2604   */
2605 
2606 /** @defgroup RCC_APB1_Clock_Sleep_Enable_Disable APB1 Peripheral Clock Sleep Enable Disable
2607   * @brief  Enable or disable the APB1 peripheral clock during Low Power (Sleep) mode.
2608   * @note   Peripheral clock gating in SLEEP mode can be used to further reduce
2609   *         power consumption.
2610   * @note   By default, all peripheral clocks are disabled during SLEEP mode.
2611   * @{
2612   */
2613 
2614 #define __HAL_RCC_FDCAN_CLK_SLEEP_ENABLE()  LL_APB1_GRP2_EnableClockLowPower(LL_APB1_GRP2_PERIPH_FDCAN)
2615 #define __HAL_RCC_FDCAN_CLK_SLEEP_DISABLE() LL_APB1_GRP2_DisableClockLowPower(LL_APB1_GRP2_PERIPH_FDCAN)
2616 
2617 #define __HAL_RCC_I2C1_CLK_SLEEP_ENABLE()   LL_APB1_GRP1_EnableClockLowPower(LL_APB1_GRP1_PERIPH_I2C1)
2618 #define __HAL_RCC_I2C1_CLK_SLEEP_DISABLE()  LL_APB1_GRP1_DisableClockLowPower(LL_APB1_GRP1_PERIPH_I2C1)
2619 
2620 #define __HAL_RCC_I2C2_CLK_SLEEP_ENABLE()   LL_APB1_GRP1_EnableClockLowPower(LL_APB1_GRP1_PERIPH_I2C2)
2621 #define __HAL_RCC_I2C2_CLK_SLEEP_DISABLE()  LL_APB1_GRP1_DisableClockLowPower(LL_APB1_GRP1_PERIPH_I2C2)
2622 
2623 #define __HAL_RCC_I2C3_CLK_SLEEP_ENABLE()   LL_APB1_GRP1_EnableClockLowPower(LL_APB1_GRP1_PERIPH_I2C3)
2624 #define __HAL_RCC_I2C3_CLK_SLEEP_DISABLE()  LL_APB1_GRP1_DisableClockLowPower(LL_APB1_GRP1_PERIPH_I2C3)
2625 
2626 #define __HAL_RCC_I3C1_CLK_SLEEP_ENABLE()   LL_APB1_GRP1_EnableClockLowPower(LL_APB1_GRP1_PERIPH_I3C1)
2627 #define __HAL_RCC_I3C1_CLK_SLEEP_DISABLE()  LL_APB1_GRP1_DisableClockLowPower(LL_APB1_GRP1_PERIPH_I3C1)
2628 
2629 #define __HAL_RCC_I3C2_CLK_SLEEP_ENABLE()   LL_APB1_GRP1_EnableClockLowPower(LL_APB1_GRP1_PERIPH_I3C2)
2630 #define __HAL_RCC_I3C2_CLK_SLEEP_DISABLE()  LL_APB1_GRP1_DisableClockLowPower(LL_APB1_GRP1_PERIPH_I3C2)
2631 
2632 #define __HAL_RCC_LPTIM1_CLK_SLEEP_ENABLE()  LL_APB1_GRP1_EnableClockLowPower(LL_APB1_GRP1_PERIPH_LPTIM1)
2633 #define __HAL_RCC_LPTIM1_CLK_SLEEP_DISABLE() LL_APB1_GRP1_DisableClockLowPower(LL_APB1_GRP1_PERIPH_LPTIM1)
2634 
2635 #define __HAL_RCC_MDIOS_CLK_SLEEP_ENABLE()  LL_APB1_GRP2_EnableClockLowPower(LL_APB1_GRP2_PERIPH_MDIOS)
2636 #define __HAL_RCC_MDIOS_CLK_SLEEP_DISABLE() LL_APB1_GRP2_DisableClockLowPower(LL_APB1_GRP2_PERIPH_MDIOS)
2637 
2638 #define __HAL_RCC_SPDIFRX1_CLK_SLEEP_ENABLE()  LL_APB1_GRP1_EnableClockLowPower(LL_APB1_GRP1_PERIPH_SPDIFRX1)
2639 #define __HAL_RCC_SPDIFRX1_CLK_SLEEP_DISABLE() LL_APB1_GRP1_DisableClockLowPower(LL_APB1_GRP1_PERIPH_SPDIFRX1)
2640 
2641 #define __HAL_RCC_SPI2_CLK_SLEEP_ENABLE()   LL_APB1_GRP1_EnableClockLowPower(LL_APB1_GRP1_PERIPH_SPI2)
2642 #define __HAL_RCC_SPI2_CLK_SLEEP_DISABLE()  LL_APB1_GRP1_DisableClockLowPower(LL_APB1_GRP1_PERIPH_SPI2)
2643 
2644 #define __HAL_RCC_SPI3_CLK_SLEEP_ENABLE()   LL_APB1_GRP1_EnableClockLowPower(LL_APB1_GRP1_PERIPH_SPI3)
2645 #define __HAL_RCC_SPI3_CLK_SLEEP_DISABLE()  LL_APB1_GRP1_DisableClockLowPower(LL_APB1_GRP1_PERIPH_SPI3)
2646 
2647 #define __HAL_RCC_TIM2_CLK_SLEEP_ENABLE()   LL_APB1_GRP1_EnableClockLowPower(LL_APB1_GRP1_PERIPH_TIM2)
2648 #define __HAL_RCC_TIM2_CLK_SLEEP_DISABLE()  LL_APB1_GRP1_DisableClockLowPower(LL_APB1_GRP1_PERIPH_TIM2)
2649 
2650 #define __HAL_RCC_TIM3_CLK_SLEEP_ENABLE()   LL_APB1_GRP1_EnableClockLowPower(LL_APB1_GRP1_PERIPH_TIM3)
2651 #define __HAL_RCC_TIM3_CLK_SLEEP_DISABLE()  LL_APB1_GRP1_DisableClockLowPower(LL_APB1_GRP1_PERIPH_TIM3)
2652 
2653 #define __HAL_RCC_TIM4_CLK_SLEEP_ENABLE()   LL_APB1_GRP1_EnableClockLowPower(LL_APB1_GRP1_PERIPH_TIM4)
2654 #define __HAL_RCC_TIM4_CLK_SLEEP_DISABLE()  LL_APB1_GRP1_DisableClockLowPower(LL_APB1_GRP1_PERIPH_TIM4)
2655 
2656 #define __HAL_RCC_TIM5_CLK_SLEEP_ENABLE()   LL_APB1_GRP1_EnableClockLowPower(LL_APB1_GRP1_PERIPH_TIM5)
2657 #define __HAL_RCC_TIM5_CLK_SLEEP_DISABLE()  LL_APB1_GRP1_DisableClockLowPower(LL_APB1_GRP1_PERIPH_TIM5)
2658 
2659 #define __HAL_RCC_TIM6_CLK_SLEEP_ENABLE()   LL_APB1_GRP1_EnableClockLowPower(LL_APB1_GRP1_PERIPH_TIM6)
2660 #define __HAL_RCC_TIM6_CLK_SLEEP_DISABLE()  LL_APB1_GRP1_DisableClockLowPower(LL_APB1_GRP1_PERIPH_TIM6)
2661 
2662 #define __HAL_RCC_TIM7_CLK_SLEEP_ENABLE()   LL_APB1_GRP1_EnableClockLowPower(LL_APB1_GRP1_PERIPH_TIM7)
2663 #define __HAL_RCC_TIM7_CLK_SLEEP_DISABLE()  LL_APB1_GRP1_DisableClockLowPower(LL_APB1_GRP1_PERIPH_TIM7)
2664 
2665 #define __HAL_RCC_TIM10_CLK_SLEEP_ENABLE()  LL_APB1_GRP1_EnableClockLowPower(LL_APB1_GRP1_PERIPH_TIM10)
2666 #define __HAL_RCC_TIM10_CLK_SLEEP_DISABLE() LL_APB1_GRP1_DisableClockLowPower(LL_APB1_GRP1_PERIPH_TIM10)
2667 
2668 #define __HAL_RCC_TIM11_CLK_SLEEP_ENABLE()  LL_APB1_GRP1_EnableClockLowPower(LL_APB1_GRP1_PERIPH_TIM11)
2669 #define __HAL_RCC_TIM11_CLK_SLEEP_DISABLE() LL_APB1_GRP1_DisableClockLowPower(LL_APB1_GRP1_PERIPH_TIM11)
2670 
2671 #define __HAL_RCC_TIM12_CLK_SLEEP_ENABLE()  LL_APB1_GRP1_EnableClockLowPower(LL_APB1_GRP1_PERIPH_TIM12)
2672 #define __HAL_RCC_TIM12_CLK_SLEEP_DISABLE() LL_APB1_GRP1_DisableClockLowPower(LL_APB1_GRP1_PERIPH_TIM12)
2673 
2674 #define __HAL_RCC_TIM13_CLK_SLEEP_ENABLE()  LL_APB1_GRP1_EnableClockLowPower(LL_APB1_GRP1_PERIPH_TIM13)
2675 #define __HAL_RCC_TIM13_CLK_SLEEP_DISABLE() LL_APB1_GRP1_DisableClockLowPower(LL_APB1_GRP1_PERIPH_TIM13)
2676 
2677 #define __HAL_RCC_TIM14_CLK_SLEEP_ENABLE()  LL_APB1_GRP1_EnableClockLowPower(LL_APB1_GRP1_PERIPH_TIM14)
2678 #define __HAL_RCC_TIM14_CLK_SLEEP_DISABLE() LL_APB1_GRP1_DisableClockLowPower(LL_APB1_GRP1_PERIPH_TIM14)
2679 
2680 #define __HAL_RCC_USART2_CLK_SLEEP_ENABLE()  LL_APB1_GRP1_EnableClockLowPower(LL_APB1_GRP1_PERIPH_USART2)
2681 #define __HAL_RCC_USART2_CLK_SLEEP_DISABLE() LL_APB1_GRP1_DisableClockLowPower(LL_APB1_GRP1_PERIPH_USART2)
2682 
2683 #define __HAL_RCC_USART3_CLK_SLEEP_ENABLE()  LL_APB1_GRP1_EnableClockLowPower(LL_APB1_GRP1_PERIPH_USART3)
2684 #define __HAL_RCC_USART3_CLK_SLEEP_DISABLE() LL_APB1_GRP1_DisableClockLowPower(LL_APB1_GRP1_PERIPH_USART3)
2685 
2686 #define __HAL_RCC_UART4_CLK_SLEEP_ENABLE()  LL_APB1_GRP1_EnableClockLowPower(LL_APB1_GRP1_PERIPH_UART4)
2687 #define __HAL_RCC_UART4_CLK_SLEEP_DISABLE() LL_APB1_GRP1_DisableClockLowPower(LL_APB1_GRP1_PERIPH_UART4)
2688 
2689 #define __HAL_RCC_UART5_CLK_SLEEP_ENABLE()  LL_APB1_GRP1_EnableClockLowPower(LL_APB1_GRP1_PERIPH_UART5)
2690 #define __HAL_RCC_UART5_CLK_SLEEP_DISABLE() LL_APB1_GRP1_DisableClockLowPower(LL_APB1_GRP1_PERIPH_UART5)
2691 
2692 #define __HAL_RCC_UART7_CLK_SLEEP_ENABLE()  LL_APB1_GRP1_EnableClockLowPower(LL_APB1_GRP1_PERIPH_UART7)
2693 #define __HAL_RCC_UART7_CLK_SLEEP_DISABLE() LL_APB1_GRP1_DisableClockLowPower(LL_APB1_GRP1_PERIPH_UART7)
2694 
2695 #define __HAL_RCC_UART8_CLK_SLEEP_ENABLE()  LL_APB1_GRP1_EnableClockLowPower(LL_APB1_GRP1_PERIPH_UART8)
2696 #define __HAL_RCC_UART8_CLK_SLEEP_DISABLE() LL_APB1_GRP1_DisableClockLowPower(LL_APB1_GRP1_PERIPH_UART8)
2697 
2698 #define __HAL_RCC_UCPD1_CLK_SLEEP_ENABLE()  LL_APB1_GRP2_EnableClockLowPower(LL_APB1_GRP2_PERIPH_UCPD1)
2699 #define __HAL_RCC_UCPD1_CLK_SLEEP_DISABLE() LL_APB1_GRP2_DisableClockLowPower(LL_APB1_GRP2_PERIPH_UCPD1)
2700 
2701 #define __HAL_RCC_WWDG_CLK_SLEEP_ENABLE()   LL_APB1_GRP1_EnableClockLowPower(LL_APB1_GRP1_PERIPH_WWDG)
2702 #define __HAL_RCC_WWDG_CLK_SLEEP_DISABLE()  LL_APB1_GRP1_DisableClockLowPower(LL_APB1_GRP1_PERIPH_WWDG)
2703 
2704 /**
2705   * @}
2706   */
2707 
2708 /** @defgroup RCC_APB2_Clock_Sleep_Enable_Disable APB2 Peripheral Clock Sleep Enable Disable
2709   * @brief  Enable or disable the APB2 peripheral clock during Low Power (Sleep) mode.
2710   * @note   Peripheral clock gating in SLEEP mode can be used to further reduce
2711   *         power consumption.
2712   * @note   By default, all peripheral clocks are disabled during SLEEP mode.
2713   * @{
2714   */
2715 
2716 #define __HAL_RCC_SAI1_CLK_SLEEP_ENABLE()    LL_APB2_GRP1_EnableClockLowPower(LL_APB2_GRP1_PERIPH_SAI1)
2717 #define __HAL_RCC_SAI1_CLK_SLEEP_DISABLE()   LL_APB2_GRP1_DisableClockLowPower(LL_APB2_GRP1_PERIPH_SAI1)
2718 
2719 #define __HAL_RCC_SAI2_CLK_SLEEP_ENABLE()    LL_APB2_GRP1_EnableClockLowPower(LL_APB2_GRP1_PERIPH_SAI2)
2720 #define __HAL_RCC_SAI2_CLK_SLEEP_DISABLE()   LL_APB2_GRP1_DisableClockLowPower(LL_APB2_GRP1_PERIPH_SAI2)
2721 
2722 #define __HAL_RCC_SPI1_CLK_SLEEP_ENABLE()    LL_APB2_GRP1_EnableClockLowPower(LL_APB2_GRP1_PERIPH_SPI1)
2723 #define __HAL_RCC_SPI1_CLK_SLEEP_DISABLE()   LL_APB2_GRP1_DisableClockLowPower(LL_APB2_GRP1_PERIPH_SPI1)
2724 
2725 #define __HAL_RCC_SPI4_CLK_SLEEP_ENABLE()    LL_APB2_GRP1_EnableClockLowPower(LL_APB2_GRP1_PERIPH_SPI4)
2726 #define __HAL_RCC_SPI4_CLK_SLEEP_DISABLE()   LL_APB2_GRP1_DisableClockLowPower(LL_APB2_GRP1_PERIPH_SPI4)
2727 
2728 #define __HAL_RCC_SPI5_CLK_SLEEP_ENABLE()    LL_APB2_GRP1_EnableClockLowPower(LL_APB2_GRP1_PERIPH_SPI5)
2729 #define __HAL_RCC_SPI5_CLK_SLEEP_DISABLE()   LL_APB2_GRP1_DisableClockLowPower(LL_APB2_GRP1_PERIPH_SPI5)
2730 
2731 #define __HAL_RCC_TIM1_CLK_SLEEP_ENABLE()    LL_APB2_GRP1_EnableClockLowPower(LL_APB2_GRP1_PERIPH_TIM1)
2732 #define __HAL_RCC_TIM1_CLK_SLEEP_DISABLE()   LL_APB2_GRP1_DisableClockLowPower(LL_APB2_GRP1_PERIPH_TIM1)
2733 
2734 #define __HAL_RCC_TIM8_CLK_SLEEP_ENABLE()    LL_APB2_GRP1_EnableClockLowPower(LL_APB2_GRP1_PERIPH_TIM8)
2735 #define __HAL_RCC_TIM8_CLK_SLEEP_DISABLE()   LL_APB2_GRP1_DisableClockLowPower(LL_APB2_GRP1_PERIPH_TIM8)
2736 
2737 #define __HAL_RCC_TIM9_CLK_SLEEP_ENABLE()    LL_APB2_GRP1_EnableClockLowPower(LL_APB2_GRP1_PERIPH_TIM9)
2738 #define __HAL_RCC_TIM9_CLK_SLEEP_DISABLE()   LL_APB2_GRP1_DisableClockLowPower(LL_APB2_GRP1_PERIPH_TIM9)
2739 
2740 #define __HAL_RCC_TIM15_CLK_SLEEP_ENABLE()   LL_APB2_GRP1_EnableClockLowPower(LL_APB2_GRP1_PERIPH_TIM15)
2741 #define __HAL_RCC_TIM15_CLK_SLEEP_DISABLE()  LL_APB2_GRP1_DisableClockLowPower(LL_APB2_GRP1_PERIPH_TIM15)
2742 
2743 #define __HAL_RCC_TIM16_CLK_SLEEP_ENABLE()   LL_APB2_GRP1_EnableClockLowPower(LL_APB2_GRP1_PERIPH_TIM16)
2744 #define __HAL_RCC_TIM16_CLK_SLEEP_DISABLE()  LL_APB2_GRP1_DisableClockLowPower(LL_APB2_GRP1_PERIPH_TIM16)
2745 
2746 #define __HAL_RCC_TIM17_CLK_SLEEP_ENABLE()   LL_APB2_GRP1_EnableClockLowPower(LL_APB2_GRP1_PERIPH_TIM17)
2747 #define __HAL_RCC_TIM17_CLK_SLEEP_DISABLE()  LL_APB2_GRP1_DisableClockLowPower(LL_APB2_GRP1_PERIPH_TIM17)
2748 
2749 #define __HAL_RCC_TIM18_CLK_SLEEP_ENABLE()   LL_APB2_GRP1_EnableClockLowPower(LL_APB2_GRP1_PERIPH_TIM18)
2750 #define __HAL_RCC_TIM18_CLK_SLEEP_DISABLE()  LL_APB2_GRP1_DisableClockLowPower(LL_APB2_GRP1_PERIPH_TIM18)
2751 
2752 #define __HAL_RCC_USART1_CLK_SLEEP_ENABLE()  LL_APB2_GRP1_EnableClockLowPower(LL_APB2_GRP1_PERIPH_USART1)
2753 #define __HAL_RCC_USART1_CLK_SLEEP_DISABLE() LL_APB2_GRP1_DisableClockLowPower(LL_APB2_GRP1_PERIPH_USART1)
2754 
2755 #define __HAL_RCC_USART6_CLK_SLEEP_ENABLE()  LL_APB2_GRP1_EnableClockLowPower(LL_APB2_GRP1_PERIPH_USART6)
2756 #define __HAL_RCC_USART6_CLK_SLEEP_DISABLE() LL_APB2_GRP1_DisableClockLowPower(LL_APB2_GRP1_PERIPH_USART6)
2757 
2758 #define __HAL_RCC_UART9_CLK_SLEEP_ENABLE()   LL_APB2_GRP1_EnableClockLowPower(LL_APB2_GRP1_PERIPH_UART9)
2759 #define __HAL_RCC_UART9_CLK_SLEEP_DISABLE()  LL_APB2_GRP1_DisableClockLowPower(LL_APB2_GRP1_PERIPH_UART9)
2760 
2761 #define __HAL_RCC_USART10_CLK_SLEEP_ENABLE()  LL_APB2_GRP1_EnableClockLowPower(LL_APB2_GRP1_PERIPH_USART10)
2762 #define __HAL_RCC_USART10_CLK_SLEEP_DISABLE() LL_APB2_GRP1_DisableClockLowPower(LL_APB2_GRP1_PERIPH_USART10)
2763 
2764 /**
2765   * @}
2766   */
2767 
2768 /** @defgroup RCC_APB4_Clock_Sleep_Enable_Disable APB4 Peripheral Clock Sleep Enable Disable
2769   * @brief  Enable or disable the APB4 peripheral clock during Low Power (Sleep) mode.
2770   * @note   Peripheral clock gating in SLEEP mode can be used to further reduce
2771   *         power consumption.
2772   * @note   By default, all peripheral clocks except BSEC are disabled during SLEEP mode.
2773   * @note   BSEC peripheral clock is always security-protected and thus hidden to the non-secure
2774   *         application.
2775   * @{
2776   */
2777 
2778 #if defined (CPU_IN_SECURE_STATE)
2779 #define __HAL_RCC_BSEC_CLK_SLEEP_ENABLE()     LL_APB4_GRP2_EnableClockLowPower(LL_APB4_GRP2_PERIPH_BSEC)
2780 #define __HAL_RCC_BSEC_CLK_SLEEP_DISABLE()    LL_APB4_GRP2_DisableClockLowPower(LL_APB4_GRP2_PERIPH_BSEC)
2781 #endif /* CPU_IN_SECURE_STATE */
2782 
2783 #define __HAL_RCC_DTS_CLK_SLEEP_ENABLE()      LL_APB4_GRP2_EnableClockLowPower(LL_APB4_GRP2_PERIPH_DTS)
2784 #define __HAL_RCC_DTS_CLK_SLEEP_DISABLE()     LL_APB4_GRP2_DisableClockLowPower(LL_APB4_GRP2_PERIPH_DTS)
2785 
2786 #define __HAL_RCC_HDP_CLK_SLEEP_ENABLE()      LL_APB4_GRP1_EnableClockLowPower(LL_APB4_GRP1_PERIPH_HDP)
2787 #define __HAL_RCC_HDP_CLK_SLEEP_DISABLE()     LL_APB4_GRP1_DisableClockLowPower(LL_APB4_GRP1_PERIPH_HDP)
2788 
2789 #define __HAL_RCC_I2C4_CLK_SLEEP_ENABLE()     LL_APB4_GRP1_EnableClockLowPower(LL_APB4_GRP1_PERIPH_I2C4)
2790 #define __HAL_RCC_I2C4_CLK_SLEEP_DISABLE()    LL_APB4_GRP1_DisableClockLowPower(LL_APB4_GRP1_PERIPH_I2C4)
2791 
2792 #define __HAL_RCC_LPTIM2_CLK_SLEEP_ENABLE()   LL_APB4_GRP1_EnableClockLowPower(LL_APB4_GRP1_PERIPH_LPTIM2)
2793 #define __HAL_RCC_LPTIM2_CLK_SLEEP_DISABLE()  LL_APB4_GRP1_DisableClockLowPower(LL_APB4_GRP1_PERIPH_LPTIM2)
2794 
2795 #define __HAL_RCC_LPTIM3_CLK_SLEEP_ENABLE()   LL_APB4_GRP1_EnableClockLowPower(LL_APB4_GRP1_PERIPH_LPTIM3)
2796 #define __HAL_RCC_LPTIM3_CLK_SLEEP_DISABLE()  LL_APB4_GRP1_DisableClockLowPower(LL_APB4_GRP1_PERIPH_LPTIM3)
2797 
2798 #define __HAL_RCC_LPTIM4_CLK_SLEEP_ENABLE()   LL_APB4_GRP1_EnableClockLowPower(LL_APB4_GRP1_PERIPH_LPTIM4)
2799 #define __HAL_RCC_LPTIM4_CLK_SLEEP_DISABLE()  LL_APB4_GRP1_DisableClockLowPower(LL_APB4_GRP1_PERIPH_LPTIM4)
2800 
2801 #define __HAL_RCC_LPTIM5_CLK_SLEEP_ENABLE()   LL_APB4_GRP1_EnableClockLowPower(LL_APB4_GRP1_PERIPH_LPTIM5)
2802 #define __HAL_RCC_LPTIM5_CLK_SLEEP_DISABLE()  LL_APB4_GRP1_DisableClockLowPower(LL_APB4_GRP1_PERIPH_LPTIM5)
2803 
2804 #define __HAL_RCC_LPUART1_CLK_SLEEP_ENABLE()  LL_APB4_GRP1_EnableClockLowPower(LL_APB4_GRP1_PERIPH_LPUART1)
2805 #define __HAL_RCC_LPUART1_CLK_SLEEP_DISABLE() LL_APB4_GRP1_DisableClockLowPower(LL_APB4_GRP1_PERIPH_LPUART1)
2806 
2807 #define __HAL_RCC_RTC_CLK_SLEEP_ENABLE()      LL_APB4_GRP1_EnableClockLowPower(LL_APB4_GRP1_PERIPH_RTC)
2808 #define __HAL_RCC_RTC_CLK_SLEEP_DISABLE()     LL_APB4_GRP1_DisableClockLowPower(LL_APB4_GRP1_PERIPH_RTC)
2809 
2810 #define __HAL_RCC_RTCAPB_CLK_SLEEP_ENABLE()   LL_APB4_GRP1_EnableClockLowPower(LL_APB4_GRP1_PERIPH_RTCAPB)
2811 #define __HAL_RCC_RTCAPB_CLK_SLEEP_DISABLE()  LL_APB4_GRP1_DisableClockLowPower(LL_APB4_GRP1_PERIPH_RTCAPB)
2812 
2813 #define __HAL_RCC_SPI6_CLK_SLEEP_ENABLE()     LL_APB4_GRP1_EnableClockLowPower(LL_APB4_GRP1_PERIPH_SPI6)
2814 #define __HAL_RCC_SPI6_CLK_SLEEP_DISABLE()    LL_APB4_GRP1_DisableClockLowPower(LL_APB4_GRP1_PERIPH_SPI6)
2815 
2816 #define __HAL_RCC_SYSCFG_CLK_SLEEP_ENABLE()   LL_APB4_GRP2_EnableClockLowPower(LL_APB4_GRP2_PERIPH_SYSCFG)
2817 #define __HAL_RCC_SYSCFG_CLK_SLEEP_DISABLE()  LL_APB4_GRP2_DisableClockLowPower(LL_APB4_GRP2_PERIPH_SYSCFG)
2818 
2819 #define __HAL_RCC_VREFBUF_CLK_SLEEP_ENABLE()  LL_APB4_GRP1_EnableClockLowPower(LL_APB4_GRP1_PERIPH_VREFBUF)
2820 #define __HAL_RCC_VREFBUF_CLK_SLEEP_DISABLE() LL_APB4_GRP1_DisableClockLowPower(LL_APB4_GRP1_PERIPH_VREFBUF)
2821 
2822 /**
2823   * @}
2824   */
2825 
2826 /** @defgroup RCC_APB5_Clock_Sleep_Enable_Disable APB5 Peripheral Clock Sleep Enable Disable
2827   * @brief  Enable or disable the APB5 peripheral clock during Low Power (Sleep) mode.
2828   * @note   Peripheral clock gating in SLEEP mode can be used to further reduce
2829   *         power consumption.
2830   * @note   By default, all peripheral clocks are disabled during SLEEP mode.
2831   * @{
2832   */
2833 
2834 #define __HAL_RCC_CSI_CLK_SLEEP_ENABLE()     LL_APB5_GRP1_EnableClockLowPower(LL_APB5_GRP1_PERIPH_CSI)
2835 #define __HAL_RCC_CSI_CLK_SLEEP_DISABLE()    LL_APB5_GRP1_DisableClockLowPower(LL_APB5_GRP1_PERIPH_CSI)
2836 
2837 #define __HAL_RCC_DCMIPP_CLK_SLEEP_ENABLE()  LL_APB5_GRP1_EnableClockLowPower(LL_APB5_GRP1_PERIPH_DCMIPP)
2838 #define __HAL_RCC_DCMIPP_CLK_SLEEP_DISABLE() LL_APB5_GRP1_DisableClockLowPower(LL_APB5_GRP1_PERIPH_DCMIPP)
2839 
2840 #define __HAL_RCC_GFXTIM_CLK_SLEEP_ENABLE()  LL_APB5_GRP1_EnableClockLowPower(LL_APB5_GRP1_PERIPH_GFXTIM)
2841 #define __HAL_RCC_GFXTIM_CLK_SLEEP_DISABLE() LL_APB5_GRP1_DisableClockLowPower(LL_APB5_GRP1_PERIPH_GFXTIM)
2842 
2843 #define __HAL_RCC_LTDC_CLK_SLEEP_ENABLE()    LL_APB5_GRP1_EnableClockLowPower(LL_APB5_GRP1_PERIPH_LTDC)
2844 #define __HAL_RCC_LTDC_CLK_SLEEP_DISABLE()   LL_APB5_GRP1_DisableClockLowPower(LL_APB5_GRP1_PERIPH_LTDC)
2845 
2846 #define __HAL_RCC_VENC_CLK_SLEEP_ENABLE()    LL_APB5_GRP1_EnableClockLowPower(LL_APB5_GRP1_PERIPH_VENC)
2847 #define __HAL_RCC_VENC_CLK_SLEEP_DISABLE()   LL_APB5_GRP1_DisableClockLowPower(LL_APB5_GRP1_PERIPH_VENC)
2848 
2849 /**
2850   * @}
2851   */
2852 
2853 /** @defgroup RCC_MISC_Configuration_Clock_Sleep_Enable_Disable Misc Configuration Clock Sleep Enable Disable
2854   * @brief  Enable or disable the misc configuration clock during Low Power (Sleep) mode.
2855   * @note   After reset, the misc configuration clock is disabled and
2856   *         the application software has to enable this clock before using it.
2857   * @note   After wakeup from SLEEP mode, the misc configuration clock is enabled again.
2858   * @note   DBG clock is always security-protected and thus hidden the non-secure application.
2859   * @{
2860   */
2861 
2862 #if defined (CPU_IN_SECURE_STATE)
2863 #define __HAL_RCC_DBG_CLK_SLEEP_ENABLE()     LL_MISC_EnableClockLowPower(LL_DBG)
2864 #define __HAL_RCC_DBG_CLK_SLEEP_DISABLE()    LL_MISC_DisableClockLowPower(LL_DBG)
2865 #endif /* CPU_IN_SECURE_STATE */
2866 
2867 #define __HAL_RCC_XSPIPHYCOMP_CLK_SLEEP_ENABLE()  LL_MISC_EnableClockLowPower(LL_XSPIPHYCOMP)
2868 #define __HAL_RCC_XSPIPHYCOMP_CLK_SLEEP_DISABLE() LL_MISC_DisableClockLowPower(LL_XSPIPHYCOMP)
2869 
2870 #define __HAL_RCC_PER_CLK_SLEEP_ENABLE()  LL_MISC_EnableClockLowPower(LL_PER)
2871 #define __HAL_RCC_PER_CLK_SLEEP_DISABLE() LL_MISC_DisableClockLowPower(LL_PER)
2872 
2873 /**
2874   * @}
2875   */
2876 
2877 /** @defgroup RCC_Embedded_Mem_Clock_Sleep_Enable_Status Embedded Memory Clock Sleep Enabled Status
2878   * @brief  Check whether the embedded memory clock sleep is enabled or not.
2879   * @note   After reset, some embedded memory clocks are disabled
2880   *         and the application software has to enable these memory clocks before using them.
2881   * @{
2882   */
2883 
2884 #define __HAL_RCC_AXISRAM1_MEM_IS_CLK_SLEEP_ENABLED()     LL_MEM_IsEnabledClockLowPower(LL_MEM_AXISRAM1)
2885 #define __HAL_RCC_AXISRAM2_MEM_IS_CLK_SLEEP_ENABLED()     LL_MEM_IsEnabledClockLowPower(LL_MEM_AXISRAM2)
2886 #define __HAL_RCC_AXISRAM3_MEM_IS_CLK_SLEEP_ENABLED()     LL_MEM_IsEnabledClockLowPower(LL_MEM_AXISRAM3)
2887 #define __HAL_RCC_AXISRAM4_MEM_IS_CLK_SLEEP_ENABLED()     LL_MEM_IsEnabledClockLowPower(LL_MEM_AXISRAM4)
2888 #define __HAL_RCC_AXISRAM5_MEM_IS_CLK_SLEEP_ENABLED()     LL_MEM_IsEnabledClockLowPower(LL_MEM_AXISRAM5)
2889 #define __HAL_RCC_AXISRAM6_MEM_IS_CLK_SLEEP_ENABLED()     LL_MEM_IsEnabledClockLowPower(LL_MEM_AXISRAM6)
2890 #define __HAL_RCC_AHBSRAM1_MEM_IS_CLK_SLEEP_ENABLED()     LL_MEM_IsEnabledClockLowPower(LL_MEM_AHBSRAM1)
2891 #define __HAL_RCC_AHBSRAM2_MEM_IS_CLK_SLEEP_ENABLED()     LL_MEM_IsEnabledClockLowPower(LL_MEM_AHBSRAM2)
2892 #define __HAL_RCC_BKPSRAM_MEM_IS_CLK_SLEEP_ENABLED()      LL_MEM_IsEnabledClockLowPower(LL_MEM_BKPSRAM)
2893 #define __HAL_RCC_FLEXRAM_MEM_IS_CLK_SLEEP_ENABLED()      LL_MEM_IsEnabledClockLowPower(LL_MEM_FLEXRAM)
2894 #define __HAL_RCC_CACHEAXIRAM_MEM_IS_CLK_SLEEP_ENABLED()  LL_MEM_IsEnabledClockLowPower(LL_MEM_CACHEAXIRAM)
2895 #define __HAL_RCC_VENCRAM_MEM_IS_CLK_SLEEP_ENABLED()      LL_MEM_IsEnabledClockLowPower(LL_MEM_VENCRAM)
2896 
2897 /**
2898   * @}
2899   */
2900 
2901 /** @defgroup RCC_AHB1_Clock_Sleep_Enable_Status AHB1 Peripheral Clock Sleep Enabled Status
2902   * @brief  Check whether the AHB1 peripheral clock sleep is enabled or not.
2903   * @note   After reset, the peripheral clock (used for registers read/write access)
2904   *         is disabled and the application software has to enable this clock before
2905   *         using it.
2906   * @{
2907   */
2908 
2909 #define __HAL_RCC_ADC12_IS_CLK_SLEEP_ENABLED()   LL_AHB1_GRP1_IsEnabledClockLowPower(LL_AHB1_GRP1_PERIPH_ADC12)
2910 
2911 #define __HAL_RCC_GPDMA1_IS_CLK_SLEEP_ENABLED()  LL_AHB1_GRP1_IsEnabledClockLowPower(LL_AHB1_GRP1_PERIPH_GPDMA1)
2912 
2913 /**
2914   * @}
2915   */
2916 
2917 /** @defgroup RCC_AHB2_Clock_Sleep_Enable_Status AHB2 Peripheral Clock Sleep Enabled Status
2918   * @brief  Check whether the AHB2 peripheral clock sleep is enabled or not.
2919   * @note   After reset, the peripheral clock (used for registers read/write access)
2920   *         is disabled and the application software has to enable this clock before
2921   *         using it.
2922   * @{
2923   */
2924 
2925 #define __HAL_RCC_ADF1_IS_CLK_SLEEP_ENABLED()    LL_AHB2_GRP1_IsEnabledClockLowPower(LL_AHB2_GRP1_PERIPH_ADF1)
2926 
2927 #define __HAL_RCC_MDF1_IS_CLK_SLEEP_ENABLED()    LL_AHB2_GRP1_IsEnabledClockLowPower(LL_AHB2_GRP1_PERIPH_MDF1)
2928 
2929 #define __HAL_RCC_RAMCFG_IS_CLK_SLEEP_ENABLED()  LL_AHB2_GRP1_IsEnabledClockLowPower(LL_AHB2_GRP1_PERIPH_RAMCFG)
2930 
2931 /**
2932   * @}
2933   */
2934 
2935 /** @defgroup RCC_AHB3_Clock_Sleep_Enable_Status AHB3 Peripheral Clock Sleep Enabled Status
2936   * @brief  Check whether the AHB3 peripheral clock sleep is enabled or not.
2937   * @note   After reset, the peripheral clock (used for registers read/write access)
2938   *         is disabled and the application software has to enable this clock before
2939   *         using it.
2940   * @{
2941   */
2942 
2943 #if defined(CRYP)
2944 #define __HAL_RCC_CRYP_IS_CLK_SLEEP_ENABLED()    LL_AHB3_GRP1_IsEnabledClockLowPower(LL_AHB3_GRP1_PERIPH_CRYP)
2945 #endif /* CRYP */
2946 
2947 #define __HAL_RCC_HASH_IS_CLK_SLEEP_ENABLED()    LL_AHB3_GRP1_IsEnabledClockLowPower(LL_AHB3_GRP1_PERIPH_HASH)
2948 
2949 #define __HAL_RCC_IAC_IS_CLK_SLEEP_ENABLED()     LL_AHB3_GRP1_IsEnabledClockLowPower(LL_AHB3_GRP1_PERIPH_IAC)
2950 
2951 #define __HAL_RCC_PKA_IS_CLK_SLEEP_ENABLED()     LL_AHB3_GRP1_IsEnabledClockLowPower(LL_AHB3_GRP1_PERIPH_PKA)
2952 
2953 #define __HAL_RCC_RIFSC_IS_CLK_SLEEP_ENABLED()   LL_AHB3_GRP1_IsEnabledClockLowPower(LL_AHB3_GRP1_PERIPH_RIFSC)
2954 
2955 #define __HAL_RCC_RISAF_IS_CLK_SLEEP_ENABLED()   LL_AHB3_GRP1_IsEnabledClockLowPower(LL_AHB3_GRP1_PERIPH_RISAF)
2956 
2957 #define __HAL_RCC_RNG_IS_CLK_SLEEP_ENABLED()     LL_AHB3_GRP1_IsEnabledClockLowPower(LL_AHB3_GRP1_PERIPH_RNG)
2958 
2959 #if defined(SAES)
2960 #define __HAL_RCC_SAES_IS_CLK_SLEEP_ENABLED()    LL_AHB3_GRP1_IsEnabledClockLowPower(LL_AHB3_GRP1_PERIPH_SAES)
2961 #endif /* SAES */
2962 
2963 /**
2964   * @}
2965   */
2966 
2967 /** @defgroup RCC_AHB4_Clock_Sleep_Enable_Status AHB4 Peripheral Clock Sleep Enabled Status
2968   * @brief  Check whether the AHB4 peripheral clock sleep is enabled or not.
2969   * @note   After reset, the peripheral clock (used for registers read/write access)
2970   *         is disabled and the application software has to enable this clock before
2971   *         using it.
2972   * @{
2973   */
2974 
2975 #define __HAL_RCC_CRC_IS_CLK_SLEEP_ENABLED()     LL_AHB4_GRP1_IsEnabledClockLowPower(LL_AHB4_GRP1_PERIPH_CRC)
2976 
2977 #define __HAL_RCC_GPIOA_IS_CLK_SLEEP_ENABLED()   LL_AHB4_GRP1_IsEnabledClockLowPower(LL_AHB4_GRP1_PERIPH_GPIOA)
2978 
2979 #define __HAL_RCC_GPIOB_IS_CLK_SLEEP_ENABLED()   LL_AHB4_GRP1_IsEnabledClockLowPower(LL_AHB4_GRP1_PERIPH_GPIOB)
2980 
2981 #define __HAL_RCC_GPIOC_IS_CLK_SLEEP_ENABLED()   LL_AHB4_GRP1_IsEnabledClockLowPower(LL_AHB4_GRP1_PERIPH_GPIOC)
2982 
2983 #define __HAL_RCC_GPIOD_IS_CLK_SLEEP_ENABLED()   LL_AHB4_GRP1_IsEnabledClockLowPower(LL_AHB4_GRP1_PERIPH_GPIOD)
2984 
2985 #define __HAL_RCC_GPIOE_IS_CLK_SLEEP_ENABLED()   LL_AHB4_GRP1_IsEnabledClockLowPower(LL_AHB4_GRP1_PERIPH_GPIOE)
2986 
2987 #define __HAL_RCC_GPIOF_IS_CLK_SLEEP_ENABLED()   LL_AHB4_GRP1_IsEnabledClockLowPower(LL_AHB4_GRP1_PERIPH_GPIOF)
2988 
2989 #define __HAL_RCC_GPIOG_IS_CLK_SLEEP_ENABLED()   LL_AHB4_GRP1_IsEnabledClockLowPower(LL_AHB4_GRP1_PERIPH_GPIOG)
2990 
2991 #define __HAL_RCC_GPIOH_IS_CLK_SLEEP_ENABLED()   LL_AHB4_GRP1_IsEnabledClockLowPower(LL_AHB4_GRP1_PERIPH_GPIOH)
2992 
2993 #define __HAL_RCC_GPION_IS_CLK_SLEEP_ENABLED()   LL_AHB4_GRP1_IsEnabledClockLowPower(LL_AHB4_GRP1_PERIPH_GPION)
2994 
2995 #define __HAL_RCC_GPIOO_IS_CLK_SLEEP_ENABLED()   LL_AHB4_GRP1_IsEnabledClockLowPower(LL_AHB4_GRP1_PERIPH_GPIOO)
2996 
2997 #define __HAL_RCC_GPIOP_IS_CLK_SLEEP_ENABLED()   LL_AHB4_GRP1_IsEnabledClockLowPower(LL_AHB4_GRP1_PERIPH_GPIOP)
2998 
2999 #define __HAL_RCC_GPIOQ_IS_CLK_SLEEP_ENABLED()   LL_AHB4_GRP1_IsEnabledClockLowPower(LL_AHB4_GRP1_PERIPH_GPIOQ)
3000 
3001 #define __HAL_RCC_PWR_IS_CLK_SLEEP_ENABLED()     LL_AHB4_GRP1_IsEnabledClockLowPower(LL_AHB4_GRP1_PERIPH_PWR)
3002 
3003 /**
3004   * @}
3005   */
3006 
3007 /** @defgroup RCC_AHB5_Clock_Sleep_Enable_Status AHB5 Peripheral Clock Sleep Enabled Status
3008   * @brief  Check whether the AHB5 peripheral clock sleep is enabled or not.
3009   * @note   After reset, the peripheral clock (used for registers read/write access)
3010   *         is disabled and the application software has to enable this clock before
3011   *         using it.
3012   * @{
3013   */
3014 
3015 #define __HAL_RCC_DMA2D_IS_CLK_SLEEP_ENABLED()   LL_AHB5_GRP1_IsEnabledClockLowPower(LL_AHB5_GRP1_PERIPH_DMA2D)
3016 
3017 #if defined(ETH1)
3018 #define __HAL_RCC_ETH1_IS_CLK_SLEEP_ENABLED()    LL_AHB5_GRP1_IsEnabledClockLowPower(LL_AHB5_GRP1_PERIPH_ETH1)
3019 
3020 #define __HAL_RCC_ETH1MAC_IS_CLK_SLEEP_ENABLED() LL_AHB5_GRP1_IsEnabledClockLowPower(LL_AHB5_GRP1_PERIPH_ETH1MAC)
3021 
3022 #define __HAL_RCC_ETH1TX_IS_CLK_SLEEP_ENABLED()  LL_AHB5_GRP1_IsEnabledClockLowPower(LL_AHB5_GRP1_PERIPH_ETH1TX)
3023 
3024 #define __HAL_RCC_ETH1RX_IS_CLK_SLEEP_ENABLED()  LL_AHB5_GRP1_IsEnabledClockLowPower(LL_AHB5_GRP1_PERIPH_ETH1RX)
3025 #endif /* ETH1 */
3026 
3027 #define __HAL_RCC_FMC_IS_CLK_SLEEP_ENABLED()     LL_AHB5_GRP1_IsEnabledClockLowPower(LL_AHB5_GRP1_PERIPH_FMC)
3028 
3029 #if defined(GFXMMU)
3030 #define __HAL_RCC_GFXMMU_IS_CLK_SLEEP_ENABLED()  LL_AHB5_GRP1_IsEnabledClockLowPower(LL_AHB5_GRP1_PERIPH_GFXMMU)
3031 #endif /* GFXMMU */
3032 
3033 #if defined(GPU2D)
3034 #define __HAL_RCC_GPU2D_IS_CLK_SLEEP_ENABLED()   LL_AHB5_GRP1_IsEnabledClockLowPower(LL_AHB5_GRP1_PERIPH_GPU2D)
3035 #endif /* GPU2D */
3036 
3037 #define __HAL_RCC_HPDMA1_IS_CLK_SLEEP_ENABLED()  LL_AHB5_GRP1_IsEnabledClockLowPower(LL_AHB5_GRP1_PERIPH_HPDMA1)
3038 
3039 #if defined(JPEG)
3040 #define __HAL_RCC_JPEG_IS_CLK_SLEEP_ENABLED()    LL_AHB5_GRP1_IsEnabledClockLowPower(LL_AHB5_GRP1_PERIPH_JPEG)
3041 #endif /* JPEG */
3042 
3043 #define __HAL_RCC_XSPI1_IS_CLK_SLEEP_ENABLED()   LL_AHB5_GRP1_IsEnabledClockLowPower(LL_AHB5_GRP1_PERIPH_XSPI1)
3044 
3045 #define __HAL_RCC_XSPI2_IS_CLK_SLEEP_ENABLED()   LL_AHB5_GRP1_IsEnabledClockLowPower(LL_AHB5_GRP1_PERIPH_XSPI2)
3046 
3047 #define __HAL_RCC_XSPI3_IS_CLK_SLEEP_ENABLED()   LL_AHB5_GRP1_IsEnabledClockLowPower(LL_AHB5_GRP1_PERIPH_XSPI3)
3048 
3049 #define __HAL_RCC_XSPIM_IS_CLK_SLEEP_ENABLED()   LL_AHB5_GRP1_IsEnabledClockLowPower(LL_AHB5_GRP1_PERIPH_XSPIM)
3050 
3051 #define __HAL_RCC_MCE1_IS_CLK_SLEEP_ENABLED()    LL_AHB5_GRP1_IsEnabledClockLowPower(LL_AHB5_GRP1_PERIPH_MCE1)
3052 
3053 #define __HAL_RCC_MCE2_IS_CLK_SLEEP_ENABLED()    LL_AHB5_GRP1_IsEnabledClockLowPower(LL_AHB5_GRP1_PERIPH_MCE2)
3054 
3055 #define __HAL_RCC_MCE3_IS_CLK_SLEEP_ENABLED()    LL_AHB5_GRP1_IsEnabledClockLowPower(LL_AHB5_GRP1_PERIPH_MCE3)
3056 
3057 #define __HAL_RCC_MCE4_IS_CLK_SLEEP_ENABLED()    LL_AHB5_GRP1_IsEnabledClockLowPower(LL_AHB5_GRP1_PERIPH_MCE4)
3058 
3059 #define __HAL_RCC_CACHEAXI_IS_CLK_SLEEP_ENABLED()  LL_AHB5_GRP1_IsEnabledClockLowPower(LL_AHB5_GRP1_PERIPH_CACHEAXI)
3060 
3061 #define __HAL_RCC_NPU_IS_CLK_SLEEP_ENABLED()     LL_AHB5_GRP1_IsEnabledClockLowPower(LL_AHB5_GRP1_PERIPH_NPU)
3062 
3063 #define __HAL_RCC_DCMI_PSSI_IS_CLK_SLEEP_ENABLED()    LL_AHB5_GRP1_IsEnabledClockLowPower(LL_AHB5_GRP1_PERIPH_PSSI)
3064 
3065 #define __HAL_RCC_SDMMC1_IS_CLK_SLEEP_ENABLED()  LL_AHB5_GRP1_IsEnabledClockLowPower(LL_AHB5_GRP1_PERIPH_SDMMC1)
3066 
3067 #define __HAL_RCC_SDMMC2_IS_CLK_SLEEP_ENABLED()  LL_AHB5_GRP1_IsEnabledClockLowPower(LL_AHB5_GRP1_PERIPH_SDMMC2)
3068 
3069 #define __HAL_RCC_USB1_OTG_HS_IS_CLK_SLEEP_ENABLED()  LL_AHB5_GRP1_IsEnabledClockLowPower(LL_AHB5_GRP1_PERIPH_OTG1)
3070 
3071 #define __HAL_RCC_USB1_OTG_HS_PHY_IS_CLK_SLEEP_ENABLED()  LL_AHB5_GRP1_IsEnabledClockLowPower(LL_AHB5_GRP1_PERIPH_OTGPHY1)
3072 
3073 #define __HAL_RCC_USB2_OTG_HS_IS_CLK_SLEEP_ENABLED()  LL_AHB5_GRP1_IsEnabledClockLowPower(LL_AHB5_GRP1_PERIPH_OTG2)
3074 
3075 #define __HAL_RCC_USB2_OTG_HS_PHY_IS_CLK_SLEEP_ENABLED()  LL_AHB5_GRP1_IsEnabledClockLowPower(LL_AHB5_GRP1_PERIPH_OTGPHY2)
3076 
3077 /**
3078   * @}
3079   */
3080 
3081 /** @defgroup RCC_APB1_Clock_Sleep_Enable_Status APB1 Peripheral Clock Sleep Enabled Status
3082   * @brief  Check whether the APB1 peripheral clock sleep is enabled or not.
3083   * @note   After reset, the peripheral clock (used for registers read/write access)
3084   *         is disabled and the application software has to enable this clock before
3085   *         using it.
3086   * @{
3087   */
3088 
3089 #define __HAL_RCC_FDCAN_IS_CLK_SLEEP_ENABLED()  LL_APB1_GRP2_IsEnabledClockLowPower(LL_APB1_GRP2_PERIPH_FDCAN)
3090 
3091 #define __HAL_RCC_I2C1_IS_CLK_SLEEP_ENABLED()   LL_APB1_GRP1_IsEnabledClockLowPower(LL_APB1_GRP1_PERIPH_I2C1)
3092 
3093 #define __HAL_RCC_I2C2_IS_CLK_SLEEP_ENABLED()   LL_APB1_GRP1_IsEnabledClockLowPower(LL_APB1_GRP1_PERIPH_I2C2)
3094 
3095 #define __HAL_RCC_I2C3_IS_CLK_SLEEP_ENABLED()   LL_APB1_GRP1_IsEnabledClockLowPower(LL_APB1_GRP1_PERIPH_I2C3)
3096 
3097 #define __HAL_RCC_I3C1_IS_CLK_SLEEP_ENABLED()   LL_APB1_GRP1_IsEnabledClockLowPower(LL_APB1_GRP1_PERIPH_I3C1)
3098 
3099 #define __HAL_RCC_I3C2_IS_CLK_SLEEP_ENABLED()   LL_APB1_GRP1_IsEnabledClockLowPower(LL_APB1_GRP1_PERIPH_I3C2)
3100 
3101 #define __HAL_RCC_LPTIM1_IS_CLK_SLEEP_ENABLED()  LL_APB1_GRP1_IsEnabledClockLowPower(LL_APB1_GRP1_PERIPH_LPTIM1)
3102 
3103 #define __HAL_RCC_MDIOS_IS_CLK_SLEEP_ENABLED()  LL_APB1_GRP2_IsEnabledClockLowPower(LL_APB1_GRP2_PERIPH_MDIOS)
3104 
3105 #define __HAL_RCC_SPDIFRX1_IS_CLK_SLEEP_ENABLED()  LL_APB1_GRP1_IsEnabledClockLowPower(LL_APB1_GRP1_PERIPH_SPDIFRX1)
3106 
3107 #define __HAL_RCC_SPI2_IS_CLK_SLEEP_ENABLED()   LL_APB1_GRP1_IsEnabledClockLowPower(LL_APB1_GRP1_PERIPH_SPI2)
3108 
3109 #define __HAL_RCC_SPI3_IS_CLK_SLEEP_ENABLED()   LL_APB1_GRP1_IsEnabledClockLowPower(LL_APB1_GRP1_PERIPH_SPI3)
3110 
3111 #define __HAL_RCC_TIM2_IS_CLK_SLEEP_ENABLED()   LL_APB1_GRP1_IsEnabledClockLowPower(LL_APB1_GRP1_PERIPH_TIM2)
3112 
3113 #define __HAL_RCC_TIM3_IS_CLK_SLEEP_ENABLED()   LL_APB1_GRP1_IsEnabledClockLowPower(LL_APB1_GRP1_PERIPH_TIM3)
3114 
3115 #define __HAL_RCC_TIM4_IS_CLK_SLEEP_ENABLED()   LL_APB1_GRP1_IsEnabledClockLowPower(LL_APB1_GRP1_PERIPH_TIM4)
3116 
3117 #define __HAL_RCC_TIM5_IS_CLK_SLEEP_ENABLED()   LL_APB1_GRP1_IsEnabledClockLowPower(LL_APB1_GRP1_PERIPH_TIM5)
3118 
3119 #define __HAL_RCC_TIM6_IS_CLK_SLEEP_ENABLED()   LL_APB1_GRP1_IsEnabledClockLowPower(LL_APB1_GRP1_PERIPH_TIM6)
3120 
3121 #define __HAL_RCC_TIM7_IS_CLK_SLEEP_ENABLED()   LL_APB1_GRP1_IsEnabledClockLowPower(LL_APB1_GRP1_PERIPH_TIM7)
3122 
3123 #define __HAL_RCC_TIM10_IS_CLK_SLEEP_ENABLED()  LL_APB1_GRP1_IsEnabledClockLowPower(LL_APB1_GRP1_PERIPH_TIM10)
3124 
3125 #define __HAL_RCC_TIM11_IS_CLK_SLEEP_ENABLED()  LL_APB1_GRP1_IsEnabledClockLowPower(LL_APB1_GRP1_PERIPH_TIM11)
3126 
3127 #define __HAL_RCC_TIM12_IS_CLK_SLEEP_ENABLED()  LL_APB1_GRP1_IsEnabledClockLowPower(LL_APB1_GRP1_PERIPH_TIM12)
3128 
3129 #define __HAL_RCC_TIM13_IS_CLK_SLEEP_ENABLED()  LL_APB1_GRP1_IsEnabledClockLowPower(LL_APB1_GRP1_PERIPH_TIM13)
3130 
3131 #define __HAL_RCC_TIM14_IS_CLK_SLEEP_ENABLED()  LL_APB1_GRP1_IsEnabledClockLowPower(LL_APB1_GRP1_PERIPH_TIM14)
3132 
3133 #define __HAL_RCC_USART2_IS_CLK_SLEEP_ENABLED()  LL_APB1_GRP1_IsEnabledClockLowPower(LL_APB1_GRP1_PERIPH_USART2)
3134 
3135 #define __HAL_RCC_USART3_IS_CLK_SLEEP_ENABLED()  LL_APB1_GRP1_IsEnabledClockLowPower(LL_APB1_GRP1_PERIPH_USART3)
3136 
3137 #define __HAL_RCC_UART4_IS_CLK_SLEEP_ENABLED()  LL_APB1_GRP1_IsEnabledClockLowPower(LL_APB1_GRP1_PERIPH_UART4)
3138 
3139 #define __HAL_RCC_UART5_IS_CLK_SLEEP_ENABLED()  LL_APB1_GRP1_IsEnabledClockLowPower(LL_APB1_GRP1_PERIPH_UART5)
3140 
3141 #define __HAL_RCC_UART7_IS_CLK_SLEEP_ENABLED()  LL_APB1_GRP1_IsEnabledClockLowPower(LL_APB1_GRP1_PERIPH_UART7)
3142 
3143 #define __HAL_RCC_UART8_IS_CLK_SLEEP_ENABLED()  LL_APB1_GRP1_IsEnabledClockLowPower(LL_APB1_GRP1_PERIPH_UART8)
3144 
3145 #define __HAL_RCC_UCPD1_IS_CLK_SLEEP_ENABLED()  LL_APB1_GRP2_IsEnabledClockLowPower(LL_APB1_GRP2_PERIPH_UCPD1)
3146 
3147 #define __HAL_RCC_WWDG_IS_CLK_SLEEP_ENABLED()   LL_APB1_GRP1_IsEnabledClockLowPower(LL_APB1_GRP1_PERIPH_WWDG)
3148 
3149 /**
3150   * @}
3151   */
3152 
3153 /** @defgroup RCC_APB2_Clock_Sleep_Enable_Status APB2 Peripheral Clock Sleep Enabled Status
3154   * @brief  Check whether the APB2 peripheral clock sleep is enabled or not.
3155   * @note   After reset, the peripheral clock (used for registers read/write access)
3156   *         is disabled and the application software has to enable this clock before
3157   *         using it.
3158   * @{
3159   */
3160 
3161 #define __HAL_RCC_SAI1_IS_CLK_SLEEP_ENABLED()    LL_APB2_GRP1_IsEnabledClockLowPower(LL_APB2_GRP1_PERIPH_SAI1)
3162 
3163 #define __HAL_RCC_SAI2_IS_CLK_SLEEP_ENABLED()    LL_APB2_GRP1_IsEnabledClockLowPower(LL_APB2_GRP1_PERIPH_SAI2)
3164 
3165 #define __HAL_RCC_SPI1_IS_CLK_SLEEP_ENABLED()    LL_APB2_GRP1_IsEnabledClockLowPower(LL_APB2_GRP1_PERIPH_SPI1)
3166 
3167 #define __HAL_RCC_SPI4_IS_CLK_SLEEP_ENABLED()    LL_APB2_GRP1_IsEnabledClockLowPower(LL_APB2_GRP1_PERIPH_SPI4)
3168 
3169 #define __HAL_RCC_SPI5_IS_CLK_SLEEP_ENABLED()    LL_APB2_GRP1_IsEnabledClockLowPower(LL_APB2_GRP1_PERIPH_SPI5)
3170 
3171 #define __HAL_RCC_TIM1_IS_CLK_SLEEP_ENABLED()    LL_APB2_GRP1_IsEnabledClockLowPower(LL_APB2_GRP1_PERIPH_TIM1)
3172 
3173 #define __HAL_RCC_TIM8_IS_CLK_SLEEP_ENABLED()    LL_APB2_GRP1_IsEnabledClockLowPower(LL_APB2_GRP1_PERIPH_TIM8)
3174 
3175 #define __HAL_RCC_TIM9_IS_CLK_SLEEP_ENABLED()    LL_APB2_GRP1_IsEnabledClockLowPower(LL_APB2_GRP1_PERIPH_TIM9)
3176 
3177 #define __HAL_RCC_TIM15_IS_CLK_SLEEP_ENABLED()   LL_APB2_GRP1_IsEnabledClockLowPower(LL_APB2_GRP1_PERIPH_TIM15)
3178 
3179 #define __HAL_RCC_TIM16_IS_CLK_SLEEP_ENABLED()   LL_APB2_GRP1_IsEnabledClockLowPower(LL_APB2_GRP1_PERIPH_TIM16)
3180 
3181 #define __HAL_RCC_TIM17_IS_CLK_SLEEP_ENABLED()   LL_APB2_GRP1_IsEnabledClockLowPower(LL_APB2_GRP1_PERIPH_TIM17)
3182 
3183 #define __HAL_RCC_TIM18_IS_CLK_SLEEP_ENABLED()   LL_APB2_GRP1_IsEnabledClockLowPower(LL_APB2_GRP1_PERIPH_TIM18)
3184 
3185 #define __HAL_RCC_USART1_IS_CLK_SLEEP_ENABLED()  LL_APB2_GRP1_IsEnabledClockLowPower(LL_APB2_GRP1_PERIPH_USART1)
3186 
3187 #define __HAL_RCC_USART6_IS_CLK_SLEEP_ENABLED()  LL_APB2_GRP1_IsEnabledClockLowPower(LL_APB2_GRP1_PERIPH_USART6)
3188 
3189 #define __HAL_RCC_UART9_IS_CLK_SLEEP_ENABLED()   LL_APB2_GRP1_IsEnabledClockLowPower(LL_APB2_GRP1_PERIPH_UART9)
3190 
3191 #define __HAL_RCC_USART10_IS_CLK_SLEEP_ENABLED()  LL_APB2_GRP1_IsEnabledClockLowPower(LL_APB2_GRP1_PERIPH_USART10)
3192 
3193 /**
3194   * @}
3195   */
3196 
3197 /** @defgroup RCC_APB4_Clock_Sleep_Enable_Status APB4 Peripheral Clock Sleep Enabled Status
3198   * @brief  Check whether the APB4 peripheral clock sleep is enabled or not.
3199   * @note   After reset, the peripheral clock (used for registers read/write access)
3200   *         is disabled and the application software has to enable this clock before
3201   *         using it.
3202   * @{
3203   */
3204 
3205 #define __HAL_RCC_BSEC_IS_CLK_SLEEP_ENABLED()     LL_APB4_GRP2_IsEnabledClockLowPower(LL_APB4_GRP2_PERIPH_BSEC)
3206 
3207 #define __HAL_RCC_DTS_IS_CLK_SLEEP_ENABLED()      LL_APB4_GRP2_IsEnabledClockLowPower(LL_APB4_GRP2_PERIPH_DTS)
3208 
3209 #define __HAL_RCC_HDP_IS_CLK_SLEEP_ENABLED()      LL_APB4_GRP1_IsEnabledClockLowPower(LL_APB4_GRP1_PERIPH_HDP)
3210 
3211 #define __HAL_RCC_I2C4_IS_CLK_SLEEP_ENABLED()     LL_APB4_GRP1_IsEnabledClockLowPower(LL_APB4_GRP1_PERIPH_I2C4)
3212 
3213 #define __HAL_RCC_LPTIM2_IS_CLK_SLEEP_ENABLED()   LL_APB4_GRP1_IsEnabledClockLowPower(LL_APB4_GRP1_PERIPH_LPTIM2)
3214 
3215 #define __HAL_RCC_LPTIM3_IS_CLK_SLEEP_ENABLED()   LL_APB4_GRP1_IsEnabledClockLowPower(LL_APB4_GRP1_PERIPH_LPTIM3)
3216 
3217 #define __HAL_RCC_LPTIM4_IS_CLK_SLEEP_ENABLED()   LL_APB4_GRP1_IsEnabledClockLowPower(LL_APB4_GRP1_PERIPH_LPTIM4)
3218 
3219 #define __HAL_RCC_LPTIM5_IS_CLK_SLEEP_ENABLED()   LL_APB4_GRP1_IsEnabledClockLowPower(LL_APB4_GRP1_PERIPH_LPTIM5)
3220 
3221 #define __HAL_RCC_LPUART1_IS_CLK_SLEEP_ENABLED()  LL_APB4_GRP1_IsEnabledClockLowPower(LL_APB4_GRP1_PERIPH_LPUART1)
3222 
3223 #define __HAL_RCC_RTC_IS_CLK_SLEEP_ENABLED()      LL_APB4_GRP1_IsEnabledClockLowPower(LL_APB4_GRP1_PERIPH_RTC)
3224 
3225 #define __HAL_RCC_RTCAPB_IS_CLK_SLEEP_ENABLED()   LL_APB4_GRP1_IsEnabledClockLowPower(LL_APB4_GRP1_PERIPH_RTCAPB)
3226 
3227 #define __HAL_RCC_SPI6_IS_CLK_SLEEP_ENABLED()     LL_APB4_GRP1_IsEnabledClockLowPower(LL_APB4_GRP1_PERIPH_SPI6)
3228 
3229 #define __HAL_RCC_SYSCFG_IS_CLK_SLEEP_ENABLED()   LL_APB4_GRP2_IsEnabledClockLowPower(LL_APB4_GRP2_PERIPH_SYSCFG)
3230 
3231 #define __HAL_RCC_VREFBUF_IS_CLK_SLEEP_ENABLED()  LL_APB4_GRP1_IsEnabledClockLowPower(LL_APB4_GRP1_PERIPH_VREFBUF)
3232 
3233 /**
3234   * @}
3235   */
3236 
3237 /** @defgroup RCC_APB5_Clock_Sleep_Enable_Status APB5 Peripheral Clock Sleep Enabled Status
3238   * @brief  Check whether the APB5 peripheral clock sleep is enabled or not.
3239   * @note   After reset, the peripheral clock (used for registers read/write access)
3240   *         is disabled and the application software has to enable this clock before
3241   *         using it.
3242   * @{
3243   */
3244 
3245 #define __HAL_RCC_CSI_IS_CLK_SLEEP_ENABLED()     LL_APB5_GRP1_IsEnabledClockLowPower(LL_APB5_GRP1_PERIPH_CSI)
3246 
3247 #define __HAL_RCC_DCMIPP_IS_CLK_SLEEP_ENABLED()  LL_APB5_GRP1_IsEnabledClockLowPower(LL_APB5_GRP1_PERIPH_DCMIPP)
3248 
3249 #define __HAL_RCC_GFXTIM_IS_CLK_SLEEP_ENABLED()  LL_APB5_GRP1_IsEnabledClockLowPower(LL_APB5_GRP1_PERIPH_GFXTIM)
3250 
3251 #define __HAL_RCC_LTDC_IS_CLK_SLEEP_ENABLED()    LL_APB5_GRP1_IsEnabledClockLowPower(LL_APB5_GRP1_PERIPH_LTDC)
3252 
3253 #define __HAL_RCC_VENC_IS_CLK_SLEEP_ENABLED()    LL_APB5_GRP1_IsEnabledClockLowPower(LL_APB5_GRP1_PERIPH_VENC)
3254 
3255 
3256 /**
3257   * @}
3258   */
3259 
3260 /** @defgroup RCC_MISC_Configuration_Clock_Sleep_Enable_Status Misc Configuration Clock Sleep Enabled Status
3261   * @brief  Check whether the misc configuration clock sleep is enabled or not.
3262   * @note   After reset, the misc configuration clock is disabled and
3263   *         the application software has to enable this clock before using it.
3264   * @{
3265   */
3266 
3267 #define __HAL_RCC_DBG_IS_CLK_SLEEP_ENABLED()          LL_MISC_IsEnabledClockLowPower(LL_DBG)
3268 
3269 #define __HAL_RCC_XSPIPHYCOMP_IS_CLK_SLEEP_ENABLED()  LL_MISC_IsEnabledClockLowPower(LL_XSPIPHYCOMP)
3270 
3271 #define __HAL_RCC_PER_IS_CLK_SLEEP_ENABLED()          LL_MISC_IsEnabledClockLowPower(LL_PER)
3272 
3273 /**
3274   * @}
3275   */
3276 
3277 /** @brief  Macro to enable or disable the Internal High Speed oscillator (HSI).
3278   * @note   After enabling the HSI, the application software should wait on
3279   *         HSIRDY flag to be set indicating that the HSI clock is stable
3280   *         and that HSI clock can be used to clock the PLL and/or system clock.
3281   * @note   HSI can not be stopped if it is used directly or through the PLL
3282   *         as system clock. In this case, you have to select another source
3283   *         of the system clock then stop the HSI.
3284   * @note   The HSI is stopped by hardware when entering STOP and STANDBY modes.
3285   * @param  __STATE__ specifies the new state of the HSI.
3286   *         This parameter can be one of the following values:
3287   *            @arg @ref RCC_HSI_OFF turn OFF the HSI oscillator
3288   *            @arg @ref RCC_HSI_ON turn ON the HSI oscillator
3289   * @note   When the HSI is stopped, HSIRDY flag goes low after 6 HSI oscillator
3290   *         clock cycles.
3291   */
3292 #define __HAL_RCC_HSI_CONFIG(__STATE__) MODIFY_REG(RCC->CR, RCC_CR_HSION, (uint32_t)(__STATE__))
3293 
3294 /** @brief  Macro to configure the Internal High Speed oscillator (HSI) clock divider.
3295   * @param  __HSIDIV__ specifies the HSI division factor.
3296   *         This parameter can be one of the following values:
3297   *            @arg RCC_HSI_DIV1 Divide the HSI oscillator clock by 1 (default after reset)
3298   *            @arg RCC_HSI_DIV2 Divide the HSI oscillator clock by 2
3299   *            @arg RCC_HSI_DIV4 Divide the HSI oscillator clock by 4
3300   *            @arg RCC_HSI_DIV8 Divide the HSI oscillator clock by 8
3301   */
3302 #define __HAL_RCC_HSI_DIVIDER_CONFIG(__HSIDIV__) LL_RCC_HSI_SetDivider((uint32_t)(__HSIDIV__))
3303 
3304 /** @brief  Macro to get the HSI divider.
3305   * @retval The HSI divider. The returned value can be one of the following values:
3306   *         of the following:
3307   *            @arg RCC_HSI_DIV1 Divide the HSI oscillator clock by 1 (default after reset)
3308   *            @arg RCC_HSI_DIV2 Divide the HSI oscillator clock by 2
3309   *            @arg RCC_HSI_DIV4 Divide the HSI oscillator clock by 4
3310   *            @arg RCC_HSI_DIV8 Divide the HSI oscillator clock by 8
3311   */
3312 #define __HAL_RCC_GET_HSI_DIVIDER() ((uint32_t)LL_RCC_HSI_GetDivider())
3313 
3314 /** @brief  Macros to enable or disable the Internal High Speed oscillator (HSI).
3315   * @note   The HSI is stopped by hardware when entering STOP and STANDBY modes.
3316   *         It is used (enabled by hardware) as system clock source after start-up
3317   *         from Reset, wakeup from STOP and STANDBY mode, or in case of failure
3318   *         of the HSE used directly or indirectly as system clock (if the Clock
3319   *         Security System CSS is enabled).
3320   * @note   HSI can not be stopped if it is used as system clock source. In this case,
3321   *         you have to select another source of the system clock then stop the HSI.
3322   * @note   After enabling the HSI, the application software should wait on HSIRDY
3323   *         flag to be set indicating that HSI clock is stable and can be used as
3324   *         system clock source.
3325   * @note   When the HSI is stopped, HSIRDY flag goes low after 6 HSI oscillator
3326   *         clock cycles.
3327   */
3328 #define __HAL_RCC_HSI_ENABLE()  LL_RCC_HSI_Enable()
3329 
3330 #define __HAL_RCC_HSI_DISABLE() LL_RCC_HSI_Disable()
3331 
3332 /** @brief  Macro to adjust the Internal High Speed 64MHz oscillator (HSI) calibration value.
3333   * @note   The calibration is used to compensate for the variations in voltage
3334   *         and temperature that influence the frequency of the internal HSI RC.
3335   * @param  __HSICALIBRATIONVALUE__ specifies the calibration trimming value
3336   *         (default is RCC_HSICALIBRATION_DEFAULT).
3337   *         This parameter must be a number between 0 and 127.
3338   * @retval None
3339   */
3340 #define __HAL_RCC_HSI_CALIBRATIONVALUE_ADJUST(__HSICALIBRATIONVALUE__) \
3341   LL_RCC_HSI_SetCalibTrimming((uint32_t)(__HSICALIBRATIONVALUE__));
3342 
3343 /**
3344   * @brief    Macros to enable or disable the force of the Internal High Speed oscillator (HSI)
3345   *           in STOP mode to be quickly available as kernel clock for some peripherals.
3346   * @note     Keeping the HSI ON in STOP mode allows to avoid slowing down the communication
3347   *           speed because of the HSI start-up time.
3348   * @note     The enable of this function has not effect on the HSION bit.
3349   *           This parameter can be: ENABLE or DISABLE.
3350   * @retval None
3351   */
3352 #define __HAL_RCC_HSISTOP_ENABLE()     LL_RCC_HSI_EnableInStopMode()
3353 
3354 #define __HAL_RCC_HSISTOP_DISABLE()    LL_RCC_HSI_DisableInStopMode()
3355 
3356 /**
3357   * @brief  Macros to enable or disable the Internal oscillator (MSI).
3358   * @note     The MSI is stopped by hardware when entering STOP and STANDBY modes.
3359   *           It is used (enabled by hardware) as system clock source after
3360   *           start-up from Reset, wakeup from STOP and STANDBY mode, or in case
3361   *           of failure of the HSE used directly or indirectly as system clock
3362   *           (if the Clock Security System CSS is enabled).
3363   * @note     MSI can not be stopped if it is used as system clock source.
3364   *           In this case, you have to select another source of the system
3365   *           clock then stop the MSI.
3366   * @note     After enabling the MSI, the application software should wait on
3367   *           MSIRDY flag to be set indicating that MSI clock is stable and can
3368   *           be used as system clock source.
3369   * @note     When the MSI is stopped, MSIRDY flag goes low after 6 MSI oscillator
3370   *           clock cycles.
3371   */
3372 #define __HAL_RCC_MSI_ENABLE()  LL_RCC_MSI_Enable()
3373 
3374 #define __HAL_RCC_MSI_DISABLE() LL_RCC_MSI_Disable()
3375 
3376 /** @brief  Macro to configure the Internal oscillator (MSI) frequency.
3377   * @param  __FREQ__ specifies the MSI frequency.
3378   *         This parameter can be one of the following values:
3379   *            @arg RCC_MSI_FREQ_4MHZ  4MHz selection (default after reset)
3380   *            @arg RCC_MSI_FREQ_16MHZ 16MHz selection
3381   */
3382 #define __HAL_RCC_MSI_FREQUENCY_CONFIG(__FREQ__) LL_RCC_MSI_SetFrequency((uint32_t)(__FREQ__))
3383 
3384 /** @brief  Macro to adjust the Internal oscillator (MSI) calibration value.
3385   * @note   The calibration is used to compensate for the variations in voltage
3386   *         and temperature that influence the frequency of the internal MSI RC.
3387   * @param  __MSICALIBRATIONVALUE__ specifies the calibration trimming value
3388   *         (default is RCC_MSICALIBRATION_DEFAULT).
3389   *         This parameter must be a number between 0 and 0x1F.
3390   * @retval None
3391   */
3392 #define __HAL_RCC_MSI_CALIBRATIONVALUE_ADJUST(__MSICALIBRATIONVALUE__) \
3393   LL_RCC_MSI_SetCalibTrimming((uint32_t)(__MSICALIBRATIONVALUE__))
3394 
3395 /**
3396   * @brief  Macros to enable or disable the force of the Low-power Internal oscillator (MSI)
3397   *         in STOP mode to be quickly available as kernel clock for USARTs and I2Cs.
3398   * @note   Keeping the MSI ON in STOP mode allows to avoid slowing down the communication
3399   *         speed because of the MSI start-up time.
3400   * @note   The enable of this function has not effect on the MSION bit.
3401   *         This parameter can be: ENABLE or DISABLE.
3402   * @retval None
3403   */
3404 #define __HAL_RCC_MSISTOP_ENABLE()     LL_RCC_MSI_EnableInStopMode()
3405 
3406 #define __HAL_RCC_MSISTOP_DISABLE()    LL_RCC_MSI_DisableInStopMode()
3407 
3408 /** @brief  Macros to enable or disable the Internal Low Speed oscillator (LSI).
3409   * @note   After enabling the LSI, the application software should wait on
3410   *         LSIRDY flag to be set indicating that LSI clock is stable and can
3411   *         be used to clock the IWDG and/or the RTC.
3412   * @note   LSI can not be disabled if the IWDG is running.
3413   * @note   When the LSI is stopped, LSIRDY flag goes low after 6 LSI oscillator
3414   *         clock cycles.
3415   */
3416 #define __HAL_RCC_LSI_ENABLE()         LL_RCC_LSI_Enable()
3417 
3418 #define __HAL_RCC_LSI_DISABLE()        LL_RCC_LSI_Disable()
3419 
3420 /**
3421   * @brief  Macros to configure the External High Speed oscillator (HSE).
3422   * @note   After enabling the HSE (RCC_HSE_ON or RCC_HSE_BYPASS or RCC_HSE_BYPASS_DIGITAL),
3423   *         the application software should wait on HSERDY flag to be set indicating that HSE clock
3424   *         is stable and can be used to clock the PLL and/or system clock and peripheral kernel
3425   *         clock source.
3426   * @note   HSE state can not be changed if it is used directly or through the
3427   *         PLL as system clock. In this case, you have to select another source
3428   *         of the system clock then change the HSE state (ex. disable it).
3429   * @note   The HSE is stopped by hardware when entering STOP and STANDBY modes.
3430   * @param  __STATE__ specifies the new state of the HSE.
3431   *         This parameter can be one of the following values:
3432   *            @arg @ref RCC_HSE_OFF            turn OFF the HSE oscillator, HSERDY flag goes low after
3433   *                                             6 HSE oscillator clock cycles.
3434   *            @arg @ref RCC_HSE_ON             turn ON the HSE oscillator.
3435   *            @arg @ref RCC_HSE_BYPASS         HSE oscillator bypassed with external clock (analog).
3436   *            @arg @ref RCC_HSE_BYPASS_DIGITAL HSE oscillator bypassed with external digital clock.
3437   */
3438 #define __HAL_RCC_HSE_CONFIG(__STATE__)                                                 \
3439   do {                                                                  \
3440     if ((__STATE__) == RCC_HSE_ON)                                      \
3441     {                                                                   \
3442       WRITE_REG(RCC->CSR, RCC_CSR_HSEONS);                              \
3443     }                                                                   \
3444     else if ((__STATE__) == RCC_HSE_OFF)                                \
3445     {                                                                   \
3446       WRITE_REG(RCC->CCR, RCC_CCR_HSEONC);                              \
3447       CLEAR_BIT(RCC->HSECFGR, RCC_HSECFGR_HSEEXT | RCC_HSECFGR_HSEBYP); \
3448     }                                                                   \
3449     else if ((__STATE__) == RCC_HSE_BYPASS)                             \
3450     {                                                                   \
3451       SET_BIT(RCC->HSECFGR, RCC_HSECFGR_HSEBYP);                        \
3452       CLEAR_BIT(RCC->HSECFGR, RCC_HSECFGR_HSEEXT);                      \
3453       WRITE_REG(RCC->CSR, RCC_CSR_HSEONS);                              \
3454     }                                                                   \
3455     else if ((__STATE__) == RCC_HSE_BYPASS_DIGITAL)                     \
3456     {                                                                   \
3457       SET_BIT(RCC->HSECFGR, RCC_HSECFGR_HSEEXT | RCC_HSECFGR_HSEBYP);   \
3458       WRITE_REG(RCC->CSR, RCC_CSR_HSEONS);                              \
3459     }                                                                   \
3460     else                                                                \
3461     {                                                                   \
3462       WRITE_REG(RCC->CCR, RCC_CCR_HSEONC);                              \
3463       CLEAR_BIT(RCC->HSECFGR, RCC_HSECFGR_HSEEXT | RCC_HSECFGR_HSEBYP); \
3464     }                                                                   \
3465   } while(0)
3466 
3467 /**
3468   * @brief  Macros to configure the External Low Speed oscillator (LSE).
3469   * @note   Transition LSE Bypass to LSE On and LSE On to LSE Bypass are not supported by this macro.
3470   *         User should request a transition to LSE Off first and then LSE On or LSE Bypass.
3471   * @note   The external input clock can have a frequency up to 1 MHz and be low swing (analog) or digital(*).
3472             A duty cycle close to 50% is recommended.
3473   * @note   As the LSE is in the Backup domain and write access is denied to
3474   *         this domain after reset, you have to enable write access using
3475   *         HAL_PWR_EnableBkUpAccess() function before to configure the LSE
3476   *         (to be done once after reset).
3477   * @note   After enabling the LSE (RCC_LSE_ON, RCC_LSE_BYPASS or RCC_LSE_BYPASS_DIGITAL), the application
3478   *         software should wait on LSERDY flag to be set indicating that LSE clock
3479   *         is stable and can be used to clock the RTC.
3480   * @note   If the RTC is used, the LSE bypass must not be configured in digital mode but in low swing analog mode (*)
3481   * @param  __STATE__ specifies the new state of the LSE.
3482   *         This parameter can be one of the following values:
3483   *            @arg @ref RCC_LSE_OFF            turn OFF the LSE oscillator, LSERDY flag goes low after
3484   *                                        6 LSE oscillator clock cycles.
3485   *            @arg @ref RCC_LSE_ON             turn ON the LSE oscillator.
3486   *            @arg @ref RCC_LSE_BYPASS         LSE oscillator bypassed with external clock (analog).
3487   *            @arg @ref RCC_LSE_BYPASS_DIGITAL LSE oscillator bypassed with external digital clock.
3488   */
3489 #define __HAL_RCC_LSE_CONFIG(__STATE__) \
3490   do {                                               \
3491     if((__STATE__) == RCC_LSE_ON)                    \
3492     {                                                \
3493       WRITE_REG(RCC->CSR, RCC_CSR_LSEONS);           \
3494     }                                                \
3495     else if((__STATE__) == RCC_LSE_OFF)              \
3496     {                                                \
3497       WRITE_REG(RCC->CCR, RCC_CCR_LSEONC);           \
3498       CLEAR_BIT(RCC->LSECFGR, RCC_LSECFGR_LSEEXT);   \
3499       CLEAR_BIT(RCC->LSECFGR, RCC_LSECFGR_LSEBYP);   \
3500     }                                                \
3501     else if((__STATE__) == RCC_LSE_BYPASS)           \
3502     {                                                \
3503       SET_BIT(RCC->LSECFGR, RCC_LSECFGR_LSEBYP);     \
3504       CLEAR_BIT(RCC->LSECFGR, RCC_LSECFGR_LSEEXT);   \
3505       WRITE_REG(RCC->CSR, RCC_CSR_LSEONS);           \
3506     }                                                \
3507     else if((__STATE__) == RCC_LSE_BYPASS_DIGITAL)   \
3508     {                                                \
3509       SET_BIT(RCC->LSECFGR, RCC_LSECFGR_LSEBYP);     \
3510       SET_BIT(RCC->LSECFGR, RCC_LSECFGR_LSEEXT);     \
3511       WRITE_REG(RCC->CSR, RCC_CSR_LSEONS);           \
3512     }                                                \
3513     else                                             \
3514     {                                                \
3515       WRITE_REG(RCC->CCR, RCC_CCR_LSEONC);           \
3516       CLEAR_BIT(RCC->LSECFGR, RCC_LSECFGR_LSEBYP);   \
3517       CLEAR_BIT(RCC->LSECFGR, RCC_LSECFGR_LSEEXT);   \
3518     }                                                \
3519   } while(0)
3520 
3521 /** @brief  Macros to enable or disable the the RTC clock.
3522   * @note   These macros must be used only after the RTC clock source was selected.
3523   */
3524 #define __HAL_RCC_RTC_ENABLE()         LL_RCC_EnableRTC()
3525 
3526 #define __HAL_RCC_RTC_DISABLE()        LL_RCC_DisableRTC()
3527 
3528 /** @brief  Macro to configure the RTC clock (RTCCLK).
3529   * @note   As the RTC clock configuration bits are in the Backup domain and write
3530   *         access is denied to this domain after reset, you have to enable write
3531   *         access using the Power Backup Access macro before to configure
3532   *         the RTC clock source (to be done once after reset).
3533   * @note   Once the RTC clock is configured it cannot be changed unless the
3534   *         Backup domain is reset using __HAL_RCC_BACKUPRESET_FORCE() and
3535   *         __HAL_RCC_BACKUPRESET_RELEASE() macros, or by a Power On Reset (POR).
3536   * @param  __RTC_CLKSOURCE__ specifies the RTC clock source.
3537   *         This parameter can be one of the following values:
3538   *            RCC_RTCCLKSOURCE_LSE      LSE selected as RTC clock.
3539   *            RCC_RTCCLKSOURCE_LSI      LSI selected as RTC clock.
3540   *            RCC_RTCCLKSOURCE_HSE_DIVx HSE clock divided by x selected
3541   *                                      as RTC clock, where x:[1,64]
3542   * @note   If the LSE or LSI is used as RTC clock source, the RTC continues to
3543   *         work in STOP and STANDBY modes, and can be used as wakeup source.
3544   *         However, when the HSE clock is used as RTC clock source, the RTC
3545   *         cannot be used in STOP and STANDBY modes.
3546   * @note   The maximum input clock frequency for RTC is 1MHz (when using HSE as
3547   *         RTC clock source).
3548   */
3549 #define __HAL_RCC_RTC_CONFIG(__RTC_CLKSOURCE__) \
3550   do { \
3551     if (((__RTC_CLKSOURCE__) & (RCC_CCIPR7_RTCSEL)) == RCC_CCIPR7_RTCSEL) { \
3552       __HAL_RCC_RTC_CLKPRESCALER(__RTC_CLKSOURCE__); \
3553     } \
3554     LL_RCC_SetRTCClockSource((__RTC_CLKSOURCE__) & RCC_CCIPR7_RTCSEL); \
3555   } while(0)
3556 
3557 /** @brief  Macro to configure the RTC clock prescaler for HSE for RTCCLK.
3558   * @param  __RTC_CLKSOURCE__ specifies the RTC clock prescaler for HSE.
3559   *         This parameter can be one of the following values:
3560   *            RCC_RTCCLKSOURCE_HSE_DIVx HSE clock divided by x selected
3561   *                                      as RTC clock, where x:[1,64]
3562   */
3563 #define __HAL_RCC_RTC_CLKPRESCALER(__RTC_CLKSOURCE__) \
3564   LL_RCC_SetRTC_HSEPrescaler(((__RTC_CLKSOURCE__) & (~RCC_CCIPR7_RTCSEL)))
3565 
3566 /** @brief  Macros to get the RTC clock (RTCCLK).
3567   * @retval The returned value can be one of the following values:
3568   *            RCC_RTCCLKSOURCE_DISABLE  No clock selected as RTC clock.
3569   *            RCC_RTCCLKSOURCE_LSE      LSE selected as RTC clock.
3570   *            RCC_RTCCLKSOURCE_LSI      LSI selected as RTC clock.
3571   *            RCC_RTCCLKSOURCE_HSE_DIVx HSE clock divided by x selected
3572   *                                      as RTC clock, where x:[1,64]
3573   */
3574 #define __HAL_RCC_GET_RTC_SOURCE() \
3575   ((READ_BIT(RCC->CCIPR7, RCC_CCIPR7_RTCSEL) == RCC_CCIPR7_RTCSEL) ? \
3576    (READ_BIT(RCC->CCIPR7, RCC_CCIPR7_RTCPRE) | RCC_CCIPR7_RTCSEL) : READ_BIT(RCC->CCIPR7, RCC_CCIPR7_RTCSEL))
3577 
3578 /** @brief  Macros to force or release the Vswitch backup domain reset.
3579   * @note   This function resets the RTC peripheral (including the backup registers)
3580   *         and the RTC clock source selection in RCC_BDCR register.
3581   * @note   The BKPSRAM is not affected by this reset.
3582   */
3583 #define __HAL_RCC_BACKUPRESET_FORCE()   LL_RCC_ForceBackupDomainReset()
3584 
3585 #define __HAL_RCC_BACKUPRESET_RELEASE() LL_RCC_ReleaseBackupDomainReset()
3586 
3587 /** @brief  Macros to enable or disable the PLL1.
3588   * @note   After enabling the PLL1, the application software should wait on
3589   *         PLL1RDY flag to be set indicating that PLL1 clock is stable and can
3590   *         be used as CPU and/or system bus and/or kernel clock source thru ICx.
3591   * @note   The PLL1 can not be disabled if it is used as system clock source
3592   * @note   The PLL1 is disabled by hardware when entering STOP and STANDBY modes.
3593   */
3594 #define __HAL_RCC_PLL1_ENABLE()        LL_RCC_PLL1_Enable()
3595 
3596 #define __HAL_RCC_PLL1_DISABLE()       LL_RCC_PLL1_Disable()
3597 
3598 /**
3599   * @brief  Macros to enable or disable the PLL1 post divider 1, post divider 2
3600   *         and PLL1 clock output when not in bypass mode.
3601   */
3602 #define __HAL_RCC_PLL1CLKOUT_ENABLE()       LL_RCC_PLL1P_Enable()
3603 #define __HAL_RCC_PLL1CLKOUT_DISABLE()      LL_RCC_PLL1P_Disable()
3604 
3605 /**
3606   * @brief  Macro to configure the PLL1 in integer mode with clock source, multiplication
3607   *         and division factors.
3608   * @note   This macro must be used only when the PLL1 is disabled or the PLL1 output is bypassed
3609   *         and driven by the PLL reference clock. This macro switches off the bypass mode.
3610   *
3611   * @param  __PLLSOURCE__ specifies the PLL entry clock source.
3612   *           This parameter can be one of the following values:
3613   *             @arg @ref RCC_PLLSOURCE_HSI HSI oscillator clock selected as PLL clock entry
3614   *             @arg @ref RCC_PLLSOURCE_MSI MSI oscillator clock selected as PLL clock entry
3615   *             @arg @ref RCC_PLLSOURCE_HSE HSE oscillator clock selected as PLL clock entry
3616   *             @arg @ref RCC_PLLSOURCE_PIN I2S_CKIN clock selected as PLL clock entry
3617   * @note   This clock source cannot be changed on any PLL if another PLL is already enabled.
3618   *
3619   * @param  __PLLM__ specifies the division factor for PLL VCO input clock.
3620   *           This parameter must be a number between 1 and 63.
3621   * @note   You have to set the PLLM parameter correctly to ensure that the VCO input
3622   *         frequency ranges from 1 to 50 MHz.
3623   *
3624   * @param  __PLLN__ specifies the multiplication factor for PLL VCO output clock.
3625   *           This parameter must be a number between 16 and 2500.
3626   *
3627   * @param  __PLLP1__ specifies the post division factor 1 for system  clock.
3628   *           This parameter must be a number between 1 and 7.
3629   *
3630   * @param  __PLLP2__ specifies the post division factor 2 for system  clock.
3631   *           This parameter must be a number between 1 and 7.
3632   *
3633   * @retval None
3634   */
3635 
3636 #define __HAL_RCC_PLL1_CONFIG(__PLLSOURCE__, __PLLM__, __PLLN__, __PLLP1__, __PLLP2__) \
3637   do { \
3638     MODIFY_REG(RCC->PLL1CFGR1, (RCC_PLL1CFGR1_PLL1SEL | RCC_PLL1CFGR1_PLL1BYP | RCC_PLL1CFGR1_PLL1DIVM | RCC_PLL1CFGR1_PLL1DIVN), \
3639                ((__PLLSOURCE__) | ( (__PLLM__) << RCC_PLL1CFGR1_PLL1DIVM_Pos) | (((__PLLN__) << RCC_PLL1CFGR1_PLL1DIVN_Pos))));  \
3640     MODIFY_REG(RCC->PLL1CFGR2, RCC_PLL1CFGR2_PLL1DIVNFRAC, 0U); \
3641     MODIFY_REG(RCC->PLL1CFGR3, (RCC_PLL1CFGR3_PLL1PDIV1 | RCC_PLL1CFGR3_PLL1PDIV2), \
3642                ((((__PLLP1__) << RCC_PLL1CFGR3_PLL1PDIV1_Pos) & RCC_PLL1CFGR3_PLL1PDIV1) | \
3643                 ((((__PLLP2__) << RCC_PLL1CFGR3_PLL1PDIV2_Pos) & RCC_PLL1CFGR3_PLL1PDIV2)))); \
3644   } while(0)
3645 
3646 /** @brief  Macro to configure the PLL1 clock source.
3647   * @note   This macro must be used only when the PLL1 is disabled or the PLL1 output is bypassed
3648   *         and driven by the PLL reference clock. This macro switches off the bypass mode.
3649   *
3650   * @param  __PLLSOURCE__ specifies the PLL entry clock source.
3651   *         This parameter can be one of the following values:
3652   *            @arg @ref RCC_PLLSOURCE_HSI  HSI oscillator clock selected as PLL clock entry
3653   *            @arg @ref RCC_PLLSOURCE_MSI  MSI oscillator clock selected as PLL clock entry
3654   *            @arg @ref RCC_PLLSOURCE_HSE  HSE oscillator clock selected as PLL clock entry
3655   *            @arg @ref RCC_PLLSOURCE_PIN  External I2S_CKIN clock selected as PLL clock entry
3656   */
3657 #define __HAL_RCC_PLL1_PLLSOURCE_CONFIG(__PLLSOURCE__)  LL_RCC_PLL1_SetSource((uin32_t)__PLLSOURCE__)
3658 
3659 /** @brief  Macro to get the clock source used as PLL1 clock source.
3660   * @retval The oscillator used as PLL clock source.
3661   *         The returned value can be one of the following values:
3662   *            @arg @ref RCC_PLLSOURCE_HSI  HSI oscillator is used as PLL clock source.
3663   *            @arg @ref RCC_PLLSOURCE_MSI  MSI oscillator is used as PLL clock source.
3664   *            @arg @ref RCC_PLLSOURCE_HSE  HSE oscillator is used as PLL clock source.
3665   *            @arg @ref RCC_PLLSOURCE_PIN  External I2S_CKIN is used as PLL clock source.
3666   */
3667 #define __HAL_RCC_GET_PLL1_OSCSOURCE()  LL_RCC_PLL1_GetSource()
3668 
3669 /**
3670   * @brief  Macro to configure the PLL1 clock Fractional Part Of The Multiplication Factor
3671   * @note   This configuration cannot be requested when the PLL1 has been enabled.
3672   *
3673   * @param  __PLLDIVNFRAC__ specifies Fractional Part Of The Multiplication Factor for PLL1 VCO.
3674   *                         It should be a value between 0 and 2^24.
3675   * @retval None
3676   */
3677 #define  __HAL_RCC_PLL1_DIVNFRAC_CONFIG(__PLLDIVNFRAC__) LL_RCC_PLL1_SetFRACN((uint32_t)(__PLLDIVNFRAC__))
3678 
3679 /**
3680   * @brief  Macro to enable the PLL1 clock Fractional mode
3681   * @note   This configuration cannot be requested when the PLL1 has been enabled.
3682   * @retval None
3683   */
3684 #define  __HAL_RCC_PLL1_FRACN_ENABLE() LL_RCC_PLL1_EnableFractionalModulationSpreadSpectrum()
3685 
3686 /**
3687   * @brief  Macro to disable the PLL1 clock Fractional mode
3688   * @note   This configuration cannot be requested when the PLL1 has been enabled.
3689   * @retval None
3690   */
3691 #define  __HAL_RCC_PLL1_FRACN_DISABLE() LL_RCC_PLL1_DisableFractionalModulationSpreadSpectrum()
3692 
3693 /** @brief  Macros to enable or disable PLL2.
3694   * @note   After enabling PLL2, the application software should wait on
3695   *         PLL2RDY flag to be set indicating that PLL2 clock is stable and can
3696   *         be used as CPU and/or system bus and/or kernel clock source thru ICx.
3697   * @note   PLL2 is disabled by hardware when entering Stop and Standby modes.
3698   */
3699 #define __HAL_RCC_PLL2_ENABLE()         LL_RCC_PLL2_Enable()
3700 #define __HAL_RCC_PLL2_DISABLE()        LL_RCC_PLL2_Disable()
3701 
3702 /**
3703   * @brief  Macros to enable or disable the PLL2 post divider 1, post divider 2
3704   *         and PLL2 clock output when not in bypass mode.
3705   */
3706 #define __HAL_RCC_PLL2CLKOUT_ENABLE()       LL_RCC_PLL2P_Enable()
3707 #define __HAL_RCC_PLL2CLKOUT_DISABLE()      LL_RCC_PLL2P_Disable()
3708 
3709 /**
3710   * @brief  Macro to configure the PLL2 in integer mode with clock source, multiplication
3711   *         and division factors.
3712   * @note   This macro must be used only when the PLL2 is disabled or the PLL2 output is bypassed
3713   *         and driven by the PLL reference clock. This macro switches off the bypass mode.
3714   *
3715   * @param  __PLLSOURCE__ specifies the PLL entry clock source.
3716   *           This parameter can be one of the following values:
3717   *             @arg @ref RCC_PLLSOURCE_HSI HSI oscillator clock selected as PLL clock entry
3718   *             @arg @ref RCC_PLLSOURCE_MSI MSI oscillator clock selected as PLL clock entry
3719   *             @arg @ref RCC_PLLSOURCE_HSE HSE oscillator clock selected as PLL clock entry
3720   *             @arg @ref RCC_PLLSOURCE_PIN I2S_CKIN clock selected as PLL clock entry
3721   * @note   This clock source cannot be changed on any PLL if another PLL is already enabled.
3722   *
3723   * @param  __PLLM__ specifies the division factor for PLL VCO input clock
3724   *           This parameter must be a number between 1 and 63.
3725   * @note   You have to set the PLLM parameter correctly to ensure that the VCO input
3726   *         frequency ranges from 1 to 50 MHz.
3727   *
3728   * @param  __PLLN__ specifies the multiplication factor for PLL VCO output clock
3729   *           This parameter must be a number between 16 and 2500.
3730   * @param  __PLLP1__ specifies the post division factor 1 for system  clock.
3731   *           This parameter must be a number between 1 and 7.
3732   * @param  __PLLP2__ specifies the post division factor 2 for system  clock.
3733   *           This parameter must be a number between 1 and 7.
3734   *
3735   * @retval None
3736   */
3737 
3738 #define __HAL_RCC_PLL2_CONFIG(__PLLSOURCE__, __PLLM__, __PLLN__, __PLLP1__, __PLLP2__) \
3739   do { \
3740     MODIFY_REG(RCC->PLL2CFGR1, (RCC_PLL2CFGR1_PLL2SEL | RCC_PLL2CFGR1_PLL2BYP | RCC_PLL2CFGR1_PLL2DIVM | RCC_PLL2CFGR1_PLL2DIVN), \
3741                ((__PLLSOURCE__) | ( (__PLLM__) << RCC_PLL2CFGR1_PLL2DIVM_Pos) | (((__PLLN__) << RCC_PLL2CFGR1_PLL2DIVN_Pos))));  \
3742     MODIFY_REG(RCC->PLL2CFGR2, RCC_PLL2CFGR2_PLL2DIVNFRAC, 0U); \
3743     MODIFY_REG(RCC->PLL2CFGR3, (RCC_PLL2CFGR3_PLL2PDIV1 | RCC_PLL2CFGR3_PLL2PDIV2), \
3744                ((((__PLLP1__) << RCC_PLL2CFGR3_PLL2PDIV1_Pos) & RCC_PLL2CFGR3_PLL2PDIV1) | \
3745                 ((((__PLLP2__) << RCC_PLL2CFGR3_PLL2PDIV2_Pos) & RCC_PLL2CFGR3_PLL2PDIV2)))); \
3746   } while(0)
3747 
3748 
3749 /** @brief  Macro to configure the PLL2 clock source.
3750   * @note   This macro must be used only when the PLL2 is disabled or the PLL2 output is bypassed
3751   *         and driven by the PLL reference clock. This macro switches off the bypass mode.
3752   *
3753   * @param  __PLLSOURCE__ specifies the PLL entry clock source.
3754   *           This parameter can be one of the following values:
3755   *              @arg @ref RCC_PLLSOURCE_HSI  HSI oscillator clock selected as PLL clock entry
3756   *              @arg @ref RCC_PLLSOURCE_MSI  MSI oscillator clock selected as PLL clock entry
3757   *              @arg @ref RCC_PLLSOURCE_HSE  HSE oscillator clock selected as PLL clock entry
3758   *              @arg @ref RCC_PLLSOURCE_PIN  External I2S_CKIN clock selected as PLL clock entry
3759   */
3760 #define __HAL_RCC_PLL2_PLLSOURCE_CONFIG(__PLLSOURCE__) LL_RCC_PLL2_SetSource((uin32_t)__PLLSOURCE__)
3761 
3762 /** @brief  Macro to get the clock source used as PLL2 clock source.
3763   * @retval The oscillator used as PLL clock source.
3764   *         The returned value can be one of the following values:
3765   *            @arg @ref RCC_PLLSOURCE_HSI  HSI oscillator is used as PLL clock source.
3766   *            @arg @ref RCC_PLLSOURCE_MSI  MSI oscillator is used as PLL clock source.
3767   *            @arg @ref RCC_PLLSOURCE_HSE  HSE oscillator is used as PLL clock source.
3768   *            @arg @ref RCC_PLLSOURCE_PIN  External I2S_CKIN is used as PLL clock source.
3769   */
3770 #define __HAL_RCC_GET_PLL2_OSCSOURCE() LL_RCC_PLL2_GetSource()
3771 
3772 /**
3773   * @brief  Macro to configure the PLL2 clock Fractional Part Of The Multiplication Factor
3774   * @note   This configuration cannot be requested when the PLL2 has been enabled.
3775   *
3776   * @param  __PLLDIVNFRAC__ specifies Fractional Part Of The Multiplication Factor for PLL2 VCO.
3777   *                         It should be a value between 0 and 2^24.
3778   * @retval None
3779   */
3780 #define  __HAL_RCC_PLL2_DIVNFRAC_CONFIG(__PLLDIVNFRAC__) LL_RCC_PLL2_SetFRACN((uint32_t)(__PLLDIVNFRAC__))
3781 
3782 /**
3783   * @brief  Macro to enable the PLL2 clock Fractional mode
3784   * @note   This configuration cannot be requested when the PLL2 has been enabled.
3785   * @retval None
3786   */
3787 #define  __HAL_RCC_PLL2_FRACN_ENABLE() LL_RCC_PLL2_EnableFractionalModulationSpreadSpectrum()
3788 
3789 /**
3790   * @brief  Macro to disable the PLL2 clock Fractional mode
3791   * @note   This configuration cannot be requested when the PLL2 has been enabled.
3792   * @retval None
3793   */
3794 #define  __HAL_RCC_PLL2_FRACN_DISABLE() LL_RCC_PLL2_DisableFractionalModulationSpreadSpectrum()
3795 
3796 /** @brief  Macros to enable or disable PLL3.
3797   * @note   After enabling PLL3, the application software should wait on
3798   *         PLL3RDY flag to be set indicating that PLL3 clock is stable and can
3799   *         be used as CPU and/or system bus and/or kernel clock source thru ICx.
3800   * @note   PLL3 is disabled by hardware when entering Stop and Standby modes.
3801   */
3802 #define __HAL_RCC_PLL3_ENABLE()         LL_RCC_PLL3_Enable()
3803 #define __HAL_RCC_PLL3_DISABLE()        LL_RCC_PLL3_Disable()
3804 
3805 /**
3806   * @brief  Macros to enable or disable the PLL3 post divider 1, post divider 2
3807   *         and PLL3 clock output when not in bypass mode.
3808   */
3809 #define __HAL_RCC_PLL3CLKOUT_ENABLE()       LL_RCC_PLL3P_Enable()
3810 #define __HAL_RCC_PLL3CLKOUT_DISABLE()      LL_RCC_PLL3P_Disable()
3811 
3812 /**
3813   * @brief  Macro to configure the PLL3 in integer mode with clock source, multiplication
3814   *         and division factors.
3815   * @note   This macro must be used only when the PLL3 is disabled or the PLL3 output is bypassed
3816   *         and driven by the PLL reference clock. This macro switches off the bypass mode.
3817   *
3818   * @param  __PLLSOURCE__ specifies the PLL entry clock source.
3819   *           This parameter can be one of the following values:
3820   *             @arg @ref RCC_PLLSOURCE_HSI HSI oscillator clock selected as PLL clock entry
3821   *             @arg @ref RCC_PLLSOURCE_MSI MSI oscillator clock selected as PLL clock entry
3822   *             @arg @ref RCC_PLLSOURCE_HSE HSE oscillator clock selected as PLL clock entry
3823   *             @arg @ref RCC_PLLSOURCE_PIN I2S_CKIN clock selected as PLL clock entry
3824   * @note   This clock source cannot be changed on any PLL if another PLL is already enabled.
3825   *
3826   * @param  __PLLM__ specifies the division factor for PLL VCO input clock
3827   *           This parameter must be a number between 1 and 63.
3828   * @note   You have to set the PLLM parameter correctly to ensure that the VCO input
3829   *         frequency ranges from 1 to 50 MHz.
3830   *
3831   * @param  __PLLN__ specifies the multiplication factor for PLL VCO output clock
3832   *           This parameter must be a number between 16 and 2500.
3833   * @param  __PLLP1__ specifies the post division factor 1 for system  clock.
3834   *           This parameter must be a number between 1 and 7.
3835   * @param  __PLLP2__ specifies the post division factor 2 for system  clock.
3836   *           This parameter must be a number between 1 and 7.
3837   *
3838   * @retval None
3839   */
3840 
3841 #define __HAL_RCC_PLL3_CONFIG(__PLLSOURCE__, __PLLM__, __PLLN__, __PLLP1__, __PLLP2__) \
3842   do { \
3843     MODIFY_REG(RCC->PLL3CFGR1, (RCC_PLL3CFGR1_PLL3SEL | RCC_PLL3CFGR1_PLL3BYP | RCC_PLL3CFGR1_PLL3DIVM | RCC_PLL3CFGR1_PLL3DIVN), \
3844                ((__PLLSOURCE__) | ( (__PLLM__) << RCC_PLL3CFGR1_PLL3DIVM_Pos) | (((__PLLN__) << RCC_PLL3CFGR1_PLL3DIVN_Pos))));  \
3845     MODIFY_REG(RCC->PLL3CFGR2, RCC_PLL3CFGR2_PLL3DIVNFRAC, 0U); \
3846     MODIFY_REG(RCC->PLL3CFGR3, (RCC_PLL3CFGR3_PLL3PDIV1 | RCC_PLL3CFGR3_PLL3PDIV2), \
3847                ((((__PLLP1__) << RCC_PLL3CFGR3_PLL3PDIV1_Pos) & RCC_PLL3CFGR3_PLL3PDIV1) | \
3848                 ((((__PLLP2__) << RCC_PLL3CFGR3_PLL3PDIV2_Pos) & RCC_PLL3CFGR3_PLL3PDIV2)))); \
3849   } while(0)
3850 
3851 
3852 /** @brief  Macro to configure the PLL3 clock source.
3853   * @note   This macro must be used only when the PLL3 is disabled or the PLL3 output is bypassed
3854   *         and driven by the PLL reference clock. This macro switches off the bypass mode.
3855   *
3856   * @param  __PLLSOURCE__ specifies the PLL entry clock source.
3857   *           This parameter can be one of the following values:
3858   *              @arg @ref RCC_PLLSOURCE_HSI  HSI oscillator clock selected as PLL clock entry
3859   *              @arg @ref RCC_PLLSOURCE_MSI  MSI oscillator clock selected as PLL clock entry
3860   *              @arg @ref RCC_PLLSOURCE_HSE  HSE oscillator clock selected as PLL clock entry
3861   *              @arg @ref RCC_PLLSOURCE_PIN  External I2S_CKIN clock selected as PLL clock entry
3862   */
3863 #define __HAL_RCC_PLL3_PLLSOURCE_CONFIG(__PLLSOURCE__) LL_RCC_PLL3_SetSource((uin32_t)__PLLSOURCE__)
3864 
3865 /** @brief  Macro to get the clock source used as PLL3 clock source.
3866   * @retval The oscillator used as PLL clock source.
3867   *         The returned value can be one of the following values:
3868   *            @arg @ref RCC_PLLSOURCE_HSI  HSI oscillator is used as PLL clock source.
3869   *            @arg @ref RCC_PLLSOURCE_MSI  MSI oscillator is used as PLL clock source.
3870   *            @arg @ref RCC_PLLSOURCE_HSE  HSE oscillator is used as PLL clock source.
3871   *            @arg @ref RCC_PLLSOURCE_PIN  External I2S_CKIN is used as PLL clock source.
3872   */
3873 #define __HAL_RCC_GET_PLL3_OSCSOURCE() LL_RCC_PLL3_GetSource()
3874 
3875 /**
3876   * @brief  Macro to configure the PLL3 clock Fractional Part Of The Multiplication Factor
3877   * @note   This configuration cannot be requested when the PLL3 has been enabled.
3878   *
3879   * @param  __PLLDIVNFRAC__ specifies Fractional Part Of The Multiplication Factor for PLL3 VCO.
3880   *                         It should be a value between 0 and 2^24.
3881   * @retval None
3882   */
3883 #define  __HAL_RCC_PLL3_DIVNFRAC_CONFIG(__PLLDIVNFRAC__) LL_RCC_PLL3_SetFRACN((uint32_t)(__PLLDIVNFRAC__))
3884 
3885 /**
3886   * @brief  Macro to enable the PLL3 clock Fractional mode
3887   * @note   This configuration cannot be requested when the PLL3 has been enabled.
3888   * @retval None
3889   */
3890 #define  __HAL_RCC_PLL3_FRACN_ENABLE() LL_RCC_PLL3_EnableFractionalModulationSpreadSpectrum()
3891 
3892 /**
3893   * @brief  Macro to disable the PLL3 clock Fractional mode
3894   * @note   This configuration cannot be requested when the PLL3 has been enabled.
3895   * @retval None
3896   */
3897 #define  __HAL_RCC_PLL3_FRACN_DISABLE() LL_RCC_PLL3_DisableFractionalModulationSpreadSpectrum()
3898 
3899 /** @brief  Macros to enable or disable PLL4.
3900   * @note   After enabling PLL4, the application software should wait on
3901   *         PLL4RDY flag to be set indicating that PLL4 clock is stable and can
3902   *         be used as CPU and/or system bus and/or kernel clock source thru ICx.
3903   * @note   PLL4 is disabled by hardware when entering Stop and Standby modes.
3904   */
3905 #define __HAL_RCC_PLL4_ENABLE()         LL_RCC_PLL4_Enable()
3906 #define __HAL_RCC_PLL4_DISABLE()        LL_RCC_PLL4_Disable()
3907 
3908 /**
3909   * @brief  Macros to enable or disable the PLL4 post divider 1, post divider 2
3910   *         and PLL4 clock output when not in bypass mode.
3911   */
3912 #define __HAL_RCC_PLL4CLKOUT_ENABLE()       LL_RCC_PLL4P_Enable()
3913 #define __HAL_RCC_PLL4CLKOUT_DISABLE()      LL_RCC_PLL4P_Disable()
3914 
3915 /**
3916   * @brief  Macro to configure the PLL4 in integer mode with clock source, multiplication
3917   *         and division factors.
3918   * @note   This macro must be used only when the PLL4 is disabled or the PLL4 output is bypassed
3919   *         and driven by the PLL reference clock. This macro switches off the bypass mode.
3920   *
3921   * @param  __PLLSOURCE__ specifies the PLL entry clock source.
3922   *           This parameter can be one of the following values:
3923   *             @arg @ref RCC_PLLSOURCE_HSI HSI oscillator clock selected as PLL clock entry
3924   *             @arg @ref RCC_PLLSOURCE_MSI MSI oscillator clock selected as PLL clock entry
3925   *             @arg @ref RCC_PLLSOURCE_HSE HSE oscillator clock selected as PLL clock entry
3926   *             @arg @ref RCC_PLLSOURCE_PIN I2S_CKIN clock selected as PLL clock entry
3927   * @note   This clock source cannot be changed on any PLL if another PLL is already enabled.
3928   *
3929   * @param  __PLLM__ specifies the division factor for PLL VCO input clock
3930   *           This parameter must be a number between 1 and 63.
3931   * @note   You have to set the PLLM parameter correctly to ensure that the VCO input
3932   *         frequency ranges from 1 to 50 MHz.
3933   *
3934   * @param  __PLLN__ specifies the multiplication factor for PLL VCO output clock
3935   *           This parameter must be a number between 16 and 2500.
3936   * @param  __PLLP1__ specifies the post division factor 1 for system  clock.
3937   *           This parameter must be a number between 1 and 7.
3938   * @param  __PLLP2__ specifies the post division factor 2 for system  clock.
3939   *           This parameter must be a number between 1 and 7.
3940   *
3941   * @retval None
3942   */
3943 
3944 #define __HAL_RCC_PLL4_CONFIG(__PLLSOURCE__, __PLLM__, __PLLN__, __PLLP1__, __PLLP2__) \
3945   do { \
3946     MODIFY_REG(RCC->PLL4CFGR1, (RCC_PLL4CFGR1_PLL4SEL | RCC_PLL4CFGR1_PLL4BYP | RCC_PLL4CFGR1_PLL4DIVM | RCC_PLL4CFGR1_PLL4DIVN), \
3947                ((__PLLSOURCE__) | ( (__PLLM__) << RCC_PLL4CFGR1_PLL4DIVM_Pos) | (((__PLLN__) << RCC_PLL4CFGR1_PLL4DIVN_Pos))));  \
3948     MODIFY_REG(RCC->PLL4CFGR2, RCC_PLL4CFGR2_PLL4DIVNFRAC, 0U); \
3949     MODIFY_REG(RCC->PLL4CFGR3, (RCC_PLL4CFGR3_PLL4PDIV1 | RCC_PLL4CFGR3_PLL4PDIV2), \
3950                ((((__PLLP1__) << RCC_PLL4CFGR3_PLL4PDIV1_Pos) & RCC_PLL4CFGR3_PLL4PDIV1) | \
3951                 ((((__PLLP2__) << RCC_PLL4CFGR3_PLL4PDIV2_Pos) & RCC_PLL4CFGR3_PLL4PDIV2)))); \
3952   } while(0)
3953 
3954 
3955 /** @brief  Macro to configure the PLL4 clock source.
3956   * @note   This macro must be used only when the PLL4 is disabled or the PLL4 output is bypassed
3957   *         and driven by the PLL reference clock. This macro switches off the bypass mode.
3958   * @param  __PLLSOURCE__ specifies the PLL entry clock source.
3959   *         This parameter can be one of the following values:
3960   *            @arg @ref RCC_PLLSOURCE_HSI  HSI oscillator clock selected as PLL clock entry
3961   *            @arg @ref RCC_PLLSOURCE_MSI  MSI oscillator clock selected as PLL clock entry
3962   *            @arg @ref RCC_PLLSOURCE_HSE  HSE oscillator clock selected as PLL clock entry
3963   *            @arg @ref RCC_PLLSOURCE_PIN  External I2S_CKIN clock selected as PLL clock entry
3964   */
3965 #define __HAL_RCC_PLL4_PLLSOURCE_CONFIG(__PLLSOURCE__) LL_RCC_PLL4_SetSource((uin32_t)__PLLSOURCE__)
3966 
3967 /** @brief  Macro to get the clock source used as PLL4 clock source.
3968   * @retval The oscillator used as PLL clock source.
3969   *         The returned value can be one of the following values:
3970   *            @arg @ref RCC_PLLSOURCE_HSI  HSI oscillator is used as PLL clock source.
3971   *            @arg @ref RCC_PLLSOURCE_MSI  MSI oscillator is used as PLL clock source.
3972   *            @arg @ref RCC_PLLSOURCE_HSE  HSE oscillator is used as PLL clock source.
3973   *            @arg @ref RCC_PLLSOURCE_PIN  External I2S_CKIN is used as PLL clock source.
3974   */
3975 #define __HAL_RCC_GET_PLL4_OSCSOURCE() LL_RCC_PLL4_GetSource()
3976 
3977 /**
3978   * @brief  Macro to configure the PLL4 clock Fractional Part Of The Multiplication Factor
3979   * @note   This configuration cannot be requested when the PLL4 has been enabled.
3980   *
3981   * @param  __PLLDIVNFRAC__ specifies Fractional Part Of The Multiplication Factor for PLL4 VCO.
3982   *                         It should be a value between 0 and 2^24.
3983   * @retval None
3984   */
3985 #define  __HAL_RCC_PLL4_DIVNFRAC_CONFIG(__PLLDIVNFRAC__)  LL_RCC_PLL4_SetFRACN((uint32_t)(__PLLDIVNFRAC__))
3986 
3987 /**
3988   * @brief  Macro to enable the PLL4 clock Fractional mode
3989   * @note   This configuration cannot be requested when the PLL4 has been enabled.
3990   * @retval None
3991   */
3992 #define  __HAL_RCC_PLL4_FRACN_ENABLE() LL_RCC_PLL4_EnableFractionalModulationSpreadSpectrum()
3993 
3994 
3995 /**
3996   * @brief  Macro to disable the PLL4 clock Fractional mode
3997   * @note   This configuration cannot be requested when the PLL4 has been enabled.
3998   * @retval None
3999   */
4000 #define  __HAL_RCC_PLL4_FRACN_DISABLE()  LL_RCC_PLL4_DisableFractionalModulationSpreadSpectrum()
4001 
4002 /**
4003   * @brief Macro to configure the CPU clock source.
4004   * @param  __CPUCLKSOURCE__ specifies the CPU clock source.
4005   *         This parameter can be one of the following values:
4006   *            @arg @ref RCC_CPUCLKSOURCE_HSI    HSI oscillator is used as CPU clock source.
4007   *            @arg @ref RCC_CPUCLKSOURCE_MSI    MSI oscillator is used as CPU clock source.
4008   *            @arg @ref RCC_CPUCLKSOURCE_HSE    HSE oscillator is used as CPU clock source.
4009   *            @arg @ref RCC_CPUCLKSOURCE_IC1    IC1 output is used as CPU clock source.
4010   * @retval None
4011   */
4012 #define __HAL_RCC_CPUCLK_CONFIG(__CPUCLKSOURCE__) LL_RCC_SetCpuClkSource((uint32_t)(__CPUCLKSOURCE__))
4013 
4014 /** @brief  Macro to get the clock source used as CPU clock.
4015   * @retval The clock source used as CPU clock.
4016   *         The returned value can be one of the following values:
4017   *            @arg @ref RCC_CPUCLKSOURCE_STATUS_HSI    HSI used as CPU clock.
4018   *            @arg @ref RCC_CPUCLKSOURCE_STATUS_MSI    MSI used as CPU clock.
4019   *            @arg @ref RCC_CPUCLKSOURCE_STATUS_HSE    HSE used as CPU clock.
4020   *            @arg @ref RCC_CPUCLKSOURCE_STATUS_IC1    IC1 used as CPU clock.
4021   */
4022 #define __HAL_RCC_GET_CPUCLK_SOURCE() LL_RCC_GetCpuClkSource()
4023 
4024 
4025 /**
4026   * @brief Macro to configure the system bus clock source.
4027   * @param  __SYSCLKSOURCE__ specifies the system clock source.
4028   *         This parameter can be one of the following values:
4029   *            @arg @ref RCC_SYSCLKSOURCE_HSI           HSI oscillator is used as system bus clock source.
4030   *            @arg @ref RCC_SYSCLKSOURCE_MSI           MSI oscillator is used as system bus clock source.
4031   *            @arg @ref RCC_SYSCLKSOURCE_HSE           HSE oscillator is used as system bus clock source.
4032   *            @arg @ref RCC_SYSCLKSOURCE_IC2_IC6_IC11  IC2, IC6 and IC11 outputs are used as system bus clock source.
4033   * @retval None
4034   */
4035 #define __HAL_RCC_SYSCLK_CONFIG(__SYSCLKSOURCE__) LL_RCC_SetSysClkSource((uint32_t)(__SYSCLKSOURCE__))
4036 
4037 /** @brief  Macro to get the clock source used as system bus clock.
4038   * @retval The clock source used as system clock.
4039   *         The returned value can be one of the following values:
4040   *            @arg @ref RCC_SYSCLKSOURCE_STATUS_HSI           HSI used as system bus clock.
4041   *            @arg @ref RCC_SYSCLKSOURCE_STATUS_MSI           MSI used as system bus clock.
4042   *            @arg @ref RCC_SYSCLKSOURCE_STATUS_HSE           HSE used as system bus clock.
4043   *            @arg @ref RCC_SYSCLKSOURCE_STATUS_IC2_IC6_IC11  IC2, IC6 and IC11 outputs used as system bus clock.
4044   */
4045 #define __HAL_RCC_GET_SYSCLK_SOURCE() LL_RCC_GetSysClkSource()
4046 
4047 /**
4048   * @brief  Macro to configure the External Low Speed oscillator (LSE) drive capability.
4049   * @note   As the LSE is in the Backup domain and write access is denied to
4050   *         this domain after reset, you have to enable write access using
4051   *         HAL_PWR_EnableBkUpAccess() function before to configure the LSE
4052   *         (to be done once after reset).
4053   * @note   This parameter cannot be updated while LSE is ON.
4054   * @param  __LSEDRIVE__ specifies the new state of the LSE drive capability.
4055   *          This parameter can be one of the following values:
4056   *            @arg @ref RCC_LSEDRIVE_LOW        LSE oscillator low drive capability.
4057   *            @arg @ref RCC_LSEDRIVE_MEDIUMLOW  LSE oscillator medium low drive capability.
4058   *            @arg @ref RCC_LSEDRIVE_MEDIUMHIGH LSE oscillator medium high drive capability.
4059   *            @arg @ref RCC_LSEDRIVE_HIGH       LSE oscillator high drive capability.
4060   * @retval None
4061   */
4062 #define __HAL_RCC_LSEDRIVE_CONFIG(__LSEDRIVE__) LL_RCC_LSE_SetDriveCapability((uint32_t)(__LSEDRIVE__))
4063 
4064 /**
4065   * @brief  Macro to configure the wake up from stop clock.
4066   * @param  __STOPWUCLK__ specifies the clock source used after wake up from stop
4067   *         This parameter can be one of the following values:
4068   *            @arg @ref RCC_STOP_WAKEUPCLOCK_HSI HSI selected as system clock source
4069   *            @arg @ref RCC_STOP_WAKEUPCLOCK_MSI MSI selected as system clock source
4070   * @retval None
4071   */
4072 #define __HAL_RCC_WAKEUPSTOP_CLK_CONFIG(__STOPWUCLK__) LL_RCC_SetSysWakeUpClkSource((uint32_t)(__STOPWUCLK__))
4073 
4074 /** @defgroup RCCEx_MCOx_Clock_Config RCC Extended MCOx Clock Config
4075   * @{
4076   */
4077 
4078 /**
4079   * @brief  Macros to enable or disable the MCO1 clock output
4080   * @retval None
4081   */
4082 #define __HAL_RCC_MCO1_ENABLE()     LL_RCC_EnableMCO(LL_RCC_MCO1)
4083 
4084 #define __HAL_RCC_MCO1_DISABLE()    LL_RCC_DisableMCO(LL_RCC_MCO1)
4085 
4086 /**
4087   * @brief  Macros to enable or disable the MCO2 clock output
4088   * @retval None
4089   */
4090 #define __HAL_RCC_MCO2_ENABLE()     LL_RCC_EnableMCO(LL_RCC_MCO2)
4091 
4092 #define __HAL_RCC_MCO2_DISABLE()    LL_RCC_DisableMCO(LL_RCC_MCO2)
4093 
4094 
4095 /** @brief  Macro to configure the MCO1 clock.
4096   * @note   MCO1 clock output shall be enabled with __HAL_RCC_MCO1_ENABLE()
4097   * @note   The MCO switch to the new clock source only occurs when the previous clock source is active (dynamic switch).
4098   * @param  __MCOCLKSOURCE__ specifies the MCO clock source.
4099   *          This parameter can be one of the following values:
4100   *            @arg @ref RCC_MCO1SOURCE_HSI       HSI clock selected as MCO1 source
4101   *            @arg @ref RCC_MCO1SOURCE_LSE       LSE clock selected as MCO1 source
4102   *            @arg @ref RCC_MCO1SOURCE_MSI       MSI clock selected as MCO1 source
4103   *            @arg @ref RCC_MCO1SOURCE_LSI       LSI clock selected as MCO1 source
4104   *            @arg @ref RCC_MCO1SOURCE_HSE       HSE clock selected as MCO1 source
4105   *            @arg @ref RCC_MCO1SOURCE_IC5       IC5 clock selected as MCO1 source
4106   *            @arg @ref RCC_MCO1SOURCE_IC10      IC10 clock selected as MCO1 source
4107   *            @arg @ref RCC_MCO1SOURCE_SYSA      SYSA CPU clock selected as MCO1 source
4108   * @param  __MCODIV__ specifies the MCO clock prescaler.
4109   *          This parameter can be one of the following values:
4110   *            @arg @ref RCC_MCODIV_1 up to RCC_MCODIV_16  : divider applied to MCO1 clock
4111   */
4112 #define __HAL_RCC_MCO1_CONFIG(__MCOCLKSOURCE__, __MCODIV__) LL_RCC_ConfigMCO(__MCOCLKSOURCE__, __MCODIV__)
4113 
4114 /** @brief  Macro to configure the MCO2 clock.
4115   * @note   MCO2 clock output shall be enabled with __HAL_RCC_MCO2_ENABLE()
4116   * @note   The MCO switch to the new clock source only occurs when the previous clock source is active (dynamic switch).
4117   * @param  __MCOCLKSOURCE__ specifies the MCO clock source.
4118   *          This parameter can be one of the following values:
4119   *            @arg @ref RCC_MCO2SOURCE_HSI       HSI clock selected as MCO2 source
4120   *            @arg @ref RCC_MCO2SOURCE_LSE       LSE clock selected as MCO2 source
4121   *            @arg @ref RCC_MCO2SOURCE_MSI       MSI clock selected as MCO2 source
4122   *            @arg @ref RCC_MCO2SOURCE_LSI       LSI clock selected as MCO2 source
4123   *            @arg @ref RCC_MCO2SOURCE_HSE       HSE clock selected as MCO2 source
4124   *            @arg @ref RCC_MCO2SOURCE_IC15      IC15 clock selected as MCO2 source
4125   *            @arg @ref RCC_MCO2SOURCE_IC20      IC20 clock selected as MCO2 source
4126   *            @arg @ref RCC_MCO2SOURCE_SYSB      SYSB bus clock selected as MCO2 source
4127   * @param  __MCODIV__ specifies the MCO clock prescaler.
4128   *          This parameter can be one of the following values:
4129   *            @arg @ref RCC_MCODIV_1 up to RCC_MCODIV_16  : divider applied to MCO2 clock
4130   */
4131 #define __HAL_RCC_MCO2_CONFIG(__MCOCLKSOURCE__, __MCODIV__) LL_RCC_ConfigMCO(__MCOCLKSOURCE__, __MCODIV__)
4132 
4133 /**
4134   * @}
4135   */
4136 
4137 /** @defgroup RCC_Flags_Interrupts_Management Flags Interrupts Management
4138   * @brief macros to manage the specified RCC Flags and interrupts.
4139   * @{
4140   */
4141 /** @brief  Enable RCC interrupt.
4142   * @param  __INTERRUPT__ specifies the RCC interrupt source(s) to be enabled.
4143   *         This parameter can be any combination of the following values:
4144   *            @arg @ref RCC_IT_LSIRDY   LSI ready interrupt
4145   *            @arg @ref RCC_IT_LSERDY   LSE ready interrupt
4146   *            @arg @ref RCC_IT_HSIRDY   HSI ready interrupt
4147   *            @arg @ref RCC_IT_MSIRDY   MSI ready interrupt
4148   *            @arg @ref RCC_IT_HSERDY   HSE ready interrupt
4149   *            @arg @ref RCC_IT_PLL1RDY  PLL1 ready interrupt
4150   *            @arg @ref RCC_IT_PLL2RDY  PLL2 ready interrupt
4151   *            @arg @ref RCC_IT_PLL3RDY  PLL3 ready interrupt
4152   *            @arg @ref RCC_IT_PLL4RDY  PLL4 ready interrupt
4153   *            @arg @ref RCC_IT_LSECSS   LSE clock security system interrupt
4154   *            @arg @ref RCC_IT_HSECSS   HSE clock security system interrupt
4155   *            @arg @ref RCC_IT_WKUP     CPU wakeup interrupt
4156   */
4157 #define __HAL_RCC_ENABLE_IT(__INTERRUPT__) SET_BIT(RCC->CIER, (__INTERRUPT__))
4158 
4159 /** @brief  Disable RCC interrupt.
4160   * @param  __INTERRUPT__ specifies the RCC interrupt source(s) to be disabled.
4161   *         This parameter can be any combination of the following values:
4162   *            @arg @ref RCC_IT_LSIRDY   LSI ready interrupt
4163   *            @arg @ref RCC_IT_LSERDY   LSE ready interrupt
4164   *            @arg @ref RCC_IT_HSIRDY   HSI ready interrupt
4165   *            @arg @ref RCC_IT_MSIRDY   MSI ready interrupt
4166   *            @arg @ref RCC_IT_HSERDY   HSE ready interrupt
4167   *            @arg @ref RCC_IT_PLL1RDY  PLL1 ready interrupt
4168   *            @arg @ref RCC_IT_PLL2RDY  PLL2 ready interrupt
4169   *            @arg @ref RCC_IT_PLL3RDY  PLL3 ready interrupt
4170   *            @arg @ref RCC_IT_PLL4RDY  PLL4 ready interrupt
4171   *            @arg @ref RCC_IT_LSECSS   LSE clock security system interrupt
4172   *            @arg @ref RCC_IT_HSECSS   HSE clock security system interrupt
4173   *            @arg @ref RCC_IT_WKUP     CPU wakeup interrupt
4174   */
4175 #define __HAL_RCC_DISABLE_IT(__INTERRUPT__) CLEAR_BIT(RCC->CIER, (__INTERRUPT__))
4176 
4177 /** @brief  Clear the RCC's interrupt pending bits
4178   * @param  __INTERRUPT__ specifies the interrupt pending bit to clear.
4179   *         This parameter can be any combination of the following values:
4180   *            @arg @ref RCC_IT_LSIRDY   LSI ready interrupt
4181   *            @arg @ref RCC_IT_LSERDY   LSE ready interrupt
4182   *            @arg @ref RCC_IT_HSIRDY   HSI ready interrupt
4183   *            @arg @ref RCC_IT_MSIRDY   MSI ready interrupt
4184   *            @arg @ref RCC_IT_HSERDY   HSE ready interrupt
4185   *            @arg @ref RCC_IT_PLL1RDY  PLL1 ready interrupt
4186   *            @arg @ref RCC_IT_PLL2RDY  PLL2 ready interrupt
4187   *            @arg @ref RCC_IT_PLL3RDY  PLL3 ready interrupt
4188   *            @arg @ref RCC_IT_PLL4RDY  PLL4 ready interrupt
4189   *            @arg @ref RCC_IT_LSECSS   LSE clock security system interrupt
4190   *            @arg @ref RCC_IT_HSECSS   HSE clock security interrupt
4191   *            @arg @ref RCC_IT_WKUP     CPU wakeup interrupt
4192   */
4193 #define __HAL_RCC_CLEAR_IT(__INTERRUPT__) WRITE_REG(RCC->CICR, (__INTERRUPT__))
4194 
4195 /** @brief  Check whether the RCC interrupt has occurred or not.
4196   * @param  __INTERRUPT__ specifies the RCC interrupt source to check.
4197   *         This parameter can be one of the following values:
4198   *            @arg @ref RCC_IT_LSIRDY   LSI ready interrupt
4199   *            @arg @ref RCC_IT_LSERDY   LSE ready interrupt
4200   *            @arg @ref RCC_IT_HSIRDY   HSI ready interrupt
4201   *            @arg @ref RCC_IT_MSIRDY   MSI ready interrupt
4202   *            @arg @ref RCC_IT_HSERDY   HSE ready interrupt
4203   *            @arg @ref RCC_IT_PLL1RDY  PLL1 ready interrupt
4204   *            @arg @ref RCC_IT_PLL2RDY  PLL2 ready interrupt
4205   *            @arg @ref RCC_IT_PLL3RDY  PLL3 ready interrupt
4206   *            @arg @ref RCC_IT_PLL4RDY  PLL4 ready interrupt
4207   *            @arg @ref RCC_IT_LSECSS   LSE clock security system interrupt
4208   *            @arg @ref RCC_IT_HSECSS   HSE clock security interrupt
4209   *            @arg @ref RCC_IT_WKUP     CPU wakeup interrupt
4210   * @retval The pending state of __INTERRUPT__ (TRUE or FALSE).
4211   */
4212 #define __HAL_RCC_GET_IT(__INTERRUPT__) (READ_BIT(RCC->CIFR, (__INTERRUPT__)) == (__INTERRUPT__))
4213 
4214 /** @brief Set RMVF bit to clear the reset flags.
4215   *        The reset flags are: RCC_FLAG_LCKRST, RCC_FLAG_BORRST, RCC_FLAG_PINRST, RCC_FLAG_PORRST,
4216   *        RCC_FLAG_SFTRST, RCC_FLAG_IWDGRST, RCC_FLAG_WWDGRST and RCC_FLAG_LPWRRST.
4217  */
4218 #define __HAL_RCC_CLEAR_RESET_FLAGS() LL_RCC_ClearResetFlags()
4219 
4220 /** @brief  Check whether the selected RCC flag is set or not.
4221   * @param  __FLAG__ specifies the flag to check.
4222   *         This parameter can be one of the following values:
4223   *            @arg @ref RCC_FLAG_LCKRST   CPU lockup reset flag
4224   *            @arg @ref RCC_FLAG_BORRST   BOR reset flag
4225   *            @arg @ref RCC_FLAG_PINRST   Pin reset flag
4226   *            @arg @ref RCC_FLAG_PORRST   Power-on reset flag
4227   *            @arg @ref RCC_FLAG_SFTRST   Software reset flag
4228   *            @arg @ref RCC_FLAG_IWDGRST  Independent Watchdog reset flag
4229   *            @arg @ref RCC_FLAG_WWDGRST  Window Watchdog reset flag
4230   *            @arg @ref RCC_FLAG_LPWRRST  Low Power reset flag
4231   *            @arg @ref RCC_FLAG_LSECSSD  Clock security system failure on LSE oscillator detection flag
4232   *            @arg @ref RCC_FLAG_HSECSSD  Clock security system failure on HSE oscillator detection flag
4233   *            @arg @ref RCC_FLAG_LSIRDY   LSI oscillator clock ready flag
4234   *            @arg @ref RCC_FLAG_LSERDY   LSE oscillator clock ready flag
4235   *            @arg @ref RCC_FLAG_HSIRDY   HSI oscillator clock ready flag
4236   *            @arg @ref RCC_FLAG_MSIRDY   MSI oscillator clock ready flag
4237   *            @arg @ref RCC_FLAG_HSERDY   HSE oscillator clock ready flag
4238   *            @arg @ref RCC_FLAG_PLL1RDY  PLL1 ready flag
4239   *            @arg @ref RCC_FLAG_PLL2RDY  PLL2 ready flag
4240   *            @arg @ref RCC_FLAG_PLL3RDY  PLL3 ready flag
4241   *            @arg @ref RCC_FLAG_PLL4RDY  PLL4 ready flag
4242   * @retval The new state of __FLAG__ (TRUE or FALSE).
4243   */
4244 #define __HAL_RCC_GET_FLAG(__FLAG__) ((((((((__FLAG__) >> 5U) == RCC_RSR_REG_INDEX)     ? RCC->RSR :                   \
4245                                           ((((__FLAG__) >> 5U) == RCC_LSECFGR_REG_INDEX) ? RCC->LSECFGR :              \
4246                                            ((((__FLAG__) >> 5U) == RCC_HSECFGR_REG_INDEX) ? RCC->HSECFGR : RCC->SR)))) \
4247                                         & (1UL << ((__FLAG__) & RCC_FLAG_POS_MASK))) != 0U) ? 1U : 0U)
4248 
4249 /**
4250   * @}
4251   */
4252 
4253 /** @defgroup RCC_Attributes_Management Attribute Management
4254   * @brief macros to manage the RCC Attributes.
4255   * @{
4256   */
4257 
4258 /** @brief  Check whether an item attribute is secured
4259   * @param  __ATTRIBUTES__ specifies the item attributes
4260   *         This parameter is a combination of @ref RCC_attributes
4261   * @retval 1 if the item attribute is secured, 0 otherwise.
4262   */
4263 #define HAL_RCC_ATTRIBUTES_IS_SEC(__ATTRIBUTES__) (((__ATTRIBUTES__ & RCC_ATTR_SEC) == RCC_ATTR_SEC) ? 1U : 0U)
4264 
4265 /** @brief  Check whether an item attribute is privileged
4266   * @param  __ATTRIBUTES__ specifies the item attributes
4267   *         This parameter is a combination of @ref RCC_attributes
4268   * @retval 1 if the item attribute is privileged, 0 otherwise.
4269   */
4270 #define HAL_RCC_ATTRIBUTES_IS_PRIV(__ATTRIBUTES__) (((__ATTRIBUTES__ & RCC_ATTR_PRIV) == RCC_ATTR_PRIV) ? 1U : 0U)
4271 
4272 /** @brief  Check whether an item attribute is public
4273   * @param  __ATTRIBUTES__ specifies the item attributes
4274   *         This parameter is a combination of @ref RCC_attributes
4275   * @retval 1 if the item attribute is public, 0 otherwise.
4276   */
4277 #define HAL_RCC_ATTRIBUTES_IS_PUB(__ATTRIBUTES__) (((__ATTRIBUTES__ & RCC_ATTR_PUB) == RCC_ATTR_PUB) ? 1U : 0U)
4278 
4279 /** @brief  Check whether an item attribute is locked
4280   * @param  __ATTRIBUTES__ specifies the item attributes
4281   *         This parameter is a combination of @ref RCC_attributes
4282   * @retval 1 if the item attribute is locked, 0 otherwise.
4283   */
4284 #define HAL_RCC_ATTRIBUTES_IS_LOCK(__ATTRIBUTES__) (((__ATTRIBUTES__ & RCC_ATTR_LOCK) == RCC_ATTR_LOCK) ? 1U : 0U)
4285 
4286 /**
4287   * @}
4288   */
4289 
4290 /**
4291   * @}
4292   */
4293 
4294 /* Include RCC HAL Extension module */
4295 #include "stm32n6xx_hal_rcc_ex.h"
4296 
4297 /* Exported functions --------------------------------------------------------*/
4298 /** @addtogroup RCC_Exported_Functions
4299   * @{
4300   */
4301 
4302 /** @addtogroup RCC_Exported_Functions_Group1
4303   * @{
4304   */
4305 /* Initialization and de-initialization functions  ******************************/
4306 HAL_StatusTypeDef HAL_RCC_DeInit(void);
4307 HAL_StatusTypeDef HAL_RCC_OscConfig(const RCC_OscInitTypeDef *pRCC_OscInitStruct);
4308 HAL_StatusTypeDef HAL_RCC_ClockConfig(const RCC_ClkInitTypeDef *pRCC_ClkInitStruct);
4309 
4310 /**
4311   * @}
4312   */
4313 
4314 /** @addtogroup RCC_Exported_Functions_Group2
4315   * @{
4316   */
4317 /* Peripheral Control functions  ************************************************/
4318 void     HAL_RCC_MCOConfig(uint32_t RCC_MCOx, uint32_t RCC_MCOSource, uint32_t RCC_MCODiv);
4319 void     HAL_RCC_EnableCSS(void);
4320 uint32_t HAL_RCC_GetCpuClockFreq(void);
4321 uint32_t HAL_RCC_GetSysClockFreq(void);
4322 uint32_t HAL_RCC_GetHCLKFreq(void);
4323 uint32_t HAL_RCC_GetPCLK1Freq(void);
4324 uint32_t HAL_RCC_GetPCLK2Freq(void);
4325 uint32_t HAL_RCC_GetPCLK4Freq(void);
4326 uint32_t HAL_RCC_GetPCLK5Freq(void);
4327 void     HAL_RCC_GetOscConfig(RCC_OscInitTypeDef *pRCC_OscInitStruct);
4328 void     HAL_RCC_GetClockConfig(RCC_ClkInitTypeDef *pRCC_ClkInitStruct);
4329 /* CSS NMI IRQ handler */
4330 void     HAL_RCC_NMI_IRQHandler(void);
4331 /* User callback in non blocking mode (IT mode) */
4332 void     HAL_RCC_CSSCallback(void);
4333 
4334 /**
4335   * @}
4336   */
4337 
4338 /** @addtogroup RCC_Exported_Functions_Group3
4339   * @{
4340   */
4341 /* Attributes management functions ********************************************/
4342 void HAL_RCC_ConfigAttributes(uint32_t Item, uint32_t Attributes);
4343 HAL_StatusTypeDef HAL_RCC_GetConfigAttributes(uint32_t Item, uint32_t *pAttributes);
4344 
4345 /**
4346   * @}
4347   */
4348 
4349 /**
4350   * @}
4351   */
4352 
4353 /* Private types -------------------------------------------------------------*/
4354 /* Private variables ---------------------------------------------------------*/
4355 /* Private constants ---------------------------------------------------------*/
4356 /** @defgroup RCC_Private_Constants RCC Private Constants
4357   * @{
4358   */
4359 #define RCC_LSE_TIMEOUT_VALUE     LSE_STARTUP_TIMEOUT
4360 #define RCC_PLL_TIMEOUT_VALUE     1U    /* 1 ms */
4361 
4362 /* Defines used for Flags */
4363 #define RCC_SR_REG_INDEX          1U
4364 #define RCC_LSECFGR_REG_INDEX     2U
4365 #define RCC_HSECFGR_REG_INDEX     3U
4366 #define RCC_RSR_REG_INDEX         4U
4367 #define RCC_FLAG_POS_MASK         0x0000001FU
4368 
4369 /* Defines RCC privilege/secure/public/lock attribute masks */
4370 #define RCC_ATTR_PRIV_MASK     (0x00000002U)    /* RCC privilege mask               */
4371 #define RCC_ATTR_SEC_MASK      (0x00000008U)    /* RCC secure mask                  */
4372 #define RCC_ATTR_PUB_MASK      (0x00000020U)    /* RCC public mask                  */
4373 #define RCC_ATTR_LOCK_MASK     (0x00000080U)    /* RCC lock mask                    */
4374 
4375 /* Defines RCC item groups masks */
4376 /* Item ID are masked with item group to get an unique ID
4377    31           24            16           8             0
4378    --------------------------------------------------------
4379    | Item Group |               Item                       |
4380    --------------------------------------------------------*/
4381 #define RCC_ITEM_GROUP_POS          24UL
4382 #define RCC_ITEM_GROUP_MASK         0xFF000000UL
4383 #define RCC_ITEM_MASK               0x00FFFFFFUL
4384 #define RCC_ITEM_GROUP_OSC          0x01000000UL
4385 #define RCC_ITEM_GROUP_PLL          0x02000000UL
4386 #define RCC_ITEM_GROUP_IC           0x04000000UL
4387 #define RCC_ITEM_GROUP_SYSCFG       0x08000000UL
4388 #define RCC_ITEM_GROUP_BUS          0x10000000UL
4389 #define RCC_ITEM_GROUP_MEM          0x20000000UL
4390 
4391 #define RCC_ITEM_GROUP_OSC_MASK     0x0000001FUL
4392 #define RCC_ITEM_GROUP_PLL_MASK     0x0000000FUL
4393 #define RCC_ITEM_GROUP_IC_MASK      0x000FFFFFUL
4394 #define RCC_ITEM_GROUP_SYSCFG_MASK  0x0000003FUL
4395 #define RCC_ITEM_GROUP_BUS_MASK     0x00003FFFUL
4396 #define RCC_ITEM_GROUP_MEM_MASK     0x00000FFFUL
4397 
4398 /**
4399   * @}
4400   */
4401 
4402 /* Private macros ------------------------------------------------------------*/
4403 /** @addtogroup RCC_Private_Macros
4404   * @{
4405   */
4406 
4407 /** @defgroup RCC_IS_RCC_Definitions RCC Private macros to check input parameters
4408   * @{
4409   */
4410 
4411 #define IS_RCC_OSCILLATORTYPE(__OSCILLATOR__) (((__OSCILLATOR__) == RCC_OSCILLATORTYPE_NONE)                           || \
4412                                                (((__OSCILLATOR__) & RCC_OSCILLATORTYPE_HSE) == RCC_OSCILLATORTYPE_HSE) || \
4413                                                (((__OSCILLATOR__) & RCC_OSCILLATORTYPE_HSI) == RCC_OSCILLATORTYPE_HSI) || \
4414                                                (((__OSCILLATOR__) & RCC_OSCILLATORTYPE_MSI) == RCC_OSCILLATORTYPE_MSI) || \
4415                                                (((__OSCILLATOR__) & RCC_OSCILLATORTYPE_LSI) == RCC_OSCILLATORTYPE_LSI) || \
4416                                                (((__OSCILLATOR__) & RCC_OSCILLATORTYPE_LSE) == RCC_OSCILLATORTYPE_LSE))
4417 
4418 #define IS_RCC_HSE(__HSE__) (((__HSE__) == RCC_HSE_OFF)    || ((__HSE__) == RCC_HSE_ON) || \
4419                              ((__HSE__) == RCC_HSE_BYPASS) || ((__HSE__) == RCC_HSE_BYPASS_DIGITAL))
4420 
4421 #define IS_RCC_LSE(__LSE__) (((__LSE__) == RCC_LSE_OFF)    || ((__LSE__) == RCC_LSE_ON) || \
4422                              ((__LSE__) == RCC_LSE_BYPASS) || ((__LSE__) == RCC_LSE_BYPASS_DIGITAL))
4423 
4424 #define IS_RCC_HSI(__HSI__) (((__HSI__) == RCC_HSI_OFF)     || ((__HSI__) == RCC_HSI_ON))
4425 
4426 #define IS_RCC_HSI_DIV(__HSI__) (((__HSI__) == RCC_HSI_DIV1) || ((__HSI__) == RCC_HSI_DIV2) || \
4427                                  ((__HSI__) == RCC_HSI_DIV4) || ((__HSI__) == RCC_HSI_DIV8))
4428 
4429 #define IS_RCC_LSI(__LSI__) (((__LSI__) == RCC_LSI_OFF) || ((__LSI__) == RCC_LSI_ON))
4430 
4431 #define IS_RCC_MSI(__MSI__) (((__MSI__) == RCC_MSI_OFF) || ((__MSI__) == RCC_MSI_ON))
4432 
4433 #define IS_RCC_MSI_FREQUENCY(__FREQUENCY__) (((__FREQUENCY__) == RCC_MSI_FREQ_4MHZ) ||\
4434                                              ((__FREQUENCY__) == RCC_MSI_FREQ_16MHZ))
4435 
4436 #define IS_RCC_PLL(__PLL__) (((__PLL__) == RCC_PLL_NONE) || \
4437                              ((__PLL__) == RCC_PLL_OFF)  || \
4438                              ((__PLL__) == RCC_PLL_ON)   || \
4439                              ((__PLL__) == RCC_PLL_BYPASS))
4440 
4441 #define IS_RCC_PLLSOURCE(__SOURCE__) (((__SOURCE__) == RCC_PLLSOURCE_HSI) || \
4442                                       ((__SOURCE__) == RCC_PLLSOURCE_MSI) || \
4443                                       ((__SOURCE__) == RCC_PLLSOURCE_HSE) || \
4444                                       ((__SOURCE__) == RCC_PLLSOURCE_PIN))
4445 
4446 #define IS_RCC_PLLM_VALUE(__VALUE__) ((1U <= (__VALUE__)) && ((__VALUE__) <= 63U))
4447 
4448 #define IS_RCC_PLLN_VALUE(__VALUE__) ((10U <= (__VALUE__)) && ((__VALUE__) <= 2500U))
4449 
4450 #define IS_RCC_PLLP_VALUE(__VALUE__) ((1U <= (__VALUE__)) && ((__VALUE__) <= 7U))
4451 
4452 #define IS_RCC_PLLFRACN_VALUE(__VALUE__) ((__VALUE__) <= (RCC_PLL1CFGR2_PLL1DIVNFRAC >> RCC_PLL1CFGR2_PLL1DIVNFRAC_Pos))
4453 
4454 #define IS_RCC_CLOCKTYPE(__CLK__) ((__CLK__) <= 0x7FU)
4455 
4456 #define IS_RCC_CPUCLKSOURCE(__SOURCE__) (((__SOURCE__) == RCC_CPUCLKSOURCE_HSI) || \
4457                                          ((__SOURCE__) == RCC_CPUCLKSOURCE_MSI) || \
4458                                          ((__SOURCE__) == RCC_CPUCLKSOURCE_HSE) || \
4459                                          ((__SOURCE__) == RCC_CPUCLKSOURCE_IC1))
4460 
4461 #define IS_RCC_SYSCLKSOURCE(__SOURCE__) (((__SOURCE__) == RCC_SYSCLKSOURCE_HSI) || \
4462                                          ((__SOURCE__) == RCC_SYSCLKSOURCE_MSI) || \
4463                                          ((__SOURCE__) == RCC_SYSCLKSOURCE_HSE) || \
4464                                          ((__SOURCE__) == RCC_SYSCLKSOURCE_IC2_IC6_IC11))
4465 
4466 #define IS_RCC_HCLK(__HCLK__) (((__HCLK__) == RCC_HCLK_DIV1)   || ((__HCLK__) == RCC_HCLK_DIV2)  || \
4467                                ((__HCLK__) == RCC_HCLK_DIV4)   || ((__HCLK__) == RCC_HCLK_DIV8)  || \
4468                                ((__HCLK__) == RCC_HCLK_DIV16)  || ((__HCLK__) == RCC_HCLK_DIV32) || \
4469                                ((__HCLK__) == RCC_HCLK_DIV64)  || ((__HCLK__) == RCC_HCLK_DIV128))
4470 
4471 #define IS_RCC_PCLK1(__PCLK1__) (((__PCLK1__) == RCC_APB1_DIV1)  || ((__PCLK1__) == RCC_APB1_DIV2)  || \
4472                                  ((__PCLK1__) == RCC_APB1_DIV4)  || ((__PCLK1__) == RCC_APB1_DIV8)  || \
4473                                  ((__PCLK1__) == RCC_APB1_DIV16) || ((__PCLK1__) == RCC_APB1_DIV32) || \
4474                                  ((__PCLK1__) == RCC_APB1_DIV64) || ((__PCLK1__) == RCC_APB1_DIV128))
4475 
4476 #define IS_RCC_PCLK2(__PCLK2__) (((__PCLK2__) == RCC_APB2_DIV1)  || ((__PCLK2__) == RCC_APB2_DIV2) || \
4477                                  ((__PCLK2__) == RCC_APB2_DIV4)  || ((__PCLK2__) == RCC_APB2_DIV8) || \
4478                                  ((__PCLK2__) == RCC_APB2_DIV16) || ((__PCLK2__) == RCC_APB2_DIV32) || \
4479                                  ((__PCLK2__) == RCC_APB2_DIV64) || ((__PCLK2__) == RCC_APB2_DIV128))
4480 
4481 #define IS_RCC_PCLK4(__PCLK4__) (((__PCLK4__) == RCC_APB4_DIV1)  || ((__PCLK4__) == RCC_APB4_DIV2) || \
4482                                  ((__PCLK4__) == RCC_APB4_DIV4)  || ((__PCLK4__) == RCC_APB4_DIV8) || \
4483                                  ((__PCLK4__) == RCC_APB4_DIV16) || ((__PCLK4__) == RCC_APB4_DIV32) || \
4484                                  ((__PCLK4__) == RCC_APB4_DIV64) || ((__PCLK4__) == RCC_APB4_DIV128))
4485 
4486 #define IS_RCC_PCLK5(__PCLK5__) (((__PCLK5__) == RCC_APB5_DIV1)  || ((__PCLK5__) == RCC_APB5_DIV2) || \
4487                                  ((__PCLK5__) == RCC_APB5_DIV4)  || ((__PCLK5__) == RCC_APB5_DIV8) || \
4488                                  ((__PCLK5__) == RCC_APB5_DIV16) || ((__PCLK5__) == RCC_APB5_DIV32) || \
4489                                  ((__PCLK5__) == RCC_APB5_DIV64) || ((__PCLK5__) == RCC_APB5_DIV128))
4490 
4491 #define IS_RCC_RTCCLKSOURCE(__SOURCE__) (((__SOURCE__) == RCC_RTCCLKSOURCE_LSE)       || ((__SOURCE__) == RCC_RTCCLKSOURCE_LSI)       || \
4492                                          ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV1)  || ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV2)  || \
4493                                          ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV3)  || ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV4)  || \
4494                                          ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV5)  || ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV6)  || \
4495                                          ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV7)  || ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV8)  || \
4496                                          ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV9)  || ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV10) || \
4497                                          ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV11) || ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV12) || \
4498                                          ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV13) || ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV14) || \
4499                                          ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV15) || ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV16) || \
4500                                          ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV17) || ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV18) || \
4501                                          ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV19) || ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV20) || \
4502                                          ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV21) || ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV22) || \
4503                                          ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV23) || ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV24) || \
4504                                          ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV25) || ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV26) || \
4505                                          ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV27) || ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV28) || \
4506                                          ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV29) || ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV30) || \
4507                                          ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV31) || ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV32) || \
4508                                          ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV33) || ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV34) || \
4509                                          ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV35) || ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV36) || \
4510                                          ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV37) || ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV38) || \
4511                                          ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV39) || ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV40) || \
4512                                          ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV41) || ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV42) || \
4513                                          ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV43) || ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV44) || \
4514                                          ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV45) || ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV46) || \
4515                                          ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV47) || ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV48) || \
4516                                          ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV49) || ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV50) || \
4517                                          ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV51) || ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV52) || \
4518                                          ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV53) || ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV54) || \
4519                                          ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV55) || ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV56) || \
4520                                          ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV57) || ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV58) || \
4521                                          ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV59) || ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV60) || \
4522                                          ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV61) || ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV62) || \
4523                                          ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV63) || ((__SOURCE__) == RCC_RTCCLKSOURCE_HSE_DIV64))
4524 
4525 #define IS_RCC_MCO(__MCOX__) (((__MCOX__) == RCC_MCO1) || ((__MCOX__) == RCC_MCO2))
4526 
4527 #define IS_RCC_MCO1SOURCE(__SOURCE__) (((__SOURCE__) == RCC_MCO1SOURCE_LSI)  || ((__SOURCE__) == RCC_MCO1SOURCE_LSE)  || \
4528                                        ((__SOURCE__) == RCC_MCO1SOURCE_MSI)  || ((__SOURCE__) == RCC_MCO1SOURCE_HSI)  || \
4529                                        ((__SOURCE__) == RCC_MCO1SOURCE_HSE)  || ((__SOURCE__) == RCC_MCO1SOURCE_IC5)  || \
4530                                        ((__SOURCE__) == RCC_MCO1SOURCE_IC10) || ((__SOURCE__) == RCC_MCO1SOURCE_SYSA))
4531 
4532 #define IS_RCC_MCO2SOURCE(__SOURCE__) (((__SOURCE__) == RCC_MCO2SOURCE_LSI)  || ((__SOURCE__) == RCC_MCO2SOURCE_LSE)  || \
4533                                        ((__SOURCE__) == RCC_MCO2SOURCE_MSI)  || ((__SOURCE__) == RCC_MCO2SOURCE_HSI)  || \
4534                                        ((__SOURCE__) == RCC_MCO2SOURCE_HSE)  || ((__SOURCE__) == RCC_MCO2SOURCE_IC15) || \
4535                                        ((__SOURCE__) == RCC_MCO2SOURCE_IC20) || ((__SOURCE__) == RCC_MCO2SOURCE_SYSB))
4536 
4537 #define IS_RCC_MCODIV(__DIV__) (((__DIV__) == RCC_MCODIV_1)  || ((__DIV__) == RCC_MCODIV_2)   || \
4538                                 ((__DIV__) == RCC_MCODIV_3)  || ((__DIV__) == RCC_MCODIV_4)   || \
4539                                 ((__DIV__) == RCC_MCODIV_5)  || ((__DIV__) == RCC_MCODIV_6)   || \
4540                                 ((__DIV__) == RCC_MCODIV_7)  || ((__DIV__) == RCC_MCODIV_8)   || \
4541                                 ((__DIV__) == RCC_MCODIV_9)  || ((__DIV__) == RCC_MCODIV_10)  || \
4542                                 ((__DIV__) == RCC_MCODIV_11) || ((__DIV__) == RCC_MCODIV_12)  || \
4543                                 ((__DIV__) == RCC_MCODIV_13) || ((__DIV__) == RCC_MCODIV_14)  || \
4544                                 ((__DIV__) == RCC_MCODIV_15) || ((__DIV__) == RCC_MCODIV_16))
4545 
4546 #define IS_RCC_HSI_CALIBRATION_VALUE(__VALUE__) ((__VALUE__) <= 0x7FU)
4547 
4548 #define IS_RCC_MSI_CALIBRATION_VALUE(__VALUE__) ((__VALUE__) <= 0x1FU)
4549 
4550 #define IS_RCC_STOP_WAKEUPCLOCK(__SOURCE__) (((__SOURCE__) == RCC_STOP_WAKEUPCLOCK_MSI) || \
4551                                              ((__SOURCE__) == RCC_STOP_WAKEUPCLOCK_HSI))
4552 
4553 #define IS_RCC_ICCLKSOURCE(__SOURCE__) (((__SOURCE__) == RCC_ICCLKSOURCE_PLL1) || \
4554                                         ((__SOURCE__) == RCC_ICCLKSOURCE_PLL2) || \
4555                                         ((__SOURCE__) == RCC_ICCLKSOURCE_PLL3)  || \
4556                                         ((__SOURCE__) == RCC_ICCLKSOURCE_PLL4))
4557 
4558 #define IS_RCC_ICCLKDIVIDER(__VALUE__) ((1U <= (__VALUE__)) && ((__VALUE__) <= 256U))
4559 
4560 #define IS_RCC_ITEM_ATTRIBUTES(ITEM)  ((((ITEM) & RCC_ITEM_ALL) != 0U) && (((ITEM) & ~RCC_ITEM_ALL) == 0U))
4561 
4562 #define IS_RCC_SINGLE_ITEM_ATTRIBUTES(ITEM) (((ITEM) == RCC_ITEM_LSI)         || \
4563                                              ((ITEM) == RCC_ITEM_LSE)         || \
4564                                              ((ITEM) == RCC_ITEM_MSI)         || \
4565                                              ((ITEM) == RCC_ITEM_HSI)         || \
4566                                              ((ITEM) == RCC_ITEM_HSE)         || \
4567                                              ((ITEM) == RCC_ITEM_PLL1)        || \
4568                                              ((ITEM) == RCC_ITEM_PLL2)        || \
4569                                              ((ITEM) == RCC_ITEM_PLL3)        || \
4570                                              ((ITEM) == RCC_ITEM_PLL4)        || \
4571                                              ((ITEM) == RCC_ITEM_IC1)         || \
4572                                              ((ITEM) == RCC_ITEM_IC2)         || \
4573                                              ((ITEM) == RCC_ITEM_IC3)         || \
4574                                              ((ITEM) == RCC_ITEM_IC4)         || \
4575                                              ((ITEM) == RCC_ITEM_IC5)         || \
4576                                              ((ITEM) == RCC_ITEM_IC6)         || \
4577                                              ((ITEM) == RCC_ITEM_IC7)         || \
4578                                              ((ITEM) == RCC_ITEM_IC8)         || \
4579                                              ((ITEM) == RCC_ITEM_IC9)         || \
4580                                              ((ITEM) == RCC_ITEM_IC10)        || \
4581                                              ((ITEM) == RCC_ITEM_IC11)        || \
4582                                              ((ITEM) == RCC_ITEM_IC12)        || \
4583                                              ((ITEM) == RCC_ITEM_IC13)        || \
4584                                              ((ITEM) == RCC_ITEM_IC14)        || \
4585                                              ((ITEM) == RCC_ITEM_IC15)        || \
4586                                              ((ITEM) == RCC_ITEM_IC16)        || \
4587                                              ((ITEM) == RCC_ITEM_IC17)        || \
4588                                              ((ITEM) == RCC_ITEM_IC18)        || \
4589                                              ((ITEM) == RCC_ITEM_IC19)        || \
4590                                              ((ITEM) == RCC_ITEM_IC20)        || \
4591                                              ((ITEM) == RCC_ITEM_MOD)         || \
4592                                              ((ITEM) == RCC_ITEM_SYS)         || \
4593                                              ((ITEM) == RCC_ITEM_BUS)         || \
4594                                              ((ITEM) == RCC_ITEM_PER)         || \
4595                                              ((ITEM) == RCC_ITEM_INT)         || \
4596                                              ((ITEM) == RCC_ITEM_RST)         || \
4597                                              ((ITEM) == RCC_ITEM_ACLKN)       || \
4598                                              ((ITEM) == RCC_ITEM_ACLKNC)      || \
4599                                              ((ITEM) == RCC_ITEM_AHBM)        || \
4600                                              ((ITEM) == RCC_ITEM_AHB1)        || \
4601                                              ((ITEM) == RCC_ITEM_AHB2)        || \
4602                                              ((ITEM) == RCC_ITEM_AHB3)        || \
4603                                              ((ITEM) == RCC_ITEM_AHB4)        || \
4604                                              ((ITEM) == RCC_ITEM_AHB5)        || \
4605                                              ((ITEM) == RCC_ITEM_APB1)        || \
4606                                              ((ITEM) == RCC_ITEM_APB2)        || \
4607                                              ((ITEM) == RCC_ITEM_APB3)        || \
4608                                              ((ITEM) == RCC_ITEM_APB4)        || \
4609                                              ((ITEM) == RCC_ITEM_APB5)        || \
4610                                              ((ITEM) == RCC_ITEM_NOC)         || \
4611                                              ((ITEM) == RCC_ITEM_AXISRAM3)    || \
4612                                              ((ITEM) == RCC_ITEM_AXISRAM4)    || \
4613                                              ((ITEM) == RCC_ITEM_AXISRAM5)    || \
4614                                              ((ITEM) == RCC_ITEM_AXISRAM6)    || \
4615                                              ((ITEM) == RCC_ITEM_AHBSRAM1)    || \
4616                                              ((ITEM) == RCC_ITEM_AHBSRAM2)    || \
4617                                              ((ITEM) == RCC_ITEM_BKPSRAM)     || \
4618                                              ((ITEM) == RCC_ITEM_AXISRAM1)    || \
4619                                              ((ITEM) == RCC_ITEM_AXISRAM2)    || \
4620                                              ((ITEM) == RCC_ITEM_FLEXRAM)     || \
4621                                              ((ITEM) == RCC_ITEM_CACHEAXIRAM) || \
4622                                              ((ITEM) == RCC_ITEM_VENCRAM))
4623 
4624 
4625 #if defined (CPU_IN_SECURE_STATE)
4626 #define IS_RCC_ATTRIBUTES(ATTRIBUTE) (((((ATTRIBUTE) & RCC_ATTR_SEC) == RCC_ATTR_SEC)        || \
4627                                        (((ATTRIBUTE) & RCC_ATTR_NSEC) == RCC_ATTR_NSEC)      || \
4628                                        (((ATTRIBUTE) & RCC_ATTR_PRIV) == RCC_ATTR_PRIV)      || \
4629                                        (((ATTRIBUTE) & RCC_ATTR_NPRIV) == RCC_ATTR_NPRIV)    || \
4630                                        (((ATTRIBUTE) & RCC_ATTR_PUB)  == RCC_ATTR_PUB)       || \
4631                                        (((ATTRIBUTE) & RCC_ATTR_NPUB) == RCC_ATTR_NPUB)      || \
4632                                        (((ATTRIBUTE) & RCC_ATTR_LOCK) == RCC_ATTR_LOCK))     && \
4633                                       (((ATTRIBUTE) & ~(RCC_ATTR_SEC|RCC_ATTR_NSEC|RCC_ATTR_PRIV|RCC_ATTR_NPRIV|\
4634                                                         RCC_ATTR_PUB|RCC_ATTR_NPUB|RCC_ATTR_LOCK)) == 0U))
4635 #else
4636 #define IS_RCC_ATTRIBUTES(ATTRIBUTE) (((((ATTRIBUTE) & RCC_ATTR_PRIV) == RCC_ATTR_PRIV) || \
4637                                        (((ATTRIBUTE) & RCC_ATTR_NPRIV) == RCC_ATTR_NPRIV)) && \
4638                                       (((ATTRIBUTE) & ~(RCC_ATTR_PRIV|RCC_ATTR_NPRIV)) == 0U))
4639 
4640 #endif /* CPU_IN_SECURE_STATE */
4641 
4642 
4643 /**
4644   * @}
4645   */
4646 
4647 /**
4648   * @}
4649   */
4650 
4651 /**
4652   * @}
4653   */
4654 
4655 /**
4656   * @}
4657   */
4658 #ifdef __cplusplus
4659 }
4660 #endif
4661 
4662 #endif /* STM32N6xx_HAL_RCC_H */
4663