1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-12-15 09:33:50 +01:00

cpu/efm32: define EFM power modes for pm_layered

This commit is contained in:
Jue 2022-10-17 23:04:49 +02:00 committed by Juergen Fitschen
parent b3989bc11f
commit bc51071d44
2 changed files with 12 additions and 2 deletions

View File

@ -455,6 +455,15 @@ typedef struct {
*/
#define PM_NUM_MODES (3U)
/**
* @name Available power modes
* @{
*/
#define EFM32_PM_MODE_EM3 (0U) /**< CPU sleeps, peripherals in EM3 domain are active */
#define EFM32_PM_MODE_EM2 (1U) /**< CPU sleeps, peripherals in EM2 + EM3 domain are active */
#define EFM32_PM_MODE_EM1 (2U) /**< CPU sleeps, all peripherals are active */
/** @} */
/**
* @name Watchdog timer (WDT) configuration
* @{

View File

@ -25,14 +25,15 @@
void pm_set(unsigned mode)
{
switch (mode) {
case 0:
case EFM32_PM_MODE_EM3:
/* after exiting EM3, clocks are restored */
EMU_EnterEM3(true);
break;
case 1:
case EFM32_PM_MODE_EM2:
/* after exiting EM2, clocks are restored */
EMU_EnterEM2(true);
break;
case EFM32_PM_MODE_EM1:
default:
/* wait for next event or interrupt */
EMU_EnterEM1();