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 <stdint.h> 56 #include <stdbool.h> 57 #include "app_drv_config.h" 58 #include "gr55xx_pwr.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 /** 70 * @brief PWR sleep check function Structure 71 */ 72 typedef struct { 73 bool (*app_prepare_for_sleep)(void); /**<Peripherals prepare sleep fuction . */ 74 void (*app_sleep_canceled)(void); /**<Peripherals cancel sleep fuction . */ 75 void (*app_wake_up_ind)(void); /**< Resume peripherals when used fuctioin . */ 76 } app_sleep_callbacks_t; 77 /** @} */ 78 79 80 /* Exported functions --------------------------------------------------------*/ 81 /** @addtogroup APP_PWR_DRIVER_FUNCTIONS Functions 82 * @{ 83 */ 84 /** 85 **************************************************************************************** 86 * @brief set PWR sleep callback function 87 * @param p_cb : Device check callback function 88 * @param wakeup_priority : Device wakeup priority 89 * 90 * @return ID 91 **************************************************************************************** 92 */ 93 int16_t pwr_register_sleep_cb(const app_sleep_callbacks_t *p_cb, wakeup_priority_t wakeup_priority); 94 95 /** 96 **************************************************************************************** 97 * @brief Unregister PWR sleep callback function 98 * @param id : which id want to unregister 99 **************************************************************************************** 100 */ 101 void pwr_unregister_sleep_cb(int16_t id); 102 103 /** 104 **************************************************************************************** 105 * @brief Things to do after waking up. 106 **************************************************************************************** 107 */ 108 void pwr_wake_up_ind(void); 109 110 /** 111 **************************************************************************************** 112 * @brief Check peripheral status before going to sleep. 113 **************************************************************************************** 114 */ 115 pwr_mgmt_dev_state_t pwr_enter_sleep_check(void); 116 /** @} */ 117 118 #endif 119 120 /** @} */ 121 /** @} */ 122 /** @} */ 123