gr55xx_pwr.h
Go to the documentation of this file.
1 /**
2 *****************************************************************************************
3 *
4 * @file gr55xx_pwr.h
5 *
6 * @brief GR55XX Platform Power Manager Module API
7 *
8 *****************************************************************************************
9 * @attention
10 #####Copyright (c) 2019 GOODIX
11 All rights reserved.
12
13 Redistribution and use in source and binary forms, with or without
14 modification, are permitted provided that the following conditions are met:
15 * Redistributions of source code must retain the above copyright
16 notice, this list of conditions and the following disclaimer.
17 * Redistributions in binary form must reproduce the above copyright
18 notice, this list of conditions and the following disclaimer in the
19 documentation and/or other materials provided with the distribution.
20 * Neither the name of GOODIX nor the names of its contributors may be used
21 to endorse or promote products derived from this software without
22 specific prior written permission.
23
24 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
25 AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26 IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27 ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS AND CONTRIBUTORS BE
28 LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
29 CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
30 SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
31 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
32 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
33 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
34 POSSIBILITY OF SUCH DAMAGE.
35 *****************************************************************************************
36 */
37
38 /**
39 * @addtogroup SYSTEM
40 * @{
41 */
42
43 /**
44 * @addtogroup PWR Power Manager
45 * @{
46 * @brief Definitions and prototypes for the Power Manager interface.
47 */
48
49
50 #ifndef __GR55XX_PWR_H_
51 #define __GR55XX_PWR_H_
52
53 #include <stdint.h>
54 #include <stdbool.h>
55 #include <stdio.h>
56
57 #include "system_gr55xx.h"
58
59 /**
60 * @defgroup GR55XX_PWR_TYPEDEF Typedefs
61 * @{
62 */
63
64 /**@brief power manager setting parameter.
65 * Use pwr_mgmt_var_set to transfer the parameters in the structure to PMU,
66 * and then the pwr_mgmt_mode_set function will use the new parameters for
67 * power management.
68 * Note that this is an advanced API, the wrong setting of parameters may
69 * lead to abnormal power management, so please use it carefully.
70 */
71 typedef struct
72 {
73 uint32_t pwr_mgmt_app_timer_thrd; /**< App timer threshold. */
74 uint32_t pwr_mgmt_ble_core_thrd; /**< BLE timer threshold. */
75 uint32_t pwr_mgmt_rtc_timer_thrd; /**< RTC timer threshold. */
76 } pwr_mgmt_var_box_t;
77
78 /**@brief power manager boot type. */
79 typedef enum
80 {
81 COLD_BOOT = 0, /**< Cold boot state. */
82 WARM_BOOT, /**< Warm boot state. */
83 } boot_mode_t;
84
85 /**@brief power manager model. */
86 typedef enum
87 {
88 PMR_MGMT_ACTIVE_MODE = 0x0, /**< Full speed state. */
89 PMR_MGMT_IDLE_MODE, /**< Idle state. */
90 PMR_MGMT_SLEEP_MODE, /**< Deep sleep state. */
91 } pwr_mgmt_mode_t;
92
93 /**@brief power manager device work state. */
94 typedef enum
95 {
96 DEVICE_BUSY = 0x0, /**< Device busy state. */
97 DEVICE_IDLE, /**< Device idle state. */
98 } pwr_mgmt_dev_state_t;
99
100 /**@brief power manager app timer work state. */
101 typedef enum
102 {
103 EVENT_APP_TIMER_START = 0, /**< App-timer start state. */
104 EVENT_APP_TIMER_STOP, /**< App-timer stop state. */
105 } notify_timer_event_t;
106
107 /**@brief PMU Tracking*/
108 enum
109 {
110 TRC_PWR_WFE_MODE = 0, /**< WFE mode. */
111 TRC_PWR_DSLEEP_MODE, /**< Deep sleep mode. */
112 TRC_PWR_ACTIVE_MODE, /**< Active mode. */
113 TRC_PWR_BLE_RET_DSLEEP, /**< BLE return deep sleep. */
114 TRC_PWR_APP_TIMER_REFUSE, /**< App timer refuse. */
115 TRC_PWR_APP_TIMER_PASS, /**< App timer pass. */
116 TRC_PWR_BLE_TIMER_PASS, /**< BLE timer pass. */
117 };
118
119 /**@brief parameter configuration table. */
120 typedef struct
121 {
122 uint16_t pwr_dur; /**< Duration. */
123 uint16_t pwr_ext; /**< External wake-up. */
124 uint16_t pwr_osc; /**< OSC. */
125 uint8_t pwr_delay_hslot; /**< Delay half slot. */
126 uint16_t pwr_delay_hus; /**< Delay half us. */
127 uint16_t pwr_push_hus; /**< Push half us. */
128 uint32_t pwr_timer_ths; /**< APP timer threshold. */
129 uint32_t pwr_ble_ths; /**< BLE timer threshold. */
130 } pwr_table_t;
131
132 /**@brief Trace function type. */
133 typedef void (*trace_func_t)(uint8_t);
134
135 /**@brief Peripheral function type. */
136 typedef void (*periph_func_t)(void);
137
138 /**@brief Before sleep function type. */
139 typedef void (*pwr_before_sleep_func_t)(void);
140
141 /**@brief Device check function type. */
142 typedef pwr_mgmt_dev_state_t (*pwr_dev_check_func_t)(void);
143
144 /**@brief function registered to dump io configuration. */
145 typedef void (*io_dump_func_t)(void);
146
147 /**@brief mem check process type. */
148 typedef void (*mem_check_proc_t)(void);
149
150 /**@brief pwr table. */
151 extern pwr_table_t pwr_table[];
152
153 /** @} */
154
155 /** @addtogroup GR55XX_PWR_FUNCTIONS Functions
156 * @{ */
157 /**
158 *****************************************************************************************
159 * @brief This function allows ARM to enter deep sleep mode, but users should not use this
160 * function directly.
161 * Note that this function is only available in environments where non-RTOS is used,
162 * and that users can only execute it while in main.c.
163 * @retval : pwr_mgmt_mode_t
164 *****************************************************************************************
165 */
166 pwr_mgmt_mode_t pwr_mgmt_shutdown(void);
167
168 /**
169 ****************************************************************************************
170 * @brief Get the current boot mode.
171 * @retval : cold boot or warm boot.
172 ****************************************************************************************
173 */
174 boot_mode_t pwr_mgmt_get_wakeup_flag(void);
175
176 /**
177 ****************************************************************************************
178 * @brief Mark the mode of next boot, cold boot or warm boot.
179 * @param[in] boot_mode : cold boot or warm boot.
180 * @retval : void
181 ****************************************************************************************
182 */
183 void pwr_mgmt_set_wakeup_flag(boot_mode_t boot_mode);
184
185 /**
186 ****************************************************************************************
187 * @brief Set the specified sleep mode. When the setting is completed, the system will
188 * automatically enter the specified sleep mode through the strategy.
189 * @param[in] pm_mode : sleep level
190 * @retval : void
191 ****************************************************************************************
192 */
193 void pwr_mgmt_mode_set(pwr_mgmt_mode_t pm_mode);
194
195 /**
196 ****************************************************************************************
197 * @brief Get the specified sleep mode.
198 * @retval : pwr_mgmt_mode_t
199 ****************************************************************************************
200 */
201 pwr_mgmt_mode_t pwr_mgmt_mode_get(void);
202
203 /**
204 ****************************************************************************************
205 * @brief Get the power state of baseband.
206 * @retval : pwr_mgmt_mode_t
207 ****************************************************************************************
208 */
209 pwr_mgmt_mode_t pwr_mgmt_baseband_state_get(void);
210
211 /**
212 ****************************************************************************************
213 * @brief Get the state of extenal timer.
214 * @retval : pwr_mgmt_mode_t
215 ****************************************************************************************
216 */
217 pwr_mgmt_mode_t pwr_mgmt_check_ext_timer(void);
218
219
220
221 /**
222 ****************************************************************************************
223 * @brief Sleep Policy Scheduling Function.
224 * Note that:
225 * 1. This function shall only be used in non-RTOS environments;
226 * 2. This function shall only be used in main function;
227 * 3. Local variables shall not be used in main function when this api used.
228 * @retval : void
229 ****************************************************************************************
230 */
231 void pwr_mgmt_schedule(void);
232
233 /**
234 ****************************************************************************************
235 * @brief Wake the BLE core via an external request.
236 * @return status
237 * @retval The status of the requested operation.
238 *
239 * false, if the BLE core is not sleeping.
240 * true, if the BLE core was woken up successfully.
241 *
242 ****************************************************************************************
243 */
244 bool pwr_mgmt_ble_wakeup(void);
245
246
247 /**
248 ****************************************************************************************
249 * @brief Check whether there are ble events in the queue, and if so, handle them immediately.
250 * @retval : void
251 ****************************************************************************************
252 */
253 void pwr_mgmt_check_ble_event(void);
254
255
256 /**
257 ****************************************************************************************
258 * @brief This function is used to push startup information in app timer.
259 * This information will optimize power management strategy.
260 * Note that this function is an advanced API and users should not use it directly.
261 * @param[in] timer_event : EVENT_APP_TIMER_START or EVENT_APP_TIMER_STOP
262 * @retval : void
263 ****************************************************************************************
264 */
265 void pwr_mgmt_notify_timer_event(notify_timer_event_t timer_event);
266
267 /**
268 ****************************************************************************************
269 * @brief Query the sleep mode that the current system can access.
270 * @retval : void
271 ****************************************************************************************
272 */
273 pwr_mgmt_mode_t pwr_mgmt_get_sleep_mode(void);
274
275
276 /**
277 ****************************************************************************************
278 * @brief Update wakeup param.
279 * @retval : void
280 ****************************************************************************************
281 */
282 void pwr_mgmt_update_wkup_param(void);
283
284 /**
285 ****************************************************************************************
286 * @brief Execution of this function allows ARM to enter the WFE state and exit the WFE
287 * state when an event or interrupt occurs.
288 * @retval : void
289 ****************************************************************************************
290 */
291 void pwr_mgmt_wfe_sleep(void);
292
293 /**
294 ****************************************************************************************
295 * @brief Execution of this function allows ARM to enter the ultra sleep state and wakeup
296 * the chip when an event occurs.
297 * @param time_ms : Specifies the wake-up time during ultra sleep. If time_ms is equal to 0,
298 then sleep timer will not be enabled.
299 This parameter must be a number between min_value = 0 and max_value = 131071
300 * @retval : void
301 ****************************************************************************************
302 */
303 void pwr_mgmt_ultra_sleep(uint32_t time_ms);
304
305 /**
306 ****************************************************************************************
307 * @brief PMU Initialization Function.
308 * @param p_pwr_table : PMU parameter configuration table.
309 * @param sys_clk : the clock of system
310 * @return void
311 ****************************************************************************************
312 */
313 void pwr_mgmt_init( pwr_table_t *p_pwr_table, mcu_clock_type_t sys_clk);
314
315 /**
316 ****************************************************************************************
317 * @brief Peripheral Controller Initialization Register interface.
318 * @param p_periph_init : the pointer of device init function.
319 * @return void
320 ****************************************************************************************
321 */
322 void pwr_mgmt_dev_init(periph_func_t p_periph_init);
323
324 /**
325 ****************************************************************************************
326 * @brief Device config resume interface.
327 * @return void
328 ****************************************************************************************
329 */
330 void pwr_mgmt_dev_resume(void);
331
332 /**
333 ****************************************************************************************
334 * @brief Device config suspend interface.
335 * @return void
336 ****************************************************************************************
337 */
338 pwr_mgmt_dev_state_t pwr_mgmt_dev_suspend(void);
339
340 /**
341 ****************************************************************************************
342 * @brief Mem state control under deep sleep & work state.
343 * @param mem_sleep_state : control in deep sleep.
344 * @param mem_work_state : control in work state.
345 * @return void
346 ****************************************************************************************
347 */
348 void pwr_mgmt_mem_ctl_set(uint32_t mem_sleep_state, uint32_t mem_work_state);
349
350 /**
351 ****************************************************************************************
352 * @brief Set PMU callback function.
353 * @param dev_check_fun : Device check callback function.
354 * @param before_sleep_fun : Pre-execution callback function for deep sleep.
355 * @return void
356 ****************************************************************************************
357 */
358 void pwr_mgmt_set_callback(pwr_dev_check_func_t dev_check_fun, pwr_before_sleep_func_t before_sleep_fun);
359
360 /**
361 ****************************************************************************************
362 * @brief Set the wakeup source.
363 * @param[in] wakeup_source :
364 * PWR_WKUP_COND_EXT
365 * PWR_WKUP_COND_TIMER
366 * PWR_WKUP_COND_BLE
367 * PWR_WKUP_COND_CALENDAR
368 * PWR_WKUP_COND_BOD_FEDGE
369 * PWR_WKUP_COND_MSIO_COMP
370 * @retval : void
371 ****************************************************************************************
372 */
373 void pwr_mgmt_wakeup_source_setup(uint32_t wakeup_source);
374
375 /**
376 ****************************************************************************************
377 * @brief Clear the wakeup source.
378 * @param[in] wakeup_source :
379 * PWR_WKUP_COND_EXT
380 * PWR_WKUP_COND_TIMER
381 * PWR_WKUP_COND_BLE
382 * PWR_WKUP_COND_CALENDAR
383 * PWR_WKUP_COND_BOD_FEDGE
384 * PWR_WKUP_COND_MSIO_COMP
385 * @retval : void
386 ****************************************************************************************
387 */
388 void pwr_mgmt_wakeup_source_clear(uint32_t wakeup_source);
389
390 /**
391 ****************************************************************************************
392 * @brief Save context function.
393 * @retval : void
394 ****************************************************************************************
395 */
396 void pwr_mgmt_save_context(void);
397
398 /**
399 ****************************************************************************************
400 * @brief Load context function.
401 * @retval : void
402 ****************************************************************************************
403 */
404 void pwr_mgmt_load_context(void);
405
406 /**
407 ****************************************************************************************
408 * @brief Disable nvic irq.
409 * @retval : void
410 ****************************************************************************************
411 */
412 void pwr_mgmt_disable_nvic_irq(void);
413
414 /**
415 ****************************************************************************************
416 * @brief Enable nvic irq.
417 * @retval : void
418 ****************************************************************************************
419 */
420 void pwr_mgmt_enable_nvic_irq(void);
421
422 /**
423 ****************************************************************************************
424 * @brief Check nvic irq.
425 * @retval : void
426 ****************************************************************************************
427 */
428 bool pwr_mgmt_check_pend_irq(void);
429
430 /**
431 ****************************************************************************************
432 * @brief Trace function register.
433 * @param[in] trace_func: Trace function.
434 * @retval : void
435 ****************************************************************************************
436 */
437 void pwr_mgmt_register_trace_func(trace_func_t trace_func);
438
439 /**
440 ****************************************************************************************
441 * @brief function registered to dump io configuration.
442 * @retval :
443 ****************************************************************************************
444 */
445 void pwr_mgmt_register_io_dump_func(io_dump_func_t dump_func);
446
447 /** @} */
448
449 #endif
450 /** @} */
451 /** @} */
pwr_mgmt_ble_wakeup
bool pwr_mgmt_ble_wakeup(void)
Wake the BLE core via an external request.
io_dump_func_t
void(* io_dump_func_t)(void)
function registered to dump io configuration.
Definition: gr55xx_pwr.h:145
pwr_table_t::pwr_osc
uint16_t pwr_osc
OSC.
Definition: gr55xx_pwr.h:124
TRC_PWR_BLE_RET_DSLEEP
@ TRC_PWR_BLE_RET_DSLEEP
BLE return deep sleep.
Definition: gr55xx_pwr.h:113
pwr_table_t::pwr_ble_ths
uint32_t pwr_ble_ths
BLE timer threshold.
Definition: gr55xx_pwr.h:129
pwr_mgmt_get_sleep_mode
pwr_mgmt_mode_t pwr_mgmt_get_sleep_mode(void)
Query the sleep mode that the current system can access.
pwr_mgmt_init
void pwr_mgmt_init(pwr_table_t *p_pwr_table, mcu_clock_type_t sys_clk)
PMU Initialization Function.
pwr_mgmt_baseband_state_get
pwr_mgmt_mode_t pwr_mgmt_baseband_state_get(void)
Get the power state of baseband.
pwr_mgmt_mode_t
pwr_mgmt_mode_t
power manager model.
Definition: gr55xx_pwr.h:87
pwr_mgmt_mode_set
void pwr_mgmt_mode_set(pwr_mgmt_mode_t pm_mode)
Set the specified sleep mode.
pwr_mgmt_ultra_sleep
void pwr_mgmt_ultra_sleep(uint32_t time_ms)
Execution of this function allows ARM to enter the ultra sleep state and wakeup the chip when an even...
pwr_table
pwr_table_t pwr_table[]
pwr table.
pwr_dev_check_func_t
pwr_mgmt_dev_state_t(* pwr_dev_check_func_t)(void)
Device check function type.
Definition: gr55xx_pwr.h:142
pwr_mgmt_dev_init
void pwr_mgmt_dev_init(periph_func_t p_periph_init)
Peripheral Controller Initialization Register interface.
pwr_table_t::pwr_ext
uint16_t pwr_ext
External wake-up.
Definition: gr55xx_pwr.h:123
periph_func_t
void(* periph_func_t)(void)
Peripheral function type.
Definition: gr55xx_pwr.h:136
pwr_mgmt_load_context
void pwr_mgmt_load_context(void)
Load context function.
pwr_mgmt_var_box_t
power manager setting parameter.
Definition: gr55xx_pwr.h:72
pwr_table_t
parameter configuration table.
Definition: gr55xx_pwr.h:121
pwr_mgmt_mem_ctl_set
void pwr_mgmt_mem_ctl_set(uint32_t mem_sleep_state, uint32_t mem_work_state)
Mem state control under deep sleep & work state.
pwr_table_t::pwr_delay_hus
uint16_t pwr_delay_hus
Delay half us.
Definition: gr55xx_pwr.h:126
DEVICE_BUSY
@ DEVICE_BUSY
Device busy state.
Definition: gr55xx_pwr.h:96
boot_mode_t
boot_mode_t
power manager boot type.
Definition: gr55xx_pwr.h:80
pwr_mgmt_register_trace_func
void pwr_mgmt_register_trace_func(trace_func_t trace_func)
Trace function register.
TRC_PWR_DSLEEP_MODE
@ TRC_PWR_DSLEEP_MODE
Deep sleep mode.
Definition: gr55xx_pwr.h:111
pwr_table_t::pwr_delay_hslot
uint8_t pwr_delay_hslot
Delay half slot.
Definition: gr55xx_pwr.h:125
pwr_mgmt_check_ble_event
void pwr_mgmt_check_ble_event(void)
Check whether there are ble events in the queue, and if so, handle them immediately.
pwr_mgmt_wakeup_source_clear
void pwr_mgmt_wakeup_source_clear(uint32_t wakeup_source)
Clear the wakeup source.
pwr_mgmt_mode_get
pwr_mgmt_mode_t pwr_mgmt_mode_get(void)
Get the specified sleep mode.
pwr_mgmt_notify_timer_event
void pwr_mgmt_notify_timer_event(notify_timer_event_t timer_event)
This function is used to push startup information in app timer.
TRC_PWR_WFE_MODE
@ TRC_PWR_WFE_MODE
WFE mode.
Definition: gr55xx_pwr.h:110
TRC_PWR_APP_TIMER_REFUSE
@ TRC_PWR_APP_TIMER_REFUSE
App timer refuse.
Definition: gr55xx_pwr.h:114
pwr_mgmt_wakeup_source_setup
void pwr_mgmt_wakeup_source_setup(uint32_t wakeup_source)
Set the wakeup source.
pwr_mgmt_check_ext_timer
pwr_mgmt_mode_t pwr_mgmt_check_ext_timer(void)
Get the state of extenal timer.
notify_timer_event_t
notify_timer_event_t
power manager app timer work state.
Definition: gr55xx_pwr.h:102
pwr_mgmt_var_box_t::pwr_mgmt_rtc_timer_thrd
uint32_t pwr_mgmt_rtc_timer_thrd
RTC timer threshold.
Definition: gr55xx_pwr.h:75
WARM_BOOT
@ WARM_BOOT
Warm boot state.
Definition: gr55xx_pwr.h:82
pwr_mgmt_dev_resume
void pwr_mgmt_dev_resume(void)
Device config resume interface.
EVENT_APP_TIMER_START
@ EVENT_APP_TIMER_START
App-timer start state.
Definition: gr55xx_pwr.h:103
pwr_before_sleep_func_t
void(* pwr_before_sleep_func_t)(void)
Before sleep function type.
Definition: gr55xx_pwr.h:139
pwr_mgmt_disable_nvic_irq
void pwr_mgmt_disable_nvic_irq(void)
Disable nvic irq.
pwr_mgmt_update_wkup_param
void pwr_mgmt_update_wkup_param(void)
Update wakeup param.
pwr_table_t::pwr_timer_ths
uint32_t pwr_timer_ths
APP timer threshold.
Definition: gr55xx_pwr.h:128
pwr_mgmt_check_pend_irq
bool pwr_mgmt_check_pend_irq(void)
Check nvic irq.
pwr_mgmt_schedule
void pwr_mgmt_schedule(void)
Sleep Policy Scheduling Function.
pwr_mgmt_var_box_t::pwr_mgmt_ble_core_thrd
uint32_t pwr_mgmt_ble_core_thrd
BLE timer threshold.
Definition: gr55xx_pwr.h:74
pwr_table_t::pwr_push_hus
uint16_t pwr_push_hus
Push half us.
Definition: gr55xx_pwr.h:127
mem_check_proc_t
void(* mem_check_proc_t)(void)
mem check process type.
Definition: gr55xx_pwr.h:148
pwr_mgmt_save_context
void pwr_mgmt_save_context(void)
Save context function.
DEVICE_IDLE
@ DEVICE_IDLE
Device idle state.
Definition: gr55xx_pwr.h:97
pwr_mgmt_var_box_t::pwr_mgmt_app_timer_thrd
uint32_t pwr_mgmt_app_timer_thrd
App timer threshold.
Definition: gr55xx_pwr.h:73
PMR_MGMT_ACTIVE_MODE
@ PMR_MGMT_ACTIVE_MODE
Full speed state.
Definition: gr55xx_pwr.h:88
COLD_BOOT
@ COLD_BOOT
Cold boot state.
Definition: gr55xx_pwr.h:81
TRC_PWR_BLE_TIMER_PASS
@ TRC_PWR_BLE_TIMER_PASS
BLE timer pass.
Definition: gr55xx_pwr.h:116
pwr_mgmt_wfe_sleep
void pwr_mgmt_wfe_sleep(void)
Execution of this function allows ARM to enter the WFE state and exit the WFE state when an event or ...
pwr_mgmt_dev_state_t
pwr_mgmt_dev_state_t
power manager device work state.
Definition: gr55xx_pwr.h:95
trace_func_t
void(* trace_func_t)(uint8_t)
Trace function type.
Definition: gr55xx_pwr.h:133
pwr_mgmt_register_io_dump_func
void pwr_mgmt_register_io_dump_func(io_dump_func_t dump_func)
function registered to dump io configuration.
TRC_PWR_ACTIVE_MODE
@ TRC_PWR_ACTIVE_MODE
Active mode.
Definition: gr55xx_pwr.h:112
pwr_mgmt_get_wakeup_flag
boot_mode_t pwr_mgmt_get_wakeup_flag(void)
Get the current boot mode.
pwr_mgmt_enable_nvic_irq
void pwr_mgmt_enable_nvic_irq(void)
Enable nvic irq.
pwr_table_t::pwr_dur
uint16_t pwr_dur
Duration.
Definition: gr55xx_pwr.h:122
PMR_MGMT_SLEEP_MODE
@ PMR_MGMT_SLEEP_MODE
Deep sleep state.
Definition: gr55xx_pwr.h:90
pwr_mgmt_shutdown
pwr_mgmt_mode_t pwr_mgmt_shutdown(void)
This function allows ARM to enter deep sleep mode, but users should not use this function directly.
pwr_mgmt_set_callback
void pwr_mgmt_set_callback(pwr_dev_check_func_t dev_check_fun, pwr_before_sleep_func_t before_sleep_fun)
Set PMU callback function.
EVENT_APP_TIMER_STOP
@ EVENT_APP_TIMER_STOP
App-timer stop state.
Definition: gr55xx_pwr.h:104
pwr_mgmt_set_wakeup_flag
void pwr_mgmt_set_wakeup_flag(boot_mode_t boot_mode)
Mark the mode of next boot, cold boot or warm boot.
TRC_PWR_APP_TIMER_PASS
@ TRC_PWR_APP_TIMER_PASS
App timer pass.
Definition: gr55xx_pwr.h:115
pwr_mgmt_dev_suspend
pwr_mgmt_dev_state_t pwr_mgmt_dev_suspend(void)
Device config suspend interface.
PMR_MGMT_IDLE_MODE
@ PMR_MGMT_IDLE_MODE
Idle state.
Definition: gr55xx_pwr.h:89