1 /** 2 **************************************************************************************** 3 * 4 * @file gr55xx_hal_pwr.h 5 * @author BLE Driver Team 6 * @brief Header file containing functions prototypes of PWR HAL 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 HAL_DRIVER HAL Driver 43 * @{ 44 */ 45 46 /** @defgroup HAL_PWR PWR 47 * @brief PWR HAL module driver. 48 * @{ 49 */ 50 51 /* Define to prevent recursive inclusion -------------------------------------*/ 52 #ifndef __GR55xx_HAL_PWR_H__ 53 #define __GR55xx_HAL_PWR_H__ 54 55 /* Includes ------------------------------------------------------------------*/ 56 #include "gr55xx_ll_pwr.h" 57 #include "gr55xx_hal_def.h" 58 59 #ifdef __cplusplus 60 extern "C" { 61 #endif 62 63 /* Exported types ------------------------------------------------------------*/ 64 65 /** @addtogroup HAL_PWR_CALLBACK_STRUCTURES Callback Structures 66 * @{ 67 */ 68 69 /** @defgroup HAL_PWR_SLEEP_ELAPSED_HANDLER HAL PWR sleep elapsed handler define 70 * @{ 71 */ 72 73 /** 74 * @brief PWR Sleep Timer Elapsed callback 75 */ 76 77 typedef void (*pwr_slp_elapsed_handler_t)(void); 78 79 /** @} */ 80 81 /** @defgroup HAL_PWR_CALLBACK_HANDLER PWR callback handle 82 * @{ 83 */ 84 85 /** 86 * @brief PWR callback handle Structure definition 87 */ 88 typedef struct _hal_pwr_handler { 89 pwr_slp_elapsed_handler_t pwr_slp_elapsed_hander; /**< PWR sleep timer elapsed callback */ 90 } hal_pwr_handler_t; 91 92 /** @} */ 93 94 /** @} */ 95 96 /** 97 * @defgroup HAL_PWR_MACRO Defines 98 * @{ 99 */ 100 101 /* Exported constants --------------------------------------------------------*/ 102 /** @defgroup PWR_Exported_Constants PWR Exported Constants 103 * @{ 104 */ 105 106 /** @defgroup PWR_WakeUp_Pins PWR WakeUp Pins 107 * @{ 108 */ 109 #define PWR_EXTWKUP_PIN0 LL_PWR_EXTWKUP_PIN0 /**< External wakeup pin 0 */ 110 #define PWR_EXTWKUP_PIN1 LL_PWR_EXTWKUP_PIN1 /**< External wakeup pin 1 */ 111 #define PWR_EXTWKUP_PIN2 LL_PWR_EXTWKUP_PIN2 /**< External wakeup pin 2 */ 112 #define PWR_EXTWKUP_PIN3 LL_PWR_EXTWKUP_PIN3 /**< External wakeup pin 3 */ 113 #define PWR_EXTWKUP_PIN4 LL_PWR_EXTWKUP_PIN4 /**< External wakeup pin 4 */ 114 #define PWR_EXTWKUP_PIN5 LL_PWR_EXTWKUP_PIN5 /**< External wakeup pin 5 */ 115 #define PWR_EXTWKUP_PIN6 LL_PWR_EXTWKUP_PIN6 /**< External wakeup pin 6 */ 116 #define PWR_EXTWKUP_PIN7 LL_PWR_EXTWKUP_PIN7 /**< External wakeup pin 7 */ 117 #define PWR_EXTWKUP_PIN_ALL LL_PWR_EXTWKUP_PIN_ALL /**< External wakeup pin 0 ~ 7 */ 118 /** @} */ 119 120 /** @defgroup PWR_WakeUp_Conditions PWR Wakeup Condition 121 * @{ 122 */ 123 #define PWR_WKUP_COND_EXT LL_PWR_WKUP_COND_EXT /**< External wakeup: AON_GPIO */ 124 #define PWR_WKUP_COND_TIMER LL_PWR_WKUP_COND_TIMER /**< AON Timer wakeup */ 125 #define PWR_WKUP_COND_BLE LL_PWR_WKUP_COND_BLE /**< BLE wakeup */ 126 #define PWR_WKUP_COND_CALENDAR LL_PWR_WKUP_COND_CALENDAR /**< Calendar wakeup */ 127 #define PWR_WKUP_COND_BOD_FEDGE LL_PWR_WKUP_COND_BOD_FEDGE /**< PMU Bod falling edge wakeup */ 128 #define PWR_WKUP_COND_MSIO_COMP LL_PWR_WKUP_COND_MSIO_COMP /**< Msio comparator wakeup */ 129 #define PWR_WKUP_COND_ALL LL_PWR_WKUP_COND_ALL /**< All wakeup sources mask */ 130 131 /** @} */ 132 133 /** @defgroup PWR_External_WakeUp_Type PWR External Wakeup Type 134 * @{ 135 */ 136 #define PWR_EXTWKUP_TYPE_LOW LL_PWR_EXTWKUP_TYPE_LOW /**< Low level wakeup */ 137 #define PWR_EXTWKUP_TYPE_HIGH LL_PWR_EXTWKUP_TYPE_HIGH /**< High level wakeup */ 138 #define PWR_EXTWKUP_TYPE_RISING LL_PWR_EXTWKUP_TYPE_RISING /**< Rising edge wakeup */ 139 #define PWR_EXTWKUP_TYPE_FALLING LL_PWR_EXTWKUP_TYPE_FALLING /**< Falling edge wakeup */ 140 /** @} */ 141 142 /** @defgroup PWR_Sleep_Timer_Mode PWR Sleep Timer Mode 143 * @{ 144 */ 145 #define PWR_SLP_TIMER_MODE_NORMAL 0x0U /**< Start counting after sleeping and disabled when waked up */ 146 #define PWR_SLP_TIMER_MODE_SINGLE 0x1U /**< Single mode(keep counting until finished) */ 147 #define PWR_SLP_TIMER_MODE_RELOAD 0x2U /**< Auto reload */ 148 #define PWR_SLP_TIMER_MODE_DISABLE 0x3U /**< Disabled (used for reset mode) */ 149 /** @} */ 150 151 /** @defgroup PWR_Timer_Type PWR Timer Type 152 * @note Only available on GR5515_C and later versions. 153 * @{ 154 */ 155 #define PWR_TIMER_TYPE_CAL_TIMER LL_PWR_TIMER_READ_SEL_CAL_TIMER /**< Calendar timer */ 156 #define PWR_TIMER_TYPE_AON_WDT LL_PWR_TIMER_READ_SEL_AON_WDT /**< AON watchdog timer */ 157 #define PWR_TIMER_TYPE_SLP_TIMER LL_PWR_TIMER_READ_SEL_SLP_TIMER /**< Sleep timer */ 158 #define PWR_TIMER_TYPE_CAL_ALARM LL_PWR_TIMER_READ_SEL_CAL_ALARM /**< Calendar timer */ 159 /** @} */ 160 161 162 /** @defgroup PWR_Memory_Power_State Memory Power State 163 * @{ 164 */ 165 #define PWR_MEM_POWER_OFF LL_PWR_MEM_POWER_OFF /**< Power off */ 166 #define PWR_MEM_POWER_FULL LL_PWR_MEM_POWER_FULL /**< Full power */ 167 #define PWR_MEM_POWER_RETENTION LL_PWR_MEM_POWER_RETENTION /**< Power retention, low valtage mode */ 168 /** @} */ 169 170 /** @defgroup PWR_Communication_Power_State Communication Power State 171 * @{ 172 */ 173 #define PWR_COMM_TIMER_POWER_DOWN 0x0U /**< Power down communication timer */ 174 #define PWR_COMM_TIMER_POWER_UP 0x1U /**< Power on communication timer */ 175 #define PWR_COMM_CORE_POWER_DOWN 0x0U /**< Power down communication core */ 176 #define PWR_COMM_CORE_POWER_UP 0x1U /**< Power on communication core */ 177 /** @} */ 178 179 /** @defgroup PWR_Communication_Mode Communication Mode 180 * @{ 181 */ 182 #define PWR_COMM_TIMER_MODE_RESET 0x0U /**< Communication timer in reset mode */ 183 #define PWR_COMM_TIMER_MODE_RUNNING 0x1U /**< Communication timer in running mode */ 184 #define PWR_COMM_CORE_MODE_RESET 0x0U /**< Communication core in reset mode */ 185 #define PWR_COMM_CORE_MODE_RUNNING 0x1U /**< Communication core in running mode */ 186 /** @} */ 187 188 /** @defgroup PWR_Timeout_definition PWR Timeout definition 189 * @{ 190 */ 191 #define HAL_PWR_TIMEOUT_DEFAULT_VALUE ((uint32_t)0x000FFFFF) /**< 0xFFFFF counts */ 192 /** @} */ 193 194 /** @} */ 195 196 /* Exported macro ------------------------------------------------------------*/ 197 /* Private macros ------------------------------------------------------------*/ 198 /** @addtogroup PWR_Private_Macros PWR Private Macros 199 * @{ 200 */ 201 202 /** 203 * @brief Check if PWR wakeup condition is valid. 204 * @param __COND__ PWR wakeup condition. 205 * @retval SET (__COND__ is valid) or RESET (__COND__ is invalid) 206 */ 207 #define IS_PWR_WAKEUP_CONDITION(__COND__) ((((__COND__) & PWR_WKUP_COND_ALL) != 0x00U) && \ 208 (((__COND__) & ~PWR_WKUP_COND_ALL) == 0x00U)) 209 210 /** 211 * @brief Check if PWR external wakeup pin is valid. 212 * @param __PIN__ PWR external wakeup pin. 213 * @retval SET (__PIN__ is valid) or RESET (__PIN__ is invalid) 214 */ 215 #define IS_PWR_EXT_WAKEUP_PIN(__PIN__) ((((__PIN__) & PWR_EXTWKUP_PIN_ALL) != 0x00U) && \ 216 (((__PIN__) & ~PWR_EXTWKUP_PIN_ALL) == 0x00U)) 217 218 /** 219 * @brief Check if PWR sleep timer mode is valid. 220 * @param __MODE__ PWR sleep timer mode. 221 * @retval SET (__MODE__ is valid) or RESET (__MODE__ is invalid) 222 */ 223 #define IS_PWR_SLP_TIMER_MODE(__MODE__) (((__MODE__) == PWR_SLP_TIMER_MODE_NORMAL) || \ 224 ((__MODE__) == PWR_SLP_TIMER_MODE_SINGLE) || \ 225 ((__MODE__) == PWR_SLP_TIMER_MODE_RELOAD) || \ 226 ((__MODE__) == PWR_SLP_TIMER_MODE_DISABLE)) 227 228 /** 229 * @brief Check if PWR external wakeup type is valid. 230 * @param __TYPE__ PWR external wakeup type. 231 * @retval SET (__TYPE__ is valid) or RESET (__TYPE__ is invalid) 232 */ 233 #define IS_PWR_EXTWKUP_TYPE(__TYPE__) (((__TYPE__) == PWR_EXTWKUP_TYPE_LOW) || \ 234 ((__TYPE__) == PWR_EXTWKUP_TYPE_HIGH) || \ 235 ((__TYPE__) == PWR_EXTWKUP_TYPE_RISING) || \ 236 ((__TYPE__) == PWR_EXTWKUP_TYPE_FALLING)) 237 238 /** 239 * @brief Check if PWR memory block is valid. 240 * @param __BLOCK__ PWR memory block. 241 * @retval SET (__BLOCK__ is valid) or RESET (__BLOCK__ is invalid) 242 */ 243 #define IS_PWR_MEM_BLOCK(__BLOCK__) ((((__BLOCK__) & PWR_MEM_ALL) != 0x00U) && \ 244 (((__BLOCK__) & ~PWR_MEM_ALL) == 0x00U)) 245 246 /** 247 * @brief Check if PWR memory power state is valid. 248 * @param __STATE__ PWR memory power state. 249 * @retval SET (__STATE__ is valid) or RESET (__STATE__ is invalid) 250 */ 251 #define IS_PWR_MEM_POWER_STAT(__STATE__) (((__STATE__) == PWR_MEM_POWER_OFF) || \ 252 ((__STATE__) == PWR_MEM_POWER_FULL) || \ 253 ((__STATE__) == PWR_MEM_POWER_RETENTION)) 254 255 /** 256 * @brief Check if PWR BLE communication timer power state is valid. 257 * @param __STATE__ PWR BLE communication timer power state. 258 * @retval SET (__STATE__ is valid) or RESET (__STATE__ is invalid) 259 */ 260 #define IS_PWR_COMM_TIMER_POWER_STAT(__STATE__) (((__STATE__) == PWR_COMM_TIMER_POWER_DOWN) || \ 261 ((__STATE__) == PWR_COMM_TIMER_POWER_UP)) 262 263 /** 264 * @brief Check if PWR BLE communication core power state is valid. 265 * @param __STATE__ PWR BLE communication core power state. 266 * @retval SET (__STATE__ is valid) or RESET (__STATE__ is invalid) 267 */ 268 #define IS_PWR_COMM_CORE_POWER_STAT(__STATE__) (((__STATE__) == PWR_COMM_CORE_POWER_DOWN) || \ 269 ((__STATE__) == PWR_COMM_CORE_POWER_UP)) 270 271 /** 272 * @brief Check if PWR BLE communication timer mode is valid. 273 * @param __MODE__ PWR BLE communication timer mode. 274 * @retval SET (__MODE__ is valid) or RESET (__MODE__ is invalid) 275 */ 276 #define IS_PWR_COMM_TIMER_MODE(__MODE__) (((__MODE__) == PWR_COMM_TIMER_MODE_RESET) || \ 277 ((__MODE__) == PWR_COMM_TIMER_MODE_RUNNING)) 278 279 /** 280 * @brief Check if PWR BLE communication core mode is valid. 281 * @param __MODE__ PWR BLE communication core mode. 282 * @retval SET (__MODE__ is valid) or RESET (__MODE__ is invalid) 283 */ 284 #define IS_PWR_COMM_CORE_MODE(__MODE__) (((__MODE__) == PWR_COMM_CORE_MODE_RESET) || \ 285 ((__MODE__) == PWR_COMM_CORE_MODE_RUNNING)) 286 287 /** 288 * @brief Check if PWR sleep timer type is valid. 289 * @param __TYPE__ PWR sleep timer type. 290 * @retval SET (__TYPE__ is valid) or RESET (__TYPE__ is invalid) 291 */ 292 #define IS_PWR_PWR_TIMER_TYPE(__TYPE__) (((__TYPE__) == PWR_TIMER_TYPE_CAL_TIMER) || \ 293 ((__TYPE__) == PWR_TIMER_TYPE_AON_WDT) || \ 294 ((__TYPE__) == PWR_TIMER_TYPE_SLP_TIMER) || \ 295 ((__TYPE__) == PWR_TIMER_TYPE_CAL_ALARM)) 296 297 /** @} */ 298 299 /** @} */ 300 301 /* Exported functions --------------------------------------------------------*/ 302 /** @addtogroup HAL_PWR_DRIVER_FUNCTIONS Functions 303 * @{ 304 */ 305 306 /** @addtogroup PWR_Exported_Functions_Group1 Low Power mode configuration functions 307 * @{ 308 */ 309 310 /** 311 **************************************************************************************** 312 * @brief Set the DeepSleep WakeUp Condition 313 * @param[in] condition: This parameter can be a combination of the following values: 314 * @arg @ref PWR_WKUP_COND_EXT 315 * @arg @ref PWR_WKUP_COND_TIMER 316 * @arg @ref PWR_WKUP_COND_BLE 317 * @arg @ref PWR_WKUP_COND_CALENDAR 318 * @arg @ref PWR_WKUP_COND_BOD_FEDGE 319 * @arg @ref PWR_WKUP_COND_MSIO_COMP 320 * @arg @ref PWR_WKUP_COND_ALL 321 * @note When @ref PWR_WKUP_COND_EXT is set, use @ref hal_pwr_config_ext_wakeup() to 322 * configure wakeup pins and pin trigger type. 323 * When @ref PWR_WKUP_COND_TIMER is set, use @ref hal_pwr_config_timer_wakeup() 324 * to configure the time count to wakeup. 325 * When @ref PWR_WKUP_COND_ALL is set, use @ref hal_pwr_config_ext_wakeup() and 326 * @ref hal_pwr_config_timer_wakeup() to configure 327 * AON timer and External AON GPIO. 328 **************************************************************************************** 329 */ 330 void hal_pwr_set_wakeup_condition(uint32_t condition); 331 332 /** 333 **************************************************************************************** 334 * @brief Configure the AON Sleep Timer mode and count used to wakeup MCU. 335 * @param[in] timer_mode: Specifies the sleep timer mode. 336 * This parameter can be a combination of the following values: 337 * @arg @ref PWR_SLP_TIMER_MODE_NORMAL 338 * @arg @ref PWR_SLP_TIMER_MODE_SINGLE 339 * @arg @ref PWR_SLP_TIMER_MODE_RELOAD 340 * @arg @ref PWR_SLP_TIMER_MODE_DISABLE 341 * @param[in] load_count: Count value of the AON Sleep Timer. 342 * @note The sleep clock of AON Timer is 32 KHz. 343 **************************************************************************************** 344 */ 345 void hal_pwr_config_timer_wakeup(uint8_t timer_mode, uint32_t load_count); 346 347 /** 348 **************************************************************************************** 349 * @brief Configure the External AON GPIO pins and pin trigger type that is used to wakeup MCU. 350 * @param[in] ext_wakeup_pinx: This parameter can be a combination of the following values: 351 * @arg @ref PWR_EXTWKUP_PIN0 352 * @arg @ref PWR_EXTWKUP_PIN1 353 * @arg @ref PWR_EXTWKUP_PIN2 354 * @arg @ref PWR_EXTWKUP_PIN3 355 * @arg @ref PWR_EXTWKUP_PIN4 356 * @arg @ref PWR_EXTWKUP_PIN5 357 * @arg @ref PWR_EXTWKUP_PIN_ALL 358 * @param[in] ext_wakeup_type: This parameter can be a combination of the following values: 359 * @arg @ref PWR_EXTWKUP_TYPE_LOW 360 * @arg @ref PWR_EXTWKUP_TYPE_HIGH 361 * @arg @ref PWR_EXTWKUP_TYPE_RISING 362 * @arg @ref PWR_EXTWKUP_TYPE_FALLING 363 * @note When the level of any selected GPIO pin changes in accordance with the set 364 * trigger type, MCU will be waked up from DeepSleep mode. 365 **************************************************************************************** 366 */ 367 void hal_pwr_config_ext_wakeup(uint32_t ext_wakeup_pinx, uint32_t ext_wakeup_type); 368 369 /** 370 **************************************************************************************** 371 * @brief Disable the interrupt wake-up function of the specified AON GPIO pin. 372 * @param[in] disable_wakeup_pinx: This parameter can be a combination of the following values: 373 * @arg @ref PWR_EXTWKUP_PIN0 374 * @arg @ref PWR_EXTWKUP_PIN1 375 * @arg @ref PWR_EXTWKUP_PIN2 376 * @arg @ref PWR_EXTWKUP_PIN3 377 * @arg @ref PWR_EXTWKUP_PIN4 378 * @arg @ref PWR_EXTWKUP_PIN5 379 * @arg @ref PWR_EXTWKUP_PIN_ALL 380 **************************************************************************************** 381 */ 382 void hal_pwr_disable_ext_wakeup(uint32_t disable_wakeup_pinx); 383 384 /** 385 **************************************************************************************** 386 * @brief Enters DeepSleep mode. 387 * @note In DeepSleep mode, all I/O pins keep the same state as in Run mode. 388 **************************************************************************************** 389 */ 390 void hal_pwr_enter_chip_deepsleep(void); 391 392 /** @} */ 393 394 /** @addtogroup PWR_Exported_Functions_Group2 BLE Communication timer and core configuration function 395 * @{ 396 */ 397 398 /** 399 **************************************************************************************** 400 * @brief Set the power state of communication timer and communication core in running mode. 401 * @param[in] timer_power_state: This parameter can be one of the following values: 402 * @arg @ref PWR_COMM_TIMER_POWER_UP 403 * @arg @ref PWR_COMM_TIMER_POWER_DOWN 404 * @param[in] core_power_state: This parameter can be one of the following values: 405 * @arg @ref PWR_COMM_CORE_POWER_UP 406 * @arg @ref PWR_COMM_CORE_POWER_DOWN 407 **************************************************************************************** 408 */ 409 void hal_pwr_set_comm_power(uint32_t timer_power_state, uint32_t core_power_state); 410 411 /** 412 **************************************************************************************** 413 * @brief Set the work mode of communication timer and communication core. 414 * @param[in] timer_mode: This parameter can be one of the following values: 415 * @arg @ref PWR_COMM_TIMER_MODE_RESET 416 * @arg @ref PWR_COMM_TIMER_MODE_RUNNING 417 * @param[in] core_mode: This parameter can be one of the following values: 418 * @arg @ref PWR_COMM_CORE_MODE_RESET 419 * @arg @ref PWR_COMM_CORE_MODE_RUNNING 420 **************************************************************************************** 421 */ 422 void hal_pwr_set_comm_mode(uint32_t timer_mode, uint32_t core_mode); 423 424 /** 425 **************************************************************************************** 426 * @brief Get the current value of specified timer. 427 * @note Only available on GR5515_C and later versions. 428 * @param[in] timer_type: This parameter can be one of the following values: 429 * @arg @ref PWR_TIMER_TYPE_CAL_TIMER 430 * @arg @ref PWR_TIMER_TYPE_AON_WDT 431 * @arg @ref PWR_TIMER_TYPE_SLP_TIMER 432 * @arg @ref PWR_TIMER_TYPE_CAL_ALARM 433 * @param[out] p_value: Pointer to an integer storing current value 434 * @retval ::HAL_OK: Operation is OK. 435 * @retval ::HAL_ERROR: Parameter error or operation not supported. 436 * @retval ::HAL_BUSY: Driver is busy. 437 * @retval ::HAL_TIMEOUT: Timeout occurred. 438 **************************************************************************************** 439 */ 440 hal_status_t hal_pwr_get_timer_current_value(uint32_t timer_type, uint32_t *p_value); 441 442 /** @} */ 443 444 /** @addtogroup PWR_IRQ_Handler_and_Callbacks IRQ Handler and Callbacks 445 * @brief IRQ Handler and Callbacks functions 446 * @{ 447 */ 448 449 /** 450 **************************************************************************************** 451 * @brief Handle PWR Sleep Timer interrupt request. 452 * @note Only available on GR5515_C and later versions. 453 **************************************************************************************** 454 */ 455 void hal_pwr_sleep_timer_irq_handler(void); 456 457 /** 458 **************************************************************************************** 459 * @brief PWR Sleep Timer Elapsed callback. 460 * @note Only available on GR5515_C and later versions. 461 * This function should not be modified. When the callback is needed, 462 * the hal_pwr_sleep_timer_elapsed_callback can be implemented in the user file. 463 **************************************************************************************** 464 */ 465 void hal_pwr_sleep_timer_elapsed_callback(void); 466 467 /** @} */ 468 469 /** @} */ 470 471 #ifdef __cplusplus 472 } 473 #endif 474 475 #endif /* __GR55xx_HAL_PWR_H__ */ 476 477 /** @} */ 478 479 /** @} */ 480 481 /** @} */ 482