Added STM32F4xx StdPeriph Driver sources
[fw/stlink] / example / stm32f4 / STM32F4xx_StdPeriph_Driver / inc / stm32f4xx_pwr.h
1 /**
2   ******************************************************************************
3   * @file    stm32f4xx_pwr.h
4   * @author  MCD Application Team
5   * @version V1.0.0RC1
6   * @date    25-August-2011
7   * @brief   This file contains all the functions prototypes for the PWR firmware 
8   *          library.
9   ******************************************************************************
10   * @attention
11   *
12   * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
13   * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE
14   * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY
15   * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING
16   * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE
17   * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
18   *
19   * <h2><center>&copy; COPYRIGHT 2011 STMicroelectronics</center></h2>
20   ******************************************************************************
21   */ 
22
23 /* Define to prevent recursive inclusion -------------------------------------*/
24 #ifndef __STM32F4xx_PWR_H
25 #define __STM32F4xx_PWR_H
26
27 #ifdef __cplusplus
28  extern "C" {
29 #endif
30
31 /* Includes ------------------------------------------------------------------*/
32 #include "stm32f4xx.h"
33
34 /** @addtogroup STM32F4xx_StdPeriph_Driver
35   * @{
36   */
37
38 /** @addtogroup PWR
39   * @{
40   */ 
41
42 /* Exported types ------------------------------------------------------------*/
43 /* Exported constants --------------------------------------------------------*/
44
45 /** @defgroup PWR_Exported_Constants
46   * @{
47   */ 
48
49 /** @defgroup PWR_PVD_detection_level 
50   * @{
51   */ 
52
53 #define PWR_PVDLevel_0                  PWR_CR_PLS_LEV0
54 #define PWR_PVDLevel_1                  PWR_CR_PLS_LEV1
55 #define PWR_PVDLevel_2                  PWR_CR_PLS_LEV2
56 #define PWR_PVDLevel_3                  PWR_CR_PLS_LEV3
57 #define PWR_PVDLevel_4                  PWR_CR_PLS_LEV4
58 #define PWR_PVDLevel_5                  PWR_CR_PLS_LEV5
59 #define PWR_PVDLevel_6                  PWR_CR_PLS_LEV6
60 #define PWR_PVDLevel_7                  PWR_CR_PLS_LEV7
61
62 #define IS_PWR_PVD_LEVEL(LEVEL) (((LEVEL) == PWR_PVDLevel_0) || ((LEVEL) == PWR_PVDLevel_1)|| \
63                                  ((LEVEL) == PWR_PVDLevel_2) || ((LEVEL) == PWR_PVDLevel_3)|| \
64                                  ((LEVEL) == PWR_PVDLevel_4) || ((LEVEL) == PWR_PVDLevel_5)|| \
65                                  ((LEVEL) == PWR_PVDLevel_6) || ((LEVEL) == PWR_PVDLevel_7))
66 /**
67   * @}
68   */
69
70   
71 /** @defgroup PWR_Regulator_state_in_STOP_mode 
72   * @{
73   */
74
75 #define PWR_Regulator_ON                ((uint32_t)0x00000000)
76 #define PWR_Regulator_LowPower          PWR_CR_LPDS
77 #define IS_PWR_REGULATOR(REGULATOR) (((REGULATOR) == PWR_Regulator_ON) || \
78                                      ((REGULATOR) == PWR_Regulator_LowPower))
79 /**
80   * @}
81   */
82
83 /** @defgroup PWR_STOP_mode_entry 
84   * @{
85   */
86
87 #define PWR_STOPEntry_WFI               ((uint8_t)0x01)
88 #define PWR_STOPEntry_WFE               ((uint8_t)0x02)
89 #define IS_PWR_STOP_ENTRY(ENTRY) (((ENTRY) == PWR_STOPEntry_WFI) || ((ENTRY) == PWR_STOPEntry_WFE))
90  
91 /**
92   * @}
93   */
94
95 /** @defgroup PWR_Flag 
96   * @{
97   */
98
99 #define PWR_FLAG_WU                     PWR_CSR_WUF
100 #define PWR_FLAG_SB                     PWR_CSR_SBF
101 #define PWR_FLAG_PVDO                   PWR_CSR_PVDO
102 #define PWR_FLAG_BRR                    PWR_CSR_BRR
103 #define PWR_FLAG_REGRDY                 PWR_CSR_REGRDY
104
105 #define IS_PWR_GET_FLAG(FLAG) (((FLAG) == PWR_FLAG_WU) || ((FLAG) == PWR_FLAG_SB) || \
106                                ((FLAG) == PWR_FLAG_PVDO) || ((FLAG) == PWR_FLAG_BRR) || \
107                                ((FLAG) == PWR_FLAG_REGRDY))
108
109 #define IS_PWR_CLEAR_FLAG(FLAG) (((FLAG) == PWR_FLAG_WU) || ((FLAG) == PWR_FLAG_SB))
110 /**
111   * @}
112   */
113
114 /**
115   * @}
116   */
117
118 /* Exported macro ------------------------------------------------------------*/
119 /* Exported functions --------------------------------------------------------*/ 
120
121 /* Function used to set the PWR configuration to the default reset state ******/ 
122 void PWR_DeInit(void);
123
124 /* Backup Domain Access function **********************************************/ 
125 void PWR_BackupAccessCmd(FunctionalState NewState);
126
127 /* PVD configuration functions ************************************************/ 
128 void PWR_PVDLevelConfig(uint32_t PWR_PVDLevel);
129 void PWR_PVDCmd(FunctionalState NewState);
130
131 /* WakeUp pins configuration functions ****************************************/ 
132 void PWR_WakeUpPinCmd(FunctionalState NewState);
133
134 /* Backup Regulator configuration functions ***********************************/ 
135 void PWR_BackupRegulatorCmd(FunctionalState NewState);
136
137 /* Performance Mode and FLASH Power Down configuration functions **************/ 
138 void PWR_HighPerformanceModeCmd(FunctionalState NewState);
139 void PWR_FlashPowerDownCmd(FunctionalState NewState);
140
141 /* Low Power modes configuration functions ************************************/ 
142 void PWR_EnterSTOPMode(uint32_t PWR_Regulator, uint8_t PWR_STOPEntry);
143 void PWR_EnterSTANDBYMode(void);
144
145 /* Flags management functions *************************************************/ 
146 FlagStatus PWR_GetFlagStatus(uint32_t PWR_FLAG);
147 void PWR_ClearFlag(uint32_t PWR_FLAG);
148
149 #ifdef __cplusplus
150 }
151 #endif
152
153 #endif /* __STM32F4xx_PWR_H */
154
155 /**
156   * @}
157   */
158
159 /**
160   * @}
161   */
162
163 /******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/