1 /**
2   ******************************************************************************
3   * @file    stm32h5xx_ll_bus.h
4   * @author  MCD Application Team
5   * @brief   Header file of BUS LL module.
6 
7   @verbatim
8                       ##### RCC Limitations #####
9   ==============================================================================
10     [..]
11       A delay between an RCC peripheral clock enable and the effective peripheral
12       enabling should be taken into account in order to manage the peripheral read/write
13       from/to registers.
14       (+) This delay depends on the peripheral mapping.
15         (++) AHB , APB peripherals,  1 dummy read is necessary
16 
17     [..]
18       Workarounds:
19       (#) For AHB , APB peripherals, a dummy read to the peripheral register has been
20           inserted in each LL_{BUS}_GRP{x}_EnableClock() function.
21 
22   @endverbatim
23   ******************************************************************************
24   * @attention
25   *
26   * Copyright (c) 2023 STMicroelectronics.
27   * All rights reserved.
28   *
29   * This software is licensed under terms that can be found in the LICENSE file
30   * in the root directory of this software component.
31   * If no LICENSE file comes with this software, it is provided AS-IS.
32   *
33   ******************************************************************************
34   */
35 
36 /* Define to prevent recursive inclusion -------------------------------------*/
37 #ifndef __STM32H5xx_LL_BUS_H
38 #define __STM32H5xx_LL_BUS_H
39 
40 #ifdef __cplusplus
41 extern "C" {
42 #endif
43 
44 /* Includes ------------------------------------------------------------------*/
45 #include "stm32h5xx.h"
46 
47 /** @addtogroup STM32H5xx_LL_Driver
48   * @{
49   */
50 
51 #if defined(RCC)
52 
53 /** @defgroup BUS_LL BUS
54   * @{
55   */
56 
57 /* Private types -------------------------------------------------------------*/
58 /* Private variables ---------------------------------------------------------*/
59 /* Private constants ---------------------------------------------------------*/
60 /* Private macros ------------------------------------------------------------*/
61 
62 /* Exported types ------------------------------------------------------------*/
63 /* Exported constants --------------------------------------------------------*/
64 /** @defgroup BUS_LL_Exported_Constants BUS Exported Constants
65   * @{
66   */
67 
68 /** @defgroup BUS_LL_AHB_BRANCH_CLK_AHBx  BRANCH CLK AHBx
69   * @{
70   */
71 #define LL_AHB_BRANCH_CLK_AHB1          RCC_CFGR2_AHB1DIS
72 #define LL_AHB_BRANCH_CLK_AHB2          RCC_CFGR2_AHB2DIS
73 #if defined(AHB4PERIPH_BASE)
74 #define LL_AHB_BRANCH_CLK_AHB4          RCC_CFGR2_AHB4DIS
75 #endif /* AHB4PERIPH_BASE */
76 /**
77   * @}
78   */
79 
80 /** @defgroup BUS_LL_APB_BRANCH_CLK_APBx  BRANCH CLK APBx
81   * @{
82   */
83 #define LL_APB_BRANCH_CLK_APB1          RCC_CFGR2_APB1DIS
84 #define LL_APB_BRANCH_CLK_APB2          RCC_CFGR2_APB2DIS
85 #define LL_APB_BRANCH_CLK_APB3          RCC_CFGR2_APB3DIS
86 /**
87   * @}
88   */
89 
90 /** @defgroup BUS_LL_EC_AHB1_GRP1_PERIPH  AHB1 GRP1 PERIPH
91   * @{
92   */
93 #if defined(CORDIC)
94 #define LL_AHB1_GRP1_PERIPH_ALL           0xF13AD103U
95 #elif defined(DCACHE)
96 #define LL_AHB1_GRP1_PERIPH_ALL           0xF1021103U
97 #else
98 #define LL_AHB1_GRP1_PERIPH_ALL           0x91021103U
99 #endif /* CORDIC */
100 #define LL_AHB1_GRP1_PERIPH_GPDMA1        RCC_AHB1ENR_GPDMA1EN
101 #define LL_AHB1_GRP1_PERIPH_GPDMA2        RCC_AHB1ENR_GPDMA2EN
102 #if defined(CORDIC)
103 #define LL_AHB1_GRP1_PERIPH_CORDIC        RCC_AHB1ENR_CORDICEN
104 #endif /* CORDIC */
105 #if defined(FMAC)
106 #define LL_AHB1_GRP1_PERIPH_FMAC          RCC_AHB1ENR_FMACEN
107 #endif /* FMAC */
108 #define LL_AHB1_GRP1_PERIPH_FLASH         RCC_AHB1ENR_FLITFEN
109 #if defined(ETH)
110 #define LL_AHB1_GRP1_PERIPH_ETH           RCC_AHB1ENR_ETHEN
111 #define LL_AHB1_GRP1_PERIPH_ETHTX         RCC_AHB1ENR_ETHTXEN
112 #define LL_AHB1_GRP1_PERIPH_ETHRX         RCC_AHB1ENR_ETHRXEN
113 #endif /* ETH */
114 #if defined(RCC_AHB1ENR_ETHCKEN)
115 #define LL_AHB1_GRP1_PERIPH_ETHINTERN     RCC_AHB1ENR_ETHCKEN
116 #endif /* RCC_AHB1ENR_ETHCKEN */
117 #define LL_AHB1_GRP1_PERIPH_CRC           RCC_AHB1ENR_CRCEN
118 #define LL_AHB1_GRP1_PERIPH_RAMCFG        RCC_AHB1ENR_RAMCFGEN
119 #define LL_AHB1_GRP1_PERIPH_GTZC1         RCC_AHB1ENR_TZSC1EN
120 #define LL_AHB1_GRP1_PERIPH_BKPSRAM       RCC_AHB1ENR_BKPRAMEN
121 #define LL_AHB1_GRP1_PERIPH_ICACHE        RCC_AHB1LPENR_ICACHELPEN
122 #if defined(DCACHE1)
123 #define LL_AHB1_GRP1_PERIPH_DCACHE1       RCC_AHB1ENR_DCACHE1EN
124 #endif /* DCACHE1 */
125 #define LL_AHB1_GRP1_PERIPH_SRAM1         RCC_AHB1ENR_SRAM1EN
126 /**
127   * @}
128   */
129 
130 /** @defgroup BUS_LL_EC_AHB2_GRP1_PERIPH  AHB2 GRP1 PERIPH
131   * @{
132   */
133 #if defined(GPIOI)
134 #define LL_AHB2_GRP1_PERIPH_ALL            0xC01F1DFFU
135 #elif defined(GPIOE)
136 #define LL_AHB2_GRP1_PERIPH_ALL            0xC01F1CFFU
137 #else
138 #define LL_AHB2_GRP1_PERIPH_ALL            0x40060C8FU
139 #endif /* GPIOE */
140 #define LL_AHB2_GRP1_PERIPH_GPIOA          RCC_AHB2ENR_GPIOAEN
141 #define LL_AHB2_GRP1_PERIPH_GPIOB          RCC_AHB2ENR_GPIOBEN
142 #define LL_AHB2_GRP1_PERIPH_GPIOC          RCC_AHB2ENR_GPIOCEN
143 #define LL_AHB2_GRP1_PERIPH_GPIOD          RCC_AHB2ENR_GPIODEN
144 #if defined(GPIOE)
145 #define LL_AHB2_GRP1_PERIPH_GPIOE          RCC_AHB2ENR_GPIOEEN
146 #endif /* GPIOE */
147 #if defined(GPIOF)
148 #define LL_AHB2_GRP1_PERIPH_GPIOF          RCC_AHB2ENR_GPIOFEN
149 #endif /* GPIOF */
150 #if defined(GPIOG)
151 #define LL_AHB2_GRP1_PERIPH_GPIOG          RCC_AHB2ENR_GPIOGEN
152 #endif /* GPIOG */
153 #define LL_AHB2_GRP1_PERIPH_GPIOH          RCC_AHB2ENR_GPIOHEN
154 #if defined(GPIOI)
155 #define LL_AHB2_GRP1_PERIPH_GPIOI          RCC_AHB2ENR_GPIOIEN
156 #endif /* GPIOI */
157 #define LL_AHB2_GRP1_PERIPH_ADC            RCC_AHB2ENR_ADCEN
158 #define LL_AHB2_GRP1_PERIPH_DAC1           RCC_AHB2ENR_DAC1EN
159 #if defined(DCMI)
160 #define LL_AHB2_GRP1_PERIPH_DCMI_PSSI      RCC_AHB2ENR_DCMI_PSSIEN
161 #endif /* DCMI */
162 #if defined(AES)
163 #define LL_AHB2_GRP1_PERIPH_AES            RCC_AHB2ENR_AESEN
164 #endif /* AES */
165 #if defined(HASH)
166 #define LL_AHB2_GRP1_PERIPH_HASH           RCC_AHB2ENR_HASHEN
167 #endif /* HASH */
168 #define LL_AHB2_GRP1_PERIPH_RNG            RCC_AHB2ENR_RNGEN
169 #if defined(PKA)
170 #define LL_AHB2_GRP1_PERIPH_PKA            RCC_AHB2ENR_PKAEN
171 #endif /* PKA */
172 #if defined(SAES)
173 #define LL_AHB2_GRP1_PERIPH_SAES           RCC_AHB2ENR_SAESEN
174 #endif /* SAES */
175 #define LL_AHB2_GRP1_PERIPH_SRAM2          RCC_AHB2ENR_SRAM2EN
176 #if defined(SRAM3_BASE)
177 #define LL_AHB2_GRP1_PERIPH_SRAM3          RCC_AHB2ENR_SRAM3EN
178 #endif /* SRAM3_BASE */
179 /**
180   * @}
181   */
182 #if defined(AHB4PERIPH_BASE)
183 /** @defgroup BUS_LL_EC_AHB4_GRP1_PERIPH  AHB4 GRP1 PERIPH
184   * @{
185   */
186 #define LL_AHB4_GRP1_PERIPH_ALL            0x00111880U
187 #define LL_AHB4_GRP1_PERIPH_OTFDEC         RCC_AHB4ENR_OTFDEC1EN
188 #define LL_AHB4_GRP1_PERIPH_SDMMC1         RCC_AHB4ENR_SDMMC1EN
189 #if defined(SDMMC2)
190 #define LL_AHB4_GRP1_PERIPH_SDMMC2         RCC_AHB4ENR_SDMMC2EN
191 #endif /* SDMMC2*/
192 #define LL_AHB4_GRP1_PERIPH_FMC            RCC_AHB4ENR_FMCEN
193 #define LL_AHB4_GRP1_PERIPH_OSPI1          RCC_AHB4ENR_OCTOSPI1EN
194 /**
195   * @}
196   */
197 #endif /* AHB4PERIPH_BASE */
198 
199 /** @defgroup BUS_LL_EC_APB1_GRP1_PERIPH  APB1 GRP1 PERIPH
200   * @{
201   */
202 #if defined(USART11)
203 #define LL_APB1_GRP1_PERIPH_ALL           0xDFFEC9FFU
204 #elif defined(USART6)
205 #define LL_APB1_GRP1_PERIPH_ALL           0x13FEC87FU
206 #else
207 #define LL_APB1_GRP1_PERIPH_ALL           0x01E7E833U
208 #endif /* TIM4 */
209 #define LL_APB1_GRP1_PERIPH_TIM2          RCC_APB1LENR_TIM2EN
210 #define LL_APB1_GRP1_PERIPH_TIM3          RCC_APB1LENR_TIM3EN
211 #if defined(TIM4)
212 #define LL_APB1_GRP1_PERIPH_TIM4          RCC_APB1LENR_TIM4EN
213 #endif /* TIM4*/
214 #if defined(TIM5)
215 #define LL_APB1_GRP1_PERIPH_TIM5          RCC_APB1LENR_TIM5EN
216 #endif /* TIM5*/
217 #define LL_APB1_GRP1_PERIPH_TIM6          RCC_APB1LENR_TIM6EN
218 #define LL_APB1_GRP1_PERIPH_TIM7          RCC_APB1LENR_TIM7EN
219 #if defined(TIM12)
220 #define LL_APB1_GRP1_PERIPH_TIM12         RCC_APB1LENR_TIM12EN
221 #endif /* TIM12*/
222 #if defined(TIM13)
223 #define LL_APB1_GRP1_PERIPH_TIM13         RCC_APB1LENR_TIM13EN
224 #endif /* TIM13*/
225 #if defined(TIM14)
226 #define LL_APB1_GRP1_PERIPH_TIM14         RCC_APB1LENR_TIM14EN
227 #endif /* TIM14*/
228 #define LL_APB1_GRP1_PERIPH_WWDG          RCC_APB1LENR_WWDGEN
229 #if defined(OPAMP1)
230 #define LL_APB1_GRP1_PERIPH_OPAMP         RCC_APB1LENR_OPAMPEN
231 #endif /* OPAMP1 */
232 #define LL_APB1_GRP1_PERIPH_SPI2          RCC_APB1LENR_SPI2EN
233 #define LL_APB1_GRP1_PERIPH_SPI3          RCC_APB1LENR_SPI3EN
234 #if defined(COMP1)
235 #define LL_APB1_GRP1_PERIPH_COMP          RCC_APB1LENR_COMPEN
236 #endif /* COMP1 */
237 #define LL_APB1_GRP1_PERIPH_USART2        RCC_APB1LENR_USART2EN
238 #define LL_APB1_GRP1_PERIPH_USART3        RCC_APB1LENR_USART3EN
239 #if defined(UART4)
240 #define LL_APB1_GRP1_PERIPH_UART4         RCC_APB1LENR_UART4EN
241 #endif /* UART4*/
242 #if defined(UART5)
243 #define LL_APB1_GRP1_PERIPH_UART5         RCC_APB1LENR_UART5EN
244 #endif /* UART5*/
245 #define LL_APB1_GRP1_PERIPH_I2C1          RCC_APB1LENR_I2C1EN
246 #define LL_APB1_GRP1_PERIPH_I2C2          RCC_APB1LENR_I2C2EN
247 #define LL_APB1_GRP1_PERIPH_I3C1          RCC_APB1LENR_I3C1EN
248 #define LL_APB1_GRP1_PERIPH_CRS           RCC_APB1LENR_CRSEN
249 #if defined(USART6)
250 #define LL_APB1_GRP1_PERIPH_USART6        RCC_APB1LENR_USART6EN
251 #endif /* USART6*/
252 #if defined(USART10)
253 #define LL_APB1_GRP1_PERIPH_USART10       RCC_APB1LENR_USART10EN
254 #endif /* USART10*/
255 #if defined(USART11)
256 #define LL_APB1_GRP1_PERIPH_USART11       RCC_APB1LENR_USART11EN
257 #endif /* USART11*/
258 #if defined(CEC)
259 #define LL_APB1_GRP1_PERIPH_CEC           RCC_APB1LENR_CECEN
260 #endif /* CEC*/
261 #if defined(UART7)
262 #define LL_APB1_GRP1_PERIPH_UART7         RCC_APB1LENR_UART7EN
263 #endif /* UART7 */
264 #if defined(UART8)
265 #define LL_APB1_GRP1_PERIPH_UART8         RCC_APB1LENR_UART8EN
266 #endif /* UART8 */
267 /**
268   * @}
269   */
270 
271 
272 /** @defgroup BUS_LL_EC_APB1_GRP2_PERIPH  APB1 GRP2 PERIPH
273   * @{
274   */
275 #if defined(UART9)
276 #define LL_APB1_GRP2_PERIPH_ALL            0x0080022BU
277 #else
278 #define LL_APB1_GRP2_PERIPH_ALL            0x00000228U
279 #endif /* UART9 */
280 #if defined(UART9)
281 #define LL_APB1_GRP2_PERIPH_UART9          RCC_APB1HENR_UART9EN
282 #endif /* UART9 */
283 #if defined(UART12)
284 #define LL_APB1_GRP2_PERIPH_UART12         RCC_APB1HENR_UART12EN
285 #endif /* UART12*/
286 #define LL_APB1_GRP2_PERIPH_DTS            RCC_APB1HENR_DTSEN
287 #define LL_APB1_GRP2_PERIPH_LPTIM2         RCC_APB1HENR_LPTIM2EN
288 #define LL_APB1_GRP2_PERIPH_FDCAN          RCC_APB1HENR_FDCANEN
289 #if defined(UCPD1)
290 #define LL_APB1_GRP2_PERIPH_UCPD1          RCC_APB1HENR_UCPD1EN
291 #endif /* UCPD1 */
292 /**
293   * @}
294   */
295 
296 /** @defgroup BUS_LL_EC_APB2_GRP1_PERIPH  APB2 GRP1 PERIPH
297   * @{
298   */
299 #if defined(TIM16)
300 #define LL_APB2_GRP1_PERIPH_ALL            0x017F7800U
301 #elif defined(TIM8)
302 #define LL_APB2_GRP1_PERIPH_ALL            0x01097800U
303 #else
304 #define LL_APB2_GRP1_PERIPH_ALL            0x01005800U
305 #endif /* TIM8 */
306 #define LL_APB2_GRP1_PERIPH_TIM1           RCC_APB2ENR_TIM1EN
307 #define LL_APB2_GRP1_PERIPH_SPI1           RCC_APB2ENR_SPI1EN
308 #if defined(TIM8)
309 #define LL_APB2_GRP1_PERIPH_TIM8           RCC_APB2ENR_TIM8EN
310 #endif /* TIM8 */
311 #define LL_APB2_GRP1_PERIPH_USART1         RCC_APB2ENR_USART1EN
312 #if defined(TIM15)
313 #define LL_APB2_GRP1_PERIPH_TIM15          RCC_APB2ENR_TIM15EN
314 #endif /* TIM15 */
315 #if defined(TIM16)
316 #define LL_APB2_GRP1_PERIPH_TIM16          RCC_APB2ENR_TIM16EN
317 #endif /* TIM16 */
318 #if defined(TIM17)
319 #define LL_APB2_GRP1_PERIPH_TIM17          RCC_APB2ENR_TIM17EN
320 #endif /* TIM17 */
321 #if defined(SPI4)
322 #define LL_APB2_GRP1_PERIPH_SPI4           RCC_APB2ENR_SPI4EN
323 #endif /* SPI4 */
324 #if defined(SPI6)
325 #define LL_APB2_GRP1_PERIPH_SPI6           RCC_APB2ENR_SPI6EN
326 #endif /* SPI6 */
327 #if defined(SAI1)
328 #define LL_APB2_GRP1_PERIPH_SAI1           RCC_APB2ENR_SAI1EN
329 #endif /* SAI1 */
330 #if defined(SAI2)
331 #define LL_APB2_GRP1_PERIPH_SAI2           RCC_APB2ENR_SAI2EN
332 #endif /* SAI2 */
333 #if defined(USB_DRD_FS)
334 #define LL_APB2_GRP1_PERIPH_USB            RCC_APB2ENR_USBEN
335 #endif /* USB_DRD_FS */
336 /**
337   * @}
338   */
339 
340 /** @defgroup BUS_LL_EC_APB3_GRP1_PERIPH  APB3 GRP1 PERIPH
341   * @{
342   */
343 #if defined(SPI5)
344 #define LL_APB3_GRP1_PERIPH_ALL           0x0030F9E2U
345 #elif defined(I2C4)
346 #define LL_APB3_GRP1_PERIPH_ALL           0x00300AC2U
347 #else
348 #define LL_APB3_GRP1_PERIPH_ALL           0x00200A42U
349 #endif /* SPI5 */
350 #define LL_APB3_GRP1_PERIPH_SBS           RCC_APB3ENR_SBSEN
351 #if defined(SPI5)
352 #define LL_APB3_GRP1_PERIPH_SPI5          RCC_APB3ENR_SPI5EN
353 #endif /* SPI5 */
354 #define LL_APB3_GRP1_PERIPH_LPUART1       RCC_APB3ENR_LPUART1EN
355 #if defined(I2C3)
356 #define LL_APB3_GRP1_PERIPH_I2C3          RCC_APB3ENR_I2C3EN
357 #endif /* I2C3 */
358 #if defined(I2C4)
359 #define LL_APB3_GRP1_PERIPH_I2C4          RCC_APB3ENR_I2C4EN
360 #endif /* I2C4 */
361 #if defined(I3C2)
362 #define LL_APB3_GRP1_PERIPH_I3C2          RCC_APB3ENR_I3C2EN
363 #endif /* I3C2 */
364 #define LL_APB3_GRP1_PERIPH_LPTIM1        RCC_APB3ENR_LPTIM1EN
365 #if defined(LPTIM3)
366 #define LL_APB3_GRP1_PERIPH_LPTIM3        RCC_APB3ENR_LPTIM3EN
367 #endif /* LPTIM3 */
368 #if defined(LPTIM4)
369 #define LL_APB3_GRP1_PERIPH_LPTIM4        RCC_APB3ENR_LPTIM4EN
370 #endif /* LPTIM4 */
371 #if defined(LPTIM5)
372 #define LL_APB3_GRP1_PERIPH_LPTIM5        RCC_APB3ENR_LPTIM5EN
373 #endif /* LPTIM5 */
374 #if defined(LPTIM6)
375 #define LL_APB3_GRP1_PERIPH_LPTIM6        RCC_APB3ENR_LPTIM6EN
376 #endif /* LPTIM6 */
377 #define LL_APB3_GRP1_PERIPH_VREF          RCC_APB3ENR_VREFEN
378 #define LL_APB3_GRP1_PERIPH_RTCAPB        RCC_APB3ENR_RTCAPBEN
379 /**
380   * @}
381   */
382 
383 /**
384   * @}
385   */
386 
387 /* Exported macro ------------------------------------------------------------*/
388 /* Exported functions --------------------------------------------------------*/
389 /** @defgroup BUS_LL_Exported_Functions BUS Exported Functions
390   * @{
391   */
392 
393 /** @defgroup BUS_LL_EF_AHBx AHBx Branch
394   * @{
395   */
396 /**
397   * @brief  Disable of AHBx Clock Branch
398   * @rmtoll CFGR2    AHB1DIS     LL_AHB_DisableClock\n
399   *         CFGR2    AHB2DIS     LL_AHB_DisableClock\n
400   *         CFGR2    AHB4DIS     LL_AHB_DisableClock
401   * @param  AHBx This parameter can be a combination of the following values:
402   *         @arg @ref LL_AHB_BRANCH_CLK_AHB1
403   *         @arg @ref LL_AHB_BRANCH_CLK_AHB2
404   *         @arg @ref LL_AHB_BRANCH_CLK_AHB4 (*)
405   *
406   *  (*)  : Not available for all stm32h5xxxx family lines.
407   * @retval None
408   */
LL_AHB_DisableClock(uint32_t AHBx)409 __STATIC_INLINE void LL_AHB_DisableClock(uint32_t AHBx)
410 {
411   SET_BIT(RCC->CFGR2, AHBx);
412 }
413 
414 /**
415   * @brief  Enable of AHBx Clock Branch
416   * @rmtoll CFGR2    AHB1DIS     LL_AHB_EnableClock\n
417   *         CFGR2    AHB2DIS     LL_AHB_EnableClock\n
418   *         CFGR2    AHB4DIS     LL_AHB_EnableClock
419   * @param  AHBx This parameter can be a combination of the following values:
420   *         @arg @ref LL_AHB_BRANCH_CLK_AHB1
421   *         @arg @ref LL_AHB_BRANCH_CLK_AHB2
422   *         @arg @ref LL_AHB_BRANCH_CLK_AHB4 (*)
423   *
424   *  (*)  : Not available for all stm32h5xxxx family lines.
425   * @retval None
426   */
LL_AHB_EnableClock(uint32_t AHBx)427 __STATIC_INLINE void LL_AHB_EnableClock(uint32_t AHBx)
428 {
429   __IO uint32_t tmpreg;
430   CLEAR_BIT(RCC->CFGR2, AHBx);
431   /* Delay after AHBx clock branch enabling */
432   tmpreg = READ_BIT(RCC->CFGR2, AHBx);
433   (void)tmpreg;
434 }
435 
436 /**
437   * @brief  Check if AHBx clock branch is disabled or not
438   * @rmtoll CFGR2    AHB1DIS     LL_AHB_IsDisabledClock\n
439   *         CFGR2    AHB2DIS     LL_AHB_IsDisabledClock\n
440   *         CFGR2    AHB4DIS     LL_AHB_IsDisabledClock
441   * @param  AHBx This parameter can be a combination of the following values:
442   *         @arg @ref LL_AHB_BRANCH_CLK_AHB1
443   *         @arg @ref LL_AHB_BRANCH_CLK_AHB2
444   *         @arg @ref LL_AHB_BRANCH_CLK_AHB4 (*)
445   *
446   *  (*)  : Not available for all stm32h5xxxx family lines.
447   * @retval State of AHBx bus (1 or 0).
448   */
LL_AHB_IsDisabledClock(uint32_t AHBx)449 __STATIC_INLINE uint32_t LL_AHB_IsDisabledClock(uint32_t AHBx)
450 {
451   return ((READ_BIT(RCC->CFGR2, AHBx) == AHBx) ? 1UL : 0UL);
452 }
453 
454 /**
455   * @}
456   */
457 
458 /** @defgroup BUS_LL_EF_APBx APBx Branch
459   * @{
460   */
461 /**
462   * @brief  Disable APBx Clock Branch
463   * @rmtoll CFGR2    APB1DIS     LL_APB_DisableClock\n
464   *         CFGR2    APB2DIS     LL_APB_DisableClock\n
465   *         CFGR2    APB3DIS     LL_APB_DisableClock
466   * @param  APBx This parameter can be a combination of the following values:
467   *         @arg @ref LL_APB_BRANCH_CLK_APB1
468   *         @arg @ref LL_APB_BRANCH_CLK_APB2
469   *         @arg @ref LL_APB_BRANCH_CLK_APB3
470   * @retval None
471   */
LL_APB_DisableClock(uint32_t APBx)472 __STATIC_INLINE void LL_APB_DisableClock(uint32_t APBx)
473 {
474   SET_BIT(RCC->CFGR2, APBx);
475 }
476 
477 /**
478   * @brief  Enable of APBx Clock Branch
479   * @rmtoll CFGR2    APB1DIS     LL_APB_EnableClock\n
480   *         CFGR2    APB2DIS     LL_APB_EnableClock\n
481   *         CFGR2    APB3DIS     LL_APB_EnableClock
482   * @param  APBx This parameter can be a combination of the following values:
483   *         @arg @ref LL_APB_BRANCH_CLK_APB1
484   *         @arg @ref LL_APB_BRANCH_CLK_APB2
485   *         @arg @ref LL_APB_BRANCH_CLK_APB3
486   * @retval None
487   */
LL_APB_EnableClock(uint32_t APBx)488 __STATIC_INLINE void LL_APB_EnableClock(uint32_t APBx)
489 {
490   __IO uint32_t tmpreg;
491   CLEAR_BIT(RCC->CFGR2, APBx);
492   /* Delay after APBx clock branch enabling */
493   tmpreg = READ_BIT(RCC->CFGR2, APBx);
494   (void)tmpreg;
495 }
496 
497 /**
498   * @brief  Check if APBx clock branch is disabled or not
499   * @rmtoll CFGR2    APB1DIS     LL_APB_IsDisabledClock\n
500   *         CFGR2    APB2DIS     LL_APB_IsDisabledClock\n
501   *         CFGR2    APB3DIS     LL_APB_IsDisabledClock
502   * @param  APBx This parameter can be a combination of the following values:
503   *         @arg @ref LL_APB_BRANCH_CLK_APB1
504   *         @arg @ref LL_APB_BRANCH_CLK_APB2
505   *         @arg @ref LL_APB_BRANCH_CLK_APB3
506   * @retval State of APBx bus (1 or 0).
507   */
LL_APB_IsDisabledClock(uint32_t APBx)508 __STATIC_INLINE uint32_t LL_APB_IsDisabledClock(uint32_t APBx)
509 {
510   return ((READ_BIT(RCC->CFGR2, APBx) == APBx) ? 1UL : 0UL);
511 }
512 
513 /**
514   * @}
515   */
516 
517 /**
518   * @}
519   */
520 
521 /** @defgroup BUS_LL_EF_AHB1 AHB1 Peripherals
522   * @{
523   */
524 /**
525   * @brief  Enable AHB1 peripherals clock.
526   * @rmtoll AHB1ENR    GPDMA1EN     LL_AHB1_GRP1_EnableClock\n
527   *         AHB1ENR    GPDMA2EN     LL_AHB1_GRP1_EnableClock\n
528   *         AHB1ENR    FLITFEN      LL_AHB1_GRP1_EnableClock\n
529   *         AHB1ENR    CRCEN        LL_AHB1_GRP1_EnableClock\n
530   *         AHB1ENR    CORDICEN     LL_AHB1_GRP1_EnableClock\n
531   *         AHB1ENR    FMACEN       LL_AHB1_GRP1_EnableClock\n
532   *         AHB1ENR    RAMCFGEN     LL_AHB1_GRP1_EnableClock\n
533   *         AHB1ENR    ETHEN        LL_AHB1_GRP1_EnableClock\n
534   *         AHB1ENR    ETHTXEN      LL_AHB1_GRP1_EnableClock\n
535   *         AHB1ENR    ETHRXEN      LL_AHB1_GRP1_EnableClock\n
536   *         AHB1ENR    TZSC1EN      LL_AHB1_GRP1_EnableClock\n
537   *         AHB1ENR    BKPRAMEN     LL_AHB1_GRP1_EnableClock\n
538   *         AHB1ENR    DCACHE1EN    LL_AHB1_GRP1_EnableClock\n
539   *         AHB1ENR    SRAM1EN      LL_AHB1_GRP1_EnableClock
540   * @param  Periphs This parameter can be a combination of the following values:
541   *         @arg @ref LL_AHB1_GRP1_PERIPH_ALL
542   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPDMA1
543   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPDMA2
544   *         @arg @ref LL_AHB1_GRP1_PERIPH_FLASH
545   *         @arg @ref LL_AHB1_GRP1_PERIPH_CRC
546   *         @arg @ref LL_AHB1_GRP1_PERIPH_CORDIC (*)
547   *         @arg @ref LL_AHB1_GRP1_PERIPH_FMAC
548   *         @arg @ref LL_AHB1_GRP1_PERIPH_RAMCFG
549   *         @arg @ref LL_AHB1_GRP1_PERIPH_ETH (*)
550   *         @arg @ref LL_AHB1_GRP1_PERIPH_ETHTX (*)
551   *         @arg @ref LL_AHB1_GRP1_PERIPH_ETHRX (*)
552   *         @arg @ref LL_AHB1_GRP1_PERIPH_GTZC1
553   *         @arg @ref LL_AHB1_GRP1_PERIPH_BKPSRAM
554   *         @arg @ref LL_AHB1_GRP1_PERIPH_DCACHE1 (*)
555   *         @arg @ref LL_AHB1_GRP1_PERIPH_SRAM1
556   *
557   *  (*)  : Not available for all stm32h5xxxx family lines.
558   * @retval None
559   */
LL_AHB1_GRP1_EnableClock(uint32_t Periphs)560 __STATIC_INLINE void LL_AHB1_GRP1_EnableClock(uint32_t Periphs)
561 {
562   __IO uint32_t tmpreg;
563   SET_BIT(RCC->AHB1ENR, Periphs);
564   /* Delay after an RCC peripheral clock enabling */
565   tmpreg = READ_BIT(RCC->AHB1ENR, Periphs);
566   (void)tmpreg;
567 }
568 
569 /**
570   * @brief  Check if AHB1 peripheral clock is enabled or not
571   * @rmtoll AHB1ENR    GPDMA1EN     LL_AHB1_GRP1_IsEnabledClock\n
572   *         AHB1ENR    GPDMA2EN     LL_AHB1_GRP1_IsEnabledClock\n
573   *         AHB1ENR    FLITFEN      LL_AHB1_GRP1_IsEnabledClock\n
574   *         AHB1ENR    CRCEN        LL_AHB1_GRP1_IsEnabledClock\n
575   *         AHB1ENR    CORDICEN     LL_AHB1_GRP1_IsEnabledClock\n
576   *         AHB1ENR    FMACEN       LL_AHB1_GRP1_IsEnabledClock\n
577   *         AHB1ENR    RAMCFGEN     LL_AHB1_GRP1_IsEnabledClock\n
578   *         AHB1ENR    ETHEN        LL_AHB1_GRP1_IsEnabledClock\n
579   *         AHB1ENR    ETHTXEN      LL_AHB1_GRP1_IsEnabledClock\n
580   *         AHB1ENR    ETHRXEN      LL_AHB1_GRP1_IsEnabledClock\n
581   *         AHB1ENR    TZSC1EN      LL_AHB1_GRP1_IsEnabledClock\n
582   *         AHB1ENR    BKPRAMEN     LL_AHB1_GRP1_IsEnabledClock\n
583   *         AHB1ENR    DCACHE1EN     LL_AHB1_GRP1_IsEnabledClock\n
584   *         AHB1ENR    SRAM1EN      LL_AHB1_GRP1_IsEnabledClock
585   * @param  Periphs This parameter can be a combination of the following values:
586   *         @arg @ref LL_AHB1_GRP1_PERIPH_ALL
587   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPDMA1
588   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPDMA2
589   *         @arg @ref LL_AHB1_GRP1_PERIPH_FLASH
590   *         @arg @ref LL_AHB1_GRP1_PERIPH_CRC
591   *         @arg @ref LL_AHB1_GRP1_PERIPH_CORDIC (*)
592   *         @arg @ref LL_AHB1_GRP1_PERIPH_FMAC (*)
593   *         @arg @ref LL_AHB1_GRP1_PERIPH_RAMCFG
594   *         @arg @ref LL_AHB1_GRP1_PERIPH_ETH (*)
595   *         @arg @ref LL_AHB1_GRP1_PERIPH_ETHTX (*)
596   *         @arg @ref LL_AHB1_GRP1_PERIPH_ETHRX (*)
597   *         @arg @ref LL_AHB1_GRP1_PERIPH_GTZC1
598   *         @arg @ref LL_AHB1_GRP1_PERIPH_BKPSRAM
599   *         @arg @ref LL_AHB1_GRP1_PERIPH_DCACHE1 (*)
600   *         @arg @ref LL_AHB1_GRP1_PERIPH_SRAM1
601   *
602   *  (*)  : Not available for all stm32h5xxxx family lines.
603   * @retval State of Periphs (1 or 0).
604   */
LL_AHB1_GRP1_IsEnabledClock(uint32_t Periphs)605 __STATIC_INLINE uint32_t LL_AHB1_GRP1_IsEnabledClock(uint32_t Periphs)
606 {
607   return ((READ_BIT(RCC->AHB1ENR, Periphs) == Periphs) ? 1UL : 0UL);
608 }
609 
610 /**
611   * @brief  Disable AHB1 peripherals clock.
612   * @rmtoll AHB1ENR    GPDMA1EN    LL_AHB1_GRP1_DisableClock\n
613   *         AHB1ENR    GPDMA2EN    LL_AHB1_GRP1_DisableClock\n
614   *         AHB1ENR    FLITFEN     LL_AHB1_GRP1_DisableClock\n
615   *         AHB1ENR    CRCEN       LL_AHB1_GRP1_DisableClock\n
616   *         AHB1ENR    CORDICEN    LL_AHB1_GRP1_DisableClock\n
617   *         AHB1ENR    FMACEN      LL_AHB1_GRP1_DisableClock\n
618   *         AHB1ENR    RAMCFGEN    LL_AHB1_GRP1_DisableClock\n
619   *         AHB1ENR    ETHEN       LL_AHB1_GRP1_DisableClock\n
620   *         AHB1ENR    ETHTXEN     LL_AHB1_GRP1_DisableClock\n
621   *         AHB1ENR    ETHRXEN     LL_AHB1_GRP1_DisableClock\n
622   *         AHB1ENR    TZSC1EN     LL_AHB1_GRP1_DisableClock\n
623   *         AHB1ENR    BKPRAMEN    LL_AHB1_GRP1_DisableClock\n
624   *         AHB1ENR    DCACHE1EN   LL_AHB1_GRP1_DisableClock\n
625   *         AHB1ENR    SRAM1EN     LL_AHB1_GRP1_DisableClock
626   * @param  Periphs This parameter can be a combination of the following values:
627   *         @arg @ref LL_AHB1_GRP1_PERIPH_ALL
628   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPDMA1
629   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPDMA2
630   *         @arg @ref LL_AHB1_GRP1_PERIPH_FLASH
631   *         @arg @ref LL_AHB1_GRP1_PERIPH_CRC
632   *         @arg @ref LL_AHB1_GRP1_PERIPH_CORDIC (*)
633   *         @arg @ref LL_AHB1_GRP1_PERIPH_FMAC (*)
634   *         @arg @ref LL_AHB1_GRP1_PERIPH_RAMCFG
635   *         @arg @ref LL_AHB1_GRP1_PERIPH_ETH (*)
636   *         @arg @ref LL_AHB1_GRP1_PERIPH_ETHTX (*)
637   *         @arg @ref LL_AHB1_GRP1_PERIPH_ETHRX (*)
638   *         @arg @ref LL_AHB1_GRP1_PERIPH_GTZC1
639   *         @arg @ref LL_AHB1_GRP1_PERIPH_BKPSRAM
640   *         @arg @ref LL_AHB1_GRP1_PERIPH_DCACHE1 (*)
641   *         @arg @ref LL_AHB1_GRP1_PERIPH_SRAM1
642   *
643   *  (*)  : Not available for all stm32h5xxxx family lines.
644   * @retval None
645   */
LL_AHB1_GRP1_DisableClock(uint32_t Periphs)646 __STATIC_INLINE void LL_AHB1_GRP1_DisableClock(uint32_t Periphs)
647 {
648   CLEAR_BIT(RCC->AHB1ENR, Periphs);
649 }
650 
651 /**
652   * @brief  Force AHB1 peripherals reset.
653   * @rmtoll AHB1RSTR    GPDMA1RST    LL_AHB1_GRP1_ForceReset\n
654   *         AHB1RSTR    GPDMA2RST    LL_AHB1_GRP1_ForceReset\n
655   *         AHB1RSTR    CRCRST       LL_AHB1_GRP1_ForceReset\n
656   *         AHB1RSTR    CORDICRST    LL_AHB1_GRP1_ForceReset\n
657   *         AHB1RSTR    FMACRST      LL_AHB1_GRP1_ForceReset\n
658   *         AHB1RSTR    RAMCFGRST    LL_AHB1_GRP1_ForceReset\n
659   *         AHB1RSTR    ETHRST       LL_AHB1_GRP1_ForceReset\n
660   *         AHB1RSTR    TZSC1RST     LL_AHB1_GRP1_ForceReset
661   * @param  Periphs This parameter can be a combination of the following values:
662   *         @arg @ref LL_AHB1_GRP1_PERIPH_ALL
663   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPDMA1
664   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPDMA2
665   *         @arg @ref LL_AHB1_GRP1_PERIPH_CRC
666   *         @arg @ref LL_AHB1_GRP1_PERIPH_CORDIC (*)
667   *         @arg @ref LL_AHB1_GRP1_PERIPH_FMAC (*)
668   *         @arg @ref LL_AHB1_GRP1_PERIPH_RAMCFG
669   *         @arg @ref LL_AHB1_GRP1_PERIPH_ETH (*)
670   *         @arg @ref LL_AHB1_GRP1_PERIPH_GTZC1
671   *
672   *  (*)  : Not available for all stm32h5xxxx family lines.
673   * @retval None
674   */
LL_AHB1_GRP1_ForceReset(uint32_t Periphs)675 __STATIC_INLINE void LL_AHB1_GRP1_ForceReset(uint32_t Periphs)
676 {
677   SET_BIT(RCC->AHB1RSTR, Periphs);
678 }
679 
680 /**
681   * @brief  Release AHB1 peripherals reset.
682   * @rmtoll AHB1RSTR    GPDMA1RST     LL_AHB1_GRP1_ReleaseReset\n
683   *         AHB1RSTR    GPDMA2RST     LL_AHB1_GRP1_ReleaseReset\n
684   *         AHB1RSTR    CRCRST        LL_AHB1_GRP1_ReleaseReset\n
685   *         AHB1RSTR    CORDICRST     LL_AHB1_GRP1_ReleaseReset\n
686   *         AHB1RSTR    FMACRST       LL_AHB1_GRP1_ReleaseReset\n
687   *         AHB1RSTR    RAMCFGRST     LL_AHB1_GRP1_ReleaseReset\n
688   *         AHB1RSTR    ETHRST        LL_AHB1_GRP1_ReleaseReset\n
689   *         AHB1RSTR    TZSC1RST      LL_AHB1_GRP1_ReleaseReset
690   * @param  Periphs This parameter can be a combination of the following values:
691   *         @arg @ref LL_AHB1_GRP1_PERIPH_ALL
692   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPDMA1
693   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPDMA2
694   *         @arg @ref LL_AHB1_GRP1_PERIPH_CRC
695   *         @arg @ref LL_AHB1_GRP1_PERIPH_CORDIC (*)
696   *         @arg @ref LL_AHB1_GRP1_PERIPH_FMAC (*)
697   *         @arg @ref LL_AHB1_GRP1_PERIPH_RAMCFG
698   *         @arg @ref LL_AHB1_GRP1_PERIPH_ETH (*)
699   *         @arg @ref LL_AHB1_GRP1_PERIPH_GTZC1
700   *
701   *  (*)  : Not available for all stm32h5xxxx family lines.
702   * @retval None
703   */
LL_AHB1_GRP1_ReleaseReset(uint32_t Periphs)704 __STATIC_INLINE void LL_AHB1_GRP1_ReleaseReset(uint32_t Periphs)
705 {
706   CLEAR_BIT(RCC->AHB1RSTR, Periphs);
707 }
708 
709 /**
710   * @brief  Enable AHB1 peripheral clocks in Sleep mode
711   * @rmtoll AHB1LPENR    GPDMA1LPEN    LL_AHB1_GRP1_EnableClockSleep\n
712   *         AHB1LPENR    GPDMA2LPEN    LL_AHB1_GRP1_EnableClockSleep\n
713   *         AHB1LPENR    FLITFLPEN     LL_AHB1_GRP1_EnableClockSleep\n
714   *         AHB1LPENR    CRCLPEN       LL_AHB1_GRP1_EnableClockSleep\n
715   *         AHB1LPENR    CORDICLPEN    LL_AHB1_GRP1_EnableClockSleep\n
716   *         AHB1LPENR    FMACLPEN      LL_AHB1_GRP1_EnableClockSleep\n
717   *         AHB1LPENR    RAMCFGLPEN    LL_AHB1_GRP1_EnableClockSleep\n
718   *         AHB1LPENR    ETHLPEN       LL_AHB1_GRP1_EnableClockSleep\n
719   *         AHB1LPENR    ETHTXLPEN     LL_AHB1_GRP1_EnableClockSleep\n
720   *         AHB1LPENR    ETHRXLPEN     LL_AHB1_GRP1_EnableClockSleep\n
721   *         AHB1LPENR    TZSC1LPEN     LL_AHB1_GRP1_EnableClockSleep\n
722   *         AHB1LPENR    BKPRAMLPEN    LL_AHB1_GRP1_EnableClockSleep\n
723   *         AHB1LPENR    DCACHE1LPEN   LL_AHB1_GRP1_EnableClockSleep\n
724   *         AHB1LPENR    SRAM1LPEN     LL_AHB1_GRP1_EnableClockSleep
725   * @param  Periphs This parameter can be a combination of the following values:
726   *         @arg @ref LL_AHB1_GRP1_PERIPH_ALL
727   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPDMA1
728   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPDMA2
729   *         @arg @ref LL_AHB1_GRP1_PERIPH_FLASH
730   *         @arg @ref LL_AHB1_GRP1_PERIPH_CRC
731   *         @arg @ref LL_AHB1_GRP1_PERIPH_CORDIC (*)
732   *         @arg @ref LL_AHB1_GRP1_PERIPH_FMAC (*)
733   *         @arg @ref LL_AHB1_GRP1_PERIPH_RAMCFG
734   *         @arg @ref LL_AHB1_GRP1_PERIPH_ETH (*)
735   *         @arg @ref LL_AHB1_GRP1_PERIPH_ETHTX (*)
736   *         @arg @ref LL_AHB1_GRP1_PERIPH_ETHRX (*)
737   *         @arg @ref LL_AHB1_GRP1_PERIPH_GTZC1
738   *         @arg @ref LL_AHB1_GRP1_PERIPH_BKPSRAM
739   *         @arg @ref LL_AHB1_GRP1_PERIPH_DCACHE1 (*)
740   *         @arg @ref LL_AHB1_GRP1_PERIPH_SRAM1
741   *
742   *  (*)  : Not available for all stm32h5xxxx family lines.
743   * @retval None
744   */
LL_AHB1_GRP1_EnableClockSleep(uint32_t Periphs)745 __STATIC_INLINE void LL_AHB1_GRP1_EnableClockSleep(uint32_t Periphs)
746 {
747   __IO uint32_t tmpreg;
748   SET_BIT(RCC->AHB1LPENR, Periphs);
749   /* Delay after an RCC peripheral clock enabling */
750   tmpreg = READ_BIT(RCC->AHB1LPENR, Periphs);
751   (void)tmpreg;
752 }
753 
754 /**
755   * @brief  Check if AHB1 peripheral clocks in Sleep mode is enabled or not
756   * @rmtoll AHB1LPENR    GPDMA1LPEN    LL_AHB1_GRP1_IsEnabledClockSleep\n
757   *         AHB1LPENR    GPDMA2LPEN    LL_AHB1_GRP1_IsEnabledClockSleep\n
758   *         AHB1LPENR    FLITFLPEN     LL_AHB1_GRP1_IsEnabledClockSleep\n
759   *         AHB1LPENR    CRCLPEN       LL_AHB1_GRP1_IsEnabledClockSleep\n
760   *         AHB1LPENR    CORDICLPEN    LL_AHB1_GRP1_IsEnabledClockSleep\n
761   *         AHB1LPENR    FMACLPEN      LL_AHB1_GRP1_IsEnabledClockSleep\n
762   *         AHB1LPENR    RAMCFGLPEN    LL_AHB1_GRP1_IsEnabledClockSleep\n
763   *         AHB1LPENR    ETHLPEN       LL_AHB1_GRP1_IsEnabledClockSleep\n
764   *         AHB1LPENR    ETHTXLPEN     LL_AHB1_GRP1_IsEnabledClockSleep\n
765   *         AHB1LPENR    ETHRXLPEN     LL_AHB1_GRP1_IsEnabledClockSleep\n
766   *         AHB1LPENR    TZSC1LPEN     LL_AHB1_GRP1_IsEnabledClockSleep\n
767   *         AHB1LPENR    BKPRAMLPEN    LL_AHB1_GRP1_IsEnabledClockSleep\n
768   *         AHB1LPENR    DCACHE1LPEN    LL_AHB1_GRP1_IsEnabledClockSleep\n
769   *         AHB1LPENR    SRAM1LPEN     LL_AHB1_GRP1_IsEnabledClockSleep
770   * @param  Periphs This parameter can be a combination of the following values:
771   *         @arg @ref LL_AHB1_GRP1_PERIPH_ALL
772   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPDMA1
773   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPDMA2
774   *         @arg @ref LL_AHB1_GRP1_PERIPH_FLASH
775   *         @arg @ref LL_AHB1_GRP1_PERIPH_CRC
776   *         @arg @ref LL_AHB1_GRP1_PERIPH_CORDIC (*)
777   *         @arg @ref LL_AHB1_GRP1_PERIPH_FMAC (*)
778   *         @arg @ref LL_AHB1_GRP1_PERIPH_RAMCFG
779   *         @arg @ref LL_AHB1_GRP1_PERIPH_ETH (*)
780   *         @arg @ref LL_AHB1_GRP1_PERIPH_ETHTX (*)
781   *         @arg @ref LL_AHB1_GRP1_PERIPH_ETHRX (*)
782   *         @arg @ref LL_AHB1_GRP1_PERIPH_GTZC1
783   *         @arg @ref LL_AHB1_GRP1_PERIPH_BKPSRAM
784   *         @arg @ref LL_AHB1_GRP1_PERIPH_DCACHE1 (*)
785   *         @arg @ref LL_AHB1_GRP1_PERIPH_SRAM1
786   *
787   *  (*)  : Not available for all stm32h5xxxx family lines.
788   * @retval State of Periphs (1 or 0).
789   */
LL_AHB1_GRP1_IsEnabledClockSleep(uint32_t Periphs)790 __STATIC_INLINE uint32_t LL_AHB1_GRP1_IsEnabledClockSleep(uint32_t Periphs)
791 {
792   return ((READ_BIT(RCC->AHB1LPENR, Periphs) == Periphs) ? 1UL : 0UL);
793 }
794 
795 /**
796   * @brief  Disable AHB1 peripheral clocks in Sleep mode
797   * @rmtoll AHB1LPENR    GPDMA1LPEN    LL_AHB1_GRP1_DisableClockSleep\n
798   *         AHB1LPENR    GPDMA2LPEN    LL_AHB1_GRP1_DisableClockSleep\n
799   *         AHB1LPENR    FLITFLPEN     LL_AHB1_GRP1_DisableClockSleep\n
800   *         AHB1LPENR    CRCLPEN       LL_AHB1_GRP1_DisableClockSleep\n
801   *         AHB1LPENR    CORDICLPEN    LL_AHB1_GRP1_DisableClockSleep\n
802   *         AHB1LPENR    FMACLPEN      LL_AHB1_GRP1_DisableClockSleep\n
803   *         AHB1LPENR    RAMCFGLPEN    LL_AHB1_GRP1_DisableClockSleep\n
804   *         AHB1LPENR    ETHLPEN       LL_AHB1_GRP1_DisableClockSleep\n
805   *         AHB1LPENR    ETHTXLPEN     LL_AHB1_GRP1_DisableClockSleep\n
806   *         AHB1LPENR    ETHRXLPEN     LL_AHB1_GRP1_DisableClockSleep\n
807   *         AHB1LPENR    TZSC1LPEN     LL_AHB1_GRP1_DisableClockSleep\n
808   *         AHB1LPENR    BKPRAMLPEN    LL_AHB1_GRP1_DisableClockSleep\n
809   *         AHB1LPENR    DCACHE1LPEN    LL_AHB1_GRP1_DisableClockSleep\n
810   *         AHB1LPENR    SRAM1LPEN     LL_AHB1_GRP1_DisableClockSleep
811   * @param  Periphs This parameter can be a combination of the following values:
812   *         @arg @ref LL_AHB1_GRP1_PERIPH_ALL
813   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPDMA1
814   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPDMA2
815   *         @arg @ref LL_AHB1_GRP1_PERIPH_FLASH
816   *         @arg @ref LL_AHB1_GRP1_PERIPH_CRC
817   *         @arg @ref LL_AHB1_GRP1_PERIPH_CORDIC (*)
818   *         @arg @ref LL_AHB1_GRP1_PERIPH_FMAC (*)
819   *         @arg @ref LL_AHB1_GRP1_PERIPH_RAMCFG
820   *         @arg @ref LL_AHB1_GRP1_PERIPH_ETH (*)
821   *         @arg @ref LL_AHB1_GRP1_PERIPH_ETHTX (*)
822   *         @arg @ref LL_AHB1_GRP1_PERIPH_ETHRX (*)
823   *         @arg @ref LL_AHB1_GRP1_PERIPH_GTZC1
824   *         @arg @ref LL_AHB1_GRP1_PERIPH_BKPSRAM
825   *         @arg @ref LL_AHB1_GRP1_PERIPH_DCACHE1 (*)
826   *         @arg @ref LL_AHB1_GRP1_PERIPH_SRAM1
827   *
828   *  (*)  : Not available for all stm32h5xxxx family lines.
829   * @retval None
830   */
LL_AHB1_GRP1_DisableClockSleep(uint32_t Periphs)831 __STATIC_INLINE void LL_AHB1_GRP1_DisableClockSleep(uint32_t Periphs)
832 {
833   CLEAR_BIT(RCC->AHB1LPENR, Periphs);
834 }
835 
836 /**
837   * @}
838   */
839 
840 /** @defgroup BUS_LL_EF_AHB2 AHB2 Peripherals
841   * @{
842   */
843 /**
844   * @brief  Enable AHB2 peripherals clock.
845   * @rmtoll AHB2ENR      GPIOAEN       LL_AHB2_GRP1_EnableClock\n
846   *         AHB2ENR      GPIOBEN       LL_AHB2_GRP1_EnableClock\n
847   *         AHB2ENR      GPIOCEN       LL_AHB2_GRP1_EnableClock\n
848   *         AHB2ENR      GPIODEN       LL_AHB2_GRP1_EnableClock\n
849   *         AHB2ENR      GPIOEEN       LL_AHB2_GRP1_EnableClock\n
850   *         AHB2ENR      GPIOFEN       LL_AHB2_GRP1_EnableClock\n
851   *         AHB2ENR      GPIOGEN       LL_AHB2_GRP1_EnableClock\n
852   *         AHB2ENR      GPIOHEN       LL_AHB2_GRP1_EnableClock\n
853   *         AHB2ENR      GPIOIEN       LL_AHB2_GRP1_EnableClock\n
854   *         AHB2ENR      ADCEN         LL_AHB2_GRP1_EnableClock\n
855   *         AHB2ENR      DAC1EN        LL_AHB2_GRP1_EnableClock\n
856   *         AHB2ENR      DCMI_PSSIEN   LL_AHB2_GRP1_EnableClock\n
857   *         AHB2ENR      AESEN         LL_AHB2_GRP1_EnableClock\n
858   *         AHB2ENR      HASHEN        LL_AHB2_GRP1_EnableClock\n
859   *         AHB2ENR      RNGEN         LL_AHB2_GRP1_EnableClock\n
860   *         AHB2ENR      PKAEN         LL_AHB2_GRP1_EnableClock\n
861   *         AHB2ENR      SAESEN        LL_AHB2_GRP1_EnableClock\n
862   *         AHB2ENR      SRAM2EN       LL_AHB2_GRP1_EnableClock\n
863   *         AHB2ENR      SRAM3EN       LL_AHB2_GRP1_EnableClock
864   * @param  Periphs This parameter can be a combination of the following values:
865   *         @arg @ref LL_AHB2_GRP1_PERIPH_ALL
866   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOA
867   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOB
868   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOC
869   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOD
870   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOE (*)
871   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOF (*)
872   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOG (*)
873   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOH
874   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOI (*)
875   *         @arg @ref LL_AHB2_GRP1_PERIPH_ADC
876   *         @arg @ref LL_AHB2_GRP1_PERIPH_DAC1
877   *         @arg @ref LL_AHB2_GRP1_PERIPH_DCMI_PSSI (*)
878   *         @arg @ref LL_AHB2_GRP1_PERIPH_AES (*)
879   *         @arg @ref LL_AHB2_GRP1_PERIPH_HASH (*)
880   *         @arg @ref LL_AHB2_GRP1_PERIPH_RNG
881   *         @arg @ref LL_AHB2_GRP1_PERIPH_PKA (*)
882   *         @arg @ref LL_AHB2_GRP1_PERIPH_SAES (*)
883   *         @arg @ref LL_AHB2_GRP1_PERIPH_SRAM2 (*)
884   *         @arg @ref LL_AHB2_GRP1_PERIPH_SRAM3 (*)
885   *
886   *  (*)  : Not available for all stm32h5xxxx family lines.
887   * @retval None
888   */
LL_AHB2_GRP1_EnableClock(uint32_t Periphs)889 __STATIC_INLINE void LL_AHB2_GRP1_EnableClock(uint32_t Periphs)
890 {
891   __IO uint32_t tmpreg;
892   SET_BIT(RCC->AHB2ENR, Periphs);
893   /* Delay after an RCC peripheral clock enabling */
894   tmpreg = READ_BIT(RCC->AHB2ENR, Periphs);
895   (void)tmpreg;
896 }
897 
898 /**
899   * @brief  Check if AHB2 peripheral clock is enabled or not
900   * @rmtoll AHB2ENR      GPIOAEN       LL_AHB2_GRP1_IsEnabledClock\n
901   *         AHB2ENR      GPIOBEN       LL_AHB2_GRP1_IsEnabledClock\n
902   *         AHB2ENR      GPIOCEN       LL_AHB2_GRP1_IsEnabledClock\n
903   *         AHB2ENR      GPIODEN       LL_AHB2_GRP1_IsEnabledClock\n
904   *         AHB2ENR      GPIOEEN       LL_AHB2_GRP1_IsEnabledClock\n
905   *         AHB2ENR      GPIOFEN       LL_AHB2_GRP1_IsEnabledClock\n
906   *         AHB2ENR      GPIOGEN       LL_AHB2_GRP1_IsEnabledClock\n
907   *         AHB2ENR      GPIOHEN       LL_AHB2_GRP1_IsEnabledClock\n
908   *         AHB2ENR      GPIOIEN       LL_AHB2_GRP1_IsEnabledClock\n
909   *         AHB2ENR      ADCEN         LL_AHB2_GRP1_IsEnabledClock\n
910   *         AHB2ENR      DAC1EN        LL_AHB2_GRP1_IsEnabledClock\n
911   *         AHB2ENR      DCMI_PSSIEN   LL_AHB2_GRP1_IsEnabledClock\n
912   *         AHB2ENR      AESEN         LL_AHB2_GRP1_IsEnabledClock\n
913   *         AHB2ENR      HASHEN        LL_AHB2_GRP1_IsEnabledClock\n
914   *         AHB2ENR      RNGEN         LL_AHB2_GRP1_IsEnabledClock\n
915   *         AHB2ENR      PKAEN         LL_AHB2_GRP1_IsEnabledClock\n
916   *         AHB2ENR      SAESEN        LL_AHB2_GRP1_IsEnabledClock\n
917   *         AHB2ENR      SRAM2EN       LL_AHB2_GRP1_IsEnabledClock\n
918   *         AHB2ENR      SRAM3EN       LL_AHB2_GRP1_IsEnabledClock
919   * @param  Periphs This parameter can be a combination of the following values:
920   *         @arg @ref LL_AHB2_GRP1_PERIPH_ALL
921   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOA
922   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOB
923   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOC
924   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOD
925   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOE (*)
926   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOF (*)
927   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOG (*)
928   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOH
929   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOI (*)
930   *         @arg @ref LL_AHB2_GRP1_PERIPH_ADC
931   *         @arg @ref LL_AHB2_GRP1_PERIPH_DAC1
932   *         @arg @ref LL_AHB2_GRP1_PERIPH_DCMI_PSSI (*)
933   *         @arg @ref LL_AHB2_GRP1_PERIPH_AES (*)
934   *         @arg @ref LL_AHB2_GRP1_PERIPH_HASH (*)
935   *         @arg @ref LL_AHB2_GRP1_PERIPH_RNG
936   *         @arg @ref LL_AHB2_GRP1_PERIPH_PKA (*)
937   *         @arg @ref LL_AHB2_GRP1_PERIPH_SAES (*)
938   *         @arg @ref LL_AHB2_GRP1_PERIPH_SRAM2 (*)
939   *         @arg @ref LL_AHB2_GRP1_PERIPH_SRAM3 (*)
940   *
941   *  (*)  : Not available for all stm32h5xxxx family lines.
942   * @retval State of Periphs (1 or 0).
943   */
LL_AHB2_GRP1_IsEnabledClock(uint32_t Periphs)944 __STATIC_INLINE uint32_t LL_AHB2_GRP1_IsEnabledClock(uint32_t Periphs)
945 {
946   return ((READ_BIT(RCC->AHB2ENR, Periphs) == Periphs) ? 1UL : 0UL);
947 }
948 
949 /**
950   * @brief  Disable AHB2 peripherals clock.
951   * @rmtoll AHB2ENR      GPIOAEN       LL_AHB2_GRP1_DisableClock\n
952   *         AHB2ENR      GPIOBEN       LL_AHB2_GRP1_DisableClock\n
953   *         AHB2ENR      GPIOCEN       LL_AHB2_GRP1_DisableClock\n
954   *         AHB2ENR      GPIODEN       LL_AHB2_GRP1_DisableClock\n
955   *         AHB2ENR      GPIOEEN       LL_AHB2_GRP1_DisableClock\n
956   *         AHB2ENR      GPIOFEN       LL_AHB2_GRP1_DisableClock\n
957   *         AHB2ENR      GPIOGEN       LL_AHB2_GRP1_DisableClock\n
958   *         AHB2ENR      GPIOHEN       LL_AHB2_GRP1_DisableClock\n
959   *         AHB2ENR      GPIOIEN       LL_AHB2_GRP1_DisableClock\n
960   *         AHB2ENR      ADCEN         LL_AHB2_GRP1_DisableClock\n
961   *         AHB2ENR      DAC1EN        LL_AHB2_GRP1_DisableClock\n
962   *         AHB2ENR      DCMI_PSSIEN   LL_AHB2_GRP1_DisableClock\n
963   *         AHB2ENR      AESEN         LL_AHB2_GRP1_DisableClock\n
964   *         AHB2ENR      HASHEN        LL_AHB2_GRP1_DisableClock\n
965   *         AHB2ENR      RNGEN         LL_AHB2_GRP1_DisableClock\n
966   *         AHB2ENR      PKAEN         LL_AHB2_GRP1_DisableClock\n
967   *         AHB2ENR      SAESEN        LL_AHB2_GRP1_DisableClock\n
968   *         AHB2ENR      SRAM2EN       LL_AHB2_GRP1_DisableClock\n
969   *         AHB2ENR      SRAM3EN       LL_AHB2_GRP1_DisableClock
970   * @param  Periphs This parameter can be a combination of the following values:
971   *         @arg @ref LL_AHB2_GRP1_PERIPH_ALL
972   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOA
973   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOB
974   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOC
975   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOD
976   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOE (*)
977   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOF (*)
978   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOG (*)
979   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOH
980   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOI (*)
981   *         @arg @ref LL_AHB2_GRP1_PERIPH_ADC
982   *         @arg @ref LL_AHB2_GRP1_PERIPH_DAC1
983   *         @arg @ref LL_AHB2_GRP1_PERIPH_DCMI_PSSI (*)
984   *         @arg @ref LL_AHB2_GRP1_PERIPH_AES (*)
985   *         @arg @ref LL_AHB2_GRP1_PERIPH_HASH (*)
986   *         @arg @ref LL_AHB2_GRP1_PERIPH_RNG
987   *         @arg @ref LL_AHB2_GRP1_PERIPH_PKA (*)
988   *         @arg @ref LL_AHB2_GRP1_PERIPH_SAES (*)
989   *         @arg @ref LL_AHB2_GRP1_PERIPH_SRAM2 (*)
990   *         @arg @ref LL_AHB2_GRP1_PERIPH_SRAM3 (*)
991   *
992   *  (*)  : Not available for all stm32h5xxxx family lines.
993   * @retval None
994   */
LL_AHB2_GRP1_DisableClock(uint32_t Periphs)995 __STATIC_INLINE void LL_AHB2_GRP1_DisableClock(uint32_t Periphs)
996 {
997   CLEAR_BIT(RCC->AHB2ENR, Periphs);
998 }
999 
1000 /**
1001   * @brief  Force AHB2 peripherals reset.
1002   * @rmtoll AHB2RST     GPIOARST      LL_AHB2_GRP1_ForceReset\n
1003   *         AHB2RST     GPIOBRST      LL_AHB2_GRP1_ForceReset\n
1004   *         AHB2RST     GPIOCRST      LL_AHB2_GRP1_ForceReset\n
1005   *         AHB2RST     GPIODRST      LL_AHB2_GRP1_ForceReset\n
1006   *         AHB2RST     GPIOERST      LL_AHB2_GRP1_ForceReset\n
1007   *         AHB2RST     GPIOFRST      LL_AHB2_GRP1_ForceReset\n
1008   *         AHB2RST     GPIOGRST      LL_AHB2_GRP1_ForceReset\n
1009   *         AHB2RST     GPIOHRST      LL_AHB2_GRP1_ForceReset\n
1010   *         AHB2RST     GPIOIRST      LL_AHB2_GRP1_ForceReset\n
1011   *         AHB2RST     ADCRST        LL_AHB2_GRP1_ForceReset\n
1012   *         AHB2RST     DAC1RST       LL_AHB2_GRP1_ForceReset\n
1013   *         AHB2RST     DCMI_PSSIRST  LL_AHB2_GRP1_ForceReset\n
1014   *         AHB2RST     AESRST        LL_AHB2_GRP1_ForceReset\n
1015   *         AHB2RST     HASHRST       LL_AHB2_GRP1_ForceReset\n
1016   *         AHB2RST     RNGRST        LL_AHB2_GRP1_ForceReset\n
1017   *         AHB2RST     PKARST        LL_AHB2_GRP1_ForceReset\n
1018   *         AHB2RST     SAESRST       LL_AHB2_GRP1_ForceReset
1019   * @param  Periphs This parameter can be a combination of the following values:
1020   *         @arg @ref LL_AHB2_GRP1_PERIPH_ALL
1021   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOA
1022   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOB
1023   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOC
1024   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOD
1025   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOE (*)
1026   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOF (*)
1027   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOG (*)
1028   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOH
1029   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOI (*)
1030   *         @arg @ref LL_AHB2_GRP1_PERIPH_ADC
1031   *         @arg @ref LL_AHB2_GRP1_PERIPH_DAC1
1032   *         @arg @ref LL_AHB2_GRP1_PERIPH_DCMI_PSSI (*)
1033   *         @arg @ref LL_AHB2_GRP1_PERIPH_AES (*)
1034   *         @arg @ref LL_AHB2_GRP1_PERIPH_HASH (*)
1035   *         @arg @ref LL_AHB2_GRP1_PERIPH_RNG
1036   *         @arg @ref LL_AHB2_GRP1_PERIPH_PKA (*)
1037   *         @arg @ref LL_AHB2_GRP1_PERIPH_SAES (*)
1038   *
1039   *  (*)  : Not available for all stm32h5xxxx family lines.
1040   * @retval None
1041   */
LL_AHB2_GRP1_ForceReset(uint32_t Periphs)1042 __STATIC_INLINE void LL_AHB2_GRP1_ForceReset(uint32_t Periphs)
1043 {
1044   SET_BIT(RCC->AHB2RSTR, Periphs);
1045 }
1046 
1047 /**
1048   * @brief  Release AHB2 peripherals reset.
1049   * @rmtoll AHB2RST     GPIOARST      LL_AHB2_GRP1_ReleaseReset\n
1050   *         AHB2RST     GPIOBRST      LL_AHB2_GRP1_ReleaseReset\n
1051   *         AHB2RST     GPIOCRST      LL_AHB2_GRP1_ReleaseReset\n
1052   *         AHB2RST     GPIODRST      LL_AHB2_GRP1_ReleaseReset\n
1053   *         AHB2RST     GPIOERST      LL_AHB2_GRP1_ReleaseReset\n
1054   *         AHB2RST     GPIOFRST      LL_AHB2_GRP1_ReleaseReset\n
1055   *         AHB2RST     GPIOGRST      LL_AHB2_GRP1_ReleaseReset\n
1056   *         AHB2RST     GPIOHRST      LL_AHB2_GRP1_ReleaseReset\n
1057   *         AHB2RST     GPIOIRST      LL_AHB2_GRP1_ReleaseReset\n
1058   *         AHB2RST     ADCRST        LL_AHB2_GRP1_ReleaseReset\n
1059   *         AHB2RST     DAC1RST       LL_AHB2_GRP1_ReleaseReset\n
1060   *         AHB2RST     DCMI_PSSIRST  LL_AHB2_GRP1_ReleaseReset\n
1061   *         AHB2RST     AESRST        LL_AHB2_GRP1_ReleaseReset\n
1062   *         AHB2RST     HASHRST       LL_AHB2_GRP1_ReleaseReset\n
1063   *         AHB2RST     RNGRST        LL_AHB2_GRP1_ReleaseReset\n
1064   *         AHB2RST     PKARST        LL_AHB2_GRP1_ReleaseReset\n
1065   *         AHB2RST     SAESRST       LL_AHB2_GRP1_ReleaseReset
1066   * @param  Periphs This parameter can be a combination of the following values:
1067   *         @arg @ref LL_AHB2_GRP1_PERIPH_ALL
1068   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOA
1069   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOB
1070   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOC
1071   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOD
1072   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOE (*)
1073   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOF (*)
1074   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOG (*)
1075   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOH
1076   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOI (*)
1077   *         @arg @ref LL_AHB2_GRP1_PERIPH_ADC
1078   *         @arg @ref LL_AHB2_GRP1_PERIPH_DAC1
1079   *         @arg @ref LL_AHB2_GRP1_PERIPH_DCMI_PSSI (*)
1080   *         @arg @ref LL_AHB2_GRP1_PERIPH_AES (*)
1081   *         @arg @ref LL_AHB2_GRP1_PERIPH_HASH (*)
1082   *         @arg @ref LL_AHB2_GRP1_PERIPH_RNG
1083   *         @arg @ref LL_AHB2_GRP1_PERIPH_PKA (*)
1084   *         @arg @ref LL_AHB2_GRP1_PERIPH_SAES (*)
1085   *
1086   *  (*)  : Not available for all stm32h5xxxx family lines.
1087   * @retval None
1088   */
LL_AHB2_GRP1_ReleaseReset(uint32_t Periphs)1089 __STATIC_INLINE void LL_AHB2_GRP1_ReleaseReset(uint32_t Periphs)
1090 {
1091   CLEAR_BIT(RCC->AHB2RSTR, Periphs);
1092 }
1093 
1094 /**
1095   * @brief  Enable AHB2 peripheral clocks in Sleep mode
1096   * @rmtoll AHB2LPENR    GPIOALPEN      LL_AHB2_GRP1_EnableClockSleep\n
1097   *         AHB2LPENR    GPIOBLPEN      LL_AHB2_GRP1_EnableClockSleep\n
1098   *         AHB2LPENR    GPIOCLPEN      LL_AHB2_GRP1_EnableClockSleep\n
1099   *         AHB2LPENR    GPIODLPEN      LL_AHB2_GRP1_EnableClockSleep\n
1100   *         AHB2LPENR    GPIOELPEN      LL_AHB2_GRP1_EnableClockSleep\n
1101   *         AHB2LPENR    GPIOFLPEN      LL_AHB2_GRP1_EnableClockSleep\n
1102   *         AHB2LPENR    GPIOGLPEN      LL_AHB2_GRP1_EnableClockSleep\n
1103   *         AHB2LPENR    GPIOHLPEN      LL_AHB2_GRP1_EnableClockSleep\n
1104   *         AHB2LPENR    GPIOILPEN      LL_AHB2_GRP1_EnableClockSleep\n
1105   *         AHB2LPENR    ADCLPEN        LL_AHB2_GRP1_EnableClockSleep\n
1106   *         AHB2LPENR    DAC1LPEN       LL_AHB2_GRP1_EnableClockSleep\n
1107   *         AHB2LPENR    DCMI_PSSILPEN  LL_AHB2_GRP1_EnableClockSleep\n
1108   *         AHB2LPENR    AESLPEN        LL_AHB2_GRP1_EnableClockSleep\n
1109   *         AHB2LPENR    HASHLPEN       LL_AHB2_GRP1_EnableClockSleep\n
1110   *         AHB2LPENR    RNGLPEN        LL_AHB2_GRP1_EnableClockSleep\n
1111   *         AHB2LPENR    PKALPEN        LL_AHB2_GRP1_EnableClockSleep\n
1112   *         AHB2LPENR    SAESLPEN       LL_AHB2_GRP1_EnableClockSleep\n
1113   *         AHB2LPENR    SRAM2LPEN      LL_AHB2_GRP1_EnableClockSleep\n
1114   *         AHB2LPENR    SRAM3LPEN      LL_AHB2_GRP1_EnableClockSleep
1115   * @param  Periphs This parameter can be a combination of the following values:
1116   *         @arg @ref LL_AHB2_GRP1_PERIPH_ALL
1117   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOA
1118   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOB
1119   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOC
1120   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOD
1121   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOE (*)
1122   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOF (*)
1123   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOG (*)
1124   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOH
1125   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOI (*)
1126   *         @arg @ref LL_AHB2_GRP1_PERIPH_ADC
1127   *         @arg @ref LL_AHB2_GRP1_PERIPH_DAC1
1128   *         @arg @ref LL_AHB2_GRP1_PERIPH_DCMI_PSSI (*)
1129   *         @arg @ref LL_AHB2_GRP1_PERIPH_AES (*)
1130   *         @arg @ref LL_AHB2_GRP1_PERIPH_HASH (*)
1131   *         @arg @ref LL_AHB2_GRP1_PERIPH_RNG
1132   *         @arg @ref LL_AHB2_GRP1_PERIPH_PKA (*)
1133   *         @arg @ref LL_AHB2_GRP1_PERIPH_SAES (*)
1134   *         @arg @ref LL_AHB2_GRP1_PERIPH_SRAM2 (*)
1135   *         @arg @ref LL_AHB2_GRP1_PERIPH_SRAM3 (*)
1136   *
1137   *  (*)  : Not available for all stm32h5xxxx family lines.
1138   * @retval None
1139   */
LL_AHB2_GRP1_EnableClockSleep(uint32_t Periphs)1140 __STATIC_INLINE void LL_AHB2_GRP1_EnableClockSleep(uint32_t Periphs)
1141 {
1142   __IO uint32_t tmpreg;
1143   SET_BIT(RCC->AHB2LPENR, Periphs);
1144   /* Delay after an RCC peripheral clock enabling */
1145   tmpreg = READ_BIT(RCC->AHB2LPENR, Periphs);
1146   (void)tmpreg;
1147 }
1148 
1149 /**
1150   * @brief  Check if AHB2 peripheral clocks in Sleep mode is enabled or not
1151   * @rmtoll AHB2LPENR    GPIOALPEN      LL_AHB2_GRP1_IsEnabledClockSleep\n
1152   *         AHB2LPENR    GPIOBLPEN      LL_AHB2_GRP1_IsEnabledClockSleep\n
1153   *         AHB2LPENR    GPIOCLPEN      LL_AHB2_GRP1_IsEnabledClockSleep\n
1154   *         AHB2LPENR    GPIODLPEN      LL_AHB2_GRP1_IsEnabledClockSleep\n
1155   *         AHB2LPENR    GPIOELPEN      LL_AHB2_GRP1_IsEnabledClockSleep\n
1156   *         AHB2LPENR    GPIOFLPEN      LL_AHB2_GRP1_IsEnabledClockSleep\n
1157   *         AHB2LPENR    GPIOGLPEN      LL_AHB2_GRP1_IsEnabledClockSleep\n
1158   *         AHB2LPENR    GPIOHLPEN      LL_AHB2_GRP1_IsEnabledClockSleep\n
1159   *         AHB2LPENR    GPIOILPEN      LL_AHB2_GRP1_IsEnabledClockSleep\n
1160   *         AHB2LPENR    ADCLPEN        LL_AHB2_GRP1_IsEnabledClockSleep\n
1161   *         AHB2LPENR    DAC1LPEN       LL_AHB2_GRP1_IsEnabledClockSleep\n
1162   *         AHB2LPENR    DCMI_PSSILPEN  LL_AHB2_GRP1_IsEnabledClockSleep\n
1163   *         AHB2LPENR    AESLPEN        LL_AHB2_GRP1_IsEnabledClockSleep\n
1164   *         AHB2LPENR    HASHLPEN       LL_AHB2_GRP1_IsEnabledClockSleep\n
1165   *         AHB2LPENR    RNGLPEN        LL_AHB2_GRP1_IsEnabledClockSleep\n
1166   *         AHB2LPENR    PKALPEN        LL_AHB2_GRP1_IsEnabledClockSleep\n
1167   *         AHB2LPENR    SAESLPEN       LL_AHB2_GRP1_IsEnabledClockSleep\n
1168   *         AHB2LPENR    SRAM2LPEN      LL_AHB2_GRP1_IsEnabledClockSleep\n
1169   *         AHB2LPENR    SRAM3LPEN      LL_AHB2_GRP1_IsEnabledClockSleep
1170   * @param  Periphs This parameter can be a combination of the following values:
1171   *         @arg @ref LL_AHB2_GRP1_PERIPH_ALL
1172   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOA
1173   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOB
1174   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOC
1175   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOD
1176   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOE (*)
1177   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOF (*)
1178   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOG (*)
1179   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOH
1180   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOI (*)
1181   *         @arg @ref LL_AHB2_GRP1_PERIPH_ADC
1182   *         @arg @ref LL_AHB2_GRP1_PERIPH_DAC1
1183   *         @arg @ref LL_AHB2_GRP1_PERIPH_DCMI_PSSI (*)
1184   *         @arg @ref LL_AHB2_GRP1_PERIPH_AES (*)
1185   *         @arg @ref LL_AHB2_GRP1_PERIPH_HASH (*)
1186   *         @arg @ref LL_AHB2_GRP1_PERIPH_RNG
1187   *         @arg @ref LL_AHB2_GRP1_PERIPH_PKA (*)
1188   *         @arg @ref LL_AHB2_GRP1_PERIPH_SAES (*)
1189   *         @arg @ref LL_AHB2_GRP1_PERIPH_SRAM2 (*)
1190   *         @arg @ref LL_AHB2_GRP1_PERIPH_SRAM3 (*)
1191   *
1192   *  (*)  : Not available for all stm32h5xxxx family lines.
1193   * @retval State of Periphs (1 or 0).
1194   */
LL_AHB2_GRP1_IsEnabledClockSleep(uint32_t Periphs)1195 __STATIC_INLINE uint32_t LL_AHB2_GRP1_IsEnabledClockSleep(uint32_t Periphs)
1196 {
1197   return ((READ_BIT(RCC->AHB2LPENR, Periphs) == Periphs) ? 1UL : 0UL);
1198 }
1199 
1200 /**
1201   * @brief  Disable AHB2 peripheral clocks in Sleep mode
1202   * @rmtoll AHB2LPENR    GPIOALPEN      LL_AHB2_GRP1_DisableClockSleep\n
1203   *         AHB2LPENR    GPIOBLPEN      LL_AHB2_GRP1_DisableClockSleep\n
1204   *         AHB2LPENR    GPIOCLPEN      LL_AHB2_GRP1_DisableClockSleep\n
1205   *         AHB2LPENR    GPIODLPEN      LL_AHB2_GRP1_DisableClockSleep\n
1206   *         AHB2LPENR    GPIOELPEN      LL_AHB2_GRP1_DisableClockSleep\n
1207   *         AHB2LPENR    GPIOFLPEN      LL_AHB2_GRP1_DisableClockSleep\n
1208   *         AHB2LPENR    GPIOGLPEN      LL_AHB2_GRP1_DisableClockSleep\n
1209   *         AHB2LPENR    GPIOHLPEN      LL_AHB2_GRP1_DisableClockSleep\n
1210   *         AHB2LPENR    GPIOILPEN      LL_AHB2_GRP1_DisableClockSleep\n
1211   *         AHB2LPENR    ADCLPEN        LL_AHB2_GRP1_DisableClockSleep\n
1212   *         AHB2LPENR    DAC1LPEN       LL_AHB2_GRP1_DisableClockSleep\n
1213   *         AHB2LPENR    DCMI_PSSILPEN  LL_AHB2_GRP1_DisableClockSleep\n
1214   *         AHB2LPENR    AESLPEN        LL_AHB2_GRP1_DisableClockSleep\n
1215   *         AHB2LPENR    HASHLPEN       LL_AHB2_GRP1_DisableClockSleep\n
1216   *         AHB2LPENR    RNGLPEN        LL_AHB2_GRP1_DisableClockSleep\n
1217   *         AHB2LPENR    PKALPEN        LL_AHB2_GRP1_DisableClockSleep\n
1218   *         AHB2LPENR    SAESLPEN       LL_AHB2_GRP1_DisableClockSleep\n
1219   *         AHB2LPENR    SRAM2LPEN      LL_AHB2_GRP1_DisableClockSleep\n
1220   *         AHB2LPENR    SRAM3LPEN      LL_AHB2_GRP1_DisableClockSleep
1221   * @param  Periphs This parameter can be a combination of the following values:
1222   *         @arg @ref LL_AHB2_GRP1_PERIPH_ALL
1223   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOA
1224   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOB
1225   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOC
1226   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOD
1227   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOE (*)
1228   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOF (*)
1229   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOG (*)
1230   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOH
1231   *         @arg @ref LL_AHB2_GRP1_PERIPH_GPIOI (*)
1232   *         @arg @ref LL_AHB2_GRP1_PERIPH_ADC
1233   *         @arg @ref LL_AHB2_GRP1_PERIPH_DAC1
1234   *         @arg @ref LL_AHB2_GRP1_PERIPH_DCMI_PSSI (*)
1235   *         @arg @ref LL_AHB2_GRP1_PERIPH_AES (*)
1236   *         @arg @ref LL_AHB2_GRP1_PERIPH_HASH (*)
1237   *         @arg @ref LL_AHB2_GRP1_PERIPH_RNG
1238   *         @arg @ref LL_AHB2_GRP1_PERIPH_PKA (*)
1239   *         @arg @ref LL_AHB2_GRP1_PERIPH_SAES (*)
1240   *         @arg @ref LL_AHB2_GRP1_PERIPH_SRAM2 (*)
1241   *         @arg @ref LL_AHB2_GRP1_PERIPH_SRAM3 (*)
1242   *
1243   *  (*)  : Not available for all stm32h5xxxx family lines.
1244   * @retval None
1245   */
LL_AHB2_GRP1_DisableClockSleep(uint32_t Periphs)1246 __STATIC_INLINE void LL_AHB2_GRP1_DisableClockSleep(uint32_t Periphs)
1247 {
1248   CLEAR_BIT(RCC->AHB2LPENR, Periphs);
1249 }
1250 
1251 /**
1252   * @}
1253   */
1254 
1255 #if defined(AHB4PERIPH_BASE)
1256 /** @defgroup BUS_LL_EF_AHB4 AHB4 Peripherals
1257   * @{
1258   */
1259 /**
1260   * @brief  Enable AHB4 peripherals clock.
1261   * @rmtoll AHB4ENR  OTFDEC1EN       LL_AHB4_GRP1_EnableClock\n
1262   *         AHB4ENR  SDMMC1EN        LL_AHB4_GRP1_EnableClock\n
1263   *         AHB4ENR  SDMMC2EN        LL_AHB4_GRP1_EnableClock\n
1264   *         AHB4ENR  FMCEN           LL_AHB4_GRP1_EnableClock\n
1265   *         AHB4ENR  OCTOSPI1EN      LL_AHB4_GRP1_EnableClock
1266   * @param  Periphs This parameter can be a combination of the following values:
1267   *         @arg @ref LL_AHB4_GRP1_PERIPH_ALL
1268   *         @arg @ref LL_AHB4_GRP1_PERIPH_OTFDEC
1269   *         @arg @ref LL_AHB4_GRP1_PERIPH_SDMMC1
1270   *         @arg @ref LL_AHB4_GRP1_PERIPH_SDMMC2 (*)
1271   *         @arg @ref LL_AHB4_GRP1_PERIPH_FMC
1272   *         @arg @ref LL_AHB4_GRP1_PERIPH_OSPI1
1273   *
1274   *  (*)  : Not available for all stm32h5xxxx family lines.
1275   * @retval None
1276   */
LL_AHB4_GRP1_EnableClock(uint32_t Periphs)1277 __STATIC_INLINE void LL_AHB4_GRP1_EnableClock(uint32_t Periphs)
1278 {
1279   __IO uint32_t tmpreg;
1280   SET_BIT(RCC->AHB4ENR, Periphs);
1281   /* Delay after an RCC peripheral clock enabling */
1282   tmpreg = READ_BIT(RCC->AHB4ENR, Periphs);
1283   (void)tmpreg;
1284 }
1285 
1286 /**
1287   * @brief  Check if AHB4 peripheral clock is enabled or not
1288   * @rmtoll AHB4ENR  OTFDEC1EN        LL_AHB4_GRP1_IsEnabledClock\n
1289   *         AHB4ENR  SDMMC1EN         LL_AHB4_GRP1_IsEnabledClock\n
1290   *         AHB4ENR  SDMMC2EN         LL_AHB4_GRP1_IsEnabledClock\n
1291   *         AHB4ENR  FMCEN            LL_AHB4_GRP1_IsEnabledClock\n
1292   *         AHB4ENR  OCTOSPI1EN       LL_AHB4_GRP1_IsEnabledClock
1293   * @param  Periphs This parameter can be a combination of the following values:
1294   *         @arg @ref LL_AHB4_GRP1_PERIPH_ALL
1295   *         @arg @ref LL_AHB4_GRP1_PERIPH_OTFDEC
1296   *         @arg @ref LL_AHB4_GRP1_PERIPH_SDMMC1
1297   *         @arg @ref LL_AHB4_GRP1_PERIPH_SDMMC2
1298   *         @arg @ref LL_AHB4_GRP1_PERIPH_FMC
1299   *         @arg @ref LL_AHB4_GRP1_PERIPH_OSPI1
1300   * @retval State of Periphs (1 or 0).
1301   */
LL_AHB4_GRP1_IsEnabledClock(uint32_t Periphs)1302 __STATIC_INLINE uint32_t LL_AHB4_GRP1_IsEnabledClock(uint32_t Periphs)
1303 {
1304   return ((READ_BIT(RCC->AHB4ENR, Periphs) == Periphs) ? 1UL : 0UL);
1305 }
1306 
1307 /**
1308   * @brief  Disable AHB4 peripherals clock.
1309   * @rmtoll AHB4ENR  OTFDEC1EN       LL_AHB4_GRP1_DisableClock\n
1310   *         AHB4ENR  SDMMC1EN        LL_AHB4_GRP1_DisableClock\n
1311   *         AHB4ENR  SDMMC2EN        LL_AHB4_GRP1_DisableClock\n
1312   *         AHB4ENR  FMCEN           LL_AHB4_GRP1_DisableClock\n
1313   *         AHB4ENR  OCTOSPI1EN      LL_AHB4_GRP1_DisableClock
1314   * @param  Periphs This parameter can be a combination of the following values:
1315   *         @arg @ref LL_AHB4_GRP1_PERIPH_ALL
1316   *         @arg @ref LL_AHB4_GRP1_PERIPH_OTFDEC
1317   *         @arg @ref LL_AHB4_GRP1_PERIPH_SDMMC1
1318   *         @arg @ref LL_AHB4_GRP1_PERIPH_SDMMC2
1319   *         @arg @ref LL_AHB4_GRP1_PERIPH_FMC
1320   *         @arg @ref LL_AHB4_GRP1_PERIPH_OSPI1
1321   * @retval None
1322   */
LL_AHB4_GRP1_DisableClock(uint32_t Periphs)1323 __STATIC_INLINE void LL_AHB4_GRP1_DisableClock(uint32_t Periphs)
1324 {
1325   CLEAR_BIT(RCC->AHB4ENR, Periphs);
1326 }
1327 
1328 /**
1329   * @brief  Force AHB4 peripherals reset.
1330   * @rmtoll AHB4RSTR  OTFDEC1RST      LL_AHB4_GRP1_ForceReset\n
1331   *         AHB4RSTR  SDMMC1RST       LL_AHB4_GRP1_ForceReset\n
1332   *         AHB4RSTR  SDMMC2RST       LL_AHB4_GRP1_ForceReset\n
1333   *         AHB4RSTR  FMCRST          LL_AHB4_GRP1_ForceReset\n
1334   *         AHB4RSTR  OCTOSPI1RST     LL_AHB4_GRP1_ForceReset
1335   * @param  Periphs This parameter can be a combination of the following values:
1336   *         @arg @ref LL_AHB4_GRP1_PERIPH_ALL
1337   *         @arg @ref LL_AHB4_GRP1_PERIPH_OTFDEC
1338   *         @arg @ref LL_AHB4_GRP1_PERIPH_SDMMC1
1339   *         @arg @ref LL_AHB4_GRP1_PERIPH_SDMMC2
1340   *         @arg @ref LL_AHB4_GRP1_PERIPH_FMC
1341   * @retval None
1342   */
LL_AHB4_GRP1_ForceReset(uint32_t Periphs)1343 __STATIC_INLINE void LL_AHB4_GRP1_ForceReset(uint32_t Periphs)
1344 {
1345   SET_BIT(RCC->AHB4RSTR, Periphs);
1346 }
1347 
1348 /**
1349   * @brief  Release AHB4 peripherals reset.
1350   * @rmtoll AHB4RSTR  OTFDEC1RST        LL_AHB4_GRP1_ReleaseReset\n
1351   *         AHB4RSTR  SDMMC1RST         LL_AHB4_GRP1_ReleaseReset\n
1352   *         AHB4RSTR  SDMMC2RST         LL_AHB4_GRP1_ReleaseReset\n
1353   *         AHB4RSTR  FMCRST            LL_AHB4_GRP1_ReleaseReset\n
1354   *         AHB4RSTR  OCTOSPI1RST       LL_AHB4_GRP1_ReleaseReset
1355   * @param  Periphs This parameter can be a combination of the following values:
1356   *         @arg @ref LL_AHB4_GRP1_PERIPH_ALL
1357   *         @arg @ref LL_AHB4_GRP1_PERIPH_OTFDEC
1358   *         @arg @ref LL_AHB4_GRP1_PERIPH_SDMMC1
1359   *         @arg @ref LL_AHB4_GRP1_PERIPH_SDMMC2
1360   *         @arg @ref LL_AHB4_GRP1_PERIPH_FMC
1361   *         @arg @ref LL_AHB4_GRP1_PERIPH_OSPI1
1362   * @retval None
1363   */
LL_AHB4_GRP1_ReleaseReset(uint32_t Periphs)1364 __STATIC_INLINE void LL_AHB4_GRP1_ReleaseReset(uint32_t Periphs)
1365 {
1366   CLEAR_BIT(RCC->AHB4RSTR, Periphs);
1367 }
1368 
1369 /**
1370   * @brief  Enable AHB4 peripheral clocks in Sleep mode
1371   * @rmtoll AHB4LPENR  OTFDEC1LPEN       LL_AHB4_GRP1_EnableClockSleep\n
1372   *         AHB4LPENR  SDMMC1LPEN        LL_AHB4_GRP1_EnableClockSleep\n
1373   *         AHB4LPENR  SDMMC2LPEN        LL_AHB4_GRP1_EnableClockSleep\n
1374   *         AHB4LPENR  FMCLPEN           LL_AHB4_GRP1_EnableClockSleep\n
1375   *         AHB4LPENR  OCTOSPI1LPEN      LL_AHB4_GRP1_EnableClockSleep
1376   * @param  Periphs This parameter can be a combination of the following values:
1377   *         @arg @ref LL_AHB4_GRP1_PERIPH_ALL
1378   *         @arg @ref LL_AHB4_GRP1_PERIPH_OTFDEC
1379   *         @arg @ref LL_AHB4_GRP1_PERIPH_SDMMC1
1380   *         @arg @ref LL_AHB4_GRP1_PERIPH_SDMMC2
1381   *         @arg @ref LL_AHB4_GRP1_PERIPH_FMC
1382   *         @arg @ref LL_AHB4_GRP1_PERIPH_OSPI1
1383   * @retval None
1384   */
LL_AHB4_GRP1_EnableClockSleep(uint32_t Periphs)1385 __STATIC_INLINE void LL_AHB4_GRP1_EnableClockSleep(uint32_t Periphs)
1386 {
1387   __IO uint32_t tmpreg;
1388   SET_BIT(RCC->AHB4LPENR, Periphs);
1389   /* Delay after an RCC peripheral clock enabling */
1390   tmpreg = READ_BIT(RCC->AHB4LPENR, Periphs);
1391   (void)tmpreg;
1392 }
1393 
1394 /**
1395   * @brief  Check if AHB4 peripheral clocks in Sleep mode is enabled or not
1396   * @rmtoll AHB4LPENR  OTFDEC1LPEN       LL_AHB4_GRP1_IsEnabledClockSleep\n
1397   *         AHB4LPENR  SDMMC1LPEN        LL_AHB4_GRP1_IsEnabledClockSleep\n
1398   *         AHB4LPENR  SDMMC2LPEN        LL_AHB4_GRP1_IsEnabledClockSleep\n
1399   *         AHB4LPENR  FMCLPEN           LL_AHB4_GRP1_IsEnabledClockSleep\n
1400   *         AHB4LPENR  OCTOSPI1LPEN      LL_AHB4_GRP1_IsEnabledClockSleep
1401   * @param  Periphs This parameter can be a combination of the following values:
1402   *         @arg @ref LL_AHB4_GRP1_PERIPH_ALL
1403   *         @arg @ref LL_AHB4_GRP1_PERIPH_OTFDEC
1404   *         @arg @ref LL_AHB4_GRP1_PERIPH_SDMMC1
1405   *         @arg @ref LL_AHB4_GRP1_PERIPH_SDMMC2
1406   *         @arg @ref LL_AHB4_GRP1_PERIPH_FMC
1407   *         @arg @ref LL_AHB4_GRP1_PERIPH_OSPI1
1408   * @retval State of Periphs (1 or 0).
1409   */
LL_AHB4_GRP1_IsEnabledClockSleep(uint32_t Periphs)1410 __STATIC_INLINE uint32_t LL_AHB4_GRP1_IsEnabledClockSleep(uint32_t Periphs)
1411 {
1412   return ((READ_BIT(RCC->AHB4LPENR, Periphs) == Periphs) ? 1UL : 0UL);
1413 }
1414 
1415 /**
1416   * @brief  Disable AHB4 peripheral clocks in Sleep and Stop modes
1417   * @rmtoll AHB4LPENR  OTFDEC1LPEN       LL_AHB4_GRP1_DisableClockSleep\n
1418   *         AHB4LPENR  SDMMC1LPEN        LL_AHB4_GRP1_DisableClockSleep\n
1419   *         AHB4LPENR  SDMMC2LPEN        LL_AHB4_GRP1_DisableClockSleep\n
1420   *         AHB4LPENR  FMCLPEN           LL_AHB4_GRP1_DisableClockSleep\n
1421   *         AHB4LPENR  OCTOSPI1LPEN      LL_AHB4_GRP1_DisableClockSleep
1422   * @param  Periphs This parameter can be a combination of the following values:
1423   *         @arg @ref LL_AHB4_GRP1_PERIPH_ALL
1424   *         @arg @ref LL_AHB4_GRP1_PERIPH_OTFDEC
1425   *         @arg @ref LL_AHB4_GRP1_PERIPH_SDMMC1
1426   *         @arg @ref LL_AHB4_GRP1_PERIPH_SDMMC2
1427   *         @arg @ref LL_AHB4_GRP1_PERIPH_FMC
1428   *         @arg @ref LL_AHB4_GRP1_PERIPH_OSPI1
1429   * @retval None
1430   */
LL_AHB4_GRP1_DisableClockSleep(uint32_t Periphs)1431 __STATIC_INLINE void LL_AHB4_GRP1_DisableClockSleep(uint32_t Periphs)
1432 {
1433   CLEAR_BIT(RCC->AHB4LPENR, Periphs);
1434 }
1435 
1436 /**
1437   * @}
1438   */
1439 #endif /* AHB4PERIPH_BASE */
1440 
1441 /** @defgroup BUS_LL_EF_APB1 APB1 Peripherals
1442   * @{
1443   */
1444 
1445 /**
1446   * @brief  Enable APB1 peripherals clock.
1447   * @rmtoll APB1LENR     TIM2EN        LL_APB1_GRP1_EnableClock\n
1448   *         APB1LENR     TIM3EN        LL_APB1_GRP1_EnableClock\n
1449   *         APB1LENR     TIM4EN        LL_APB1_GRP1_EnableClock\n
1450   *         APB1LENR     TIM5EN        LL_APB1_GRP1_EnableClock\n
1451   *         APB1LENR     TIM6EN        LL_APB1_GRP1_EnableClock\n
1452   *         APB1LENR     TIM7EN        LL_APB1_GRP1_EnableClock\n
1453   *         APB1LENR     TIM12EN       LL_APB1_GRP1_EnableClock\n
1454   *         APB1LENR     TIM13EN       LL_APB1_GRP1_EnableClock\n
1455   *         APB1LENR     TIM14EN       LL_APB1_GRP1_EnableClock\n
1456   *         APB1LENR     WWDGEN        LL_APB1_GRP1_EnableClock\n
1457   *         APB1LENR     SPI2EN        LL_APB1_GRP1_EnableClock\n
1458   *         APB1LENR     SPI3EN        LL_APB1_GRP1_EnableClock\n
1459   *         APB1LENR     USART2EN      LL_APB1_GRP1_EnableClock\n
1460   *         APB1LENR     USART3EN      LL_APB1_GRP1_EnableClock\n
1461   *         APB1LENR     UART4EN       LL_APB1_GRP1_EnableClock\n
1462   *         APB1LENR     UART5EN       LL_APB1_GRP1_EnableClock\n
1463   *         APB1LENR     I2C1EN        LL_APB1_GRP1_EnableClock\n
1464   *         APB1LENR     I2C2EN        LL_APB1_GRP1_EnableClock\n
1465   *         APB1LENR     I3C1EN        LL_APB1_GRP1_EnableClock\n
1466   *         APB1LENR     CRSEN         LL_APB1_GRP1_EnableClock\n
1467   *         APB1LENR     USART6EN      LL_APB1_GRP1_EnableClock\n
1468   *         APB1LENR     USART10EN     LL_APB1_GRP1_EnableClock\n
1469   *         APB1LENR     USART11EN     LL_APB1_GRP1_EnableClock\n
1470   *         APB1LENR     CECEN         LL_APB1_GRP1_EnableClock\n
1471   *         APB1LENR     UART7EN       LL_APB1_GRP1_EnableClock\n
1472   *         APB1LENR     UART8EN       LL_APB1_GRP1_EnableClock
1473   * @param  Periphs This parameter can be a combination of the following values:
1474   *         @arg @ref LL_APB1_GRP1_PERIPH_ALL
1475   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM2
1476   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM3
1477   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM4 (*)
1478   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*)
1479   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM6
1480   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM7
1481   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM12 (*)
1482   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM13 (*)
1483   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM14 (*)
1484   *         @arg @ref LL_APB1_GRP1_PERIPH_WWDG
1485   *         @arg @ref LL_APB1_GRP1_PERIPH_SPI2
1486   *         @arg @ref LL_APB1_GRP1_PERIPH_SPI3
1487   *         @arg @ref LL_APB1_GRP1_PERIPH_OPAMP (*)
1488   *         @arg @ref LL_APB1_GRP1_PERIPH_COMP  (*)
1489   *         @arg @ref LL_APB1_GRP1_PERIPH_USART2
1490   *         @arg @ref LL_APB1_GRP1_PERIPH_USART3
1491   *         @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*)
1492   *         @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*)
1493   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C1
1494   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C2
1495   *         @arg @ref LL_APB1_GRP1_PERIPH_I3C1
1496   *         @arg @ref LL_APB1_GRP1_PERIPH_CRS
1497   *         @arg @ref LL_APB1_GRP1_PERIPH_USART6 (*)
1498   *         @arg @ref LL_APB1_GRP1_PERIPH_USART10 (*)
1499   *         @arg @ref LL_APB1_GRP1_PERIPH_USART11 (*)
1500   *         @arg @ref LL_APB1_GRP1_PERIPH_CEC (*)
1501   *         @arg @ref LL_APB1_GRP1_PERIPH_UART7 (*)
1502   *         @arg @ref LL_APB1_GRP1_PERIPH_UART8 (*)
1503   *
1504   *  (*)  : Not available for all stm32h5xxxx family lines.
1505   * @retval None
1506   */
LL_APB1_GRP1_EnableClock(uint32_t Periphs)1507 __STATIC_INLINE void LL_APB1_GRP1_EnableClock(uint32_t Periphs)
1508 {
1509   __IO uint32_t tmpreg;
1510   SET_BIT(RCC->APB1LENR, Periphs);
1511   /* Delay after an RCC peripheral clock enabling */
1512   tmpreg = READ_BIT(RCC->APB1LENR, Periphs);
1513   (void)tmpreg;
1514 }
1515 
1516 /**
1517   * @brief  Enable APB1 peripherals clock.
1518   * @rmtoll APB1HENR     UART9EN        LL_APB1_GRP2_EnableClock\n
1519   *         APB1HENR     UART12EN       LL_APB1_GRP2_EnableClock\n
1520   *         APB1HENR     DTSEN          LL_APB1_GRP2_EnableClock\n
1521   *         APB1HENR     LPTIM2EN       LL_APB1_GRP2_EnableClock\n
1522   *         APB1HENR     FDCANEN        LL_APB1_GRP2_EnableClock\n
1523   *         APB1HENR     FDCANEN        LL_APB1_GRP2_EnableClock\n
1524   *         APB1HENR     UCPD1EN        LL_APB1_GRP2_EnableClock
1525   * @param  Periphs This parameter can be a combination of the following values:
1526   *         @arg @ref LL_APB1_GRP2_PERIPH_ALL
1527   *         @arg @ref LL_APB1_GRP2_PERIPH_UART9 (*)
1528   *         @arg @ref LL_APB1_GRP2_PERIPH_UART12 (*)
1529   *         @arg @ref LL_APB1_GRP2_PERIPH_DTS
1530   *         @arg @ref LL_APB1_GRP2_PERIPH_LPTIM2
1531   *         @arg @ref LL_APB1_GRP2_PERIPH_FDCAN
1532   *         @arg @ref LL_APB1_GRP2_PERIPH_UCPD1
1533   *
1534   *  (*)  : Not available for all stm32h5xxxx family lines.
1535   * @retval None
1536   */
LL_APB1_GRP2_EnableClock(uint32_t Periphs)1537 __STATIC_INLINE void LL_APB1_GRP2_EnableClock(uint32_t Periphs)
1538 {
1539   __IO uint32_t tmpreg;
1540   SET_BIT(RCC->APB1HENR, Periphs);
1541   /* Delay after an RCC peripheral clock enabling */
1542   tmpreg = READ_BIT(RCC->APB1HENR, Periphs);
1543   (void)tmpreg;
1544 }
1545 
1546 /**
1547   * @brief  Check if APB1 peripheral clock is enabled or not
1548   * @rmtoll APB1LENR     TIM2EN        LL_APB1_GRP1_IsEnabledClock\n
1549   *         APB1LENR     TIM3EN        LL_APB1_GRP1_IsEnabledClock\n
1550   *         APB1LENR     TIM4EN        LL_APB1_GRP1_IsEnabledClock\n
1551   *         APB1LENR     TIM5EN        LL_APB1_GRP1_IsEnabledClock\n
1552   *         APB1LENR     TIM6EN        LL_APB1_GRP1_IsEnabledClock\n
1553   *         APB1LENR     TIM7EN        LL_APB1_GRP1_IsEnabledClock\n
1554   *         APB1LENR     WWDGEN        LL_APB1_GRP1_IsEnabledClock\n
1555   *         APB1LENR     SPI2EN        LL_APB1_GRP1_IsEnabledClock\n
1556   *         APB1LENR     SPI3EN        LL_APB1_GRP1_IsEnabledClock\n
1557   *         APB1LENR     USART2EN      LL_APB1_GRP1_IsEnabledClock\n
1558   *         APB1LENR     USART3EN      LL_APB1_GRP1_IsEnabledClock\n
1559   *         APB1LENR     UART4EN       LL_APB1_GRP1_IsEnabledClock\n
1560   *         APB1LENR     UART5EN       LL_APB1_GRP1_IsEnabledClock\n
1561   *         APB1LENR     I2C1EN        LL_APB1_GRP1_IsEnabledClock\n
1562   *         APB1LENR     I2C2EN        LL_APB1_GRP1_IsEnabledClock\n
1563   *         APB1LENR     I3C1EN        LL_APB1_GRP1_IsEnabledClock\n
1564   *         APB1LENR     CRSEN         LL_APB1_GRP1_IsEnabledClock\n
1565   *         APB1LENR     USART6EN      LL_APB1_GRP1_IsEnabledClock\n
1566   *         APB1LENR     USART10EN     LL_APB1_GRP1_IsEnabledClock\n
1567   *         APB1LENR     USART11EN     LL_APB1_GRP1_IsEnabledClock\n
1568   *         APB1LENR     CECEN         LL_APB1_GRP1_IsEnabledClock\n
1569   *         APB1LENR     UART7EN       LL_APB1_GRP1_IsEnabledClock\n
1570   *         APB1LENR     UART8EN       LL_APB1_GRP1_IsEnabledClock
1571   * @param  Periphs This parameter can be a combination of the following values:
1572   *         @arg @ref LL_APB1_GRP1_PERIPH_ALL
1573   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM2
1574   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM3
1575   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM4 (*)
1576   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*)
1577   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM6
1578   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM7
1579   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM12 (*)
1580   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM13 (*)
1581   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM14 (*)
1582   *         @arg @ref LL_APB1_GRP1_PERIPH_WWDG
1583   *         @arg @ref LL_APB1_GRP1_PERIPH_SPI2
1584   *         @arg @ref LL_APB1_GRP1_PERIPH_SPI3
1585   *         @arg @ref LL_APB1_GRP1_PERIPH_OPAMP (*)
1586   *         @arg @ref LL_APB1_GRP1_PERIPH_COMP  (*)
1587   *         @arg @ref LL_APB1_GRP1_PERIPH_USART2
1588   *         @arg @ref LL_APB1_GRP1_PERIPH_USART3
1589   *         @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*)
1590   *         @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*)
1591   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C1
1592   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C2
1593   *         @arg @ref LL_APB1_GRP1_PERIPH_I3C1
1594   *         @arg @ref LL_APB1_GRP1_PERIPH_CRS
1595   *         @arg @ref LL_APB1_GRP1_PERIPH_USART6 (*)
1596   *         @arg @ref LL_APB1_GRP1_PERIPH_USART10 (*)
1597   *         @arg @ref LL_APB1_GRP1_PERIPH_USART11 (*)
1598   *         @arg @ref LL_APB1_GRP1_PERIPH_CEC (*)
1599   *         @arg @ref LL_APB1_GRP1_PERIPH_UART7 (*)
1600   *         @arg @ref LL_APB1_GRP1_PERIPH_UART8 (*)
1601   *
1602   *  (*)  : Not available for all stm32h5xxxx family lines.
1603   * @retval State of Periphs (1 or 0).
1604   */
LL_APB1_GRP1_IsEnabledClock(uint32_t Periphs)1605 __STATIC_INLINE uint32_t LL_APB1_GRP1_IsEnabledClock(uint32_t Periphs)
1606 {
1607   return ((READ_BIT(RCC->APB1LENR, Periphs) == Periphs) ? 1UL : 0UL);
1608 }
1609 
1610 /**
1611   * @brief  Check if APB1 peripheral clock is enabled or not
1612   * @rmtoll APB1HENR     UART9EN       LL_APB1_GRP2_IsEnabledClock\n
1613   *         APB1HENR     UART12EN      LL_APB1_GRP2_IsEnabledClock\n
1614   *         APB1HENR     DTSEN         LL_APB1_GRP2_IsEnabledClock\n
1615   *         APB1HENR     LPTIM2EN      LL_APB1_GRP2_IsEnabledClock\n
1616   *         APB1HENR     FDCANEN       LL_APB1_GRP2_IsEnabledClock\n
1617   *         APB1HENR     UCPD1EN       LL_APB1_GRP2_IsEnabledClock
1618   * @param  Periphs This parameter can be a combination of the following values:
1619   *         @arg @ref LL_APB1_GRP2_PERIPH_ALL
1620   *         @arg @ref LL_APB1_GRP2_PERIPH_UART9 (*)
1621   *         @arg @ref LL_APB1_GRP2_PERIPH_UART12 (*)
1622   *         @arg @ref LL_APB1_GRP2_PERIPH_DTS
1623   *         @arg @ref LL_APB1_GRP2_PERIPH_LPTIM2
1624   *         @arg @ref LL_APB1_GRP2_PERIPH_FDCAN
1625   *         @arg @ref LL_APB1_GRP2_PERIPH_UCPD1
1626   *
1627   *  (*)  : Not available for all stm32h5xxxx family lines.
1628   * @retval State of Periphs (1 or 0).
1629   */
LL_APB1_GRP2_IsEnabledClock(uint32_t Periphs)1630 __STATIC_INLINE uint32_t LL_APB1_GRP2_IsEnabledClock(uint32_t Periphs)
1631 {
1632   return ((READ_BIT(RCC->APB1HENR, Periphs) == Periphs) ? 1UL : 0UL);
1633 }
1634 
1635 /**
1636   * @brief  Disable APB1 peripherals clock.
1637   * @rmtoll APB1LENR     TIM2EN         LL_APB1_GRP1_DisableClock\n
1638   *         APB1LENR     TIM3EN         LL_APB1_GRP1_DisableClock\n
1639   *         APB1LENR     TIM4EN         LL_APB1_GRP1_DisableClock\n
1640   *         APB1LENR     TIM5EN         LL_APB1_GRP1_DisableClock\n
1641   *         APB1LENR     TIM6EN         LL_APB1_GRP1_DisableClock\n
1642   *         APB1LENR     TIM7EN         LL_APB1_GRP1_DisableClock\n
1643   *         APB1LENR     WWDGEN         LL_APB1_GRP1_DisableClock\n
1644   *         APB1LENR     SPI2EN         LL_APB1_GRP1_DisableClock\n
1645   *         APB1LENR     SPI3EN         LL_APB1_GRP1_DisableClock\n
1646   *         APB1LENR     USART2EN       LL_APB1_GRP1_DisableClock\n
1647   *         APB1LENR     USART3EN       LL_APB1_GRP1_DisableClock\n
1648   *         APB1LENR     UART4EN        LL_APB1_GRP1_DisableClock\n
1649   *         APB1LENR     UART5EN        LL_APB1_GRP1_DisableClock\n
1650   *         APB1LENR     I2C1EN         LL_APB1_GRP1_DisableClock\n
1651   *         APB1LENR     I2C2EN         LL_APB1_GRP1_DisableClock\n
1652   *         APB1LENR     I3C1EN         LL_APB1_GRP1_DisableClock\n
1653   *         APB1LENR     CRSEN          LL_APB1_GRP1_DisableClock\n
1654   *         APB1LENR     USART6EN       LL_APB1_GRP1_DisableClock\n
1655   *         APB1LENR     USART10EN      LL_APB1_GRP1_DisableClock\n
1656   *         APB1LENR     USART11EN      LL_APB1_GRP1_DisableClock\n
1657   *         APB1LENR     CECEN          LL_APB1_GRP1_DisableClock\n
1658   *         APB1LENR     UART7EN        LL_APB1_GRP1_DisableClock\n
1659   *         APB1LENR     UART8EN        LL_APB1_GRP1_DisableClock
1660   * @param  Periphs This parameter can be a combination of the following values:
1661   *         @arg @ref LL_APB1_GRP1_PERIPH_ALL
1662   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM2
1663   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM3
1664   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM4 (*)
1665   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*)
1666   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM6
1667   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM7
1668   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM12 (*)
1669   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM13 (*)
1670   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM14 (*)
1671   *         @arg @ref LL_APB1_GRP1_PERIPH_WWDG
1672   *         @arg @ref LL_APB1_GRP1_PERIPH_SPI2
1673   *         @arg @ref LL_APB1_GRP1_PERIPH_SPI3
1674   *         @arg @ref LL_APB1_GRP1_PERIPH_OPAMP (*)
1675   *         @arg @ref LL_APB1_GRP1_PERIPH_COMP  (*)
1676   *         @arg @ref LL_APB1_GRP1_PERIPH_USART2
1677   *         @arg @ref LL_APB1_GRP1_PERIPH_USART3
1678   *         @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*)
1679   *         @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*)
1680   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C1
1681   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C2
1682   *         @arg @ref LL_APB1_GRP1_PERIPH_I3C1
1683   *         @arg @ref LL_APB1_GRP1_PERIPH_CRS
1684   *         @arg @ref LL_APB1_GRP1_PERIPH_USART6 (*)
1685   *         @arg @ref LL_APB1_GRP1_PERIPH_USART10 (*)
1686   *         @arg @ref LL_APB1_GRP1_PERIPH_USART11 (*)
1687   *         @arg @ref LL_APB1_GRP1_PERIPH_CEC (*)
1688   *         @arg @ref LL_APB1_GRP1_PERIPH_UART7 (*)
1689   *         @arg @ref LL_APB1_GRP1_PERIPH_UART8 (*)
1690   *
1691   *  (*)  : Not available for all stm32h5xxxx family lines.
1692   * @retval None
1693   */
LL_APB1_GRP1_DisableClock(uint32_t Periphs)1694 __STATIC_INLINE void LL_APB1_GRP1_DisableClock(uint32_t Periphs)
1695 {
1696   CLEAR_BIT(RCC->APB1LENR, Periphs);
1697 }
1698 
1699 /**
1700   * @brief  Disable APB1 peripherals clock.
1701   * @rmtoll APB1HENR     UART9EN        LL_APB1_GRP2_DisableClock\n
1702   *         APB1HENR     UART12EN       LL_APB1_GRP2_DisableClock\n
1703   *         APB1HENR     DTSEN          LL_APB1_GRP2_DisableClock\n
1704   *         APB1HENR     LPTIM2EN       LL_APB1_GRP2_DisableClock\n
1705   *         APB1HENR     FDCANEN       LL_APB1_GRP2_DisableClock\n
1706   *         APB1HENR     UCPD1EN        LL_APB1_GRP2_DisableClock
1707   * @param  Periphs This parameter can be a combination of the following values:
1708   *         @arg @ref LL_APB1_GRP2_PERIPH_ALL
1709   *         @arg @ref LL_APB1_GRP2_PERIPH_UART9 (*)
1710   *         @arg @ref LL_APB1_GRP2_PERIPH_UART12 (*)
1711   *         @arg @ref LL_APB1_GRP2_PERIPH_DTS
1712   *         @arg @ref LL_APB1_GRP2_PERIPH_LPTIM2
1713   *         @arg @ref LL_APB1_GRP2_PERIPH_FDCAN
1714   *         @arg @ref LL_APB1_GRP2_PERIPH_UCPD1
1715   *
1716   *  (*)  : Not available for all stm32h5xxxx family lines.
1717   * @retval None
1718   */
LL_APB1_GRP2_DisableClock(uint32_t Periphs)1719 __STATIC_INLINE void LL_APB1_GRP2_DisableClock(uint32_t Periphs)
1720 {
1721   CLEAR_BIT(RCC->APB1HENR, Periphs);
1722 }
1723 
1724 /**
1725   * @brief  Force APB1 peripherals reset.
1726   * @rmtoll APB1LRSTR     TIM2RST        LL_APB1_GRP1_ForceReset\n
1727   *         APB1LRSTR     TIM3RST        LL_APB1_GRP1_ForceReset\n
1728   *         APB1LRSTR     TIM4RST        LL_APB1_GRP1_ForceReset\n
1729   *         APB1LRSTR     TIM5RST        LL_APB1_GRP1_ForceReset\n
1730   *         APB1LRSTR     TIM6RST        LL_APB1_GRP1_ForceReset\n
1731   *         APB1LRSTR     TIM7RST        LL_APB1_GRP1_ForceReset\n
1732   *         APB1LRSTR     SPI2RST        LL_APB1_GRP1_ForceReset\n
1733   *         APB1LRSTR     SPI3RST        LL_APB1_GRP1_ForceReset\n
1734   *         APB1LRSTR     USART2RST      LL_APB1_GRP1_ForceReset\n
1735   *         APB1LRSTR     USART3RST      LL_APB1_GRP1_ForceReset\n
1736   *         APB1LRSTR     UART4RST       LL_APB1_GRP1_ForceReset\n
1737   *         APB1LRSTR     UART5RST       LL_APB1_GRP1_ForceReset\n
1738   *         APB1LRSTR     I2C1RST        LL_APB1_GRP1_ForceReset\n
1739   *         APB1LRSTR     I2C2RST        LL_APB1_GRP1_ForceReset\n
1740   *         APB1LRSTR     I3C1RST        LL_APB1_GRP1_ForceReset\n
1741   *         APB1LRSTR     CRSRST         LL_APB1_GRP1_ForceReset\n
1742   *         APB1LRSTR     USART6RST      LL_APB1_GRP1_ForceReset\n
1743   *         APB1LRSTR     USART10RST     LL_APB1_GRP1_ForceReset\n
1744   *         APB1LRSTR     USART11RST     LL_APB1_GRP1_ForceReset\n
1745   *         APB1LRSTR     CECRST         LL_APB1_GRP1_ForceReset\n
1746   *         APB1LRSTR     UART7RST       LL_APB1_GRP1_ForceReset\n
1747   *         APB1LRSTR     UART8RST       LL_APB1_GRP1_ForceReset
1748   * @param  Periphs This parameter can be a combination of the following values:
1749   *         @arg @ref LL_APB1_GRP1_PERIPH_ALL
1750   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM2
1751   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM3
1752   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM4 (*)
1753   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*)
1754   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM6
1755   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM7
1756   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM12 (*)
1757   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM13 (*)
1758   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM14 (*)
1759   *         @arg @ref LL_APB1_GRP1_PERIPH_SPI2
1760   *         @arg @ref LL_APB1_GRP1_PERIPH_SPI3
1761   *         @arg @ref LL_APB1_GRP1_PERIPH_OPAMP (*)
1762   *         @arg @ref LL_APB1_GRP1_PERIPH_COMP  (*)
1763   *         @arg @ref LL_APB1_GRP1_PERIPH_USART2
1764   *         @arg @ref LL_APB1_GRP1_PERIPH_USART3
1765   *         @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*)
1766   *         @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*)
1767   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C1
1768   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C2
1769   *         @arg @ref LL_APB1_GRP1_PERIPH_I3C1
1770   *         @arg @ref LL_APB1_GRP1_PERIPH_CRS
1771   *         @arg @ref LL_APB1_GRP1_PERIPH_USART6 (*)
1772   *         @arg @ref LL_APB1_GRP1_PERIPH_USART10 (*)
1773   *         @arg @ref LL_APB1_GRP1_PERIPH_USART11 (*)
1774   *         @arg @ref LL_APB1_GRP1_PERIPH_CEC (*)
1775   *         @arg @ref LL_APB1_GRP1_PERIPH_UART7 (*)
1776   *         @arg @ref LL_APB1_GRP1_PERIPH_UART8 (*)
1777   *
1778   *  (*)  : Not available for all stm32h5xxxx family lines.
1779   * @retval None
1780   */
LL_APB1_GRP1_ForceReset(uint32_t Periphs)1781 __STATIC_INLINE void LL_APB1_GRP1_ForceReset(uint32_t Periphs)
1782 {
1783   SET_BIT(RCC->APB1LRSTR, Periphs);
1784 }
1785 
1786 /**
1787   * @brief  Force APB1 peripherals reset.
1788   * @rmtoll APB1HRSTR     UART9RST       LL_APB1_GRP2_ForceReset\n
1789   *         APB1HRSTR     UART12RST      LL_APB1_GRP2_ForceReset\n
1790   *         APB1HRSTR     DTSRST         LL_APB1_GRP2_ForceReset\n
1791   *         APB1HRSTR     LPTIM2RST      LL_APB1_GRP2_ForceReset\n
1792   *         APB1HRSTR     FDCANRST       LL_APB1_GRP2_ForceReset\n
1793   *         APB1HRSTR     UCPD1RST       LL_APB1_GRP2_ForceReset
1794   * @param  Periphs This parameter can be a combination of the following values:
1795   *         @arg @ref LL_APB1_GRP2_PERIPH_ALL
1796   *         @arg @ref LL_APB1_GRP2_PERIPH_UART9 (*)
1797   *         @arg @ref LL_APB1_GRP2_PERIPH_UART12 (*)
1798   *         @arg @ref LL_APB1_GRP2_PERIPH_DTS
1799   *         @arg @ref LL_APB1_GRP2_PERIPH_LPTIM2
1800   *         @arg @ref LL_APB1_GRP2_PERIPH_FDCAN
1801   *         @arg @ref LL_APB1_GRP2_PERIPH_UCPD1
1802   *
1803   *  (*)  : Not available for all stm32h5xxxx family lines.
1804   * @retval None
1805   */
LL_APB1_GRP2_ForceReset(uint32_t Periphs)1806 __STATIC_INLINE void LL_APB1_GRP2_ForceReset(uint32_t Periphs)
1807 {
1808   SET_BIT(RCC->APB1HRSTR, Periphs);
1809 }
1810 
1811 /**
1812   * @brief  Release APB1 peripherals reset.
1813   * @rmtoll APB1LRSTR     TIM2RST        LL_APB1_GRP1_ReleaseReset\n
1814   *         APB1LRSTR     TIM3RST        LL_APB1_GRP1_ReleaseReset\n
1815   *         APB1LRSTR     TIM4RST        LL_APB1_GRP1_ReleaseReset\n
1816   *         APB1LRSTR     TIM5RST        LL_APB1_GRP1_ReleaseReset\n
1817   *         APB1LRSTR     TIM6RST        LL_APB1_GRP1_ReleaseReset\n
1818   *         APB1LRSTR     TIM7RST        LL_APB1_GRP1_ReleaseReset\n
1819   *         APB1LRSTR     SPI2RST        LL_APB1_GRP1_ReleaseReset\n
1820   *         APB1LRSTR     SPI3RST        LL_APB1_GRP1_ReleaseReset\n
1821   *         APB1LRSTR     USART2RST      LL_APB1_GRP1_ReleaseReset\n
1822   *         APB1LRSTR     USART3RST      LL_APB1_GRP1_ReleaseReset\n
1823   *         APB1LRSTR     UART4RST       LL_APB1_GRP1_ReleaseReset\n
1824   *         APB1LRSTR     UART5RST       LL_APB1_GRP1_ReleaseReset\n
1825   *         APB1LRSTR     I2C1RST        LL_APB1_GRP1_ReleaseReset\n
1826   *         APB1LRSTR     I2C2RST        LL_APB1_GRP1_ReleaseReset\n
1827   *         APB1LRSTR     I3C1RST        LL_APB1_GRP1_ReleaseReset\n
1828   *         APB1LRSTR     CRSRST         LL_APB1_GRP1_ReleaseReset\n
1829   *         APB1LRSTR     USART6RST      LL_APB1_GRP1_ReleaseReset\n
1830   *         APB1LRSTR     USART10RST     LL_APB1_GRP1_ReleaseReset\n
1831   *         APB1LRSTR     USART11RST     LL_APB1_GRP1_ReleaseReset\n
1832   *         APB1LRSTR     CECRST         LL_APB1_GRP1_ReleaseReset\n
1833   *         APB1LRSTR     UART7RST       LL_APB1_GRP1_ReleaseReset\n
1834   *         APB1LRSTR     UART8RST       LL_APB1_GRP1_ReleaseReset
1835   * @param  Periphs This parameter can be a combination of the following values:
1836   *         @arg @ref LL_APB1_GRP1_PERIPH_ALL
1837   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM2
1838   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM3
1839   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM4 (*)
1840   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*)
1841   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM6
1842   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM7
1843   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM12 (*)
1844   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM13 (*)
1845   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM14 (*)
1846   *         @arg @ref LL_APB1_GRP1_PERIPH_SPI2
1847   *         @arg @ref LL_APB1_GRP1_PERIPH_SPI3
1848   *         @arg @ref LL_APB1_GRP1_PERIPH_OPAMP (*)
1849   *         @arg @ref LL_APB1_GRP1_PERIPH_COMP  (*)
1850   *         @arg @ref LL_APB1_GRP1_PERIPH_USART2
1851   *         @arg @ref LL_APB1_GRP1_PERIPH_USART3
1852   *         @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*)
1853   *         @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*)
1854   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C1
1855   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C2
1856   *         @arg @ref LL_APB1_GRP1_PERIPH_I3C1
1857   *         @arg @ref LL_APB1_GRP1_PERIPH_CRS
1858   *         @arg @ref LL_APB1_GRP1_PERIPH_USART6 (*)
1859   *         @arg @ref LL_APB1_GRP1_PERIPH_USART10 (*)
1860   *         @arg @ref LL_APB1_GRP1_PERIPH_USART11 (*)
1861   *         @arg @ref LL_APB1_GRP1_PERIPH_CEC (*)
1862   *         @arg @ref LL_APB1_GRP1_PERIPH_UART7 (*)
1863   *         @arg @ref LL_APB1_GRP1_PERIPH_UART8 (*)
1864   *
1865   *  (*)  : Not available for all stm32h5xxxx family lines.
1866   * @retval None
1867   */
LL_APB1_GRP1_ReleaseReset(uint32_t Periphs)1868 __STATIC_INLINE void LL_APB1_GRP1_ReleaseReset(uint32_t Periphs)
1869 {
1870   CLEAR_BIT(RCC->APB1LRSTR, Periphs);
1871 }
1872 
1873 /**
1874   * @brief  Release APB1 peripherals reset.
1875   * @rmtoll APB1HRSTR     UART9RST       LL_APB1_GRP2_ReleaseReset\n
1876   *         APB1HRSTR     UART12RST      LL_APB1_GRP2_ReleaseReset\n
1877   *         APB1HRSTR     DTSRST         LL_APB1_GRP2_ReleaseReset\n
1878   *         APB1HRSTR     LPTIM2RST      LL_APB1_GRP2_ReleaseReset\n
1879   *         APB1HRSTR     FDCAN          LL_APB1_GRP2_ReleaseReset\n
1880   *         APB1HRSTR     UCPD1RST       LL_APB1_GRP2_ReleaseReset
1881   * @param  Periphs This parameter can be a combination of the following values:
1882   *         @arg @ref LL_APB1_GRP2_PERIPH_ALL
1883   *         @arg @ref LL_APB1_GRP2_PERIPH_UART9 (*)
1884   *         @arg @ref LL_APB1_GRP2_PERIPH_UART12 (*)
1885   *         @arg @ref LL_APB1_GRP2_PERIPH_DTS
1886   *         @arg @ref LL_APB1_GRP2_PERIPH_LPTIM2
1887   *         @arg @ref LL_APB1_GRP2_PERIPH_FDCAN
1888   *         @arg @ref LL_APB1_GRP2_PERIPH_UCPD1
1889   *
1890   *  (*)  : Not available for all stm32h5xxxx family lines.
1891   * @retval None
1892   */
LL_APB1_GRP2_ReleaseReset(uint32_t Periphs)1893 __STATIC_INLINE void LL_APB1_GRP2_ReleaseReset(uint32_t Periphs)
1894 {
1895   CLEAR_BIT(RCC->APB1HRSTR, Periphs);
1896 }
1897 
1898 /**
1899   * @brief  Enable APB1 peripheral clocks in Sleep mode
1900   * @rmtoll APB1LLPENR     TIM2LPEN        LL_APB1_GRP1_EnableClockSleep\n
1901   *         APB1LLPENR     TIM3LPEN        LL_APB1_GRP1_EnableClockSleep\n
1902   *         APB1LLPENR     TIM4LPEN        LL_APB1_GRP1_EnableClockSleep\n
1903   *         APB1LLPENR     TIM5LPEN        LL_APB1_GRP1_EnableClockSleep\n
1904   *         APB1LLPENR     TIM6LPEN        LL_APB1_GRP1_EnableClockSleep\n
1905   *         APB1LLPENR     TIM7LPEN        LL_APB1_GRP1_EnableClockSleep\n
1906   *         APB1LLPENR     WWDGLPEN        LL_APB1_GRP1_EnableClockSleep\n
1907   *         APB1LLPENR     SPI2LPEN        LL_APB1_GRP1_EnableClockSleep\n
1908   *         APB1LLPENR     SPI3LPEN        LL_APB1_GRP1_EnableClockSleep\n
1909   *         APB1LLPENR     USART2LPEN      LL_APB1_GRP1_EnableClockSleep\n
1910   *         APB1LLPENR     USART3LPEN      LL_APB1_GRP1_EnableClockSleep\n
1911   *         APB1LLPENR     UART4LPEN       LL_APB1_GRP1_EnableClockSleep\n
1912   *         APB1LLPENR     UART5LPEN       LL_APB1_GRP1_EnableClockSleep\n
1913   *         APB1LLPENR     I2C1LPEN        LL_APB1_GRP1_EnableClockSleep\n
1914   *         APB1LLPENR     I2C2LPEN        LL_APB1_GRP1_EnableClockSleep\n
1915   *         APB1LLPENR     I3C1LPEN        LL_APB1_GRP1_EnableClockSleep\n
1916   *         APB1LLPENR     CRSLPEN         LL_APB1_GRP1_EnableClockSleep\n
1917   *         APB1LLPENR     USART6LPEN      LL_APB1_GRP1_EnableClockSleep\n
1918   *         APB1LLPENR     USART10LPEN     LL_APB1_GRP1_EnableClockSleep\n
1919   *         APB1LLPENR     USART11LPEN     LL_APB1_GRP1_EnableClockSleep\n
1920   *         APB1LLPENR     CECLPEN         LL_APB1_GRP1_EnableClockSleep\n
1921   *         APB1LLPENR     UART7LPEN       LL_APB1_GRP1_EnableClockSleep\n
1922   *         APB1LLPENR     UART8LPEN       LL_APB1_GRP1_EnableClockSleep
1923   * @param  Periphs This parameter can be a combination of the following values:
1924   *         @arg @ref LL_APB1_GRP1_PERIPH_ALL
1925   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM2
1926   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM3
1927   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM4 (*)
1928   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*)
1929   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM6
1930   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM7
1931   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM12 (*)
1932   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM13 (*)
1933   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM14 (*)
1934   *         @arg @ref LL_APB1_GRP1_PERIPH_WWDG
1935   *         @arg @ref LL_APB1_GRP1_PERIPH_SPI2
1936   *         @arg @ref LL_APB1_GRP1_PERIPH_SPI3
1937   *         @arg @ref LL_APB1_GRP1_PERIPH_OPAMP (*)
1938   *         @arg @ref LL_APB1_GRP1_PERIPH_COMP  (*)
1939   *         @arg @ref LL_APB1_GRP1_PERIPH_USART2
1940   *         @arg @ref LL_APB1_GRP1_PERIPH_USART3
1941   *         @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*)
1942   *         @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*)
1943   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C1
1944   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C2
1945   *         @arg @ref LL_APB1_GRP1_PERIPH_I3C1
1946   *         @arg @ref LL_APB1_GRP1_PERIPH_CRS
1947   *         @arg @ref LL_APB1_GRP1_PERIPH_USART6 (*)
1948   *         @arg @ref LL_APB1_GRP1_PERIPH_USART10 (*)
1949   *         @arg @ref LL_APB1_GRP1_PERIPH_USART11 (*)
1950   *         @arg @ref LL_APB1_GRP1_PERIPH_CEC (*)
1951   *         @arg @ref LL_APB1_GRP1_PERIPH_UART7 (*)
1952   *         @arg @ref LL_APB1_GRP1_PERIPH_UART8 (*)
1953   *
1954   *  (*)  : Not available for all stm32h5xxxx family lines.
1955   * @retval None
1956   */
LL_APB1_GRP1_EnableClockSleep(uint32_t Periphs)1957 __STATIC_INLINE void LL_APB1_GRP1_EnableClockSleep(uint32_t Periphs)
1958 {
1959   __IO uint32_t tmpreg;
1960   SET_BIT(RCC->APB1LLPENR, Periphs);
1961   /* Delay after an RCC peripheral clock enabling */
1962   tmpreg = READ_BIT(RCC->APB1LLPENR, Periphs);
1963   (void)tmpreg;
1964 }
1965 
1966 /**
1967   * @brief  Check if APB1 peripheral clocks in Sleep mode is enabled or not
1968   * @rmtoll APB1LLPENR     TIM2LPEN        LL_APB1_GRP1_IsEnabledClockSleep\n
1969   *         APB1LLPENR     TIM3LPEN        LL_APB1_GRP1_IsEnabledClockSleep\n
1970   *         APB1LLPENR     TIM4LPEN        LL_APB1_GRP1_IsEnabledClockSleep\n
1971   *         APB1LLPENR     TIM5LPEN        LL_APB1_GRP1_IsEnabledClockSleep\n
1972   *         APB1LLPENR     TIM6LPEN        LL_APB1_GRP1_IsEnabledClockSleep\n
1973   *         APB1LLPENR     TIM7LPEN        LL_APB1_GRP1_IsEnabledClockSleep\n
1974   *         APB1LLPENR     WWDGLPEN        LL_APB1_GRP1_IsEnabledClockSleep\n
1975   *         APB1LLPENR     SPI2LPEN        LL_APB1_GRP1_IsEnabledClockSleep\n
1976   *         APB1LLPENR     SPI3LPEN        LL_APB1_GRP1_IsEnabledClockSleep\n
1977   *         APB1LLPENR     USART2LPEN      LL_APB1_GRP1_IsEnabledClockSleep\n
1978   *         APB1LLPENR     USART3LPEN      LL_APB1_GRP1_IsEnabledClockSleep\n
1979   *         APB1LLPENR     UART4LPEN       LL_APB1_GRP1_IsEnabledClockSleep\n
1980   *         APB1LLPENR     UART5LPEN       LL_APB1_GRP1_IsEnabledClockSleep\n
1981   *         APB1LLPENR     I2C1LPEN        LL_APB1_GRP1_IsEnabledClockSleep\n
1982   *         APB1LLPENR     I2C2LPEN        LL_APB1_GRP1_IsEnabledClockSleep\n
1983   *         APB1LLPENR     I3C1LPEN        LL_APB1_GRP1_IsEnabledClockSleep\n
1984   *         APB1LLPENR     CRSLPEN         LL_APB1_GRP1_IsEnabledClockSleep\n
1985   *         APB1LLPENR     USART6LPEN      LL_APB1_GRP1_IsEnabledClockSleep\n
1986   *         APB1LLPENR     USART10LPEN     LL_APB1_GRP1_IsEnabledClockSleep\n
1987   *         APB1LLPENR     USART11LPEN     LL_APB1_GRP1_IsEnabledClockSleep\n
1988   *         APB1LLPENR     CECLPEN         LL_APB1_GRP1_IsEnabledClockSleep\n
1989   *         APB1LLPENR     UART7LPEN       LL_APB1_GRP1_IsEnabledClockSleep\n
1990   *         APB1LLPENR     UART8LPEN       LL_APB1_GRP1_IsEnabledClockSleep
1991   * @param  Periphs This parameter can be a combination of the following values:
1992   *         @arg @ref LL_APB1_GRP1_PERIPH_ALL
1993   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM2
1994   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM3
1995   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM4 (*)
1996   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*)
1997   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM6
1998   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM7
1999   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM12 (*)
2000   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM13 (*)
2001   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM14
2002   *         @arg @ref LL_APB1_GRP1_PERIPH_WWDG
2003   *         @arg @ref LL_APB1_GRP1_PERIPH_SPI2
2004   *         @arg @ref LL_APB1_GRP1_PERIPH_SPI3
2005   *         @arg @ref LL_APB1_GRP1_PERIPH_OPAMP (*)
2006   *         @arg @ref LL_APB1_GRP1_PERIPH_COMP  (*)
2007   *         @arg @ref LL_APB1_GRP1_PERIPH_USART2
2008   *         @arg @ref LL_APB1_GRP1_PERIPH_USART3
2009   *         @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*)
2010   *         @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*)
2011   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C1
2012   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C2
2013   *         @arg @ref LL_APB1_GRP1_PERIPH_I3C1
2014   *         @arg @ref LL_APB1_GRP1_PERIPH_CRS
2015   *         @arg @ref LL_APB1_GRP1_PERIPH_USART6 (*)
2016   *         @arg @ref LL_APB1_GRP1_PERIPH_USART10 (*)
2017   *         @arg @ref LL_APB1_GRP1_PERIPH_USART11
2018   *         @arg @ref LL_APB1_GRP1_PERIPH_CEC (*)
2019   *         @arg @ref LL_APB1_GRP1_PERIPH_UART7 (*)
2020   *         @arg @ref LL_APB1_GRP1_PERIPH_UART8 (*)
2021   *
2022   *  (*)  : Not available for all stm32h5xxxx family lines.
2023   * @retval State of Periphs (1 or 0).
2024   */
LL_APB1_GRP1_IsEnabledClockSleep(uint32_t Periphs)2025 __STATIC_INLINE uint32_t LL_APB1_GRP1_IsEnabledClockSleep(uint32_t Periphs)
2026 {
2027   return ((READ_BIT(RCC->APB1LLPENR, Periphs) == Periphs) ? 1UL : 0UL);
2028 }
2029 
2030 /**
2031   * @brief  Disable APB1 peripheral clocks in Sleep mode
2032   * @rmtoll APB1LLPENR     TIM2LPEN        LL_APB1_GRP1_DisableClockSleep\n
2033   *         APB1LLPENR     TIM3LPEN        LL_APB1_GRP1_DisableClockSleep\n
2034   *         APB1LLPENR     TIM4LPEN        LL_APB1_GRP1_DisableClockSleep\n
2035   *         APB1LLPENR     TIM5LPEN        LL_APB1_GRP1_DisableClockSleep\n
2036   *         APB1LLPENR     TIM6LPEN        LL_APB1_GRP1_DisableClockSleep\n
2037   *         APB1LLPENR     TIM7LPEN        LL_APB1_GRP1_DisableClockSleep\n
2038   *         APB1LLPENR     WWDGLPEN        LL_APB1_GRP1_DisableClockSleep\n
2039   *         APB1LLPENR     SPI2LPEN        LL_APB1_GRP1_DisableClockSleep\n
2040   *         APB1LLPENR     SPI3LPEN        LL_APB1_GRP1_DisableClockSleep\n
2041   *         APB1LLPENR     USART2LPEN      LL_APB1_GRP1_DisableClockSleep\n
2042   *         APB1LLPENR     USART3LPEN      LL_APB1_GRP1_DisableClockSleep\n
2043   *         APB1LLPENR     UART4LPEN       LL_APB1_GRP1_DisableClockSleep\n
2044   *         APB1LLPENR     UART5LPEN       LL_APB1_GRP1_DisableClockSleep\n
2045   *         APB1LLPENR     I2C1LPEN        LL_APB1_GRP1_DisableClockSleep\n
2046   *         APB1LLPENR     I2C2LPEN        LL_APB1_GRP1_DisableClockSleep\n
2047   *         APB1LLPENR     I3C1LPEN        LL_APB1_GRP1_DisableClockSleep\n
2048   *         APB1LLPENR     CRSLPEN         LL_APB1_GRP1_DisableClockSleep\n
2049   *         APB1LLPENR     USART6LPEN      LL_APB1_GRP1_DisableClockSleep\n
2050   *         APB1LLPENR     USART10LPEN     LL_APB1_GRP1_DisableClockSleep\n
2051   *         APB1LLPENR     USART11LPEN     LL_APB1_GRP1_DisableClockSleep\n
2052   *         APB1LLPENR     CECLPEN         LL_APB1_GRP1_DisableClockSleep\n
2053   *         APB1LLPENR     UART7LPEN       LL_APB1_GRP1_DisableClockSleep\n
2054   *         APB1LLPENR     UART8LPEN       LL_APB1_GRP1_DisableClockSleep
2055   * @param  Periphs This parameter can be a combination of the following values:
2056   *         @arg @ref LL_APB1_GRP1_PERIPH_ALL
2057   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM2
2058   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM3
2059   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM4 (*)
2060   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM5 (*)
2061   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM6
2062   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM7
2063   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM12 (*)
2064   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM13 (*)
2065   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM14 (*)
2066   *         @arg @ref LL_APB1_GRP1_PERIPH_WWDG
2067   *         @arg @ref LL_APB1_GRP1_PERIPH_SPI2
2068   *         @arg @ref LL_APB1_GRP1_PERIPH_SPI3
2069   *         @arg @ref LL_APB1_GRP1_PERIPH_OPAMP (*)
2070   *         @arg @ref LL_APB1_GRP1_PERIPH_COMP  (*)
2071   *         @arg @ref LL_APB1_GRP1_PERIPH_USART2
2072   *         @arg @ref LL_APB1_GRP1_PERIPH_USART3
2073   *         @arg @ref LL_APB1_GRP1_PERIPH_UART4 (*)
2074   *         @arg @ref LL_APB1_GRP1_PERIPH_UART5 (*)
2075   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C1
2076   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C2
2077   *         @arg @ref LL_APB1_GRP1_PERIPH_I3C1
2078   *         @arg @ref LL_APB1_GRP1_PERIPH_CRS
2079   *         @arg @ref LL_APB1_GRP1_PERIPH_USART6 (*)
2080   *         @arg @ref LL_APB1_GRP1_PERIPH_USART10 (*)
2081   *         @arg @ref LL_APB1_GRP1_PERIPH_USART11 (*)
2082   *         @arg @ref LL_APB1_GRP1_PERIPH_CEC (*)
2083   *         @arg @ref LL_APB1_GRP1_PERIPH_UART7 (*)
2084   *         @arg @ref LL_APB1_GRP1_PERIPH_UART8 (*)
2085   *
2086   *  (*)  : Not available for all stm32h5xxxx family lines.
2087   * @retval None
2088   */
LL_APB1_GRP1_DisableClockSleep(uint32_t Periphs)2089 __STATIC_INLINE void LL_APB1_GRP1_DisableClockSleep(uint32_t Periphs)
2090 {
2091   CLEAR_BIT(RCC->APB1LLPENR, Periphs);
2092 }
2093 
2094 /**
2095   * @brief  Enable APB1 peripheral clocks in Sleep mode
2096   * @rmtoll APB1HLPENR     UART9LPEN       LL_APB1_GRP2_EnableClockSleep\n
2097   *         APB1HLPENR     UART12LPEN      LL_APB1_GRP2_EnableClockSleep\n
2098   *         APB1HLPENR     DTSLPEN         LL_APB1_GRP2_EnableClockSleep\n
2099   *         APB1HLPENR     LPTIM2LPEN      LL_APB1_GRP2_EnableClockSleep\n
2100   *         APB1HLPENR     FDCAN12LPEN     LL_APB1_GRP2_EnableClockSleep\n
2101   *         APB1HLPENR     FDCAN1LPEN      LL_APB1_GRP2_EnableClockSleep\n
2102   *         APB1HLPENR     UCPD1LPEN       LL_APB1_GRP2_EnableClockSleep
2103   * @param  Periphs This parameter can be a combination of the following values:
2104   *         @arg @ref LL_APB1_GRP2_PERIPH_ALL
2105   *         @arg @ref LL_APB1_GRP2_PERIPH_UART9 (*)
2106   *         @arg @ref LL_APB1_GRP2_PERIPH_UART12 (*)
2107   *         @arg @ref LL_APB1_GRP2_PERIPH_DTS
2108   *         @arg @ref LL_APB1_GRP2_PERIPH_LPTIM2
2109   *         @arg @ref LL_APB1_GRP2_PERIPH_FDCAN
2110   *         @arg @ref LL_APB1_GRP2_PERIPH_UCPD1
2111   *
2112   *  (*)  : Not available for all stm32h5xxxx family lines.
2113   * @retval None
2114   */
LL_APB1_GRP2_EnableClockSleep(uint32_t Periphs)2115 __STATIC_INLINE void LL_APB1_GRP2_EnableClockSleep(uint32_t Periphs)
2116 {
2117   __IO uint32_t tmpreg;
2118   SET_BIT(RCC->APB1HLPENR, Periphs);
2119   /* Delay after an RCC peripheral clock enabling */
2120   tmpreg = READ_BIT(RCC->APB1HLPENR, Periphs);
2121   (void)tmpreg;
2122 }
2123 
2124 /**
2125   * @brief  Check if APB1 peripheral clocks in Sleep mode is enabled or not
2126   * @rmtoll APB1HLPENR     UART9LPEN       LL_APB1_GRP2_IsEnabledClockSleep\n
2127   *         APB1HLPENR     UART12LPEN      LL_APB1_GRP2_IsEnabledClockSleep\n
2128   *         APB1HLPENR     DTSLPEN         LL_APB1_GRP2_IsEnabledClockSleep\n
2129   *         APB1HLPENR     LPTIM2LPEN      LL_APB1_GRP2_IsEnabledClockSleep\n
2130   *         APB1HLPENR     FDCAN12LPEN     LL_APB1_GRP2_IsEnabledClockSleep\n
2131   *         APB1HLPENR     FDCAN1LPEN      LL_APB1_GRP2_IsEnabledClockSleep\n
2132   *         APB1HLPENR     UCPD1LPEN       LL_APB1_GRP2_IsEnabledClockSleep
2133   * @param  Periphs This parameter can be a combination of the following values:
2134   *         @arg @ref LL_APB1_GRP2_PERIPH_ALL
2135   *         @arg @ref LL_APB1_GRP2_PERIPH_UART9 (*)
2136   *         @arg @ref LL_APB1_GRP2_PERIPH_UART12 (*)
2137   *         @arg @ref LL_APB1_GRP2_PERIPH_DTS
2138   *         @arg @ref LL_APB1_GRP2_PERIPH_LPTIM2
2139   *         @arg @ref LL_APB1_GRP2_PERIPH_FDCAN
2140   *         @arg @ref LL_APB1_GRP2_PERIPH_UCPD1
2141   *
2142   *  (*)  : Not available for all stm32h5xxxx family lines.
2143   * @retval State of Periphs (1 or 0).
2144   */
LL_APB1_GRP2_IsEnabledClockSleep(uint32_t Periphs)2145 __STATIC_INLINE uint32_t LL_APB1_GRP2_IsEnabledClockSleep(uint32_t Periphs)
2146 {
2147   return ((READ_BIT(RCC->APB1HLPENR, Periphs) == Periphs) ? 1UL : 0UL);
2148 }
2149 
2150 /**
2151   * @brief  Disable APB1 peripheral clocks in Sleep mode
2152   * @rmtoll APB1HLPENR     UART9LPEN       LL_APB1_GRP2_DisableClockSleep\n
2153   *         APB1HLPENR     UART12LPEN      LL_APB1_GRP2_DisableClockSleep\n
2154   *         APB1HLPENR     DTSLPEN         LL_APB1_GRP2_DisableClockSleep\n
2155   *         APB1HLPENR     LPTIM2LPEN      LL_APB1_GRP2_DisableClockSleep\n
2156   *         APB1HLPENR     FDCAN12LPEN     LL_APB1_GRP2_DisableClockSleep\n
2157   *         APB1HLPENR     FDCAN1LPEN      LL_APB1_GRP2_DisableClockSleep\n
2158   *         APB1HLPENR     UCPD1LPEN       LL_APB1_GRP2_DisableClockSleep
2159   * @param  Periphs This parameter can be a combination of the following values:
2160   *         @arg @ref LL_APB1_GRP2_PERIPH_ALL
2161   *         @arg @ref LL_APB1_GRP2_PERIPH_UART9 (*)
2162   *         @arg @ref LL_APB1_GRP2_PERIPH_UART12 (*)
2163   *         @arg @ref LL_APB1_GRP2_PERIPH_DTS
2164   *         @arg @ref LL_APB1_GRP2_PERIPH_LPTIM2
2165   *         @arg @ref LL_APB1_GRP2_PERIPH_FDCAN
2166   *         @arg @ref LL_APB1_GRP2_PERIPH_UCPD1
2167   *
2168   *  (*)  : Not available for all stm32h5xxxx family lines.
2169   * @retval None
2170   */
LL_APB1_GRP2_DisableClockSleep(uint32_t Periphs)2171 __STATIC_INLINE void LL_APB1_GRP2_DisableClockSleep(uint32_t Periphs)
2172 {
2173   CLEAR_BIT(RCC->APB1HLPENR, Periphs);
2174 }
2175 
2176 /**
2177   * @}
2178   */
2179 
2180 /** @defgroup BUS_LL_EF_APB2 APB2 Peripherals
2181   * @{
2182   */
2183 
2184 /**
2185   * @brief  Enable APB2 peripherals clock.
2186   * @rmtoll APB2ENR      TIM1EN        LL_APB2_GRP1_EnableClock\n
2187   *         APB2ENR      SPI1EN        LL_APB2_GRP1_EnableClock\n
2188   *         APB2ENR      TIM8EN        LL_APB2_GRP1_EnableClock\n
2189   *         APB2ENR      USART1EN      LL_APB2_GRP1_EnableClock\n
2190   *         APB2ENR      TIM15EN       LL_APB2_GRP1_EnableClock\n
2191   *         APB2ENR      TIM16EN       LL_APB2_GRP1_EnableClock\n
2192   *         APB2ENR      TIM17EN       LL_APB2_GRP1_EnableClock\n
2193   *         APB2ENR      SPI4EN        LL_APB2_GRP1_EnableClock\n
2194   *         APB2ENR      SPI6EN        LL_APB2_GRP1_EnableClock\n
2195   *         APB2ENR      SAI1EN        LL_APB2_GRP1_EnableClock\n
2196   *         APB2ENR      SAI2EN        LL_APB2_GRP1_EnableClock\n
2197   *         APB2ENR      USBEN         LL_APB2_GRP1_EnableClock
2198   * @param  Periphs This parameter can be a combination of the following values:
2199   *         @arg @ref LL_APB2_GRP1_PERIPH_ALL
2200   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM1
2201   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI1
2202   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM8 (*)
2203   *         @arg @ref LL_APB2_GRP1_PERIPH_USART1
2204   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM15 (*)
2205   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM16 (*)
2206   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM17 (*)
2207   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI4 (*)
2208   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI6 (*)
2209   *         @arg @ref LL_APB2_GRP1_PERIPH_SAI1 (*)
2210   *         @arg @ref LL_APB2_GRP1_PERIPH_SAI2 (*)
2211   *         @arg @ref LL_APB2_GRP1_PERIPH_USB
2212   *
2213   *  (*)  : Not available for all stm32h5xxxx family lines.
2214   * @retval None
2215   */
LL_APB2_GRP1_EnableClock(uint32_t Periphs)2216 __STATIC_INLINE void LL_APB2_GRP1_EnableClock(uint32_t Periphs)
2217 {
2218   __IO uint32_t tmpreg;
2219   SET_BIT(RCC->APB2ENR, Periphs);
2220   /* Delay after an RCC peripheral clock enabling */
2221   tmpreg = READ_BIT(RCC->APB2ENR, Periphs);
2222   (void)tmpreg;
2223 }
2224 
2225 /**
2226   * @brief  Check if APB2 peripheral clock is enabled or not
2227   * @rmtoll APB2ENR      TIM1EN        LL_APB2_GRP1_IsEnabledClock\n
2228   *         APB2ENR      SPI1EN        LL_APB2_GRP1_IsEnabledClock\n
2229   *         APB2ENR      TIM8EN        LL_APB2_GRP1_IsEnabledClock\n
2230   *         APB2ENR      USART1EN      LL_APB2_GRP1_IsEnabledClock\n
2231   *         APB2ENR      TIM15EN       LL_APB2_GRP1_IsEnabledClock\n
2232   *         APB2ENR      TIM16EN       LL_APB2_GRP1_IsEnabledClock\n
2233   *         APB2ENR      TIM17EN       LL_APB2_GRP1_IsEnabledClock\n
2234   *         APB2ENR      SPI4EN        LL_APB2_GRP1_IsEnabledClock\n
2235   *         APB2ENR      SPI6EN        LL_APB2_GRP1_IsEnabledClock\n
2236   *         APB2ENR      SAI1EN        LL_APB2_GRP1_IsEnabledClock\n
2237   *         APB2ENR      SAI2EN        LL_APB2_GRP1_IsEnabledClock\n
2238   *         APB2ENR      USBEN         LL_APB2_GRP1_IsEnabledClock
2239   * @param  Periphs This parameter can be a combination of the following values:
2240   *         @arg @ref LL_APB2_GRP1_PERIPH_ALL
2241   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM1
2242   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI1
2243   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM8 (*)
2244   *         @arg @ref LL_APB2_GRP1_PERIPH_USART1
2245   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM15 (*)
2246   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM16 (*)
2247   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM17 (*)
2248   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI4 (*)
2249   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI6 (*)
2250   *         @arg @ref LL_APB2_GRP1_PERIPH_SAI1 (*)
2251   *         @arg @ref LL_APB2_GRP1_PERIPH_SAI2 (*)
2252   *         @arg @ref LL_APB2_GRP1_PERIPH_USB
2253   *
2254   *  (*)  : Not available for all stm32h5xxxx family lines.
2255   * @retval State of Periphs (1 or 0).
2256   */
LL_APB2_GRP1_IsEnabledClock(uint32_t Periphs)2257 __STATIC_INLINE uint32_t LL_APB2_GRP1_IsEnabledClock(uint32_t Periphs)
2258 {
2259   return ((READ_BIT(RCC->APB2ENR, Periphs) == Periphs) ? 1UL : 0UL);
2260 }
2261 
2262 /**
2263   * @brief  Disable APB2 peripherals clock.
2264   * @rmtoll APB2ENR      TIM1EN        LL_APB2_GRP1_DisableClock\n
2265   *         APB2ENR      SPI1EN        LL_APB2_GRP1_DisableClock\n
2266   *         APB2ENR      TIM8EN        LL_APB2_GRP1_DisableClock\n
2267   *         APB2ENR      USART1EN      LL_APB2_GRP1_DisableClock\n
2268   *         APB2ENR      TIM15EN       LL_APB2_GRP1_DisableClock\n
2269   *         APB2ENR      TIM16EN       LL_APB2_GRP1_DisableClock\n
2270   *         APB2ENR      TIM17EN       LL_APB2_GRP1_DisableClock\n
2271   *         APB2ENR      SPI4EN        LL_APB2_GRP1_DisableClock\n
2272   *         APB2ENR      SPI6EN        LL_APB2_GRP1_DisableClock\n
2273   *         APB2ENR      SAI1EN        LL_APB2_GRP1_DisableClock\n
2274   *         APB2ENR      SAI2EN        LL_APB2_GRP1_DisableClock\n
2275   *         APB2ENR      USBEN         LL_APB2_GRP1_DisableClock
2276   * @param  Periphs This parameter can be a combination of the following values:
2277   *         @arg @ref LL_APB2_GRP1_PERIPH_ALL
2278   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM1
2279   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI1
2280   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM8 (*)
2281   *         @arg @ref LL_APB2_GRP1_PERIPH_USART1
2282   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM15 (*)
2283   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM16 (*)
2284   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM17 (*)
2285   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI4 (*)
2286   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI6 (*)
2287   *         @arg @ref LL_APB2_GRP1_PERIPH_SAI1 (*)
2288   *         @arg @ref LL_APB2_GRP1_PERIPH_SAI2 (*)
2289   *         @arg @ref LL_APB2_GRP1_PERIPH_USB
2290   *
2291   *  (*)  : Not available for all stm32h5xxxx family lines.
2292   * @retval None
2293   */
LL_APB2_GRP1_DisableClock(uint32_t Periphs)2294 __STATIC_INLINE void LL_APB2_GRP1_DisableClock(uint32_t Periphs)
2295 {
2296   CLEAR_BIT(RCC->APB2ENR, Periphs);
2297 }
2298 
2299 /**
2300   * @brief  Force APB2 peripherals reset.
2301   * @rmtoll APB2RSTR      TIM1RST        LL_APB2_GRP1_ForceReset\n
2302   *         APB2RSTR      SPI1RST        LL_APB2_GRP1_ForceReset\n
2303   *         APB2RSTR      TIM8RST        LL_APB2_GRP1_ForceReset\n
2304   *         APB2RSTR      USART1RST      LL_APB2_GRP1_ForceReset\n
2305   *         APB2RSTR      TIM15RST       LL_APB2_GRP1_ForceReset\n
2306   *         APB2RSTR      TIM16RST       LL_APB2_GRP1_ForceReset\n
2307   *         APB2RSTR      TIM17RST       LL_APB2_GRP1_ForceReset\n
2308   *         APB2RSTR      SPI4RST        LL_APB2_GRP1_ForceReset\n
2309   *         APB2RSTR      SPI6RST        LL_APB2_GRP1_ForceReset\n
2310   *         APB2RSTR      SAI1RST        LL_APB2_GRP1_ForceReset\n
2311   *         APB2RSTR      SAI2RST        LL_APB2_GRP1_ForceReset\n
2312   *         APB2RSTR      USBRST         LL_APB2_GRP1_ForceReset
2313   * @param  Periphs This parameter can be a combination of the following values:
2314   *         @arg @ref LL_APB2_GRP1_PERIPH_ALL
2315   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM1
2316   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI1
2317   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM8 (*)
2318   *         @arg @ref LL_APB2_GRP1_PERIPH_USART1
2319   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM15 (*)
2320   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM16 (*)
2321   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM17 (*)
2322   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI4 (*)
2323   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI6 (*)
2324   *         @arg @ref LL_APB2_GRP1_PERIPH_SAI1 (*)
2325   *         @arg @ref LL_APB2_GRP1_PERIPH_SAI2 (*)
2326   *         @arg @ref LL_APB2_GRP1_PERIPH_USB
2327   *
2328   *  (*)  : Not available for all stm32h5xxxx family lines.
2329   * @retval None
2330   */
LL_APB2_GRP1_ForceReset(uint32_t Periphs)2331 __STATIC_INLINE void LL_APB2_GRP1_ForceReset(uint32_t Periphs)
2332 {
2333   SET_BIT(RCC->APB2RSTR, Periphs);
2334 }
2335 
2336 /**
2337   * @brief  Release APB2 peripherals reset.
2338   * @rmtoll APB2RSTR      TIM1RST        LL_APB2_GRP1_ReleaseReset\n
2339   *         APB2RSTR      SPI1RST        LL_APB2_GRP1_ReleaseReset\n
2340   *         APB2RSTR      TIM8RST        LL_APB2_GRP1_ReleaseReset\n
2341   *         APB2RSTR      USART1RST      LL_APB2_GRP1_ReleaseReset\n
2342   *         APB2RSTR      TIM15RST       LL_APB2_GRP1_ReleaseReset\n
2343   *         APB2RSTR      TIM16RST       LL_APB2_GRP1_ReleaseReset\n
2344   *         APB2RSTR      TIM17RST       LL_APB2_GRP1_ReleaseReset\n
2345   *         APB2RSTR      SPI4RST        LL_APB2_GRP1_ReleaseReset\n
2346   *         APB2RSTR      SPI6RST        LL_APB2_GRP1_ReleaseReset\n
2347   *         APB2RSTR      SAI1RST        LL_APB2_GRP1_ReleaseReset\n
2348   *         APB2RSTR      SAI2RST        LL_APB2_GRP1_ReleaseReset\n
2349   *         APB2RSTR      USBRST         LL_APB2_GRP1_ReleaseReset
2350   * @param  Periphs This parameter can be a combination of the following values:
2351   *         @arg @ref LL_APB2_GRP1_PERIPH_ALL
2352   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM1
2353   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI1
2354   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM8
2355   *         @arg @ref LL_APB2_GRP1_PERIPH_USART1 (*)
2356   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM15 (*)
2357   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM16 (*)
2358   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM17 (*)
2359   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI4 (*)
2360   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI6 (*)
2361   *         @arg @ref LL_APB2_GRP1_PERIPH_SAI1 (*)
2362   *         @arg @ref LL_APB2_GRP1_PERIPH_SAI2 (*)
2363   *         @arg @ref LL_APB2_GRP1_PERIPH_USB
2364   *
2365   *  (*)  : Not available for all stm32h5xxxx family lines.
2366   * @retval None
2367   */
LL_APB2_GRP1_ReleaseReset(uint32_t Periphs)2368 __STATIC_INLINE void LL_APB2_GRP1_ReleaseReset(uint32_t Periphs)
2369 {
2370   CLEAR_BIT(RCC->APB2RSTR, Periphs);
2371 }
2372 
2373 /**
2374   * @brief  Enable APB2 peripheral clocks in Sleep mode
2375   * @rmtoll APB2LPENR     TIM1LPEN       LL_APB2_GRP1_EnableClockSleep\n
2376   *         APB2LPENR     SPI1LPEN       LL_APB2_GRP1_EnableClockSleep\n
2377   *         APB2LPENR     TIM8LPEN       LL_APB2_GRP1_EnableClockSleep\n
2378   *         APB2LPENR     USART1LPEN     LL_APB2_GRP1_EnableClockSleep\n
2379   *         APB2LPENR     TIM15LPEN      LL_APB2_GRP1_EnableClockSleep\n
2380   *         APB2LPENR     TIM16LPEN      LL_APB2_GRP1_EnableClockSleep\n
2381   *         APB2LPENR     TIM17LPEN      LL_APB2_GRP1_EnableClockSleep\n
2382   *         APB2LPENR     SPI4LPEN       LL_APB2_GRP1_EnableClockSleep\n
2383   *         APB2LPENR     SPI6LPEN       LL_APB2_GRP1_EnableClockSleep\n
2384   *         APB2LPENR     SAI1LPEN       LL_APB2_GRP1_EnableClockSleep\n
2385   *         APB2LPENR     SAI2LPEN       LL_APB2_GRP1_EnableClockSleep\n
2386   *         APB2LPENR     USBLPEN        LL_APB2_GRP1_EnableClockSleep
2387   * @param  Periphs This parameter can be a combination of the following values:
2388   *         @arg @ref LL_APB2_GRP1_PERIPH_ALL
2389   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM1
2390   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI1
2391   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM8 (*)
2392   *         @arg @ref LL_APB2_GRP1_PERIPH_USART1
2393   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM15 (*)
2394   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM16 (*)
2395   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM17 (*)
2396   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI4 (*)
2397   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI6 (*)
2398   *         @arg @ref LL_APB2_GRP1_PERIPH_SAI1 (*)
2399   *         @arg @ref LL_APB2_GRP1_PERIPH_SAI2 (*)
2400   *         @arg @ref LL_APB2_GRP1_PERIPH_USB
2401   *
2402   *  (*)  : Not available for all stm32h5xxxx family lines.
2403   * @retval None
2404   */
LL_APB2_GRP1_EnableClockSleep(uint32_t Periphs)2405 __STATIC_INLINE void LL_APB2_GRP1_EnableClockSleep(uint32_t Periphs)
2406 {
2407   __IO uint32_t tmpreg;
2408   SET_BIT(RCC->APB2LPENR, Periphs);
2409   /* Delay after an RCC peripheral clock enabling */
2410   tmpreg = READ_BIT(RCC->APB2LPENR, Periphs);
2411   (void)tmpreg;
2412 }
2413 
2414 
2415 /**
2416   * @brief  Check if APB2 peripheral clocks in Sleep and Stop modes is enabled or not
2417   * @rmtoll APB2LPENR     TIM1LPEN       LL_APB2_GRP1_IsEnabledClockSleep\n
2418   *         APB2LPENR     SPI1LPEN       LL_APB2_GRP1_IsEnabledClockSleep\n
2419   *         APB2LPENR     TIM8LPEN       LL_APB2_GRP1_IsEnabledClockSleep\n
2420   *         APB2LPENR     USART1LPEN     LL_APB2_GRP1_IsEnabledClockSleep\n
2421   *         APB2LPENR     TIM15LPEN      LL_APB2_GRP1_IsEnabledClockSleep\n
2422   *         APB2LPENR     TIM16LPEN      LL_APB2_GRP1_IsEnabledClockSleep\n
2423   *         APB2LPENR     TIM17LPEN      LL_APB2_GRP1_IsEnabledClockSleep\n
2424   *         APB2LPENR     SPI4LPEN       LL_APB2_GRP1_IsEnabledClockSleep\n
2425   *         APB2LPENR     SPI6LPEN       LL_APB2_GRP1_IsEnabledClockSleep\n
2426   *         APB2LPENR     SAI1LPEN       LL_APB2_GRP1_IsEnabledClockSleep\n
2427   *         APB2LPENR     SAI2LPEN       LL_APB2_GRP1_IsEnabledClockSleep\n
2428   *         APB2LPENR     USBLPEN        LL_APB2_GRP1_IsEnabledClockSleep
2429   * @param  Periphs This parameter can be a combination of the following values:
2430   *         @arg @ref LL_APB2_GRP1_PERIPH_ALL
2431   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM1
2432   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI1
2433   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM8 (*)
2434   *         @arg @ref LL_APB2_GRP1_PERIPH_USART1
2435   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM15 (*)
2436   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM16 (*)
2437   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM17 (*)
2438   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI4 (*)
2439   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI6 (*)
2440   *         @arg @ref LL_APB2_GRP1_PERIPH_SAI1 (*)
2441   *         @arg @ref LL_APB2_GRP1_PERIPH_SAI2 (*)
2442   *         @arg @ref LL_APB2_GRP1_PERIPH_USB
2443   *
2444   *  (*)  : Not available for all stm32h5xxxx family lines.
2445   * @retval State of Periphs (1 or 0).
2446   */
LL_APB2_GRP1_IsEnabledClockSleep(uint32_t Periphs)2447 __STATIC_INLINE uint32_t LL_APB2_GRP1_IsEnabledClockSleep(uint32_t Periphs)
2448 {
2449   return ((READ_BIT(RCC->APB2LPENR, Periphs) == Periphs) ? 1UL : 0UL);
2450 }
2451 
2452 /**
2453   * @brief  Disable APB2 peripheral clocks in Sleep mode
2454   * @rmtoll APB2LPENR     TIM1LPEN        LL_APB2_GRP1_DisableClockSleep\n
2455   *         APB2LPENR     SPI1LPEN        LL_APB2_GRP1_DisableClockSleep\n
2456   *         APB2LPENR     TIM8LPEN        LL_APB2_GRP1_DisableClockSleep\n
2457   *         APB2LPENR     USART1LPEN      LL_APB2_GRP1_DisableClockSleep\n
2458   *         APB2LPENR     TIM15LPEN       LL_APB2_GRP1_DisableClockSleep\n
2459   *         APB2LPENR     TIM16LPEN       LL_APB2_GRP1_DisableClockSleep\n
2460   *         APB2LPENR     TIM17LPEN       LL_APB2_GRP1_DisableClockSleep\n
2461   *         APB2LPENR     SPI4LPEN        LL_APB2_GRP1_DisableClockSleep\n
2462   *         APB2LPENR     SPI6LPEN        LL_APB2_GRP1_DisableClockSleep\n
2463   *         APB2LPENR     SAI1LPEN        LL_APB2_GRP1_DisableClockSleep\n
2464   *         APB2LPENR     SAI2LPEN        LL_APB2_GRP1_DisableClockSleep\n
2465   *         APB2LPENR     USBLPEN         LL_APB2_GRP1_DisableClockSleep
2466   * @param  Periphs This parameter can be a combination of the following values:
2467   *         @arg @ref LL_APB2_GRP1_PERIPH_ALL
2468   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM1
2469   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI1
2470   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM8 (*)
2471   *         @arg @ref LL_APB2_GRP1_PERIPH_USART1
2472   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM15 (*)
2473   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM16 (*)
2474   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM17 (*)
2475   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI4 (*)
2476   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI6 (*)
2477   *         @arg @ref LL_APB2_GRP1_PERIPH_SAI1 (*)
2478   *         @arg @ref LL_APB2_GRP1_PERIPH_SAI2 (*)
2479   *         @arg @ref LL_APB2_GRP1_PERIPH_USB
2480   *
2481   *  (*)  : Not available for all stm32h5xxxx family lines.
2482   * @retval None
2483   */
LL_APB2_GRP1_DisableClockSleep(uint32_t Periphs)2484 __STATIC_INLINE void LL_APB2_GRP1_DisableClockSleep(uint32_t Periphs)
2485 {
2486   CLEAR_BIT(RCC->APB2LPENR, Periphs);
2487 }
2488 
2489 /**
2490   * @}
2491   */
2492 
2493 
2494 /** @defgroup BUS_LL_EF_APB3 APB3 Peripherals
2495   */
2496 
2497 /**
2498   * @brief  Enable APB3 peripherals clock.
2499   * @rmtoll APB3ENR      SBSEN          LL_APB3_GRP1_EnableClock\n
2500   *         APB3ENR      SPI5EN         LL_APB3_GRP1_EnableClock\n
2501   *         APB3ENR      LPUART1EN      LL_APB3_GRP1_EnableClock\n
2502   *         APB3ENR      I2C3EN         LL_APB3_GRP1_EnableClock\n
2503   *         APB3ENR      I2C4EN         LL_APB3_GRP1_EnableClock\n
2504   *         APB3ENR      LPTIM1EN       LL_APB3_GRP1_EnableClock\n
2505   *         APB3ENR      LPTIM3EN       LL_APB3_GRP1_EnableClock\n
2506   *         APB3ENR      LPTIM4EN       LL_APB3_GRP1_EnableClock\n
2507   *         APB3ENR      LPTIM5EN       LL_APB3_GRP1_EnableClock\n
2508   *         APB3ENR      LPTIM6EN       LL_APB3_GRP1_EnableClock\n
2509   *         APB3ENR      VREFEN         LL_APB3_GRP1_EnableClock\n
2510   *         APB3ENR      RTCAPBEN       LL_APB3_GRP1_EnableClock
2511   * @param  Periphs This parameter can be a combination of the following values:
2512   *         @arg @ref LL_APB3_GRP1_PERIPH_ALL
2513   *         @arg @ref LL_APB3_GRP1_PERIPH_SBS
2514   *         @arg @ref LL_APB3_GRP1_PERIPH_SPI5 (*)
2515   *         @arg @ref LL_APB3_GRP1_PERIPH_LPUART1
2516   *         @arg @ref LL_APB3_GRP1_PERIPH_I2C3 (*)
2517   *         @arg @ref LL_APB3_GRP1_PERIPH_I2C4 (*)
2518   *         @arg @ref LL_APB3_GRP1_PERIPH_LPTIM1
2519   *         @arg @ref LL_APB3_GRP1_PERIPH_LPTIM3 (*)
2520   *         @arg @ref LL_APB3_GRP1_PERIPH_LPTIM4 (*)
2521   *         @arg @ref LL_APB3_GRP1_PERIPH_LPTIM5 (*)
2522   *         @arg @ref LL_APB3_GRP1_PERIPH_LPTIM6 (*)
2523   *         @arg @ref LL_APB3_GRP1_PERIPH_VREF
2524   *         @arg @ref LL_APB3_GRP1_PERIPH_RTCAPB
2525   *
2526   *  (*)  : Not available for all stm32h5xxxx family lines.
2527   * @retval None
2528   */
LL_APB3_GRP1_EnableClock(uint32_t Periphs)2529 __STATIC_INLINE void LL_APB3_GRP1_EnableClock(uint32_t Periphs)
2530 {
2531   __IO uint32_t tmpreg;
2532   SET_BIT(RCC->APB3ENR, Periphs);
2533   /* Delay after an RCC peripheral clock enabling */
2534   tmpreg = READ_BIT(RCC->APB3ENR, Periphs);
2535   (void)tmpreg;
2536 }
2537 
2538 /**
2539   * @brief  Check if APB3 peripheral clock is enabled or not
2540   * @rmtoll APB3ENR      SBSEN          LL_APB3_GRP1_IsEnabledClock\n
2541   *         APB3ENR      SPI5EN         LL_APB3_GRP1_IsEnabledClock\n
2542   *         APB3ENR      LPUART1EN      LL_APB3_GRP1_IsEnabledClock\n
2543   *         APB3ENR      I2C3EN         LL_APB3_GRP1_IsEnabledClock\n
2544   *         APB3ENR      I2C4EN         LL_APB3_GRP1_IsEnabledClock\n
2545   *         APB3ENR      LPTIM1EN       LL_APB3_GRP1_IsEnabledClock\n
2546   *         APB3ENR      LPTIM3EN       LL_APB3_GRP1_IsEnabledClock\n
2547   *         APB3ENR      LPTIM4EN       LL_APB3_GRP1_IsEnabledClock\n
2548   *         APB3ENR      LPTIM5EN       LL_APB3_GRP1_IsEnabledClock\n
2549   *         APB3ENR      LPTIM6EN       LL_APB3_GRP1_IsEnabledClock\n
2550   *         APB3ENR      VREFEN         LL_APB3_GRP1_IsEnabledClock\n
2551   *         APB3ENR      RTCAPBEN       LL_APB3_GRP1_IsEnabledClock
2552   * @param  Periphs This parameter can be a combination of the following values:
2553   *         @arg @ref LL_APB3_GRP1_PERIPH_ALL
2554   *         @arg @ref LL_APB3_GRP1_PERIPH_SBS
2555   *         @arg @ref LL_APB3_GRP1_PERIPH_SPI5 (*)
2556   *         @arg @ref LL_APB3_GRP1_PERIPH_LPUART1
2557   *         @arg @ref LL_APB3_GRP1_PERIPH_I2C3 (*)
2558   *         @arg @ref LL_APB3_GRP1_PERIPH_I2C4 (*)
2559   *         @arg @ref LL_APB3_GRP1_PERIPH_LPTIM1
2560   *         @arg @ref LL_APB3_GRP1_PERIPH_LPTIM3 (*)
2561   *         @arg @ref LL_APB3_GRP1_PERIPH_LPTIM4 (*)
2562   *         @arg @ref LL_APB3_GRP1_PERIPH_LPTIM5 (*)
2563   *         @arg @ref LL_APB3_GRP1_PERIPH_LPTIM6 (*)
2564   *         @arg @ref LL_APB3_GRP1_PERIPH_VREF
2565   *         @arg @ref LL_APB3_GRP1_PERIPH_RTCAPB
2566   *
2567   *  (*)  : Not available for all stm32h5xxxx family lines.
2568   * @retval State of Periphs (1 or 0).
2569   */
LL_APB3_GRP1_IsEnabledClock(uint32_t Periphs)2570 __STATIC_INLINE uint32_t LL_APB3_GRP1_IsEnabledClock(uint32_t Periphs)
2571 {
2572   return ((READ_BIT(RCC->APB3ENR, Periphs) == Periphs) ? 1UL : 0UL);
2573 }
2574 
2575 /**
2576   * @brief  Disable APB2 peripherals clock.
2577   * @rmtoll APB3ENR      SBSEN          LL_APB3_GRP1_DisableClock\n
2578   *         APB3ENR      SPI5EN         LL_APB3_GRP1_DisableClock\n
2579   *         APB3ENR      LPUART1EN      LL_APB3_GRP1_DisableClock\n
2580   *         APB3ENR      I2C3EN         LL_APB3_GRP1_DisableClock\n
2581   *         APB3ENR      I2C4EN         LL_APB3_GRP1_DisableClock\n
2582   *         APB3ENR      LPTIM1EN       LL_APB3_GRP1_DisableClock\n
2583   *         APB3ENR      LPTIM3EN       LL_APB3_GRP1_DisableClock\n
2584   *         APB3ENR      LPTIM4EN       LL_APB3_GRP1_DisableClock\n
2585   *         APB3ENR      LPTIM5EN       LL_APB3_GRP1_DisableClock\n
2586   *         APB3ENR      LPTIM6EN       LL_APB3_GRP1_DisableClock\n
2587   *         APB3ENR      VREFEN         LL_APB3_GRP1_DisableClock\n
2588   *         APB3ENR      RTCAPBEN       LL_APB3_GRP1_DisableClock
2589   * @param  Periphs This parameter can be a combination of the following values:
2590   *         @arg @ref LL_APB3_GRP1_PERIPH_ALL
2591   *         @arg @ref LL_APB3_GRP1_PERIPH_SBS
2592   *         @arg @ref LL_APB3_GRP1_PERIPH_SPI5 (*)
2593   *         @arg @ref LL_APB3_GRP1_PERIPH_LPUART1
2594   *         @arg @ref LL_APB3_GRP1_PERIPH_I2C3 (*)
2595   *         @arg @ref LL_APB3_GRP1_PERIPH_I2C4 (*)
2596   *         @arg @ref LL_APB3_GRP1_PERIPH_LPTIM1
2597   *         @arg @ref LL_APB3_GRP1_PERIPH_LPTIM3 (*)
2598   *         @arg @ref LL_APB3_GRP1_PERIPH_LPTIM4 (*)
2599   *         @arg @ref LL_APB3_GRP1_PERIPH_LPTIM5 (*)
2600   *         @arg @ref LL_APB3_GRP1_PERIPH_LPTIM6 (*)
2601   *         @arg @ref LL_APB3_GRP1_PERIPH_VREF
2602   *         @arg @ref LL_APB3_GRP1_PERIPH_RTCAPB
2603   *
2604   *  (*)  : Not available for all stm32h5xxxx family lines.
2605   * @retval None
2606   */
LL_APB3_GRP1_DisableClock(uint32_t Periphs)2607 __STATIC_INLINE void LL_APB3_GRP1_DisableClock(uint32_t Periphs)
2608 {
2609   CLEAR_BIT(RCC->APB3ENR, Periphs);
2610 }
2611 
2612 /**
2613   * @brief  Force APB3 peripherals reset.
2614   * @rmtoll APB3RSTR      SPI5RST        LL_APB3_GRP1_ForceReset\n
2615   *         APB3RSTR      LPUART1RST     LL_APB3_GRP1_ForceReset\n
2616   *         APB3RSTR      I2C3RST        LL_APB3_GRP1_ForceReset\n
2617   *         APB3RSTR      I2C4RST        LL_APB3_GRP1_ForceReset\n
2618   *         APB3RSTR      LPTIM1RST      LL_APB3_GRP1_ForceReset\n
2619   *         APB3RSTR      LPTIM3RST      LL_APB3_GRP1_ForceReset\n
2620   *         APB3RSTR      LPTIM4RST      LL_APB3_GRP1_ForceReset\n
2621   *         APB3RSTR      LPTIM5RST      LL_APB3_GRP1_ForceReset\n
2622   *         APB3RSTR      LPTIM6RST      LL_APB3_GRP1_ForceReset\n
2623   *         APB3RSTR      VREFRST        LL_APB3_GRP1_ForceReset
2624   * @param  Periphs This parameter can be a combination of the following values:
2625   *         @arg @ref LL_APB3_GRP1_PERIPH_ALL
2626   *         @arg @ref LL_APB3_GRP1_PERIPH_SBS
2627   *         @arg @ref LL_APB3_GRP1_PERIPH_SPI5 (*)
2628   *         @arg @ref LL_APB3_GRP1_PERIPH_LPUART1
2629   *         @arg @ref LL_APB3_GRP1_PERIPH_I2C3 (*)
2630   *         @arg @ref LL_APB3_GRP1_PERIPH_I2C4 (*)
2631   *         @arg @ref LL_APB3_GRP1_PERIPH_LPTIM1
2632   *         @arg @ref LL_APB3_GRP1_PERIPH_LPTIM3 (*)
2633   *         @arg @ref LL_APB3_GRP1_PERIPH_LPTIM4 (*)
2634   *         @arg @ref LL_APB3_GRP1_PERIPH_LPTIM5 (*)
2635   *         @arg @ref LL_APB3_GRP1_PERIPH_LPTIM6 (*)
2636   *         @arg @ref LL_APB3_GRP1_PERIPH_VREF
2637   *
2638   *  (*)  : Not available for all stm32h5xxxx family lines.
2639   * @retval None
2640   */
LL_APB3_GRP1_ForceReset(uint32_t Periphs)2641 __STATIC_INLINE void LL_APB3_GRP1_ForceReset(uint32_t Periphs)
2642 {
2643   SET_BIT(RCC->APB3RSTR, Periphs);
2644 }
2645 
2646 /**
2647   * @brief  Release APB3 peripherals reset.
2648   * @rmtoll APB3RSTR      SPI5RST        LL_APB3_GRP1_ReleaseReset\n
2649   *         APB3RSTR      LPUART1RST     LL_APB3_GRP1_ReleaseReset\n
2650   *         APB3RSTR      I2C3RST        LL_APB3_GRP1_ReleaseReset\n
2651   *         APB3RSTR      I2C4RST        LL_APB3_GRP1_ReleaseReset\n
2652   *         APB3RSTR      LPTIM1RST      LL_APB3_GRP1_ReleaseReset\n
2653   *         APB3RSTR      LPTIM3RST      LL_APB3_GRP1_ReleaseReset\n
2654   *         APB3RSTR      LPTIM4RST      LL_APB3_GRP1_ReleaseReset\n
2655   *         APB3RSTR      LPTIM5RST      LL_APB3_GRP1_ReleaseReset\n
2656   *         APB3RSTR      LPTIM6RST      LL_APB3_GRP1_ReleaseReset\n
2657   *         APB3RSTR      VREFRST        LL_APB3_GRP1_ReleaseReset
2658   * @param  Periphs This parameter can be a combination of the following values:
2659   *         @arg @ref LL_APB3_GRP1_PERIPH_ALL
2660   *         @arg @ref LL_APB3_GRP1_PERIPH_SBS
2661   *         @arg @ref LL_APB3_GRP1_PERIPH_SPI5 (*)
2662   *         @arg @ref LL_APB3_GRP1_PERIPH_LPUART1
2663   *         @arg @ref LL_APB3_GRP1_PERIPH_I2C3 (*)
2664   *         @arg @ref LL_APB3_GRP1_PERIPH_I2C4 (*)
2665   *         @arg @ref LL_APB3_GRP1_PERIPH_LPTIM1
2666   *         @arg @ref LL_APB3_GRP1_PERIPH_LPTIM3 (*)
2667   *         @arg @ref LL_APB3_GRP1_PERIPH_LPTIM4 (*)
2668   *         @arg @ref LL_APB3_GRP1_PERIPH_LPTIM5 (*)
2669   *         @arg @ref LL_APB3_GRP1_PERIPH_LPTIM6 (*)
2670   *         @arg @ref LL_APB3_GRP1_PERIPH_VREF
2671   *
2672   *  (*)  : Not available for all stm32h5xxxx family lines.
2673   * @retval None
2674   */
LL_APB3_GRP1_ReleaseReset(uint32_t Periphs)2675 __STATIC_INLINE void LL_APB3_GRP1_ReleaseReset(uint32_t Periphs)
2676 {
2677   CLEAR_BIT(RCC->APB3RSTR, Periphs);
2678 }
2679 
2680 /**
2681   * @brief  Enable APB3 peripheral clocks in Sleep mode
2682   * @rmtoll APB3LPENR      SBSLPEN       LL_APB3_GRP1_EnableClockSleep\n
2683   *         APB3LPENR      SPI5LPEN      LL_APB3_GRP1_EnableClockSleep\n
2684   *         APB3LPENR      LPUART1LPEN   LL_APB3_GRP1_EnableClockSleep\n
2685   *         APB3LPENR      I2C3LPEN      LL_APB3_GRP1_EnableClockSleep\n
2686   *         APB3LPENR      I2C4LPEN      LL_APB3_GRP1_EnableClockSleep\n
2687   *         APB3LPENR      LPTIM1LPEN    LL_APB3_GRP1_EnableClockSleep\n
2688   *         APB3LPENR      LPTIM3LPEN    LL_APB3_GRP1_EnableClockSleep\n
2689   *         APB3LPENR      LPTIM4LPEN    LL_APB3_GRP1_EnableClockSleep\n
2690   *         APB3LPENR      LPTIM5LPEN    LL_APB3_GRP1_EnableClockSleep\n
2691   *         APB3LPENR      LPTIM6LPEN    LL_APB3_GRP1_EnableClockSleep\n
2692   *         APB3LPENR      VREFLPEN      LL_APB3_GRP1_EnableClockSleep\n
2693   *         APB3LPENR      RTCAPBLPEN    LL_APB3_GRP1_EnableClockSleep
2694   * @param  Periphs This parameter can be a combination of the following values:
2695   *         @arg @ref LL_APB3_GRP1_PERIPH_ALL
2696   *         @arg @ref LL_APB3_GRP1_PERIPH_SBS
2697   *         @arg @ref LL_APB3_GRP1_PERIPH_SPI5 (*)
2698   *         @arg @ref LL_APB3_GRP1_PERIPH_LPUART1
2699   *         @arg @ref LL_APB3_GRP1_PERIPH_I2C3 (*)
2700   *         @arg @ref LL_APB3_GRP1_PERIPH_I2C4 (*)
2701   *         @arg @ref LL_APB3_GRP1_PERIPH_LPTIM1
2702   *         @arg @ref LL_APB3_GRP1_PERIPH_LPTIM3 (*)
2703   *         @arg @ref LL_APB3_GRP1_PERIPH_LPTIM4 (*)
2704   *         @arg @ref LL_APB3_GRP1_PERIPH_LPTIM5 (*)
2705   *         @arg @ref LL_APB3_GRP1_PERIPH_LPTIM6 (*)
2706   *         @arg @ref LL_APB3_GRP1_PERIPH_VREF
2707   *         @arg @ref LL_APB3_GRP1_PERIPH_RTCAPB
2708   *
2709   *  (*)  : Not available for all stm32h5xxxx family lines.
2710   * @retval None
2711   */
LL_APB3_GRP1_EnableClockSleep(uint32_t Periphs)2712 __STATIC_INLINE void LL_APB3_GRP1_EnableClockSleep(uint32_t Periphs)
2713 {
2714   __IO uint32_t tmpreg;
2715   SET_BIT(RCC->APB3LPENR, Periphs);
2716   /* Delay after an RCC peripheral clock enabling */
2717   tmpreg = READ_BIT(RCC->APB3LPENR, Periphs);
2718   (void)tmpreg;
2719 }
2720 
2721 
2722 /**
2723   * @brief  Check if APB3 peripheral clocks in Sleep mode is enabled or not
2724   * @rmtoll APB3LPENR      SBSLPEN       LL_APB3_GRP1_IsEnabledClockSleep\n
2725   *         APB3LPENR      SPI5LPEN      LL_APB3_GRP1_IsEnabledClockSleep\n
2726   *         APB3LPENR      LPUART1LPEN   LL_APB3_GRP1_IsEnabledClockSleep\n
2727   *         APB3LPENR      I2C3LPEN      LL_APB3_GRP1_IsEnabledClockSleep\n
2728   *         APB3LPENR      I2C4LPEN      LL_APB3_GRP1_IsEnabledClockSleep\n
2729   *         APB3LPENR      LPTIM1LPEN    LL_APB3_GRP1_IsEnabledClockSleep\n
2730   *         APB3LPENR      LPTIM3LPEN    LL_APB3_GRP1_IsEnabledClockSleep\n
2731   *         APB3LPENR      LPTIM4LPEN    LL_APB3_GRP1_IsEnabledClockSleep\n
2732   *         APB3LPENR      LPTIM5LPEN    LL_APB3_GRP1_IsEnabledClockSleep\n
2733   *         APB3LPENR      LPTIM6LPEN    LL_APB3_GRP1_IsEnabledClockSleep\n
2734   *         APB3LPENR      VREFLPEN      LL_APB3_GRP1_IsEnabledClockSleep\n
2735   *         APB3LPENR      RTCAPBLPEN    LL_APB3_GRP1_IsEnabledClockSleep
2736   * @param  Periphs This parameter can be a combination of the following values:
2737   *         @arg @ref LL_APB3_GRP1_PERIPH_ALL
2738   *         @arg @ref LL_APB3_GRP1_PERIPH_SBS
2739   *         @arg @ref LL_APB3_GRP1_PERIPH_SPI5 (*)
2740   *         @arg @ref LL_APB3_GRP1_PERIPH_LPUART1
2741   *         @arg @ref LL_APB3_GRP1_PERIPH_I2C3 (*)
2742   *         @arg @ref LL_APB3_GRP1_PERIPH_I2C4 (*)
2743   *         @arg @ref LL_APB3_GRP1_PERIPH_LPTIM1
2744   *         @arg @ref LL_APB3_GRP1_PERIPH_LPTIM3 (*)
2745   *         @arg @ref LL_APB3_GRP1_PERIPH_LPTIM4 (*)
2746   *         @arg @ref LL_APB3_GRP1_PERIPH_LPTIM5 (*)
2747   *         @arg @ref LL_APB3_GRP1_PERIPH_LPTIM6 (*)
2748   *         @arg @ref LL_APB3_GRP1_PERIPH_VREF
2749   *         @arg @ref LL_APB3_GRP1_PERIPH_RTCAPB
2750   *
2751   *  (*)  : Not available for all stm32h5xxxx family lines.
2752   * @retval State of Periphs (1 or 0).
2753   */
LL_APB3_GRP1_IsEnabledClockSleep(uint32_t Periphs)2754 __STATIC_INLINE uint32_t LL_APB3_GRP1_IsEnabledClockSleep(uint32_t Periphs)
2755 {
2756   return ((READ_BIT(RCC->APB3LPENR, Periphs) == Periphs) ? 1UL : 0UL);
2757 }
2758 
2759 /**
2760   * @brief  Disable APB3 peripheral clocks in Sleep mode
2761   * @rmtoll APB3LPENR      SBSLPEN        LL_APB3_GRP1_DisableClockSleep\n
2762   *         APB3LPENR      SPI5LPEN       LL_APB3_GRP1_DisableClockSleep\n
2763   *         APB3LPENR      LPUART1LPEN    LL_APB3_GRP1_DisableClockSleep\n
2764   *         APB3LPENR      I2C3LPEN       LL_APB3_GRP1_DisableClockSleep\n
2765   *         APB3LPENR      I2C4LPEN       LL_APB3_GRP1_DisableClockSleep\n
2766   *         APB3LPENR      LPTIM1LPEN     LL_APB3_GRP1_DisableClockSleep\n
2767   *         APB3LPENR      LPTIM3LPEN     LL_APB3_GRP1_DisableClockSleep\n
2768   *         APB3LPENR      LPTIM4LPEN     LL_APB3_GRP1_DisableClockSleep\n
2769   *         APB3LPENR      LPTIM5LPEN     LL_APB3_GRP1_DisableClockSleep\n
2770   *         APB3LPENR      LPTIM6LPEN     LL_APB3_GRP1_DisableClockSleep\n
2771   *         APB3LPENR      VREFLPEN       LL_APB3_GRP1_DisableClockSleep\n
2772   *         APB3LPENR      RTCAPBLPEN     LL_APB3_GRP1_DisableClockSleep
2773   * @param  Periphs This parameter can be a combination of the following values:
2774   *         @arg @ref LL_APB3_GRP1_PERIPH_ALL
2775   *         @arg @ref LL_APB3_GRP1_PERIPH_SBS
2776   *         @arg @ref LL_APB3_GRP1_PERIPH_SPI5 (*)
2777   *         @arg @ref LL_APB3_GRP1_PERIPH_LPUART1
2778   *         @arg @ref LL_APB3_GRP1_PERIPH_I2C3 (*)
2779   *         @arg @ref LL_APB3_GRP1_PERIPH_I2C4 (*)
2780   *         @arg @ref LL_APB3_GRP1_PERIPH_LPTIM1
2781   *         @arg @ref LL_APB3_GRP1_PERIPH_LPTIM3 (*)
2782   *         @arg @ref LL_APB3_GRP1_PERIPH_LPTIM4 (*)
2783   *         @arg @ref LL_APB3_GRP1_PERIPH_LPTIM5 (*)
2784   *         @arg @ref LL_APB3_GRP1_PERIPH_LPTIM6 (*)
2785   *         @arg @ref LL_APB3_GRP1_PERIPH_VREF
2786   *         @arg @ref LL_APB3_GRP1_PERIPH_RTCAPB
2787   *
2788   *  (*)  : Not available for all stm32h5xxxx family lines.
2789   * @retval None
2790   */
LL_APB3_GRP1_DisableClockSleep(uint32_t Periphs)2791 __STATIC_INLINE void LL_APB3_GRP1_DisableClockSleep(uint32_t Periphs)
2792 {
2793   CLEAR_BIT(RCC->APB3LPENR, Periphs);
2794 }
2795 
2796 /**
2797   * @}
2798   */
2799 
2800 /**
2801   * @}
2802   */
2803 #endif /* defined(RCC) */
2804 
2805 /**
2806   * @}
2807   */
2808 
2809 #ifdef __cplusplus
2810 }
2811 #endif
2812 
2813 #endif /* __STM32H5xx_LL_BUS_H */
2814