Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[platform][k32w0] Add API calls to set DCDC when entering and exiting… #37512

Merged
merged 1 commit into from
Feb 20, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 22 additions & 0 deletions src/platform/nxp/k32w0/LowPowerHooks.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -48,10 +48,14 @@ extern "C" void stopM2();
extern "C" void sched_enable();
extern "C" uint64_t otPlatTimeGet(void);
extern "C" void vOptimizeConsumption(void);
extern "C" void BOARD_CheckPowerDownDcdcVoltage(void);
extern "C" void BOARD_CheckWakeUpDcdcVoltage(void);

WEAK void dm_switch_wakeupCallBack(void);
WEAK void dm_switch_preSleepCallBack(void);
WEAK void vOptimizeConsumption(void);
WEAK void BOARD_CheckPowerDownDcdcVoltage(void);
WEAK void BOARD_CheckWakeUpDcdcVoltage(void);
static void ThreadExitSleep();
static void BOARD_SetClockForWakeup(void);

Expand Down Expand Up @@ -106,6 +110,10 @@ uint32_t dm_switch_get15_4InitWakeUpTime(void)

WEAK void dm_switch_wakeupCallBack(void)
{
/* Check VBAT voltage after wakeup and set DCDC voltage
according for K32W041A/AM variants */
BOARD_CheckWakeUpDcdcVoltage();

BOARD_SetClockForWakeup();
SHA_ClkInit(SHA_INSTANCE);
CLOCK_EnableClock(kCLOCK_Aes);
Expand Down Expand Up @@ -164,6 +172,16 @@ WEAK void vOptimizeConsumption(void)
/* Intentionally left empty, user needs to redefine it at application level */
}

WEAK void BOARD_CheckPowerDownDcdcVoltage(void)
{
/* Intentionally left empty, will be linked to board.c function */
}

WEAK void BOARD_CheckWakeUpDcdcVoltage(void)
{
/* Intentionally left empty, will be linked to board.c function */
}

WEAK void dm_switch_preSleepCallBack(void)
{
#if ENABLE_LOW_POWER_LOGS
Expand Down Expand Up @@ -198,6 +216,10 @@ WEAK void dm_switch_preSleepCallBack(void)
BOARD_DeInitAdc();
/* DeInit the necessary clocks */
BOARD_SetClockForPowerMode();

/* Check VBAT voltage before going to sleep and set DCDC voltage
according for K32W041A/AM variants */
BOARD_CheckPowerDownDcdcVoltage();
}

void dm_switch_init15_4AfterWakeUp(void)
Expand Down
Loading