mirror of https://github.com/ARMmbed/mbed-os.git
Register Sysclk PM callback in BSP Init
parent
ced234607e
commit
0a1e64dd00
|
@ -37,6 +37,7 @@ cy_rslt_t cybsp_init(void)
|
|||
cy_rslt_t result = CY_RSLT_SUCCESS;
|
||||
|
||||
init_cycfg_system();
|
||||
result = cybsp_register_sysclk_pm_callback();
|
||||
|
||||
#ifndef __MBED__
|
||||
if (CY_RSLT_SUCCESS == result)
|
||||
|
|
|
@ -33,10 +33,10 @@ extern "C" {
|
|||
|
||||
cy_rslt_t cybsp_init(void)
|
||||
{
|
||||
init_cycfg_system();
|
||||
|
||||
cy_rslt_t result = CY_RSLT_SUCCESS;
|
||||
|
||||
init_cycfg_system();
|
||||
result = cybsp_register_sysclk_pm_callback();
|
||||
|
||||
#ifndef __MBED__
|
||||
if (CY_RSLT_SUCCESS == result)
|
||||
|
|
|
@ -34,10 +34,11 @@ extern "C" {
|
|||
|
||||
cy_rslt_t cybsp_init(void)
|
||||
{
|
||||
init_cycfg_system();
|
||||
|
||||
cy_rslt_t result = CY_RSLT_SUCCESS;
|
||||
|
||||
init_cycfg_system();
|
||||
result = cybsp_register_sysclk_pm_callback();
|
||||
|
||||
#ifndef __MBED__
|
||||
if (CY_RSLT_SUCCESS == result)
|
||||
{
|
||||
|
|
|
@ -33,10 +33,11 @@ extern "C" {
|
|||
|
||||
cy_rslt_t cybsp_init(void)
|
||||
{
|
||||
init_cycfg_system();
|
||||
|
||||
cy_rslt_t result = CY_RSLT_SUCCESS;
|
||||
|
||||
init_cycfg_system();
|
||||
result = cybsp_register_sysclk_pm_callback();
|
||||
|
||||
#ifndef __MBED__
|
||||
if (CY_RSLT_SUCCESS == result)
|
||||
{
|
||||
|
|
|
@ -33,10 +33,11 @@ extern "C" {
|
|||
|
||||
cy_rslt_t cybsp_init(void)
|
||||
{
|
||||
init_cycfg_system();
|
||||
|
||||
cy_rslt_t result = CY_RSLT_SUCCESS;
|
||||
|
||||
init_cycfg_system();
|
||||
result = cybsp_register_sysclk_pm_callback();
|
||||
|
||||
#ifndef __MBED__
|
||||
if (CY_RSLT_SUCCESS == result)
|
||||
{
|
||||
|
|
|
@ -60,6 +60,33 @@ void cybsp_btn_set_interrupt(cybsp_btn_t which, cyhal_gpio_event_t type, cyhal_g
|
|||
cyhal_gpio_enable_event((cyhal_gpio_t)which, type, 7, 1);
|
||||
}
|
||||
|
||||
/* The sysclk deep sleep callback is recommended to be the last callback that
|
||||
* is executed before entry into deep sleep mode and the first one upon
|
||||
* exit the deep sleep mode.
|
||||
* Doing so minimizes the time spent on low power mode entry and exit.
|
||||
*/
|
||||
#ifndef CYBSP_SYSCLK_PM_CALLBACK_ORDER
|
||||
#define CYBSP_SYSCLK_PM_CALLBACK_ORDER (255u)
|
||||
#endif
|
||||
|
||||
cy_rslt_t cybsp_register_sysclk_pm_callback(void)
|
||||
{
|
||||
cy_rslt_t result = CY_RSLT_SUCCESS;
|
||||
static cy_stc_syspm_callback_params_t cybsp_sysclk_pm_callback_param = {NULL, NULL};
|
||||
static cy_stc_syspm_callback_t cybsp_sysclk_pm_callback = {
|
||||
.callback = &Cy_SysClk_DeepSleepCallback,
|
||||
.type = CY_SYSPM_DEEPSLEEP,
|
||||
.callbackParams = &cybsp_sysclk_pm_callback_param,
|
||||
.order = CYBSP_SYSCLK_PM_CALLBACK_ORDER
|
||||
};
|
||||
|
||||
if (!Cy_SysPm_RegisterCallback(&cybsp_sysclk_pm_callback))
|
||||
{
|
||||
result = CYBSP_RSLT_ERR_SYSCLK_PM_CALLBACK;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -51,6 +51,8 @@ extern "C" {
|
|||
* \{
|
||||
*/
|
||||
|
||||
/** Failed to configure sysclk power management callback */
|
||||
#define CYBSP_RSLT_ERR_SYSCLK_PM_CALLBACK (CY_RSLT_CREATE(CY_RSLT_TYPE_ERROR, CY_RSLT_MODULE_ABSTRACTION_BSP, 0))
|
||||
|
||||
/** \} group_abstraction_board_macros */
|
||||
|
||||
|
@ -130,6 +132,13 @@ bool cybsp_btn_get_state(cybsp_btn_t which);
|
|||
*/
|
||||
void cybsp_btn_set_interrupt(cybsp_btn_t which, cyhal_gpio_event_t type, cyhal_gpio_event_callback_t callback, void *callback_arg);
|
||||
|
||||
/**
|
||||
* \brief Registers a power management callback that prepares the clock system
|
||||
* for entering deep sleep mode and restore the clocks upon wakeup from deep sleep.
|
||||
* \returns CY_RSLT_SUCCESS if the callback is sucessfully registered, if there is
|
||||
* a problem registering the callback it returns CYBSP_RSLT_ERR_SYSCLK_PM_CALLBACK.
|
||||
*/
|
||||
cy_rslt_t cybsp_register_sysclk_pm_callback(void);
|
||||
|
||||
/** \} group_abstraction_board_functions */
|
||||
|
||||
|
|
Loading…
Reference in New Issue