openmv/lib/stm32/n6/include/stm32n6xx_hal_pwr_ex.h
iabdalkader daf2bb30da misc: Restructure repo.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-04-13 08:28:34 +02:00

1142 lines
39 KiB
C

/**
******************************************************************************
* @file stm32n6xx_hal_pwr_ex.h
* @author MCD Application Team
* @brief Header file of PWR HAL Extended module.
******************************************************************************
* @attention
*
* Copyright (c) 2023 STMicroelectronics.
* All rights reserved.
*
* This software is licensed under terms that can be found in the LICENSE file
* in the root directory of this software component.
* If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef STM32N6xx_HAL_PWR_EX_H
#define STM32N6xx_HAL_PWR_EX_H
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/* Includes ------------------------------------------------------------------*/
#include "stm32n6xx_hal_def.h"
/** @addtogroup STM32N6xx_HAL_Driver
* @{
*/
/** @addtogroup PWREx
* @{
*/
/* Exported types ------------------------------------------------------------*/
/** @defgroup PWREx_Exported_Types PWR Extended Exported Types
* @{
*/
/**
* @brief PWREx Wakeup pin configuration structure definition
*/
typedef struct
{
uint32_t WakeUpPin; /*!< Specifies the Wake-Up pin to be enabled.
This parameter can be a value of @ref PWR_WakeUp_Pins */
uint32_t PinPolarity; /*!< Specifies the Wake-Up pin polarity.
This parameter can be a value of @ref PWR_PIN_Polarity */
uint32_t PinPull; /*!< Specifies the Wake-Up pin pull.
This parameter can be a value of @ref PWR_PIN_Pull */
} PWREx_WakeupPinTypeDef;
/**
* @brief PWR PVM configuration structure definition
*/
typedef struct
{
uint32_t PVMType; /*!< Specifies which voltage is monitored.
This parameter can be a value of
@ref PWREx_PVM_Type. */
uint32_t Mode; /*!< Specifies the operating mode for the selected pins.
This parameter can be a value of
@ref PWREx_PVM_Mode. */
} PWR_PVMTypeDef;
/**
* @brief PWR VddCORE monitoring configuration structure definition
*/
typedef struct
{
uint32_t LowVoltageThreshold; /*!< Specifies the VDDCORE voltage detector low-level.
This parameter can be a value of
@ref PWREx_VDDCORE_Levels. */
uint32_t Mode; /*!< Specifies the operating mode for the selected pins.
This parameter can be a value of
@ref PWREx_VddCOREVM_Mode. */
} PWR_VddCOREVMTypeDef;
/**
* @}
*/
/* Exported constants --------------------------------------------------------*/
/** @defgroup PWREx_Exported_Constants PWR Extended Exported Constants
* @{
*/
/** @defgroup PWREx_Supply_configuration PWREx Supply configuration
* @{
*/
#define PWR_SMPS_SUPPLY PWR_CR1_SDEN /*!< VCORE power domains are supplied from SMPS step-down converter according to VOS */
#define PWR_EXTERNAL_SOURCE_SUPPLY (0U) /*!< SMPS step-down converter disabled. VCORE supplied from external source */
#define PWR_SUPPLY_CONFIG_MASK PWR_CR1_SDEN
/**
* @}
*/
/** @defgroup PWR_Regulator_Voltage_Scale PWR Regulator Voltage Scale
* @{
*/
#define PWR_REGULATOR_VOLTAGE_SCALE0 PWR_VOSCR_VOS /*!< Voltage scaling range 0 (highest frequency) */
#define PWR_REGULATOR_VOLTAGE_SCALE1 (0U) /*!< Voltage scaling range 1 (lowest power) */
/**
* @}
*/
/** @defgroup PWREx_Regulator_Voltage_Scale PWREx Regulator Voltage Scale
* @{
*/
#define PWR_REGULATOR_STOP_VOLTAGE_SCALE3 PWR_CPUCR_SVOS /*!< System Stop mode voltage scaling range 3 (highest frequency) */
#define PWR_REGULATOR_STOP_VOLTAGE_SCALE5 (0U) /*!< System Stop mode voltage scaling range 5 (lowest power) */
/**
* @}
*/
/** @defgroup PWREx_VBAT_Thresholds PWREx VBAT Thresholds
* @{
*/
#define PWR_VBAT_BETWEEN_HIGH_LOW_THRESHOLD (0U)
#define PWR_VBAT_BELOW_LOW_THRESHOLD PWR_BDCR1_VBATL
#define PWR_VBAT_ABOVE_HIGH_THRESHOLD PWR_BDCR1_VBATH
/**
* @}
*/
/** @defgroup PWREx_TEMP_Thresholds PWREx Temperature Thresholds
* @{
*/
#define PWR_TEMP_BETWEEN_HIGH_LOW_THRESHOLD (0U)
#define PWR_TEMP_BELOW_LOW_THRESHOLD PWR_BDCR1_TEMPL
#define PWR_TEMP_ABOVE_HIGH_THRESHOLD PWR_BDCR1_TEMPH
/**
* @}
*/
/** @defgroup PWREx_VDDCORE_Levels PWREx VDDCORE voltage detector low-level
* @{
*/
#define PWR_VDDCORE_THRESHOLD_VOS0 PWR_CR3_VCORELLS
#define PWR_VDDCORE_THRESHOLD_VOS1 (0U)
/**
* @}
*/
/** @defgroup PWREx_VDDCORE_Thresholds PWREx VDDCORE voltage detector low-level Thresholds
* @{
*/
#define PWR_VDDCORE_BETWEEN_HIGH_LOW_THRESHOLD (0U)
#define PWR_VDDCORE_BELOW_LOW_THRESHOLD PWR_CR3_VCOREL
#define PWR_VDDCORE_ABOVE_HIGH_THRESHOLD PWR_CR3_VCOREH
/**
* @}
*/
/** @defgroup PWREx_VddCOREVM_Mode PWR Extended VddCORE Monitoring Interrupt and Event Mode
* @{
*/
#define PWR_VDDCOREVM_MODE_NORMAL (0x00U) /*!< Basic Mode is used */
#define PWR_VDDCOREVM_MODE_IT_RISING (0x05U) /*!< External Interrupt Mode with Rising edge trigger detection */
#define PWR_VDDCOREVM_MODE_IT_FALLING (0x06U) /*!< External Interrupt Mode with Falling edge trigger detection */
#define PWR_VDDCOREVM_MODE_IT_RISING_FALLING (0x07U) /*!< External Interrupt Mode with Rising/Falling edge trigger detection */
#define PWR_VDDCOREVM_MODE_EVENT_RISING (0x09U) /*!< Event Mode with Rising edge trigger detection */
#define PWR_VDDCOREVM_MODE_EVENT_FALLING (0x0AU) /*!< Event Mode with Falling edge trigger detection */
#define PWR_VDDCOREVM_MODE_EVENT_RISING_FALLING (0x0BU) /*!< Event Mode with Rising/Falling edge trigger detection */
/**
* @}
*/
/** @defgroup PWREx_VDDIO PWREx Vdd IO selection
* @{
*/
#define PWR_VDDIO (0U)
#define PWR_VDDIO2 (1U)
#define PWR_VDDIO3 (2U)
#define PWR_VDDIO4 (3U)
#define PWR_VDDIO5 (4U)
/**
* @}
*/
/** @defgroup PWREx_VDDIO_Range PWREx Vdd IO Range
* @{
*/
#define PWR_VDDIO_RANGE_3V3 (0U)
#define PWR_VDDIO_RANGE_1V8 (1U)
/**
* @}
*/
/** @defgroup PWREx_PVM_Mode PWR Extended PVM Interrupt and Event Mode
* @{
*/
#define PWR_PVM_MODE_NORMAL (0x00U) /*!< Basic Mode is used */
#define PWR_PVM_MODE_IT_RISING (0x05U) /*!< External Interrupt Mode with Rising edge trigger detection */
#define PWR_PVM_MODE_IT_FALLING (0x06U) /*!< External Interrupt Mode with Falling edge trigger detection */
#define PWR_PVM_MODE_IT_RISING_FALLING (0x07U) /*!< External Interrupt Mode with Rising/Falling edge trigger detection */
#define PWR_PVM_MODE_EVENT_RISING (0x09U) /*!< Event Mode with Rising edge trigger detection */
#define PWR_PVM_MODE_EVENT_FALLING (0x0AU) /*!< Event Mode with Falling edge trigger detection */
#define PWR_PVM_MODE_EVENT_RISING_FALLING (0x0BU) /*!< Event Mode with Rising/Falling edge trigger detection */
/**
* @}
*/
/**
* @}
*/
/* Exported macros -----------------------------------------------------------*/
/** @defgroup PWREx_Exported_Macros PWR Extended Exported Macros
* @{
*/
/**
* @brief Enable the USBVM Extended Interrupt Line.
* @retval None.
*/
#define __HAL_PWR_USBVM_EXTI_ENABLE_IT() SET_BIT(EXTI->IMR3, PWR_EXTI_LINE_PVM_VDDUSB)
/**
* @brief Disable the USBVM Extended Interrupt Line.
* @retval None.
*/
#define __HAL_PWR_USBVM_EXTI_DISABLE_IT() CLEAR_BIT(EXTI->IMR3, PWR_EXTI_LINE_PVM_VDDUSB)
/**
* @brief Enable the USBVM Event Line.
* @retval None.
*/
#define __HAL_PWR_USBVM_EXTI_ENABLE_EVENT() SET_BIT(EXTI->EMR3, PWR_EXTI_LINE_PVM_VDDUSB)
/**
* @brief Disable the USBVM Event Line.
* @retval None.
*/
#define __HAL_PWR_USBVM_EXTI_DISABLE_EVENT() CLEAR_BIT(EXTI->EMR3, PWR_EXTI_LINE_PVM_VDDUSB)
/**
* @brief Enable the USBVM Extended Interrupt Rising Trigger.
* @retval None.
*/
#define __HAL_PWR_USBVM_EXTI_ENABLE_RISING_EDGE() SET_BIT(EXTI->RTSR3, PWR_EXTI_LINE_PVM_VDDUSB)
/**
* @brief Disable the USBVM Extended Interrupt Rising Trigger.
* @retval None.
*/
#define __HAL_PWR_USBVM_EXTI_DISABLE_RISING_EDGE() CLEAR_BIT(EXTI->RTSR3, PWR_EXTI_LINE_PVM_VDDUSB)
/**
* @brief Enable the USBVM Extended Interrupt Falling Trigger.
* @retval None.
*/
#define __HAL_PWR_USBVM_EXTI_ENABLE_FALLING_EDGE() SET_BIT(EXTI->FTSR3, PWR_EXTI_LINE_PVM_VDDUSB)
/**
* @brief Disable the USBVM Extended Interrupt Falling Trigger.
* @retval None.
*/
#define __HAL_PWR_USBVM_EXTI_DISABLE_FALLING_EDGE() CLEAR_BIT(EXTI->FTSR3, PWR_EXTI_LINE_PVM_VDDUSB)
/**
* @brief Enable the USBVM Extended Interrupt Rising & Falling Trigger.
* @retval None.
*/
#define __HAL_PWR_USBVM_EXTI_ENABLE_RISING_FALLING_EDGE() \
do \
{ \
__HAL_PWR_USBVM_EXTI_ENABLE_RISING_EDGE(); \
__HAL_PWR_USBVM_EXTI_ENABLE_FALLING_EDGE(); \
} while(0)
/**
* @brief Disable the USBVM Extended Interrupt Rising & Falling Trigger.
* @retval None.
*/
#define __HAL_PWR_USBVM_EXTI_DISABLE_RISING_FALLING_EDGE() \
do \
{ \
__HAL_PWR_USBVM_EXTI_DISABLE_RISING_EDGE(); \
__HAL_PWR_USBVM_EXTI_DISABLE_FALLING_EDGE(); \
} while(0)
/**
* @brief Generate a Software Interrupt on USBVM EXTI Line.
* @retval None
*/
#define __HAL_PWR_USBVM_EXTI_GENERATE_SWIT() SET_BIT(EXTI->SWIER3, PWR_EXTI_LINE_PVM_VDDUSB)
/**
* @brief Check whether the specified USBVM EXTI flag is set or not.
* @retval EXTI USBVM Line Status.
*/
#define __HAL_PWR_USBVM_EXTI_GET_FLAG() ((EXTI->RPR3 | EXTI->FPR3) & PWR_EXTI_LINE_PVM_VDDUSB)
/**
* @brief Clear the USBVM interrupt Rising flag.
* @retval None.
*/
#define __HAL_PWR_USBVM_EXTI_CLEAR_RISING_FLAG() WRITE_REG(EXTI->RPR3, PWR_EXTI_LINE_PVM_VDDUSB)
/**
* @brief Clear the USBVM interrupt Falling flag.
* @retval None
*/
#define __HAL_PWR_USBVM_EXTI_CLEAR_FALLING_FLAG() WRITE_REG(EXTI->FPR3, PWR_EXTI_LINE_PVM_VDDUSB)
/**
* @brief Enable the IO2VM Extended Interrupt Line.
* @retval None.
*/
#define __HAL_PWR_IO2VM_EXTI_ENABLE_IT() SET_BIT(EXTI->IMR3, PWR_EXTI_LINE_PVM_VDDIO2)
/**
* @brief Disable the IO2VM Extended Interrupt Line.
* @retval None.
*/
#define __HAL_PWR_IO2VM_EXTI_DISABLE_IT() CLEAR_BIT(EXTI->IMR3, PWR_EXTI_LINE_PVM_VDDIO2)
/**
* @brief Enable the IO2VM Event Line.
* @retval None.
*/
#define __HAL_PWR_IO2VM_EXTI_ENABLE_EVENT() SET_BIT(EXTI->EMR3, PWR_EXTI_LINE_PVM_VDDIO2)
/**
* @brief Disable the IO2VM Event Line.
* @retval None.
*/
#define __HAL_PWR_IO2VM_EXTI_DISABLE_EVENT() CLEAR_BIT(EXTI->EMR3, PWR_EXTI_LINE_PVM_VDDIO2)
/**
* @brief Enable the IO2VM Extended Interrupt Rising Trigger.
* @retval None.
*/
#define __HAL_PWR_IO2VM_EXTI_ENABLE_RISING_EDGE() SET_BIT(EXTI->RTSR3, PWR_EXTI_LINE_PVM_VDDIO2)
/**
* @brief Disable the IO2VM Extended Interrupt Rising Trigger.
* @retval None.
*/
#define __HAL_PWR_IO2VM_EXTI_DISABLE_RISING_EDGE() CLEAR_BIT(EXTI->RTSR3, PWR_EXTI_LINE_PVM_VDDIO2)
/**
* @brief Enable the IO2VM Extended Interrupt Falling Trigger.
* @retval None.
*/
#define __HAL_PWR_IO2VM_EXTI_ENABLE_FALLING_EDGE() SET_BIT(EXTI->FTSR3, PWR_EXTI_LINE_PVM_VDDIO2)
/**
* @brief Disable the IO2VM Extended Interrupt Falling Trigger.
* @retval None.
*/
#define __HAL_PWR_IO2VM_EXTI_DISABLE_FALLING_EDGE() CLEAR_BIT(EXTI->FTSR3, PWR_EXTI_LINE_PVM_VDDIO2)
/**
* @brief Enable the IO2VM Extended Interrupt Rising & Falling Trigger.
* @retval None.
*/
#define __HAL_PWR_IO2VM_EXTI_ENABLE_RISING_FALLING_EDGE() \
do \
{ \
__HAL_PWR_IO2VM_EXTI_ENABLE_RISING_EDGE(); \
__HAL_PWR_IO2VM_EXTI_ENABLE_FALLING_EDGE(); \
} while(0)
/**
* @brief Disable the IO2VM Extended Interrupt Rising & Falling Trigger.
* @retval None.
*/
#define __HAL_PWR_IO2VM_EXTI_DISABLE_RISING_FALLING_EDGE() \
do \
{ \
__HAL_PWR_IO2VM_EXTI_DISABLE_RISING_EDGE(); \
__HAL_PWR_IO2VM_EXTI_DISABLE_FALLING_EDGE(); \
} while(0)
/**
* @brief Generate a Software Interrupt on IO2VM EXTI Line.
* @retval None
*/
#define __HAL_PWR_IO2VM_EXTI_GENERATE_SWIT() SET_BIT(EXTI->SWIER3, PWR_EXTI_LINE_PVM_VDDIO2)
/**
* @brief Check whether the specified IO2VM EXTI flag is set or not.
* @retval EXTI IO2VM Line Status.
*/
#define __HAL_PWR_IO2VM_EXTI_GET_FLAG() ((EXTI->RPR3 | EXTI->FPR3) & PWR_EXTI_LINE_PVM_VDDIO2)
/**
* @brief Clear the IO2VM interrupt Rising flag.
* @retval None.
*/
#define __HAL_PWR_IO2VM_EXTI_CLEAR_RISING_FLAG() WRITE_REG(EXTI->RPR3, PWR_EXTI_LINE_PVM_VDDIO2)
/**
* @brief Clear the IO2VM interrupt Falling flag.
* @retval None
*/
#define __HAL_PWR_IO2VM_EXTI_CLEAR_FALLING_FLAG() WRITE_REG(EXTI->FPR3, PWR_EXTI_LINE_PVM_VDDIO2)
/**
* @brief Enable the IO3VM Extended Interrupt Line.
* @retval None.
*/
#define __HAL_PWR_IO3VM_EXTI_ENABLE_IT() SET_BIT(EXTI->IMR3, PWR_EXTI_LINE_PVM_VDDIO3)
/**
* @brief Disable the IO3VM Extended Interrupt Line.
* @retval None.
*/
#define __HAL_PWR_IO3VM_EXTI_DISABLE_IT() CLEAR_BIT(EXTI->IMR3, PWR_EXTI_LINE_PVM_VDDIO3)
/**
* @brief Enable the IO3VM Event Line.
* @retval None.
*/
#define __HAL_PWR_IO3VM_EXTI_ENABLE_EVENT() SET_BIT(EXTI->EMR3, PWR_EXTI_LINE_PVM_VDDIO3)
/**
* @brief Disable the IO3VM Event Line.
* @retval None.
*/
#define __HAL_PWR_IO3VM_EXTI_DISABLE_EVENT() CLEAR_BIT(EXTI->EMR3, PWR_EXTI_LINE_PVM_VDDIO3)
/**
* @brief Enable the IO3VM Extended Interrupt Rising Trigger.
* @retval None.
*/
#define __HAL_PWR_IO3VM_EXTI_ENABLE_RISING_EDGE() SET_BIT(EXTI->RTSR3, PWR_EXTI_LINE_PVM_VDDIO3)
/**
* @brief Disable the IO3VM Extended Interrupt Rising Trigger.
* @retval None.
*/
#define __HAL_PWR_IO3VM_EXTI_DISABLE_RISING_EDGE() CLEAR_BIT(EXTI->RTSR3, PWR_EXTI_LINE_PVM_VDDIO3)
/**
* @brief Enable the IO3VM Extended Interrupt Falling Trigger.
* @retval None.
*/
#define __HAL_PWR_IO3VM_EXTI_ENABLE_FALLING_EDGE() SET_BIT(EXTI->FTSR3, PWR_EXTI_LINE_PVM_VDDIO3)
/**
* @brief Disable the IO3VM Extended Interrupt Falling Trigger.
* @retval None.
*/
#define __HAL_PWR_IO3VM_EXTI_DISABLE_FALLING_EDGE() CLEAR_BIT(EXTI->FTSR3, PWR_EXTI_LINE_PVM_VDDIO3)
/**
* @brief Enable the IO3VM Extended Interrupt Rising & Falling Trigger.
* @retval None.
*/
#define __HAL_PWR_IO3VM_EXTI_ENABLE_RISING_FALLING_EDGE() \
do \
{ \
__HAL_PWR_IO3VM_EXTI_ENABLE_RISING_EDGE(); \
__HAL_PWR_IO3VM_EXTI_ENABLE_FALLING_EDGE(); \
} while(0)
/**
* @brief Disable the IO3VM Extended Interrupt Rising & Falling Trigger.
* @retval None.
*/
#define __HAL_PWR_IO3VM_EXTI_DISABLE_RISING_FALLING_EDGE() \
do \
{ \
__HAL_PWR_IO3VM_EXTI_DISABLE_RISING_EDGE(); \
__HAL_PWR_IO3VM_EXTI_DISABLE_FALLING_EDGE(); \
} while(0)
/**
* @brief Generate a Software Interrupt on IO3VM EXTI Line.
* @retval None
*/
#define __HAL_PWR_IO3VM_EXTI_GENERATE_SWIT() SET_BIT(EXTI->SWIER3, PWR_EXTI_LINE_PVM_VDDIO3)
/**
* @brief Check whether the specified IO3VM EXTI flag is set or not.
* @retval EXTI IO3VM Line Status.
*/
#define __HAL_PWR_IO3VM_EXTI_GET_FLAG() ((EXTI->RPR3 | EXTI->FPR3) & PWR_EXTI_LINE_PVM_VDDIO3)
/**
* @brief Clear the IO3VM interrupt Rising flag.
* @retval None.
*/
#define __HAL_PWR_IO3VM_EXTI_CLEAR_RISING_FLAG() WRITE_REG(EXTI->RPR3, PWR_EXTI_LINE_PVM_VDDIO3)
/**
* @brief Clear the IO3VM interrupt Falling flag.
* @retval None
*/
#define __HAL_PWR_IO3VM_EXTI_CLEAR_FALLING_FLAG() WRITE_REG(EXTI->FPR3, PWR_EXTI_LINE_PVM_VDDIO3)
/**
* @brief Enable the IO4VM Extended Interrupt Line.
* @retval None.
*/
#define __HAL_PWR_IO4VM_EXTI_ENABLE_IT() SET_BIT(EXTI->IMR3, PWR_EXTI_LINE_PVM_VDDIO4)
/**
* @brief Disable the IO4VM Extended Interrupt Line.
* @retval None.
*/
#define __HAL_PWR_IO4VM_EXTI_DISABLE_IT() CLEAR_BIT(EXTI->IMR3, PWR_EXTI_LINE_PVM_VDDIO4)
/**
* @brief Enable the IO4VM Event Line.
* @retval None.
*/
#define __HAL_PWR_IO4VM_EXTI_ENABLE_EVENT() SET_BIT(EXTI->EMR3, PWR_EXTI_LINE_PVM_VDDIO4)
/**
* @brief Disable the IO4VM Event Line.
* @retval None.
*/
#define __HAL_PWR_IO4VM_EXTI_DISABLE_EVENT() CLEAR_BIT(EXTI->EMR3, PWR_EXTI_LINE_PVM_VDDIO4)
/**
* @brief Enable the IO4VM Extended Interrupt Rising Trigger.
* @retval None.
*/
#define __HAL_PWR_IO4VM_EXTI_ENABLE_RISING_EDGE() SET_BIT(EXTI->RTSR3, PWR_EXTI_LINE_PVM_VDDIO4)
/**
* @brief Disable the IO4VM Extended Interrupt Rising Trigger.
* @retval None.
*/
#define __HAL_PWR_IO4VM_EXTI_DISABLE_RISING_EDGE() CLEAR_BIT(EXTI->RTSR3, PWR_EXTI_LINE_PVM_VDDIO4)
/**
* @brief Enable the IO4VM Extended Interrupt Falling Trigger.
* @retval None.
*/
#define __HAL_PWR_IO4VM_EXTI_ENABLE_FALLING_EDGE() SET_BIT(EXTI->FTSR3, PWR_EXTI_LINE_PVM_VDDIO4)
/**
* @brief Disable the IO4VM Extended Interrupt Falling Trigger.
* @retval None.
*/
#define __HAL_PWR_IO4VM_EXTI_DISABLE_FALLING_EDGE() CLEAR_BIT(EXTI->FTSR3, PWR_EXTI_LINE_PVM_VDDIO4)
/**
* @brief Enable the IO4VM Extended Interrupt Rising & Falling Trigger.
* @retval None.
*/
#define __HAL_PWR_IO4VM_EXTI_ENABLE_RISING_FALLING_EDGE() \
do \
{ \
__HAL_PWR_IO4VM_EXTI_ENABLE_RISING_EDGE(); \
__HAL_PWR_IO4VM_EXTI_ENABLE_FALLING_EDGE(); \
} while(0)
/**
* @brief Disable the IO4VM Extended Interrupt Rising & Falling Trigger.
* @retval None.
*/
#define __HAL_PWR_IO4VM_EXTI_DISABLE_RISING_FALLING_EDGE() \
do \
{ \
__HAL_PWR_IO4VM_EXTI_DISABLE_RISING_EDGE(); \
__HAL_PWR_IO4VM_EXTI_DISABLE_FALLING_EDGE(); \
} while(0)
/**
* @brief Generate a Software Interrupt on IO4VM EXTI Line.
* @retval None
*/
#define __HAL_PWR_IO4VM_EXTI_GENERATE_SWIT() SET_BIT(EXTI->SWIER3, PWR_EXTI_LINE_PVM_VDDIO4)
/**
* @brief Check whether the specified IO4VM EXTI flag is set or not.
* @retval EXTI IO4VM Line Status.
*/
#define __HAL_PWR_IO4VM_EXTI_GET_FLAG() ((EXTI->RPR3 | EXTI->FPR3) & PWR_EXTI_LINE_PVM_VDDIO4)
/**
* @brief Clear the IO4VM interrupt Rising flag.
* @retval None.
*/
#define __HAL_PWR_IO4VM_EXTI_CLEAR_RISING_FLAG() WRITE_REG(EXTI->RPR3, PWR_EXTI_LINE_PVM_VDDIO4)
/**
* @brief Clear the IO4VM interrupt Falling flag.
* @retval None
*/
#define __HAL_PWR_IO4VM_EXTI_CLEAR_FALLING_FLAG() WRITE_REG(EXTI->FPR3, PWR_EXTI_LINE_PVM_VDDIO4)
/**
* @brief Enable the IO5VM Extended Interrupt Line.
* @retval None.
*/
#define __HAL_PWR_IO5VM_EXTI_ENABLE_IT() SET_BIT(EXTI->IMR3, PWR_EXTI_LINE_PVM_VDDIO5)
/**
* @brief Disable the IO5VM Extended Interrupt Line.
* @retval None.
*/
#define __HAL_PWR_IO5VM_EXTI_DISABLE_IT() CLEAR_BIT(EXTI->IMR3, PWR_EXTI_LINE_PVM_VDDIO5)
/**
* @brief Enable the IO5VM Event Line.
* @retval None.
*/
#define __HAL_PWR_IO5VM_EXTI_ENABLE_EVENT() SET_BIT(EXTI->EMR3, PWR_EXTI_LINE_PVM_VDDIO5)
/**
* @brief Disable the IO5VM Event Line.
* @retval None.
*/
#define __HAL_PWR_IO5VM_EXTI_DISABLE_EVENT() CLEAR_BIT(EXTI->EMR3, PWR_EXTI_LINE_PVM_VDDIO5)
/**
* @brief Enable the IO5VM Extended Interrupt Rising Trigger.
* @retval None.
*/
#define __HAL_PWR_IO5VM_EXTI_ENABLE_RISING_EDGE() SET_BIT(EXTI->RTSR3, PWR_EXTI_LINE_PVM_VDDIO5)
/**
* @brief Disable the IO5VM Extended Interrupt Rising Trigger.
* @retval None.
*/
#define __HAL_PWR_IO5VM_EXTI_DISABLE_RISING_EDGE() CLEAR_BIT(EXTI->RTSR3, PWR_EXTI_LINE_PVM_VDDIO5)
/**
* @brief Enable the IO5VM Extended Interrupt Falling Trigger.
* @retval None.
*/
#define __HAL_PWR_IO5VM_EXTI_ENABLE_FALLING_EDGE() SET_BIT(EXTI->FTSR3, PWR_EXTI_LINE_PVM_VDDIO5)
/**
* @brief Disable the IO5VM Extended Interrupt Falling Trigger.
* @retval None.
*/
#define __HAL_PWR_IO5VM_EXTI_DISABLE_FALLING_EDGE() CLEAR_BIT(EXTI->FTSR3, PWR_EXTI_LINE_PVM_VDDIO5)
/**
* @brief Enable the IO5VM Extended Interrupt Rising & Falling Trigger.
* @retval None.
*/
#define __HAL_PWR_IO5VM_EXTI_ENABLE_RISING_FALLING_EDGE() \
do \
{ \
__HAL_PWR_IO5VM_EXTI_ENABLE_RISING_EDGE(); \
__HAL_PWR_IO5VM_EXTI_ENABLE_FALLING_EDGE(); \
} while(0)
/**
* @brief Disable the IO5VM Extended Interrupt Rising & Falling Trigger.
* @retval None.
*/
#define __HAL_PWR_IO5VM_EXTI_DISABLE_RISING_FALLING_EDGE() \
do \
{ \
__HAL_PWR_IO5VM_EXTI_DISABLE_RISING_EDGE(); \
__HAL_PWR_IO5VM_EXTI_DISABLE_FALLING_EDGE(); \
} while(0)
/**
* @brief Generate a Software Interrupt on IO5VM EXTI Line.
* @retval None
*/
#define __HAL_PWR_IO5VM_EXTI_GENERATE_SWIT() SET_BIT(EXTI->SWIER3, PWR_EXTI_LINE_PVM_VDDIO5)
/**
* @brief Check whether the specified IO5VM EXTI flag is set or not.
* @retval EXTI IO5VM Line Status.
*/
#define __HAL_PWR_IO5VM_EXTI_GET_FLAG() ((EXTI->RPR3 | EXTI->FPR3) & PWR_EXTI_LINE_PVM_VDDIO5)
/**
* @brief Clear the IO5VM interrupt Rising flag.
* @retval None.
*/
#define __HAL_PWR_IO5VM_EXTI_CLEAR_RISING_FLAG() WRITE_REG(EXTI->RPR3, PWR_EXTI_LINE_PVM_VDDIO5)
/**
* @brief Clear the IO5VM interrupt Falling flag.
* @retval None
*/
#define __HAL_PWR_IO5VM_EXTI_CLEAR_FALLING_FLAG() WRITE_REG(EXTI->FPR3, PWR_EXTI_LINE_PVM_VDDIO5)
/**
* @brief Enable the ADCVM Extended Interrupt Line.
* @retval None.
*/
#define __HAL_PWR_ADCVM_EXTI_ENABLE_IT() SET_BIT(EXTI->IMR3, PWR_EXTI_LINE_PVM_VDDA)
/**
* @brief Disable the ADCVM Extended Interrupt Line.
* @retval None.
*/
#define __HAL_PWR_ADCVM_EXTI_DISABLE_IT() CLEAR_BIT(EXTI->IMR3, PWR_EXTI_LINE_PVM_VDDA)
/**
* @brief Enable the ADCVM Event Line.
* @retval None.
*/
#define __HAL_PWR_ADCVM_EXTI_ENABLE_EVENT() SET_BIT(EXTI->EMR3, PWR_EXTI_LINE_PVM_VDDA)
/**
* @brief Disable the ADCVM Event Line.
* @retval None.
*/
#define __HAL_PWR_ADCVM_EXTI_DISABLE_EVENT() CLEAR_BIT(EXTI->EMR3, PWR_EXTI_LINE_PVM_VDDA)
/**
* @brief Enable the ADCVM Extended Interrupt Rising Trigger.
* @retval None.
*/
#define __HAL_PWR_ADCVM_EXTI_ENABLE_RISING_EDGE() SET_BIT(EXTI->RTSR3, PWR_EXTI_LINE_PVM_VDDA)
/**
* @brief Disable the ADCVM Extended Interrupt Rising Trigger.
* @retval None.
*/
#define __HAL_PWR_ADCVM_EXTI_DISABLE_RISING_EDGE() CLEAR_BIT(EXTI->RTSR3, PWR_EXTI_LINE_PVM_VDDA)
/**
* @brief Enable the ADCVM Extended Interrupt Falling Trigger.
* @retval None.
*/
#define __HAL_PWR_ADCVM_EXTI_ENABLE_FALLING_EDGE() SET_BIT(EXTI->FTSR3, PWR_EXTI_LINE_PVM_VDDA)
/**
* @brief Disable the ADCVM Extended Interrupt Falling Trigger.
* @retval None.
*/
#define __HAL_PWR_ADCVM_EXTI_DISABLE_FALLING_EDGE() CLEAR_BIT(EXTI->FTSR3, PWR_EXTI_LINE_PVM_VDDA)
/**
* @brief Enable the ADCVM Extended Interrupt Rising & Falling Trigger.
* @retval None.
*/
#define __HAL_PWR_ADCVM_EXTI_ENABLE_RISING_FALLING_EDGE() \
do \
{ \
__HAL_PWR_ADCVM_EXTI_ENABLE_RISING_EDGE(); \
__HAL_PWR_ADCVM_EXTI_ENABLE_FALLING_EDGE(); \
} while(0)
/**
* @brief Disable the ADCVM Extended Interrupt Rising & Falling Trigger.
* @retval None.
*/
#define __HAL_PWR_ADCVM_EXTI_DISABLE_RISING_FALLING_EDGE() \
do \
{ \
__HAL_PWR_ADCVM_EXTI_DISABLE_RISING_EDGE(); \
__HAL_PWR_ADCVM_EXTI_DISABLE_FALLING_EDGE(); \
} while(0)
/**
* @brief Generate a Software Interrupt on ADCVM EXTI Line.
* @retval None
*/
#define __HAL_PWR_ADCVM_EXTI_GENERATE_SWIT() SET_BIT(EXTI->SWIER3, PWR_EXTI_LINE_PVM_VDDA)
/**
* @brief Check whether the specified ADCVM EXTI flag is set or not.
* @retval EXTI ADCVM Line Status.
*/
#define __HAL_PWR_ADCVM_EXTI_GET_FLAG() ((EXTI->RPR3 | EXTI->FPR3) & PWR_EXTI_LINE_PVM_VDDA)
/**
* @brief Clear the ADCVM interrupt Rising flag.
* @retval None.
*/
#define __HAL_PWR_ADCVM_EXTI_CLEAR_RISING_FLAG() WRITE_REG(EXTI->RPR3, PWR_EXTI_LINE_PVM_VDDA)
/**
* @brief Clear the ADCVM interrupt Falling flag.
* @retval None
*/
#define __HAL_PWR_ADCVM_EXTI_CLEAR_FALLING_FLAG() WRITE_REG(EXTI->FPR3, PWR_EXTI_LINE_PVM_VDDA)
/**
* @brief Enable the VddCORE monitoring Extended Interrupt Line.
* @retval None.
*/
#define __HAL_PWR_VCOREVM_EXTI_ENABLE_IT() SET_BIT(EXTI->IMR3, PWR_EXTI_LINE_VCOREVM)
/**
* @brief Disable the VddCORE monitoring Extended Interrupt Line.
* @retval None.
*/
#define __HAL_PWR_VCOREVM_EXTI_DISABLE_IT() CLEAR_BIT(EXTI->IMR3, PWR_EXTI_LINE_VCOREVM)
/**
* @brief Enable the VddCORE monitoring Event Line.
* @retval None.
*/
#define __HAL_PWR_VCOREVM_EXTI_ENABLE_EVENT() SET_BIT(EXTI->EMR3, PWR_EXTI_LINE_VCOREVM)
/**
* @brief Disable the VddCORE monitoring Event Line.
* @retval None.
*/
#define __HAL_PWR_VCOREVM_EXTI_DISABLE_EVENT() CLEAR_BIT(EXTI->EMR3, PWR_EXTI_LINE_VCOREVM)
/**
* @brief Enable the VddCORE monitoring Extended Interrupt Rising Trigger.
* @retval None.
*/
#define __HAL_PWR_VCOREVM_EXTI_ENABLE_RISING_EDGE() SET_BIT(EXTI->RTSR3, PWR_EXTI_LINE_VCOREVM)
/**
* @brief Disable the VddCORE monitoring Extended Interrupt Rising Trigger.
* @retval None.
*/
#define __HAL_PWR_VCOREVM_EXTI_DISABLE_RISING_EDGE() CLEAR_BIT(EXTI->RTSR3, PWR_EXTI_LINE_VCOREVM)
/**
* @brief Enable the VddCORE monitoring Extended Interrupt Falling Trigger.
* @retval None.
*/
#define __HAL_PWR_VCOREVM_EXTI_ENABLE_FALLING_EDGE() SET_BIT(EXTI->FTSR3, PWR_EXTI_LINE_VCOREVM)
/**
* @brief Disable the VddCORE monitoring Extended Interrupt Falling Trigger.
* @retval None.
*/
#define __HAL_PWR_VCOREVM_EXTI_DISABLE_FALLING_EDGE() CLEAR_BIT(EXTI->FTSR3, PWR_EXTI_LINE_VCOREVM)
/**
* @brief Enable the VddCORE monitoring Extended Interrupt Rising & Falling Trigger.
* @retval None.
*/
#define __HAL_PWR_VCOREVM_EXTI_ENABLE_RISING_FALLING_EDGE() \
do \
{ \
__HAL_PWR_VCOREVM_EXTI_ENABLE_RISING_EDGE(); \
__HAL_PWR_VCOREVM_EXTI_ENABLE_FALLING_EDGE(); \
} while(0)
/**
* @brief Disable the VddCORE monitoring Extended Interrupt Rising & Falling Trigger.
* @retval None.
*/
#define __HAL_PWR_VCOREVM_EXTI_DISABLE_RISING_FALLING_EDGE() \
do \
{ \
__HAL_PWR_VCOREVM_EXTI_DISABLE_RISING_EDGE(); \
__HAL_PWR_VCOREVM_EXTI_DISABLE_FALLING_EDGE(); \
} while(0)
/**
* @brief Generate a Software Interrupt on VddCORE monitoring EXTI Line.
* @retval None
*/
#define __HAL_PWR_VCOREVM_EXTI_GENERATE_SWIT() SET_BIT(EXTI->SWIER3, PWR_EXTI_LINE_VCOREVM)
/**
* @brief Check whether the specified VddCORE monitoring EXTI flag is set or not.
* @retval EXTI VddCORE monitoring Line Status.
*/
#define __HAL_PWR_VCOREVM_EXTI_GET_FLAG() ((EXTI->RPR3 | EXTI->FPR3) & PWR_EXTI_LINE_VCOREVM)
/**
* @brief Clear the VddCORE monitoring interrupt Rising flag.
* @retval None.
*/
#define __HAL_PWR_VCOREVM_EXTI_CLEAR_RISING_FLAG() WRITE_REG(EXTI->RPR3, PWR_EXTI_LINE_VCOREVM)
/**
* @brief Clear the VddCORE monitoring interrupt Falling flag.
* @retval None
*/
#define __HAL_PWR_VCOREVM_EXTI_CLEAR_FALLING_FLAG() WRITE_REG(EXTI->FPR3, PWR_EXTI_LINE_VCOREVM)
/**
* @}
*/
/* Exported functions --------------------------------------------------------*/
/** @addtogroup PWREx_Exported_Functions PWR Extended Exported Functions
* @{
*/
/** @addtogroup PWREx_Exported_Functions_Group1 Power Supply Control Functions
* @{
*/
/* Power supply control functions */
HAL_StatusTypeDef HAL_PWREx_ConfigSupply(uint32_t SupplySource);
uint32_t HAL_PWREx_GetSupplyConfig(void);
/* Power voltage scaling functions */
HAL_StatusTypeDef HAL_PWREx_ControlVoltageScaling(uint32_t VoltageScaling);
uint32_t HAL_PWREx_GetVoltageRange(void);
void HAL_PWREx_ControlStopModeVoltageScaling(uint32_t VoltageScaling);
uint32_t HAL_PWREx_GetStopModeVoltageRange(void);
/** @addtogroup PWREx_Exported_Functions_Group2 Wakeup Pins configuration functions
* @{
*/
/* Wakeup Pins control functions */
void HAL_PWREx_EnableWakeUpPin(const PWREx_WakeupPinTypeDef *sPinParams);
/**
* @}
*/
/** @addtogroup PWREx_Exported_Functions_Group3 Memories Retention Functions
* @{
*/
void HAL_PWREx_EnableBkupRAMRetention(void);
void HAL_PWREx_DisableBkupRAMRetention(void);
void HAL_PWREx_EnableTCMRetention(void);
void HAL_PWREx_DisableTCMRetention(void);
void HAL_PWREx_EnableTCMFLXRetention(void);
void HAL_PWREx_DisableTCMFLXRetention(void);
/**
* @}
*/
/** @addtogroup PWREx_Exported_Functions_Group4 Low Power Control Functions
* @{
*/
void HAL_PWREx_SetPulseLow(uint32_t Pulselowtime);
uint32_t HAL_PWREx_GetPulseLow(void);
void HAL_PWREx_EnableSMPSPWM(void);
void HAL_PWREx_DisableSMPSPWM(void);
void HAL_PWREx_EnablePullDownOutput(void);
void HAL_PWREx_DisablePullDownOutput(void);
/**
* @}
*/
/** @addtogroup PWREx_Exported_Functions_Group5 Power Monitoring functions
* @{
*/
/* Power VBAT/Temperature monitoring functions */
void HAL_PWREx_EnableMonitoring(void);
void HAL_PWREx_DisableMonitoring(void);
uint32_t HAL_PWREx_GetTemperatureLevel(void);
uint32_t HAL_PWREx_GetVBATLevel(void);
void HAL_PWREx_EnableVDDCOREMonitoring(void);
void HAL_PWREx_DisableVDDCOREMonitoring(void);
void HAL_PWREx_ConfigVDDCOREVM(const PWR_VddCOREVMTypeDef *pConfigVddCOREVM);
uint32_t HAL_PWREx_GetVDDCORELevel(void);
void HAL_PWREx_ConfigVddIORange(uint32_t VddIOPort, uint32_t VoltageRange);
uint32_t HAL_PWREx_GetVddIORange(uint32_t VddIOPort);
void HAL_PWREx_EnableVddIO4RangeSTBY(void);
void HAL_PWREx_DisableVddIO4RangeSTBY(void);
void HAL_PWREx_EnableVddIO5RangeSTBY(void);
void HAL_PWREx_DisableVddIO5RangeSTBY(void);
void HAL_PWREx_EnableVddUSB(void);
void HAL_PWREx_DisableVddUSB(void);
void HAL_PWREx_EnableVddIO2(void);
void HAL_PWREx_DisableVddIO2(void);
void HAL_PWREx_EnableVddIO3(void);
void HAL_PWREx_DisableVddIO3(void);
void HAL_PWREx_EnableVddIO4(void);
void HAL_PWREx_DisableVddIO4(void);
void HAL_PWREx_EnableVddIO5(void);
void HAL_PWREx_DisableVddIO5(void);
void HAL_PWREx_EnableVddA(void);
void HAL_PWREx_DisableVddA(void);
void HAL_PWREx_EnableVddUSBVMEN(void);
void HAL_PWREx_DisableVddUSBVMEN(void);
void HAL_PWREx_EnableVddIO2VMEN(void);
void HAL_PWREx_DisableVddIO2VMEN(void);
void HAL_PWREx_EnableVddIO3VMEN(void);
void HAL_PWREx_DisableVddIO3VMEN(void);
void HAL_PWREx_EnableVddIO4VMEN(void);
void HAL_PWREx_DisableVddIO4VMEN(void);
void HAL_PWREx_EnableVddIO5VMEN(void);
void HAL_PWREx_DisableVddIO5VMEN(void);
void HAL_PWREx_EnableVddAVMEN(void);
void HAL_PWREx_DisableVddAVMEN(void);
HAL_StatusTypeDef HAL_PWREx_ConfigPVM(const PWR_PVMTypeDef *pConfigPVM);
void HAL_PWREx_PVD_PVM_IRQHandler(void);
void HAL_PWREx_VDDCORE_Rising_Callback(void);
void HAL_PWREx_VDDCORE_Falling_Callback(void);
void HAL_PWREx_USBVM_Rising_Callback(void);
void HAL_PWREx_USBVM_Falling_Callback(void);
void HAL_PWREx_IO2VM_Rising_Callback(void);
void HAL_PWREx_IO2VM_Falling_Callback(void);
void HAL_PWREx_IO3VM_Rising_Callback(void);
void HAL_PWREx_IO3VM_Falling_Callback(void);
void HAL_PWREx_IO4VM_Rising_Callback(void);
void HAL_PWREx_IO4VM_Falling_Callback(void);
void HAL_PWREx_IO5VM_Rising_Callback(void);
void HAL_PWREx_IO5VM_Falling_Callback(void);
void HAL_PWREx_ADCVM_Rising_Callback(void);
void HAL_PWREx_ADCVM_Falling_Callback(void);
/**
* @}
*/
/**
* @}
*/
/* Private types -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private constants ---------------------------------------------------------*/
/** @defgroup PWREx_VDDCOREVM_EXTI PWR VddCORE monitoring extended interrupts and event lines defines
* @{
*/
#define PWR_EXTI_LINE_VCOREVM EXTI_IMR3_IM68 /*!< VddCORE monitoring EXTI Line */
/**
* @}
*/
/** @defgroup PWREx_PVM_EXTI PWR PVM extended interrupts and event lines defines
* @{
*/
#define PWR_EXTI_LINE_PVM_VDDIO2 EXTI_IMR3_IM69 /*!< PVM VDDIO2 EXTI Line */
#define PWR_EXTI_LINE_PVM_VDDIO3 EXTI_IMR3_IM70 /*!< PVM VDDIO3 EXTI Line */
#define PWR_EXTI_LINE_PVM_VDDIO4 EXTI_IMR3_IM71 /*!< PVM VDDIO4 EXTI Line */
#define PWR_EXTI_LINE_PVM_VDDIO5 EXTI_IMR3_IM72 /*!< PVM VDDIO5 EXTI Line */
#define PWR_EXTI_LINE_PVM_VDDUSB EXTI_IMR3_IM73 /*!< PVM VDD USB EXTI Line */
#define PWR_EXTI_LINE_PVM_VDDA EXTI_IMR3_IM74 /*!< PVM VDD ADC EXTI Line */
/**
* @}
*/
/** @defgroup PWREx_PVM_Type PWR Extended Voltage Monitoring Type
* @{
*/
#define PWR_VDDUSB_VM (0U) /*!< Independent USB voltage monitor */
#define PWR_VDDIO2_VM (1U) /*!< Independent VDDIO2 voltage monitor */
#define PWR_VDDIO3_VM (2U) /*!< Independent VDDIO3 voltage monitor */
#define PWR_VDDIO4_VM (3U) /*!< Independent VDDIO4 voltage monitor */
#define PWR_VDDIO5_VM (4U) /*!< Independent VDDIO5 voltage monitor */
#define PWR_VDDA_VM (5U) /*!< Independent VDDA voltage monitor */
/**
* @}
*/
/* Private macros ------------------------------------------------------------*/
/** @defgroup PWREx_Private_Macros PWREx Private Macros
* @{
*/
/** @defgroup PWREx_IS_PWR_Definitions PWREx Private macros to check input parameters
* @{
*/
/* Check PWR regulator configuration parameter */
#define IS_PWR_SUPPLY(__SOURCE__) (((__SOURCE__) == PWR_SMPS_SUPPLY) ||\
((__SOURCE__) == PWR_EXTERNAL_SOURCE_SUPPLY))
/* Check low power regulator parameter */
#define IS_PWR_REGULATOR(__REGULATOR__) ((__REGULATOR__) == PWR_MAINREGULATOR_ON)
/* Check voltage scale level parameter */
#define IS_PWR_REGULATOR_VOLTAGE(__VOLTAGE__) (((__VOLTAGE__) == PWR_REGULATOR_VOLTAGE_SCALE0) || \
((__VOLTAGE__) == PWR_REGULATOR_VOLTAGE_SCALE1))
/* Check PWR regulator configuration in STOP mode parameter */
#define IS_PWR_STOP_MODE_REGULATOR_VOLTAGE(__VOLTAGE__) (((__VOLTAGE__) == PWR_REGULATOR_STOP_VOLTAGE_SCALE3) ||\
((__VOLTAGE__) == PWR_REGULATOR_STOP_VOLTAGE_SCALE5))
/* Check PWR pulse low time configuration parameter */
#define IS_PWR_PULSE_LOW_TIME(__LOWTIME__) ((__LOWTIME__) <= 31U)
/* Check VDDCORE voltage detector low-level parameter */
#define IS_PWR_VDDCOREVM_LEVEL(__LEVEL__) (((__LEVEL__) == PWR_VDDCORE_THRESHOLD_VOS0) || \
((__LEVEL__) == PWR_VDDCORE_THRESHOLD_VOS1))
/* Check VddCORE VM mode check parameter */
#define IS_PWR_VDDCOREVM_MODE(__MODE__) \
(((__MODE__) == PWR_VDDCOREVM_MODE_NORMAL) ||\
((__MODE__) == PWR_VDDCOREVM_MODE_IT_RISING) ||\
((__MODE__) == PWR_VDDCOREVM_MODE_IT_FALLING) ||\
((__MODE__) == PWR_VDDCOREVM_MODE_IT_RISING_FALLING) ||\
((__MODE__) == PWR_VDDCOREVM_MODE_EVENT_RISING) ||\
((__MODE__) == PWR_VDDCOREVM_MODE_EVENT_FALLING) ||\
((__MODE__) == PWR_VDDCOREVM_MODE_EVENT_RISING_FALLING))
/* Check PVM type parameter */
#define IS_PWR_PVM_TYPE(__TYPE__) \
(((__TYPE__) == PWR_VDDUSB_VM) ||\
((__TYPE__) == PWR_VDDIO2_VM) ||\
((__TYPE__) == PWR_VDDIO3_VM) ||\
((__TYPE__) == PWR_VDDIO4_VM) ||\
((__TYPE__) == PWR_VDDIO5_VM) ||\
((__TYPE__) == PWR_VDDA_VM))
/* Check PVM mode check parameter */
#define IS_PWR_PVM_MODE(__MODE__) \
(((__MODE__) == PWR_PVM_MODE_NORMAL) ||\
((__MODE__) == PWR_PVM_MODE_IT_RISING) ||\
((__MODE__) == PWR_PVM_MODE_IT_FALLING) ||\
((__MODE__) == PWR_PVM_MODE_IT_RISING_FALLING) ||\
((__MODE__) == PWR_PVM_MODE_EVENT_RISING) ||\
((__MODE__) == PWR_PVM_MODE_EVENT_FALLING) ||\
((__MODE__) == PWR_PVM_MODE_EVENT_RISING_FALLING))
/* Check the VddIO parameter */
#define IS_PWR_VDDIO(__VDDIO__) (((__VDDIO__) == PWR_VDDIO) || \
((__VDDIO__) == PWR_VDDIO2) || \
((__VDDIO__) == PWR_VDDIO3) || \
((__VDDIO__) == PWR_VDDIO4) || \
((__VDDIO__) == PWR_VDDIO5))
/* Check the VddIO Range parameter */
#define IS_PWR_VDDIO_RANGE(__RANGE__) (((__RANGE__) == PWR_VDDIO_RANGE_3V3) || \
((__RANGE__) == PWR_VDDIO_RANGE_1V8))
/**
* @}
*/
/**
* @}
*/
/**
* @}
*/
/**
* @}
*/
/**
* @}
*/
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* STM32N6xx_HAL_PWR_EX_H */