// 1. Check Pending register with Wakeup Mask register
// If Wakeup source interrupt is generated in here,
// bypass entering sleep mode and wakeup system right now.
// Here is interrupt of wakeup source, so wake up system right now.
//---------------------------------------------------------------------
// Clear All Wake Up Status bits
// : This is cleared by writing 1.
pPMUPMReg->STATUS_REG.WAKEUP_STAT = BP_WAKEUP_STAT_ALL_MASK;
// EINT_MASK in SysCon Also Effective in Normal State
// Unmask all bit for External Interrupt at Normal Mode
pPMUPMReg->PWR_CONF.EINT_WAKEUP_MASK &= ~(BP_EINT_WAKEUP_ALL_MASK);
// 3. set CFG_STANDBYWFI field of PWR_CFG to sleep mode.
pPMUPMReg->PWR_CONF.PWR_CFG = (pPMUPMReg->PWR_CONF.PWR_CFG & ~(BW_CFG_STANDBYWFI<<BP_CFG_STANDBYWFI)) | (CFG_ENTER_SLEEP<<BP_CFG_STANDBYWFI);
// 4. set SYSCON_INT_DISABLE bit for early-wakeup
pPMUMiscReg->SYS_CON.OTHERS |= (1<<BP_OTHERS_SYSCON_INT_DISABLE);
}