48 #define PMCTRL MC->PMCTRL
49 #define SET_PMCTRL(x) (PMCTRL = MC_PMCTRL_LPLLSM(x) | MC_PMCTRL_LPWUI_MASK)
50 #elif K60_CPU_REV == 2
51 #define PMCTRL SMC->PMCTRL
52 #define SET_PMCTRL(x) (PMCTRL = SMC_PMCTRL_STOPM(x) | SMC_PMCTRL_LPWUI_MASK)
54 #error Unknown K60 CPU revision!
57 #define POWER_MODE_NORMAL (0b000)
58 #define POWER_MODE_VLPS (0b010)
59 #define POWER_MODE_LLS (0b011)
69 MC->PMPROT |= MC_PMPROT_ALLS_MASK | MC_PMPROT_AVLP_MASK;
71 SMC->PMPROT |= SMC_PMPROT_ALLS_MASK | SMC_PMPROT_AVLP_MASK;
103 power_mode_stop(
void)
106 SET_PMCTRL(POWER_MODE_NORMAL);
113 power_mode_vlps(
void)
116 SET_PMCTRL(POWER_MODE_VLPS);
126 SET_PMCTRL(POWER_MODE_LLS);
#define SCB_SCR_SLEEPDEEP_Msk
#define MC
Peripheral MC base pointer.
Board configuration defines for Mulle platform.
K60 hardware register header wrapper.
void power_modes_init(void)
Power mode switching functions for the K60 CPU.
#define SMC
Peripheral SMC base pointer.