1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-12-16 01:53:51 +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) #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 * @name Watchdog timer (WDT) configuration
* @{ * @{

View File

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