1 /**
2   ******************************************************************************
3   * @file    stm32n6xx_ll_bus.h
4   * @author  MCD Application Team
5   * @brief   Header file of BUS LL module.
6   ******************************************************************************
7   * @attention
8   *
9   * Copyright (c) 2023 STMicroelectronics.
10   * All rights reserved.
11   *
12   * This software is licensed under terms that can be found in the LICENSE file
13   * in the root directory of this software component.
14   * If no LICENSE file comes with this software, it is provided AS-IS.
15   *
16   ******************************************************************************
17   @verbatim
18                       ##### RCC Limitations #####
19   ==============================================================================
20     [..]
21       A delay between an RCC peripheral clock enable and the effective peripheral
22       enabling should be taken into account in order to manage the peripheral read/write
23       from/to registers.
24       (+) This delay depends on the peripheral mapping.
25         (++) AHB & APB peripherals, 1 dummy read is necessary
26 
27     [..]
28       Workarounds:
29       (#) For AHB & APB peripherals, a dummy read to the peripheral register has been
30           inserted in each LL_{BUS}_GRP{x}_EnableClock() function.
31 
32   @endverbatim
33   ******************************************************************************
34   */
35 
36 /* Define to prevent recursive inclusion -------------------------------------*/
37 #ifndef STM32N6xx_LL_BUS_H
38 #define STM32N6xx_LL_BUS_H
39 
40 #ifdef __cplusplus
41 extern "C" {
42 #endif
43 
44 /* Includes ------------------------------------------------------------------*/
45 #include "stm32n6xx.h"
46 
47 /** @addtogroup STM32N6xx_LL_Driver
48   * @{
49   */
50 #if defined(RCC)
51 
52 /** @defgroup BUS_LL BUS
53   * @{
54   */
55 
56 /* Private variables ---------------------------------------------------------*/
57 
58 /* Private constants ---------------------------------------------------------*/
59 
60 /* Private macros ------------------------------------------------------------*/
61 
62 /* Exported types ------------------------------------------------------------*/
63 
64 /* Exported constants --------------------------------------------------------*/
65 /** @defgroup BUS_LL_Exported_Constants BUS Exported Constants
66   * @{
67   */
68 
69 /** @defgroup BUS_LL_EC_AXI  AXI
70   * @{
71   */
72 #define LL_ACLKN                           RCC_BUSENR_ACLKNEN
73 #define LL_ACLKNC                          RCC_BUSENR_ACLKNCEN
74 #define LL_AHBM                            RCC_BUSENR_AHBMEN
75 #define LL_AHB1                            RCC_BUSENR_AHB1EN
76 #define LL_AHB2                            RCC_BUSENR_AHB2EN
77 #define LL_AHB3                            RCC_BUSENR_AHB3EN
78 #define LL_AHB4                            RCC_BUSENR_AHB4EN
79 #define LL_AHB5                            RCC_BUSENR_AHB5EN
80 #define LL_APB1                            RCC_BUSENR_APB1EN
81 #define LL_APB2                            RCC_BUSENR_APB2EN
82 #define LL_APB3                            RCC_BUSENR_APB3EN
83 #define LL_APB4                            RCC_BUSENR_APB4EN
84 #define LL_APB5                            RCC_BUSENR_APB5EN
85 /**
86   * @}
87   */
88 
89 /** @defgroup BUS_LL_EC_MEM  MEM
90   * @{
91   */
92 #define LL_MEM_AXISRAM1                    RCC_MEMENR_AXISRAM1EN
93 #define LL_MEM_AXISRAM2                    RCC_MEMENR_AXISRAM2EN
94 #define LL_MEM_AXISRAM3                    RCC_MEMENR_AXISRAM3EN
95 #define LL_MEM_AXISRAM4                    RCC_MEMENR_AXISRAM4EN
96 #define LL_MEM_AXISRAM5                    RCC_MEMENR_AXISRAM5EN
97 #define LL_MEM_AXISRAM6                    RCC_MEMENR_AXISRAM6EN
98 #define LL_MEM_AHBSRAM1                    RCC_MEMENR_AHBSRAM1EN
99 #define LL_MEM_AHBSRAM2                    RCC_MEMENR_AHBSRAM2EN
100 #define LL_MEM_BKPSRAM                     RCC_MEMENR_BKPSRAMEN
101 #define LL_MEM_FLEXRAM                     RCC_MEMENR_FLEXRAMEN
102 #define LL_MEM_CACHEAXIRAM                 RCC_MEMENR_CACHEAXIRAMEN
103 #define LL_MEM_VENCRAM                     RCC_MEMENR_VENCRAMEN
104 #define LL_MEM_BOOTROM                     RCC_MEMENR_BOOTROMEN
105 /**
106   * @}
107   */
108 
109 /** @defgroup BUS_LL_EC_AHB1_GRP1_PERIPH  AHB1 GRP1 PERIPH
110   * @{
111   */
112 #define LL_AHB1_GRP1_PERIPH_ADC12          RCC_AHB1ENR_ADC12EN
113 #define LL_AHB1_GRP1_PERIPH_GPDMA1         RCC_AHB1ENR_GPDMA1EN
114 #define LL_AHB1_GRP1_PERIPH_ALL            (LL_AHB1_GRP1_PERIPH_ADC12 | LL_AHB1_GRP1_PERIPH_GPDMA1)
115 /**
116   * @}
117   */
118 
119 /** @defgroup BUS_LL_EC_AHB2_GRP1_PERIPH  AHB2 GRP1 PERIPH
120   * @{
121   */
122 #define LL_AHB2_GRP1_PERIPH_ADF1           RCC_AHB2ENR_ADF1EN
123 #define LL_AHB2_GRP1_PERIPH_MDF1           RCC_AHB2ENR_MDF1EN
124 #define LL_AHB2_GRP1_PERIPH_RAMCFG         RCC_AHB2ENR_RAMCFGEN
125 #define LL_AHB2_GRP1_PERIPH_ALL            (LL_AHB2_GRP1_PERIPH_ADF1 | LL_AHB2_GRP1_PERIPH_MDF1 | \
126                                             LL_AHB2_GRP1_PERIPH_RAMCFG)
127 /**
128   * @}
129   */
130 
131 /** @defgroup BUS_LL_EC_AHB3_GRP1_PERIPH  AHB3 GRP1 PERIPH
132   * @{
133   */
134 #if defined(CRYP)
135 #define LL_AHB3_GRP1_PERIPH_CRYP           RCC_AHB3ENR_CRYPEN
136 #else
137 #define LL_AHB3_GRP1_PERIPH_CRYP
138 #endif /* CRYP */
139 #define LL_AHB3_GRP1_PERIPH_HASH           RCC_AHB3ENR_HASHEN
140 #define LL_AHB3_GRP1_PERIPH_IAC            RCC_AHB3ENR_IACEN
141 #if defined(PKA)
142 #define LL_AHB3_GRP1_PERIPH_PKA            RCC_AHB3ENR_PKAEN
143 #else
144 #define LL_AHB3_GRP1_PERIPH_PKA
145 #endif /* PKA */
146 #define LL_AHB3_GRP1_PERIPH_RIFSC          RCC_AHB3ENR_RIFSCEN
147 #define LL_AHB3_GRP1_PERIPH_RISAF          RCC_AHB3ENR_RISAFEN
148 #define LL_AHB3_GRP1_PERIPH_RNG            RCC_AHB3ENR_RNGEN
149 #if defined(SAES)
150 #define LL_AHB3_GRP1_PERIPH_SAES           RCC_AHB3ENR_SAESEN
151 #else
152 #define LL_AHB3_GRP1_PERIPH_SAES
153 #endif /* SAES */
154 #define LL_AHB3_GRP1_PERIPH_ALL            (LL_AHB3_GRP1_PERIPH_CRYP  | LL_AHB3_GRP1_PERIPH_HASH  | \
155                                             LL_AHB3_GRP1_PERIPH_IAC   | LL_AHB3_GRP1_PERIPH_PKA   | \
156                                             LL_AHB3_GRP1_PERIPH_RIFSC | LL_AHB3_GRP1_PERIPH_RISAF | \
157                                             LL_AHB3_GRP1_PERIPH_RNG   | LL_AHB3_GRP1_PERIPH_SAES)
158 /**
159   * @}
160   */
161 
162 /** @defgroup BUS_LL_EC_AHB4_GRP1_PERIPH  AHB4 GRP1 PERIPH
163   * @{
164   */
165 #define LL_AHB4_GRP1_PERIPH_CRC            RCC_AHB4ENR_CRCEN
166 #define LL_AHB4_GRP1_PERIPH_GPIOA          RCC_AHB4ENR_GPIOAEN
167 #define LL_AHB4_GRP1_PERIPH_GPIOB          RCC_AHB4ENR_GPIOBEN
168 #define LL_AHB4_GRP1_PERIPH_GPIOC          RCC_AHB4ENR_GPIOCEN
169 #define LL_AHB4_GRP1_PERIPH_GPIOD          RCC_AHB4ENR_GPIODEN
170 #define LL_AHB4_GRP1_PERIPH_GPIOE          RCC_AHB4ENR_GPIOEEN
171 #define LL_AHB4_GRP1_PERIPH_GPIOF          RCC_AHB4ENR_GPIOFEN
172 #define LL_AHB4_GRP1_PERIPH_GPIOG          RCC_AHB4ENR_GPIOGEN
173 #define LL_AHB4_GRP1_PERIPH_GPIOH          RCC_AHB4ENR_GPIOHEN
174 #define LL_AHB4_GRP1_PERIPH_GPION          RCC_AHB4ENR_GPIONEN
175 #define LL_AHB4_GRP1_PERIPH_GPIOO          RCC_AHB4ENR_GPIOOEN
176 #define LL_AHB4_GRP1_PERIPH_GPIOP          RCC_AHB4ENR_GPIOPEN
177 #define LL_AHB4_GRP1_PERIPH_GPIOQ          RCC_AHB4ENR_GPIOQEN
178 #define LL_AHB4_GRP1_PERIPH_PWR            RCC_AHB4ENR_PWREN
179 #define LL_AHB4_GRP1_PERIPH_ALL            (LL_AHB4_GRP1_PERIPH_CRC   | LL_AHB4_GRP1_PERIPH_GPIOA | \
180                                             LL_AHB4_GRP1_PERIPH_GPIOB | LL_AHB4_GRP1_PERIPH_GPIOC | \
181                                             LL_AHB4_GRP1_PERIPH_GPIOD | LL_AHB4_GRP1_PERIPH_GPIOE | \
182                                             LL_AHB4_GRP1_PERIPH_GPIOF | LL_AHB4_GRP1_PERIPH_GPIOG | \
183                                             LL_AHB4_GRP1_PERIPH_GPIOH | LL_AHB4_GRP1_PERIPH_GPION | \
184                                             LL_AHB4_GRP1_PERIPH_GPIOO | LL_AHB4_GRP1_PERIPH_GPIOP | \
185                                             LL_AHB4_GRP1_PERIPH_GPIOQ | LL_AHB4_GRP1_PERIPH_PWR)
186 /**
187   * @}
188   */
189 
190 /** @defgroup BUS_LL_EC_AHB5_GRP1_PERIPH  AHB5 GRP1 PERIPH
191   * @{
192   */
193 #define LL_AHB5_GRP1_PERIPH_DMA2D             RCC_AHB5ENR_DMA2DEN
194 #define LL_AHB5_GRP1_PERIPH_ETH1              RCC_AHB5ENR_ETH1EN
195 #define LL_AHB5_GRP1_PERIPH_ETH1MAC           RCC_AHB5ENR_ETH1MACEN
196 #define LL_AHB5_GRP1_PERIPH_ETH1TX            RCC_AHB5ENR_ETH1TXEN
197 #define LL_AHB5_GRP1_PERIPH_ETH1RX            RCC_AHB5ENR_ETH1RXEN
198 #define LL_AHB5_GRP1_PERIPH_FMC               RCC_AHB5ENR_FMCEN
199 #define LL_AHB5_GRP1_PERIPH_GFXMMU            RCC_AHB5ENR_GFXMMUEN
200 #define LL_AHB5_GRP1_PERIPH_GPU2D             RCC_AHB5ENR_GPU2DEN
201 #define LL_AHB5_GRP1_PERIPH_HPDMA1            RCC_AHB5ENR_HPDMA1EN
202 #define LL_AHB5_GRP1_PERIPH_XSPI1             RCC_AHB5ENR_XSPI1EN
203 #define LL_AHB5_GRP1_PERIPH_XSPI2             RCC_AHB5ENR_XSPI2EN
204 #define LL_AHB5_GRP1_PERIPH_XSPI3             RCC_AHB5ENR_XSPI3EN
205 #define LL_AHB5_GRP1_PERIPH_XSPIM             RCC_AHB5ENR_XSPIMEN
206 #define LL_AHB5_GRP1_PERIPH_JPEG              RCC_AHB5ENR_JPEGEN
207 #define LL_AHB5_GRP1_PERIPH_MCE1              RCC_AHB5ENR_MCE1EN
208 #define LL_AHB5_GRP1_PERIPH_MCE2              RCC_AHB5ENR_MCE2EN
209 #define LL_AHB5_GRP1_PERIPH_MCE3              RCC_AHB5ENR_MCE3EN
210 #define LL_AHB5_GRP1_PERIPH_MCE4              RCC_AHB5ENR_MCE4EN
211 #define LL_AHB5_GRP1_PERIPH_CACHEAXI          RCC_AHB5ENR_CACHEAXIEN
212 #define LL_AHB5_GRP1_PERIPH_NPU               RCC_AHB5ENR_NPUEN
213 #define LL_AHB5_GRP1_PERIPH_OTG1              RCC_AHB5ENR_OTG1EN
214 #define LL_AHB5_GRP1_PERIPH_OTG2              RCC_AHB5ENR_OTG2EN
215 #define LL_AHB5_GRP1_PERIPH_OTGPHY1           RCC_AHB5ENR_OTGPHY1EN
216 #define LL_AHB5_GRP1_PERIPH_OTGPHY2           RCC_AHB5ENR_OTGPHY2EN
217 #define LL_AHB5_GRP1_PERIPH_OTG1PHYCTL        RCC_AHB5RSTR_OTG1PHYCTLRST
218 #define LL_AHB5_GRP1_PERIPH_OTG2PHYCTL        RCC_AHB5RSTR_OTG2PHYCTLRST
219 #define LL_AHB5_GRP1_PERIPH_PSSI              RCC_AHB5ENR_PSSIEN
220 #define LL_AHB5_GRP1_PERIPH_SDMMC1            RCC_AHB5ENR_SDMMC1EN
221 #define LL_AHB5_GRP1_PERIPH_SDMMC2            RCC_AHB5ENR_SDMMC2EN
222 #define LL_AHB5_GRP1_PERIPH_ALL            (LL_AHB5_GRP1_PERIPH_DMA2D    | LL_AHB5_GRP1_PERIPH_ETH1    | \
223                                             LL_AHB5_GRP1_PERIPH_ETH1MAC  | LL_AHB5_GRP1_PERIPH_ETH1TX  | \
224                                             LL_AHB5_GRP1_PERIPH_ETH1RX   | LL_AHB5_GRP1_PERIPH_FMC     | \
225                                             LL_AHB5_GRP1_PERIPH_GFXMMU   | LL_AHB5_GRP1_PERIPH_GPU2D   | \
226                                             LL_AHB5_GRP1_PERIPH_HPDMA1   | LL_AHB5_GRP1_PERIPH_XSPI1   | \
227                                             LL_AHB5_GRP1_PERIPH_XSPI2    | LL_AHB5_GRP1_PERIPH_XSPI3   | \
228                                             LL_AHB5_GRP1_PERIPH_XSPIM    | LL_AHB5_GRP1_PERIPH_JPEG    | \
229                                             LL_AHB5_GRP1_PERIPH_MCE1     | LL_AHB5_GRP1_PERIPH_MCE2    | \
230                                             LL_AHB5_GRP1_PERIPH_MCE3     | LL_AHB5_GRP1_PERIPH_MCE4    | \
231                                             LL_AHB5_GRP1_PERIPH_CACHEAXI | LL_AHB5_GRP1_PERIPH_NPU     | \
232                                             LL_AHB5_GRP1_PERIPH_OTG1     | LL_AHB5_GRP1_PERIPH_OTG2    | \
233                                             LL_AHB5_GRP1_PERIPH_OTGPHY1  | LL_AHB5_GRP1_PERIPH_OTGPHY2 | \
234                                             LL_AHB5_GRP1_PERIPH_PSSI     | LL_AHB5_GRP1_PERIPH_SDMMC1  | \
235                                             LL_AHB5_GRP1_PERIPH_SDMMC2)
236 /**
237   * @}
238   */
239 
240 /** @defgroup BUS_LL_EC_APB1_GRP1_PERIPH  APB1 GRP1 PERIPH
241   * @{
242   */
243 #define LL_APB1_GRP1_PERIPH_I2C1           RCC_APB1ENR1_I2C1EN
244 #define LL_APB1_GRP1_PERIPH_I2C2           RCC_APB1ENR1_I2C2EN
245 #define LL_APB1_GRP1_PERIPH_I2C3           RCC_APB1ENR1_I2C3EN
246 #define LL_APB1_GRP1_PERIPH_I3C1           RCC_APB1ENR1_I3C1EN
247 #define LL_APB1_GRP1_PERIPH_I3C2           RCC_APB1ENR1_I3C2EN
248 #define LL_APB1_GRP1_PERIPH_LPTIM1         RCC_APB1ENR1_LPTIM1EN
249 #define LL_APB1_GRP1_PERIPH_SPDIFRX1       RCC_APB1ENR1_SPDIFRX1EN
250 #define LL_APB1_GRP1_PERIPH_SPI2           RCC_APB1ENR1_SPI2EN
251 #define LL_APB1_GRP1_PERIPH_SPI3           RCC_APB1ENR1_SPI3EN
252 #define LL_APB1_GRP1_PERIPH_TIM2           RCC_APB1ENR1_TIM2EN
253 #define LL_APB1_GRP1_PERIPH_TIM3           RCC_APB1ENR1_TIM3EN
254 #define LL_APB1_GRP1_PERIPH_TIM4           RCC_APB1ENR1_TIM4EN
255 #define LL_APB1_GRP1_PERIPH_TIM5           RCC_APB1ENR1_TIM5EN
256 #define LL_APB1_GRP1_PERIPH_TIM6           RCC_APB1ENR1_TIM6EN
257 #define LL_APB1_GRP1_PERIPH_TIM7           RCC_APB1ENR1_TIM7EN
258 #define LL_APB1_GRP1_PERIPH_TIM10          RCC_APB1ENR1_TIM10EN
259 #define LL_APB1_GRP1_PERIPH_TIM11          RCC_APB1ENR1_TIM11EN
260 #define LL_APB1_GRP1_PERIPH_TIM12          RCC_APB1ENR1_TIM12EN
261 #define LL_APB1_GRP1_PERIPH_TIM13          RCC_APB1ENR1_TIM13EN
262 #define LL_APB1_GRP1_PERIPH_TIM14          RCC_APB1ENR1_TIM14EN
263 #define LL_APB1_GRP1_PERIPH_USART2         RCC_APB1ENR1_USART2EN
264 #define LL_APB1_GRP1_PERIPH_USART3         RCC_APB1ENR1_USART3EN
265 #define LL_APB1_GRP1_PERIPH_UART4          RCC_APB1ENR1_UART4EN
266 #define LL_APB1_GRP1_PERIPH_UART5          RCC_APB1ENR1_UART5EN
267 #define LL_APB1_GRP1_PERIPH_UART7          RCC_APB1ENR1_UART7EN
268 #define LL_APB1_GRP1_PERIPH_UART8          RCC_APB1ENR1_UART8EN
269 #define LL_APB1_GRP1_PERIPH_WWDG           RCC_APB1ENR1_WWDGEN
270 #define LL_APB1_GRP1_PERIPH_ALL            (LL_APB1_GRP1_PERIPH_I2C1     | LL_APB1_GRP1_PERIPH_I2C2   | \
271                                             LL_APB1_GRP1_PERIPH_I2C3     | LL_APB1_GRP1_PERIPH_I3C1   | \
272                                             LL_APB1_GRP1_PERIPH_I3C2     | LL_APB1_GRP1_PERIPH_LPTIM1 | \
273                                             LL_APB1_GRP1_PERIPH_SPDIFRX1 | LL_APB1_GRP1_PERIPH_SPI2   | \
274                                             LL_APB1_GRP1_PERIPH_SPI3     | LL_APB1_GRP1_PERIPH_TIM2   | \
275                                             LL_APB1_GRP1_PERIPH_TIM3     | LL_APB1_GRP1_PERIPH_TIM4   | \
276                                             LL_APB1_GRP1_PERIPH_TIM5     | LL_APB1_GRP1_PERIPH_TIM6   | \
277                                             LL_APB1_GRP1_PERIPH_TIM7     | LL_APB1_GRP1_PERIPH_TIM10  | \
278                                             LL_APB1_GRP1_PERIPH_TIM11    | LL_APB1_GRP1_PERIPH_TIM12  | \
279                                             LL_APB1_GRP1_PERIPH_TIM13    | LL_APB1_GRP1_PERIPH_TIM14  | \
280                                             LL_APB1_GRP1_PERIPH_USART2   | LL_APB1_GRP1_PERIPH_USART3 | \
281                                             LL_APB1_GRP1_PERIPH_UART4    | LL_APB1_GRP1_PERIPH_UART5  | \
282                                             LL_APB1_GRP1_PERIPH_UART7    | LL_APB1_GRP1_PERIPH_UART8  | \
283                                             LL_APB1_GRP1_PERIPH_WWDG)
284 /**
285   * @}
286   */
287 
288 /** @defgroup BUS_LL_EC_APB1_GRP2_PERIPH  APB1 GRP2 PERIPH
289   * @{
290   */
291 #define LL_APB1_GRP2_PERIPH_FDCAN          RCC_APB1ENR2_FDCANEN
292 #define LL_APB1_GRP2_PERIPH_MDIOS          RCC_APB1ENR2_MDIOSEN
293 #define LL_APB1_GRP2_PERIPH_UCPD1          RCC_APB1ENR2_UCPD1EN
294 #define LL_APB1_GRP2_PERIPH_ALL            (LL_APB1_GRP2_PERIPH_FDCAN | LL_APB1_GRP2_PERIPH_MDIOS | \
295                                             LL_APB1_GRP2_PERIPH_UCPD1)
296 /**
297   * @}
298   */
299 
300 /** @defgroup BUS_LL_EC_APB2_GRP1_PERIPH  APB2 GRP1 PERIPH
301   * @{
302   */
303 #define LL_APB2_GRP1_PERIPH_SAI1           RCC_APB2ENR_SAI1EN
304 #define LL_APB2_GRP1_PERIPH_SAI2           RCC_APB2ENR_SAI2EN
305 #define LL_APB2_GRP1_PERIPH_SPI1           RCC_APB2ENR_SPI1EN
306 #define LL_APB2_GRP1_PERIPH_SPI4           RCC_APB2ENR_SPI4EN
307 #define LL_APB2_GRP1_PERIPH_SPI5           RCC_APB2ENR_SPI5EN
308 #define LL_APB2_GRP1_PERIPH_TIM1           RCC_APB2ENR_TIM1EN
309 #define LL_APB2_GRP1_PERIPH_TIM8           RCC_APB2ENR_TIM8EN
310 #define LL_APB2_GRP1_PERIPH_TIM9           RCC_APB2ENR_TIM9EN
311 #define LL_APB2_GRP1_PERIPH_TIM15          RCC_APB2ENR_TIM15EN
312 #define LL_APB2_GRP1_PERIPH_TIM16          RCC_APB2ENR_TIM16EN
313 #define LL_APB2_GRP1_PERIPH_TIM17          RCC_APB2ENR_TIM17EN
314 #define LL_APB2_GRP1_PERIPH_TIM18          RCC_APB2ENR_TIM18EN
315 #define LL_APB2_GRP1_PERIPH_USART1         RCC_APB2ENR_USART1EN
316 #define LL_APB2_GRP1_PERIPH_USART6         RCC_APB2ENR_USART6EN
317 #define LL_APB2_GRP1_PERIPH_UART9          RCC_APB2ENR_UART9EN
318 #define LL_APB2_GRP1_PERIPH_USART10        RCC_APB2ENR_USART10EN
319 #define LL_APB2_GRP1_PERIPH_ALL            (LL_APB2_GRP1_PERIPH_SAI1   | LL_APB2_GRP1_PERIPH_SAI2   | \
320                                             LL_APB2_GRP1_PERIPH_SPI1   | LL_APB2_GRP1_PERIPH_SPI4   | \
321                                             LL_APB2_GRP1_PERIPH_SPI5   | LL_APB2_GRP1_PERIPH_TIM1   | \
322                                             LL_APB2_GRP1_PERIPH_TIM8   | LL_APB2_GRP1_PERIPH_TIM9   | \
323                                             LL_APB2_GRP1_PERIPH_TIM15  | LL_APB2_GRP1_PERIPH_TIM16  | \
324                                             LL_APB2_GRP1_PERIPH_TIM17  | LL_APB2_GRP1_PERIPH_TIM18  | \
325                                             LL_APB2_GRP1_PERIPH_USART1 | LL_APB2_GRP1_PERIPH_USART6 | \
326                                             LL_APB2_GRP1_PERIPH_UART9  | LL_APB2_GRP1_PERIPH_USART10)
327 /**
328   * @}
329   */
330 
331 /** @defgroup BUS_LL_EC_APB4_GRP1_PERIPH  APB4 GRP1 PERIPH
332   * @{
333   */
334 #define LL_APB4_GRP1_PERIPH_HDP            RCC_APB4ENR1_HDPEN
335 #define LL_APB4_GRP1_PERIPH_I2C4           RCC_APB4ENR1_I2C4EN
336 #define LL_APB4_GRP1_PERIPH_LPTIM2         RCC_APB4ENR1_LPTIM2EN
337 #define LL_APB4_GRP1_PERIPH_LPTIM3         RCC_APB4ENR1_LPTIM3EN
338 #define LL_APB4_GRP1_PERIPH_LPTIM4         RCC_APB4ENR1_LPTIM4EN
339 #define LL_APB4_GRP1_PERIPH_LPTIM5         RCC_APB4ENR1_LPTIM5EN
340 #define LL_APB4_GRP1_PERIPH_LPUART1        RCC_APB4ENR1_LPUART1EN
341 #define LL_APB4_GRP1_PERIPH_RTC            RCC_APB4ENR1_RTCEN
342 #define LL_APB4_GRP1_PERIPH_RTCAPB         RCC_APB4ENR1_RTCAPBEN
343 #define LL_APB4_GRP1_PERIPH_SPI6           RCC_APB4ENR1_SPI6EN
344 #define LL_APB4_GRP1_PERIPH_VREFBUF        RCC_APB4ENR1_VREFBUFEN
345 #define LL_APB4_GRP1_PERIPH_ALL            (LL_APB4_GRP1_PERIPH_HDP     | LL_APB4_GRP1_PERIPH_I2C4    | \
346                                             LL_APB4_GRP1_PERIPH_LPTIM2  | LL_APB4_GRP1_PERIPH_LPTIM3  | \
347                                             LL_APB4_GRP1_PERIPH_LPTIM4  | LL_APB4_GRP1_PERIPH_LPTIM5  | \
348                                             LL_APB4_GRP1_PERIPH_LPUART1 | LL_APB4_GRP1_PERIPH_RTC     | \
349                                             LL_APB4_GRP1_PERIPH_RTCAPB  | LL_APB4_GRP1_PERIPH_SPI6    | \
350                                             LL_APB4_GRP1_PERIPH_VREFBUF)
351 /**
352   * @}
353   */
354 
355 /** @defgroup BUS_LL_EC_APB4_GRP2_PERIPH  APB4 GRP2 PERIPH
356   * @{
357   */
358 #define LL_APB4_GRP2_PERIPH_BSEC           RCC_APB4ENR2_BSECEN
359 #define LL_APB4_GRP2_PERIPH_DTS            RCC_APB4ENR2_DTSEN
360 #define LL_APB4_GRP2_PERIPH_SYSCFG         RCC_APB4ENR2_SYSCFGEN
361 #define LL_APB4_GRP2_PERIPH_ALL            (LL_APB4_GRP2_PERIPH_BSEC | LL_APB4_GRP2_PERIPH_DTS | \
362                                             LL_APB4_GRP2_PERIPH_SYSCFG)
363 /**
364   * @}
365   */
366 
367 /** @defgroup BUS_LL_EC_APB5_GRP1_PERIPH  APB5 GRP1 PERIPH
368   * @{
369   */
370 #define LL_APB5_GRP1_PERIPH_CSI            RCC_APB5ENR_CSIEN
371 #define LL_APB5_GRP1_PERIPH_DCMIPP         RCC_APB5ENR_DCMIPPEN
372 #define LL_APB5_GRP1_PERIPH_GFXTIM         RCC_APB5ENR_GFXTIMEN
373 #define LL_APB5_GRP1_PERIPH_LTDC           RCC_APB5ENR_LTDCEN
374 #if defined(VENC)
375 #define LL_APB5_GRP1_PERIPH_VENC           RCC_APB5ENR_VENCEN
376 #else
377 #define LL_APB5_GRP1_PERIPH_VENC
378 #endif /* VENC */
379 #define LL_APB5_GRP1_PERIPH_ALL            (LL_APB5_GRP1_PERIPH_CSI    | LL_APB5_GRP1_PERIPH_DCMIPP | \
380                                             LL_APB5_GRP1_PERIPH_GFXTIM | LL_APB5_GRP1_PERIPH_LTDC   | \
381                                             LL_APB5_GRP1_PERIPH_VENC)
382 /**
383   * @}
384   */
385 
386 /** @defgroup BUS_LL_EC_MISC  MISC
387   * @{
388   */
389 #define LL_DBG                             RCC_MISCENR_DBGEN
390 #define LL_MCO1                            RCC_MISCENR_MCO1EN
391 #define LL_MCO2                            RCC_MISCENR_MCO2EN
392 #define LL_XSPIPHYCOMP                     RCC_MISCENR_XSPIPHYCOMPEN
393 #define LL_XSPIPHY1                        RCC_MISCRSTR_XSPIPHY1RST
394 #define LL_XSPIPHY2                        RCC_MISCRSTR_XSPIPHY2RST
395 #define LL_PER                             RCC_MISCENR_PEREN
396 #define LL_SDMMC1DLL                       RCC_MISCRSTR_SDMMC1DLLRST
397 #define LL_SDMMC2DLL                       RCC_MISCRSTR_SDMMC2DLLRST
398 /**
399   * @}
400   */
401 
402 /**
403   * @}
404   */
405 
406 /* Exported macros -----------------------------------------------------------*/
407 
408 /* Exported functions --------------------------------------------------------*/
409 
410 /** @defgroup BUS_LL_Exported_Functions BUS Exported Functions
411   * @{
412   */
413 
414 /** @defgroup BUS_LL_EF_BUS BUS
415   * @{
416   */
417 
418 /**
419   * @brief  Enable AXI bus clock.
420   * @rmtoll BUSENSR      ACLKNENS      LL_BUS_EnableClock\n
421   *         BUSENSR      ACLKNCENS     LL_BUS_EnableClock\n
422   *         BUSENSR      AHBMENS       LL_BUS_EnableClock\n
423   *         BUSENSR      AHB1ENS       LL_BUS_EnableClock\n
424   *         BUSENSR      AHB2ENS       LL_BUS_EnableClock\n
425   *         BUSENSR      AHB3ENS       LL_BUS_EnableClock\n
426   *         BUSENSR      AHB4ENS       LL_BUS_EnableClock\n
427   *         BUSENSR      AHB5ENS       LL_BUS_EnableClock\n
428   *         BUSENSR      APB1ENS       LL_BUS_EnableClock\n
429   *         BUSENSR      APB2ENS       LL_BUS_EnableClock\n
430   *         BUSENSR      APB3ENS       LL_BUS_EnableClock\n
431   *         BUSENSR      APB4ENS       LL_BUS_EnableClock\n
432   *         BUSENSR      APB5ENS       LL_BUS_EnableClock
433   * @param  Bus This parameter can be a combination of the following values:
434   *         @arg @ref LL_ACLKN
435   *         @arg @ref LL_ACLKNC
436   *         @arg @ref LL_AHBM
437   *         @arg @ref LL_AHB1
438   *         @arg @ref LL_AHB2
439   *         @arg @ref LL_AHB3
440   *         @arg @ref LL_AHB4
441   *         @arg @ref LL_AHB5
442   *         @arg @ref LL_APB1
443   *         @arg @ref LL_APB2
444   *         @arg @ref LL_APB3
445   *         @arg @ref LL_APB4
446   *         @arg @ref LL_APB5
447   * @retval None
448   */
LL_BUS_EnableClock(uint32_t Bus)449 __STATIC_INLINE void LL_BUS_EnableClock(uint32_t Bus)
450 {
451   __IO uint32_t tmpreg;
452   WRITE_REG(RCC->BUSENSR, Bus);
453   /* Delay after an RCC bus clock enabling */
454   tmpreg = READ_REG(RCC->BUSENR);
455   (void)tmpreg;
456 }
457 
458 /**
459   * @brief  Check if AXI bus clock is enabled or not
460   * @rmtoll BUSENR       ACLKNEN       LL_BUS_IsEnabledClock\n
461   *         BUSENR       ACLKNCEN      LL_BUS_IsEnabledClock\n
462   *         BUSENR       AHBMEN        LL_BUS_IsEnabledClock\n
463   *         BUSENR       AHB1EN        LL_BUS_IsEnabledClock\n
464   *         BUSENR       AHB2EN        LL_BUS_IsEnabledClock\n
465   *         BUSENR       AHB3EN        LL_BUS_IsEnabledClock\n
466   *         BUSENR       AHB4EN        LL_BUS_IsEnabledClock\n
467   *         BUSENR       AHB5EN        LL_BUS_IsEnabledClock\n
468   *         BUSENR       APB1EN        LL_BUS_IsEnabledClock\n
469   *         BUSENR       APB2EN        LL_BUS_IsEnabledClock\n
470   *         BUSENR       APB3EN        LL_BUS_IsEnabledClock\n
471   *         BUSENR       APB4EN        LL_BUS_IsEnabledClock\n
472   *         BUSENR       APB5EN        LL_BUS_IsEnabledClock
473   * @param  Bus This parameter can be a combination of the following values:
474   *         @arg @ref LL_ACLKN
475   *         @arg @ref LL_ACLKNC
476   *         @arg @ref LL_AHBM
477   *         @arg @ref LL_AHB1
478   *         @arg @ref LL_AHB2
479   *         @arg @ref LL_AHB3
480   *         @arg @ref LL_AHB4
481   *         @arg @ref LL_AHB5
482   *         @arg @ref LL_APB1
483   *         @arg @ref LL_APB2
484   *         @arg @ref LL_APB3
485   *         @arg @ref LL_APB4
486   *         @arg @ref LL_APB5
487   * @retval uint32_t
488   */
LL_BUS_IsEnabledClock(uint32_t Bus)489 __STATIC_INLINE uint32_t LL_BUS_IsEnabledClock(uint32_t Bus)
490 {
491   return ((READ_BIT(RCC->BUSENR, Bus) == Bus) ? 1UL : 0UL);
492 }
493 
494 /**
495   * @brief  Disable AXI bus clock.
496   * @rmtoll BUSENCR      ACLKNENC      LL_BUS_DisableClock\n
497   *         BUSENCR      ACLKNCENC     LL_BUS_DisableClock\n
498   *         BUSENCR      AHBMENC       LL_BUS_DisableClock\n
499   *         BUSENCR      AHB1ENC       LL_BUS_DisableClock\n
500   *         BUSENCR      AHB2ENC       LL_BUS_DisableClock\n
501   *         BUSENCR      AHB3ENC       LL_BUS_DisableClock\n
502   *         BUSENCR      AHB4ENC       LL_BUS_DisableClock\n
503   *         BUSENCR      AHB5ENC       LL_BUS_DisableClock\n
504   *         BUSENCR      APB1ENC       LL_BUS_DisableClock\n
505   *         BUSENCR      APB2ENC       LL_BUS_DisableClock\n
506   *         BUSENCR      APB3ENC       LL_BUS_DisableClock\n
507   *         BUSENCR      APB4ENC       LL_BUS_DisableClock\n
508   *         BUSENCR      APB5ENC       LL_BUS_DisableClock
509   * @param  Bus This parameter can be a combination of the following values:
510   *         @arg @ref LL_ACLKN
511   *         @arg @ref LL_ACLKNC
512   *         @arg @ref LL_AHBM
513   *         @arg @ref LL_AHB1
514   *         @arg @ref LL_AHB2
515   *         @arg @ref LL_AHB3
516   *         @arg @ref LL_AHB4
517   *         @arg @ref LL_AHB5
518   *         @arg @ref LL_APB1
519   *         @arg @ref LL_APB2
520   *         @arg @ref LL_APB3
521   *         @arg @ref LL_APB4
522   *         @arg @ref LL_APB5
523   * @retval None
524   */
LL_BUS_DisableClock(uint32_t Bus)525 __STATIC_INLINE void LL_BUS_DisableClock(uint32_t Bus)
526 {
527   WRITE_REG(RCC->BUSENCR, Bus);
528 }
529 
530 /**
531   * @brief  Enable AXI bus clock during Low Power mode.
532   * @rmtoll BUSLPENSR    ACLKNLPENS    LL_BUS_EnableClockLowPower\n
533   *         BUSLPENSR    ACLKNCLPENS   LL_BUS_EnableClockLowPower\n
534   *         BUSLPENSR    AHBMLPENS     LL_BUS_EnableClockLowPower\n
535   *         BUSLPENSR    AHB1LPENS     LL_BUS_EnableClockLowPower\n
536   *         BUSLPENSR    AHB2LPENS     LL_BUS_EnableClockLowPower\n
537   *         BUSLPENSR    AHB3LPENS     LL_BUS_EnableClockLowPower\n
538   *         BUSLPENSR    AHB4LPENS     LL_BUS_EnableClockLowPower\n
539   *         BUSLPENSR    AHB5LPENS     LL_BUS_EnableClockLowPower\n
540   *         BUSLPENSR    APB1LPENS     LL_BUS_EnableClockLowPower\n
541   *         BUSLPENSR    APB2LPENS     LL_BUS_EnableClockLowPower\n
542   *         BUSLPENSR    APB3LPENS     LL_BUS_EnableClockLowPower\n
543   *         BUSLPENSR    APB4LPENS     LL_BUS_EnableClockLowPower\n
544   *         BUSLPENSR    APB5LPENS     LL_BUS_EnableClockLowPower
545   * @param  Bus This parameter can be a combination of the following values:
546   *         @arg @ref LL_ACLKN
547   *         @arg @ref LL_ACLKNC
548   *         @arg @ref LL_AHBM
549   *         @arg @ref LL_AHB1
550   *         @arg @ref LL_AHB2
551   *         @arg @ref LL_AHB3
552   *         @arg @ref LL_AHB4
553   *         @arg @ref LL_AHB5
554   *         @arg @ref LL_APB1
555   *         @arg @ref LL_APB2
556   *         @arg @ref LL_APB3
557   *         @arg @ref LL_APB4
558   *         @arg @ref LL_APB5
559   * @retval None
560   */
LL_BUS_EnableClockLowPower(uint32_t Bus)561 __STATIC_INLINE void LL_BUS_EnableClockLowPower(uint32_t Bus)
562 {
563   __IO uint32_t tmpreg;
564   WRITE_REG(RCC->BUSLPENSR, Bus);
565   /* Delay after an RCC bus clock enabling */
566   tmpreg = READ_REG(RCC->BUSLPENR);
567   (void)tmpreg;
568 }
569 
570 /**
571   * @brief  Check if AXI bus clock during Low Power mode is enabled or not
572   * @rmtoll BUSLPENR       ACLKNLPEN       LL_BUS_IsEnabledClockLowPower\n
573   *         BUSLPENR       ACLKNCLPEN      LL_BUS_IsEnabledClockLowPower\n
574   *         BUSLPENR       AHBMLPEN        LL_BUS_IsEnabledClockLowPower\n
575   *         BUSLPENR       AHB1LPEN        LL_BUS_IsEnabledClockLowPower\n
576   *         BUSLPENR       AHB2LPEN        LL_BUS_IsEnabledClockLowPower\n
577   *         BUSLPENR       AHB3LPEN        LL_BUS_IsEnabledClockLowPower\n
578   *         BUSLPENR       AHB4LPEN        LL_BUS_IsEnabledClockLowPower\n
579   *         BUSLPENR       AHB5LPEN        LL_BUS_IsEnabledClockLowPower\n
580   *         BUSLPENR       APB1LPEN        LL_BUS_IsEnabledClockLowPower\n
581   *         BUSLPENR       APB2LPEN        LL_BUS_IsEnabledClockLowPower\n
582   *         BUSLPENR       APB3LPEN        LL_BUS_IsEnabledClockLowPower\n
583   *         BUSLPENR       APB4LPEN        LL_BUS_IsEnabledClockLowPower\n
584   *         BUSLPENR       APB5LPEN        LL_BUS_IsEnabledClockLowPower
585   * @param  Bus This parameter can be a combination of the following values:
586   *         @arg @ref LL_ACLKN
587   *         @arg @ref LL_ACLKNC
588   *         @arg @ref LL_AHBM
589   *         @arg @ref LL_AHB1
590   *         @arg @ref LL_AHB2
591   *         @arg @ref LL_AHB3
592   *         @arg @ref LL_AHB4
593   *         @arg @ref LL_AHB5
594   *         @arg @ref LL_APB1
595   *         @arg @ref LL_APB2
596   *         @arg @ref LL_APB3
597   *         @arg @ref LL_APB4
598   *         @arg @ref LL_APB5
599   * @retval uint32_t
600   */
LL_BUS_IsEnabledClockLowPower(uint32_t Bus)601 __STATIC_INLINE uint32_t LL_BUS_IsEnabledClockLowPower(uint32_t Bus)
602 {
603   return ((READ_BIT(RCC->BUSLPENR, Bus) == Bus) ? 1UL : 0UL);
604 }
605 
606 /**
607   * @brief  Disable AXI bus clock during Low Power mode.
608   * @rmtoll BUSLPENCR    ACLKNLPENC    LL_BUS_DisableClockLowPower\n
609   *         BUSLPENCR    ACLKNCLPENC   LL_BUS_DisableClockLowPower\n
610   *         BUSLPENCR    AHBMLPENC     LL_BUS_DisableClockLowPower\n
611   *         BUSLPENCR    AHB1LPENC     LL_BUS_DisableClockLowPower\n
612   *         BUSLPENCR    AHB2LPENC     LL_BUS_DisableClockLowPower\n
613   *         BUSLPENCR    AHB3LPENC     LL_BUS_DisableClockLowPower\n
614   *         BUSLPENCR    AHB4LPENC     LL_BUS_DisableClockLowPower\n
615   *         BUSLPENCR    AHB5LPENC     LL_BUS_DisableClockLowPower\n
616   *         BUSLPENCR    APB1LPENC     LL_BUS_DisableClockLowPower\n
617   *         BUSLPENCR    APB2LPENC     LL_BUS_DisableClockLowPower\n
618   *         BUSLPENCR    APB3LPENC     LL_BUS_DisableClockLowPower\n
619   *         BUSLPENCR    APB4LPENC     LL_BUS_DisableClockLowPower\n
620   *         BUSLPENCR    APB5LPENC     LL_BUS_DisableClockLowPower
621   * @param  Bus This parameter can be a combination of the following values:
622   *         @arg @ref LL_ACLKN
623   *         @arg @ref LL_ACLKNC
624   *         @arg @ref LL_AHBM
625   *         @arg @ref LL_AHB1
626   *         @arg @ref LL_AHB2
627   *         @arg @ref LL_AHB3
628   *         @arg @ref LL_AHB4
629   *         @arg @ref LL_AHB5
630   *         @arg @ref LL_APB1
631   *         @arg @ref LL_APB2
632   *         @arg @ref LL_APB3
633   *         @arg @ref LL_APB4
634   *         @arg @ref LL_APB5
635   * @retval None
636   */
LL_BUS_DisableClockLowPower(uint32_t Bus)637 __STATIC_INLINE void LL_BUS_DisableClockLowPower(uint32_t Bus)
638 {
639   WRITE_REG(RCC->BUSLPENCR, Bus);
640 }
641 
642 /**
643   * @}
644   */
645 
646 /** @defgroup BUS_LL_EF_MEM MEM
647   * @{
648   */
649 
650 /**
651   * @brief  Enable memories clock.
652   * @rmtoll MEMENSR      AXISRAM1ENS   LL_MEM_EnableClock\n
653   *         MEMENSR      AXISRAM2ENS   LL_MEM_EnableClock\n
654   *         MEMENSR      AXISRAM3ENS   LL_MEM_EnableClock\n
655   *         MEMENSR      AXISRAM4ENS   LL_MEM_EnableClock\n
656   *         MEMENSR      AXISRAM5ENS   LL_MEM_EnableClock\n
657   *         MEMENSR      AXISRAM6ENS   LL_MEM_EnableClock\n
658   *         MEMENSR      AHBSRAM1ENS   LL_MEM_EnableClock\n
659   *         MEMENSR      AHBSRAM2ENS   LL_MEM_EnableClock\n
660   *         MEMENSR      BKPSRAMENS    LL_MEM_EnableClock\n
661   *         MEMENSR      FLEXRAMENS    LL_MEM_EnableClock\n
662   *         MEMENSR      CACHEAXIRAMENS LL_MEM_EnableClock\n
663   *         MEMENSR      VENCRAMENS    LL_MEM_EnableClock
664   * @param  Memories This parameter can be a combination of the following values:
665   *         @arg @ref LL_MEM_AXISRAM1
666   *         @arg @ref LL_MEM_AXISRAM2
667   *         @arg @ref LL_MEM_AXISRAM3
668   *         @arg @ref LL_MEM_AXISRAM4
669   *         @arg @ref LL_MEM_AXISRAM5
670   *         @arg @ref LL_MEM_AXISRAM6
671   *         @arg @ref LL_MEM_AHBSRAM1
672   *         @arg @ref LL_MEM_AHBSRAM2
673   *         @arg @ref LL_MEM_BKPSRAM
674   *         @arg @ref LL_MEM_FLEXRAM
675   *         @arg @ref LL_MEM_CACHEAXIRAM
676   *         @arg @ref LL_MEM_VENCRAM
677   * @retval None
678   */
LL_MEM_EnableClock(uint32_t Memories)679 __STATIC_INLINE void LL_MEM_EnableClock(uint32_t Memories)
680 {
681   __IO uint32_t tmpreg;
682   WRITE_REG(RCC->MEMENSR, Memories);
683   /* Delay after an RCC memories clock enabling */
684   tmpreg = READ_REG(RCC->MEMENR);
685   (void)tmpreg;
686 }
687 
688 /**
689   * @brief  Check if memory clock is enabled or not
690   * @rmtoll MEMENR       AXISRAM1EN    LL_MEM_IsEnabledClock\n
691   *         MEMENR       AXISRAM2EN    LL_MEM_IsEnabledClock\n
692   *         MEMENR       AXISRAM3EN    LL_MEM_IsEnabledClock\n
693   *         MEMENR       AXISRAM4EN    LL_MEM_IsEnabledClock\n
694   *         MEMENR       AXISRAM5EN    LL_MEM_IsEnabledClock\n
695   *         MEMENR       AXISRAM6EN    LL_MEM_IsEnabledClock\n
696   *         MEMENR       AHBSRAM1EN    LL_MEM_IsEnabledClock\n
697   *         MEMENR       AHBSRAM2EN    LL_MEM_IsEnabledClock\n
698   *         MEMENR       BKPSRAMEN     LL_MEM_IsEnabledClock\n
699   *         MEMENR       FLEXRAMEN     LL_MEM_IsEnabledClock\n
700   *         MEMENR       CACHEAXIRAMEN LL_MEM_IsEnabledClock\n
701   *         MEMENR       VENCRAMEN     LL_MEM_IsEnabledClock
702   * @param  Memories This parameter can be a combination of the following values:
703   *         @arg @ref LL_MEM_AXISRAM1
704   *         @arg @ref LL_MEM_AXISRAM2
705   *         @arg @ref LL_MEM_AXISRAM3
706   *         @arg @ref LL_MEM_AXISRAM4
707   *         @arg @ref LL_MEM_AXISRAM5
708   *         @arg @ref LL_MEM_AXISRAM6
709   *         @arg @ref LL_MEM_AHBSRAM1
710   *         @arg @ref LL_MEM_AHBSRAM2
711   *         @arg @ref LL_MEM_BKPSRAM
712   *         @arg @ref LL_MEM_FLEXRAM
713   *         @arg @ref LL_MEM_CACHEAXIRAM
714   *         @arg @ref LL_MEM_VENCRAM
715   * @retval uint32_t
716   */
LL_MEM_IsEnabledClock(uint32_t Memories)717 __STATIC_INLINE uint32_t LL_MEM_IsEnabledClock(uint32_t Memories)
718 {
719   return ((READ_BIT(RCC->MEMENR, Memories) == Memories) ? 1UL : 0UL);
720 }
721 
722 /**
723   * @brief  Disable memories clock.
724   * @rmtoll MEMENCR      AXISRAM1ENC   LL_MEM_DisableClock\n
725   *         MEMENCR      AXISRAM2ENC   LL_MEM_DisableClock\n
726   *         MEMENCR      AXISRAM3ENC   LL_MEM_DisableClock\n
727   *         MEMENCR      AXISRAM4ENC   LL_MEM_DisableClock\n
728   *         MEMENCR      AXISRAM5ENC   LL_MEM_DisableClock\n
729   *         MEMENCR      AXISRAM6ENC   LL_MEM_DisableClock\n
730   *         MEMENCR      AHBSRAM1ENC   LL_MEM_DisableClock\n
731   *         MEMENCR      AHBSRAM2ENC   LL_MEM_DisableClock\n
732   *         MEMENCR      BKPSRAMENC    LL_MEM_DisableClock\n
733   *         MEMENCR      FLEXRAMENC    LL_MEM_DisableClock\n
734   *         MEMENCR      CACHEAXIRAMENC LL_MEM_DisableClock\n
735   *         MEMENCR      VENCRAMENC    LL_MEM_DisableClock
736   * @param  Memories This parameter can be a combination of the following values:
737   *         @arg @ref LL_MEM_AXISRAM1
738   *         @arg @ref LL_MEM_AXISRAM2
739   *         @arg @ref LL_MEM_AXISRAM3
740   *         @arg @ref LL_MEM_AXISRAM4
741   *         @arg @ref LL_MEM_AXISRAM5
742   *         @arg @ref LL_MEM_AXISRAM6
743   *         @arg @ref LL_MEM_AHBSRAM1
744   *         @arg @ref LL_MEM_AHBSRAM2
745   *         @arg @ref LL_MEM_BKPSRAM
746   *         @arg @ref LL_MEM_FLEXRAM
747   *         @arg @ref LL_MEM_CACHEAXIRAM
748   *         @arg @ref LL_MEM_VENCRAM
749   * @retval None
750   */
LL_MEM_DisableClock(uint32_t Memories)751 __STATIC_INLINE void LL_MEM_DisableClock(uint32_t Memories)
752 {
753   WRITE_REG(RCC->MEMENCR, Memories);
754 }
755 
756 /**
757   * @brief  Enable memories clock during Low Power mode.
758   * @rmtoll MEMLPENSR    AXISRAM1LPENS LL_MEM_EnableClockLowPower\n
759   *         MEMLPENSR    AXISRAM2LPENS LL_MEM_EnableClockLowPower\n
760   *         MEMLPENSR    AXISRAM3LPENS LL_MEM_EnableClockLowPower\n
761   *         MEMLPENSR    AXISRAM4LPENS LL_MEM_EnableClockLowPower\n
762   *         MEMLPENSR    AXISRAM5LPENS LL_MEM_EnableClockLowPower\n
763   *         MEMLPENSR    AXISRAM6LPENS LL_MEM_EnableClockLowPower\n
764   *         MEMLPENSR    AHBSRAM1LPENS LL_MEM_EnableClockLowPower\n
765   *         MEMLPENSR    AHBSRAM2LPENS LL_MEM_EnableClockLowPower\n
766   *         MEMLPENSR    BKPSRAMLPENS  LL_MEM_EnableClockLowPower\n
767   *         MEMLPENSR    FLEXRAMLPENS  LL_MEM_EnableClockLowPower\n
768   *         MEMLPENSR    CACHEAXIRAMLPENS LL_MEM_EnableClockLowPower\n
769   *         MEMLPENSR    VENCRAMLPENS  LL_MEM_EnableClockLowPower
770   * @param  Memories This parameter can be a combination of the following values:
771   *         @arg @ref LL_MEM_AXISRAM1
772   *         @arg @ref LL_MEM_AXISRAM2
773   *         @arg @ref LL_MEM_AXISRAM3
774   *         @arg @ref LL_MEM_AXISRAM4
775   *         @arg @ref LL_MEM_AXISRAM5
776   *         @arg @ref LL_MEM_AXISRAM6
777   *         @arg @ref LL_MEM_AHBSRAM1
778   *         @arg @ref LL_MEM_AHBSRAM2
779   *         @arg @ref LL_MEM_BKPSRAM
780   *         @arg @ref LL_MEM_FLEXRAM
781   *         @arg @ref LL_MEM_CACHEAXIRAM
782   *         @arg @ref LL_MEM_VENCRAM
783   * @retval None
784   */
LL_MEM_EnableClockLowPower(uint32_t Memories)785 __STATIC_INLINE void LL_MEM_EnableClockLowPower(uint32_t Memories)
786 {
787   __IO uint32_t tmpreg;
788   WRITE_REG(RCC->MEMLPENSR, Memories);
789   /* Delay after an RCC memories clock enabling */
790   tmpreg = READ_REG(RCC->MEMLPENR);
791   (void)tmpreg;
792 }
793 
794 /**
795   * @brief  Check if memories clock during Low Power mode is enabled or not .
796   * @rmtoll MEMLPENR      AXISRAM1LPEN    LL_MEM_IsEnabledClockLowPower\n
797   *         MEMLPENR      AXISRAM2LPEN    LL_MEM_IsEnabledClockLowPower\n
798   *         MEMLPENR      AXISRAM3LPEN    LL_MEM_IsEnabledClockLowPower\n
799   *         MEMLPENR      AXISRAM4LPEN    LL_MEM_IsEnabledClockLowPower\n
800   *         MEMLPENR      AXISRAM5LPEN    LL_MEM_IsEnabledClockLowPower\n
801   *         MEMLPENR      AXISRAM6LPEN    LL_MEM_IsEnabledClockLowPower\n
802   *         MEMLPENR      AHBSRAM1LPEN    LL_MEM_IsEnabledClockLowPower\n
803   *         MEMLPENR      AHBSRAM2LPEN    LL_MEM_IsEnabledClockLowPower\n
804   *         MEMLPENR      BKPSRAMLPEN     LL_MEM_IsEnabledClockLowPower\n
805   *         MEMLPENR      FLEXRAMLPEN     LL_MEM_IsEnabledClockLowPower\n
806   *         MEMLPENR      CACHEAXIRAMLPEN LL_MEM_IsEnabledClockLowPower\n
807   *         MEMLPENR      VENCRAMLPEN     LL_MEM_IsEnabledClockLowPower
808   * @param  Memories This parameter can be a combination of the following values:
809   *         @arg @ref LL_MEM_AXISRAM1
810   *         @arg @ref LL_MEM_AXISRAM2
811   *         @arg @ref LL_MEM_AXISRAM3
812   *         @arg @ref LL_MEM_AXISRAM4
813   *         @arg @ref LL_MEM_AXISRAM5
814   *         @arg @ref LL_MEM_AXISRAM6
815   *         @arg @ref LL_MEM_AHBSRAM1
816   *         @arg @ref LL_MEM_AHBSRAM2
817   *         @arg @ref LL_MEM_BKPSRAM
818   *         @arg @ref LL_MEM_FLEXRAM
819   *         @arg @ref LL_MEM_CACHEAXIRAM
820   *         @arg @ref LL_MEM_VENCRAM
821   * @retval None
822   */
LL_MEM_IsEnabledClockLowPower(uint32_t Memories)823 __STATIC_INLINE uint32_t LL_MEM_IsEnabledClockLowPower(uint32_t Memories)
824 {
825   return ((READ_BIT(RCC->MEMLPENR, Memories) == Memories) ? 1UL : 0UL);
826 }
827 
828 /**
829   * @brief  Disable memories clock during Low Power mode.
830   * @rmtoll MEMLPENCR    AXISRAM1LPENC LL_MEM_DisableClockLowPower\n
831   *         MEMLPENCR    AXISRAM2LPENC LL_MEM_DisableClockLowPower\n
832   *         MEMLPENCR    AXISRAM3LPENC LL_MEM_DisableClockLowPower\n
833   *         MEMLPENCR    AXISRAM4LPENC LL_MEM_DisableClockLowPower\n
834   *         MEMLPENCR    AXISRAM5LPENC LL_MEM_DisableClockLowPower\n
835   *         MEMLPENCR    AXISRAM6LPENC LL_MEM_DisableClockLowPower\n
836   *         MEMLPENCR    AHBSRAM1LPENC LL_MEM_DisableClockLowPower\n
837   *         MEMLPENCR    AHBSRAM2LPENC LL_MEM_DisableClockLowPower\n
838   *         MEMLPENCR    BKPSRAMLPENC  LL_MEM_DisableClockLowPower\n
839   *         MEMLPENCR    FLEXRAMLPENC  LL_MEM_DisableClockLowPower\n
840   *         MEMLPENCR    CACHEAXIRAMLPENC LL_MEM_DisableClockLowPower\n
841   *         MEMLPENCR    VENCRAMLPENC  LL_MEM_DisableClockLowPower
842   * @param  Memories This parameter can be a combination of the following values:
843   *         @arg @ref LL_MEM_AXISRAM1
844   *         @arg @ref LL_MEM_AXISRAM2
845   *         @arg @ref LL_MEM_AXISRAM3
846   *         @arg @ref LL_MEM_AXISRAM4
847   *         @arg @ref LL_MEM_AXISRAM5
848   *         @arg @ref LL_MEM_AXISRAM6
849   *         @arg @ref LL_MEM_AHBSRAM1
850   *         @arg @ref LL_MEM_AHBSRAM2
851   *         @arg @ref LL_MEM_BKPSRAM
852   *         @arg @ref LL_MEM_FLEXRAM
853   *         @arg @ref LL_MEM_CACHEAXIRAM
854   *         @arg @ref LL_MEM_VENCRAM
855   * @retval None
856   */
LL_MEM_DisableClockLowPower(uint32_t Memories)857 __STATIC_INLINE void LL_MEM_DisableClockLowPower(uint32_t Memories)
858 {
859   WRITE_REG(RCC->MEMLPENCR, Memories);
860 }
861 
862 /**
863   * @}
864   */
865 
866 /** @defgroup BUS_LL_EF_AHB1 AHB1
867   * @{
868   */
869 
870 /**
871   * @brief  Enable AHB1 peripherals clock.
872   * @rmtoll AHB1ENSR     GPDMA1ENS     LL_AHB1_GRP1_EnableClock\n
873   *         AHB1ENSR     ADC12ENS      LL_AHB1_GRP1_EnableClock
874   * @param  Periphs This parameter can be a combination of the following values:
875   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPDMA1
876   *         @arg @ref LL_AHB1_GRP1_PERIPH_ADC12
877   * @retval None
878   */
LL_AHB1_GRP1_EnableClock(uint32_t Periphs)879 __STATIC_INLINE void LL_AHB1_GRP1_EnableClock(uint32_t Periphs)
880 {
881   __IO uint32_t tmpreg;
882   WRITE_REG(RCC->AHB1ENSR, Periphs);
883   /* Delay after an RCC peripheral clock enabling */
884   tmpreg = READ_REG(RCC->AHB1ENR);
885   (void)tmpreg;
886 }
887 
888 /**
889   * @brief  Check if AHB1 peripheral clock is enabled or not
890   * @rmtoll AHB1ENR      GPDMA1EN      LL_AHB1_GRP1_IsEnabledClock\n
891   *         AHB1ENR      ADC12EN       LL_AHB1_GRP1_IsEnabledClock
892   * @param  Periphs This parameter can be a combination of the following values:
893   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPDMA1
894   *         @arg @ref LL_AHB1_GRP1_PERIPH_ADC12
895   * @retval uint32_t
896   */
LL_AHB1_GRP1_IsEnabledClock(uint32_t Periphs)897 __STATIC_INLINE uint32_t LL_AHB1_GRP1_IsEnabledClock(uint32_t Periphs)
898 {
899   return ((READ_BIT(RCC->AHB1ENR, Periphs) == Periphs) ? 1UL : 0UL);
900 }
901 
902 /**
903   * @brief  Disable AHB1 peripherals clock.
904   * @rmtoll AHB1ENCR     GPDMA1ENC     LL_AHB1_GRP1_DisableClock\n
905   *         AHB1ENCR     ADC12ENC      LL_AHB1_GRP1_DisableClock
906   * @param  Periphs This parameter can be a combination of the following values:
907   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPDMA1
908   *         @arg @ref LL_AHB1_GRP1_PERIPH_ADC12
909   * @retval None
910   */
LL_AHB1_GRP1_DisableClock(uint32_t Periphs)911 __STATIC_INLINE void LL_AHB1_GRP1_DisableClock(uint32_t Periphs)
912 {
913   WRITE_REG(RCC->AHB1ENCR, Periphs);
914 }
915 
916 /**
917   * @brief  Force AHB1 peripherals reset.
918   * @rmtoll AHB1RSTSR    GPDMA1RSTS    LL_AHB1_GRP1_ForceReset\n
919   *         AHB1RSTSR    ADC12RSTS     LL_AHB1_GRP1_ForceReset
920   * @param  Periphs This parameter can be a combination of the following values:
921   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPDMA1
922   *         @arg @ref LL_AHB1_GRP1_PERIPH_ADC12
923   * @retval None
924   */
LL_AHB1_GRP1_ForceReset(uint32_t Periphs)925 __STATIC_INLINE void LL_AHB1_GRP1_ForceReset(uint32_t Periphs)
926 {
927   WRITE_REG(RCC->AHB1RSTSR, Periphs);
928 }
929 
930 /**
931   * @brief  Release AHB1 peripherals reset.
932   * @rmtoll AHB1RSTCR    GPDMA1RSTC    LL_AHB1_GRP1_ReleaseReset\n
933   *         AHB1RSTCR    ADC12RSTC     LL_AHB1_GRP1_ReleaseReset
934   * @param  Periphs This parameter can be a combination of the following values:
935   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPDMA1
936   *         @arg @ref LL_AHB1_GRP1_PERIPH_ADC12
937   * @retval None
938   */
LL_AHB1_GRP1_ReleaseReset(uint32_t Periphs)939 __STATIC_INLINE void LL_AHB1_GRP1_ReleaseReset(uint32_t Periphs)
940 {
941   WRITE_REG(RCC->AHB1RSTCR, Periphs);
942 }
943 
944 /**
945   * @brief  Enable AHB1 peripherals clock during Low Power mode.
946   * @rmtoll AHB1LPENSR   GPDMA1LPENS   LL_AHB1_GRP1_EnableClockLowPower\n
947   *         AHB1LPENSR   ADC12LPENS    LL_AHB1_GRP1_EnableClockLowPower
948   * @param  Periphs This parameter can be a combination of the following values:
949   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPDMA1
950   *         @arg @ref LL_AHB1_GRP1_PERIPH_ADC12
951   * @retval None
952   */
LL_AHB1_GRP1_EnableClockLowPower(uint32_t Periphs)953 __STATIC_INLINE void LL_AHB1_GRP1_EnableClockLowPower(uint32_t Periphs)
954 {
955   __IO uint32_t tmpreg;
956   WRITE_REG(RCC->AHB1LPENSR, Periphs);
957   /* Delay after an RCC peripheral clock enabling */
958   tmpreg = READ_REG(RCC->AHB1LPENR);
959   (void)tmpreg;
960 }
961 
962 /**
963   * @brief  Check if AHB1 peripheral clock during Low Power mode is enabled or not .
964   * @rmtoll AHB1LPENR    GPDMA1LPEN    LL_AHB1_GRP1_IsEnabledClockLowPower\n
965   *         AHB1LPENR    ADC12LPEN     LL_AHB1_GRP1_IsEnabledClockLowPower
966   * @param  Periphs This parameter can be a combination of the following values:
967   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPDMA1
968   *         @arg @ref LL_AHB1_GRP1_PERIPH_ADC12
969   * @retval uint32_t
970   */
LL_AHB1_GRP1_IsEnabledClockLowPower(uint32_t Periphs)971 __STATIC_INLINE uint32_t LL_AHB1_GRP1_IsEnabledClockLowPower(uint32_t Periphs)
972 {
973   return ((READ_BIT(RCC->AHB1LPENR, Periphs) == Periphs) ? 1UL : 0UL);
974 }
975 
976 /**
977   * @brief  Disable AHB1 peripherals clock during Low Power mode.
978   * @rmtoll AHB1LPENCR   GPDMA1LPENC   LL_AHB1_GRP1_DisableClockLowPower\n
979   *         AHB1LPENCR   ADC12LPENC    LL_AHB1_GRP1_DisableClockLowPower
980   * @param  Periphs This parameter can be a combination of the following values:
981   *         @arg @ref LL_AHB1_GRP1_PERIPH_GPDMA1
982   *         @arg @ref LL_AHB1_GRP1_PERIPH_ADC12
983   * @retval None
984   */
LL_AHB1_GRP1_DisableClockLowPower(uint32_t Periphs)985 __STATIC_INLINE void LL_AHB1_GRP1_DisableClockLowPower(uint32_t Periphs)
986 {
987   WRITE_REG(RCC->AHB1LPENCR, Periphs);
988 }
989 
990 /**
991   * @}
992   */
993 
994 /** @defgroup BUS_LL_EF_AHB2 AHB2
995   * @{
996   */
997 
998 /**
999   * @brief  Enable AHB2 peripherals clock.
1000   * @rmtoll AHB2ENSR     RAMCFGENS     LL_AHB2_GRP1_EnableClock\n
1001   *         AHB2ENSR     MDF1ENS       LL_AHB2_GRP1_EnableClock\n
1002   *         AHB2ENSR     ADF1ENS       LL_AHB2_GRP1_EnableClock
1003   * @param  Periphs This parameter can be a combination of the following values:
1004   *         @arg @ref LL_AHB2_GRP1_PERIPH_RAMCFG
1005   *         @arg @ref LL_AHB2_GRP1_PERIPH_MDF1
1006   *         @arg @ref LL_AHB2_GRP1_PERIPH_ADF1
1007   * @retval None
1008   */
LL_AHB2_GRP1_EnableClock(uint32_t Periphs)1009 __STATIC_INLINE void LL_AHB2_GRP1_EnableClock(uint32_t Periphs)
1010 {
1011   __IO uint32_t tmpreg;
1012   WRITE_REG(RCC->AHB2ENSR, Periphs);
1013   /* Delay after an RCC peripheral clock enabling */
1014   tmpreg = READ_REG(RCC->AHB2ENR);
1015   (void)tmpreg;
1016 }
1017 
1018 /**
1019   * @brief  Check if AHB2 peripheral clock is enabled or not
1020   * @rmtoll AHB2ENR      RAMCFGEN      LL_AHB2_GRP1_IsEnabledClock\n
1021   *         AHB2ENR      MDF1EN        LL_AHB2_GRP1_IsEnabledClock\n
1022   *         AHB2ENR      ADF1EN        LL_AHB2_GRP1_IsEnabledClock
1023   * @param  Periphs This parameter can be a combination of the following values:
1024   *         @arg @ref LL_AHB2_GRP1_PERIPH_RAMCFG
1025   *         @arg @ref LL_AHB2_GRP1_PERIPH_MDF1
1026   *         @arg @ref LL_AHB2_GRP1_PERIPH_ADF1
1027   * @retval uint32_t
1028   */
LL_AHB2_GRP1_IsEnabledClock(uint32_t Periphs)1029 __STATIC_INLINE uint32_t LL_AHB2_GRP1_IsEnabledClock(uint32_t Periphs)
1030 {
1031   return ((READ_BIT(RCC->AHB2ENR, Periphs) == Periphs) ? 1UL : 0UL);
1032 }
1033 
1034 /**
1035   * @brief  Disable AHB2 peripherals clock.
1036   * @rmtoll AHB2ENCR     RAMCFGENC     LL_AHB2_GRP1_DisableClock\n
1037   *         AHB2ENCR     MDF1ENC       LL_AHB2_GRP1_DisableClock\n
1038   *         AHB2ENCR     ADF1ENC       LL_AHB2_GRP1_DisableClock
1039   * @param  Periphs This parameter can be a combination of the following values:
1040   *         @arg @ref LL_AHB2_GRP1_PERIPH_RAMCFG
1041   *         @arg @ref LL_AHB2_GRP1_PERIPH_MDF1
1042   *         @arg @ref LL_AHB2_GRP1_PERIPH_ADF1
1043   * @retval None
1044   */
LL_AHB2_GRP1_DisableClock(uint32_t Periphs)1045 __STATIC_INLINE void LL_AHB2_GRP1_DisableClock(uint32_t Periphs)
1046 {
1047   WRITE_REG(RCC->AHB2ENCR, Periphs);
1048 }
1049 
1050 /**
1051   * @brief  Force AHB2 peripherals reset.
1052   * @rmtoll AHB2RSTSR    RAMCFGRSTS     LL_AHB2_GRP1_ForceReset\n
1053   *         AHB2RSTSR    MDF1RSTS       LL_AHB2_GRP1_ForceReset\n
1054   *         AHB2RSTSR    ADF1RSTS       LL_AHB2_GRP1_ForceReset
1055   * @param  Periphs This parameter can be a combination of the following values:
1056   *         @arg @ref LL_AHB2_GRP1_PERIPH_RAMCFG
1057   *         @arg @ref LL_AHB2_GRP1_PERIPH_MDF1
1058   *         @arg @ref LL_AHB2_GRP1_PERIPH_ADF1
1059   * @retval None
1060   */
LL_AHB2_GRP1_ForceReset(uint32_t Periphs)1061 __STATIC_INLINE void LL_AHB2_GRP1_ForceReset(uint32_t Periphs)
1062 {
1063   WRITE_REG(RCC->AHB2RSTSR, Periphs);
1064 }
1065 
1066 /**
1067   * @brief  Release AHB2 peripherals reset.
1068   * @rmtoll AHB2RSTCR     RAMCFGRSTC    LL_AHB2_GRP1_ReleaseReset\n
1069   *         AHB2RSTCR     MDF1RSTC      LL_AHB2_GRP1_ReleaseReset\n
1070   *         AHB2RSTCR     ADF1RSTC      LL_AHB2_GRP1_ReleaseReset
1071   * @param  Periphs This parameter can be a combination of the following values:
1072   *         @arg @ref LL_AHB2_GRP1_PERIPH_RAMCFG
1073   *         @arg @ref LL_AHB2_GRP1_PERIPH_MDF1
1074   *         @arg @ref LL_AHB2_GRP1_PERIPH_ADF1
1075   * @retval None
1076   */
LL_AHB2_GRP1_ReleaseReset(uint32_t Periphs)1077 __STATIC_INLINE void LL_AHB2_GRP1_ReleaseReset(uint32_t Periphs)
1078 {
1079   WRITE_REG(RCC->AHB2RSTCR, Periphs);
1080 }
1081 
1082 /**
1083   * @brief  Enable AHB2 peripherals clock during Low Power mode.
1084   * @rmtoll AHB2LPENSR   RAMCFGLPENC   LL_AHB2_GRP1_EnableClockLowPower\n
1085   *         AHB2LPENSR   MDF1LPENC     LL_AHB2_GRP1_EnableClockLowPower\n
1086   *         AHB2LPENSR   ADF1LPENC     LL_AHB2_GRP1_EnableClockLowPower
1087   * @param  Periphs This parameter can be a combination of the following values:
1088   *         @arg @ref LL_AHB2_GRP1_PERIPH_RAMCFG
1089   *         @arg @ref LL_AHB2_GRP1_PERIPH_MDF1
1090   *         @arg @ref LL_AHB2_GRP1_PERIPH_ADF1
1091   * @retval None
1092   */
LL_AHB2_GRP1_EnableClockLowPower(uint32_t Periphs)1093 __STATIC_INLINE void LL_AHB2_GRP1_EnableClockLowPower(uint32_t Periphs)
1094 {
1095   __IO uint32_t tmpreg;
1096   WRITE_REG(RCC->AHB2LPENSR, Periphs);
1097   /* Delay after an RCC peripheral clock enabling */
1098   tmpreg = READ_REG(RCC->AHB2LPENR);
1099   (void)tmpreg;
1100 }
1101 
1102 /**
1103   * @brief  Check if AHB2 peripheral clock during Low Power mode is enabled or not .
1104   * @rmtoll AHB2LPENR    RAMCFGLPEN    LL_AHB2_GRP1_IsEnabledClockLowPower\n
1105   *         AHB2LPENR    MDF1LPEN      LL_AHB2_GRP1_IsEnabledClockLowPower\n
1106   *         AHB2LPENR    ADF1LPEN      LL_AHB2_GRP1_IsEnabledClockLowPower
1107   * @param  Periphs This parameter can be a combination of the following values:
1108   *         @arg @ref LL_AHB2_GRP1_PERIPH_RAMCFG
1109   *         @arg @ref LL_AHB2_GRP1_PERIPH_MDF1
1110   *         @arg @ref LL_AHB2_GRP1_PERIPH_ADF1
1111   * @retval uint32_t
1112   */
LL_AHB2_GRP1_IsEnabledClockLowPower(uint32_t Periphs)1113 __STATIC_INLINE uint32_t LL_AHB2_GRP1_IsEnabledClockLowPower(uint32_t Periphs)
1114 {
1115   return ((READ_BIT(RCC->AHB2LPENR, Periphs) == Periphs) ? 1UL : 0UL);
1116 }
1117 
1118 /**
1119   * @brief  Disable AHB2 peripherals clock during Low Power mode.
1120   * @rmtoll AHB2LPENCR   RAMCFGLPENC   LL_AHB2_GRP1_DisableClockLowPower\n
1121   *         AHB2LPENCR   MDF1LPENC     LL_AHB2_GRP1_DisableClockLowPower\n
1122   *         AHB2LPENCR   ADF1LPENC     LL_AHB2_GRP1_DisableClockLowPower
1123   * @param  Periphs This parameter can be a combination of the following values:
1124   *         @arg @ref LL_AHB2_GRP1_PERIPH_RAMCFG
1125   *         @arg @ref LL_AHB2_GRP1_PERIPH_MDF1
1126   *         @arg @ref LL_AHB2_GRP1_PERIPH_ADF1
1127   * @retval None
1128   */
LL_AHB2_GRP1_DisableClockLowPower(uint32_t Periphs)1129 __STATIC_INLINE void LL_AHB2_GRP1_DisableClockLowPower(uint32_t Periphs)
1130 {
1131   WRITE_REG(RCC->AHB2LPENCR, Periphs);
1132 }
1133 
1134 /**
1135   * @}
1136   */
1137 
1138 /** @defgroup BUS_LL_EF_AHB3 AHB3
1139   * @{
1140   */
1141 
1142 /**
1143   * @brief  Enable AHB3 peripherals clock.
1144   * @rmtoll AHB3ENSR     RNGENS        LL_AHB3_GRP1_EnableClock\n
1145   *         AHB3ENSR     HASHENS       LL_AHB3_GRP1_EnableClock\n
1146   *         AHB3ENSR     CRYPENS       LL_AHB3_GRP1_EnableClock\n  (*)
1147   *         AHB3ENSR     SAESENS       LL_AHB3_GRP1_EnableClock\n  (*)
1148   *         AHB3ENSR     PKAENS        LL_AHB3_GRP1_EnableClock\n
1149   *         AHB3ENSR     RIFSCENS      LL_AHB3_GRP1_EnableClock\n
1150   *         AHB3ENSR     RISAFENS      LL_AHB3_GRP1_EnableClock\n
1151   *         AHB3ENSR     IACENS        LL_AHB3_GRP1_EnableClock
1152   * @param  Periphs This parameter can be a combination of the following values:
1153   *         @arg @ref LL_AHB3_GRP1_PERIPH_RNG
1154   *         @arg @ref LL_AHB3_GRP1_PERIPH_HASH
1155   *         @arg @ref LL_AHB3_GRP1_PERIPH_CRYP (*)
1156   *         @arg @ref LL_AHB3_GRP1_PERIPH_SAES (*)
1157   *         @arg @ref LL_AHB3_GRP1_PERIPH_PKA
1158   *         @arg @ref LL_AHB3_GRP1_PERIPH_RIFSC
1159   *         @arg @ref LL_AHB3_GRP1_PERIPH_RISAF
1160   *         @arg @ref LL_AHB3_GRP1_PERIPH_IAC
1161   *
1162   *         (*) value not defined in all devices.
1163   * @retval None
1164   */
LL_AHB3_GRP1_EnableClock(uint32_t Periphs)1165 __STATIC_INLINE void LL_AHB3_GRP1_EnableClock(uint32_t Periphs)
1166 {
1167   __IO uint32_t tmpreg;
1168   WRITE_REG(RCC->AHB3ENSR, Periphs);
1169   /* Delay after an RCC peripheral clock enabling */
1170   tmpreg = READ_REG(RCC->AHB3ENR);
1171   (void)tmpreg;
1172 }
1173 
1174 /**
1175   * @brief  Check if AHB3 peripheral clock is enabled or not
1176   * @rmtoll AHB3ENR      RNGEN         LL_AHB3_GRP1_IsEnabledClock\n
1177   *         AHB3ENR      HASHEN        LL_AHB3_GRP1_IsEnabledClock\n
1178   *         AHB3ENR      CRYPEN        LL_AHB3_GRP1_IsEnabledClock\n  (*)
1179   *         AHB3ENR      SAESEN        LL_AHB3_GRP1_IsEnabledClock\n  (*)
1180   *         AHB3ENR      PKAEN         LL_AHB3_GRP1_IsEnabledClock\n
1181   *         AHB3ENR      RIFSCEN       LL_AHB3_GRP1_IsEnabledClock\n
1182   *         AHB3ENR      RISAFEN       LL_AHB3_GRP1_IsEnabledClock\n
1183   *         AHB3ENR      IACEN         LL_AHB3_GRP1_IsEnabledClock
1184   * @param  Periphs This parameter can be a combination of the following values:
1185   *         @arg @ref LL_AHB3_GRP1_PERIPH_RNG
1186   *         @arg @ref LL_AHB3_GRP1_PERIPH_HASH
1187   *         @arg @ref LL_AHB3_GRP1_PERIPH_CRYP (*)
1188   *         @arg @ref LL_AHB3_GRP1_PERIPH_SAES (*)
1189   *         @arg @ref LL_AHB3_GRP1_PERIPH_PKA
1190   *         @arg @ref LL_AHB3_GRP1_PERIPH_RIFSC
1191   *         @arg @ref LL_AHB3_GRP1_PERIPH_RISAF
1192   *         @arg @ref LL_AHB3_GRP1_PERIPH_IAC
1193   *
1194   *         (*) value not defined in all devices.
1195   * @retval uint32_t
1196   */
LL_AHB3_GRP1_IsEnabledClock(uint32_t Periphs)1197 __STATIC_INLINE uint32_t LL_AHB3_GRP1_IsEnabledClock(uint32_t Periphs)
1198 {
1199   return ((READ_BIT(RCC->AHB3ENR, Periphs) == Periphs) ? 1UL : 0UL);
1200 }
1201 
1202 /**
1203   * @brief  Disable AHB3 peripherals clock.
1204   * @rmtoll AHB3ENCR     RNGENC        LL_AHB3_GRP1_DisableClock\n
1205   *         AHB3ENCR     HASHENC       LL_AHB3_GRP1_DisableClock\n
1206   *         AHB3ENCR     CRYPENC       LL_AHB3_GRP1_DisableClock\n  (*)
1207   *         AHB3ENCR     SAESENC       LL_AHB3_GRP1_DisableClock\n  (*)
1208   *         AHB3ENCR     PKAENC        LL_AHB3_GRP1_DisableClock\n
1209   *         AHB3ENCR     RIFSCENC      LL_AHB3_GRP1_DisableClock\n
1210   *         AHB3ENCR     RISAFENC      LL_AHB3_GRP1_DisableClock\n
1211   *         AHB3ENCR     IACENC        LL_AHB3_GRP1_DisableClock
1212   * @param  Periphs This parameter can be a combination of the following values:
1213   *         @arg @ref LL_AHB3_GRP1_PERIPH_RNG
1214   *         @arg @ref LL_AHB3_GRP1_PERIPH_HASH
1215   *         @arg @ref LL_AHB3_GRP1_PERIPH_CRYP (*)
1216   *         @arg @ref LL_AHB3_GRP1_PERIPH_SAES (*)
1217   *         @arg @ref LL_AHB3_GRP1_PERIPH_PKA
1218   *         @arg @ref LL_AHB3_GRP1_PERIPH_RIFSC
1219   *         @arg @ref LL_AHB3_GRP1_PERIPH_RISAF
1220   *         @arg @ref LL_AHB3_GRP1_PERIPH_IAC
1221   *
1222   *         (*) value not defined in all devices.
1223   * @retval None
1224   */
LL_AHB3_GRP1_DisableClock(uint32_t Periphs)1225 __STATIC_INLINE void LL_AHB3_GRP1_DisableClock(uint32_t Periphs)
1226 {
1227   WRITE_REG(RCC->AHB3ENCR, Periphs);
1228 }
1229 
1230 /**
1231   * @brief  Force AHB3 peripherals reset.
1232   * @rmtoll AHB3RSTSR    RNGRSTS       LL_AHB3_GRP1_ForceReset\n
1233   *         AHB3RSTSR    HASHRSTS      LL_AHB3_GRP1_ForceReset\n
1234   *         AHB3RSTSR    CRYPRSTS      LL_AHB3_GRP1_ForceReset\n  (*)
1235   *         AHB3RSTSR    SAESRSTS      LL_AHB3_GRP1_ForceReset\n  (*)
1236   *         AHB3RSTSR    PKARSTS       LL_AHB3_GRP1_ForceReset\n
1237   *         AHB3RSTSR    IACRSTS       LL_AHB3_GRP1_ForceReset
1238   * @param  Periphs This parameter can be a combination of the following values:
1239   *         @arg @ref LL_AHB3_GRP1_PERIPH_RNG
1240   *         @arg @ref LL_AHB3_GRP1_PERIPH_HASH
1241   *         @arg @ref LL_AHB3_GRP1_PERIPH_CRYP (*)
1242   *         @arg @ref LL_AHB3_GRP1_PERIPH_SAES (*)
1243   *         @arg @ref LL_AHB3_GRP1_PERIPH_PKA
1244   *         @arg @ref LL_AHB3_GRP1_PERIPH_IAC
1245   *
1246   *         (*) value not defined in all devices.
1247   * @retval None
1248   */
LL_AHB3_GRP1_ForceReset(uint32_t Periphs)1249 __STATIC_INLINE void LL_AHB3_GRP1_ForceReset(uint32_t Periphs)
1250 {
1251   WRITE_REG(RCC->AHB3RSTSR, Periphs);
1252 }
1253 
1254 /**
1255   * @brief  Release AHB3 peripherals reset.
1256   * @rmtoll AHB3RSTCR    RNGRSTC       LL_AHB3_GRP1_ReleaseReset\n
1257   *         AHB3RSTCR    HASHRSTC      LL_AHB3_GRP1_ReleaseReset\n
1258   *         AHB3RSTCR    CRYPRSTC      LL_AHB3_GRP1_ReleaseReset\n  (*)
1259   *         AHB3RSTCR    SAESRSTC      LL_AHB3_GRP1_ReleaseReset\n  (*)
1260   *         AHB3RSTCR    PKARSTC       LL_AHB3_GRP1_ReleaseReset\n
1261   *         AHB3RSTCR    IACRSTC       LL_AHB3_GRP1_ReleaseReset
1262   * @param  Periphs This parameter can be a combination of the following values:
1263   *         @arg @ref LL_AHB3_GRP1_PERIPH_RNG
1264   *         @arg @ref LL_AHB3_GRP1_PERIPH_HASH
1265   *         @arg @ref LL_AHB3_GRP1_PERIPH_CRYP (*)
1266   *         @arg @ref LL_AHB3_GRP1_PERIPH_SAES (*)
1267   *         @arg @ref LL_AHB3_GRP1_PERIPH_PKA
1268   *         @arg @ref LL_AHB3_GRP1_PERIPH_IAC
1269   *
1270   *         (*) value not defined in all devices.
1271   * @retval None
1272   */
LL_AHB3_GRP1_ReleaseReset(uint32_t Periphs)1273 __STATIC_INLINE void LL_AHB3_GRP1_ReleaseReset(uint32_t Periphs)
1274 {
1275   WRITE_REG(RCC->AHB3RSTCR, Periphs);
1276 }
1277 
1278 /**
1279   * @brief  Enable AHB3 peripherals clock during Low Power mode.
1280   * @rmtoll AHB3LPENSR   RNGLPENS      LL_AHB3_GRP1_EnableClockLowPower\n
1281   *         AHB3LPENSR   HASHLPENS     LL_AHB3_GRP1_EnableClockLowPower\n
1282   *         AHB3LPENSR   CRYPLPENS     LL_AHB3_GRP1_EnableClockLowPower\n  (*)
1283   *         AHB3LPENSR   SAESLPENS     LL_AHB3_GRP1_EnableClockLowPower\n  (*)
1284   *         AHB3LPENSR   PKALPENS      LL_AHB3_GRP1_EnableClockLowPower\n
1285   *         AHB3LPENSR   RIFSCLPENS    LL_AHB3_GRP1_EnableClockLowPower\n
1286   *         AHB3LPENSR   RISAFLPENS    LL_AHB3_GRP1_EnableClockLowPower\n
1287   *         AHB3LPENSR   IACLPENS      LL_AHB3_GRP1_EnableClockLowPower
1288   * @param  Periphs This parameter can be a combination of the following values:
1289   *         @arg @ref LL_AHB3_GRP1_PERIPH_RNG
1290   *         @arg @ref LL_AHB3_GRP1_PERIPH_HASH
1291   *         @arg @ref LL_AHB3_GRP1_PERIPH_CRYP (*)
1292   *         @arg @ref LL_AHB3_GRP1_PERIPH_SAES (*)
1293   *         @arg @ref LL_AHB3_GRP1_PERIPH_PKA
1294   *         @arg @ref LL_AHB3_GRP1_PERIPH_RIFSC
1295   *         @arg @ref LL_AHB3_GRP1_PERIPH_RISAF
1296   *         @arg @ref LL_AHB3_GRP1_PERIPH_IAC
1297   *
1298   *         (*) value not defined in all devices.
1299   * @retval None
1300   */
LL_AHB3_GRP1_EnableClockLowPower(uint32_t Periphs)1301 __STATIC_INLINE void LL_AHB3_GRP1_EnableClockLowPower(uint32_t Periphs)
1302 {
1303   __IO uint32_t tmpreg;
1304   WRITE_REG(RCC->AHB3LPENSR, Periphs);
1305   /* Delay after an RCC peripheral clock enabling */
1306   tmpreg = READ_REG(RCC->AHB3LPENR);
1307   (void)tmpreg;
1308 }
1309 
1310 /**
1311   * @brief  Check if AHB3 peripheral clock during Low Power mode is enabled or not .
1312   * @rmtoll AHB3LPENR    RNGLPEN       LL_AHB3_GRP1_IsEnabledClockLowPower\n
1313   *         AHB3LPENR    HASHLPEN      LL_AHB3_GRP1_IsEnabledClockLowPower\n
1314   *         AHB3LPENR    CRYPLPEN      LL_AHB3_GRP1_IsEnabledClockLowPower\n  (*)
1315   *         AHB3LPENR    SAESLPEN      LL_AHB3_GRP1_IsEnabledClockLowPower\n  (*)
1316   *         AHB3LPENR    PKALPEN       LL_AHB3_GRP1_IsEnabledClockLowPower\n
1317   *         AHB3LPENR    RIFSCLPEN     LL_AHB3_GRP1_IsEnabledClockLowPower\n
1318   *         AHB3LPENR    RISAFLPEN     LL_AHB3_GRP1_IsEnabledClockLowPower\n
1319   *         AHB3LPENR    IACLPEN       LL_AHB3_GRP1_IsEnabledClockLowPower
1320   * @param  Periphs This parameter can be a combination of the following values:
1321   *         @arg @ref LL_AHB3_GRP1_PERIPH_RNG
1322   *         @arg @ref LL_AHB3_GRP1_PERIPH_HASH
1323   *         @arg @ref LL_AHB3_GRP1_PERIPH_CRYP (*)
1324   *         @arg @ref LL_AHB3_GRP1_PERIPH_SAES (*)
1325   *         @arg @ref LL_AHB3_GRP1_PERIPH_PKA
1326   *         @arg @ref LL_AHB3_GRP1_PERIPH_RIFSC
1327   *         @arg @ref LL_AHB3_GRP1_PERIPH_RISAF
1328   *         @arg @ref LL_AHB3_GRP1_PERIPH_IAC
1329   *
1330   *         (*) value not defined in all devices.
1331   * @retval uint32_t
1332   */
LL_AHB3_GRP1_IsEnabledClockLowPower(uint32_t Periphs)1333 __STATIC_INLINE uint32_t LL_AHB3_GRP1_IsEnabledClockLowPower(uint32_t Periphs)
1334 {
1335   return ((READ_BIT(RCC->AHB3LPENR, Periphs) == Periphs) ? 1UL : 0UL);
1336 }
1337 
1338 /**
1339   * @brief  Disable AHB3 peripherals clock during Low Power mode.
1340   * @rmtoll AHB3LPENCR   RNGLPENC      LL_AHB3_GRP1_DisableClockLowPower\n
1341   *         AHB3LPENCR   HASHLPENC     LL_AHB3_GRP1_DisableClockLowPower\n
1342   *         AHB3LPENCR   CRYPLPENC     LL_AHB3_GRP1_DisableClockLowPower\n  (*)
1343   *         AHB3LPENCR   SAESLPENC     LL_AHB3_GRP1_DisableClockLowPower\n  (*)
1344   *         AHB3LPENCR   PKALPENC      LL_AHB3_GRP1_DisableClockLowPower\n
1345   *         AHB3LPENCR   RIFSCLPENC    LL_AHB3_GRP1_DisableClockLowPower\n
1346   *         AHB3LPENCR   RISAFLPENC    LL_AHB3_GRP1_DisableClockLowPower\n
1347   *         AHB3LPENCR   IACLPENC      LL_AHB3_GRP1_DisableClockLowPower
1348   * @param  Periphs This parameter can be a combination of the following values:
1349   *         @arg @ref LL_AHB3_GRP1_PERIPH_RNG
1350   *         @arg @ref LL_AHB3_GRP1_PERIPH_HASH
1351   *         @arg @ref LL_AHB3_GRP1_PERIPH_CRYP (*)
1352   *         @arg @ref LL_AHB3_GRP1_PERIPH_SAES (*)
1353   *         @arg @ref LL_AHB3_GRP1_PERIPH_PKA
1354   *         @arg @ref LL_AHB3_GRP1_PERIPH_RIFSC
1355   *         @arg @ref LL_AHB3_GRP1_PERIPH_RISAF
1356   *         @arg @ref LL_AHB3_GRP1_PERIPH_IAC
1357   *
1358   *         (*) value not defined in all devices.
1359   * @retval None
1360   */
LL_AHB3_GRP1_DisableClockLowPower(uint32_t Periphs)1361 __STATIC_INLINE void LL_AHB3_GRP1_DisableClockLowPower(uint32_t Periphs)
1362 {
1363   WRITE_REG(RCC->AHB3LPENCR, Periphs);
1364 }
1365 
1366 /**
1367   * @}
1368   */
1369 
1370 /** @defgroup BUS_LL_EF_AHB4 AHB4
1371   * @{
1372   */
1373 
1374 /**
1375   * @brief  Enable AHB4 peripherals clock.
1376   * @rmtoll AHB4ENSR     GPIOAENS      LL_AHB4_GRP1_EnableClock\n
1377   *         AHB4ENSR     GPIOBENS      LL_AHB4_GRP1_EnableClock\n
1378   *         AHB4ENSR     GPIOCENS      LL_AHB4_GRP1_EnableClock\n
1379   *         AHB4ENSR     GPIODENS      LL_AHB4_GRP1_EnableClock\n
1380   *         AHB4ENSR     GPIOEENS      LL_AHB4_GRP1_EnableClock\n
1381   *         AHB4ENSR     GPIOFENS      LL_AHB4_GRP1_EnableClock\n
1382   *         AHB4ENSR     GPIOGENS      LL_AHB4_GRP1_EnableClock\n
1383   *         AHB4ENSR     GPIOHENS      LL_AHB4_GRP1_EnableClock\n
1384   *         AHB4ENSR     GPIONENS      LL_AHB4_GRP1_EnableClock\n
1385   *         AHB4ENSR     GPIOOENS      LL_AHB4_GRP1_EnableClock\n
1386   *         AHB4ENSR     GPIOPENS      LL_AHB4_GRP1_EnableClock\n
1387   *         AHB4ENSR     GPIOQENS      LL_AHB4_GRP1_EnableClock\n
1388   *         AHB4ENSR     PWRENS        LL_AHB4_GRP1_EnableClock\n
1389   *         AHB4ENSR     CRCENS        LL_AHB4_GRP1_EnableClock
1390   * @param  Periphs This parameter can be a combination of the following values:
1391   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOA
1392   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOB
1393   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOC
1394   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOD
1395   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOE
1396   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOF
1397   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOG
1398   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOH
1399   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPION
1400   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOO
1401   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOP
1402   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOQ
1403   *         @arg @ref LL_AHB4_GRP1_PERIPH_PWR
1404   *         @arg @ref LL_AHB4_GRP1_PERIPH_CRC
1405   * @retval None
1406   */
LL_AHB4_GRP1_EnableClock(uint32_t Periphs)1407 __STATIC_INLINE void LL_AHB4_GRP1_EnableClock(uint32_t Periphs)
1408 {
1409   __IO uint32_t tmpreg;
1410   WRITE_REG(RCC->AHB4ENSR, Periphs);
1411   /* Delay after an RCC peripheral clock enabling */
1412   tmpreg = READ_REG(RCC->AHB4ENR);
1413   (void)tmpreg;
1414 }
1415 
1416 /**
1417   * @brief  Check if AHB4 peripheral clock is enabled or not
1418   * @rmtoll AHB4ENR      GPIOAEN       LL_AHB4_GRP1_IsEnabledClock\n
1419   *         AHB4ENR      GPIOBEN       LL_AHB4_GRP1_IsEnabledClock\n
1420   *         AHB4ENR      GPIOCEN       LL_AHB4_GRP1_IsEnabledClock\n
1421   *         AHB4ENR      GPIODEN       LL_AHB4_GRP1_IsEnabledClock\n
1422   *         AHB4ENR      GPIOEEN       LL_AHB4_GRP1_IsEnabledClock\n
1423   *         AHB4ENR      GPIOFEN       LL_AHB4_GRP1_IsEnabledClock\n
1424   *         AHB4ENR      GPIOGEN       LL_AHB4_GRP1_IsEnabledClock\n
1425   *         AHB4ENR      GPIOHEN       LL_AHB4_GRP1_IsEnabledClock\n
1426   *         AHB4ENR      GPIONEN       LL_AHB4_GRP1_IsEnabledClock\n
1427   *         AHB4ENR      GPIOOEN       LL_AHB4_GRP1_IsEnabledClock\n
1428   *         AHB4ENR      GPIOPEN       LL_AHB4_GRP1_IsEnabledClock\n
1429   *         AHB4ENR      GPIOQEN       LL_AHB4_GRP1_IsEnabledClock\n
1430   *         AHB4ENR      PWREN         LL_AHB4_GRP1_IsEnabledClock\n
1431   *         AHB4ENR      CRCEN         LL_AHB4_GRP1_IsEnabledClock
1432   * @param  Periphs This parameter can be a combination of the following values:
1433   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOA
1434   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOB
1435   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOC
1436   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOD
1437   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOE
1438   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOF
1439   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOG
1440   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOH
1441   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPION
1442   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOO
1443   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOP
1444   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOQ
1445   *         @arg @ref LL_AHB4_GRP1_PERIPH_PWR
1446   *         @arg @ref LL_AHB4_GRP1_PERIPH_CRC
1447   * @retval uint32_t
1448   */
LL_AHB4_GRP1_IsEnabledClock(uint32_t Periphs)1449 __STATIC_INLINE uint32_t LL_AHB4_GRP1_IsEnabledClock(uint32_t Periphs)
1450 {
1451   return ((READ_BIT(RCC->AHB4ENR, Periphs) == Periphs) ? 1UL : 0UL);
1452 }
1453 
1454 /**
1455   * @brief  Disable AHB4 peripherals clock.
1456   * @rmtoll AHB4ENCR     GPIOAENC      LL_AHB4_GRP1_DisableClock\n
1457   *         AHB4ENCR     GPIOBENC      LL_AHB4_GRP1_DisableClock\n
1458   *         AHB4ENCR     GPIOCENC      LL_AHB4_GRP1_DisableClock\n
1459   *         AHB4ENCR     GPIODENC      LL_AHB4_GRP1_DisableClock\n
1460   *         AHB4ENCR     GPIOEENC      LL_AHB4_GRP1_DisableClock\n
1461   *         AHB4ENCR     GPIOFENC      LL_AHB4_GRP1_DisableClock\n
1462   *         AHB4ENCR     GPIOGENC      LL_AHB4_GRP1_DisableClock\n
1463   *         AHB4ENCR     GPIOHENC      LL_AHB4_GRP1_DisableClock\n
1464   *         AHB4ENCR     GPIONENC      LL_AHB4_GRP1_DisableClock\n
1465   *         AHB4ENCR     GPIOOENC      LL_AHB4_GRP1_DisableClock\n
1466   *         AHB4ENCR     GPIOPENC      LL_AHB4_GRP1_DisableClock\n
1467   *         AHB4ENCR     GPIOQENC      LL_AHB4_GRP1_DisableClock\n
1468   *         AHB4ENCR     PWRENC        LL_AHB4_GRP1_DisableClock\n
1469   *         AHB4ENCR     CRCENC        LL_AHB4_GRP1_DisableClock
1470   * @param  Periphs This parameter can be a combination of the following values:
1471   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOA
1472   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOB
1473   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOC
1474   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOD
1475   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOE
1476   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOF
1477   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOG
1478   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOH
1479   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPION
1480   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOO
1481   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOP
1482   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOQ
1483   *         @arg @ref LL_AHB4_GRP1_PERIPH_PWR
1484   *         @arg @ref LL_AHB4_GRP1_PERIPH_CRC
1485   * @retval None
1486   */
LL_AHB4_GRP1_DisableClock(uint32_t Periphs)1487 __STATIC_INLINE void LL_AHB4_GRP1_DisableClock(uint32_t Periphs)
1488 {
1489   WRITE_REG(RCC->AHB4ENCR, Periphs);
1490 }
1491 
1492 /**
1493   * @brief  Force AHB4 peripherals reset.
1494   * @rmtoll AHB4RSTSR     GPIOARSTS      LL_AHB4_GRP1_ForceReset\n
1495   *         AHB4RSTSR     GPIOBRSTS      LL_AHB4_GRP1_ForceReset\n
1496   *         AHB4RSTSR     GPIOCRSTS      LL_AHB4_GRP1_ForceReset\n
1497   *         AHB4RSTSR     GPIODRSTS      LL_AHB4_GRP1_ForceReset\n
1498   *         AHB4RSTSR     GPIOERSTS      LL_AHB4_GRP1_ForceReset\n
1499   *         AHB4RSTSR     GPIOFRSTS      LL_AHB4_GRP1_ForceReset\n
1500   *         AHB4RSTSR     GPIOGRSTS      LL_AHB4_GRP1_ForceReset\n
1501   *         AHB4RSTSR     GPIOHRSTS      LL_AHB4_GRP1_ForceReset\n
1502   *         AHB4RSTSR     GPIONRSTS      LL_AHB4_GRP1_ForceReset\n
1503   *         AHB4RSTSR     GPIOORSTS      LL_AHB4_GRP1_ForceReset\n
1504   *         AHB4RSTSR     GPIOPRSTS      LL_AHB4_GRP1_ForceReset\n
1505   *         AHB4RSTSR     GPIOQRSTS      LL_AHB4_GRP1_ForceReset\n
1506   *         AHB4RSTSR     CRCRSTS        LL_AHB4_GRP1_ForceReset\n
1507   *         AHB4RSTSR     BKPRAMRSTS     LL_AHB4_GRP1_ForceReset
1508   * @param  Periphs This parameter can be a combination of the following values:
1509   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOA
1510   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOB
1511   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOC
1512   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOD
1513   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOE
1514   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOF
1515   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOG
1516   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOH
1517   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPION
1518   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOO
1519   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOP
1520   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOQ
1521   *         @arg @ref LL_AHB4_GRP1_PERIPH_PWR
1522   *         @arg @ref LL_AHB4_GRP1_PERIPH_CRC
1523   * @retval None
1524   */
LL_AHB4_GRP1_ForceReset(uint32_t Periphs)1525 __STATIC_INLINE void LL_AHB4_GRP1_ForceReset(uint32_t Periphs)
1526 {
1527   WRITE_REG(RCC->AHB4RSTSR, Periphs);
1528 }
1529 
1530 /**
1531   * @brief  Release AHB4 peripherals reset.
1532   * @rmtoll AHB4RSTCR     GPIOARSTC      LL_AHB4_GRP1_ReleaseReset\n
1533   *         AHB4RSTCR     GPIOBRSTC      LL_AHB4_GRP1_ReleaseReset\n
1534   *         AHB4RSTCR     GPIOCRSTC      LL_AHB4_GRP1_ReleaseReset\n
1535   *         AHB4RSTCR     GPIODRSTC      LL_AHB4_GRP1_ReleaseReset\n
1536   *         AHB4RSTCR     GPIOERSTC      LL_AHB4_GRP1_ReleaseReset\n
1537   *         AHB4RSTCR     GPIOFRSTC      LL_AHB4_GRP1_ReleaseReset\n
1538   *         AHB4RSTCR     GPIOGRSTC      LL_AHB4_GRP1_ReleaseReset\n
1539   *         AHB4RSTCR     GPIOHRSTC      LL_AHB4_GRP1_ReleaseReset\n
1540   *         AHB4RSTCR     GPIONRSTC      LL_AHB4_GRP1_ReleaseReset\n
1541   *         AHB4RSTCR     GPIOORSTC      LL_AHB4_GRP1_ReleaseReset\n
1542   *         AHB4RSTCR     GPIOPRSTC      LL_AHB4_GRP1_ReleaseReset\n
1543   *         AHB4RSTCR     GPIOQRSTC      LL_AHB4_GRP1_ReleaseReset\n
1544   *         AHB4RSTCR     CRCRSTC        LL_AHB4_GRP1_ReleaseReset\n
1545   *         AHB4RSTCR     BKPRAMRSTC     LL_AHB4_GRP1_ReleaseReset
1546   * @param  Periphs This parameter can be a combination of the following values:
1547   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOA
1548   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOB
1549   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOC
1550   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOD
1551   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOE
1552   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOF
1553   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOG
1554   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOH
1555   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPION
1556   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOO
1557   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOP
1558   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOQ
1559   *         @arg @ref LL_AHB4_GRP1_PERIPH_PWR
1560   *         @arg @ref LL_AHB4_GRP1_PERIPH_CRC
1561   * @retval None
1562   */
LL_AHB4_GRP1_ReleaseReset(uint32_t Periphs)1563 __STATIC_INLINE void LL_AHB4_GRP1_ReleaseReset(uint32_t Periphs)
1564 {
1565   WRITE_REG(RCC->AHB4RSTCR, Periphs);
1566 }
1567 
1568 /**
1569   * @brief  Enable AHB4 peripherals clock during Low Power mode.
1570   * @rmtoll AHB4LPENSR    GPIOALPENS     LL_AHB4_GRP1_EnableClockLowPower\n
1571   *         AHB4LPENSR    GPIOBLPENS     LL_AHB4_GRP1_EnableClockLowPower\n
1572   *         AHB4LPENSR    GPIOCLPENS     LL_AHB4_GRP1_EnableClockLowPower\n
1573   *         AHB4LPENSR    GPIODLPENS     LL_AHB4_GRP1_EnableClockLowPower\n
1574   *         AHB4LPENSR    GPIOELPENS     LL_AHB4_GRP1_EnableClockLowPower\n
1575   *         AHB4LPENSR    GPIOFLPENS     LL_AHB4_GRP1_EnableClockLowPower\n
1576   *         AHB4LPENSR    GPIOGLPENS     LL_AHB4_GRP1_EnableClockLowPower\n
1577   *         AHB4LPENSR    GPIOHLPENS     LL_AHB4_GRP1_EnableClockLowPower\n
1578   *         AHB4LPENSR    GPIONLPENS     LL_AHB4_GRP1_EnableClockLowPower\n
1579   *         AHB4LPENSR    GPIOOLPENS     LL_AHB4_GRP1_EnableClockLowPower\n
1580   *         AHB4LPENSR    GPIOPLPENS     LL_AHB4_GRP1_EnableClockLowPower\n
1581   *         AHB4LPENSR    GPIOQLPENS     LL_AHB4_GRP1_EnableClockLowPower\n
1582   *         AHB4LPENSR    CRCLPENS       LL_AHB4_GRP1_EnableClockLowPower\n
1583   *         AHB4LPENSR    BKPRAMLPENS    LL_AHB4_GRP1_EnableClockLowPower
1584   * @param  Periphs This parameter can be a combination of the following values:
1585   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOA
1586   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOB
1587   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOC
1588   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOD
1589   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOE
1590   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOF
1591   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOG
1592   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOH
1593   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPION
1594   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOO
1595   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOP
1596   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOQ
1597   *         @arg @ref LL_AHB4_GRP1_PERIPH_PWR
1598   *         @arg @ref LL_AHB4_GRP1_PERIPH_CRC
1599   * @retval None
1600   */
LL_AHB4_GRP1_EnableClockLowPower(uint32_t Periphs)1601 __STATIC_INLINE void LL_AHB4_GRP1_EnableClockLowPower(uint32_t Periphs)
1602 {
1603   __IO uint32_t tmpreg;
1604   WRITE_REG(RCC->AHB4LPENSR, Periphs);
1605   /* Delay after an RCC peripheral clock enabling */
1606   tmpreg = READ_REG(RCC->AHB4LPENR);
1607   (void)tmpreg;
1608 }
1609 
1610 /**
1611   * @brief  Check if AHB4 peripheral clock during Low Power mode is enabled or not .
1612   * @rmtoll AHB4LPENR     GPIOALPEN      LL_AHB4_GRP1_IsEnabledClockLowPower\n
1613   *         AHB4LPENR     GPIOBLPEN      LL_AHB4_GRP1_IsEnabledClockLowPower\n
1614   *         AHB4LPENR     GPIOCLPEN      LL_AHB4_GRP1_IsEnabledClockLowPower\n
1615   *         AHB4LPENR     GPIODLPEN      LL_AHB4_GRP1_IsEnabledClockLowPower\n
1616   *         AHB4LPENR     GPIOELPEN      LL_AHB4_GRP1_IsEnabledClockLowPower\n
1617   *         AHB4LPENR     GPIOFLPEN      LL_AHB4_GRP1_IsEnabledClockLowPower\n
1618   *         AHB4LPENR     GPIOGLPEN      LL_AHB4_GRP1_IsEnabledClockLowPower\n
1619   *         AHB4LPENR     GPIOHLPEN      LL_AHB4_GRP1_IsEnabledClockLowPower\n
1620   *         AHB4LPENR     GPIONLPEN      LL_AHB4_GRP1_IsEnabledClockLowPower\n
1621   *         AHB4LPENR     GPIOOLPEN      LL_AHB4_GRP1_IsEnabledClockLowPower\n
1622   *         AHB4LPENR     GPIOPLPEN      LL_AHB4_GRP1_IsEnabledClockLowPower\n
1623   *         AHB4LPENR     GPIOQLPEN      LL_AHB4_GRP1_IsEnabledClockLowPower\n
1624   *         AHB4LPENR     PWRLPEN        LL_AHB4_GRP1_IsEnabledClockLowPower\n
1625   *         AHB4LPENR     CRCLPEN        LL_AHB4_GRP1_IsEnabledClockLowPower
1626   * @param  Periphs This parameter can be a combination of the following values:
1627   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOA
1628   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOB
1629   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOC
1630   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOD
1631   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOE
1632   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOF
1633   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOG
1634   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOH
1635   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPION
1636   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOO
1637   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOP
1638   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOQ
1639   *         @arg @ref LL_AHB4_GRP1_PERIPH_PWR
1640   *         @arg @ref LL_AHB4_GRP1_PERIPH_CRC
1641   * @retval uint32_t
1642   */
LL_AHB4_GRP1_IsEnabledClockLowPower(uint32_t Periphs)1643 __STATIC_INLINE uint32_t LL_AHB4_GRP1_IsEnabledClockLowPower(uint32_t Periphs)
1644 {
1645   return ((READ_BIT(RCC->AHB4LPENR, Periphs) == Periphs) ? 1UL : 0UL);
1646 }
1647 
1648 /**
1649   * @brief  Disable AHB4 peripherals clock during Low Power mode.
1650   * @rmtoll AHB4LPENCR    GPIOALPENC     LL_AHB4_GRP1_DisableClockLowPower\n
1651   *         AHB4LPENCR    GPIOBLPENC     LL_AHB4_GRP1_DisableClockLowPower\n
1652   *         AHB4LPENCR    GPIOCLPENC     LL_AHB4_GRP1_DisableClockLowPower\n
1653   *         AHB4LPENCR    GPIODLPENC     LL_AHB4_GRP1_DisableClockLowPower\n
1654   *         AHB4LPENCR    GPIOELPENC     LL_AHB4_GRP1_DisableClockLowPower\n
1655   *         AHB4LPENCR    GPIOFLPENC     LL_AHB4_GRP1_DisableClockLowPower\n
1656   *         AHB4LPENCR    GPIOGLPENC     LL_AHB4_GRP1_DisableClockLowPower\n
1657   *         AHB4LPENCR    GPIOHLPENC     LL_AHB4_GRP1_DisableClockLowPower\n
1658   *         AHB4LPENCR    GPIONLPENC     LL_AHB4_GRP1_DisableClockLowPower\n
1659   *         AHB4LPENCR    GPIOOLPENC     LL_AHB4_GRP1_DisableClockLowPower\n
1660   *         AHB4LPENCR    GPIOPLPENC     LL_AHB4_GRP1_DisableClockLowPower\n
1661   *         AHB4LPENCR    GPIOQLPENC     LL_AHB4_GRP1_DisableClockLowPower\n
1662   *         AHB4LPENCR    PWRLPENC       LL_AHB4_GRP1_DisableClockLowPower\n
1663   *         AHB4LPENCR    CRCLPENC       LL_AHB4_GRP1_DisableClockLowPower
1664   * @param  Periphs This parameter can be a combination of the following values:
1665   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOA
1666   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOB
1667   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOC
1668   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOD
1669   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOE
1670   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOF
1671   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOG
1672   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOH
1673   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPION
1674   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOO
1675   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOP
1676   *         @arg @ref LL_AHB4_GRP1_PERIPH_GPIOQ
1677   *         @arg @ref LL_AHB4_GRP1_PERIPH_PWR
1678   *         @arg @ref LL_AHB4_GRP1_PERIPH_CRC
1679   * @retval None
1680   */
LL_AHB4_GRP1_DisableClockLowPower(uint32_t Periphs)1681 __STATIC_INLINE void LL_AHB4_GRP1_DisableClockLowPower(uint32_t Periphs)
1682 {
1683   WRITE_REG(RCC->AHB4LPENCR, Periphs);
1684 }
1685 
1686 /**
1687   * @}
1688   */
1689 
1690 /** @defgroup BUS_LL_EF_AHB5 AHB5
1691   * @{
1692   */
1693 
1694 /**
1695   * @brief  Enable AHB5 peripherals clock.
1696   * @rmtoll AHB5ENSR     HPDMA1ENS     LL_AHB5_GRP1_EnableClock\n
1697   *         AHB5ENSR     DMA2DENS      LL_AHB5_GRP1_EnableClock\n
1698   *         AHB5ENSR     JPEGENS       LL_AHB5_GRP1_EnableClock\n
1699   *         AHB5ENSR     FMCENS        LL_AHB5_GRP1_EnableClock\n
1700   *         AHB5ENSR     XSPI1ENS      LL_AHB5_GRP1_EnableClock\n
1701   *         AHB5ENSR     PSSIENS       LL_AHB5_GRP1_EnableClock\n
1702   *         AHB5ENSR     SDMMC2ENS     LL_AHB5_GRP1_EnableClock\n
1703   *         AHB5ENSR     SDMMC1ENS     LL_AHB5_GRP1_EnableClock\n
1704   *         AHB5ENSR     XSPI2ENS      LL_AHB5_GRP1_EnableClock\n
1705   *         AHB5ENSR     XSPIMENS      LL_AHB5_GRP1_EnableClock\n
1706   *         AHB5ENSR     MCE1ENS       LL_AHB5_GRP1_EnableClock\n (*)
1707   *         AHB5ENSR     MCE2ENS       LL_AHB5_GRP1_EnableClock\n (*)
1708   *         AHB5ENSR     MCE3ENS       LL_AHB5_GRP1_EnableClock\n (*)
1709   *         AHB5ENSR     XSPI3ENS      LL_AHB5_GRP1_EnableClock\n
1710   *         AHB5ENSR     MCE4ENS       LL_AHB5_GRP1_EnableClock\n (*)
1711   *         AHB5ENSR     GFXMMUENS     LL_AHB5_GRP1_EnableClock\n
1712   *         AHB5ENSR     GPU2DENS      LL_AHB5_GRP1_EnableClock\n
1713   *         AHB5ENSR     ETH1MACENS    LL_AHB5_GRP1_EnableClock\n
1714   *         AHB5ENSR     ETH1TXENS     LL_AHB5_GRP1_EnableClock\n
1715   *         AHB5ENSR     ETH1RXENS     LL_AHB5_GRP1_EnableClock\n
1716   *         AHB5ENSR     ETH1ENS       LL_AHB5_GRP1_EnableClock\n
1717   *         AHB5ENSR     OTG1ENS       LL_AHB5_GRP1_EnableClock\n
1718   *         AHB5ENSR     OTGPHY1ENS    LL_AHB5_GRP1_EnableClock\n
1719   *         AHB5ENSR     OTGPHY2ENS    LL_AHB5_GRP1_EnableClock\n
1720   *         AHB5ENSR     OTG2ENS       LL_AHB5_GRP1_EnableClock\n
1721   *         AHB5ENSR     CACHEAXIENS   LL_AHB5_GRP1_EnableClock\n
1722   *         AHB5ENSR     NPUENS        LL_AHB5_GRP1_EnableClock
1723   * @param  Periphs This parameter can be a combination of the following values:
1724   *         @arg @ref LL_AHB5_GRP1_PERIPH_HPDMA1
1725   *         @arg @ref LL_AHB5_GRP1_PERIPH_DMA2D
1726   *         @arg @ref LL_AHB5_GRP1_PERIPH_JPEG
1727   *         @arg @ref LL_AHB5_GRP1_PERIPH_FMC
1728   *         @arg @ref LL_AHB5_GRP1_PERIPH_XSPI1
1729   *         @arg @ref LL_AHB5_GRP1_PERIPH_XSPI2
1730   *         @arg @ref LL_AHB5_GRP1_PERIPH_XSPI3
1731   *         @arg @ref LL_AHB5_GRP1_PERIPH_XSPIM
1732   *         @arg @ref LL_AHB5_GRP1_PERIPH_PSSI
1733   *         @arg @ref LL_AHB5_GRP1_PERIPH_SDMMC1
1734   *         @arg @ref LL_AHB5_GRP1_PERIPH_SDMMC2
1735   *         @arg @ref LL_AHB5_GRP1_PERIPH_MCE1 (*)
1736   *         @arg @ref LL_AHB5_GRP1_PERIPH_MCE2 (*)
1737   *         @arg @ref LL_AHB5_GRP1_PERIPH_MCE3 (*)
1738   *         @arg @ref LL_AHB5_GRP1_PERIPH_MCE4 (*)
1739   *         @arg @ref LL_AHB5_GRP1_PERIPH_GFXMMU
1740   *         @arg @ref LL_AHB5_GRP1_PERIPH_GPU2D
1741   *         @arg @ref LL_AHB5_GRP1_PERIPH_ETH1
1742   *         @arg @ref LL_AHB5_GRP1_PERIPH_ETH1MAC
1743   *         @arg @ref LL_AHB5_GRP1_PERIPH_ETH1TX
1744   *         @arg @ref LL_AHB5_GRP1_PERIPH_ETH1RX
1745   *         @arg @ref LL_AHB5_GRP1_PERIPH_OTG1
1746   *         @arg @ref LL_AHB5_GRP1_PERIPH_OTG2
1747   *         @arg @ref LL_AHB5_GRP1_PERIPH_OTGPHY1
1748   *         @arg @ref LL_AHB5_GRP1_PERIPH_OTGPHY2
1749   *         @arg @ref LL_AHB5_GRP1_PERIPH_CACHEAXI
1750   *         @arg @ref LL_AHB5_GRP1_PERIPH_NPU
1751   *
1752   *         (*) value not defined in all devices.
1753   * @retval None
1754   */
LL_AHB5_GRP1_EnableClock(uint32_t Periphs)1755 __STATIC_INLINE void LL_AHB5_GRP1_EnableClock(uint32_t Periphs)
1756 {
1757   __IO uint32_t tmpreg;
1758   WRITE_REG(RCC->AHB5ENSR, Periphs);
1759   /* Delay after an RCC peripheral clock enabling */
1760   tmpreg = READ_REG(RCC->AHB5ENR);
1761   (void)tmpreg;
1762 }
1763 
1764 /**
1765   * @brief  Check if AHB5 peripheral clock is enabled or not
1766   * @rmtoll AHB5ENR      HPDMA1EN      LL_AHB5_GRP1_IsEnabledClock\n
1767   *         AHB5ENR      DMA2DEN       LL_AHB5_GRP1_IsEnabledClock\n
1768   *         AHB5ENR      JPEGEN        LL_AHB5_GRP1_IsEnabledClock\n
1769   *         AHB5ENR      FMCEN         LL_AHB5_GRP1_IsEnabledClock\n
1770   *         AHB5ENR      XSPI1EN       LL_AHB5_GRP1_IsEnabledClock\n
1771   *         AHB5ENR      PSSIEN        LL_AHB5_GRP1_IsEnabledClock\n
1772   *         AHB5ENR      SDMMC2EN      LL_AHB5_GRP1_IsEnabledClock\n
1773   *         AHB5ENR      SDMMC1EN      LL_AHB5_GRP1_IsEnabledClock\n
1774   *         AHB5ENR      XSPI2EN       LL_AHB5_GRP1_IsEnabledClock\n
1775   *         AHB5ENR      XSPIMEN       LL_AHB5_GRP1_IsEnabledClock\n
1776   *         AHB5ENR      MCE1EN        LL_AHB5_GRP1_IsEnabledClock\n (*)
1777   *         AHB5ENR      MCE2EN        LL_AHB5_GRP1_IsEnabledClock\n (*)
1778   *         AHB5ENR      MCE3EN        LL_AHB5_GRP1_IsEnabledClock\n (*)
1779   *         AHB5ENR      XSPI3EN       LL_AHB5_GRP1_IsEnabledClock\n
1780   *         AHB5ENR      MCE4EN        LL_AHB5_GRP1_IsEnabledClock\n (*)
1781   *         AHB5ENR      GFXMMUEN      LL_AHB5_GRP1_IsEnabledClock\n
1782   *         AHB5ENR      GPU2DEN       LL_AHB5_GRP1_IsEnabledClock\n
1783   *         AHB5ENR      ETH1MACEN     LL_AHB5_GRP1_IsEnabledClock\n
1784   *         AHB5ENR      ETH1TXEN      LL_AHB5_GRP1_IsEnabledClock\n
1785   *         AHB5ENR      ETH1RXEN      LL_AHB5_GRP1_IsEnabledClock\n
1786   *         AHB5ENR      ETH1EN        LL_AHB5_GRP1_IsEnabledClock\n
1787   *         AHB5ENR      OTG1EN        LL_AHB5_GRP1_IsEnabledClock\n
1788   *         AHB5ENR      OTGPHY1EN     LL_AHB5_GRP1_IsEnabledClock\n
1789   *         AHB5ENR      OTGPHY2EN     LL_AHB5_GRP1_IsEnabledClock\n
1790   *         AHB5ENR      OTG2EN        LL_AHB5_GRP1_IsEnabledClock\n
1791   *         AHB5ENR      CACHEAXIEN    LL_AHB5_GRP1_IsEnabledClock\n
1792   *         AHB5ENR      NPUEN         LL_AHB5_GRP1_IsEnabledClock
1793   * @param  Periphs This parameter can be a combination of the following values:
1794   *         @arg @ref LL_AHB5_GRP1_PERIPH_HPDMA1
1795   *         @arg @ref LL_AHB5_GRP1_PERIPH_DMA2D
1796   *         @arg @ref LL_AHB5_GRP1_PERIPH_JPEG
1797   *         @arg @ref LL_AHB5_GRP1_PERIPH_FMC
1798   *         @arg @ref LL_AHB5_GRP1_PERIPH_XSPI1
1799   *         @arg @ref LL_AHB5_GRP1_PERIPH_XSPI2
1800   *         @arg @ref LL_AHB5_GRP1_PERIPH_XSPI3
1801   *         @arg @ref LL_AHB5_GRP1_PERIPH_XSPIM
1802   *         @arg @ref LL_AHB5_GRP1_PERIPH_PSSI
1803   *         @arg @ref LL_AHB5_GRP1_PERIPH_SDMMC1
1804   *         @arg @ref LL_AHB5_GRP1_PERIPH_SDMMC2
1805   *         @arg @ref LL_AHB5_GRP1_PERIPH_MCE1 (*)
1806   *         @arg @ref LL_AHB5_GRP1_PERIPH_MCE2 (*)
1807   *         @arg @ref LL_AHB5_GRP1_PERIPH_MCE3 (*)
1808   *         @arg @ref LL_AHB5_GRP1_PERIPH_MCE4 (*)
1809   *         @arg @ref LL_AHB5_GRP1_PERIPH_GFXMMU
1810   *         @arg @ref LL_AHB5_GRP1_PERIPH_GPU2D
1811   *         @arg @ref LL_AHB5_GRP1_PERIPH_ETH1
1812   *         @arg @ref LL_AHB5_GRP1_PERIPH_ETH1MAC
1813   *         @arg @ref LL_AHB5_GRP1_PERIPH_ETH1TX
1814   *         @arg @ref LL_AHB5_GRP1_PERIPH_ETH1RX
1815   *         @arg @ref LL_AHB5_GRP1_PERIPH_OTG1
1816   *         @arg @ref LL_AHB5_GRP1_PERIPH_OTG2
1817   *         @arg @ref LL_AHB5_GRP1_PERIPH_OTGPHY1
1818   *         @arg @ref LL_AHB5_GRP1_PERIPH_OTGPHY2
1819   *         @arg @ref LL_AHB5_GRP1_PERIPH_CACHEAXI
1820   *         @arg @ref LL_AHB5_GRP1_PERIPH_NPU
1821   *
1822   *         (*) value not defined in all devices.
1823   * @retval uint32_t
1824   */
LL_AHB5_GRP1_IsEnabledClock(uint32_t Periphs)1825 __STATIC_INLINE uint32_t LL_AHB5_GRP1_IsEnabledClock(uint32_t Periphs)
1826 {
1827   return ((READ_BIT(RCC->AHB5ENR, Periphs) == Periphs) ? 1UL : 0UL);
1828 }
1829 
1830 /**
1831   * @brief  Disable AHB5 peripherals clock.
1832   * @rmtoll AHB5ENCR     HPDMA1ENC     LL_AHB5_GRP1_DisableClock\n
1833   *         AHB5ENCR     DMA2DENC      LL_AHB5_GRP1_DisableClock\n
1834   *         AHB5ENCR     JPEGENC       LL_AHB5_GRP1_DisableClock\n
1835   *         AHB5ENCR     FMCENC        LL_AHB5_GRP1_DisableClock\n
1836   *         AHB5ENCR     XSPI1ENC      LL_AHB5_GRP1_DisableClock\n
1837   *         AHB5ENCR     PSSIENC       LL_AHB5_GRP1_DisableClock\n
1838   *         AHB5ENCR     SDMMC2ENC     LL_AHB5_GRP1_DisableClock\n
1839   *         AHB5ENCR     SDMMC1ENC     LL_AHB5_GRP1_DisableClock\n
1840   *         AHB5ENCR     XSPI2ENC      LL_AHB5_GRP1_DisableClock\n
1841   *         AHB5ENCR     XSPIMENC      LL_AHB5_GRP1_DisableClock\n
1842   *         AHB5ENCR     MCE1ENC       LL_AHB5_GRP1_DisableClock\n (*)
1843   *         AHB5ENCR     MCE2ENC       LL_AHB5_GRP1_DisableClock\n (*)
1844   *         AHB5ENCR     MCE3ENC       LL_AHB5_GRP1_DisableClock\n (*)
1845   *         AHB5ENCR     XSPI3ENC      LL_AHB5_GRP1_DisableClock\n
1846   *         AHB5ENCR     MCE4ENC       LL_AHB5_GRP1_DisableClock\n (*)
1847   *         AHB5ENCR     GFXMMUENC     LL_AHB5_GRP1_DisableClock\n
1848   *         AHB5ENCR     GPU2DENC      LL_AHB5_GRP1_DisableClock\n
1849   *         AHB5ENCR     ETH1MACENC    LL_AHB5_GRP1_DisableClock\n
1850   *         AHB5ENCR     ETH1TXENC     LL_AHB5_GRP1_DisableClock\n
1851   *         AHB5ENCR     ETH1RXENC     LL_AHB5_GRP1_DisableClock\n
1852   *         AHB5ENCR     ETH1ENC       LL_AHB5_GRP1_DisableClock\n
1853   *         AHB5ENCR     OTG1ENC       LL_AHB5_GRP1_DisableClock\n
1854   *         AHB5ENCR     OTGPHY1ENC    LL_AHB5_GRP1_DisableClock\n
1855   *         AHB5ENCR     OTGPHY2ENC    LL_AHB5_GRP1_DisableClock\n
1856   *         AHB5ENCR     OTG2ENC       LL_AHB5_GRP1_DisableClock\n
1857   *         AHB5ENCR     CACHEAXIENC   LL_AHB5_GRP1_DisableClock\n
1858   *         AHB5ENCR     NPUENC        LL_AHB5_GRP1_DisableClock
1859   * @param  Periphs This parameter can be a combination of the following values:
1860   *         @arg @ref LL_AHB5_GRP1_PERIPH_HPDMA1
1861   *         @arg @ref LL_AHB5_GRP1_PERIPH_DMA2D
1862   *         @arg @ref LL_AHB5_GRP1_PERIPH_JPEG
1863   *         @arg @ref LL_AHB5_GRP1_PERIPH_FMC
1864   *         @arg @ref LL_AHB5_GRP1_PERIPH_XSPI1
1865   *         @arg @ref LL_AHB5_GRP1_PERIPH_XSPI2
1866   *         @arg @ref LL_AHB5_GRP1_PERIPH_XSPI3
1867   *         @arg @ref LL_AHB5_GRP1_PERIPH_XSPIM
1868   *         @arg @ref LL_AHB5_GRP1_PERIPH_PSSI
1869   *         @arg @ref LL_AHB5_GRP1_PERIPH_SDMMC1
1870   *         @arg @ref LL_AHB5_GRP1_PERIPH_SDMMC2
1871   *         @arg @ref LL_AHB5_GRP1_PERIPH_MCE1 (*)
1872   *         @arg @ref LL_AHB5_GRP1_PERIPH_MCE2 (*)
1873   *         @arg @ref LL_AHB5_GRP1_PERIPH_MCE3 (*)
1874   *         @arg @ref LL_AHB5_GRP1_PERIPH_MCE4 (*)
1875   *         @arg @ref LL_AHB5_GRP1_PERIPH_GFXMMU
1876   *         @arg @ref LL_AHB5_GRP1_PERIPH_GPU2D
1877   *         @arg @ref LL_AHB5_GRP1_PERIPH_ETH1
1878   *         @arg @ref LL_AHB5_GRP1_PERIPH_ETH1MAC
1879   *         @arg @ref LL_AHB5_GRP1_PERIPH_ETH1TX
1880   *         @arg @ref LL_AHB5_GRP1_PERIPH_ETH1RX
1881   *         @arg @ref LL_AHB5_GRP1_PERIPH_OTG1
1882   *         @arg @ref LL_AHB5_GRP1_PERIPH_OTG2
1883   *         @arg @ref LL_AHB5_GRP1_PERIPH_OTGPHY1
1884   *         @arg @ref LL_AHB5_GRP1_PERIPH_OTGPHY2
1885   *         @arg @ref LL_AHB5_GRP1_PERIPH_CACHEAXI
1886   *         @arg @ref LL_AHB5_GRP1_PERIPH_NPU
1887   *
1888   *         (*) value not defined in all devices.
1889   * @retval None
1890   */
LL_AHB5_GRP1_DisableClock(uint32_t Periphs)1891 __STATIC_INLINE void LL_AHB5_GRP1_DisableClock(uint32_t Periphs)
1892 {
1893   WRITE_REG(RCC->AHB5ENCR, Periphs);
1894 }
1895 
1896 /**
1897   * @brief  Force AHB5 peripherals reset.
1898   * @rmtoll AHB5RSTSR    HPDMA1RSTS      LL_AHB5_GRP1_ForceReset\n
1899   *         AHB5RSTSR    DMA2DRSTS       LL_AHB5_GRP1_ForceReset\n
1900   *         AHB5RSTSR    JPEGRSTS        LL_AHB5_GRP1_ForceReset\n
1901   *         AHB5RSTSR    FMCRSTS         LL_AHB5_GRP1_ForceReset\n
1902   *         AHB5RSTSR    XSPI1RSTS       LL_AHB5_GRP1_ForceReset\n
1903   *         AHB5RSTSR    PSSIRSTS        LL_AHB5_GRP1_ForceReset\n
1904   *         AHB5RSTSR    SDMMC2RSTS      LL_AHB5_GRP1_ForceReset\n
1905   *         AHB5RSTSR    SDMMC1RSTS      LL_AHB5_GRP1_ForceReset\n
1906   *         AHB5RSTSR    XSPI2RSTS       LL_AHB5_GRP1_ForceReset\n
1907   *         AHB5RSTSR    XSPIMRSTS       LL_AHB5_GRP1_ForceReset\n
1908   *         AHB5RSTSR    XSPI3RSTS       LL_AHB5_GRP1_ForceReset\n
1909   *         AHB5RSTSR    GFXMMURSTS      LL_AHB5_GRP1_ForceReset\n
1910   *         AHB5RSTSR    GPU2DRSTS       LL_AHB5_GRP1_ForceReset\n
1911   *         AHB5RSTSR    OTG1PHYCTLRSTS  LL_AHB5_GRP1_ForceReset\n
1912   *         AHB5RSTSR    OTG2PHYCTLRSTS  LL_AHB5_GRP1_ForceReset\n
1913   *         AHB5RSTSR    ETH1RSTS        LL_AHB5_GRP1_ForceReset\n
1914   *         AHB5RSTSR    OTG1RSTS        LL_AHB5_GRP1_ForceReset\n
1915   *         AHB5RSTSR    OTGPHY1RSTS     LL_AHB5_GRP1_ForceReset\n
1916   *         AHB5RSTSR    OTGPHY2RSTS     LL_AHB5_GRP1_ForceReset\n
1917   *         AHB5RSTSR    OTG2RSTS        LL_AHB5_GRP1_ForceReset\n
1918   *         AHB5RSTSR    CACHEAXIRSTS    LL_AHB5_GRP1_ForceReset\n
1919   *         AHB5RSTSR    NPURSTS         LL_AHB5_GRP1_ForceReset
1920   * @param  Periphs This parameter can be a combination of the following values:
1921   *         @arg @ref LL_AHB5_GRP1_PERIPH_HPDMA1
1922   *         @arg @ref LL_AHB5_GRP1_PERIPH_DMA2D
1923   *         @arg @ref LL_AHB5_GRP1_PERIPH_JPEG
1924   *         @arg @ref LL_AHB5_GRP1_PERIPH_FMC
1925   *         @arg @ref LL_AHB5_GRP1_PERIPH_XSPI1
1926   *         @arg @ref LL_AHB5_GRP1_PERIPH_XSPI2
1927   *         @arg @ref LL_AHB5_GRP1_PERIPH_XSPI3
1928   *         @arg @ref LL_AHB5_GRP1_PERIPH_XSPIM
1929   *         @arg @ref LL_AHB5_GRP1_PERIPH_PSSI
1930   *         @arg @ref LL_AHB5_GRP1_PERIPH_SDMMC1
1931   *         @arg @ref LL_AHB5_GRP1_PERIPH_SDMMC2
1932   *         @arg @ref LL_AHB5_GRP1_PERIPH_GFXMMU
1933   *         @arg @ref LL_AHB5_GRP1_PERIPH_GPU2D
1934   *         @arg @ref LL_AHB5_GRP1_PERIPH_OTG1PHYCTL
1935   *         @arg @ref LL_AHB5_GRP1_PERIPH_OTG2PHYCTL
1936   *         @arg @ref LL_AHB5_GRP1_PERIPH_ETH1
1937   *         @arg @ref LL_AHB5_GRP1_PERIPH_OTG1
1938   *         @arg @ref LL_AHB5_GRP1_PERIPH_OTG2
1939   *         @arg @ref LL_AHB5_GRP1_PERIPH_OTGPHY1
1940   *         @arg @ref LL_AHB5_GRP1_PERIPH_OTGPHY2
1941   *         @arg @ref LL_AHB5_GRP1_PERIPH_CACHEAXI
1942   *         @arg @ref LL_AHB5_GRP1_PERIPH_NPU
1943   * @retval None
1944   */
LL_AHB5_GRP1_ForceReset(uint32_t Periphs)1945 __STATIC_INLINE void LL_AHB5_GRP1_ForceReset(uint32_t Periphs)
1946 {
1947   WRITE_REG(RCC->AHB5RSTSR, Periphs);
1948 }
1949 
1950 /**
1951   * @brief  Release AHB5 peripherals reset.
1952   * @rmtoll AHB5RSTCR    HPDMA1RSTC      LL_AHB5_GRP1_ReleaseReset\n
1953   *         AHB5RSTCR    DMA2DRSTC       LL_AHB5_GRP1_ReleaseReset\n
1954   *         AHB5RSTCR    JPEGRSTC        LL_AHB5_GRP1_ReleaseReset\n
1955   *         AHB5RSTCR    FMCRSTC         LL_AHB5_GRP1_ReleaseReset\n
1956   *         AHB5RSTCR    XSPI1RSTC       LL_AHB5_GRP1_ReleaseReset\n
1957   *         AHB5RSTCR    PSSIRSTC        LL_AHB5_GRP1_ReleaseReset\n
1958   *         AHB5RSTCR    SDMMC2RSTC      LL_AHB5_GRP1_ReleaseReset\n
1959   *         AHB5RSTCR    SDMMC1RSTC      LL_AHB5_GRP1_ReleaseReset\n
1960   *         AHB5RSTCR    XSPI2RSTC       LL_AHB5_GRP1_ReleaseReset\n
1961   *         AHB5RSTCR    XSPIMRSTC       LL_AHB5_GRP1_ReleaseReset\n
1962   *         AHB5RSTCR    XSPI3RSTC       LL_AHB5_GRP1_ReleaseReset\n
1963   *         AHB5RSTCR    GFXMMURSTC      LL_AHB5_GRP1_ReleaseReset\n
1964   *         AHB5RSTCR    GPU2DRSTC       LL_AHB5_GRP1_ReleaseReset\n
1965   *         AHB5RSTCR    OTG1PHYCTLRSTC  LL_AHB5_GRP1_ReleaseReset\n
1966   *         AHB5RSTCR    OTG2PHYCTLRSTC  LL_AHB5_GRP1_ReleaseReset\n
1967   *         AHB5RSTCR    ETH1RSTC        LL_AHB5_GRP1_ReleaseReset\n
1968   *         AHB5RSTCR    OTG1RSTC        LL_AHB5_GRP1_ReleaseReset\n
1969   *         AHB5RSTCR    OTGPHY1RSTC     LL_AHB5_GRP1_ReleaseReset\n
1970   *         AHB5RSTCR    OTGPHY2RSTC     LL_AHB5_GRP1_ReleaseReset\n
1971   *         AHB5RSTCR    OTG2RSTC        LL_AHB5_GRP1_ReleaseReset\n
1972   *         AHB5RSTCR    CACHEAXIRSTC    LL_AHB5_GRP1_ReleaseReset\n
1973   *         AHB5RSTCR    NPURSTS         LL_AHB5_GRP1_ReleaseReset
1974   * @param  Periphs This parameter can be a combination of the following values:
1975   *         @arg @ref LL_AHB5_GRP1_PERIPH_HPDMA1
1976   *         @arg @ref LL_AHB5_GRP1_PERIPH_DMA2D
1977   *         @arg @ref LL_AHB5_GRP1_PERIPH_JPEG
1978   *         @arg @ref LL_AHB5_GRP1_PERIPH_FMC
1979   *         @arg @ref LL_AHB5_GRP1_PERIPH_XSPI1
1980   *         @arg @ref LL_AHB5_GRP1_PERIPH_XSPI2
1981   *         @arg @ref LL_AHB5_GRP1_PERIPH_XSPI3
1982   *         @arg @ref LL_AHB5_GRP1_PERIPH_XSPIM
1983   *         @arg @ref LL_AHB5_GRP1_PERIPH_PSSI
1984   *         @arg @ref LL_AHB5_GRP1_PERIPH_SDMMC1
1985   *         @arg @ref LL_AHB5_GRP1_PERIPH_SDMMC2
1986   *         @arg @ref LL_AHB5_GRP1_PERIPH_GFXMMU
1987   *         @arg @ref LL_AHB5_GRP1_PERIPH_GPU2D
1988   *         @arg @ref LL_AHB5_GRP1_PERIPH_OTG1PHYCTL
1989   *         @arg @ref LL_AHB5_GRP1_PERIPH_OTG2PHYCTL
1990   *         @arg @ref LL_AHB5_GRP1_PERIPH_ETH1
1991   *         @arg @ref LL_AHB5_GRP1_PERIPH_OTG1
1992   *         @arg @ref LL_AHB5_GRP1_PERIPH_OTG2
1993   *         @arg @ref LL_AHB5_GRP1_PERIPH_OTGPHY1
1994   *         @arg @ref LL_AHB5_GRP1_PERIPH_OTGPHY2
1995   *         @arg @ref LL_AHB5_GRP1_PERIPH_CACHEAXI
1996   *         @arg @ref LL_AHB5_GRP1_PERIPH_NPU
1997   * @retval None
1998   */
LL_AHB5_GRP1_ReleaseReset(uint32_t Periphs)1999 __STATIC_INLINE void LL_AHB5_GRP1_ReleaseReset(uint32_t Periphs)
2000 {
2001   WRITE_REG(RCC->AHB5RSTCR, Periphs);
2002 }
2003 
2004 /**
2005   * @brief  Enable AHB5 peripherals clock during Low Power mode.
2006   * @rmtoll AHB5LPENSR   HPDMA1LPENS   LL_AHB5_GRP1_EnableClockLowPower\n
2007   *         AHB5LPENSR   DMA2DLPENS    LL_AHB5_GRP1_EnableClockLowPower\n
2008   *         AHB5LPENSR   JPEGLPENS     LL_AHB5_GRP1_EnableClockLowPower\n
2009   *         AHB5LPENSR   FMCLPENS      LL_AHB5_GRP1_EnableClockLowPower\n
2010   *         AHB5LPENSR   XSPI1LPENS    LL_AHB5_GRP1_EnableClockLowPower\n
2011   *         AHB5LPENSR   PSSILPENS     LL_AHB5_GRP1_EnableClockLowPower\n
2012   *         AHB5LPENSR   SDMMC2LPENS   LL_AHB5_GRP1_EnableClockLowPower\n
2013   *         AHB5LPENSR   SDMMC1LPENS   LL_AHB5_GRP1_EnableClockLowPower\n
2014   *         AHB5LPENSR   XSPI2LPENS    LL_AHB5_GRP1_EnableClockLowPower\n
2015   *         AHB5LPENSR   XSPIMLPENS    LL_AHB5_GRP1_EnableClockLowPower\n
2016   *         AHB5LPENSR   MCE1LPENS     LL_AHB5_GRP1_EnableClockLowPower\n (*)
2017   *         AHB5LPENSR   MCE2LPENS     LL_AHB5_GRP1_EnableClockLowPower\n (*)
2018   *         AHB5LPENSR   MCE3LPENS     LL_AHB5_GRP1_EnableClockLowPower\n (*)
2019   *         AHB5LPENSR   XSPI3LPENS    LL_AHB5_GRP1_EnableClockLowPower\n
2020   *         AHB5LPENSR   MCE4LPENS     LL_AHB5_GRP1_EnableClockLowPower\n (*)
2021   *         AHB5LPENSR   GFXMMULPENS   LL_AHB5_GRP1_EnableClockLowPower\n
2022   *         AHB5LPENSR   GPU2DLPENS    LL_AHB5_GRP1_EnableClockLowPower\n
2023   *         AHB5LPENSR   ETH1MACLPENS  LL_AHB5_GRP1_EnableClockLowPower\n
2024   *         AHB5LPENSR   ETH1TXLPENS   LL_AHB5_GRP1_EnableClockLowPower\n
2025   *         AHB5LPENSR   ETH1RXLPENS   LL_AHB5_GRP1_EnableClockLowPower\n
2026   *         AHB5LPENSR   ETH1LPENS     LL_AHB5_GRP1_EnableClockLowPower\n
2027   *         AHB5LPENSR   OTG1LPENS     LL_AHB5_GRP1_EnableClockLowPower\n
2028   *         AHB5LPENSR   OTGPHY1LPENS  LL_AHB5_GRP1_EnableClockLowPower\n
2029   *         AHB5LPENSR   OTGPHY2LPENS  LL_AHB5_GRP1_EnableClockLowPower\n
2030   *         AHB5LPENSR   OTG2LPENS     LL_AHB5_GRP1_EnableClockLowPower\n
2031   *         AHB5LPENSR   CACHEAXILPENS LL_AHB5_GRP1_EnableClockLowPower\n
2032   *         AHB5LPENSR   NPULPENS      LL_AHB5_GRP1_EnableClockLowPower
2033   * @param  Periphs This parameter can be a combination of the following values:
2034   *         @arg @ref LL_AHB5_GRP1_PERIPH_HPDMA1
2035   *         @arg @ref LL_AHB5_GRP1_PERIPH_DMA2D
2036   *         @arg @ref LL_AHB5_GRP1_PERIPH_JPEG
2037   *         @arg @ref LL_AHB5_GRP1_PERIPH_FMC
2038   *         @arg @ref LL_AHB5_GRP1_PERIPH_XSPI1
2039   *         @arg @ref LL_AHB5_GRP1_PERIPH_XSPI2
2040   *         @arg @ref LL_AHB5_GRP1_PERIPH_XSPI3
2041   *         @arg @ref LL_AHB5_GRP1_PERIPH_XSPIM
2042   *         @arg @ref LL_AHB5_GRP1_PERIPH_PSSI
2043   *         @arg @ref LL_AHB5_GRP1_PERIPH_SDMMC1
2044   *         @arg @ref LL_AHB5_GRP1_PERIPH_SDMMC2
2045   *         @arg @ref LL_AHB5_GRP1_PERIPH_MCE1 (*)
2046   *         @arg @ref LL_AHB5_GRP1_PERIPH_MCE2 (*)
2047   *         @arg @ref LL_AHB5_GRP1_PERIPH_MCE3 (*)
2048   *         @arg @ref LL_AHB5_GRP1_PERIPH_MCE4 (*)
2049   *         @arg @ref LL_AHB5_GRP1_PERIPH_GFXMMU
2050   *         @arg @ref LL_AHB5_GRP1_PERIPH_GPU2D
2051   *         @arg @ref LL_AHB5_GRP1_PERIPH_ETH1
2052   *         @arg @ref LL_AHB5_GRP1_PERIPH_ETH1MAC
2053   *         @arg @ref LL_AHB5_GRP1_PERIPH_ETH1TX
2054   *         @arg @ref LL_AHB5_GRP1_PERIPH_ETH1RX
2055   *         @arg @ref LL_AHB5_GRP1_PERIPH_OTG1
2056   *         @arg @ref LL_AHB5_GRP1_PERIPH_OTG2
2057   *         @arg @ref LL_AHB5_GRP1_PERIPH_OTGPHY1
2058   *         @arg @ref LL_AHB5_GRP1_PERIPH_OTGPHY2
2059   *         @arg @ref LL_AHB5_GRP1_PERIPH_CACHEAXI
2060   *         @arg @ref LL_AHB5_GRP1_PERIPH_NPU
2061   *
2062   *         (*) value not defined in all devices.
2063   * @retval None
2064   */
LL_AHB5_GRP1_EnableClockLowPower(uint32_t Periphs)2065 __STATIC_INLINE void LL_AHB5_GRP1_EnableClockLowPower(uint32_t Periphs)
2066 {
2067   __IO uint32_t tmpreg;
2068   WRITE_REG(RCC->AHB5LPENSR, Periphs);
2069   /* Delay after an RCC peripheral clock enabling */
2070   tmpreg = READ_REG(RCC->AHB5LPENR);
2071   (void)tmpreg;
2072 }
2073 
2074 /**
2075   * @brief  Check if AHB5 peripheral clock during Low Power mode is enabled or not .
2076   * @rmtoll AHB5LPENR    HPDMA1LPEN    LL_AHB5_GRP1_IsEnabledClockLowPower\n
2077   *         AHB5LPENR    DMA2DLPEN     LL_AHB5_GRP1_IsEnabledClockLowPower\n
2078   *         AHB5LPENR    JPEGLPEN      LL_AHB5_GRP1_IsEnabledClockLowPower\n
2079   *         AHB5LPENR    FMCLPEN       LL_AHB5_GRP1_IsEnabledClockLowPower\n
2080   *         AHB5LPENR    XSPI1LPEN     LL_AHB5_GRP1_IsEnabledClockLowPower\n
2081   *         AHB5LPENR    PSSILPEN      LL_AHB5_GRP1_IsEnabledClockLowPower\n
2082   *         AHB5LPENR    SDMMC2LPEN    LL_AHB5_GRP1_IsEnabledClockLowPower\n
2083   *         AHB5LPENR    SDMMC1LPEN    LL_AHB5_GRP1_IsEnabledClockLowPower\n
2084   *         AHB5LPENR    XSPI2LPEN     LL_AHB5_GRP1_IsEnabledClockLowPower\n
2085   *         AHB5LPENR    XSPIMLPEN     LL_AHB5_GRP1_IsEnabledClockLowPower\n
2086   *         AHB5LPENR    MCE1LPEN      LL_AHB5_GRP1_IsEnabledClockLowPower\n (*)
2087   *         AHB5LPENR    MCE2LPEN      LL_AHB5_GRP1_IsEnabledClockLowPower\n (*)
2088   *         AHB5LPENR    MCE3LPEN      LL_AHB5_GRP1_IsEnabledClockLowPower\n (*)
2089   *         AHB5LPENR    XSPI3LPEN     LL_AHB5_GRP1_IsEnabledClockLowPower\n
2090   *         AHB5LPENR    MCE4LPEN      LL_AHB5_GRP1_IsEnabledClockLowPower\n (*)
2091   *         AHB5LPENR    GFXMMULPEN    LL_AHB5_GRP1_IsEnabledClockLowPower\n
2092   *         AHB5LPENR    GPU2DLPEN     LL_AHB5_GRP1_IsEnabledClockLowPower\n
2093   *         AHB5LPENR    ETH1MACLPEN   LL_AHB5_GRP1_IsEnabledClockLowPower\n
2094   *         AHB5LPENR    ETH1TXLPEN    LL_AHB5_GRP1_IsEnabledClockLowPower\n
2095   *         AHB5LPENR    ETH1RXLPEN    LL_AHB5_GRP1_IsEnabledClockLowPower\n
2096   *         AHB5LPENR    ETH1LPEN      LL_AHB5_GRP1_IsEnabledClockLowPower\n
2097   *         AHB5LPENR    OTG1LPEN      LL_AHB5_GRP1_IsEnabledClockLowPower\n
2098   *         AHB5LPENR    OTGPHY1LPEN   LL_AHB5_GRP1_IsEnabledClockLowPower\n
2099   *         AHB5LPENR    OTGPHY2LPEN   LL_AHB5_GRP1_IsEnabledClockLowPower\n
2100   *         AHB5LPENR    OTG2LPEN      LL_AHB5_GRP1_IsEnabledClockLowPower\n
2101   *         AHB5LPENR    CACHEAXILPEN  LL_AHB5_GRP1_IsEnabledClockLowPower\n
2102   *         AHB5LPENR    NPULPEN       LL_AHB5_GRP1_IsEnabledClockLowPower
2103   * @param  Periphs This parameter can be a combination of the following values:
2104   *         @arg @ref LL_AHB5_GRP1_PERIPH_HPDMA1
2105   *         @arg @ref LL_AHB5_GRP1_PERIPH_DMA2D
2106   *         @arg @ref LL_AHB5_GRP1_PERIPH_JPEG
2107   *         @arg @ref LL_AHB5_GRP1_PERIPH_FMC
2108   *         @arg @ref LL_AHB5_GRP1_PERIPH_XSPI1
2109   *         @arg @ref LL_AHB5_GRP1_PERIPH_XSPI2
2110   *         @arg @ref LL_AHB5_GRP1_PERIPH_XSPI3
2111   *         @arg @ref LL_AHB5_GRP1_PERIPH_XSPIM
2112   *         @arg @ref LL_AHB5_GRP1_PERIPH_PSSI
2113   *         @arg @ref LL_AHB5_GRP1_PERIPH_SDMMC1
2114   *         @arg @ref LL_AHB5_GRP1_PERIPH_SDMMC2
2115   *         @arg @ref LL_AHB5_GRP1_PERIPH_MCE1 (*)
2116   *         @arg @ref LL_AHB5_GRP1_PERIPH_MCE2 (*)
2117   *         @arg @ref LL_AHB5_GRP1_PERIPH_MCE3 (*)
2118   *         @arg @ref LL_AHB5_GRP1_PERIPH_MCE4 (*)
2119   *         @arg @ref LL_AHB5_GRP1_PERIPH_GFXMMU
2120   *         @arg @ref LL_AHB5_GRP1_PERIPH_GPU2D
2121   *         @arg @ref LL_AHB5_GRP1_PERIPH_ETH1
2122   *         @arg @ref LL_AHB5_GRP1_PERIPH_ETH1MAC
2123   *         @arg @ref LL_AHB5_GRP1_PERIPH_ETH1TX
2124   *         @arg @ref LL_AHB5_GRP1_PERIPH_ETH1RX
2125   *         @arg @ref LL_AHB5_GRP1_PERIPH_OTG1
2126   *         @arg @ref LL_AHB5_GRP1_PERIPH_OTG2
2127   *         @arg @ref LL_AHB5_GRP1_PERIPH_OTGPHY1
2128   *         @arg @ref LL_AHB5_GRP1_PERIPH_OTGPHY2
2129   *         @arg @ref LL_AHB5_GRP1_PERIPH_CACHEAXI
2130   *         @arg @ref LL_AHB5_GRP1_PERIPH_NPU
2131   *
2132   *         (*) value not defined in all devices.
2133   * @retval uint32_t
2134   */
LL_AHB5_GRP1_IsEnabledClockLowPower(uint32_t Periphs)2135 __STATIC_INLINE uint32_t LL_AHB5_GRP1_IsEnabledClockLowPower(uint32_t Periphs)
2136 {
2137   return ((READ_BIT(RCC->AHB5LPENR, Periphs) == Periphs) ? 1UL : 0UL);
2138 }
2139 
2140 /**
2141   * @brief  Disable AHB5 peripherals clock during Low Power mode.
2142   * @rmtoll AHB5LPENCR   HPDMA1LPENC   LL_AHB5_GRP1_DisableClockLowPower\n
2143   *         AHB5LPENCR   DMA2DLPENC    LL_AHB5_GRP1_DisableClockLowPower\n
2144   *         AHB5LPENCR   JPEGLPENC     LL_AHB5_GRP1_DisableClockLowPower\n
2145   *         AHB5LPENCR   FMCLPENC      LL_AHB5_GRP1_DisableClockLowPower\n
2146   *         AHB5LPENCR   XSPI1LPENC    LL_AHB5_GRP1_DisableClockLowPower\n
2147   *         AHB5LPENCR   PSSILPENC     LL_AHB5_GRP1_DisableClockLowPower\n
2148   *         AHB5LPENCR   SDMMC2LPENC   LL_AHB5_GRP1_DisableClockLowPower\n
2149   *         AHB5LPENCR   SDMMC1LPENC   LL_AHB5_GRP1_DisableClockLowPower\n
2150   *         AHB5LPENCR   XSPI2LPENC    LL_AHB5_GRP1_DisableClockLowPower\n
2151   *         AHB5LPENCR   XSPIMLPENC    LL_AHB5_GRP1_DisableClockLowPower\n
2152   *         AHB5LPENCR   MCE1LPENC     LL_AHB5_GRP1_DisableClockLowPower\n (*)
2153   *         AHB5LPENCR   MCE2LPENC     LL_AHB5_GRP1_DisableClockLowPower\n (*)
2154   *         AHB5LPENCR   MCE3LPENC     LL_AHB5_GRP1_DisableClockLowPower\n (*)
2155   *         AHB5LPENCR   XSPI3LPENC    LL_AHB5_GRP1_DisableClockLowPower\n
2156   *         AHB5LPENCR   MCE4LPENC     LL_AHB5_GRP1_DisableClockLowPower\n (*)
2157   *         AHB5LPENCR   GFXMMULPENC   LL_AHB5_GRP1_DisableClockLowPower\n
2158   *         AHB5LPENCR   GPU2DLPENC    LL_AHB5_GRP1_DisableClockLowPower\n
2159   *         AHB5LPENCR   ETH1MACLPENC  LL_AHB5_GRP1_DisableClockLowPower\n
2160   *         AHB5LPENCR   ETH1TXLPENC   LL_AHB5_GRP1_DisableClockLowPower\n
2161   *         AHB5LPENCR   ETH1RXLPENC   LL_AHB5_GRP1_DisableClockLowPower\n
2162   *         AHB5LPENCR   ETH1LPENC     LL_AHB5_GRP1_DisableClockLowPower\n
2163   *         AHB5LPENCR   OTG1LPENC     LL_AHB5_GRP1_DisableClockLowPower\n
2164   *         AHB5LPENCR   OTGPHY1LPENC  LL_AHB5_GRP1_DisableClockLowPower\n
2165   *         AHB5LPENCR   OTGPHY2LPENC  LL_AHB5_GRP1_DisableClockLowPower\n
2166   *         AHB5LPENCR   OTG2LPENC     LL_AHB5_GRP1_DisableClockLowPower\n
2167   *         AHB5LPENCR   CACHEAXILPENC LL_AHB5_GRP1_DisableClockLowPower\n
2168   *         AHB5LPENCR   NPULPENC      LL_AHB5_GRP1_DisableClockLowPower
2169   * @param  Periphs This parameter can be a combination of the following values:
2170   *         @arg @ref LL_AHB5_GRP1_PERIPH_HPDMA1
2171   *         @arg @ref LL_AHB5_GRP1_PERIPH_DMA2D
2172   *         @arg @ref LL_AHB5_GRP1_PERIPH_JPEG
2173   *         @arg @ref LL_AHB5_GRP1_PERIPH_FMC
2174   *         @arg @ref LL_AHB5_GRP1_PERIPH_XSPI1
2175   *         @arg @ref LL_AHB5_GRP1_PERIPH_XSPI2
2176   *         @arg @ref LL_AHB5_GRP1_PERIPH_XSPI3
2177   *         @arg @ref LL_AHB5_GRP1_PERIPH_XSPIM
2178   *         @arg @ref LL_AHB5_GRP1_PERIPH_PSSI
2179   *         @arg @ref LL_AHB5_GRP1_PERIPH_SDMMC1
2180   *         @arg @ref LL_AHB5_GRP1_PERIPH_SDMMC2
2181   *         @arg @ref LL_AHB5_GRP1_PERIPH_MCE1 (*)
2182   *         @arg @ref LL_AHB5_GRP1_PERIPH_MCE2 (*)
2183   *         @arg @ref LL_AHB5_GRP1_PERIPH_MCE3 (*)
2184   *         @arg @ref LL_AHB5_GRP1_PERIPH_MCE4 (*)
2185   *         @arg @ref LL_AHB5_GRP1_PERIPH_GFXMMU
2186   *         @arg @ref LL_AHB5_GRP1_PERIPH_GPU2D
2187   *         @arg @ref LL_AHB5_GRP1_PERIPH_ETH1
2188   *         @arg @ref LL_AHB5_GRP1_PERIPH_ETH1MAC
2189   *         @arg @ref LL_AHB5_GRP1_PERIPH_ETH1TX
2190   *         @arg @ref LL_AHB5_GRP1_PERIPH_ETH1RX
2191   *         @arg @ref LL_AHB5_GRP1_PERIPH_OTG1
2192   *         @arg @ref LL_AHB5_GRP1_PERIPH_OTG2
2193   *         @arg @ref LL_AHB5_GRP1_PERIPH_OTGPHY1
2194   *         @arg @ref LL_AHB5_GRP1_PERIPH_OTGPHY2
2195   *         @arg @ref LL_AHB5_GRP1_PERIPH_CACHEAXI
2196   *         @arg @ref LL_AHB5_GRP1_PERIPH_NPU
2197   *
2198   *         (*) value not defined in all devices.
2199   * @retval None
2200   */
LL_AHB5_GRP1_DisableClockLowPower(uint32_t Periphs)2201 __STATIC_INLINE void LL_AHB5_GRP1_DisableClockLowPower(uint32_t Periphs)
2202 {
2203   WRITE_REG(RCC->AHB5LPENCR, Periphs);
2204 }
2205 
2206 /**
2207   * @}
2208   */
2209 
2210 /** @defgroup BUS_LL_EF_APB1 APB1
2211   * @{
2212   */
2213 
2214 /**
2215   * @brief  Enable APB1 peripherals clock.
2216   * @rmtoll APB1ENSR1    TIM2ENS       LL_APB1_GRP1_EnableClock\n
2217   *         APB1ENSR1    TIM3ENS       LL_APB1_GRP1_EnableClock\n
2218   *         APB1ENSR1    TIM4ENS       LL_APB1_GRP1_EnableClock\n
2219   *         APB1ENSR1    TIM5ENS       LL_APB1_GRP1_EnableClock\n
2220   *         APB1ENSR1    TIM6ENS       LL_APB1_GRP1_EnableClock\n
2221   *         APB1ENSR1    TIM7ENS       LL_APB1_GRP1_EnableClock\n
2222   *         APB1ENSR1    TIM12ENS      LL_APB1_GRP1_EnableClock\n
2223   *         APB1ENSR1    TIM13ENS      LL_APB1_GRP1_EnableClock\n
2224   *         APB1ENSR1    TIM14ENS      LL_APB1_GRP1_EnableClock\n
2225   *         APB1ENSR1    LPTIM1ENS     LL_APB1_GRP1_EnableClock\n
2226   *         APB1ENSR1    WWDGENS       LL_APB1_GRP1_EnableClock\n
2227   *         APB1ENSR1    TIM10ENS      LL_APB1_GRP1_EnableClock\n
2228   *         APB1ENSR1    TIM11ENS      LL_APB1_GRP1_EnableClock\n
2229   *         APB1ENSR1    SPI2ENS       LL_APB1_GRP1_EnableClock\n
2230   *         APB1ENSR1    SPI3ENS       LL_APB1_GRP1_EnableClock\n
2231   *         APB1ENSR1    SPDIFRX1ENS   LL_APB1_GRP1_EnableClock\n
2232   *         APB1ENSR1    USART2ENS     LL_APB1_GRP1_EnableClock\n
2233   *         APB1ENSR1    USART3ENS     LL_APB1_GRP1_EnableClock\n
2234   *         APB1ENSR1    UART4ENS      LL_APB1_GRP1_EnableClock\n
2235   *         APB1ENSR1    UART5ENS      LL_APB1_GRP1_EnableClock\n
2236   *         APB1ENSR1    I2C1ENS       LL_APB1_GRP1_EnableClock\n
2237   *         APB1ENSR1    I2C2ENS       LL_APB1_GRP1_EnableClock\n
2238   *         APB1ENSR1    I2C3ENS       LL_APB1_GRP1_EnableClock\n
2239   *         APB1ENSR1    I3C1ENS       LL_APB1_GRP1_EnableClock\n
2240   *         APB1ENSR1    I3C2ENS       LL_APB1_GRP1_EnableClock\n
2241   *         APB1ENSR1    UART7ENS      LL_APB1_GRP1_EnableClock\n
2242   *         APB1ENSR1    UART8ENS      LL_APB1_GRP1_EnableClock
2243   * @param  Periphs This parameter can be a combination of the following values:
2244   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C1
2245   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C2
2246   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C3
2247   *         @arg @ref LL_APB1_GRP1_PERIPH_I3C1
2248   *         @arg @ref LL_APB1_GRP1_PERIPH_I3C2
2249   *         @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1
2250   *         @arg @ref LL_APB1_GRP1_PERIPH_SPDIFRX1
2251   *         @arg @ref LL_APB1_GRP1_PERIPH_SPI2
2252   *         @arg @ref LL_APB1_GRP1_PERIPH_SPI3
2253   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM2
2254   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM3
2255   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM4
2256   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM5
2257   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM6
2258   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM7
2259   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM10
2260   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM11
2261   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM12
2262   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM13
2263   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM14
2264   *         @arg @ref LL_APB1_GRP1_PERIPH_USART2
2265   *         @arg @ref LL_APB1_GRP1_PERIPH_USART3
2266   *         @arg @ref LL_APB1_GRP1_PERIPH_UART4
2267   *         @arg @ref LL_APB1_GRP1_PERIPH_UART5
2268   *         @arg @ref LL_APB1_GRP1_PERIPH_UART7
2269   *         @arg @ref LL_APB1_GRP1_PERIPH_UART8
2270   *         @arg @ref LL_APB1_GRP1_PERIPH_WWDG
2271   * @retval None
2272   */
LL_APB1_GRP1_EnableClock(uint32_t Periphs)2273 __STATIC_INLINE void LL_APB1_GRP1_EnableClock(uint32_t Periphs)
2274 {
2275   __IO uint32_t tmpreg;
2276   WRITE_REG(RCC->APB1ENSR1, Periphs);
2277   /* Delay after an RCC peripheral clock enabling */
2278   tmpreg = READ_REG(RCC->APB1ENR1);
2279   (void)tmpreg;
2280 }
2281 
2282 /**
2283   * @brief  Check if APB1 peripheral clock is enabled or not
2284   * @rmtoll APB1ENR1     TIM2EN        LL_APB1_GRP1_IsEnabledClock\n
2285   *         APB1ENR1     TIM3EN        LL_APB1_GRP1_IsEnabledClock\n
2286   *         APB1ENR1     TIM4EN        LL_APB1_GRP1_IsEnabledClock\n
2287   *         APB1ENR1     TIM5EN        LL_APB1_GRP1_IsEnabledClock\n
2288   *         APB1ENR1     TIM6EN        LL_APB1_GRP1_IsEnabledClock\n
2289   *         APB1ENR1     TIM7EN        LL_APB1_GRP1_IsEnabledClock\n
2290   *         APB1ENR1     TIM12EN       LL_APB1_GRP1_IsEnabledClock\n
2291   *         APB1ENR1     TIM13EN       LL_APB1_GRP1_IsEnabledClock\n
2292   *         APB1ENR1     TIM14EN       LL_APB1_GRP1_IsEnabledClock\n
2293   *         APB1ENR1     LPTIM1EN      LL_APB1_GRP1_IsEnabledClock\n
2294   *         APB1ENR1     WWDGEN        LL_APB1_GRP1_IsEnabledClock\n
2295   *         APB1ENR1     TIM10EN       LL_APB1_GRP1_IsEnabledClock\n
2296   *         APB1ENR1     TIM11EN       LL_APB1_GRP1_IsEnabledClock\n
2297   *         APB1ENR1     SPI2EN        LL_APB1_GRP1_IsEnabledClock\n
2298   *         APB1ENR1     SPI3EN        LL_APB1_GRP1_IsEnabledClock\n
2299   *         APB1ENR1     SPDIFRX1EN    LL_APB1_GRP1_IsEnabledClock\n
2300   *         APB1ENR1     USART2EN      LL_APB1_GRP1_IsEnabledClock\n
2301   *         APB1ENR1     USART3EN      LL_APB1_GRP1_IsEnabledClock\n
2302   *         APB1ENR1     UART4EN       LL_APB1_GRP1_IsEnabledClock\n
2303   *         APB1ENR1     UART5EN       LL_APB1_GRP1_IsEnabledClock\n
2304   *         APB1ENR1     I2C1EN        LL_APB1_GRP1_IsEnabledClock\n
2305   *         APB1ENR1     I2C2EN        LL_APB1_GRP1_IsEnabledClock\n
2306   *         APB1ENR1     I2C3EN        LL_APB1_GRP1_IsEnabledClock\n
2307   *         APB1ENR1     I3C1EN        LL_APB1_GRP1_IsEnabledClock\n
2308   *         APB1ENR1     I3C2EN        LL_APB1_GRP1_IsEnabledClock\n
2309   *         APB1ENR1     UART7EN       LL_APB1_GRP1_IsEnabledClock\n
2310   *         APB1ENR1     UART8EN       LL_APB1_GRP1_IsEnabledClock
2311   * @param  Periphs This parameter can be a combination of the following values:
2312   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C1
2313   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C2
2314   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C3
2315   *         @arg @ref LL_APB1_GRP1_PERIPH_I3C1
2316   *         @arg @ref LL_APB1_GRP1_PERIPH_I3C2
2317   *         @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1
2318   *         @arg @ref LL_APB1_GRP1_PERIPH_SPDIFRX1
2319   *         @arg @ref LL_APB1_GRP1_PERIPH_SPI2
2320   *         @arg @ref LL_APB1_GRP1_PERIPH_SPI3
2321   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM2
2322   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM3
2323   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM4
2324   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM5
2325   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM6
2326   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM7
2327   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM10
2328   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM11
2329   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM12
2330   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM13
2331   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM14
2332   *         @arg @ref LL_APB1_GRP1_PERIPH_USART2
2333   *         @arg @ref LL_APB1_GRP1_PERIPH_USART3
2334   *         @arg @ref LL_APB1_GRP1_PERIPH_UART4
2335   *         @arg @ref LL_APB1_GRP1_PERIPH_UART5
2336   *         @arg @ref LL_APB1_GRP1_PERIPH_UART7
2337   *         @arg @ref LL_APB1_GRP1_PERIPH_UART8
2338   *         @arg @ref LL_APB1_GRP1_PERIPH_WWDG
2339   * @retval uint32_t
2340   */
LL_APB1_GRP1_IsEnabledClock(uint32_t Periphs)2341 __STATIC_INLINE uint32_t LL_APB1_GRP1_IsEnabledClock(uint32_t Periphs)
2342 {
2343   return ((READ_BIT(RCC->APB1ENR1, Periphs) == Periphs) ? 1UL : 0UL);
2344 }
2345 
2346 /**
2347   * @brief  Disable APB1 peripherals clock.
2348   * @rmtoll APB1ENCR1    TIM2ENC       LL_APB1_GRP1_DisableClock\n
2349   *         APB1ENCR1    TIM3ENC       LL_APB1_GRP1_DisableClock\n
2350   *         APB1ENCR1    TIM4ENC       LL_APB1_GRP1_DisableClock\n
2351   *         APB1ENCR1    TIM5ENC       LL_APB1_GRP1_DisableClock\n
2352   *         APB1ENCR1    TIM6ENC       LL_APB1_GRP1_DisableClock\n
2353   *         APB1ENCR1    TIM7ENC       LL_APB1_GRP1_DisableClock\n
2354   *         APB1ENCR1    TIM12ENC      LL_APB1_GRP1_DisableClock\n
2355   *         APB1ENCR1    TIM13ENC      LL_APB1_GRP1_DisableClock\n
2356   *         APB1ENCR1    TIM14ENC      LL_APB1_GRP1_DisableClock\n
2357   *         APB1ENCR1    LPTIM1ENC     LL_APB1_GRP1_DisableClock\n
2358   *         APB1ENCR1    TIM10ENC      LL_APB1_GRP1_DisableClock\n
2359   *         APB1ENCR1    TIM11ENC      LL_APB1_GRP1_DisableClock\n
2360   *         APB1ENCR1    SPI2ENC       LL_APB1_GRP1_DisableClock\n
2361   *         APB1ENCR1    SPI3ENC       LL_APB1_GRP1_DisableClock\n
2362   *         APB1ENCR1    SPDIFRX1ENC   LL_APB1_GRP1_DisableClock\n
2363   *         APB1ENCR1    USART2ENC     LL_APB1_GRP1_DisableClock\n
2364   *         APB1ENCR1    USART3ENC     LL_APB1_GRP1_DisableClock\n
2365   *         APB1ENCR1    UART4ENC      LL_APB1_GRP1_DisableClock\n
2366   *         APB1ENCR1    UART5ENC      LL_APB1_GRP1_DisableClock\n
2367   *         APB1ENCR1    I2C1ENC       LL_APB1_GRP1_DisableClock\n
2368   *         APB1ENCR1    I2C2ENC       LL_APB1_GRP1_DisableClock\n
2369   *         APB1ENCR1    I2C3ENC       LL_APB1_GRP1_DisableClock\n
2370   *         APB1ENCR1    I3C1ENC       LL_APB1_GRP1_DisableClock\n
2371   *         APB1ENCR1    I3C2ENC       LL_APB1_GRP1_DisableClock\n
2372   *         APB1ENCR1    UART7ENC      LL_APB1_GRP1_DisableClock\n
2373   *         APB1ENCR1    UART8ENC      LL_APB1_GRP1_DisableClock
2374   * @param  Periphs This parameter can be a combination of the following values:
2375   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C1
2376   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C2
2377   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C3
2378   *         @arg @ref LL_APB1_GRP1_PERIPH_I3C1
2379   *         @arg @ref LL_APB1_GRP1_PERIPH_I3C2
2380   *         @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1
2381   *         @arg @ref LL_APB1_GRP1_PERIPH_SPDIFRX1
2382   *         @arg @ref LL_APB1_GRP1_PERIPH_SPI2
2383   *         @arg @ref LL_APB1_GRP1_PERIPH_SPI3
2384   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM2
2385   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM3
2386   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM4
2387   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM5
2388   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM6
2389   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM7
2390   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM10
2391   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM11
2392   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM12
2393   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM13
2394   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM14
2395   *         @arg @ref LL_APB1_GRP1_PERIPH_USART2
2396   *         @arg @ref LL_APB1_GRP1_PERIPH_USART3
2397   *         @arg @ref LL_APB1_GRP1_PERIPH_UART4
2398   *         @arg @ref LL_APB1_GRP1_PERIPH_UART5
2399   *         @arg @ref LL_APB1_GRP1_PERIPH_UART7
2400   *         @arg @ref LL_APB1_GRP1_PERIPH_UART8
2401   * @retval None
2402   */
LL_APB1_GRP1_DisableClock(uint32_t Periphs)2403 __STATIC_INLINE void LL_APB1_GRP1_DisableClock(uint32_t Periphs)
2404 {
2405   WRITE_REG(RCC->APB1ENCR1, Periphs);
2406 }
2407 
2408 /**
2409   * @brief  Force APB1 peripherals reset.
2410   * @rmtoll APB1RSTSR1   TIM2RSTS      LL_APB1_GRP1_ForceReset\n
2411   *         APB1RSTSR1   TIM3RSTS      LL_APB1_GRP1_ForceReset\n
2412   *         APB1RSTSR1   TIM4RSTS      LL_APB1_GRP1_ForceReset\n
2413   *         APB1RSTSR1   TIM5RSTS      LL_APB1_GRP1_ForceReset\n
2414   *         APB1RSTSR1   TIM6RSTS      LL_APB1_GRP1_ForceReset\n
2415   *         APB1RSTSR1   TIM7RSTS      LL_APB1_GRP1_ForceReset\n
2416   *         APB1RSTSR1   TIM12RSTS     LL_APB1_GRP1_ForceReset\n
2417   *         APB1RSTSR1   TIM13RSTS     LL_APB1_GRP1_ForceReset\n
2418   *         APB1RSTSR1   TIM14RSTS     LL_APB1_GRP1_ForceReset\n
2419   *         APB1RSTSR1   LPTIM1RSTS    LL_APB1_GRP1_ForceReset\n
2420   *         APB1RSTSR1   TIM10RSTS     LL_APB1_GRP1_ForceReset\n
2421   *         APB1RSTSR1   TIM11RSTS     LL_APB1_GRP1_ForceReset\n
2422   *         APB1RSTSR1   SPI2RSTS      LL_APB1_GRP1_ForceReset\n
2423   *         APB1RSTSR1   SPI3RSTS      LL_APB1_GRP1_ForceReset\n
2424   *         APB1RSTSR1   SPDIFRX1RSTS  LL_APB1_GRP1_ForceReset\n
2425   *         APB1RSTSR1   USART2RSTS    LL_APB1_GRP1_ForceReset\n
2426   *         APB1RSTSR1   USART3RSTS    LL_APB1_GRP1_ForceReset\n
2427   *         APB1RSTSR1   UART4RSTS     LL_APB1_GRP1_ForceReset\n
2428   *         APB1RSTSR1   UART5RSTS     LL_APB1_GRP1_ForceReset\n
2429   *         APB1RSTSR1   I2C1RSTS      LL_APB1_GRP1_ForceReset\n
2430   *         APB1RSTSR1   I2C2RSTS      LL_APB1_GRP1_ForceReset\n
2431   *         APB1RSTSR1   I2C3RSTS      LL_APB1_GRP1_ForceReset\n
2432   *         APB1RSTSR1   I3C1RSTS      LL_APB1_GRP1_ForceReset\n
2433   *         APB1RSTSR1   I3C2RSTS      LL_APB1_GRP1_ForceReset\n
2434   *         APB1RSTSR1   UART7RSTS     LL_APB1_GRP1_ForceReset\n
2435   *         APB1RSTSR1   UART8RSTS     LL_APB1_GRP1_ForceReset
2436   * @param  Periphs This parameter can be a combination of the following values:
2437   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C1
2438   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C2
2439   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C3
2440   *         @arg @ref LL_APB1_GRP1_PERIPH_I3C1
2441   *         @arg @ref LL_APB1_GRP1_PERIPH_I3C2
2442   *         @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1
2443   *         @arg @ref LL_APB1_GRP1_PERIPH_SPDIFRX1
2444   *         @arg @ref LL_APB1_GRP1_PERIPH_SPI2
2445   *         @arg @ref LL_APB1_GRP1_PERIPH_SPI3
2446   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM2
2447   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM3
2448   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM4
2449   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM5
2450   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM6
2451   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM7
2452   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM10
2453   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM11
2454   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM12
2455   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM13
2456   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM14
2457   *         @arg @ref LL_APB1_GRP1_PERIPH_USART2
2458   *         @arg @ref LL_APB1_GRP1_PERIPH_USART3
2459   *         @arg @ref LL_APB1_GRP1_PERIPH_UART4
2460   *         @arg @ref LL_APB1_GRP1_PERIPH_UART5
2461   *         @arg @ref LL_APB1_GRP1_PERIPH_UART7
2462   *         @arg @ref LL_APB1_GRP1_PERIPH_UART8
2463   * @retval None
2464   */
LL_APB1_GRP1_ForceReset(uint32_t Periphs)2465 __STATIC_INLINE void LL_APB1_GRP1_ForceReset(uint32_t Periphs)
2466 {
2467   WRITE_REG(RCC->APB1RSTSR1, Periphs);
2468 }
2469 
2470 /**
2471   * @brief  Release APB1 peripherals reset.
2472   * @rmtoll APB1RSTCR1   TIM2RSTC      LL_APB1_GRP1_ReleaseReset\n
2473   *         APB1RSTCR1   TIM3RSTC      LL_APB1_GRP1_ReleaseReset\n
2474   *         APB1RSTCR1   TIM4RSTC      LL_APB1_GRP1_ReleaseReset\n
2475   *         APB1RSTCR1   TIM5RSTC      LL_APB1_GRP1_ReleaseReset\n
2476   *         APB1RSTCR1   TIM6RSTC      LL_APB1_GRP1_ReleaseReset\n
2477   *         APB1RSTCR1   TIM7RSTC      LL_APB1_GRP1_ReleaseReset\n
2478   *         APB1RSTCR1   TIM12RSTC     LL_APB1_GRP1_ReleaseReset\n
2479   *         APB1RSTCR1   TIM13RSTC     LL_APB1_GRP1_ReleaseReset\n
2480   *         APB1RSTCR1   TIM14RSTC     LL_APB1_GRP1_ReleaseReset\n
2481   *         APB1RSTCR1   LPTIM1RSTC    LL_APB1_GRP1_ReleaseReset\n
2482   *         APB1RSTCR1   TIM10RSTC     LL_APB1_GRP1_ReleaseReset\n
2483   *         APB1RSTCR1   TIM11RSTC     LL_APB1_GRP1_ReleaseReset\n
2484   *         APB1RSTCR1   SPI2RSTC      LL_APB1_GRP1_ReleaseReset\n
2485   *         APB1RSTCR1   SPI3RSTC      LL_APB1_GRP1_ReleaseReset\n
2486   *         APB1RSTCR1   SPDIFRX1RSTC  LL_APB1_GRP1_ReleaseReset\n
2487   *         APB1RSTCR1   USART2RSTC    LL_APB1_GRP1_ReleaseReset\n
2488   *         APB1RSTCR1   USART3RSTC    LL_APB1_GRP1_ReleaseReset\n
2489   *         APB1RSTCR1   UART4RSTC     LL_APB1_GRP1_ReleaseReset\n
2490   *         APB1RSTCR1   UART5RSTC     LL_APB1_GRP1_ReleaseReset\n
2491   *         APB1RSTCR1   I2C1RSTC      LL_APB1_GRP1_ReleaseReset\n
2492   *         APB1RSTCR1   I2C2RSTC      LL_APB1_GRP1_ReleaseReset\n
2493   *         APB1RSTCR1   I2C3RSTC      LL_APB1_GRP1_ReleaseReset\n
2494   *         APB1RSTCR1   I3C1RSTC      LL_APB1_GRP1_ReleaseReset\n
2495   *         APB1RSTCR1   I3C2RSTC      LL_APB1_GRP1_ReleaseReset\n
2496   *         APB1RSTCR1   UART7RSTC     LL_APB1_GRP1_ReleaseReset\n
2497   *         APB1RSTCR1   UART8RSTC     LL_APB1_GRP1_ReleaseReset
2498   * @param  Periphs This parameter can be a combination of the following values:
2499   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C1
2500   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C2
2501   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C3
2502   *         @arg @ref LL_APB1_GRP1_PERIPH_I3C1
2503   *         @arg @ref LL_APB1_GRP1_PERIPH_I3C2
2504   *         @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1
2505   *         @arg @ref LL_APB1_GRP1_PERIPH_SPDIFRX1
2506   *         @arg @ref LL_APB1_GRP1_PERIPH_SPI2
2507   *         @arg @ref LL_APB1_GRP1_PERIPH_SPI3
2508   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM2
2509   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM3
2510   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM4
2511   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM5
2512   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM6
2513   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM7
2514   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM10
2515   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM11
2516   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM12
2517   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM13
2518   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM14
2519   *         @arg @ref LL_APB1_GRP1_PERIPH_USART2
2520   *         @arg @ref LL_APB1_GRP1_PERIPH_USART3
2521   *         @arg @ref LL_APB1_GRP1_PERIPH_UART4
2522   *         @arg @ref LL_APB1_GRP1_PERIPH_UART5
2523   *         @arg @ref LL_APB1_GRP1_PERIPH_UART7
2524   *         @arg @ref LL_APB1_GRP1_PERIPH_UART8
2525   * @retval None
2526   */
LL_APB1_GRP1_ReleaseReset(uint32_t Periphs)2527 __STATIC_INLINE void LL_APB1_GRP1_ReleaseReset(uint32_t Periphs)
2528 {
2529   WRITE_REG(RCC->APB1RSTCR1, Periphs);
2530 }
2531 
2532 /**
2533   * @brief  Enable APB1 peripherals clock during Low Power mode.
2534   * @rmtoll APB1LPENSR1  TIM2LPENS     LL_APB1_GRP1_EnableClockLowPower\n
2535   *         APB1LPENSR1  TIM3LPENS     LL_APB1_GRP1_EnableClockLowPower\n
2536   *         APB1LPENSR1  TIM4LPENS     LL_APB1_GRP1_EnableClockLowPower\n
2537   *         APB1LPENSR1  TIM5LPENS     LL_APB1_GRP1_EnableClockLowPower\n
2538   *         APB1LPENSR1  TIM6LPENS     LL_APB1_GRP1_EnableClockLowPower\n
2539   *         APB1LPENSR1  TIM7LPENS     LL_APB1_GRP1_EnableClockLowPower\n
2540   *         APB1LPENSR1  TIM12LPENS    LL_APB1_GRP1_EnableClockLowPower\n
2541   *         APB1LPENSR1  TIM13LPENS    LL_APB1_GRP1_EnableClockLowPower\n
2542   *         APB1LPENSR1  TIM14LPENS    LL_APB1_GRP1_EnableClockLowPower\n
2543   *         APB1LPENSR1  LPTIM1LPENS   LL_APB1_GRP1_EnableClockLowPower\n
2544   *         APB1LPENSR1  WWDGLPENS     LL_APB1_GRP1_EnableClockLowPower\n
2545   *         APB1LPENSR1  TIM10LPENS    LL_APB1_GRP1_EnableClockLowPower\n
2546   *         APB1LPENSR1  TIM11LPENS    LL_APB1_GRP1_EnableClockLowPower\n
2547   *         APB1LPENSR1  SPI2LPENS     LL_APB1_GRP1_EnableClockLowPower\n
2548   *         APB1LPENSR1  SPI3LPENS     LL_APB1_GRP1_EnableClockLowPower\n
2549   *         APB1LPENSR1  SPDIFRX1LPENS LL_APB1_GRP1_EnableClockLowPower\n
2550   *         APB1LPENSR1  USART2LPENS   LL_APB1_GRP1_EnableClockLowPower\n
2551   *         APB1LPENSR1  USART3LPENS   LL_APB1_GRP1_EnableClockLowPower\n
2552   *         APB1LPENSR1  UART4LPENS    LL_APB1_GRP1_EnableClockLowPower\n
2553   *         APB1LPENSR1  UART5LPENS    LL_APB1_GRP1_EnableClockLowPower\n
2554   *         APB1LPENSR1  I2C1LPENS     LL_APB1_GRP1_EnableClockLowPower\n
2555   *         APB1LPENSR1  I2C2LPENS     LL_APB1_GRP1_EnableClockLowPower\n
2556   *         APB1LPENSR1  I2C3LPENS     LL_APB1_GRP1_EnableClockLowPower\n
2557   *         APB1LPENSR1  I3C1LPENS     LL_APB1_GRP1_EnableClockLowPower\n
2558   *         APB1LPENSR1  I3C2LPENS     LL_APB1_GRP1_EnableClockLowPower\n
2559   *         APB1LPENSR1  UART7LPENS    LL_APB1_GRP1_EnableClockLowPower\n
2560   *         APB1LPENSR1  UART8LPENS    LL_APB1_GRP1_EnableClockLowPower
2561   * @param  Periphs This parameter can be a combination of the following values:
2562   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C1
2563   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C2
2564   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C3
2565   *         @arg @ref LL_APB1_GRP1_PERIPH_I3C1
2566   *         @arg @ref LL_APB1_GRP1_PERIPH_I3C2
2567   *         @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1
2568   *         @arg @ref LL_APB1_GRP1_PERIPH_SPDIFRX1
2569   *         @arg @ref LL_APB1_GRP1_PERIPH_SPI2
2570   *         @arg @ref LL_APB1_GRP1_PERIPH_SPI3
2571   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM2
2572   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM3
2573   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM4
2574   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM5
2575   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM6
2576   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM7
2577   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM10
2578   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM11
2579   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM12
2580   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM13
2581   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM14
2582   *         @arg @ref LL_APB1_GRP1_PERIPH_USART2
2583   *         @arg @ref LL_APB1_GRP1_PERIPH_USART3
2584   *         @arg @ref LL_APB1_GRP1_PERIPH_UART4
2585   *         @arg @ref LL_APB1_GRP1_PERIPH_UART5
2586   *         @arg @ref LL_APB1_GRP1_PERIPH_UART7
2587   *         @arg @ref LL_APB1_GRP1_PERIPH_UART8
2588   *         @arg @ref LL_APB1_GRP1_PERIPH_WWDG
2589   * @retval None
2590   */
LL_APB1_GRP1_EnableClockLowPower(uint32_t Periphs)2591 __STATIC_INLINE void LL_APB1_GRP1_EnableClockLowPower(uint32_t Periphs)
2592 {
2593   __IO uint32_t tmpreg;
2594   WRITE_REG(RCC->APB1LPENSR1, Periphs);
2595   /* Delay after an RCC peripheral clock enabling */
2596   tmpreg = READ_REG(RCC->APB1LPENR1);
2597   (void)tmpreg;
2598 }
2599 
2600 /**
2601   * @brief  Check if APB1 peripheral clock during Low Power mode is enabled or not .
2602   * @rmtoll APB1LPENR1   TIM2LPEN      LL_APB1_GRP1_IsEnabledClockLowPower\n
2603   *         APB1LPENR1   TIM3LPEN      LL_APB1_GRP1_IsEnabledClockLowPower\n
2604   *         APB1LPENR1   TIM4LPEN      LL_APB1_GRP1_IsEnabledClockLowPower\n
2605   *         APB1LPENR1   TIM5LPEN      LL_APB1_GRP1_IsEnabledClockLowPower\n
2606   *         APB1LPENR1   TIM6LPEN      LL_APB1_GRP1_IsEnabledClockLowPower\n
2607   *         APB1LPENR1   TIM7LPEN      LL_APB1_GRP1_IsEnabledClockLowPower\n
2608   *         APB1LPENR1   TIM12LPEN     LL_APB1_GRP1_IsEnabledClockLowPower\n
2609   *         APB1LPENR1   TIM13LPEN     LL_APB1_GRP1_IsEnabledClockLowPower\n
2610   *         APB1LPENR1   TIM14LPEN     LL_APB1_GRP1_IsEnabledClockLowPower\n
2611   *         APB1LPENR1   LPTIM1LPEN    LL_APB1_GRP1_IsEnabledClockLowPower\n
2612   *         APB1LPENR1   WWDGLPEN      LL_APB1_GRP1_IsEnabledClockLowPower\n
2613   *         APB1LPENR1   TIM10LPEN     LL_APB1_GRP1_IsEnabledClockLowPower\n
2614   *         APB1LPENR1   TIM11LPEN     LL_APB1_GRP1_IsEnabledClockLowPower\n
2615   *         APB1LPENR1   SPI2LPEN      LL_APB1_GRP1_IsEnabledClockLowPower\n
2616   *         APB1LPENR1   SPI3LPEN      LL_APB1_GRP1_IsEnabledClockLowPower\n
2617   *         APB1LPENR1   SPDIFRX1LPEN  LL_APB1_GRP1_IsEnabledClockLowPower\n
2618   *         APB1LPENR1   USART2LPEN    LL_APB1_GRP1_IsEnabledClockLowPower\n
2619   *         APB1LPENR1   USART3LPEN    LL_APB1_GRP1_IsEnabledClockLowPower\n
2620   *         APB1LPENR1   UART4LPEN     LL_APB1_GRP1_IsEnabledClockLowPower\n
2621   *         APB1LPENR1   UART5LPEN     LL_APB1_GRP1_IsEnabledClockLowPower\n
2622   *         APB1LPENR1   I2C1LPEN      LL_APB1_GRP1_IsEnabledClockLowPower\n
2623   *         APB1LPENR1   I2C2LPEN      LL_APB1_GRP1_IsEnabledClockLowPower\n
2624   *         APB1LPENR1   I2C3LPEN      LL_APB1_GRP1_IsEnabledClockLowPower\n
2625   *         APB1LPENR1   I3C1LPEN      LL_APB1_GRP1_IsEnabledClockLowPower\n
2626   *         APB1LPENR1   I3C2LPEN      LL_APB1_GRP1_IsEnabledClockLowPower\n
2627   *         APB1LPENR1   UART7LPEN     LL_APB1_GRP1_IsEnabledClockLowPower\n
2628   *         APB1LPENR1   UART8LPEN     LL_APB1_GRP1_IsEnabledClockLowPower
2629   * @param  Periphs This parameter can be a combination of the following values:
2630   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C1
2631   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C2
2632   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C3
2633   *         @arg @ref LL_APB1_GRP1_PERIPH_I3C1
2634   *         @arg @ref LL_APB1_GRP1_PERIPH_I3C2
2635   *         @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1
2636   *         @arg @ref LL_APB1_GRP1_PERIPH_SPDIFRX1
2637   *         @arg @ref LL_APB1_GRP1_PERIPH_SPI2
2638   *         @arg @ref LL_APB1_GRP1_PERIPH_SPI3
2639   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM2
2640   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM3
2641   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM4
2642   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM5
2643   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM6
2644   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM7
2645   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM10
2646   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM11
2647   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM12
2648   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM13
2649   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM14
2650   *         @arg @ref LL_APB1_GRP1_PERIPH_USART2
2651   *         @arg @ref LL_APB1_GRP1_PERIPH_USART3
2652   *         @arg @ref LL_APB1_GRP1_PERIPH_UART4
2653   *         @arg @ref LL_APB1_GRP1_PERIPH_UART5
2654   *         @arg @ref LL_APB1_GRP1_PERIPH_UART7
2655   *         @arg @ref LL_APB1_GRP1_PERIPH_UART8
2656   *         @arg @ref LL_APB1_GRP1_PERIPH_WWDG
2657   * @retval uint32_t
2658   */
LL_APB1_GRP1_IsEnabledClockLowPower(uint32_t Periphs)2659 __STATIC_INLINE uint32_t LL_APB1_GRP1_IsEnabledClockLowPower(uint32_t Periphs)
2660 {
2661   return ((READ_BIT(RCC->APB1LPENR1, Periphs) == Periphs) ? 1UL : 0UL);
2662 }
2663 
2664 /**
2665   * @brief  Disable APB1 peripherals clock during Low Power mode.
2666   * @rmtoll APB1LPENCR1  TIM2LPENC     LL_APB1_GRP1_DisableClockLowPower\n
2667   *         APB1LPENCR1  TIM3LPENC     LL_APB1_GRP1_DisableClockLowPower\n
2668   *         APB1LPENCR1  TIM4LPENC     LL_APB1_GRP1_DisableClockLowPower\n
2669   *         APB1LPENCR1  TIM5LPENC     LL_APB1_GRP1_DisableClockLowPower\n
2670   *         APB1LPENCR1  TIM6LPENC     LL_APB1_GRP1_DisableClockLowPower\n
2671   *         APB1LPENCR1  TIM7LPENC     LL_APB1_GRP1_DisableClockLowPower\n
2672   *         APB1LPENCR1  TIM12LPENC    LL_APB1_GRP1_DisableClockLowPower\n
2673   *         APB1LPENCR1  TIM13LPENC    LL_APB1_GRP1_DisableClockLowPower\n
2674   *         APB1LPENCR1  TIM14LPENC    LL_APB1_GRP1_DisableClockLowPower\n
2675   *         APB1LPENCR1  LPTIM1LPENC   LL_APB1_GRP1_DisableClockLowPower\n
2676   *         APB1LPENCR1  WWDGLPENC     LL_APB1_GRP1_DisableClockLowPower\n
2677   *         APB1LPENCR1  TIM10LPENC    LL_APB1_GRP1_DisableClockLowPower\n
2678   *         APB1LPENCR1  TIM11LPENC    LL_APB1_GRP1_DisableClockLowPower\n
2679   *         APB1LPENCR1  SPI2LPENC     LL_APB1_GRP1_DisableClockLowPower\n
2680   *         APB1LPENCR1  SPI3LPENC     LL_APB1_GRP1_DisableClockLowPower\n
2681   *         APB1LPENCR1  SPDIFRX1LPENC LL_APB1_GRP1_DisableClockLowPower\n
2682   *         APB1LPENCR1  USART2LPENC   LL_APB1_GRP1_DisableClockLowPower\n
2683   *         APB1LPENCR1  USART3LPENC   LL_APB1_GRP1_DisableClockLowPower\n
2684   *         APB1LPENCR1  UART4LPENC    LL_APB1_GRP1_DisableClockLowPower\n
2685   *         APB1LPENCR1  UART5LPENC    LL_APB1_GRP1_DisableClockLowPower\n
2686   *         APB1LPENCR1  I2C1LPENC     LL_APB1_GRP1_DisableClockLowPower\n
2687   *         APB1LPENCR1  I2C2LPENC     LL_APB1_GRP1_DisableClockLowPower\n
2688   *         APB1LPENCR1  I2C3LPENC     LL_APB1_GRP1_DisableClockLowPower\n
2689   *         APB1LPENCR1  I3C1LPENC     LL_APB1_GRP1_DisableClockLowPower\n
2690   *         APB1LPENCR1  I3C2LPENC     LL_APB1_GRP1_DisableClockLowPower\n
2691   *         APB1LPENCR1  UART7LPENC    LL_APB1_GRP1_DisableClockLowPower\n
2692   *         APB1LPENCR1  UART8LPENC    LL_APB1_GRP1_DisableClockLowPower
2693   * @param  Periphs This parameter can be a combination of the following values:
2694   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C1
2695   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C2
2696   *         @arg @ref LL_APB1_GRP1_PERIPH_I2C3
2697   *         @arg @ref LL_APB1_GRP1_PERIPH_I3C1
2698   *         @arg @ref LL_APB1_GRP1_PERIPH_I3C2
2699   *         @arg @ref LL_APB1_GRP1_PERIPH_LPTIM1
2700   *         @arg @ref LL_APB1_GRP1_PERIPH_SPDIFRX1
2701   *         @arg @ref LL_APB1_GRP1_PERIPH_SPI2
2702   *         @arg @ref LL_APB1_GRP1_PERIPH_SPI3
2703   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM2
2704   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM3
2705   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM4
2706   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM5
2707   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM6
2708   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM7
2709   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM10
2710   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM11
2711   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM12
2712   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM13
2713   *         @arg @ref LL_APB1_GRP1_PERIPH_TIM14
2714   *         @arg @ref LL_APB1_GRP1_PERIPH_USART2
2715   *         @arg @ref LL_APB1_GRP1_PERIPH_USART3
2716   *         @arg @ref LL_APB1_GRP1_PERIPH_UART4
2717   *         @arg @ref LL_APB1_GRP1_PERIPH_UART5
2718   *         @arg @ref LL_APB1_GRP1_PERIPH_UART7
2719   *         @arg @ref LL_APB1_GRP1_PERIPH_UART8
2720   *         @arg @ref LL_APB1_GRP1_PERIPH_WWDG
2721   * @retval None
2722   */
LL_APB1_GRP1_DisableClockLowPower(uint32_t Periphs)2723 __STATIC_INLINE void LL_APB1_GRP1_DisableClockLowPower(uint32_t Periphs)
2724 {
2725   WRITE_REG(RCC->APB1LPENCR1, Periphs);
2726 }
2727 
2728 /**
2729   * @brief  Enable APB1 peripherals clock.
2730   * @rmtoll APB1ENSR2    MDIOSENS      LL_APB1_GRP2_EnableClock\n
2731   *         APB1ENSR2    FDCANENS      LL_APB1_GRP2_EnableClock\n
2732   *         APB1ENSR2    UCPD1ENS      LL_APB1_GRP2_EnableClock
2733   * @param  Periphs This parameter can be a combination of the following values:
2734   *         @arg @ref LL_APB1_GRP2_PERIPH_FDCAN
2735   *         @arg @ref LL_APB1_GRP2_PERIPH_MDIOS
2736   *         @arg @ref LL_APB1_GRP2_PERIPH_UCPD1
2737   * @retval None
2738   */
LL_APB1_GRP2_EnableClock(uint32_t Periphs)2739 __STATIC_INLINE void LL_APB1_GRP2_EnableClock(uint32_t Periphs)
2740 {
2741   __IO uint32_t tmpreg;
2742   WRITE_REG(RCC->APB1ENSR2, Periphs);
2743   /* Delay after an RCC peripheral clock enabling */
2744   tmpreg = READ_REG(RCC->APB1ENR2);
2745   (void)tmpreg;
2746 }
2747 
2748 /**
2749   * @brief  Check if APB1 peripheral clock is enabled or not
2750   * @rmtoll APB1ENR2     MDIOSEN       LL_APB1_GRP2_IsEnabledClock\n
2751   *         APB1ENR2     FDCANEN       LL_APB1_GRP2_IsEnabledClock\n
2752   *         APB1ENR2     UCPD1EN       LL_APB1_GRP2_IsEnabledClock
2753   * @param  Periphs This parameter can be a combination of the following values:
2754   *         @arg @ref LL_APB1_GRP2_PERIPH_FDCAN
2755   *         @arg @ref LL_APB1_GRP2_PERIPH_MDIOS
2756   *         @arg @ref LL_APB1_GRP2_PERIPH_UCPD1
2757   * @retval uint32_t
2758   */
LL_APB1_GRP2_IsEnabledClock(uint32_t Periphs)2759 __STATIC_INLINE uint32_t LL_APB1_GRP2_IsEnabledClock(uint32_t Periphs)
2760 {
2761   return ((READ_BIT(RCC->APB1ENR2, Periphs) == Periphs) ? 1UL : 0UL);
2762 }
2763 
2764 /**
2765   * @brief  Disable APB1 peripherals clock.
2766   * @rmtoll APB1ENCR2    MDIOSENC      LL_APB1_GRP2_DisableClock\n
2767   *         APB1ENCR2    FDCANENC      LL_APB1_GRP2_DisableClock\n
2768   *         APB1ENCR2    UCPD1ENC      LL_APB1_GRP2_DisableClock
2769   * @param  Periphs This parameter can be a combination of the following values:
2770   *         @arg @ref LL_APB1_GRP2_PERIPH_FDCAN
2771   *         @arg @ref LL_APB1_GRP2_PERIPH_MDIOS
2772   *         @arg @ref LL_APB1_GRP2_PERIPH_UCPD1
2773   * @retval None
2774   */
LL_APB1_GRP2_DisableClock(uint32_t Periphs)2775 __STATIC_INLINE void LL_APB1_GRP2_DisableClock(uint32_t Periphs)
2776 {
2777   WRITE_REG(RCC->APB1ENCR2, Periphs);
2778 }
2779 
2780 /**
2781   * @brief  Force APB1 peripherals reset.
2782   * @rmtoll APB1RSTSR2   MDIOSRSTS     LL_APB1_GRP2_ForceReset\n
2783   *         APB1RSTSR2   FDCANRSTS     LL_APB1_GRP2_ForceReset\n
2784   *         APB1RSTSR2   UCPD1RSTS     LL_APB1_GRP2_ForceReset
2785   * @param  Periphs This parameter can be a combination of the following values:
2786   *         @arg @ref LL_APB1_GRP2_PERIPH_FDCAN
2787   *         @arg @ref LL_APB1_GRP2_PERIPH_MDIOS
2788   *         @arg @ref LL_APB1_GRP2_PERIPH_UCPD1
2789   * @retval None
2790   */
LL_APB1_GRP2_ForceReset(uint32_t Periphs)2791 __STATIC_INLINE void LL_APB1_GRP2_ForceReset(uint32_t Periphs)
2792 {
2793   WRITE_REG(RCC->APB1RSTSR2, Periphs);
2794 }
2795 
2796 /**
2797   * @brief  Release APB1 peripherals reset.
2798   * @rmtoll APB1RSTCR2   MDIOSRSTC     LL_APB1_GRP2_ReleaseReset\n
2799   *         APB1RSTCR2   FDCANRSTC     LL_APB1_GRP2_ReleaseReset\n
2800   *         APB1RSTCR2   UCPD1RSTC     LL_APB1_GRP2_ReleaseReset
2801   * @param  Periphs This parameter can be a combination of the following values:
2802   *         @arg @ref LL_APB1_GRP2_PERIPH_FDCAN
2803   *         @arg @ref LL_APB1_GRP2_PERIPH_MDIOS
2804   *         @arg @ref LL_APB1_GRP2_PERIPH_UCPD1
2805   * @retval None
2806   */
LL_APB1_GRP2_ReleaseReset(uint32_t Periphs)2807 __STATIC_INLINE void LL_APB1_GRP2_ReleaseReset(uint32_t Periphs)
2808 {
2809   WRITE_REG(RCC->APB1RSTCR2, Periphs);
2810 }
2811 
2812 /**
2813   * @brief  Enable APB1 peripherals clock during Low Power mode.
2814   * @rmtoll APB1LPENSR2  MDIOSLPENS    LL_APB1_GRP2_EnableClockLowPower\n
2815   *         APB1LPENSR2  FDCANLPENS    LL_APB1_GRP2_EnableClockLowPower\n
2816   *         APB1LPENSR2  UCPD1LPENS    LL_APB1_GRP2_EnableClockLowPower
2817   * @param  Periphs This parameter can be a combination of the following values:
2818   *         @arg @ref LL_APB1_GRP2_PERIPH_FDCAN
2819   *         @arg @ref LL_APB1_GRP2_PERIPH_MDIOS
2820   *         @arg @ref LL_APB1_GRP2_PERIPH_UCPD1
2821   * @retval None
2822   */
LL_APB1_GRP2_EnableClockLowPower(uint32_t Periphs)2823 __STATIC_INLINE void LL_APB1_GRP2_EnableClockLowPower(uint32_t Periphs)
2824 {
2825   __IO uint32_t tmpreg;
2826   WRITE_REG(RCC->APB1LPENSR2, Periphs);
2827   /* Delay after an RCC peripheral clock enabling */
2828   tmpreg = READ_REG(RCC->APB1LPENR2);
2829   (void)tmpreg;
2830 }
2831 
2832 /**
2833   * @brief  Check if APB1 peripheral clock during Low Power mode is enabled or not .
2834   * @rmtoll APB1LPENR2   MDIOSLPEN     LL_APB1_GRP2_IsEnabledClockLowPower\n
2835   *         APB1LPENR2   FDCANLPEN     LL_APB1_GRP2_IsEnabledClockLowPower\n
2836   *         APB1LPENR2   UCPD1LPEN     LL_APB1_GRP2_IsEnabledClockLowPower
2837   * @param  Periphs This parameter can be a combination of the following values:
2838   *         @arg @ref LL_APB1_GRP2_PERIPH_FDCAN
2839   *         @arg @ref LL_APB1_GRP2_PERIPH_MDIOS
2840   *         @arg @ref LL_APB1_GRP2_PERIPH_UCPD1
2841   * @retval uint32_t
2842   */
LL_APB1_GRP2_IsEnabledClockLowPower(uint32_t Periphs)2843 __STATIC_INLINE uint32_t LL_APB1_GRP2_IsEnabledClockLowPower(uint32_t Periphs)
2844 {
2845   return ((READ_BIT(RCC->APB1LPENR2, Periphs) == Periphs) ? 1UL : 0UL);
2846 }
2847 
2848 /**
2849   * @brief  Disable APB1 peripherals clock during Low Power mode.
2850   * @rmtoll APB1LPENCR2  MDIOSLPENC    LL_APB1_GRP2_DisableClockLowPower\n
2851   *         APB1LPENCR2  FDCANLPENC    LL_APB1_GRP2_DisableClockLowPower\n
2852   *         APB1LPENCR2  UCPD1LPENC    LL_APB1_GRP2_DisableClockLowPower
2853   * @param  Periphs This parameter can be a combination of the following values:
2854   *         @arg @ref LL_APB1_GRP2_PERIPH_FDCAN
2855   *         @arg @ref LL_APB1_GRP2_PERIPH_MDIOS
2856   *         @arg @ref LL_APB1_GRP2_PERIPH_UCPD1
2857   * @retval None
2858   */
LL_APB1_GRP2_DisableClockLowPower(uint32_t Periphs)2859 __STATIC_INLINE void LL_APB1_GRP2_DisableClockLowPower(uint32_t Periphs)
2860 {
2861   WRITE_REG(RCC->APB1LPENCR2, Periphs);
2862 }
2863 
2864 /**
2865   * @}
2866   */
2867 
2868 /** @defgroup BUS_LL_EF_APB2 APB2
2869   * @{
2870   */
2871 
2872 /**
2873   * @brief  Enable APB2 peripherals clock.
2874   * @rmtoll APB2ENSR     TIM1ENS       LL_APB2_GRP1_EnableClock\n
2875   *         APB2ENSR     TIM8ENS       LL_APB2_GRP1_EnableClock\n
2876   *         APB2ENSR     USART1ENS     LL_APB2_GRP1_EnableClock\n
2877   *         APB2ENSR     USART6ENS     LL_APB2_GRP1_EnableClock\n
2878   *         APB2ENSR     UART9ENS      LL_APB2_GRP1_EnableClock\n
2879   *         APB2ENSR     USART10ENS    LL_APB2_GRP1_EnableClock\n
2880   *         APB2ENSR     SPI1ENS       LL_APB2_GRP1_EnableClock\n
2881   *         APB2ENSR     SPI4ENS       LL_APB2_GRP1_EnableClock\n
2882   *         APB2ENSR     TIM18ENS      LL_APB2_GRP1_EnableClock\n
2883   *         APB2ENSR     TIM15ENS      LL_APB2_GRP1_EnableClock\n
2884   *         APB2ENSR     TIM16ENS      LL_APB2_GRP1_EnableClock\n
2885   *         APB2ENSR     TIM17ENS      LL_APB2_GRP1_EnableClock\n
2886   *         APB2ENSR     TIM9ENS       LL_APB2_GRP1_EnableClock\n
2887   *         APB2ENSR     SPI5ENS       LL_APB2_GRP1_EnableClock\n
2888   *         APB2ENSR     SAI1ENS       LL_APB2_GRP1_EnableClock\n
2889   *         APB2ENSR     SAI2ENS       LL_APB2_GRP1_EnableClock
2890   * @param  Periphs This parameter can be a combination of the following values:
2891   *         @arg @ref LL_APB2_GRP1_PERIPH_SAI1
2892   *         @arg @ref LL_APB2_GRP1_PERIPH_SAI2
2893   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI1
2894   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI4
2895   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI5
2896   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM1
2897   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM8
2898   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM9
2899   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM15
2900   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM16
2901   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM17
2902   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM18
2903   *         @arg @ref LL_APB2_GRP1_PERIPH_USART1
2904   *         @arg @ref LL_APB2_GRP1_PERIPH_USART6
2905   *         @arg @ref LL_APB2_GRP1_PERIPH_UART9
2906   *         @arg @ref LL_APB2_GRP1_PERIPH_USART10
2907   * @retval None
2908   */
LL_APB2_GRP1_EnableClock(uint32_t Periphs)2909 __STATIC_INLINE void LL_APB2_GRP1_EnableClock(uint32_t Periphs)
2910 {
2911   __IO uint32_t tmpreg;
2912   WRITE_REG(RCC->APB2ENSR, Periphs);
2913   /* Delay after an RCC peripheral clock enabling */
2914   tmpreg = READ_REG(RCC->APB2ENR);
2915   (void)tmpreg;
2916 }
2917 
2918 /**
2919   * @brief  Check if APB2 peripheral clock is enabled or not
2920   * @rmtoll APB2ENR      TIM1EN        LL_APB2_GRP1_IsEnabledClock\n
2921   *         APB2ENR      TIM8EN        LL_APB2_GRP1_IsEnabledClock\n
2922   *         APB2ENR      USART1EN      LL_APB2_GRP1_IsEnabledClock\n
2923   *         APB2ENR      USART6EN      LL_APB2_GRP1_IsEnabledClock\n
2924   *         APB2ENR      UART9EN       LL_APB2_GRP1_IsEnabledClock\n
2925   *         APB2ENR      USART10EN     LL_APB2_GRP1_IsEnabledClock\n
2926   *         APB2ENR      SPI1EN        LL_APB2_GRP1_IsEnabledClock\n
2927   *         APB2ENR      SPI4EN        LL_APB2_GRP1_IsEnabledClock\n
2928   *         APB2ENR      TIM18EN       LL_APB2_GRP1_IsEnabledClock\n
2929   *         APB2ENR      TIM15EN       LL_APB2_GRP1_IsEnabledClock\n
2930   *         APB2ENR      TIM16EN       LL_APB2_GRP1_IsEnabledClock\n
2931   *         APB2ENR      TIM17EN       LL_APB2_GRP1_IsEnabledClock\n
2932   *         APB2ENR      TIM9EN        LL_APB2_GRP1_IsEnabledClock\n
2933   *         APB2ENR      SPI5EN        LL_APB2_GRP1_IsEnabledClock\n
2934   *         APB2ENR      SAI1EN        LL_APB2_GRP1_IsEnabledClock\n
2935   *         APB2ENR      SAI2EN        LL_APB2_GRP1_IsEnabledClock
2936   * @param  Periphs This parameter can be a combination of the following values:
2937   *         @arg @ref LL_APB2_GRP1_PERIPH_SAI1
2938   *         @arg @ref LL_APB2_GRP1_PERIPH_SAI2
2939   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI1
2940   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI4
2941   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI5
2942   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM1
2943   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM8
2944   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM9
2945   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM15
2946   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM16
2947   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM17
2948   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM18
2949   *         @arg @ref LL_APB2_GRP1_PERIPH_USART1
2950   *         @arg @ref LL_APB2_GRP1_PERIPH_USART6
2951   *         @arg @ref LL_APB2_GRP1_PERIPH_UART9
2952   *         @arg @ref LL_APB2_GRP1_PERIPH_USART10
2953   * @retval uint32_t
2954   */
LL_APB2_GRP1_IsEnabledClock(uint32_t Periphs)2955 __STATIC_INLINE uint32_t LL_APB2_GRP1_IsEnabledClock(uint32_t Periphs)
2956 {
2957   return ((READ_BIT(RCC->APB2ENR, Periphs) == Periphs) ? 1UL : 0UL);
2958 }
2959 
2960 /**
2961   * @brief  Disable APB2 peripherals clock.
2962   * @rmtoll APB2ENCR     TIM1ENC       LL_APB2_GRP1_DisableClock\n
2963   *         APB2ENCR     TIM8ENC       LL_APB2_GRP1_DisableClock\n
2964   *         APB2ENCR     USART1ENC     LL_APB2_GRP1_DisableClock\n
2965   *         APB2ENCR     USART6ENC     LL_APB2_GRP1_DisableClock\n
2966   *         APB2ENCR     UART9ENC      LL_APB2_GRP1_DisableClock\n
2967   *         APB2ENCR     USART10ENC    LL_APB2_GRP1_DisableClock\n
2968   *         APB2ENCR     SPI1ENC       LL_APB2_GRP1_DisableClock\n
2969   *         APB2ENCR     SPI4ENC       LL_APB2_GRP1_DisableClock\n
2970   *         APB2ENCR     TIM18ENC      LL_APB2_GRP1_DisableClock\n
2971   *         APB2ENCR     TIM15ENC      LL_APB2_GRP1_DisableClock\n
2972   *         APB2ENCR     TIM16ENC      LL_APB2_GRP1_DisableClock\n
2973   *         APB2ENCR     TIM17ENC      LL_APB2_GRP1_DisableClock\n
2974   *         APB2ENCR     TIM9ENC       LL_APB2_GRP1_DisableClock\n
2975   *         APB2ENCR     SPI5ENC       LL_APB2_GRP1_DisableClock\n
2976   *         APB2ENCR     SAI1ENC       LL_APB2_GRP1_DisableClock\n
2977   *         APB2ENCR     SAI2ENC       LL_APB2_GRP1_DisableClock
2978   * @param  Periphs This parameter can be a combination of the following values:
2979   *         @arg @ref LL_APB2_GRP1_PERIPH_SAI1
2980   *         @arg @ref LL_APB2_GRP1_PERIPH_SAI2
2981   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI1
2982   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI4
2983   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI5
2984   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM1
2985   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM8
2986   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM9
2987   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM15
2988   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM16
2989   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM17
2990   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM18
2991   *         @arg @ref LL_APB2_GRP1_PERIPH_USART1
2992   *         @arg @ref LL_APB2_GRP1_PERIPH_USART6
2993   *         @arg @ref LL_APB2_GRP1_PERIPH_UART9
2994   *         @arg @ref LL_APB2_GRP1_PERIPH_USART10
2995   * @retval None
2996   */
LL_APB2_GRP1_DisableClock(uint32_t Periphs)2997 __STATIC_INLINE void LL_APB2_GRP1_DisableClock(uint32_t Periphs)
2998 {
2999   WRITE_REG(RCC->APB2ENCR, Periphs);
3000 }
3001 
3002 /**
3003   * @brief  Force APB2 peripherals reset.
3004   * @rmtoll APB2RSTSR    TIM1RSTS      LL_APB2_GRP1_ForceReset\n
3005   *         APB2RSTSR    TIM8RSTS      LL_APB2_GRP1_ForceReset\n
3006   *         APB2RSTSR    USART1RSTS    LL_APB2_GRP1_ForceReset\n
3007   *         APB2RSTSR    USART6RSTS    LL_APB2_GRP1_ForceReset\n
3008   *         APB2RSTSR    UART9RSTS     LL_APB2_GRP1_ForceReset\n
3009   *         APB2RSTSR    USART10RSTS   LL_APB2_GRP1_ForceReset\n
3010   *         APB2RSTSR    SPI1RSTS      LL_APB2_GRP1_ForceReset\n
3011   *         APB2RSTSR    SPI4RSTS      LL_APB2_GRP1_ForceReset\n
3012   *         APB2RSTSR    TIM18RSTS     LL_APB2_GRP1_ForceReset\n
3013   *         APB2RSTSR    TIM15RSTS     LL_APB2_GRP1_ForceReset\n
3014   *         APB2RSTSR    TIM16RSTS     LL_APB2_GRP1_ForceReset\n
3015   *         APB2RSTSR    TIM17RSTS     LL_APB2_GRP1_ForceReset\n
3016   *         APB2RSTSR    TIM9RSTS      LL_APB2_GRP1_ForceReset\n
3017   *         APB2RSTSR    SPI5RSTS      LL_APB2_GRP1_ForceReset\n
3018   *         APB2RSTSR    SAI1RSTS      LL_APB2_GRP1_ForceReset\n
3019   *         APB2RSTSR    SAI2RSTS      LL_APB2_GRP1_ForceReset
3020   * @param  Periphs This parameter can be a combination of the following values:
3021   *         @arg @ref LL_APB2_GRP1_PERIPH_SAI1
3022   *         @arg @ref LL_APB2_GRP1_PERIPH_SAI2
3023   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI1
3024   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI4
3025   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI5
3026   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM1
3027   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM8
3028   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM9
3029   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM15
3030   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM16
3031   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM17
3032   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM18
3033   *         @arg @ref LL_APB2_GRP1_PERIPH_USART1
3034   *         @arg @ref LL_APB2_GRP1_PERIPH_USART6
3035   *         @arg @ref LL_APB2_GRP1_PERIPH_UART9
3036   *         @arg @ref LL_APB2_GRP1_PERIPH_USART10
3037   * @retval None
3038   */
LL_APB2_GRP1_ForceReset(uint32_t Periphs)3039 __STATIC_INLINE void LL_APB2_GRP1_ForceReset(uint32_t Periphs)
3040 {
3041   WRITE_REG(RCC->APB2RSTSR, Periphs);
3042 }
3043 
3044 /**
3045   * @brief  Release APB2 peripherals reset.
3046   * @rmtoll APB2RSTCR    TIM1RSTC      LL_APB2_GRP1_ReleaseReset\n
3047   *         APB2RSTCR    TIM8RSTC      LL_APB2_GRP1_ReleaseReset\n
3048   *         APB2RSTCR    USART1RSTC    LL_APB2_GRP1_ReleaseReset\n
3049   *         APB2RSTCR    USART6RSTC    LL_APB2_GRP1_ReleaseReset\n
3050   *         APB2RSTCR    UART9RSTC     LL_APB2_GRP1_ReleaseReset\n
3051   *         APB2RSTCR    USART10RSTC   LL_APB2_GRP1_ReleaseReset\n
3052   *         APB2RSTCR    SPI1RSTC      LL_APB2_GRP1_ReleaseReset\n
3053   *         APB2RSTCR    SPI4RSTC      LL_APB2_GRP1_ReleaseReset\n
3054   *         APB2RSTCR    TIM18RSTC     LL_APB2_GRP1_ReleaseReset\n
3055   *         APB2RSTCR    TIM15RSTC     LL_APB2_GRP1_ReleaseReset\n
3056   *         APB2RSTCR    TIM16RSTC     LL_APB2_GRP1_ReleaseReset\n
3057   *         APB2RSTCR    TIM17RSTC     LL_APB2_GRP1_ReleaseReset\n
3058   *         APB2RSTCR    TIM9RSTC      LL_APB2_GRP1_ReleaseReset\n
3059   *         APB2RSTCR    SPI5RSTC      LL_APB2_GRP1_ReleaseReset\n
3060   *         APB2RSTCR    SAI1RSTC      LL_APB2_GRP1_ReleaseReset\n
3061   *         APB2RSTCR    SAI2RSTC      LL_APB2_GRP1_ReleaseReset
3062   * @param  Periphs This parameter can be a combination of the following values:
3063   *         @arg @ref LL_APB2_GRP1_PERIPH_SAI1
3064   *         @arg @ref LL_APB2_GRP1_PERIPH_SAI2
3065   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI1
3066   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI4
3067   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI5
3068   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM1
3069   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM8
3070   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM9
3071   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM15
3072   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM16
3073   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM17
3074   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM18
3075   *         @arg @ref LL_APB2_GRP1_PERIPH_USART1
3076   *         @arg @ref LL_APB2_GRP1_PERIPH_USART6
3077   *         @arg @ref LL_APB2_GRP1_PERIPH_UART9
3078   *         @arg @ref LL_APB2_GRP1_PERIPH_USART10
3079   * @retval None
3080   */
LL_APB2_GRP1_ReleaseReset(uint32_t Periphs)3081 __STATIC_INLINE void LL_APB2_GRP1_ReleaseReset(uint32_t Periphs)
3082 {
3083   WRITE_REG(RCC->APB2RSTCR, Periphs);
3084 }
3085 
3086 /**
3087   * @brief  Enable APB2 peripherals clock during Low Power mode.
3088   * @rmtoll APB2LPENSR   TIM1LPENS     LL_APB2_GRP1_EnableClockLowPower\n
3089   *         APB2LPENSR   TIM8LPENS     LL_APB2_GRP1_EnableClockLowPower\n
3090   *         APB2LPENSR   USART1LPENS   LL_APB2_GRP1_EnableClockLowPower\n
3091   *         APB2LPENSR   USART6LPENS   LL_APB2_GRP1_EnableClockLowPower\n
3092   *         APB2LPENSR   UART9LPENS    LL_APB2_GRP1_EnableClockLowPower\n
3093   *         APB2LPENSR   USART10LPENS  LL_APB2_GRP1_EnableClockLowPower\n
3094   *         APB2LPENSR   SPI1LPENS     LL_APB2_GRP1_EnableClockLowPower\n
3095   *         APB2LPENSR   SPI4LPENS     LL_APB2_GRP1_EnableClockLowPower\n
3096   *         APB2LPENSR   TIM18LPENS    LL_APB2_GRP1_EnableClockLowPower\n
3097   *         APB2LPENSR   TIM15LPENS    LL_APB2_GRP1_EnableClockLowPower\n
3098   *         APB2LPENSR   TIM16LPENS    LL_APB2_GRP1_EnableClockLowPower\n
3099   *         APB2LPENSR   TIM17LPENS    LL_APB2_GRP1_EnableClockLowPower\n
3100   *         APB2LPENSR   TIM9LPENS     LL_APB2_GRP1_EnableClockLowPower\n
3101   *         APB2LPENSR   SPI5LPENS     LL_APB2_GRP1_EnableClockLowPower\n
3102   *         APB2LPENSR   SAI1LPENS     LL_APB2_GRP1_EnableClockLowPower\n
3103   *         APB2LPENSR   SAI2LPENS     LL_APB2_GRP1_EnableClockLowPower
3104   * @param  Periphs This parameter can be a combination of the following values:
3105   *         @arg @ref LL_APB2_GRP1_PERIPH_SAI1
3106   *         @arg @ref LL_APB2_GRP1_PERIPH_SAI2
3107   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI1
3108   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI4
3109   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI5
3110   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM1
3111   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM8
3112   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM9
3113   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM15
3114   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM16
3115   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM17
3116   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM18
3117   *         @arg @ref LL_APB2_GRP1_PERIPH_USART1
3118   *         @arg @ref LL_APB2_GRP1_PERIPH_USART6
3119   *         @arg @ref LL_APB2_GRP1_PERIPH_UART9
3120   *         @arg @ref LL_APB2_GRP1_PERIPH_USART10
3121   * @retval None
3122   */
LL_APB2_GRP1_EnableClockLowPower(uint32_t Periphs)3123 __STATIC_INLINE void LL_APB2_GRP1_EnableClockLowPower(uint32_t Periphs)
3124 {
3125   __IO uint32_t tmpreg;
3126   WRITE_REG(RCC->APB2LPENSR, Periphs);
3127   /* Delay after an RCC peripheral clock enabling */
3128   tmpreg = READ_REG(RCC->APB2LPENR);
3129   (void)tmpreg;
3130 }
3131 
3132 /**
3133   * @brief  Check if APB2 peripheral clock during Low Power mode is enabled or not .
3134   * @rmtoll APB2LPENR    TIM1LPEN      LL_APB2_GRP1_IsEnabledClockLowPower\n
3135   *         APB2LPENR    TIM8LPEN      LL_APB2_GRP1_IsEnabledClockLowPower\n
3136   *         APB2LPENR    USART1LPEN    LL_APB2_GRP1_IsEnabledClockLowPower\n
3137   *         APB2LPENR    USART6LPEN    LL_APB2_GRP1_IsEnabledClockLowPower\n
3138   *         APB2LPENR    UART9LPEN     LL_APB2_GRP1_IsEnabledClockLowPower\n
3139   *         APB2LPENR    USART10LPEN   LL_APB2_GRP1_IsEnabledClockLowPower\n
3140   *         APB2LPENR    SPI1LPEN      LL_APB2_GRP1_IsEnabledClockLowPower\n
3141   *         APB2LPENR    SPI4LPEN      LL_APB2_GRP1_IsEnabledClockLowPower\n
3142   *         APB2LPENR    TIM18LPEN     LL_APB2_GRP1_IsEnabledClockLowPower\n
3143   *         APB2LPENR    TIM15LPEN     LL_APB2_GRP1_IsEnabledClockLowPower\n
3144   *         APB2LPENR    TIM16LPEN     LL_APB2_GRP1_IsEnabledClockLowPower\n
3145   *         APB2LPENR    TIM17LPEN     LL_APB2_GRP1_IsEnabledClockLowPower\n
3146   *         APB2LPENR    TIM9LPEN      LL_APB2_GRP1_IsEnabledClockLowPower\n
3147   *         APB2LPENR    SPI5LPEN      LL_APB2_GRP1_IsEnabledClockLowPower\n
3148   *         APB2LPENR    SAI1LPEN      LL_APB2_GRP1_IsEnabledClockLowPower\n
3149   *         APB2LPENR    SAI2LPEN      LL_APB2_GRP1_IsEnabledClockLowPower
3150   * @param  Periphs This parameter can be a combination of the following values:
3151   *         @arg @ref LL_APB2_GRP1_PERIPH_SAI1
3152   *         @arg @ref LL_APB2_GRP1_PERIPH_SAI2
3153   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI1
3154   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI4
3155   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI5
3156   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM1
3157   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM8
3158   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM9
3159   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM15
3160   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM16
3161   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM17
3162   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM18
3163   *         @arg @ref LL_APB2_GRP1_PERIPH_USART1
3164   *         @arg @ref LL_APB2_GRP1_PERIPH_USART6
3165   *         @arg @ref LL_APB2_GRP1_PERIPH_UART9
3166   *         @arg @ref LL_APB2_GRP1_PERIPH_USART10
3167   * @retval uint32_t
3168   */
LL_APB2_GRP1_IsEnabledClockLowPower(uint32_t Periphs)3169 __STATIC_INLINE uint32_t LL_APB2_GRP1_IsEnabledClockLowPower(uint32_t Periphs)
3170 {
3171   return ((READ_BIT(RCC->APB2LPENR, Periphs) == Periphs) ? 1UL : 0UL);
3172 }
3173 
3174 /**
3175   * @brief  Disable APB2 peripherals clock during Low Power mode.
3176   * @rmtoll APB2LPENCR   TIM1LPENC     LL_APB2_GRP1_DisableClockLowPower\n
3177   *         APB2LPENCR   TIM8LPENC     LL_APB2_GRP1_DisableClockLowPower\n
3178   *         APB2LPENCR   USART1LPENC   LL_APB2_GRP1_DisableClockLowPower\n
3179   *         APB2LPENCR   USART6LPENC   LL_APB2_GRP1_DisableClockLowPower\n
3180   *         APB2LPENCR   UART9LPENC    LL_APB2_GRP1_DisableClockLowPower\n
3181   *         APB2LPENCR   USART10LPENC  LL_APB2_GRP1_DisableClockLowPower\n
3182   *         APB2LPENCR   SPI1LPENC     LL_APB2_GRP1_DisableClockLowPower\n
3183   *         APB2LPENCR   SPI4LPENC     LL_APB2_GRP1_DisableClockLowPower\n
3184   *         APB2LPENCR   TIM18LPENC    LL_APB2_GRP1_DisableClockLowPower\n
3185   *         APB2LPENCR   TIM15LPENC    LL_APB2_GRP1_DisableClockLowPower\n
3186   *         APB2LPENCR   TIM16LPENC    LL_APB2_GRP1_DisableClockLowPower\n
3187   *         APB2LPENCR   TIM17LPENC    LL_APB2_GRP1_DisableClockLowPower\n
3188   *         APB2LPENCR   TIM9LPENC     LL_APB2_GRP1_DisableClockLowPower\n
3189   *         APB2LPENCR   SPI5LPENC     LL_APB2_GRP1_DisableClockLowPower\n
3190   *         APB2LPENCR   SAI1LPENC     LL_APB2_GRP1_DisableClockLowPower\n
3191   *         APB2LPENCR   SAI2LPENC     LL_APB2_GRP1_DisableClockLowPower
3192   * @param  Periphs This parameter can be a combination of the following values:
3193   *         @arg @ref LL_APB2_GRP1_PERIPH_SAI1
3194   *         @arg @ref LL_APB2_GRP1_PERIPH_SAI2
3195   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI1
3196   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI4
3197   *         @arg @ref LL_APB2_GRP1_PERIPH_SPI5
3198   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM1
3199   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM8
3200   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM9
3201   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM15
3202   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM16
3203   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM17
3204   *         @arg @ref LL_APB2_GRP1_PERIPH_TIM18
3205   *         @arg @ref LL_APB2_GRP1_PERIPH_USART1
3206   *         @arg @ref LL_APB2_GRP1_PERIPH_USART6
3207   *         @arg @ref LL_APB2_GRP1_PERIPH_UART9
3208   *         @arg @ref LL_APB2_GRP1_PERIPH_USART10
3209   * @retval None
3210   */
LL_APB2_GRP1_DisableClockLowPower(uint32_t Periphs)3211 __STATIC_INLINE void LL_APB2_GRP1_DisableClockLowPower(uint32_t Periphs)
3212 {
3213   WRITE_REG(RCC->APB2LPENCR, Periphs);
3214 }
3215 
3216 /**
3217   * @}
3218   */
3219 
3220 /** @defgroup BUS_LL_EF_APB4 APB4
3221   * @{
3222   */
3223 
3224 /**
3225   * @brief  Enable APB4 peripherals clock.
3226   * @rmtoll APB4ENSR1    HDPENS        LL_APB4_GRP1_EnableClock\n
3227   *         APB4ENSR1    LPUART1ENS    LL_APB4_GRP1_EnableClock\n
3228   *         APB4ENSR1    SPI6ENS       LL_APB4_GRP1_EnableClock\n
3229   *         APB4ENSR1    I2C4ENS       LL_APB4_GRP1_EnableClock\n
3230   *         APB4ENSR1    LPTIM2ENS     LL_APB4_GRP1_EnableClock\n
3231   *         APB4ENSR1    LPTIM3ENS     LL_APB4_GRP1_EnableClock\n
3232   *         APB4ENSR1    LPTIM4ENS     LL_APB4_GRP1_EnableClock\n
3233   *         APB4ENSR1    LPTIM5ENS     LL_APB4_GRP1_EnableClock\n
3234   *         APB4ENSR1    VREFBUFENS    LL_APB4_GRP1_EnableClock\n
3235   *         APB4ENSR1    RTCENS        LL_APB4_GRP1_EnableClock\n
3236   *         APB4ENSR1    RTCAPBENS     LL_APB4_GRP1_EnableClock
3237   * @param  Periphs This parameter can be a combination of the following values:
3238   *         @arg @ref LL_APB4_GRP1_PERIPH_HDP
3239   *         @arg @ref LL_APB4_GRP1_PERIPH_I2C4
3240   *         @arg @ref LL_APB4_GRP1_PERIPH_LPTIM2
3241   *         @arg @ref LL_APB4_GRP1_PERIPH_LPTIM3
3242   *         @arg @ref LL_APB4_GRP1_PERIPH_LPTIM4
3243   *         @arg @ref LL_APB4_GRP1_PERIPH_LPTIM5
3244   *         @arg @ref LL_APB4_GRP1_PERIPH_LPUART1
3245   *         @arg @ref LL_APB4_GRP1_PERIPH_RTC
3246   *         @arg @ref LL_APB4_GRP1_PERIPH_RTCAPB
3247   *         @arg @ref LL_APB4_GRP1_PERIPH_SPI6
3248   *         @arg @ref LL_APB4_GRP1_PERIPH_VREFBUF
3249   * @retval None
3250   */
LL_APB4_GRP1_EnableClock(uint32_t Periphs)3251 __STATIC_INLINE void LL_APB4_GRP1_EnableClock(uint32_t Periphs)
3252 {
3253   __IO uint32_t tmpreg;
3254   WRITE_REG(RCC->APB4ENSR1, Periphs);
3255   /* Delay after an RCC peripheral clock enabling */
3256   tmpreg = READ_REG(RCC->APB4ENR1);
3257   (void)tmpreg;
3258 }
3259 
3260 /**
3261   * @brief  Check if APB4 peripheral clock is enabled or not
3262   * @rmtoll APB4ENR1     HDPEN         LL_APB4_GRP1_IsEnabledClock\n
3263   *         APB4ENR1     LPUART1EN     LL_APB4_GRP1_IsEnabledClock\n
3264   *         APB4ENR1     SPI6EN        LL_APB4_GRP1_IsEnabledClock\n
3265   *         APB4ENR1     I2C4EN        LL_APB4_GRP1_IsEnabledClock\n
3266   *         APB4ENR1     LPTIM2EN      LL_APB4_GRP1_IsEnabledClock\n
3267   *         APB4ENR1     LPTIM3EN      LL_APB4_GRP1_IsEnabledClock\n
3268   *         APB4ENR1     LPTIM4EN      LL_APB4_GRP1_IsEnabledClock\n
3269   *         APB4ENR1     LPTIM5EN      LL_APB4_GRP1_IsEnabledClock\n
3270   *         APB4ENR1     VREFBUFEN     LL_APB4_GRP1_IsEnabledClock\n
3271   *         APB4ENR1     RTCEN         LL_APB4_GRP1_IsEnabledClock\n
3272   *         APB4ENR1     RTCAPBEN      LL_APB4_GRP1_IsEnabledClock
3273   * @param  Periphs This parameter can be a combination of the following values:
3274   *         @arg @ref LL_APB4_GRP1_PERIPH_HDP
3275   *         @arg @ref LL_APB4_GRP1_PERIPH_I2C4
3276   *         @arg @ref LL_APB4_GRP1_PERIPH_LPTIM2
3277   *         @arg @ref LL_APB4_GRP1_PERIPH_LPTIM3
3278   *         @arg @ref LL_APB4_GRP1_PERIPH_LPTIM4
3279   *         @arg @ref LL_APB4_GRP1_PERIPH_LPTIM5
3280   *         @arg @ref LL_APB4_GRP1_PERIPH_LPUART1
3281   *         @arg @ref LL_APB4_GRP1_PERIPH_RTC
3282   *         @arg @ref LL_APB4_GRP1_PERIPH_RTCAPB
3283   *         @arg @ref LL_APB4_GRP1_PERIPH_SPI6
3284   *         @arg @ref LL_APB4_GRP1_PERIPH_VREFBUF
3285   * @retval uint32_t
3286   */
LL_APB4_GRP1_IsEnabledClock(uint32_t Periphs)3287 __STATIC_INLINE uint32_t LL_APB4_GRP1_IsEnabledClock(uint32_t Periphs)
3288 {
3289   return ((READ_BIT(RCC->APB4ENR1, Periphs) == Periphs) ? 1UL : 0UL);
3290 }
3291 
3292 /**
3293   * @brief  Disable APB4 peripherals clock.
3294   * @rmtoll APB4ENCR1    HDPENC        LL_APB4_GRP1_DisableClock\n
3295   *         APB4ENCR1    LPUART1ENC    LL_APB4_GRP1_DisableClock\n
3296   *         APB4ENCR1    SPI6ENC       LL_APB4_GRP1_DisableClock\n
3297   *         APB4ENCR1    I2C4ENC       LL_APB4_GRP1_DisableClock\n
3298   *         APB4ENCR1    LPTIM2ENC     LL_APB4_GRP1_DisableClock\n
3299   *         APB4ENCR1    LPTIM3ENC     LL_APB4_GRP1_DisableClock\n
3300   *         APB4ENCR1    LPTIM4ENC     LL_APB4_GRP1_DisableClock\n
3301   *         APB4ENCR1    LPTIM5ENC     LL_APB4_GRP1_DisableClock\n
3302   *         APB4ENCR1    VREFBUFENC    LL_APB4_GRP1_DisableClock\n
3303   *         APB4ENCR1    RTCENC        LL_APB4_GRP1_DisableClock\n
3304   *         APB4ENCR1    RTCAPBENC     LL_APB4_GRP1_DisableClock
3305   * @param  Periphs This parameter can be a combination of the following values:
3306   *         @arg @ref LL_APB4_GRP1_PERIPH_HDP
3307   *         @arg @ref LL_APB4_GRP1_PERIPH_I2C4
3308   *         @arg @ref LL_APB4_GRP1_PERIPH_LPTIM2
3309   *         @arg @ref LL_APB4_GRP1_PERIPH_LPTIM3
3310   *         @arg @ref LL_APB4_GRP1_PERIPH_LPTIM4
3311   *         @arg @ref LL_APB4_GRP1_PERIPH_LPTIM5
3312   *         @arg @ref LL_APB4_GRP1_PERIPH_LPUART1
3313   *         @arg @ref LL_APB4_GRP1_PERIPH_RTC
3314   *         @arg @ref LL_APB4_GRP1_PERIPH_RTCAPB
3315   *         @arg @ref LL_APB4_GRP1_PERIPH_SPI6
3316   *         @arg @ref LL_APB4_GRP1_PERIPH_VREFBUF
3317   * @retval None
3318   */
LL_APB4_GRP1_DisableClock(uint32_t Periphs)3319 __STATIC_INLINE void LL_APB4_GRP1_DisableClock(uint32_t Periphs)
3320 {
3321   WRITE_REG(RCC->APB4ENCR1, Periphs);
3322 }
3323 
3324 /**
3325   * @brief  Force APB4 peripherals reset.
3326   * @rmtoll APB4RSTSR1   HDPRSTS       LL_APB4_GRP1_ForceReset\n
3327   *         APB4RSTSR1   LPUART1RSTS   LL_APB4_GRP1_ForceReset\n
3328   *         APB4RSTSR1   SPI6RSTS      LL_APB4_GRP1_ForceReset\n
3329   *         APB4RSTSR1   I2C4RSTS      LL_APB4_GRP1_ForceReset\n
3330   *         APB4RSTSR1   LPTIM2RSTS    LL_APB4_GRP1_ForceReset\n
3331   *         APB4RSTSR1   LPTIM3RSTS    LL_APB4_GRP1_ForceReset\n
3332   *         APB4RSTSR1   LPTIM4RSTS    LL_APB4_GRP1_ForceReset\n
3333   *         APB4RSTSR1   LPTIM5RSTS    LL_APB4_GRP1_ForceReset\n
3334   *         APB4RSTSR1   VREFBUFRSTS   LL_APB4_GRP1_ForceReset\n
3335   *         APB4RSTSR1   RTCAPBRSTS    LL_APB4_GRP1_ForceReset
3336   * @param  Periphs This parameter can be a combination of the following values:
3337   *         @arg @ref LL_APB4_GRP1_PERIPH_HDP
3338   *         @arg @ref LL_APB4_GRP1_PERIPH_I2C4
3339   *         @arg @ref LL_APB4_GRP1_PERIPH_LPTIM2
3340   *         @arg @ref LL_APB4_GRP1_PERIPH_LPTIM3
3341   *         @arg @ref LL_APB4_GRP1_PERIPH_LPTIM4
3342   *         @arg @ref LL_APB4_GRP1_PERIPH_LPTIM5
3343   *         @arg @ref LL_APB4_GRP1_PERIPH_LPUART1
3344   *         @arg @ref LL_APB4_GRP1_PERIPH_RTCAPB
3345   *         @arg @ref LL_APB4_GRP1_PERIPH_SPI6
3346   *         @arg @ref LL_APB4_GRP1_PERIPH_VREFBUF
3347   * @retval None
3348   */
LL_APB4_GRP1_ForceReset(uint32_t Periphs)3349 __STATIC_INLINE void LL_APB4_GRP1_ForceReset(uint32_t Periphs)
3350 {
3351   WRITE_REG(RCC->APB4RSTSR1, Periphs);
3352 }
3353 
3354 /**
3355   * @brief  Release APB4 peripherals reset.
3356   * @rmtoll APB4RSTCR1   HDPRSTC       LL_APB4_GRP1_ReleaseReset\n
3357   *         APB4RSTCR1   LPUART1RSTC   LL_APB4_GRP1_ReleaseReset\n
3358   *         APB4RSTCR1   SPI6RSTC      LL_APB4_GRP1_ReleaseReset\n
3359   *         APB4RSTCR1   I2C4RSTC      LL_APB4_GRP1_ReleaseReset\n
3360   *         APB4RSTCR1   LPTIM2RSTC    LL_APB4_GRP1_ReleaseReset\n
3361   *         APB4RSTCR1   LPTIM3RSTC    LL_APB4_GRP1_ReleaseReset\n
3362   *         APB4RSTCR1   LPTIM4RSTC    LL_APB4_GRP1_ReleaseReset\n
3363   *         APB4RSTCR1   LPTIM5RSTC    LL_APB4_GRP1_ReleaseReset\n
3364   *         APB4RSTCR1   VREFBUFRSTC   LL_APB4_GRP1_ReleaseReset\n
3365   *         APB4RSTCR1   RTCAPBRSTC    LL_APB4_GRP1_ReleaseReset
3366   * @param  Periphs This parameter can be a combination of the following values:
3367   *         @arg @ref LL_APB4_GRP1_PERIPH_HDP
3368   *         @arg @ref LL_APB4_GRP1_PERIPH_I2C4
3369   *         @arg @ref LL_APB4_GRP1_PERIPH_LPTIM2
3370   *         @arg @ref LL_APB4_GRP1_PERIPH_LPTIM3
3371   *         @arg @ref LL_APB4_GRP1_PERIPH_LPTIM4
3372   *         @arg @ref LL_APB4_GRP1_PERIPH_LPTIM5
3373   *         @arg @ref LL_APB4_GRP1_PERIPH_LPUART1
3374   *         @arg @ref LL_APB4_GRP1_PERIPH_RTCAPB
3375   *         @arg @ref LL_APB4_GRP1_PERIPH_SPI6
3376   *         @arg @ref LL_APB4_GRP1_PERIPH_VREFBUF
3377   * @retval None
3378   */
LL_APB4_GRP1_ReleaseReset(uint32_t Periphs)3379 __STATIC_INLINE void LL_APB4_GRP1_ReleaseReset(uint32_t Periphs)
3380 {
3381   WRITE_REG(RCC->APB4RSTCR1, Periphs);
3382 }
3383 
3384 /**
3385   * @brief  Enable APB4 peripherals clock during Low Power mode.
3386   * @rmtoll APB4LPENSR1  HDPLPENS      LL_APB4_GRP1_EnableClockLowPower\n
3387   *         APB4LPENSR1  LPUART1LPENS  LL_APB4_GRP1_EnableClockLowPower\n
3388   *         APB4LPENSR1  SPI6LPENS     LL_APB4_GRP1_EnableClockLowPower\n
3389   *         APB4LPENSR1  I2C4LPENS     LL_APB4_GRP1_EnableClockLowPower\n
3390   *         APB4LPENSR1  LPTIM2LPENS   LL_APB4_GRP1_EnableClockLowPower\n
3391   *         APB4LPENSR1  LPTIM3LPENS   LL_APB4_GRP1_EnableClockLowPower\n
3392   *         APB4LPENSR1  LPTIM4LPENS   LL_APB4_GRP1_EnableClockLowPower\n
3393   *         APB4LPENSR1  LPTIM5LPENS   LL_APB4_GRP1_EnableClockLowPower\n
3394   *         APB4LPENSR1  VREFBUFLPENS  LL_APB4_GRP1_EnableClockLowPower\n
3395   *         APB4LPENSR1  RTCLPENS      LL_APB4_GRP1_EnableClockLowPower\n
3396   *         APB4LPENSR1  RTCAPBLPENS   LL_APB4_GRP1_EnableClockLowPower
3397   * @param  Periphs This parameter can be a combination of the following values:
3398   *         @arg @ref LL_APB4_GRP1_PERIPH_HDP
3399   *         @arg @ref LL_APB4_GRP1_PERIPH_I2C4
3400   *         @arg @ref LL_APB4_GRP1_PERIPH_LPTIM2
3401   *         @arg @ref LL_APB4_GRP1_PERIPH_LPTIM3
3402   *         @arg @ref LL_APB4_GRP1_PERIPH_LPTIM4
3403   *         @arg @ref LL_APB4_GRP1_PERIPH_LPTIM5
3404   *         @arg @ref LL_APB4_GRP1_PERIPH_LPUART1
3405   *         @arg @ref LL_APB4_GRP1_PERIPH_RTC
3406   *         @arg @ref LL_APB4_GRP1_PERIPH_RTCAPB
3407   *         @arg @ref LL_APB4_GRP1_PERIPH_SPI6
3408   *         @arg @ref LL_APB4_GRP1_PERIPH_VREFBUF
3409   * @retval None
3410   */
LL_APB4_GRP1_EnableClockLowPower(uint32_t Periphs)3411 __STATIC_INLINE void LL_APB4_GRP1_EnableClockLowPower(uint32_t Periphs)
3412 {
3413   __IO uint32_t tmpreg;
3414   WRITE_REG(RCC->APB4LPENSR1, Periphs);
3415   /* Delay after an RCC peripheral clock enabling */
3416   tmpreg = READ_REG(RCC->APB4LPENR1);
3417   (void)tmpreg;
3418 }
3419 
3420 /**
3421   * @brief  Check if APB4 peripheral clock during Low Power mode is enabled or not .
3422   * @rmtoll APB4LPENR1   HDPLPEN       LL_APB4_GRP1_IsEnabledClockLowPower\n
3423   *         APB4LPENR1   LPUART1LPEN   LL_APB4_GRP1_IsEnabledClockLowPower\n
3424   *         APB4LPENR1   SPI6LPEN      LL_APB4_GRP1_IsEnabledClockLowPower\n
3425   *         APB4LPENR1   I2C4LPEN      LL_APB4_GRP1_IsEnabledClockLowPower\n
3426   *         APB4LPENR1   LPTIM2LPEN    LL_APB4_GRP1_IsEnabledClockLowPower\n
3427   *         APB4LPENR1   LPTIM3LPEN    LL_APB4_GRP1_IsEnabledClockLowPower\n
3428   *         APB4LPENR1   LPTIM4LPEN    LL_APB4_GRP1_IsEnabledClockLowPower\n
3429   *         APB4LPENR1   LPTIM5LPEN    LL_APB4_GRP1_IsEnabledClockLowPower\n
3430   *         APB4LPENR1   VREFBUFLPEN   LL_APB4_GRP1_IsEnabledClockLowPower\n
3431   *         APB4LPENR1   RTCLPEN       LL_APB4_GRP1_IsEnabledClockLowPower\n
3432   *         APB4LPENR1   RTCAPBLPEN    LL_APB4_GRP1_IsEnabledClockLowPower
3433   * @param  Periphs This parameter can be a combination of the following values:
3434   *         @arg @ref LL_APB4_GRP1_PERIPH_HDP
3435   *         @arg @ref LL_APB4_GRP1_PERIPH_I2C4
3436   *         @arg @ref LL_APB4_GRP1_PERIPH_LPTIM2
3437   *         @arg @ref LL_APB4_GRP1_PERIPH_LPTIM3
3438   *         @arg @ref LL_APB4_GRP1_PERIPH_LPTIM4
3439   *         @arg @ref LL_APB4_GRP1_PERIPH_LPTIM5
3440   *         @arg @ref LL_APB4_GRP1_PERIPH_LPUART1
3441   *         @arg @ref LL_APB4_GRP1_PERIPH_RTC
3442   *         @arg @ref LL_APB4_GRP1_PERIPH_RTCAPB
3443   *         @arg @ref LL_APB4_GRP1_PERIPH_SPI6
3444   *         @arg @ref LL_APB4_GRP1_PERIPH_VREFBUF
3445   * @retval uint32_t
3446   */
LL_APB4_GRP1_IsEnabledClockLowPower(uint32_t Periphs)3447 __STATIC_INLINE uint32_t LL_APB4_GRP1_IsEnabledClockLowPower(uint32_t Periphs)
3448 {
3449   return ((READ_BIT(RCC->APB4LPENR1, Periphs) == Periphs) ? 1UL : 0UL);
3450 }
3451 
3452 /**
3453   * @brief  Disable APB4 peripherals clock during Low Power mode.
3454   * @rmtoll APB4LPENCR1  HDPLPENC      LL_APB4_GRP1_DisableClockLowPower\n
3455   *         APB4LPENCR1  LPUART1LPENC  LL_APB4_GRP1_DisableClockLowPower\n
3456   *         APB4LPENCR1  SPI6LPENC     LL_APB4_GRP1_DisableClockLowPower\n
3457   *         APB4LPENCR1  I2C4LPENC     LL_APB4_GRP1_DisableClockLowPower\n
3458   *         APB4LPENCR1  LPTIM2LPENC   LL_APB4_GRP1_DisableClockLowPower\n
3459   *         APB4LPENCR1  LPTIM3LPENC   LL_APB4_GRP1_DisableClockLowPower\n
3460   *         APB4LPENCR1  LPTIM4LPENC   LL_APB4_GRP1_DisableClockLowPower\n
3461   *         APB4LPENCR1  LPTIM5LPENC   LL_APB4_GRP1_DisableClockLowPower\n
3462   *         APB4LPENCR1  VREFBUFLPENC  LL_APB4_GRP1_DisableClockLowPower\n
3463   *         APB4LPENCR1  RTCLPENC      LL_APB4_GRP1_DisableClockLowPower\n
3464   *         APB4LPENCR1  RTCAPBLPENC   LL_APB4_GRP1_DisableClockLowPower
3465   * @param  Periphs This parameter can be a combination of the following values:
3466   *         @arg @ref LL_APB4_GRP1_PERIPH_HDP
3467   *         @arg @ref LL_APB4_GRP1_PERIPH_I2C4
3468   *         @arg @ref LL_APB4_GRP1_PERIPH_LPTIM2
3469   *         @arg @ref LL_APB4_GRP1_PERIPH_LPTIM3
3470   *         @arg @ref LL_APB4_GRP1_PERIPH_LPTIM4
3471   *         @arg @ref LL_APB4_GRP1_PERIPH_LPTIM5
3472   *         @arg @ref LL_APB4_GRP1_PERIPH_LPUART1
3473   *         @arg @ref LL_APB4_GRP1_PERIPH_RTC
3474   *         @arg @ref LL_APB4_GRP1_PERIPH_RTCAPB
3475   *         @arg @ref LL_APB4_GRP1_PERIPH_SPI6
3476   *         @arg @ref LL_APB4_GRP1_PERIPH_VREFBUF
3477   * @retval None
3478   */
LL_APB4_GRP1_DisableClockLowPower(uint32_t Periphs)3479 __STATIC_INLINE void LL_APB4_GRP1_DisableClockLowPower(uint32_t Periphs)
3480 {
3481   WRITE_REG(RCC->APB4LPENCR1, Periphs);
3482 }
3483 
3484 /**
3485   * @brief  Enable APB4 peripherals clock.
3486   * @rmtoll APB4ENSR2    SYSCFGENS     LL_APB4_GRP2_EnableClock\n
3487   *         APB4ENSR2    BSECENS       LL_APB4_GRP2_EnableClock\n
3488   *         APB4ENSR2    DTSENS        LL_APB4_GRP2_EnableClock
3489   * @param  Periphs This parameter can be a combination of the following values:
3490   *         @arg @ref LL_APB4_GRP2_PERIPH_BSEC
3491   *         @arg @ref LL_APB4_GRP2_PERIPH_SYSCFG
3492   *         @arg @ref LL_APB4_GRP2_PERIPH_DTS
3493   * @retval None
3494   */
LL_APB4_GRP2_EnableClock(uint32_t Periphs)3495 __STATIC_INLINE void LL_APB4_GRP2_EnableClock(uint32_t Periphs)
3496 {
3497   __IO uint32_t tmpreg;
3498   WRITE_REG(RCC->APB4ENSR2, Periphs);
3499   /* Delay after an RCC peripheral clock enabling */
3500   tmpreg = READ_REG(RCC->APB4ENR2);
3501   (void)tmpreg;
3502 }
3503 
3504 /**
3505   * @brief  Check if APB4 peripheral clock is enabled or not
3506   * @rmtoll APB4ENR2     SYSCFGEN      LL_APB4_GRP2_IsEnabledClock\n
3507   *         APB4ENR2     BSECEN        LL_APB4_GRP2_IsEnabledClock\n
3508   *         APB4ENR2     DTSEN         LL_APB4_GRP2_IsEnabledClock
3509   * @param  Periphs This parameter can be a combination of the following values:
3510   *         @arg @ref LL_APB4_GRP2_PERIPH_BSEC
3511   *         @arg @ref LL_APB4_GRP2_PERIPH_SYSCFG
3512   *         @arg @ref LL_APB4_GRP2_PERIPH_DTS
3513   * @retval uint32_t
3514   */
LL_APB4_GRP2_IsEnabledClock(uint32_t Periphs)3515 __STATIC_INLINE uint32_t LL_APB4_GRP2_IsEnabledClock(uint32_t Periphs)
3516 {
3517   return ((READ_BIT(RCC->APB4ENR2, Periphs) == Periphs) ? 1UL : 0UL);
3518 }
3519 
3520 /**
3521   * @brief  Disable APB4 peripherals clock.
3522   * @rmtoll APB4ENCR2    SYSCFGENC     LL_APB4_GRP2_DisableClock\n
3523   *         APB4ENCR2    BSECENC       LL_APB4_GRP2_DisableClock\n
3524   *         APB4ENCR2    DTSENC        LL_APB4_GRP2_DisableClock
3525   * @param  Periphs This parameter can be a combination of the following values:
3526   *         @arg @ref LL_APB4_GRP2_PERIPH_BSEC
3527   *         @arg @ref LL_APB4_GRP2_PERIPH_SYSCFG
3528   *         @arg @ref LL_APB4_GRP2_PERIPH_DTS
3529   * @retval None
3530   */
LL_APB4_GRP2_DisableClock(uint32_t Periphs)3531 __STATIC_INLINE void LL_APB4_GRP2_DisableClock(uint32_t Periphs)
3532 {
3533   WRITE_REG(RCC->APB4ENCR2, Periphs);
3534 }
3535 
3536 /**
3537   * @brief  Force APB4 peripherals reset.
3538   * @rmtoll APB4RSTR2   SYSCFGRSTS    LL_APB4_GRP2_ForceReset\n
3539   *         APB4RSTR2   DTSRSTS       LL_APB4_GRP2_ForceReset
3540   * @param  Periphs This parameter can be a combination of the following values:
3541   *         @arg @ref LL_APB4_GRP2_PERIPH_SYSCFG
3542   *         @arg @ref LL_APB4_GRP2_PERIPH_DTS
3543   * @retval None
3544   */
LL_APB4_GRP2_ForceReset(uint32_t Periphs)3545 __STATIC_INLINE void LL_APB4_GRP2_ForceReset(uint32_t Periphs)
3546 {
3547   WRITE_REG(RCC->APB4RSTSR2, Periphs);
3548 }
3549 
3550 /**
3551   * @brief  Release APB4 peripherals reset.
3552   * @rmtoll APB4RSTCR2   SYSCFGRSTC    LL_APB4_GRP2_ReleaseReset\n
3553   *         APB4RSTCR2   DTSRSTC       LL_APB4_GRP2_ReleaseReset
3554   * @param  Periphs This parameter can be a combination of the following values:
3555   *         @arg @ref LL_APB4_GRP2_PERIPH_SYSCFG
3556   *         @arg @ref LL_APB4_GRP2_PERIPH_DTS
3557   * @retval None
3558   */
LL_APB4_GRP2_ReleaseReset(uint32_t Periphs)3559 __STATIC_INLINE void LL_APB4_GRP2_ReleaseReset(uint32_t Periphs)
3560 {
3561   WRITE_REG(RCC->APB4RSTCR2, Periphs);
3562 }
3563 
3564 /**
3565   * @brief  Enable APB4 peripherals clock during Low Power mode.
3566   * @rmtoll APB4LPENSR2  SYSCFGLPENS   LL_APB4_GRP2_EnableClockLowPower\n
3567   *         APB4LPENSR2  BSECLPENS     LL_APB4_GRP2_EnableClockLowPower\n
3568   *         APB4LPENSR2  DTSLPENS      LL_APB4_GRP2_EnableClockLowPower
3569   * @param  Periphs This parameter can be a combination of the following values:
3570   *         @arg @ref LL_APB4_GRP2_PERIPH_BSEC
3571   *         @arg @ref LL_APB4_GRP2_PERIPH_SYSCFG
3572   *         @arg @ref LL_APB4_GRP2_PERIPH_DTS
3573   * @retval None
3574   */
LL_APB4_GRP2_EnableClockLowPower(uint32_t Periphs)3575 __STATIC_INLINE void LL_APB4_GRP2_EnableClockLowPower(uint32_t Periphs)
3576 {
3577   __IO uint32_t tmpreg;
3578   WRITE_REG(RCC->APB4LPENSR2, Periphs);
3579   /* Delay after an RCC peripheral clock enabling */
3580   tmpreg = READ_REG(RCC->APB4LPENR2);
3581   (void)tmpreg;
3582 }
3583 
3584 /**
3585   * @brief  Check if APB4 peripheral clock during Low Power mode is enabled or not .
3586   * @rmtoll APB4LPENR2   SYSCFGLPEN    LL_APB4_GRP2_IsEnabledClockLowPower\n
3587   *         APB4LPENR2   BSECLPEN      LL_APB4_GRP2_IsEnabledClockLowPower\n
3588   *         APB4LPENR2   DTSLPEN       LL_APB4_GRP2_IsEnabledClockLowPower
3589   * @param  Periphs This parameter can be a combination of the following values:
3590   *         @arg @ref LL_APB4_GRP2_PERIPH_BSEC
3591   *         @arg @ref LL_APB4_GRP2_PERIPH_SYSCFG
3592   *         @arg @ref LL_APB4_GRP2_PERIPH_DTS
3593   * @retval uint32_t
3594   */
LL_APB4_GRP2_IsEnabledClockLowPower(uint32_t Periphs)3595 __STATIC_INLINE uint32_t LL_APB4_GRP2_IsEnabledClockLowPower(uint32_t Periphs)
3596 {
3597   return ((READ_BIT(RCC->APB4LPENR2, Periphs) == Periphs) ? 1UL : 0UL);
3598 }
3599 
3600 /**
3601   * @brief  Disable APB4 peripherals clock during Low Power mode.
3602   * @rmtoll APB4LPENCR2  SYSCFGLPENC   LL_APB4_GRP2_DisableClockLowPower\n
3603   *         APB4LPENCR2  BSECLPENC     LL_APB4_GRP2_DisableClockLowPower\n
3604   *         APB4LPENCR2  DTSLPENC      LL_APB4_GRP2_DisableClockLowPower
3605   * @param  Periphs This parameter can be a combination of the following values:
3606   *         @arg @ref LL_APB4_GRP2_PERIPH_BSEC
3607   *         @arg @ref LL_APB4_GRP2_PERIPH_SYSCFG
3608   *         @arg @ref LL_APB4_GRP2_PERIPH_DTS
3609   * @retval None
3610   */
LL_APB4_GRP2_DisableClockLowPower(uint32_t Periphs)3611 __STATIC_INLINE void LL_APB4_GRP2_DisableClockLowPower(uint32_t Periphs)
3612 {
3613   WRITE_REG(RCC->APB4LPENCR2, Periphs);
3614 }
3615 
3616 /**
3617   * @}
3618   */
3619 
3620 /** @defgroup BUS_LL_EF_APB5 APB5
3621   * @{
3622   */
3623 
3624 /**
3625   * @brief  Enable APB5 peripherals clock.
3626   * @rmtoll APB5ENSR     LTDCENS       LL_APB5_GRP1_EnableClock\n
3627   *         APB5ENSR     DCMIPPENS     LL_APB5_GRP1_EnableClock\n
3628   *         APB5ENSR     GFXTIMENS     LL_APB5_GRP1_EnableClock\n
3629   *         APB5ENSR     VENCENS       LL_APB5_GRP1_EnableClock\n (*)
3630   *         APB5ENSR     CSIENS        LL_APB5_GRP1_EnableClock
3631   * @param  Periphs This parameter can be a combination of the following values:
3632   *         @arg @ref LL_APB5_GRP1_PERIPH_CSI
3633   *         @arg @ref LL_APB5_GRP1_PERIPH_DCMIPP
3634   *         @arg @ref LL_APB5_GRP1_PERIPH_GFXTIM
3635   *         @arg @ref LL_APB5_GRP1_PERIPH_LTDC
3636   *         @arg @ref LL_APB5_GRP1_PERIPH_VENC
3637   * @retval None
3638   */
LL_APB5_GRP1_EnableClock(uint32_t Periphs)3639 __STATIC_INLINE void LL_APB5_GRP1_EnableClock(uint32_t Periphs)
3640 {
3641   __IO uint32_t tmpreg;
3642   WRITE_REG(RCC->APB5ENSR, Periphs);
3643   /* Delay after an RCC peripheral clock enabling */
3644   tmpreg = READ_REG(RCC->APB5ENR);
3645   (void)tmpreg;
3646 }
3647 
3648 /**
3649   * @brief  Check if APB5 peripheral clock is enabled or not
3650   * @rmtoll APB5ENR      LTDCEN        LL_APB5_GRP1_IsEnabledClock\n
3651   *         APB5ENR      DCMIPPEN      LL_APB5_GRP1_IsEnabledClock\n
3652   *         APB5ENR      GFXTIMEN      LL_APB5_GRP1_IsEnabledClock\n
3653   *         APB5ENR      VENCEN        LL_APB5_GRP1_IsEnabledClock\n (*)
3654   *         APB5ENR      CSIEN         LL_APB5_GRP1_IsEnabledClock
3655   * @param  Periphs This parameter can be a combination of the following values:
3656   *         @arg @ref LL_APB5_GRP1_PERIPH_CSI
3657   *         @arg @ref LL_APB5_GRP1_PERIPH_DCMIPP
3658   *         @arg @ref LL_APB5_GRP1_PERIPH_GFXTIM
3659   *         @arg @ref LL_APB5_GRP1_PERIPH_LTDC
3660   *         @arg @ref LL_APB5_GRP1_PERIPH_VENC
3661   * @retval uint32_t
3662   */
LL_APB5_GRP1_IsEnabledClock(uint32_t Periphs)3663 __STATIC_INLINE uint32_t LL_APB5_GRP1_IsEnabledClock(uint32_t Periphs)
3664 {
3665   return ((READ_BIT(RCC->APB5ENR, Periphs) == Periphs) ? 1UL : 0UL);
3666 }
3667 
3668 /**
3669   * @brief  Disable APB5 peripherals clock.
3670   * @rmtoll APB5ENCR     LTDCENC       LL_APB5_GRP1_DisableClock\n
3671   *         APB5ENCR     DCMIPPENC     LL_APB5_GRP1_DisableClock\n
3672   *         APB5ENCR     GFXTIMENC     LL_APB5_GRP1_DisableClock\n
3673   *         APB5ENCR     VENCENC       LL_APB5_GRP1_DisableClock\n (*)
3674   *         APB5ENCR     CSIENC        LL_APB5_GRP1_DisableClock
3675   * @param  Periphs This parameter can be a combination of the following values:
3676   *         @arg @ref LL_APB5_GRP1_PERIPH_CSI
3677   *         @arg @ref LL_APB5_GRP1_PERIPH_DCMIPP
3678   *         @arg @ref LL_APB5_GRP1_PERIPH_GFXTIM
3679   *         @arg @ref LL_APB5_GRP1_PERIPH_LTDC
3680   *         @arg @ref LL_APB5_GRP1_PERIPH_VENC
3681   * @retval None
3682   */
LL_APB5_GRP1_DisableClock(uint32_t Periphs)3683 __STATIC_INLINE void LL_APB5_GRP1_DisableClock(uint32_t Periphs)
3684 {
3685   WRITE_REG(RCC->APB5ENCR, Periphs);
3686 }
3687 
3688 /**
3689   * @brief  Force APB5 peripherals reset.
3690   * @rmtoll APB5RSTSR     LTDCRSTS       LL_APB5_GRP1_ForceReset\n
3691   *         APB5RSTSR     DCMIPPRSTS     LL_APB5_GRP1_ForceReset\n
3692   *         APB5RSTSR     GFXTIMRSTS     LL_APB5_GRP1_ForceReset\n
3693   *         APB5RSTSR     VENCRSTS       LL_APB5_GRP1_ForceReset\n (*)
3694   *         APB5RSTSR     CSIRSTS        LL_APB5_GRP1_ForceReset
3695   * @param  Periphs This parameter can be a combination of the following values:
3696   *         @arg @ref LL_APB5_GRP1_PERIPH_CSI
3697   *         @arg @ref LL_APB5_GRP1_PERIPH_DCMIPP
3698   *         @arg @ref LL_APB5_GRP1_PERIPH_GFXTIM
3699   *         @arg @ref LL_APB5_GRP1_PERIPH_LTDC
3700   *         @arg @ref LL_APB5_GRP1_PERIPH_VENC
3701   * @retval None
3702   */
LL_APB5_GRP1_ForceReset(uint32_t Periphs)3703 __STATIC_INLINE void LL_APB5_GRP1_ForceReset(uint32_t Periphs)
3704 {
3705   WRITE_REG(RCC->APB5RSTSR, Periphs);
3706 }
3707 
3708 /**
3709   * @brief  Release APB5 peripherals reset.
3710   * @rmtoll APB5RSTCR     LTDCRSTC       LL_APB5_GRP1_ReleaseReset\n
3711   *         APB5RSTCR     DCMIPPRSTC     LL_APB5_GRP1_ReleaseReset\n
3712   *         APB5RSTCR     GFXTIMRSTC     LL_APB5_GRP1_ReleaseReset\n
3713   *         APB5RSTCR     VENCRSTC       LL_APB5_GRP1_ReleaseReset\n (*)
3714   *         APB5RSTCR     CSIRSTC        LL_APB5_GRP1_ReleaseReset
3715   * @param  Periphs This parameter can be a combination of the following values:
3716   *         @arg @ref LL_APB5_GRP1_PERIPH_CSI
3717   *         @arg @ref LL_APB5_GRP1_PERIPH_DCMIPP
3718   *         @arg @ref LL_APB5_GRP1_PERIPH_GFXTIM
3719   *         @arg @ref LL_APB5_GRP1_PERIPH_LTDC
3720   *         @arg @ref LL_APB5_GRP1_PERIPH_VENC
3721   * @retval None
3722   */
LL_APB5_GRP1_ReleaseReset(uint32_t Periphs)3723 __STATIC_INLINE void LL_APB5_GRP1_ReleaseReset(uint32_t Periphs)
3724 {
3725   WRITE_REG(RCC->APB5RSTCR, Periphs);
3726 }
3727 
3728 /**
3729   * @brief  Enable APB5 peripherals clock during Low Power mode.
3730   * @rmtoll APB5LPENSR    LTDCLPENS      LL_APB5_GRP1_EnableClockLowPower\n
3731   *         APB5LPENSR    DCMIPPLPENS    LL_APB5_GRP1_EnableClockLowPower\n
3732   *         APB5LPENSR    GFXTIMLPENS    LL_APB5_GRP1_EnableClockLowPower\n
3733   *         APB5LPENSR    VENCLPENS      LL_APB5_GRP1_EnableClockLowPower\n (*)
3734   *         APB5LPENSR    CSILPENS       LL_APB5_GRP1_EnableClockLowPower
3735   * @param  Periphs This parameter can be a combination of the following values:
3736   *         @arg @ref LL_APB5_GRP1_PERIPH_CSI
3737   *         @arg @ref LL_APB5_GRP1_PERIPH_DCMIPP
3738   *         @arg @ref LL_APB5_GRP1_PERIPH_GFXTIM
3739   *         @arg @ref LL_APB5_GRP1_PERIPH_LTDC
3740   *         @arg @ref LL_APB5_GRP1_PERIPH_VENC
3741   * @retval None
3742   */
LL_APB5_GRP1_EnableClockLowPower(uint32_t Periphs)3743 __STATIC_INLINE void LL_APB5_GRP1_EnableClockLowPower(uint32_t Periphs)
3744 {
3745   __IO uint32_t tmpreg;
3746   WRITE_REG(RCC->APB5LPENSR, Periphs);
3747   /* Delay after an RCC peripheral clock enabling */
3748   tmpreg = READ_REG(RCC->APB5LPENR);
3749   (void)tmpreg;
3750 }
3751 
3752 /**
3753   * @brief  Check if APB5 peripheral clock during Low Power mode is enabled or not .
3754   * @rmtoll APB5LPENR     LTDCLPEN       LL_APB5_GRP1_IsEnabledClockLowPower\n
3755   *         APB5LPENR     DCMIPPLPEN     LL_APB5_GRP1_IsEnabledClockLowPower\n
3756   *         APB5LPENR     GFXTIMLPEN     LL_APB5_GRP1_IsEnabledClockLowPower\n
3757   *         APB5LPENR     VENCLPEN       LL_APB5_GRP1_IsEnabledClockLowPower\n (*)
3758   *         APB5LPENR     CSILPEN        LL_APB5_GRP1_IsEnabledClockLowPower
3759   * @param  Periphs This parameter can be a combination of the following values:
3760   *         @arg @ref LL_APB5_GRP1_PERIPH_CSI
3761   *         @arg @ref LL_APB5_GRP1_PERIPH_DCMIPP
3762   *         @arg @ref LL_APB5_GRP1_PERIPH_GFXTIM
3763   *         @arg @ref LL_APB5_GRP1_PERIPH_LTDC
3764   *         @arg @ref LL_APB5_GRP1_PERIPH_VENC
3765   * @retval uint32_t
3766   */
LL_APB5_GRP1_IsEnabledClockLowPower(uint32_t Periphs)3767 __STATIC_INLINE uint32_t LL_APB5_GRP1_IsEnabledClockLowPower(uint32_t Periphs)
3768 {
3769   return ((READ_BIT(RCC->APB5LPENR, Periphs) == Periphs) ? 1UL : 0UL);
3770 }
3771 
3772 /**
3773   * @brief  Disable APB5 peripherals clock during Low Power mode.
3774   * @rmtoll APB5LPENCR    LTDCLPENC      LL_APB5_GRP1_DisableClockLowPower\n
3775   *         APB5LPENCR    DCMIPPLPENC    LL_APB5_GRP1_DisableClockLowPower\n
3776   *         APB5LPENCR    GFXTIMLPENC    LL_APB5_GRP1_DisableClockLowPower\n
3777   *         APB5LPENCR    VENCLPENC      LL_APB5_GRP1_DisableClockLowPower\n (*)
3778   *         APB5LPENCR    CSILPENC       LL_APB5_GRP1_DisableClockLowPower
3779   * @param  Periphs This parameter can be a combination of the following values:
3780   *         @arg @ref LL_APB5_GRP1_PERIPH_CSI
3781   *         @arg @ref LL_APB5_GRP1_PERIPH_DCMIPP
3782   *         @arg @ref LL_APB5_GRP1_PERIPH_GFXTIM
3783   *         @arg @ref LL_APB5_GRP1_PERIPH_LTDC
3784   *         @arg @ref LL_APB5_GRP1_PERIPH_VENC
3785   * @retval None
3786   */
LL_APB5_GRP1_DisableClockLowPower(uint32_t Periphs)3787 __STATIC_INLINE void LL_APB5_GRP1_DisableClockLowPower(uint32_t Periphs)
3788 {
3789   WRITE_REG(RCC->APB5LPENCR, Periphs);
3790 }
3791 
3792 /**
3793   * @}
3794   */
3795 
3796 /** @defgroup BUS_LL_EF_MISC MISC
3797   * @{
3798   */
3799 
3800 /**
3801   * @brief  Enable miscellaneous clock.
3802   * @rmtoll MISCENSR     DBGENS        LL_MISC_EnableClock\n
3803   *         MISCENSR     MCO1ENS       LL_MISC_EnableClock\n
3804   *         MISCENSR     MCO2ENS       LL_MISC_EnableClock\n
3805   *         MISCENSR     XSPIPHYCOMPENS LL_MISC_EnableClock\n
3806   *         MISCENSR     PERENS        LL_MISC_EnableClock
3807   * @param  Misc This parameter can be a combination of the following values:
3808   *         @arg @ref LL_DBG
3809   *         @arg @ref LL_MCO1
3810   *         @arg @ref LL_MCO2
3811   *         @arg @ref LL_XSPIPHYCOMP
3812   *         @arg @ref LL_PER
3813   * @retval None
3814   */
LL_MISC_EnableClock(uint32_t Misc)3815 __STATIC_INLINE void LL_MISC_EnableClock(uint32_t Misc)
3816 {
3817   __IO uint32_t tmpreg;
3818   WRITE_REG(RCC->MISCENSR, Misc);
3819   /* Delay after an RCC miscellaneous clock enabling */
3820   tmpreg = READ_REG(RCC->MISCENR);
3821   (void)tmpreg;
3822 }
3823 
3824 /**
3825   * @brief  Check if miscellaneous clock is enabled or not
3826   * @rmtoll MISCENR      DBGEN         LL_MISC_IsEnabledClock\n
3827   *         MISCENR      MCO1EN        LL_MISC_IsEnabledClock\n
3828   *         MISCENR      MCO2EN        LL_MISC_IsEnabledClock\n
3829   *         MISCENR      XSPIPHYCOMPEN LL_MISC_IsEnabledClock\n
3830   *         MISCENR      PEREN         LL_MISC_IsEnabledClock
3831   * @param  Misc This parameter can be a combination of the following values:
3832   *         @arg @ref LL_DBG
3833   *         @arg @ref LL_MCO1
3834   *         @arg @ref LL_MCO2
3835   *         @arg @ref LL_XSPIPHYCOMP
3836   *         @arg @ref LL_PER
3837   * @retval uint32_t
3838   */
LL_MISC_IsEnabledClock(uint32_t Misc)3839 __STATIC_INLINE uint32_t LL_MISC_IsEnabledClock(uint32_t Misc)
3840 {
3841   return ((READ_BIT(RCC->MISCENR, Misc) == Misc) ? 1UL : 0UL);
3842 }
3843 
3844 /**
3845   * @brief  Disable miscellaneous clock.
3846   * @rmtoll MISCENCR     DBGENC        LL_MISC_DisableClock\n
3847   *         MISCENCR     MCO1ENC       LL_MISC_DisableClock\n
3848   *         MISCENCR     MCO2ENC       LL_MISC_DisableClock\n
3849   *         MISCENCR     XSPIPHYCOMPENC LL_MISC_DisableClock\n
3850   *         MISCENCR     PERENC        LL_MISC_DisableClock
3851   * @param  Misc This parameter can be a combination of the following values:
3852   *         @arg @ref LL_DBG
3853   *         @arg @ref LL_MCO1
3854   *         @arg @ref LL_MCO2
3855   *         @arg @ref LL_XSPIPHYCOMP
3856   *         @arg @ref LL_PER
3857   * @retval None
3858   */
LL_MISC_DisableClock(uint32_t Misc)3859 __STATIC_INLINE void LL_MISC_DisableClock(uint32_t Misc)
3860 {
3861   WRITE_REG(RCC->MISCENCR, Misc);
3862 }
3863 
3864 /**
3865   * @brief  Force miscellaneous reset.
3866   * @rmtoll MISCRSTSR    DBGRSTS       LL_MISC_ForceReset\n
3867   *         MISCRSTSR    XSPIPHY1RSTS  LL_MISC_ForceReset\n
3868   *         MISCRSTSR    XSPIPHY2RSTS  LL_MISC_ForceReset\n
3869   *         MISCRSTSR    SDMMC1DLLRSTS LL_MISC_ForceReset\n
3870   *         MISCRSTSR    SDMMC2DLLRSTS LL_MISC_ForceReset
3871   * @param  Misc This parameter can be a combination of the following values:
3872   *         @arg @ref LL_DBG
3873   *         @arg @ref LL_XSPIPHY1
3874   *         @arg @ref LL_XSPIPHY2
3875   *         @arg @ref LL_SDMMC1DLL
3876   *         @arg @ref LL_SDMMC2DLL
3877   * @retval None
3878   */
LL_MISC_ForceReset(uint32_t Misc)3879 __STATIC_INLINE void LL_MISC_ForceReset(uint32_t Misc)
3880 {
3881   WRITE_REG(RCC->MISCRSTSR, Misc);
3882 }
3883 
3884 /**
3885   * @brief  Release miscellaneous reset.
3886   * @rmtoll MISCRSTCR    DBGRSTC       LL_MISC_ReleaseReset\n
3887   *         MISCRSTCR    XSPIPHY1RSTC  LL_MISC_ReleaseReset\n
3888   *         MISCRSTCR    XSPIPHY2RSTC  LL_MISC_ReleaseReset\n
3889   *         MISCRSTCR    SDMMC1DLLRSTC LL_MISC_ReleaseReset\n
3890   *         MISCRSTCR    SDMMC2DLLRSTC LL_MISC_ReleaseReset
3891   * @param  Misc This parameter can be a combination of the following values:
3892   *         @arg @ref LL_DBG
3893   *         @arg @ref LL_XSPIPHY1
3894   *         @arg @ref LL_XSPIPHY2
3895   *         @arg @ref LL_SDMMC1DLL
3896   *         @arg @ref LL_SDMMC2DLL
3897   * @retval None
3898   */
LL_MISC_ReleaseReset(uint32_t Misc)3899 __STATIC_INLINE void LL_MISC_ReleaseReset(uint32_t Misc)
3900 {
3901   WRITE_REG(RCC->MISCRSTCR, Misc);
3902 }
3903 
3904 /**
3905   * @brief  Enable bus clock during Low Power mode.
3906   * @rmtoll MISCLPENSR   DBGLPENS      LL_MISC_EnableClockLowPower\n
3907   *         MISCLPENSR   XSPIPHYCOMPLPENS LL_MISC_EnableClockLowPower\n
3908   *         MISCLPENSR   PERLPENS      LL_MISC_EnableClockLowPower
3909   * @param  Misc This parameter can be a combination of the following values:
3910   *         @arg @ref LL_DBG
3911   *         @arg @ref LL_XSPIPHYCOMP
3912   *         @arg @ref LL_PER
3913   * @retval None
3914   */
LL_MISC_EnableClockLowPower(uint32_t Misc)3915 __STATIC_INLINE void LL_MISC_EnableClockLowPower(uint32_t Misc)
3916 {
3917   __IO uint32_t tmpreg;
3918   WRITE_REG(RCC->MISCLPENSR, Misc);
3919   /* Delay after an RCC miscellaneous clock enabling */
3920   tmpreg = READ_REG(RCC->MISCLPENR);
3921   (void)tmpreg;
3922 }
3923 
3924 /**
3925   * @brief  Disable bus clock during Low Power mode.
3926   * @rmtoll MISCLPENCR   DBGLPENC      LL_MISC_DisableClockLowPower\n
3927   *         MISCLPENCR   XSPIPHYCOMPLPENC LL_MISC_DisableClockLowPower\n
3928   *         MISCLPENCR   PERLPENC      LL_MISC_DisableClockLowPower
3929   * @param  Misc This parameter can be a combination of the following values:
3930   *         @arg @ref LL_DBG
3931   *         @arg @ref LL_XSPIPHYCOMP
3932   *         @arg @ref LL_PER
3933   * @retval None
3934   */
LL_MISC_DisableClockLowPower(uint32_t Misc)3935 __STATIC_INLINE void LL_MISC_DisableClockLowPower(uint32_t Misc)
3936 {
3937   WRITE_REG(RCC->MISCLPENCR, Misc);
3938 }
3939 
3940 /**
3941   * @}
3942   */
3943 
3944 /**
3945   * @}
3946   */
3947 
3948 /**
3949   * @}
3950   */
3951 
3952 #endif /* defined(RCC) */
3953 
3954 /**
3955   * @}
3956   */
3957 
3958 #ifdef __cplusplus
3959 }
3960 #endif
3961 
3962 #endif /* STM32N6xx_LL_BUS_H */
3963