Thanks @Zhiming_Liu
power_mode_demo contain so many things in itself, what exactly I need to port to run wake up func in my code?
In hardware init of power mode demo it is using almost every module so to wake up A core can you tell me which things should I pick up?
BOARD_InitLpuartPins();
BOARD_InitI2cPins();
BOARD_InitPmicI2cPins();
BOARD_InitI2sPins();
BOARD_InitTpmPins();
BOARD_InitHdmiIntPins();
BOARD_InitTouchIntPins();
BOARD_InitButtonPins();
BOARD_InitPmicModePins();
BOARD_InitLsm6dsoPins();
BOARD_InitPdmPins();
UPOWER_PowerOnMemPart(0U, (uint32_t)kUPOWER_MP1_DMA0);
CLOCK_SetIpSrcDiv(kCLOCK_Tpm0, kCLOCK_Pcc1BusIpSrcCm33Bus, 1U, 0U);
CLOCK_SetIpSrcDiv(kCLOCK_Lpi2c0, kCLOCK_Pcc1BusIpSrcCm33Bus, 0U, 0U);
CLOCK_SetIpSrcDiv(kCLOCK_Lpi2c1, kCLOCK_Pcc1BusIpSrcCm33Bus, 0U, 0U);
/* Use Pll1Pfd2Div clock source 12.288MHz. */
CLOCK_SetIpSrc(kCLOCK_Sai0, kCLOCK_Cm33SaiClkSrcPll1Pfd2Div);
CLOCK_EnableClock(kCLOCK_Dma0Ch0);
CLOCK_EnableClock(kCLOCK_Dma0Ch16);
CLOCK_EnableClock(kCLOCK_Dma0Ch17);
CLOCK_EnableClock(kCLOCK_RgpioA);
CLOCK_EnableClock(kCLOCK_RgpioB);
CLOCK_EnableClock(kCLOCK_Wuu0);
CLOCK_EnableClock(kCLOCK_Bbnsm);
RESET_PeripheralReset(kRESET_Sai0);
RESET_PeripheralReset(kRESET_Lpi2c0);
RESET_PeripheralReset(kRESET_Lpi2c1);
RESET_PeripheralReset(kRESET_Tpm0);
/* In order to enable the PDM record service located in FUSION_AO, FUSION needs to be initial. */
Fusion_Init();
APP_SRTM_Init();
/* If RTD reset is due to DPD exit, should go different flow here */
if (CMC_RTD->SSRS & CMC_SSRS_WAKEUP_MASK)
{
CMC_RTD->SSRS = CMC_SSRS_WAKEUP_MASK;
/* Assume that Application Domain is entered Deep Power Down Mode */
AD_CurrentMode = AD_DPD;
/*
* AD is also in Deep Power Down mode when RTD is in Deep Power Down Mode.
* AD/RTD exiting from Deep Power Down Mode is same with cold boot flow.
* So don't need setup TRDC when RTD exit from Deep Power Down mode.
*
*/
// BOARD_SetTrdcAfterApdReset();
MU_Init(MU0_MUA);
MU_BootOtherCore(MU0_MUA, (mu_core_boot_mode_t)0);
}
else
{
APP_SRTM_StartCommunication();
}