1 /**
2   ******************************************************************************
3   * @file    stm32h7rsxx_ll_pwr.h
4   * @author  MCD Application Team
5   * @brief   Header file of PWR LL module.
6   ******************************************************************************
7   * @attention
8   *
9   * Copyright (c) 2022 STMicroelectronics.
10   * All rights reserved.
11   *
12   * This software is licensed under terms that can be found in the LICENSE file
13   * in the root directory of this software component.
14   * If no LICENSE file comes with this software, it is provided AS-IS.
15   *
16   ******************************************************************************
17   */
18 
19 /* Define to prevent recursive inclusion -------------------------------------*/
20 #ifndef STM32H7RSxx_LL_PWR_H
21 #define STM32H7RSxx_LL_PWR_H
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
27 /* Includes ------------------------------------------------------------------*/
28 #include "stm32h7rsxx.h"
29 
30 /** @addtogroup STM32H7RSxx_LL_Driver
31   * @{
32   */
33 
34 #if defined (PWR)
35 
36 /** @defgroup PWR_LL PWR
37   * @{
38   */
39 
40 /* Private types -------------------------------------------------------------*/
41 /* Private variables ---------------------------------------------------------*/
42 /* Private constants ---------------------------------------------------------*/
43 /** @defgroup PWR_LL_Private_Constants PWR Private Constants
44   * @{
45   */
46 
47 /** @defgroup PWR_LL_WAKEUP_PIN_OFFSET Wake-Up Pins register offsets Defines
48   * @brief    Flags defines which can be used with LL_PWR_WriteReg function
49   * @{
50   */
51 /* Wake-Up Pins PWR register offsets */
52 #define LL_PWR_WAKEUP_PINS_PULL_SHIFT_OFFSET    (2UL)
53 #define LL_PWR_WAKEUP_PINS_MAX_SHIFT_MASK       (0x1FU)
54 /**
55   * @}
56   */
57 /**
58   * @}
59   */
60 /* Private macros ------------------------------------------------------------*/
61 /* Exported types ------------------------------------------------------------*/
62 /* Exported constants --------------------------------------------------------*/
63 /** @defgroup PWR_LL_Exported_Constants PWR Exported Constants
64   * @{
65   */
66 
67 /** @defgroup PWR_LL_EC_CLEAR_FLAG Clear Flags Defines
68   * @brief    Flags defines which can be used with LL_PWR_WriteReg function
69   * @{
70   */
71 #define LL_PWR_SR_CSSF                 PWR_CSR3_CSSF                           /*!< Clear Stop and Standby flags */
72 #define LL_PWR_WKUPCR_WKUPC1           PWR_WKUPCR_WKUPC1                       /*!< Clear Wakeup flag 1          */
73 #define LL_PWR_WKUPCR_WKUPC2           PWR_WKUPCR_WKUPC2                       /*!< Clear Wakeup flag 2          */
74 #define LL_PWR_WKUPCR_WKUPC3           PWR_WKUPCR_WKUPC3                       /*!< Clear Wakeup flag 3          */
75 #define LL_PWR_WKUPCR_WKUPC4           PWR_WKUPCR_WKUPC4                       /*!< Clear Wakeup flag 4          */
76 #define LL_PWR_WKUPCR_WKUPC            PWR_WKUPCR_WKUPC                        /*!< Clear all Wakeup flags       */
77 /**
78   * @}
79   */
80 
81 /** @defgroup PWR_LL_EC_GET_FLAG Get Flags Defines
82   * @brief    Flags defines which can be used with LL_PWR_ReadReg function
83   * @{
84   */
85 #define LL_PWR_FLAG_VOSRDY             PWR_CSR4_VOSRDY                         /*!< Voltage scaling ready flag */
86 #define LL_PWR_FLAG_STOPF              PWR_CSR3_STOPF                          /*!< Stop flag                  */
87 #define LL_PWR_FLAG_SBF                PWR_CSR3_SBF                            /*!< Standby flag               */
88 #define LL_PWR_WAKEUP_FLAG1            PWR_WKUPFR_WKUPF1                       /*!< Wakeup flag 1              */
89 #define LL_PWR_WAKEUP_FLAG2            PWR_WKUPFR_WKUPF2                       /*!< Wakeup flag 2              */
90 #define LL_PWR_WAKEUP_FLAG3            PWR_WKUPFR_WKUPF3                       /*!< Wakeup flag 3              */
91 #define LL_PWR_WAKEUP_FLAG4            PWR_WKUPFR_WKUPF4                       /*!< Wakeup flag 4              */
92 /**
93   * @}
94   */
95 
96 /** @defgroup PWR_LL_EC_MODE_PWR Power Down Mode In Deep Sleep Mode
97   * @{
98   */
99 #define LL_PWR_POWERDOWN_MODE_DS_STOP     (0U)                                 /*!< Enter to Stop mode when the CPU enters deepsleep    */
100 #define LL_PWR_POWERDOWN_MODE_DS_STANDBY  PWR_CSR3_PDDS                        /*!< Enter to Standby mode when the CPU enters deepsleep */
101 /**
102   * @}
103   */
104 
105 /** @defgroup PWR_LL_EC_REGU_VOLTAGE Run mode Regulator Voltage Scaling
106   * @{
107   */
108 #define LL_PWR_REGU_VOLTAGE_SCALE0     PWR_CSR4_VOS                            /*!< Voltage scaling range 0 (highest frequency) */
109 #define LL_PWR_REGU_VOLTAGE_SCALE1     (0U)                                    /*!< Voltage scaling range 1 (lowest power)      */
110 /**
111   * @}
112   */
113 
114 /** @defgroup PWR_LL_EC_STOP_MODE_REGU_VOLTAGE Stop mode Regulator Voltage Scaling
115   * @{
116   */
117 #define LL_PWR_REGU_STOP_VOLTAGE_SCALE3     PWR_CR1_SVOS                       /*!< Voltage scaling range 3 (highest frequency) when system enters STOP mode */
118 #define LL_PWR_REGU_STOP_VOLTAGE_SCALE5     (0U)                               /*!< Voltage scaling range 5 (lowest power) when system enters STOP mode      */
119 /**
120   * @}
121   */
122 
123 /** @defgroup PWR_LL_EC_PVDLEVEL Power Digital Voltage Level Detector
124   * @{
125   */
126 #define LL_PWR_PVDLEVEL_1              (0U)                                    /*!< PVD level 1 */
127 #define LL_PWR_PVDLEVEL_2              PWR_CR1_PLS_0                           /*!< PVD level 2 */
128 #define LL_PWR_PVDLEVEL_3              PWR_CR1_PLS_1                           /*!< PVD level 3 */
129 #define LL_PWR_PVDLEVEL_4              (PWR_CR1_PLS_0 | PWR_CR1_PLS_1)         /*!< PVD level 4 */
130 #define LL_PWR_PVDLEVEL_5              PWR_CR1_PLS_2                           /*!< PVD level 5 */
131 #define LL_PWR_PVDLEVEL_6              (PWR_CR1_PLS_0 | PWR_CR1_PLS_2)         /*!< PVD level 6 */
132 #define LL_PWR_PVDLEVEL_7              (PWR_CR1_PLS_1 | PWR_CR1_PLS_2)         /*!< PVD level 7 */
133 #define LL_PWR_PVDLEVEL_EXT            (PWR_CR1_PLS_0 | PWR_CR1_PLS_1 | PWR_CR1_PLS_2)
134 /*!< External voltage level on PVD_IN pin, compared to internal VREFINT level */
135 /**
136   * @}
137   */
138 
139 /** @defgroup PWR_LL_EC_AVDLEVEL Power Analog Voltage Level Detector
140   * @{
141   */
142 #define LL_PWR_AVDLEVEL_1              (0U)                                    /*!< Analog Voltage detector level 1 */
143 #define LL_PWR_AVDLEVEL_2              PWR_CR1_ALS_0                           /*!< Analog Voltage detector level 2 */
144 #define LL_PWR_AVDLEVEL_3              PWR_CR1_ALS_1                           /*!< Analog Voltage detector level 3 */
145 #define LL_PWR_AVDLEVEL_4              (PWR_CR1_ALS_0 | PWR_CR1_ALS_1)         /*!< Analog Voltage detector level 4 */
146 /**
147   * @}
148   */
149 
150 /** @defgroup PWR_LL_EC_XSPI_CAP1 XSPI 1 capacitor
151   * @{
152   */
153 #define LL_PWR_XSPI1_CAPACITOR_OFF     (0U)                                    /*!< XSPI Port 1 Capacitor OFF        */
154 #define LL_PWR_XSPI1_CAPACITOR_1_DIV_3 PWR_CSR2_XSPICAP1_0                     /*!< XSPI Port 1 Capacitor set to 1/3 */
155 #define LL_PWR_XSPI1_CAPACITOR_2_DIV_3 PWR_CSR2_XSPICAP1_1                     /*!< XSPI Port 1 Capacitor set to 2/3 */
156 #define LL_PWR_XSPI1_CAPACITOR_FULL    (PWR_CSR2_XSPICAP1_0 | PWR_CSR2_XSPICAP1_1)
157 /*!< XSPI Port 1 Capacitor set to full capacitance */
158 /**
159   * @}
160   */
161 
162 /** @defgroup PWR_LL_EC_XSPI_CAP2 XSPI 2 Capacitor
163   * @{
164   */
165 #define LL_PWR_XSPI2_CAPACITOR_OFF     (0U)                                    /*!< XSPI Port 2 Capacitor OFF        */
166 #define LL_PWR_XSPI2_CAPACITOR_1_DIV_3 PWR_CSR2_XSPICAP2_0                     /*!< XSPI Port 2 Capacitor set to 1/3 */
167 #define LL_PWR_XSPI2_CAPACITOR_2_DIV_3 PWR_CSR2_XSPICAP2_1                     /*!< XSPI Port 2 Capacitor set to 2/3 */
168 #define LL_PWR_XSPI2_CAPACITOR_FULL    (PWR_CSR2_XSPICAP2_0 | PWR_CSR2_XSPICAP2_1)
169 /*!< XSPI Port 2 Capacitor set to full capacitance */
170 /**
171   * @}
172   */
173 
174 /** @defgroup PWR_LL_EC_BATT_CHARG_RESISTOR Battery Charge Resistor
175   * @{
176   */
177 #define LL_PWR_BATT_CHARG_RESISTOR_5K   (0U)                                   /*!< Charge the Battery through a 5 kO resistor   */
178 #define LL_PWR_BATT_CHARG_RESISTOR_1_5K PWR_CSR2_VBRS                          /*!< Charge the Battery through a 1.5 kO resistor */
179 /**
180   * @}
181   */
182 
183 /** @defgroup PWR_LL_EC_WAKEUP_PIN  Wakeup Pins
184   * @{
185   */
186 #define LL_PWR_WAKEUP_PIN1             PWR_WKUPEPR_WKUPEN1                     /*!< Wake-Up pin 1 : PA0  */
187 #define LL_PWR_WAKEUP_PIN2             PWR_WKUPEPR_WKUPEN2                     /*!< Wake-Up pin 2 : PA2  */
188 #define LL_PWR_WAKEUP_PIN3             PWR_WKUPEPR_WKUPEN3                     /*!< Wake-Up pin 3 : PC13 */
189 #define LL_PWR_WAKEUP_PIN4             PWR_WKUPEPR_WKUPEN4                     /*!< Wake-Up pin 4 : PC1  */
190 /**
191   * @}
192   */
193 
194 /** @defgroup PWR_LL_EC_WAKEUP_PIN_PULL  Wakeup Pins pull configuration
195   * @{
196   */
197 #define LL_PWR_WAKEUP_PIN_NOPULL       (0UL)                                   /*!< Configure Wake-Up pin in no pull   */
198 #define LL_PWR_WAKEUP_PIN_PULLUP       (1UL)                                   /*!< Configure Wake-Up pin in pull Up   */
199 #define LL_PWR_WAKEUP_PIN_PULLDOWN     (2UL)                                   /*!< Configure Wake-Up pin in pull Down */
200 /**
201   * @}
202   */
203 
204 /** @defgroup PWR_LL_EC_SUPPLY_PWR Power supply source configuration
205   * @{
206   */
207 #define LL_PWR_LDO_SUPPLY                     PWR_CSR2_LDOEN                                                              /*!< Core domains are supplied from the LDO                                                                      */
208 #define LL_PWR_DIRECT_SMPS_SUPPLY             PWR_CSR2_SDEN                                                               /*!< Core domains are supplied from the SMPS                                                                     */
209 #define LL_PWR_SMPS_1V8_SUPPLIES_LDO          (PWR_CSR2_SDHILEVEL | PWR_CSR2_SDEN | PWR_CSR2_LDOEN)                       /*!< The SMPS 1.8V output supplies the LDO which supplies the Core domains                                       */
210 #define LL_PWR_SMPS_1V8_SUPPLIES_EXT_AND_LDO  (PWR_CSR2_SDHILEVEL | PWR_CSR2_SMPSEXTHP | PWR_CSR2_SDEN | PWR_CSR2_LDOEN)  /*!< The SMPS 1.8V output supplies an external circuits and the LDO. The Core domains are supplied from the LDO  */
211 #define LL_PWR_SMPS_1V8_SUPPLIES_EXT          (PWR_CSR2_SDHILEVEL | PWR_CSR2_SMPSEXTHP | PWR_CSR2_SDEN | PWR_CSR2_BYPASS) /*!< The SMPS 1.8V output supplies an external source which supplies the Core domains                            */
212 #define LL_PWR_EXTERNAL_SOURCE_SUPPLY         PWR_CSR2_BYPASS                                                             /*!< The SMPS and the LDO are Bypassed. The Core domains are supplied from an external source                    */
213 /**
214   * @}
215   */
216 
217 /** @defgroup PWR_LL_EC_GPIO_PIN_MASK PWR GPIO Pin Mask
218   * @{
219   */
220 #define LL_PWR_GPIO_PIN_0              (0x0001U)                               /*!< GPIO port I/O pin 0  */
221 #define LL_PWR_GPIO_PIN_1              (0x0002U)                               /*!< GPIO port I/O pin 1  */
222 #define LL_PWR_GPIO_PIN_2              (0x0004U)                               /*!< GPIO port I/O pin 2  */
223 #define LL_PWR_GPIO_PIN_3              (0x0008U)                               /*!< GPIO port I/O pin 3  */
224 #define LL_PWR_GPIO_PIN_4              (0x0010U)                               /*!< GPIO port I/O pin 4  */
225 #define LL_PWR_GPIO_PIN_5              (0x0020U)                               /*!< GPIO port I/O pin 5  */
226 #define LL_PWR_GPIO_PIN_6              (0x0040U)                               /*!< GPIO port I/O pin 6  */
227 #define LL_PWR_GPIO_PIN_7              (0x0080U)                               /*!< GPIO port I/O pin 7  */
228 #define LL_PWR_GPIO_PIN_8              (0x0100U)                               /*!< GPIO port I/O pin 8  */
229 #define LL_PWR_GPIO_PIN_9              (0x0200U)                               /*!< GPIO port I/O pin 9  */
230 #define LL_PWR_GPIO_PIN_10             (0x0400U)                               /*!< GPIO port I/O pin 10 */
231 #define LL_PWR_GPIO_PIN_11             (0x0800U)                               /*!< GPIO port I/O pin 11 */
232 #define LL_PWR_GPIO_PIN_12             (0x1000U)                               /*!< GPIO port I/O pin 12 */
233 #define LL_PWR_GPIO_PIN_13             (0x2000U)                               /*!< GPIO port I/O pin 13 */
234 #define LL_PWR_GPIO_PIN_14             (0x4000U)                               /*!< GPIO port I/O pin 14 */
235 #define LL_PWR_GPIO_PIN_15             (0x8000U)                               /*!< GPIO port I/O pin 15 */
236 /**
237   * @}
238   */
239 
240 /**
241   * @}
242   */
243 /* Exported macro ------------------------------------------------------------*/
244 /** @defgroup PWR_LL_Exported_Macros PWR Exported Macros
245   * @{
246   */
247 
248 /** @defgroup PWR_LL_EM_WRITE_READ Common write and read registers Macros
249   * @{
250   */
251 
252 /**
253   * @brief  Write a value in PWR register
254   * @param  __REG__ Register to be written
255   * @param  __VALUE__ Value to be written in the register
256   * @retval None
257   */
258 #define LL_PWR_WriteReg(__REG__, __VALUE__) WRITE_REG(PWR->__REG__, (__VALUE__))
259 
260 /**
261   * @brief  Read a value in PWR register
262   * @param  __REG__ Register to be read
263   * @retval Register value
264   */
265 #define LL_PWR_ReadReg(__REG__) READ_REG(PWR->__REG__)
266 /**
267   * @}
268   */
269 
270 /**
271   * @}
272   */
273 /* Exported functions --------------------------------------------------------*/
274 /** @defgroup PWR_LL_Exported_Functions PWR Exported Functions
275   * @{
276   */
277 
278 /** @defgroup PWR_LL_EF_Configuration PWR Configuration
279   * @{
280   */
281 
282 /**
283   * @brief  Enable Power Voltage Detector
284   * @rmtoll CR1        PVDE            LL_PWR_EnablePVD
285   * @retval None
286   */
LL_PWR_EnablePVD(void)287 __STATIC_INLINE void LL_PWR_EnablePVD(void)
288 {
289   SET_BIT(PWR->CR1, PWR_CR1_PVDE);
290 }
291 
292 /**
293   * @brief  Disable Power Voltage Detector
294   * @rmtoll CR1        PVDE            LL_PWR_DisablePVD
295   * @retval None
296   */
LL_PWR_DisablePVD(void)297 __STATIC_INLINE void LL_PWR_DisablePVD(void)
298 {
299   CLEAR_BIT(PWR->CR1, PWR_CR1_PVDE);
300 }
301 
302 /**
303   * @brief  Check if Power Voltage Detector is enabled
304   * @rmtoll CR1        PVDE            LL_PWR_IsEnabledPVD
305   * @retval State of bit (1 or 0).
306   */
LL_PWR_IsEnabledPVD(void)307 __STATIC_INLINE uint32_t LL_PWR_IsEnabledPVD(void)
308 {
309   return ((READ_BIT(PWR->CR1, PWR_CR1_PVDE) == (PWR_CR1_PVDE)) ? 1UL : 0UL);
310 }
311 
312 /**
313   * @brief  Configure the voltage threshold detected by the Power Voltage Detector
314   * @rmtoll CR1        PLS             LL_PWR_SetPVDLevel
315   * @param  PVDLevel This parameter can be one of the following values:
316   *         @arg @ref LL_PWR_PVDLEVEL_1
317   *         @arg @ref LL_PWR_PVDLEVEL_2
318   *         @arg @ref LL_PWR_PVDLEVEL_3
319   *         @arg @ref LL_PWR_PVDLEVEL_4
320   *         @arg @ref LL_PWR_PVDLEVEL_5
321   *         @arg @ref LL_PWR_PVDLEVEL_6
322   *         @arg @ref LL_PWR_PVDLEVEL_7
323   *         @arg @ref LL_PWR_PVDLEVEL_EXT
324   * @retval None
325   */
LL_PWR_SetPVDLevel(uint32_t PVDLevel)326 __STATIC_INLINE void LL_PWR_SetPVDLevel(uint32_t PVDLevel)
327 {
328   MODIFY_REG(PWR->CR1, PWR_CR1_PLS, PVDLevel);
329 }
330 
331 /**
332   * @brief  Get the voltage threshold detection
333   * @rmtoll CR1        PLS             LL_PWR_GetPVDLevel
334   * @retval Returned value can be one of the following values:
335   *         @arg @ref LL_PWR_PVDLEVEL_1
336   *         @arg @ref LL_PWR_PVDLEVEL_2
337   *         @arg @ref LL_PWR_PVDLEVEL_3
338   *         @arg @ref LL_PWR_PVDLEVEL_4
339   *         @arg @ref LL_PWR_PVDLEVEL_5
340   *         @arg @ref LL_PWR_PVDLEVEL_6
341   *         @arg @ref LL_PWR_PVDLEVEL_7
342   *         @arg @ref LL_PWR_PVDLEVEL_EXT
343   */
LL_PWR_GetPVDLevel(void)344 __STATIC_INLINE uint32_t LL_PWR_GetPVDLevel(void)
345 {
346   return READ_BIT(PWR->CR1, PWR_CR1_PLS);
347 }
348 
349 /**
350   * @brief  Enable access to the backup domain
351   * @rmtoll CR1        DBP             LL_PWR_EnableBkUpAccess
352   * @retval None
353   */
LL_PWR_EnableBkUpAccess(void)354 __STATIC_INLINE void LL_PWR_EnableBkUpAccess(void)
355 {
356   SET_BIT(PWR->CR1, PWR_CR1_DBP);
357 }
358 
359 /**
360   * @brief  Disable access to the backup domain
361   * @rmtoll CR1        DBP             LL_PWR_DisableBkUpAccess
362   * @retval None
363   */
LL_PWR_DisableBkUpAccess(void)364 __STATIC_INLINE void LL_PWR_DisableBkUpAccess(void)
365 {
366   CLEAR_BIT(PWR->CR1, PWR_CR1_DBP);
367 }
368 
369 /**
370   * @brief  Check if the backup domain is enabled
371   * @rmtoll CR1        DBP             LL_PWR_IsEnabledBkUpAccess
372   * @retval State of bit (1 or 0).
373   */
LL_PWR_IsEnabledBkUpAccess(void)374 __STATIC_INLINE uint32_t LL_PWR_IsEnabledBkUpAccess(void)
375 {
376   return ((READ_BIT(PWR->CR1, PWR_CR1_DBP) == (PWR_CR1_DBP)) ? 1UL : 0UL);
377 }
378 
379 /**
380   * @brief  Enable the Flash low-power mode in Stop Mode
381   * @rmtoll CR1        FLPS            LL_PWR_EnableFlashLowPower
382   * @retval None
383   */
LL_PWR_EnableFlashLowPower(void)384 __STATIC_INLINE void LL_PWR_EnableFlashLowPower(void)
385 {
386   SET_BIT(PWR->CR1, PWR_CR1_FLPS);
387 }
388 
389 /**
390   * @brief  Disable the Flash low-power mode in Stop Mode
391   * @rmtoll CR1        FLPS            LL_PWR_DisableFlashLowPower
392   * @retval None
393   */
LL_PWR_DisableFlashLowPower(void)394 __STATIC_INLINE void LL_PWR_DisableFlashLowPower(void)
395 {
396   CLEAR_BIT(PWR->CR1, PWR_CR1_FLPS);
397 }
398 
399 /**
400   * @brief  Check if the Flash low-power mode in Stop Mode is enabled
401   * @rmtoll CR1        FLPS            LL_PWR_IsEnabledFlashLowPower
402   * @retval State of bit (1 or 0).
403   */
LL_PWR_IsEnabledFlashLowPower(void)404 __STATIC_INLINE uint32_t LL_PWR_IsEnabledFlashLowPower(void)
405 {
406   return ((READ_BIT(PWR->CR1, PWR_CR1_FLPS) == (PWR_CR1_FLPS)) ? 1UL : 0UL);
407 }
408 
409 /**
410   * @brief  Enable the Analog Voltage Booster
411   * @rmtoll CR1        BOOSTE          LL_PWR_EnableAnalogBooster
412   * @retval None
413   */
LL_PWR_EnableAnalogBooster(void)414 __STATIC_INLINE void LL_PWR_EnableAnalogBooster(void)
415 {
416   SET_BIT(PWR->CR1, PWR_CR1_BOOSTE);
417 }
418 
419 /**
420   * @brief  Disable the Analog Voltage Booster
421   * @rmtoll CR1        BOOSTE          LL_PWR_DisableAnalogBooster
422   * @retval None
423   */
LL_PWR_DisableAnalogBooster(void)424 __STATIC_INLINE void LL_PWR_DisableAnalogBooster(void)
425 {
426   CLEAR_BIT(PWR->CR1, PWR_CR1_BOOSTE);
427 }
428 
429 /**
430   * @brief  Check if the Analog Voltage Booster is enabled
431   * @rmtoll CR1        BOOSTE          LL_PWR_IsEnabledAnalogBooster
432   * @retval State of bit (1 or 0).
433   */
LL_PWR_IsEnabledAnalogBooster(void)434 __STATIC_INLINE uint32_t LL_PWR_IsEnabledAnalogBooster(void)
435 {
436   return ((READ_BIT(PWR->CR1, PWR_CR1_BOOSTE) == (PWR_CR1_BOOSTE)) ? 1UL : 0UL);
437 }
438 
439 /**
440   * @brief  Enable the Analog Voltage Ready
441   * @rmtoll CR1        AVDREADY        LL_PWR_EnableAnalogVoltageReady
442   * @retval None
443   */
LL_PWR_EnableAnalogVoltageReady(void)444 __STATIC_INLINE void LL_PWR_EnableAnalogVoltageReady(void)
445 {
446   SET_BIT(PWR->CR1, PWR_CR1_AVDREADY);
447 }
448 
449 /**
450   * @brief  Disable the Analog Voltage Ready
451   * @rmtoll CR1        AVDREADY        LL_PWR_DisableAnalogVoltageReady
452   * @retval None
453   */
LL_PWR_DisableAnalogVoltageReady(void)454 __STATIC_INLINE void LL_PWR_DisableAnalogVoltageReady(void)
455 {
456   CLEAR_BIT(PWR->CR1, PWR_CR1_AVDREADY);
457 }
458 
459 /**
460   * @brief  Check if the Analog Voltage Ready is enabled
461   * @rmtoll CR1        AVDREADY        LL_PWR_IsEnabledAnalogVoltageReady
462   * @retval State of bit (1 or 0).
463   */
LL_PWR_IsEnabledAnalogVoltageReady(void)464 __STATIC_INLINE uint32_t LL_PWR_IsEnabledAnalogVoltageReady(void)
465 {
466   return ((READ_BIT(PWR->CR1, PWR_CR1_AVDREADY) == (PWR_CR1_AVDREADY)) ? 1UL : 0UL);
467 }
468 
469 /**
470   * @brief  Enable Analog Power Voltage Monitor
471   * @rmtoll CR1        AVDEN           LL_PWR_EnableAVD
472   * @retval None
473   */
LL_PWR_EnableAVD(void)474 __STATIC_INLINE void LL_PWR_EnableAVD(void)
475 {
476   SET_BIT(PWR->CR1, PWR_CR1_AVDEN);
477 }
478 
479 /**
480   * @brief  Disable Analog Power Voltage Monitor
481   * @rmtoll CR1        AVDEN           LL_PWR_DisableAVD
482   * @retval None
483   */
LL_PWR_DisableAVD(void)484 __STATIC_INLINE void LL_PWR_DisableAVD(void)
485 {
486   CLEAR_BIT(PWR->CR1, PWR_CR1_AVDEN);
487 }
488 
489 /**
490   * @brief  Check if Analog Power Voltage Monitor is enabled
491   * @rmtoll CR1        AVDEN           LL_PWR_IsEnabledAVD
492   * @retval State of bit (1 or 0).
493   */
LL_PWR_IsEnabledAVD(void)494 __STATIC_INLINE uint32_t LL_PWR_IsEnabledAVD(void)
495 {
496   return ((READ_BIT(PWR->CR1, PWR_CR1_AVDEN) == (PWR_CR1_AVDEN)) ? 1UL : 0UL);
497 }
498 
499 /**
500   * @brief  Set the Analog Voltage detector level
501   * @rmtoll CR1        ALS             LL_PWR_SetAVDLevel
502   * @param  AVDLevel This parameter can be one of the following values:
503   *         @arg @ref LL_PWR_AVDLEVEL_1
504   *         @arg @ref LL_PWR_AVDLEVEL_2
505   *         @arg @ref LL_PWR_AVDLEVEL_3
506   *         @arg @ref LL_PWR_AVDLEVEL_4
507   * @retval None
508   */
LL_PWR_SetAVDLevel(uint32_t AVDLevel)509 __STATIC_INLINE void LL_PWR_SetAVDLevel(uint32_t AVDLevel)
510 {
511   MODIFY_REG(PWR->CR1, PWR_CR1_ALS, AVDLevel);
512 }
513 
514 /**
515   * @brief  Get the Analog Voltage detector level selected
516   * @rmtoll CR1        ALS             LL_PWR_GetAVDLevel
517   * @retval Returned value can be one of the following values:
518   *         @arg @ref LL_PWR_AVDLEVEL_1
519   *         @arg @ref LL_PWR_AVDLEVEL_2
520   *         @arg @ref LL_PWR_AVDLEVEL_3
521   *         @arg @ref LL_PWR_AVDLEVEL_4
522   */
LL_PWR_GetAVDLevel(void)523 __STATIC_INLINE uint32_t LL_PWR_GetAVDLevel(void)
524 {
525   return READ_BIT(PWR->CR1, PWR_CR1_ALS);
526 }
527 
528 /**
529   * @brief  Enable Backup Regulator
530   * @rmtoll CSR1       BREN            LL_PWR_EnableBkUpRegulator
531   * @note When set, the Backup Regulator (used to maintain backup SRAM content in Standby and
532   *       VBAT modes) is enabled. If BRE is reset, the backup Regulator is switched off. The backup
533   *       SRAM can still be used but its content will be lost in the Standby and VBAT modes. Once set,
534   *       the application must wait that the Backup Regulator Ready flag (BRR) is set to indicate that
535   *       the data written into the RAM will be maintained in the Standby and VBAT modes.
536   * @retval None
537   */
LL_PWR_EnableBkUpRegulator(void)538 __STATIC_INLINE void LL_PWR_EnableBkUpRegulator(void)
539 {
540   SET_BIT(PWR->CSR1, PWR_CSR1_BREN);
541 }
542 
543 /**
544   * @brief  Disable Backup Regulator
545   * @rmtoll CSR1       BREN            LL_PWR_DisableBkUpRegulator
546   * @retval None
547   */
LL_PWR_DisableBkUpRegulator(void)548 __STATIC_INLINE void LL_PWR_DisableBkUpRegulator(void)
549 {
550   CLEAR_BIT(PWR->CSR1, PWR_CSR1_BREN);
551 }
552 
553 /**
554   * @brief  Check if the backup Regulator is enabled
555   * @rmtoll CSR1       BREN            LL_PWR_IsEnabledBkUpRegulator
556   * @retval State of bit (1 or 0).
557   */
LL_PWR_IsEnabledBkUpRegulator(void)558 __STATIC_INLINE uint32_t LL_PWR_IsEnabledBkUpRegulator(void)
559 {
560   return ((READ_BIT(PWR->CSR1, PWR_CSR1_BREN) == (PWR_CSR1_BREN)) ? 1UL : 0UL);
561 }
562 
563 /**
564   * @brief  Enable VBAT and Temperature monitoring
565   * @rmtoll CSR1       MONEN           LL_PWR_EnableMonitoring
566   * @retval None
567   */
LL_PWR_EnableMonitoring(void)568 __STATIC_INLINE void LL_PWR_EnableMonitoring(void)
569 {
570   SET_BIT(PWR->CSR1, PWR_CSR1_MONEN);
571 }
572 
573 /**
574   * @brief  Disable VBAT and Temperature monitoring
575   * @rmtoll CSR1       MONEN           LL_PWR_DisableMonitoring
576   * @retval None
577   */
LL_PWR_DisableMonitoring(void)578 __STATIC_INLINE void LL_PWR_DisableMonitoring(void)
579 {
580   CLEAR_BIT(PWR->CSR1, PWR_CSR1_MONEN);
581 }
582 
583 /**
584   * @brief  Check if the VBAT and Temperature monitoring is enabled
585   * @rmtoll CSR1       MONEN           LL_PWR_IsEnabledMonitoring
586   * @retval State of bit (1 or 0).
587   */
LL_PWR_IsEnabledMonitoring(void)588 __STATIC_INLINE uint32_t LL_PWR_IsEnabledMonitoring(void)
589 {
590   return ((READ_BIT(PWR->CSR1, PWR_CSR1_MONEN) == (PWR_CSR1_MONEN)) ? 1UL : 0UL);
591 }
592 
593 /**
594   * @brief  Configure the PWR supply
595   * @rmtoll CSR2       SDHILEVEL       LL_PWR_ConfigSupply
596   * @rmtoll CSR2       SMPSEXTHP       LL_PWR_ConfigSupply
597   * @rmtoll CSR2       SDEN            LL_PWR_ConfigSupply
598   * @rmtoll CSR2       LDOEN           LL_PWR_ConfigSupply
599   * @rmtoll CSR2       BYPASS          LL_PWR_ConfigSupply
600   * @param  SupplySource This parameter can be one of the following values:
601   *         @arg @ref LL_PWR_LDO_SUPPLY
602   *         @arg @ref LL_PWR_DIRECT_SMPS_SUPPLY
603   *         @arg @ref LL_PWR_SMPS_1V8_SUPPLIES_LDO
604   *         @arg @ref LL_PWR_SMPS_1V8_SUPPLIES_EXT_AND_LDO
605   *         @arg @ref LL_PWR_SMPS_1V8_SUPPLIES_EXT
606   *         @arg @ref LL_PWR_EXTERNAL_SOURCE_SUPPLY
607   * @retval None
608   */
LL_PWR_ConfigSupply(uint32_t SupplySource)609 __STATIC_INLINE void LL_PWR_ConfigSupply(uint32_t SupplySource)
610 {
611   /* Set the power supply configuration */
612   MODIFY_REG(PWR->CSR2, (PWR_CSR2_SDHILEVEL | PWR_CSR2_SMPSEXTHP | PWR_CSR2_SDEN | PWR_CSR2_LDOEN | PWR_CSR2_BYPASS),
613              SupplySource);
614 }
615 
616 /**
617   * @brief  Get the PWR supply
618   * @rmtoll CSR2       SDHILEVEL       LL_PWR_GetSupply
619   * @rmtoll CSR2       SMPSEXTHP       LL_PWR_GetSupply
620   * @rmtoll CSR2       SDEN            LL_PWR_GetSupply
621   * @rmtoll CSR2       LDOEN           LL_PWR_GetSupply
622   * @rmtoll CSR2       BYPASS          LL_PWR_GetSupply
623   * @retval Returned value can be one of the following values:
624   *         @arg @ref LL_PWR_LDO_SUPPLY
625   *         @arg @ref LL_PWR_DIRECT_SMPS_SUPPLY
626   *         @arg @ref LL_PWR_SMPS_1V8_SUPPLIES_LDO
627   *         @arg @ref LL_PWR_SMPS_1V8_SUPPLIES_EXT_AND_LDO
628   *         @arg @ref LL_PWR_SMPS_1V8_SUPPLIES_EXT
629   *         @arg @ref LL_PWR_EXTERNAL_SOURCE_SUPPLY
630   */
LL_PWR_GetSupply(void)631 __STATIC_INLINE uint32_t LL_PWR_GetSupply(void)
632 {
633   /* Get the power supply configuration */
634   return READ_BIT(PWR->CSR2,
635                   (PWR_CSR2_SDHILEVEL | PWR_CSR2_SMPSEXTHP | PWR_CSR2_SDEN | PWR_CSR2_LDOEN | PWR_CSR2_BYPASS));
636 }
637 
638 /**
639   * @brief  Enable VBAT battery charging
640   * @rmtoll CSR2       VBE             LL_PWR_EnableBatteryCharging
641   * @retval None
642   */
LL_PWR_EnableBatteryCharging(void)643 __STATIC_INLINE void LL_PWR_EnableBatteryCharging(void)
644 {
645   SET_BIT(PWR->CSR2, PWR_CSR2_VBE);
646 }
647 
648 /**
649   * @brief  Disable VBAT battery charging
650   * @rmtoll CSR2       VBE             LL_PWR_DisableBatteryCharging
651   * @retval None
652   */
LL_PWR_DisableBatteryCharging(void)653 __STATIC_INLINE void LL_PWR_DisableBatteryCharging(void)
654 {
655   CLEAR_BIT(PWR->CSR2, PWR_CSR2_VBE);
656 }
657 
658 /**
659   * @brief  Check if VBAT battery charging is enabled
660   * @rmtoll CSR2       VBE             LL_PWR_IsEnabledBatteryCharging
661   * @retval State of bit (1 or 0).
662   */
LL_PWR_IsEnabledBatteryCharging(void)663 __STATIC_INLINE uint32_t LL_PWR_IsEnabledBatteryCharging(void)
664 {
665   return ((READ_BIT(PWR->CSR2, PWR_CSR2_VBE) == (PWR_CSR2_VBE)) ? 1UL : 0UL);
666 }
667 
668 /**
669   * @brief  Set the Battery charge resistor impedance
670   * @rmtoll CSR2       VBRS            LL_PWR_SetBattChargResistor
671   * @param  Resistor This parameter can be one of the following values:
672   *         @arg @ref LL_PWR_BATT_CHARG_RESISTOR_5K
673   *         @arg @ref LL_PWR_BATT_CHARG_RESISTOR_1_5K
674   * @retval None
675   */
LL_PWR_SetBattChargResistor(uint32_t Resistor)676 __STATIC_INLINE void LL_PWR_SetBattChargResistor(uint32_t Resistor)
677 {
678   MODIFY_REG(PWR->CSR2, PWR_CSR2_VBRS, Resistor);
679 }
680 
681 /**
682   * @brief  Get the Battery charge resistor impedance
683   * @rmtoll CSR2       VBRS            LL_PWR_GetBattChargResistor
684   * @retval Returned value can be one of the following values:
685   *         @arg @ref LL_PWR_BATT_CHARG_RESISTOR_5K
686   *         @arg @ref LL_PWR_BATT_CHARG_RESISTOR_1_5K
687   */
LL_PWR_GetBattChargResistor(void)688 __STATIC_INLINE uint32_t LL_PWR_GetBattChargResistor(void)
689 {
690   return (READ_BIT(PWR->CSR2, PWR_CSR2_VBRS));
691 }
692 
693 /**
694   * @brief  Set the XSPI port 1 capacitor value
695   * @rmtoll CSR2       XSPICAP1        LL_PWR_SetXSPI1Capacitor
696   * @param  Capacitor This parameter can be one of the following values:
697   *         @arg @ref LL_PWR_XSPI1_CAPACITOR_OFF
698   *         @arg @ref LL_PWR_XSPI1_CAPACITOR_1_DIV_3
699   *         @arg @ref LL_PWR_XSPI1_CAPACITOR_2_DIV_3
700   *         @arg @ref LL_PWR_XSPI1_CAPACITOR_FULL
701   * @retval None
702   */
LL_PWR_SetXSPI1Capacitor(uint32_t Capacitor)703 __STATIC_INLINE void LL_PWR_SetXSPI1Capacitor(uint32_t Capacitor)
704 {
705   MODIFY_REG(PWR->CSR2, PWR_CSR2_XSPICAP1, Capacitor);
706 }
707 
708 /**
709   * @brief  Get the XSPI port 1 capacitor value
710   * @rmtoll CSR2       XSPICAP1        LL_PWR_GetXSPI1Capacitor
711   * @retval Returned value can be one of the following values:
712   *         @arg @ref LL_PWR_XSPI1_CAPACITOR_OFF
713   *         @arg @ref LL_PWR_XSPI1_CAPACITOR_1_DIV_3
714   *         @arg @ref LL_PWR_XSPI1_CAPACITOR_2_DIV_3
715   *         @arg @ref LL_PWR_XSPI1_CAPACITOR_FULL
716   */
LL_PWR_GetXSPI1Capacitor(void)717 __STATIC_INLINE uint32_t LL_PWR_GetXSPI1Capacitor(void)
718 {
719   return (READ_BIT(PWR->CSR2, PWR_CSR2_XSPICAP1));
720 }
721 
722 /**
723   * @brief  Set the XSPI port 2 capacitor value
724   * @rmtoll CSR2       XSPICAP2        LL_PWR_SetXSPI2Capacitor
725   * @param  Capacitor This parameter can be one of the following values:
726   *         @arg @ref LL_PWR_XSPI2_CAPACITOR_OFF
727   *         @arg @ref LL_PWR_XSPI2_CAPACITOR_1_DIV_3
728   *         @arg @ref LL_PWR_XSPI2_CAPACITOR_2_DIV_3
729   *         @arg @ref LL_PWR_XSPI2_CAPACITOR_FULL
730   * @retval None
731   */
LL_PWR_SetXSPI2Capacitor(uint32_t Capacitor)732 __STATIC_INLINE void LL_PWR_SetXSPI2Capacitor(uint32_t Capacitor)
733 {
734   MODIFY_REG(PWR->CSR2, PWR_CSR2_XSPICAP2, Capacitor);
735 }
736 
737 /**
738   * @brief  Get the XSPI port 2 capacitor value
739   * @rmtoll CSR2       XSPICAP2        LL_PWR_GetXSPI2Capacitor
740   * @retval Returned value can be one of the following values:
741   *         @arg @ref LL_PWR_XSPI2_CAPACITOR_OFF
742   *         @arg @ref LL_PWR_XSPI2_CAPACITOR_1_DIV_3
743   *         @arg @ref LL_PWR_XSPI2_CAPACITOR_2_DIV_3
744   *         @arg @ref LL_PWR_XSPI2_CAPACITOR_FULL
745   */
LL_PWR_GetXSPI2Capacitor(void)746 __STATIC_INLINE uint32_t LL_PWR_GetXSPI2Capacitor(void)
747 {
748   return (uint32_t)(READ_BIT(PWR->CSR2, PWR_CSR2_XSPICAP2));
749 }
750 
751 /**
752   * @brief  Enable the USB voltage detector
753   * @rmtoll CSR2       USB33DEN        LL_PWR_EnableUSBVoltageDetector
754   * @retval None
755   */
LL_PWR_EnableUSBVoltageDetector(void)756 __STATIC_INLINE void LL_PWR_EnableUSBVoltageDetector(void)
757 {
758   SET_BIT(PWR->CSR2, PWR_CSR2_USB33DEN);
759 }
760 
761 /**
762   * @brief  Disable the USB voltage detector
763   * @rmtoll CSR2       USB33DEN        LL_PWR_DisableUSBVoltageDetector
764   * @retval None
765   */
LL_PWR_DisableUSBVoltageDetector(void)766 __STATIC_INLINE void LL_PWR_DisableUSBVoltageDetector(void)
767 {
768   CLEAR_BIT(PWR->CSR2, PWR_CSR2_USB33DEN);
769 }
770 
771 /**
772   * @brief  Check if the USB voltage detector is enabled
773   * @rmtoll CSR2       USB33DEN        LL_PWR_IsEnabledUSBVoltageDetector
774   * @retval State of bit (1 or 0).
775   */
LL_PWR_IsEnabledUSBVoltageDetector(void)776 __STATIC_INLINE uint32_t LL_PWR_IsEnabledUSBVoltageDetector(void)
777 {
778   return ((READ_BIT(PWR->CSR2, PWR_CSR2_USB33DEN) == (PWR_CSR2_USB33DEN)) ? 1UL : 0UL);
779 }
780 
781 /**
782   * @brief  Enable the USB regulator
783   * @rmtoll CSR2       USBREGEN        LL_PWR_EnableUSBReg
784   * @retval None
785   */
LL_PWR_EnableUSBReg(void)786 __STATIC_INLINE void LL_PWR_EnableUSBReg(void)
787 {
788   SET_BIT(PWR->CSR2, PWR_CSR2_USBREGEN);
789 }
790 
791 /**
792   * @brief  Disable the USB regulator
793   * @rmtoll CSR2       USBREGEN        LL_PWR_DisableUSBReg
794   * @retval None
795   */
LL_PWR_DisableUSBReg(void)796 __STATIC_INLINE void LL_PWR_DisableUSBReg(void)
797 {
798   CLEAR_BIT(PWR->CSR2, PWR_CSR2_USBREGEN);
799 }
800 
801 /**
802   * @brief  Check if the USB regulator is enabled
803   * @rmtoll CSR2       USBREGEN        LL_PWR_IsEnabledUSBReg
804   * @retval State of bit (1 or 0).
805   */
LL_PWR_IsEnabledUSBReg(void)806 __STATIC_INLINE uint32_t LL_PWR_IsEnabledUSBReg(void)
807 {
808   return ((READ_BIT(PWR->CSR2, PWR_CSR2_USBREGEN) == (PWR_CSR2_USBREGEN)) ? 1UL : 0UL);
809 }
810 
811 /**
812   * @brief  Enable the USB HS PHY regulator
813   * @rmtoll CSR2       USBHSREGEN      LL_PWR_EnableUSBHSPHYReg
814   * @retval None
815   */
LL_PWR_EnableUSBHSPHYReg(void)816 __STATIC_INLINE void LL_PWR_EnableUSBHSPHYReg(void)
817 {
818   SET_BIT(PWR->CSR2, PWR_CSR2_USBHSREGEN);
819 }
820 
821 /**
822   * @brief  Disable USB HS PHY regulator
823   * @rmtoll CSR2       USBHSREGEN      LL_PWR_DisableUSBHSPHYReg
824   * @retval None
825   */
LL_PWR_DisableUSBHSPHYReg(void)826 __STATIC_INLINE void LL_PWR_DisableUSBHSPHYReg(void)
827 {
828   CLEAR_BIT(PWR->CSR2, PWR_CSR2_USBHSREGEN);
829 }
830 
831 /**
832   * @brief  Check if the USB HS PHY regulator is enabled
833   * @rmtoll CSR2       USBHSREGEN      LL_PWR_IsEnabledUSBHSPHYReg
834   * @retval State of bit (1 or 0).
835   */
LL_PWR_IsEnabledUSBHSPHYReg(void)836 __STATIC_INLINE uint32_t LL_PWR_IsEnabledUSBHSPHYReg(void)
837 {
838   return ((READ_BIT(PWR->CSR2, PWR_CSR2_USBHSREGEN) == (PWR_CSR2_USBHSREGEN)) ? 1UL : 0UL);
839 }
840 
841 /**
842   * @brief Enable UCPD configuration memorization in Standby.
843   * @rmtoll UCPDR      UCPD_STBY       LL_PWR_EnableUCPDStandbyMode
844   * @retval None
845   * @note  This function must be called just before entering Standby mode when using UCPD.
846   */
LL_PWR_EnableUCPDStandbyMode(void)847 __STATIC_INLINE void LL_PWR_EnableUCPDStandbyMode(void)
848 {
849   /* Memorize UCPD configuration when entering standby mode */
850   SET_BIT(PWR->UCPDR, PWR_UCPDR_UCPD_STBY);
851 }
852 
853 /**
854   * @brief Disable UCPD configuration memorization in Standby.
855   * @rmtoll UCPDR      UCPD_STBY       LL_PWR_DisableUCPDStandbyMode
856   * @retval None
857   * @note  This function must be called on exiting the Standby mode and before any UCPD
858   *        configuration update.
859   */
LL_PWR_DisableUCPDStandbyMode(void)860 __STATIC_INLINE void LL_PWR_DisableUCPDStandbyMode(void)
861 {
862   CLEAR_BIT(PWR->UCPDR, PWR_UCPDR_UCPD_STBY);
863 }
864 
865 /**
866   * @brief  Check if the UCPD configuration memorization in Standby is enabled
867   * @rmtoll UCPDR      UCPD_STBY       LL_PWR_IsEnabledUCPDStandbyMode
868   * @retval State of bit (1 or 0).
869   */
LL_PWR_IsEnabledUCPDStandbyMode(void)870 __STATIC_INLINE uint32_t LL_PWR_IsEnabledUCPDStandbyMode(void)
871 {
872   return ((READ_BIT(PWR->UCPDR, PWR_UCPDR_UCPD_STBY) == (PWR_UCPDR_UCPD_STBY)) ? 1UL : 0UL);
873 }
874 
875 /**
876   * @brief  Enable the UCPD dead battery behavior
877   * @rmtoll UCPDR       UCPD_DBDIS      LL_PWR_EnableUCPDDeadBattery
878   * @retval None
879   */
LL_PWR_EnableUCPDDeadBattery(void)880 __STATIC_INLINE void LL_PWR_EnableUCPDDeadBattery(void)
881 {
882   CLEAR_BIT(PWR->UCPDR, PWR_UCPDR_UCPD_DBDIS);
883 }
884 
885 /**
886   * @brief  Disable the UCPD dead battery behavior
887   * @rmtoll UCPDR       UCPD_DBDIS      LL_PWR_DisableUCPDDeadBattery
888   * @retval None
889   */
LL_PWR_DisableUCPDDeadBattery(void)890 __STATIC_INLINE void LL_PWR_DisableUCPDDeadBattery(void)
891 {
892   SET_BIT(PWR->UCPDR, PWR_UCPDR_UCPD_DBDIS);
893 }
894 
895 /**
896   * @brief  Check if the UCPD dead battery behavior is enabled
897   * @rmtoll UCPDR       UCPD_DBDIS      LL_PWR_IsEnabledUCPDDeadBattery
898   * @retval State of bit (1 or 0).
899   */
LL_PWR_IsEnabledUCPDDeadBattery(void)900 __STATIC_INLINE uint32_t LL_PWR_IsEnabledUCPDDeadBattery(void)
901 {
902   return ((READ_BIT(PWR->UCPDR, PWR_UCPDR_UCPD_DBDIS) == (PWR_UCPDR_UCPD_DBDIS)) ? 1UL : 0UL);
903 }
904 
905 /**
906   * @brief  Enable the XSPI_P1 interface
907   * @rmtoll CSR2       EN_XSPIM1      LL_PWR_EnableXSPIM1
908   * @retval None
909   */
LL_PWR_EnableXSPIM1(void)910 __STATIC_INLINE void LL_PWR_EnableXSPIM1(void)
911 {
912   SET_BIT(PWR->CSR2, PWR_CSR2_EN_XSPIM1);
913 }
914 
915 /**
916   * @brief  Disable the XSPI_P1 interface
917   * @rmtoll CSR2       EN_XSPIM1      LL_PWR_DisableXSPIM1
918   * @retval None
919   */
LL_PWR_DisableXSPIM1(void)920 __STATIC_INLINE void LL_PWR_DisableXSPIM1(void)
921 {
922   CLEAR_BIT(PWR->CSR2, PWR_CSR2_EN_XSPIM1);
923 }
924 
925 /**
926   * @brief  Check if the XSPI_P1 interface is enabled
927   * @rmtoll CSR2       EN_XSPIM1      LL_PWR_IsEnabledXSPIM1
928   * @retval State of bit (1 or 0).
929   */
LL_PWR_IsEnabledXSPIM1(void)930 __STATIC_INLINE uint32_t LL_PWR_IsEnabledXSPIM1(void)
931 {
932   return ((READ_BIT(PWR->CSR2, PWR_CSR2_EN_XSPIM1) == (PWR_CSR2_EN_XSPIM1)) ? 1UL : 0UL);
933 }
934 
935 /**
936   * @brief  Enable the XSPI_P2 interface
937   * @rmtoll CSR2       EN_XSPIM2      LL_PWR_EnableXSPIM2
938   * @retval None
939   */
LL_PWR_EnableXSPIM2(void)940 __STATIC_INLINE void LL_PWR_EnableXSPIM2(void)
941 {
942   SET_BIT(PWR->CSR2, PWR_CSR2_EN_XSPIM2);
943 }
944 
945 /**
946   * @brief  Disable the XSPI_P2 interface
947   * @rmtoll CSR2       EN_XSPIM2      LL_PWR_DisableXSPIM2
948   * @retval None
949   */
LL_PWR_DisableXSPIM2(void)950 __STATIC_INLINE void LL_PWR_DisableXSPIM2(void)
951 {
952   CLEAR_BIT(PWR->CSR2, PWR_CSR2_EN_XSPIM2);
953 }
954 
955 /**
956   * @brief  Check if the XSPI_P2 interface is enabled
957   * @rmtoll CSR2       EN_XSPIM2      LL_PWR_IsEnabledXSPIM2
958   * @retval State of bit (1 or 0).
959   */
LL_PWR_IsEnabledXSPIM2(void)960 __STATIC_INLINE uint32_t LL_PWR_IsEnabledXSPIM2(void)
961 {
962   return ((READ_BIT(PWR->CSR2, PWR_CSR2_EN_XSPIM2) == (PWR_CSR2_EN_XSPIM2)) ? 1UL : 0UL);
963 }
964 
965 /**
966   * @brief  Set the Power Down mode when device enters deepsleep mode
967   * @rmtoll CSR3       PDDS            LL_PWR_SetPowerDownModeDS
968   * @param  PDMode This parameter can be one of the following values:
969   *         @arg @ref LL_PWR_POWERDOWN_MODE_DS_STOP
970   *         @arg @ref LL_PWR_POWERDOWN_MODE_DS_STANDBY
971   * @retval None
972   */
LL_PWR_SetPowerDownModeDS(uint32_t PDMode)973 __STATIC_INLINE void LL_PWR_SetPowerDownModeDS(uint32_t PDMode)
974 {
975   MODIFY_REG(PWR->CSR3, PWR_CSR3_PDDS, PDMode);
976 }
977 
978 /**
979   * @brief  Get the Power Down mode when device enters deepsleep mode
980   * @rmtoll CSR3       PDDS            LL_PWR_GetPowerDownModeDS
981   * @retval Returned value can be one of the following values:
982   *         @arg @ref LL_PWR_POWERDOWN_MODE_DS_STOP
983   *         @arg @ref LL_PWR_POWERDOWN_MODE_DS_STANDBY
984   */
LL_PWR_GetPowerDownModeDS(void)985 __STATIC_INLINE uint32_t LL_PWR_GetPowerDownModeDS(void)
986 {
987   return (uint32_t)(READ_BIT(PWR->CSR3, PWR_CSR3_PDDS));
988 }
989 
990 /**
991   * @brief  Set the main internal Regulator output voltage
992   * @rmtoll CSR4       VOS             LL_PWR_SetRegulVoltageScaling
993   * @param  VoltageScaling This parameter can be one of the following values:
994   *         @arg @ref LL_PWR_REGU_VOLTAGE_SCALE0
995   *         @arg @ref LL_PWR_REGU_VOLTAGE_SCALE1
996   * @retval None
997   */
LL_PWR_SetRegulVoltageScaling(uint32_t VoltageScaling)998 __STATIC_INLINE void LL_PWR_SetRegulVoltageScaling(uint32_t VoltageScaling)
999 {
1000   MODIFY_REG(PWR->CSR4, PWR_CSR4_VOS, VoltageScaling);
1001 }
1002 
1003 /**
1004   * @brief  Get the main internal Regulator output voltage
1005   * @rmtoll CSR4       VOS             LL_PWR_GetRegulVoltageScaling
1006   * @retval Returned value can be one of the following values:
1007   *         @arg @ref LL_PWR_REGU_VOLTAGE_SCALE0
1008   *         @arg @ref LL_PWR_REGU_VOLTAGE_SCALE1
1009   */
LL_PWR_GetRegulVoltageScaling(void)1010 __STATIC_INLINE uint32_t LL_PWR_GetRegulVoltageScaling(void)
1011 {
1012   return (uint32_t)(READ_BIT(PWR->CSR4, PWR_CSR4_VOS));
1013 }
1014 
1015 /**
1016   * @brief  Set the internal Regulator output voltage in STOP mode
1017   * @rmtoll CR1        SVOS            LL_PWR_SetStopModeRegulVoltageScaling
1018   * @param  VoltageScaling This parameter can be one of the following values:
1019   *         @arg @ref LL_PWR_REGU_STOP_VOLTAGE_SCALE3
1020   *         @arg @ref LL_PWR_REGU_STOP_VOLTAGE_SCALE5
1021   * @retval None
1022   */
LL_PWR_SetStopModeRegulVoltageScaling(uint32_t VoltageScaling)1023 __STATIC_INLINE void LL_PWR_SetStopModeRegulVoltageScaling(uint32_t VoltageScaling)
1024 {
1025   MODIFY_REG(PWR->CR1, PWR_CR1_SVOS, VoltageScaling);
1026 }
1027 
1028 /**
1029   * @brief  Get the internal Regulator output voltage in STOP mode
1030   * @rmtoll CR1        SVOS            LL_PWR_GetStopModeRegulVoltageScaling
1031   * @retval Returned value can be one of the following values:
1032   *         @arg @ref LL_PWR_REGU_STOP_VOLTAGE_SCALE3
1033   *         @arg @ref LL_PWR_REGU_STOP_VOLTAGE_SCALE5
1034   */
LL_PWR_GetStopModeRegulVoltageScaling(void)1035 __STATIC_INLINE uint32_t LL_PWR_GetStopModeRegulVoltageScaling(void)
1036 {
1037   return READ_BIT(PWR->CR1, PWR_CR1_SVOS);
1038 }
1039 
1040 /**
1041   * @brief  Enable the WakeUp PINx functionality
1042   * @rmtoll WKUPEPR    WKUPEN1         LL_PWR_EnableWakeUpPin\n
1043   *         WKUPEPR    WKUPEN2         LL_PWR_EnableWakeUpPin\n
1044   *         WKUPEPR    WKUPEN3         LL_PWR_EnableWakeUpPin\n
1045   *         WKUPEPR    WKUPEN4         LL_PWR_EnableWakeUpPin
1046   * @param  WakeUpPin This parameter can be one of the following values:
1047   *         @arg @ref LL_PWR_WAKEUP_PIN1
1048   *         @arg @ref LL_PWR_WAKEUP_PIN2
1049   *         @arg @ref LL_PWR_WAKEUP_PIN3
1050   *         @arg @ref LL_PWR_WAKEUP_PIN4
1051   * @retval None
1052   */
LL_PWR_EnableWakeUpPin(uint32_t WakeUpPin)1053 __STATIC_INLINE void LL_PWR_EnableWakeUpPin(uint32_t WakeUpPin)
1054 {
1055   SET_BIT(PWR->WKUPEPR, WakeUpPin);
1056 }
1057 
1058 /**
1059   * @brief  Disable the WakeUp PINx functionality
1060   * @rmtoll WKUPEPR   WKUPEN1          LL_PWR_DisableWakeUpPin\n
1061   *         WKUPEPR   WKUPEN2          LL_PWR_DisableWakeUpPin\n
1062   *         WKUPEPR   WKUPEN3          LL_PWR_DisableWakeUpPin\n
1063   *         WKUPEPR   WKUPEN4          LL_PWR_DisableWakeUpPin
1064   * @param  WakeUpPin This parameter can be one of the following values:
1065   *         @arg @ref LL_PWR_WAKEUP_PIN1
1066   *         @arg @ref LL_PWR_WAKEUP_PIN2
1067   *         @arg @ref LL_PWR_WAKEUP_PIN3
1068   *         @arg @ref LL_PWR_WAKEUP_PIN4
1069   * @retval None
1070   */
LL_PWR_DisableWakeUpPin(uint32_t WakeUpPin)1071 __STATIC_INLINE void LL_PWR_DisableWakeUpPin(uint32_t WakeUpPin)
1072 {
1073   CLEAR_BIT(PWR->WKUPEPR, WakeUpPin);
1074 }
1075 
1076 /**
1077   * @brief  Check if the WakeUp PINx functionality is enabled
1078   * @rmtoll WKUPEPR    WKUPEN1         LL_PWR_IsEnabledWakeUpPin\n
1079   *         WKUPEPR    WKUPEN2         LL_PWR_IsEnabledWakeUpPin\n
1080   *         WKUPEPR    WKUPEN3         LL_PWR_IsEnabledWakeUpPin\n
1081   *         WKUPEPR    WKUPEN4         LL_PWR_IsEnabledWakeUpPin
1082   * @param  WakeUpPin This parameter can be one of the following values:
1083   *         @arg @ref LL_PWR_WAKEUP_PIN1
1084   *         @arg @ref LL_PWR_WAKEUP_PIN2
1085   *         @arg @ref LL_PWR_WAKEUP_PIN3
1086   *         @arg @ref LL_PWR_WAKEUP_PIN4
1087   * @retval State of bit (1 or 0).
1088   */
LL_PWR_IsEnabledWakeUpPin(uint32_t WakeUpPin)1089 __STATIC_INLINE uint32_t LL_PWR_IsEnabledWakeUpPin(uint32_t WakeUpPin)
1090 {
1091   return ((READ_BIT(PWR->WKUPEPR, WakeUpPin) == (WakeUpPin)) ? 1UL : 0UL);
1092 }
1093 
1094 /**
1095   * @brief  Set the Wake-Up pin polarity low for the event detection
1096   * @rmtoll WKUPEPR    WKUPP1          LL_PWR_SetWakeUpPinPolarityLow\n
1097   *         WKUPEPR    WKUPP2          LL_PWR_SetWakeUpPinPolarityLow\n
1098   *         WKUPEPR    WKUPP3          LL_PWR_SetWakeUpPinPolarityLow\n
1099   *         WKUPEPR    WKUPP4          LL_PWR_SetWakeUpPinPolarityLow
1100   * @param  WakeUpPin This parameter can be one of the following values:
1101   *         @arg @ref LL_PWR_WAKEUP_PIN1
1102   *         @arg @ref LL_PWR_WAKEUP_PIN2
1103   *         @arg @ref LL_PWR_WAKEUP_PIN3
1104   *         @arg @ref LL_PWR_WAKEUP_PIN4
1105   * @retval None
1106   */
LL_PWR_SetWakeUpPinPolarityLow(uint32_t WakeUpPin)1107 __STATIC_INLINE void LL_PWR_SetWakeUpPinPolarityLow(uint32_t WakeUpPin)
1108 {
1109   SET_BIT(PWR->WKUPEPR, (WakeUpPin << PWR_WKUPEPR_WKUPP1_Pos));
1110 }
1111 
1112 /**
1113   * @brief  Set the Wake-Up pin polarity high for the event detection
1114   * @rmtoll WKUPEPR    WKUPP1          LL_PWR_SetWakeUpPinPolarityHigh\n
1115   *         WKUPEPR    WKUPP2          LL_PWR_SetWakeUpPinPolarityHigh\n
1116   *         WKUPEPR    WKUPP3          LL_PWR_SetWakeUpPinPolarityHigh\n
1117   *         WKUPEPR    WKUPP4          LL_PWR_SetWakeUpPinPolarityHigh
1118   * @param  WakeUpPin This parameter can be one of the following values:
1119   *         @arg @ref LL_PWR_WAKEUP_PIN1
1120   *         @arg @ref LL_PWR_WAKEUP_PIN2
1121   *         @arg @ref LL_PWR_WAKEUP_PIN3
1122   *         @arg @ref LL_PWR_WAKEUP_PIN4
1123   * @retval None
1124   */
LL_PWR_SetWakeUpPinPolarityHigh(uint32_t WakeUpPin)1125 __STATIC_INLINE void LL_PWR_SetWakeUpPinPolarityHigh(uint32_t WakeUpPin)
1126 {
1127   CLEAR_BIT(PWR->WKUPEPR, (WakeUpPin << PWR_WKUPEPR_WKUPP1_Pos));
1128 }
1129 
1130 /**
1131   * @brief  Check if the Wake-Up pin polarity is low for event detection
1132   * @rmtoll WKUPEPR    WKUPP1          LL_PWR_IsWakeUpPinPolarityLow\n
1133   *         WKUPEPR    WKUPP2          LL_PWR_IsWakeUpPinPolarityLow\n
1134   *         WKUPEPR    WKUPP3          LL_PWR_IsWakeUpPinPolarityLow\n
1135   *         WKUPEPR    WKUPP4          LL_PWR_IsWakeUpPinPolarityLow
1136   * @param  WakeUpPin This parameter can be one of the following values:
1137   *         @arg @ref LL_PWR_WAKEUP_PIN1
1138   *         @arg @ref LL_PWR_WAKEUP_PIN2
1139   *         @arg @ref LL_PWR_WAKEUP_PIN3
1140   *         @arg @ref LL_PWR_WAKEUP_PIN4
1141   * @retval State of bit (1 or 0).
1142   */
LL_PWR_IsWakeUpPinPolarityLow(uint32_t WakeUpPin)1143 __STATIC_INLINE uint32_t LL_PWR_IsWakeUpPinPolarityLow(uint32_t WakeUpPin)
1144 {
1145   return ((READ_BIT(PWR->WKUPEPR, (WakeUpPin << PWR_WKUPEPR_WKUPP1_Pos)) == (WakeUpPin << PWR_WKUPEPR_WKUPP1_Pos)) ? 1UL : 0UL);
1146 }
1147 
1148 /**
1149   * @brief  Set the Wake-Up pin Pull None
1150   * @rmtoll WKUPEPR    WKUPPUPD1       LL_PWR_SetWakeUpPinPullNone\n
1151   *         WKUPEPR    WKUPPUPD2       LL_PWR_SetWakeUpPinPullNone\n
1152   *         WKUPEPR    WKUPPUPD3       LL_PWR_SetWakeUpPinPullNone\n
1153   *         WKUPEPR    WKUPPUPD4       LL_PWR_SetWakeUpPinPullNone
1154   * @param  WakeUpPin This parameter can be one of the following values:
1155   *         @arg @ref LL_PWR_WAKEUP_PIN1
1156   *         @arg @ref LL_PWR_WAKEUP_PIN2
1157   *         @arg @ref LL_PWR_WAKEUP_PIN3
1158   *         @arg @ref LL_PWR_WAKEUP_PIN4
1159   * @retval None
1160   */
LL_PWR_SetWakeUpPinPullNone(uint32_t WakeUpPin)1161 __STATIC_INLINE void LL_PWR_SetWakeUpPinPullNone(uint32_t WakeUpPin)
1162 {
1163   MODIFY_REG(PWR->WKUPEPR, \
1164              (PWR_WKUPEPR_WKUPPUPD1 << ((LL_PWR_WAKEUP_PINS_PULL_SHIFT_OFFSET * POSITION_VAL(WakeUpPin)) & LL_PWR_WAKEUP_PINS_MAX_SHIFT_MASK)), \
1165              (LL_PWR_WAKEUP_PIN_NOPULL << ((PWR_WKUPEPR_WKUPPUPD1_Pos + (LL_PWR_WAKEUP_PINS_PULL_SHIFT_OFFSET * POSITION_VAL(WakeUpPin))) & LL_PWR_WAKEUP_PINS_MAX_SHIFT_MASK)));
1166 }
1167 
1168 /**
1169   * @brief  Set the Wake-Up pin Pull Up
1170   * @rmtoll WKUPEPR    WKUPPUPD1       LL_PWR_SetWakeUpPinPullUp\n
1171   *         WKUPEPR    WKUPPUPD2       LL_PWR_SetWakeUpPinPullUp\n
1172   *         WKUPEPR    WKUPPUPD3       LL_PWR_SetWakeUpPinPullUp\n
1173   *         WKUPEPR    WKUPPUPD4       LL_PWR_SetWakeUpPinPullUp
1174   * @param  WakeUpPin This parameter can be one of the following values:
1175   *         @arg @ref LL_PWR_WAKEUP_PIN1
1176   *         @arg @ref LL_PWR_WAKEUP_PIN2
1177   *         @arg @ref LL_PWR_WAKEUP_PIN3
1178   *         @arg @ref LL_PWR_WAKEUP_PIN4
1179   * @retval None
1180   */
LL_PWR_SetWakeUpPinPullUp(uint32_t WakeUpPin)1181 __STATIC_INLINE void LL_PWR_SetWakeUpPinPullUp(uint32_t WakeUpPin)
1182 {
1183   MODIFY_REG(PWR->WKUPEPR, \
1184              (PWR_WKUPEPR_WKUPPUPD1 << ((LL_PWR_WAKEUP_PINS_PULL_SHIFT_OFFSET * POSITION_VAL(WakeUpPin)) & LL_PWR_WAKEUP_PINS_MAX_SHIFT_MASK)), \
1185              (LL_PWR_WAKEUP_PIN_PULLUP << ((PWR_WKUPEPR_WKUPPUPD1_Pos + (LL_PWR_WAKEUP_PINS_PULL_SHIFT_OFFSET * POSITION_VAL(WakeUpPin))) & LL_PWR_WAKEUP_PINS_MAX_SHIFT_MASK)));
1186 }
1187 
1188 /**
1189   * @brief  Set the Wake-Up pin Pull Down
1190   * @rmtoll WKUPEPR    WKUPPUPD1       LL_PWR_SetWakeUpPinPullDown\n
1191   *         WKUPEPR    WKUPPUPD2       LL_PWR_SetWakeUpPinPullDown\n
1192   *         WKUPEPR    WKUPPUPD3       LL_PWR_SetWakeUpPinPullDown\n
1193   *         WKUPEPR    WKUPPUPD4       LL_PWR_SetWakeUpPinPullDown
1194   * @param  WakeUpPin This parameter can be one of the following values:
1195   *         @arg @ref LL_PWR_WAKEUP_PIN1
1196   *         @arg @ref LL_PWR_WAKEUP_PIN2
1197   *         @arg @ref LL_PWR_WAKEUP_PIN3
1198   *         @arg @ref LL_PWR_WAKEUP_PIN4
1199   * @retval None
1200   */
LL_PWR_SetWakeUpPinPullDown(uint32_t WakeUpPin)1201 __STATIC_INLINE void LL_PWR_SetWakeUpPinPullDown(uint32_t WakeUpPin)
1202 {
1203   MODIFY_REG(PWR->WKUPEPR, \
1204              (PWR_WKUPEPR_WKUPPUPD1 << ((LL_PWR_WAKEUP_PINS_PULL_SHIFT_OFFSET * POSITION_VAL(WakeUpPin)) & LL_PWR_WAKEUP_PINS_MAX_SHIFT_MASK)), \
1205              (LL_PWR_WAKEUP_PIN_PULLDOWN << ((PWR_WKUPEPR_WKUPPUPD1_Pos + (LL_PWR_WAKEUP_PINS_PULL_SHIFT_OFFSET * POSITION_VAL(WakeUpPin))) & LL_PWR_WAKEUP_PINS_MAX_SHIFT_MASK)));
1206 }
1207 
1208 /**
1209   * @brief  Get the Wake-Up pin pull
1210   * @rmtoll WKUPEPR    WKUPPUPD1       LL_PWR_GetWakeUpPinPull\n
1211   *         WKUPEPR    WKUPPUPD2       LL_PWR_GetWakeUpPinPull\n
1212   *         WKUPEPR    WKUPPUPD3       LL_PWR_GetWakeUpPinPull\n
1213   *         WKUPEPR    WKUPPUPD4       LL_PWR_GetWakeUpPinPull\
1214   * @param  WakeUpPin This parameter can be one of the following values:
1215   *         @arg @ref LL_PWR_WAKEUP_PIN1
1216   *         @arg @ref LL_PWR_WAKEUP_PIN2
1217   *         @arg @ref LL_PWR_WAKEUP_PIN3
1218   *         @arg @ref LL_PWR_WAKEUP_PIN4
1219   * @retval Returned value can be one of the following values:
1220   *         @arg @ref LL_PWR_WAKEUP_PIN_NOPULL
1221   *         @arg @ref LL_PWR_WAKEUP_PIN_PULLUP
1222   *         @arg @ref LL_PWR_WAKEUP_PIN_PULLDOWN
1223   */
LL_PWR_GetWakeUpPinPull(uint32_t WakeUpPin)1224 __STATIC_INLINE uint32_t LL_PWR_GetWakeUpPinPull(uint32_t WakeUpPin)
1225 {
1226   uint32_t regValue = READ_BIT(PWR->WKUPEPR, (PWR_WKUPEPR_WKUPPUPD1 << ((LL_PWR_WAKEUP_PINS_PULL_SHIFT_OFFSET * POSITION_VAL(WakeUpPin)) & LL_PWR_WAKEUP_PINS_MAX_SHIFT_MASK)));
1227 
1228   return (uint32_t)(regValue >> ((PWR_WKUPEPR_WKUPPUPD1_Pos + (LL_PWR_WAKEUP_PINS_PULL_SHIFT_OFFSET * POSITION_VAL(WakeUpPin))) & LL_PWR_WAKEUP_PINS_MAX_SHIFT_MASK));
1229 }
1230 
1231 /**
1232   * @brief  Enable the pull-up on I3C1_SCL (PB6)) in standby mode
1233   * @rmtoll APCR       I3CPB6_PU       LL_PWR_EnableI3CPB6PU
1234   * @retval None
1235   */
LL_PWR_EnableI3CPB6PU(void)1236 __STATIC_INLINE void LL_PWR_EnableI3CPB6PU(void)
1237 {
1238   SET_BIT(PWR->APCR, PWR_APCR_I3CPB6_PU);
1239 }
1240 
1241 /**
1242   * @brief  Disable the pull-up on I3C1_SCL (PB6) in standby mode
1243   * @rmtoll APCR       I3CPB6_PU       LL_PWR_DisableI3CPB6PU
1244   * @retval None
1245   */
LL_PWR_DisableI3CPB6PU(void)1246 __STATIC_INLINE void LL_PWR_DisableI3CPB6PU(void)
1247 {
1248   CLEAR_BIT(PWR->APCR, PWR_APCR_I3CPB6_PU);
1249 }
1250 
1251 /**
1252   * @brief  Check if the pull-up on I3C1_SCL (PB6) in standby mode is enabled
1253   * @rmtoll APCR       I3CPB6_PU       LL_PWR_IsEnabledI3CPB6PU
1254   * @retval State of bit (1 or 0).
1255   */
LL_PWR_IsEnabledI3CPB6PU(void)1256 __STATIC_INLINE uint32_t LL_PWR_IsEnabledI3CPB6PU(void)
1257 {
1258   return ((READ_BIT(PWR->APCR, PWR_APCR_I3CPB6_PU) == (PWR_APCR_I3CPB6_PU)) ? 1UL : 0UL);
1259 }
1260 
1261 /**
1262   * @brief  Enable the pull-up on I3C1_SDA (PB7) in standby mode
1263   * @rmtoll APCR       I3CPB7_PU       LL_PWR_EnableI3CPB7PU
1264   * @retval None
1265   */
LL_PWR_EnableI3CPB7PU(void)1266 __STATIC_INLINE void LL_PWR_EnableI3CPB7PU(void)
1267 {
1268   SET_BIT(PWR->APCR, PWR_APCR_I3CPB7_PU);
1269 }
1270 
1271 /**
1272   * @brief  Disable the pull-up on I3C1_SDA (PB7) in standby mode
1273   * @rmtoll APCR       I3CPB7_PU       LL_PWR_DisableI3CPB7PU
1274   * @retval None
1275   */
LL_PWR_DisableI3CPB7PU(void)1276 __STATIC_INLINE void LL_PWR_DisableI3CPB7PU(void)
1277 {
1278   CLEAR_BIT(PWR->APCR, PWR_APCR_I3CPB7_PU);
1279 }
1280 
1281 /**
1282   * @brief  Check if the pull-up on I3C1_SDA (PB7) in standby mode is enabled
1283   * @rmtoll APCR       I3CPB7_PU       LL_PWR_IsEnabledI3CPB7PU
1284   * @retval State of bit (1 or 0).
1285   */
LL_PWR_IsEnabledI3CPB7PU(void)1286 __STATIC_INLINE uint32_t LL_PWR_IsEnabledI3CPB7PU(void)
1287 {
1288   return ((READ_BIT(PWR->APCR, PWR_APCR_I3CPB7_PU) == (PWR_APCR_I3CPB7_PU)) ? 1UL : 0UL);
1289 }
1290 
1291 /**
1292   * @brief  Enable the pull-up on I3C1_SCL (PB8) in standby mode
1293   * @rmtoll APCR       I3CPB8_PU       LL_PWR_EnableI3CPB8PU
1294   * @retval None
1295   */
LL_PWR_EnableI3CPB8PU(void)1296 __STATIC_INLINE void LL_PWR_EnableI3CPB8PU(void)
1297 {
1298   SET_BIT(PWR->APCR, PWR_APCR_I3CPB8_PU);
1299 }
1300 
1301 /**
1302   * @brief  Disable the pull-up on I3C1_SCL (PB8) in standby mode
1303   * @rmtoll APCR       I3CPB8_PU       LL_PWR_DisableI3CPB8PU
1304   * @retval None
1305   */
LL_PWR_DisableI3CPB8PU(void)1306 __STATIC_INLINE void LL_PWR_DisableI3CPB8PU(void)
1307 {
1308   CLEAR_BIT(PWR->APCR, PWR_APCR_I3CPB8_PU);
1309 }
1310 
1311 /**
1312   * @brief  Check if the pull-up on I3C1_SCL (PB8) in standby mode is enabled
1313   * @rmtoll APCR       I3CPB8_PU       LL_PWR_IsEnabledI3CPB8PU
1314   * @retval State of bit (1 or 0).
1315   */
LL_PWR_IsEnabledI3CPB8PU(void)1316 __STATIC_INLINE uint32_t LL_PWR_IsEnabledI3CPB8PU(void)
1317 {
1318   return ((READ_BIT(PWR->APCR, PWR_APCR_I3CPB8_PU) == (PWR_APCR_I3CPB8_PU)) ? 1UL : 0UL);
1319 }
1320 
1321 /**
1322   * @brief  Enable the pull-up on I3C1_SDA (PB9) in standby mode
1323   * @rmtoll APCR       I3CPB9_PU       LL_PWR_EnableI3CPB9PU
1324   * @retval None
1325   */
LL_PWR_EnableI3CPB9PU(void)1326 __STATIC_INLINE void LL_PWR_EnableI3CPB9PU(void)
1327 {
1328   SET_BIT(PWR->APCR, PWR_APCR_I3CPB9_PU);
1329 }
1330 
1331 /**
1332   * @brief  Disable the pull-up on I3C1_SDA (PB9) in standby mode
1333   * @rmtoll APCR       I3CPB9_PU       LL_PWR_DisableI3CPB9PU
1334   * @retval None
1335   */
LL_PWR_DisableI3CPB9PU(void)1336 __STATIC_INLINE void LL_PWR_DisableI3CPB9PU(void)
1337 {
1338   CLEAR_BIT(PWR->APCR, PWR_APCR_I3CPB9_PU);
1339 }
1340 
1341 /**
1342   * @brief  Check if the pull-up on I3C1_SDA (PB9) in standby mode is enabled
1343   * @rmtoll APCR       I3CPB9_PU       LL_PWR_IsEnabledI3CPB9PU
1344   * @retval State of bit (1 or 0).
1345   */
LL_PWR_IsEnabledI3CPB9PU(void)1346 __STATIC_INLINE uint32_t LL_PWR_IsEnabledI3CPB9PU(void)
1347 {
1348   return ((READ_BIT(PWR->APCR, PWR_APCR_I3CPB9_PU) == (PWR_APCR_I3CPB9_PU)) ? 1UL : 0UL);
1349 }
1350 
1351 /**
1352   * @brief  Enable the pull-up and pull-down configuration
1353   * @rmtoll APCR          APC           LL_PWR_EnablePUPDConfig
1354   * @retval None
1355   */
LL_PWR_EnablePUPDConfig(void)1356 __STATIC_INLINE void LL_PWR_EnablePUPDConfig(void)
1357 {
1358   SET_BIT(PWR->APCR, PWR_APCR_APC);
1359 }
1360 
1361 /**
1362   * @brief  Disable the pull-up and pull-down configuration
1363   * @rmtoll APCR          APC           LL_PWR_DisablePUPDConfig
1364   * @retval None
1365   */
LL_PWR_DisablePUPDConfig(void)1366 __STATIC_INLINE void LL_PWR_DisablePUPDConfig(void)
1367 {
1368   CLEAR_BIT(PWR->APCR, PWR_APCR_APC);
1369 }
1370 
1371 /**
1372   * @brief  Check if the pull-up and pull-down configuration is enabled.
1373   * @rmtoll APCR          APC           LL_PWR_IsEnabledPUPDConfig
1374   * @retval State of bit (1 or 0).
1375   */
LL_PWR_IsEnabledPUPDConfig(void)1376 __STATIC_INLINE uint32_t LL_PWR_IsEnabledPUPDConfig(void)
1377 {
1378   return ((READ_BIT(PWR->APCR, PWR_APCR_APC) == (PWR_APCR_APC)) ? 1UL : 0UL);
1379 }
1380 
1381 /**
1382   * @brief  Enable GPIO N pull-up in Standby mode
1383   * @rmtoll PUCRN        PUx        LL_PWR_EnableGPIONPullUp
1384   * @param  GPIOPin This parameter can be a combination of the following values:
1385   *         @arg @ref LL_PWR_GPIO_PIN_1
1386   *         @arg @ref LL_PWR_GPIO_PIN_6
1387   *         @arg @ref LL_PWR_GPIO_PIN_12
1388   * @retval None.
1389   */
LL_PWR_EnableGPIONPullUp(uint32_t GPIOPin)1390 __STATIC_INLINE void LL_PWR_EnableGPIONPullUp(uint32_t GPIOPin)
1391 {
1392   SET_BIT(PWR->PUCRN, GPIOPin);
1393 }
1394 
1395 /**
1396   * @brief  Disable GPIO N pull-up in Standby mode
1397   * @rmtoll PUCRN        PUx        LL_PWR_DisableGPIONPullUp
1398   * @param  GPIOPin This parameter can be a combination of the following values:
1399   *         @arg @ref LL_PWR_GPIO_PIN_1
1400   *         @arg @ref LL_PWR_GPIO_PIN_6
1401   *         @arg @ref LL_PWR_GPIO_PIN_12
1402   * @retval None.
1403   */
LL_PWR_DisableGPIONPullUp(uint32_t GPIOPin)1404 __STATIC_INLINE void LL_PWR_DisableGPIONPullUp(uint32_t GPIOPin)
1405 {
1406   CLEAR_BIT(PWR->PUCRN, GPIOPin);
1407 }
1408 
1409 /**
1410   * @brief  Check if GPIO pull-up in Standby mode is enabled
1411   * @rmtoll PUCRN        PUx        LL_PWR_IsEnabledGPIONPullUp
1412   * @param  GPIOPin This parameter can be one of the following values:
1413   *         @arg @ref LL_PWR_GPIO_PIN_1
1414   *         @arg @ref LL_PWR_GPIO_PIN_6
1415   *         @arg @ref LL_PWR_GPIO_PIN_12
1416   * @retval State of bit (1 or 0).
1417   */
LL_PWR_IsEnabledGPIONPullUp(uint32_t GPIOPin)1418 __STATIC_INLINE uint32_t LL_PWR_IsEnabledGPIONPullUp(uint32_t GPIOPin)
1419 {
1420   return ((READ_BIT(PWR->PUCRN, GPIOPin) == (GPIOPin)) ? 1UL : 0UL);
1421 }
1422 
1423 /**
1424   * @brief  Enable GPIO O pull-up in Standby mode
1425   * @rmtoll PUCRO        PUx        LL_PWR_EnableGPIOOPullUp
1426   * @param  GPIOPin This parameter can be a combination of the following values:
1427   *         @arg @ref LL_PWR_GPIO_PIN_0
1428   *         @arg @ref LL_PWR_GPIO_PIN_1
1429   *         @arg @ref LL_PWR_GPIO_PIN_4
1430 
1431   * @retval None.
1432   */
LL_PWR_EnableGPIOOPullUp(uint32_t GPIOPin)1433 __STATIC_INLINE void LL_PWR_EnableGPIOOPullUp(uint32_t GPIOPin)
1434 {
1435   SET_BIT(PWR->PUCRO, GPIOPin);
1436 }
1437 
1438 /**
1439   * @brief  Disable GPIO O pull-up in Standby mode
1440   * @rmtoll PUCRO        PUx        LL_PWR_DisableGPIOOPullUp
1441   * @param  GPIOPin This parameter can be a combination of the following values:
1442   *         @arg @ref LL_PWR_GPIO_PIN_0
1443   *         @arg @ref LL_PWR_GPIO_PIN_1
1444   *         @arg @ref LL_PWR_GPIO_PIN_4
1445   * @retval None.
1446   */
LL_PWR_DisableGPIOOPullUp(uint32_t GPIOPin)1447 __STATIC_INLINE void LL_PWR_DisableGPIOOPullUp(uint32_t GPIOPin)
1448 {
1449   CLEAR_BIT(PWR->PUCRO, GPIOPin);
1450 }
1451 
1452 /**
1453   * @brief  Check if GPIO O pull-up in Standby mode is enabled
1454   * @rmtoll PUCRO        PUx        LL_PWR_IsEnabledGPIOOPullUp
1455   * @param  GPIOPin This parameter can be one of the following values:
1456   *         @arg @ref LL_PWR_GPIO_PIN_0
1457   *         @arg @ref LL_PWR_GPIO_PIN_1
1458   *         @arg @ref LL_PWR_GPIO_PIN_4
1459   * @retval State of bit (1 or 0).
1460   */
LL_PWR_IsEnabledGPIOOPullUp(uint32_t GPIOPin)1461 __STATIC_INLINE uint32_t LL_PWR_IsEnabledGPIOOPullUp(uint32_t GPIOPin)
1462 {
1463   return ((READ_BIT(PWR->PUCRO, GPIOPin) == (GPIOPin)) ? 1UL : 0UL);
1464 }
1465 
1466 /**
1467   * @brief  Enable GPIO N pull-down in Standby mode
1468   * @rmtoll PDCRN        PDx        LL_PWR_EnableGPIONPullDown
1469   * @param  GPIOPin This parameter can be a combination of the following values:
1470   *         @arg @ref LL_PWR_GPIO_PIN_0
1471   *         @arg @ref LL_PWR_GPIO_PIN_1
1472   *         @arg @ref LL_PWR_GPIO_PIN_2
1473   *         @arg @ref LL_PWR_GPIO_PIN_6
1474   *         @arg @ref LL_PWR_GPIO_PIN_8
1475   *         @arg @ref LL_PWR_GPIO_PIN_12
1476   * @retval None.
1477   */
LL_PWR_EnableGPIONPullDown(uint32_t GPIOPin)1478 __STATIC_INLINE void LL_PWR_EnableGPIONPullDown(uint32_t GPIOPin)
1479 {
1480   SET_BIT(PWR->PDCRN, GPIOPin);
1481 }
1482 
1483 /**
1484   * @brief  Disable GPIO N pull-down in Standby mode
1485   * @rmtoll PDCRN        PDx        LL_PWR_DisableGPIONPullDown
1486   * @param  GPIOPin This parameter can be a combination of the following values:
1487   *         @arg @ref LL_PWR_GPIO_PIN_0
1488   *         @arg @ref LL_PWR_GPIO_PIN_1
1489   *         @arg @ref LL_PWR_GPIO_PIN_2
1490   *         @arg @ref LL_PWR_GPIO_PIN_6
1491   *         @arg @ref LL_PWR_GPIO_PIN_8
1492   *         @arg @ref LL_PWR_GPIO_PIN_12
1493   * @retval None.
1494   */
LL_PWR_DisableGPIONPullDown(uint32_t GPIOPin)1495 __STATIC_INLINE void LL_PWR_DisableGPIONPullDown(uint32_t GPIOPin)
1496 {
1497   CLEAR_BIT(PWR->PDCRN, GPIOPin);
1498 }
1499 
1500 /**
1501   * @brief  Check if GPIO N pull-down in Standby mode is enabled
1502   * @rmtoll PDCRN        PDx        LL_PWR_IsEnabledGPIONPullDown
1503   * @param  GPIOPin This parameter can be one of the following values:
1504   *         @arg @ref LL_PWR_GPIO_PIN_0
1505   *         @arg @ref LL_PWR_GPIO_PIN_1
1506   *         @arg @ref LL_PWR_GPIO_PIN_2
1507   *         @arg @ref LL_PWR_GPIO_PIN_6
1508   *         @arg @ref LL_PWR_GPIO_PIN_8
1509   *         @arg @ref LL_PWR_GPIO_PIN_12
1510   * @retval State of bit (1 or 0).
1511   */
LL_PWR_IsEnabledGPIONPullDown(uint32_t GPIOPin)1512 __STATIC_INLINE uint32_t LL_PWR_IsEnabledGPIONPullDown(uint32_t GPIOPin)
1513 {
1514   return ((READ_BIT(PWR->PDCRN, GPIOPin) == (GPIOPin)) ? 1UL : 0UL);
1515 }
1516 /**
1517   * @brief  Enable GPIO O pull-down in Standby mode
1518   * @rmtoll PDCRO        PDx        LL_PWR_EnableGPIOOPullDown
1519   * @param  GPIOPin This parameter can be a combination of the following values:
1520   *         @arg @ref LL_PWR_GPIO_PIN_0
1521   *         @arg @ref LL_PWR_GPIO_PIN_1
1522   *         @arg @ref LL_PWR_GPIO_PIN_2
1523   *         @arg @ref LL_PWR_GPIO_PIN_3
1524   *         @arg @ref LL_PWR_GPIO_PIN_4
1525   * @retval None.
1526   */
LL_PWR_EnableGPIOOPullDown(uint32_t GPIOPin)1527 __STATIC_INLINE void LL_PWR_EnableGPIOOPullDown(uint32_t GPIOPin)
1528 {
1529   SET_BIT(PWR->PDCRO, GPIOPin);
1530 }
1531 
1532 /**
1533   * @brief  Disable GPIO O pull-down in Standby mode
1534   * @rmtoll PDCRO        PDx        LL_PWR_DisableGPIOOPullDown
1535   * @param  GPIOPin This parameter can be a combination of the following values:
1536   *         @arg @ref LL_PWR_GPIO_PIN_0
1537   *         @arg @ref LL_PWR_GPIO_PIN_1
1538   *         @arg @ref LL_PWR_GPIO_PIN_2
1539   *         @arg @ref LL_PWR_GPIO_PIN_3
1540   *         @arg @ref LL_PWR_GPIO_PIN_4
1541   * @retval None.
1542   */
LL_PWR_DisableGPIOOPullDown(uint32_t GPIOPin)1543 __STATIC_INLINE void LL_PWR_DisableGPIOOPullDown(uint32_t GPIOPin)
1544 {
1545   CLEAR_BIT(PWR->PDCRO, GPIOPin);
1546 }
1547 
1548 /**
1549   * @brief  Check if GPIO O pull-down in Standby mode is enabled
1550   * @rmtoll PDCRO        PDx        LL_PWR_IsEnabledGPIOOPullDown
1551   * @param  GPIOPin This parameter can be one of the following values:
1552   *         @arg @ref LL_PWR_GPIO_PIN_0
1553   *         @arg @ref LL_PWR_GPIO_PIN_1
1554   *         @arg @ref LL_PWR_GPIO_PIN_2
1555   *         @arg @ref LL_PWR_GPIO_PIN_3
1556   *         @arg @ref LL_PWR_GPIO_PIN_4
1557   * @retval State of bit (1 or 0).
1558   */
LL_PWR_IsEnabledGPIOOPullDown(uint32_t GPIOPin)1559 __STATIC_INLINE uint32_t LL_PWR_IsEnabledGPIOOPullDown(uint32_t GPIOPin)
1560 {
1561   return ((READ_BIT(PWR->PDCRO, GPIOPin) == (GPIOPin)) ? 1UL : 0UL);
1562 }
1563 
1564 /**
1565   * @brief  Enable GPIO P pull-down in Standby mode
1566   * @rmtoll PDCRP        PDx        LL_PWR_EnableGPIOPPullDown
1567   * @param  GPIOPin This parameter can be a combination of the following values:
1568   *         @arg @ref LL_PWR_GPIO_PIN_0
1569   *         @arg @ref LL_PWR_GPIO_PIN_4
1570   *         @arg @ref LL_PWR_GPIO_PIN_8
1571   *         @arg @ref LL_PWR_GPIO_PIN_12
1572   * @retval None.
1573   */
LL_PWR_EnableGPIOPPullDown(uint32_t GPIOPin)1574 __STATIC_INLINE void LL_PWR_EnableGPIOPPullDown(uint32_t GPIOPin)
1575 {
1576   SET_BIT(PWR->PDCRP, GPIOPin);
1577 }
1578 
1579 /**
1580   * @brief  Disable GPIO P pull-down in Standby mode
1581   * @rmtoll PDCRP        PDx        LL_PWR_DisableGPIOPPullDown
1582   * @param  GPIOPin This parameter can be a combination of the following values:
1583   *         @arg @ref LL_PWR_GPIO_PIN_0
1584   *         @arg @ref LL_PWR_GPIO_PIN_4
1585   *         @arg @ref LL_PWR_GPIO_PIN_8
1586   *         @arg @ref LL_PWR_GPIO_PIN_12
1587   * @retval None.
1588   */
LL_PWR_DisableGPIOPPullDown(uint32_t GPIOPin)1589 __STATIC_INLINE void LL_PWR_DisableGPIOPPullDown(uint32_t GPIOPin)
1590 {
1591   CLEAR_BIT(PWR->PDCRP, GPIOPin);
1592 }
1593 
1594 /**
1595   * @brief  Check if GPIO P pull-down in Standby mode is enabled
1596   * @rmtoll PDCRP        PDx        LL_PWR_IsEnabledGPIOPPullDown
1597   * @param  GPIOPin This parameter can be one of the following values:
1598   *         @arg @ref LL_PWR_GPIO_PIN_0
1599   *         @arg @ref LL_PWR_GPIO_PIN_4
1600   *         @arg @ref LL_PWR_GPIO_PIN_8
1601   *         @arg @ref LL_PWR_GPIO_PIN_12
1602   * @retval State of bit (1 or 0).
1603   */
LL_PWR_IsEnabledGPIOPPullDown(uint32_t GPIOPin)1604 __STATIC_INLINE uint32_t LL_PWR_IsEnabledGPIOPPullDown(uint32_t GPIOPin)
1605 {
1606   return ((READ_BIT(PWR->PDCRP, GPIOPin) == (GPIOPin)) ? 1UL : 0UL);
1607 }
1608 /**
1609   * @}
1610   */
1611 
1612 
1613 /** @defgroup PWR_LL_EF_FLAG_MANAGEMENT PWR FLAG Management
1614   * @{
1615   */
1616 
1617 /**
1618   * @brief  Indicate whether the voltage level is ready for current actual used VOS
1619   * @rmtoll SR1        ACTVOSRDY       LL_PWR_IsActiveFlag_ACTVOSRDY
1620   * @retval State of bit (1 or 0).
1621   */
LL_PWR_IsActiveFlag_ACTVOSRDY(void)1622 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_ACTVOSRDY(void)
1623 {
1624   return ((READ_BIT(PWR->SR1, PWR_SR1_ACTVOSRDY) == (PWR_SR1_ACTVOSRDY)) ? 1UL : 0UL);
1625 }
1626 
1627 /**
1628   * @brief  Indicate whether VDD voltage is below the selected PVD threshold
1629   * @rmtoll SR1        PVDO            LL_PWR_IsActiveFlag_PVDO
1630   * @retval State of bit (1 or 0).
1631   */
LL_PWR_IsActiveFlag_PVDO(void)1632 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_PVDO(void)
1633 {
1634   return ((READ_BIT(PWR->SR1, PWR_SR1_PVDO) == (PWR_SR1_PVDO)) ? 1UL : 0UL);
1635 }
1636 
1637 /**
1638   * @brief  Indicate whether VDDA voltage is below the selected AVD threshold
1639   * @rmtoll SR1        AVDO            LL_PWR_IsActiveFlag_AVDO
1640   * @retval State of bit (1 or 0).
1641   */
LL_PWR_IsActiveFlag_AVDO(void)1642 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_AVDO(void)
1643 {
1644   return ((READ_BIT(PWR->SR1, PWR_SR1_AVDO) == (PWR_SR1_AVDO)) ? 1UL : 0UL);
1645 }
1646 
1647 /**
1648   * @brief  Get Backup Regulator ready Flag
1649   * @rmtoll CSR1       BRRDY           LL_PWR_IsActiveFlag_BRRDY
1650   * @retval State of bit (1 or 0).
1651   */
LL_PWR_IsActiveFlag_BRRDY(void)1652 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_BRRDY(void)
1653 {
1654   return ((READ_BIT(PWR->CSR1, PWR_CSR1_BRRDY) == (PWR_CSR1_BRRDY)) ? 1UL : 0UL);
1655 }
1656 
1657 /**
1658   * @brief  Indicate whether the VBAT level is above or below low threshold
1659   * @rmtoll CSR1       VBATL           LL_PWR_IsActiveFlag_VBATL
1660   * @retval State of bit (1 or 0).
1661   */
LL_PWR_IsActiveFlag_VBATL(void)1662 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_VBATL(void)
1663 {
1664   return ((READ_BIT(PWR->CSR1, PWR_CSR1_VBATL) == (PWR_CSR1_VBATL)) ? 1UL : 0UL);
1665 }
1666 
1667 /**
1668   * @brief  Indicate whether the VBAT level is above or below high threshold
1669   * @rmtoll CSR1       VBATH           LL_PWR_IsActiveFlag_VBATH
1670   * @retval State of bit (1 or 0).
1671   */
LL_PWR_IsActiveFlag_VBATH(void)1672 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_VBATH(void)
1673 {
1674   return ((READ_BIT(PWR->CSR1, PWR_CSR1_VBATH) == (PWR_CSR1_VBATH)) ? 1UL : 0UL);
1675 }
1676 
1677 /**
1678   * @brief  Indicate whether the CPU temperature level is above or below low threshold
1679   * @rmtoll CSR1       TEMPL           LL_PWR_IsActiveFlag_TEMPL
1680   * @retval State of bit (1 or 0).
1681   */
LL_PWR_IsActiveFlag_TEMPL(void)1682 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_TEMPL(void)
1683 {
1684   return ((READ_BIT(PWR->CSR1, PWR_CSR1_TEMPL) == (PWR_CSR1_TEMPL)) ? 1UL : 0UL);
1685 }
1686 
1687 /**
1688   * @brief  Indicate whether the CPU temperature level is above or below high threshold
1689   * @rmtoll CSR1       TEMPH           LL_PWR_IsActiveFlag_TEMPH
1690   * @retval State of bit (1 or 0).
1691   */
LL_PWR_IsActiveFlag_TEMPH(void)1692 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_TEMPH(void)
1693 {
1694   return ((READ_BIT(PWR->CSR1, PWR_CSR1_TEMPH) == (PWR_CSR1_TEMPH)) ? 1UL : 0UL);
1695 }
1696 
1697 /**
1698   * @brief  Indicate whether the SMPS external supply is ready or not
1699   * @rmtoll CSR2       SDEXTRDY        LL_PWR_IsActiveFlag_SDEXTRDY
1700   * @retval State of bit (1 or 0).
1701   */
LL_PWR_IsActiveFlag_SDEXTRDY(void)1702 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_SDEXTRDY(void)
1703 {
1704   return ((READ_BIT(PWR->CSR2, PWR_CSR2_SDEXTRDY) == (PWR_CSR2_SDEXTRDY)) ? 1UL : 0UL);
1705 }
1706 
1707 /**
1708   * @brief  Indicate whether the USB supply is ready or not
1709   * @rmtoll CSR2       USB33RDY        LL_PWR_IsActiveFlag_USB33RDY
1710   * @retval State of bit (1 or 0).
1711   */
LL_PWR_IsActiveFlag_USB33RDY(void)1712 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_USB33RDY(void)
1713 {
1714   return ((READ_BIT(PWR->CSR2, PWR_CSR2_USB33RDY) == (PWR_CSR2_USB33RDY)) ? 1UL : 0UL);
1715 }
1716 
1717 /**
1718   * @brief  Get System Stop Flag
1719   * @rmtoll CSR3       STOPF           LL_PWR_IsActiveFlag_STOP
1720   * @retval State of bit (1 or 0).
1721   */
LL_PWR_IsActiveFlag_STOP(void)1722 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_STOP(void)
1723 {
1724   return ((READ_BIT(PWR->CSR3, PWR_CSR3_STOPF) == (PWR_CSR3_STOPF)) ? 1UL : 0UL);
1725 }
1726 
1727 /**
1728   * @brief  Get System Standby Flag
1729   * @rmtoll CSR3       SBF             LL_PWR_IsActiveFlag_SB
1730   * @retval State of bit (1 or 0).
1731   */
LL_PWR_IsActiveFlag_SB(void)1732 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_SB(void)
1733 {
1734   return ((READ_BIT(PWR->CSR3, PWR_CSR3_SBF) == (PWR_CSR3_SBF)) ? 1UL : 0UL);
1735 }
1736 
1737 /**
1738   * @brief  Indicate whether the Regulator is ready in the selected voltage range
1739   *         or if its output voltage is still changing to the required voltage level
1740   * @rmtoll CSR4       VOSRDY          LL_PWR_IsActiveFlag_VOSRDY
1741   * @retval State of bit (1 or 0).
1742   */
LL_PWR_IsActiveFlag_VOSRDY(void)1743 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_VOSRDY(void)
1744 {
1745   return ((READ_BIT(PWR->CSR4, PWR_CSR4_VOSRDY) == (PWR_CSR4_VOSRDY)) ? 1UL : 0UL);
1746 }
1747 
1748 /**
1749   * @brief  Get Wake-up Flag 1
1750   * @rmtoll WKUPFR     WKUPF1          LL_PWR_IsActiveFlag_WU1
1751   * @retval State of bit (1 or 0).
1752   */
LL_PWR_IsActiveFlag_WU1(void)1753 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU1(void)
1754 {
1755   return ((READ_BIT(PWR->WKUPFR, PWR_WKUPFR_WKUPF1) == (PWR_WKUPFR_WKUPF1)) ? 1UL : 0UL);
1756 }
1757 
1758 /**
1759   * @brief  Get Wake-up Flag 2
1760   * @rmtoll WKUPFR     WKUPF2          LL_PWR_IsActiveFlag_WU2
1761   * @retval State of bit (1 or 0).
1762   */
LL_PWR_IsActiveFlag_WU2(void)1763 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU2(void)
1764 {
1765   return ((READ_BIT(PWR->WKUPFR, PWR_WKUPFR_WKUPF2) == (PWR_WKUPFR_WKUPF2)) ? 1UL : 0UL);
1766 }
1767 
1768 /**
1769   * @brief  Get Wake-up Flag 3
1770   * @rmtoll WKUPFR     WKUPF3          LL_PWR_IsActiveFlag_WU3
1771   * @retval State of bit (1 or 0).
1772   */
LL_PWR_IsActiveFlag_WU3(void)1773 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU3(void)
1774 {
1775   return ((READ_BIT(PWR->WKUPFR, PWR_WKUPFR_WKUPF3) == (PWR_WKUPFR_WKUPF3)) ? 1UL : 0UL);
1776 }
1777 
1778 /**
1779   * @brief  Get Wake-up Flag 4
1780   * @rmtoll WKUPFR     WKUPF4          LL_PWR_IsActiveFlag_WU4
1781   * @retval State of bit (1 or 0).
1782   */
LL_PWR_IsActiveFlag_WU4(void)1783 __STATIC_INLINE uint32_t LL_PWR_IsActiveFlag_WU4(void)
1784 {
1785   return ((READ_BIT(PWR->WKUPFR, PWR_WKUPFR_WKUPF4) == (PWR_WKUPFR_WKUPF4)) ? 1UL : 0UL);
1786 }
1787 
1788 /**
1789   * @brief  Clear STOP and STANDBY and flags
1790   * @rmtoll CSR3       CSSF            LL_PWR_ClearFlag_STOP_SB
1791   * @retval None
1792   */
LL_PWR_ClearFlag_STOP_SB(void)1793 __STATIC_INLINE void LL_PWR_ClearFlag_STOP_SB(void)
1794 {
1795   SET_BIT(PWR->CSR3, PWR_CSR3_CSSF);
1796 }
1797 
1798 /**
1799   * @brief  Clear Wake-up Flag 1
1800   * @rmtoll WKUPCR     WKUPC1          LL_PWR_ClearFlag_WU1
1801   * @retval None
1802   */
LL_PWR_ClearFlag_WU1(void)1803 __STATIC_INLINE void LL_PWR_ClearFlag_WU1(void)
1804 {
1805   WRITE_REG(PWR->WKUPCR, PWR_WKUPCR_WKUPC1);
1806 }
1807 
1808 /**
1809   * @brief  Clear Wake-up Flag 2
1810   * @rmtoll WKUPCR     WKUPC2          LL_PWR_ClearFlag_WU2
1811   * @retval None
1812   */
LL_PWR_ClearFlag_WU2(void)1813 __STATIC_INLINE void LL_PWR_ClearFlag_WU2(void)
1814 {
1815   WRITE_REG(PWR->WKUPCR, PWR_WKUPCR_WKUPC2);
1816 }
1817 
1818 /**
1819   * @brief  Clear Wake-up Flag 3
1820   * @rmtoll WKUPCR     WKUPC3          LL_PWR_ClearFlag_WU3
1821   * @retval None
1822   */
LL_PWR_ClearFlag_WU3(void)1823 __STATIC_INLINE void LL_PWR_ClearFlag_WU3(void)
1824 {
1825   WRITE_REG(PWR->WKUPCR, PWR_WKUPCR_WKUPC3);
1826 }
1827 
1828 /**
1829   * @brief  Clear Wake-up Flag 4
1830   * @rmtoll WKUPCR     WKUPC4          LL_PWR_ClearFlag_WU4
1831   * @retval None
1832   */
LL_PWR_ClearFlag_WU4(void)1833 __STATIC_INLINE void LL_PWR_ClearFlag_WU4(void)
1834 {
1835   WRITE_REG(PWR->WKUPCR, PWR_WKUPCR_WKUPC4);
1836 }
1837 
1838 /**
1839   * @brief  Clear all wake up flags.
1840   * @rmtoll WUSCR          WKUPC         LL_PWR_ClearFlag_WU
1841   * @retval None
1842   */
LL_PWR_ClearFlag_WU(void)1843 __STATIC_INLINE void LL_PWR_ClearFlag_WU(void)
1844 {
1845   WRITE_REG(PWR->WKUPCR, PWR_WKUPCR_WKUPC);
1846 }
1847 
1848 /**
1849   * @}
1850   */
1851 
1852 #if defined (USE_FULL_LL_DRIVER)
1853 /** @defgroup PWR_LL_EF_Init De-initialization function
1854   * @{
1855   */
1856 ErrorStatus LL_PWR_DeInit(void);
1857 /**
1858   * @}
1859   */
1860 #endif /* defined (USE_FULL_LL_DRIVER) */
1861 
1862 
1863 /**
1864   * @}
1865   */
1866 
1867 /**
1868   * @}
1869   */
1870 
1871 /**
1872   * @}
1873   */
1874 
1875 #endif /* defined (PWR) */
1876 
1877 /**
1878   * @}
1879   */
1880 
1881 #ifdef __cplusplus
1882 }
1883 #endif
1884 
1885 #endif /* STM32H7RSxx_LL_PWR_H */
1886