app_pwr_mgmt.h
Go to the documentation of this file.
1 /**
2  ****************************************************************************************
3  *
4  * @file app_pwr_mgmt.h
5  * @author BLE Driver Team
6  * @brief Header file containing functions prototypes of UART PWR library.
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 /** @addtogroup PERIPHERAL Peripheral Driver
39  * @{
40  */
41 
42 /** @addtogroup APP_DRIVER APP DRIVER
43  * @{
44  */
45 
46 /** @defgroup APP_PWR_MGMT PWR MGMT
47  * @brief PWR MGMT APP module driver.
48  * @{
49  */
50 
51 
52 #ifndef _APP_PWR_MGMT_H_
53 #define _APP_PWR_MGMT_H_
54 
55 #include "grx_sys.h"
56 #include "app_drv_config.h"
57 #include <stdint.h>
58 #include <stdbool.h>
59 
60 /** @addtogroup APP_PWR_DEFINE Defines
61  * @{
62  */
63 /**
64  * @brief PWR MAX value for sleep check
65  */
66 #define APP_SLEEP_CB_MAX 16
67 /** @} */
68 
69 /** @addtogroup APP_PWR_STRUCTURES Structures
70  * @{
71  */
72 /**
73  * @brief PWR id
74  */
75 typedef int16_t pwr_id_t;
76 
77 /**
78  * @brief PWR sleep check function Structure
79  */
80 typedef struct
81 {
82  bool (*app_prepare_for_sleep)(void); /**<Peripherals prepare sleep fuction . */
83  void (*app_sleep_canceled)(void); /**<Peripherals cancel sleep fuction . */
84  void (*app_wake_up_ind)(void); /**< Resume peripherals when used fuctioin . */
86 /** @} */
87 
88 
89 /* Exported functions --------------------------------------------------------*/
90 /** @addtogroup APP_PWR_DRIVER_FUNCTIONS Functions
91  * @{
92  */
93 /**
94  ****************************************************************************************
95  * @brief set PWR sleep callback function
96  * @param p_cb : Device check callback function
97  * @param wakeup_priority : Device wakeup priority
98  *
99  * @return ID
100  ****************************************************************************************
101  */
103 
104 /**
105  ****************************************************************************************
106  * @brief Unregister PWR sleep callback function
107  * @param id : which id want to unregister
108  ****************************************************************************************
109  */
111 
112 /**
113  ****************************************************************************************
114  * @brief Things to do after waking up.
115  ****************************************************************************************
116  */
117 void pwr_wake_up_ind(void);
118 
119 /**
120  ****************************************************************************************
121  * @brief Check peripheral status before going to sleep.
122  ****************************************************************************************
123  */
125 /** @} */
126 
127 #endif
128 
129 /** @} */
130 /** @} */
131 /** @} */
wakeup_priority_t
wakeup_priority_t
APP driver peripheral wakeup priority define.
Definition: app_drv_config.h:179
pwr_enter_sleep_check
pwr_mgmt_dev_state_t pwr_enter_sleep_check(void)
Check peripheral status before going to sleep.
pwr_id_t
int16_t pwr_id_t
PWR id.
Definition: app_pwr_mgmt.h:75
pwr_unregister_sleep_cb
void pwr_unregister_sleep_cb(pwr_id_t id)
Unregister PWR sleep callback function.
pwr_wake_up_ind
void pwr_wake_up_ind(void)
Things to do after waking up.
pwr_register_sleep_cb
pwr_id_t pwr_register_sleep_cb(const app_sleep_callbacks_t *p_cb, wakeup_priority_t wakeup_priority)
set PWR sleep callback function
grx_sys.h
pwr_mgmt_dev_state_t
pwr_mgmt_dev_state_t
power manager device work state.
Definition: gr55xx_pwr.h:95
app_drv_config.h
Header file of app driver config code.
app_sleep_callbacks_t
PWR sleep check function Structure.
Definition: app_pwr_mgmt.h:81