diff --git a/dts/arm/microchip/mec1501hsz.dtsi b/dts/arm/microchip/mec1501hsz.dtsi index 1c5896c5ecb..9648c9bd782 100644 --- a/dts/arm/microchip/mec1501hsz.dtsi +++ b/dts/arm/microchip/mec1501hsz.dtsi @@ -22,19 +22,19 @@ reg = <0>; cpu-power-states = <&idle &suspend_to_ram>; }; - }; - power-states { - idle: idle { - compatible = "zephyr,power-state"; - power-state-name = "suspend-to-idle"; - min-residency-us = <1000000>; - }; + power-states { + idle: idle { + compatible = "zephyr,power-state"; + power-state-name = "suspend-to-idle"; + min-residency-us = <1000000>; + }; - suspend_to_ram: suspend_to_ram { - compatible = "zephyr,power-state"; - power-state-name = "suspend-to-ram"; - min-residency-us = <2000000>; + suspend_to_ram: suspend_to_ram { + compatible = "zephyr,power-state"; + power-state-name = "suspend-to-ram"; + min-residency-us = <2000000>; + }; }; }; diff --git a/dts/arm/microchip/mec172xnsz.dtsi b/dts/arm/microchip/mec172xnsz.dtsi index 81b39280afa..8a95e8ec800 100644 --- a/dts/arm/microchip/mec172xnsz.dtsi +++ b/dts/arm/microchip/mec172xnsz.dtsi @@ -28,19 +28,19 @@ reg = <0>; cpu-power-states = <&idle &suspend_to_ram>; }; - }; - power-states { - idle: idle { - compatible = "zephyr,power-state"; - power-state-name = "suspend-to-idle"; - min-residency-us = <1000000>; - }; + power-states { + idle: idle { + compatible = "zephyr,power-state"; + power-state-name = "suspend-to-idle"; + min-residency-us = <1000000>; + }; - suspend_to_ram: suspend_to_ram { - compatible = "zephyr,power-state"; - power-state-name = "suspend-to-ram"; - min-residency-us = <2000000>; + suspend_to_ram: suspend_to_ram { + compatible = "zephyr,power-state"; + power-state-name = "suspend-to-ram"; + min-residency-us = <2000000>; + }; }; }; diff --git a/dts/arm/nuvoton/npcx/npcx.dtsi b/dts/arm/nuvoton/npcx/npcx.dtsi index 874f88a5868..f079b8c2b3a 100644 --- a/dts/arm/nuvoton/npcx/npcx.dtsi +++ b/dts/arm/nuvoton/npcx/npcx.dtsi @@ -28,21 +28,21 @@ reg = <0>; cpu-power-states = <&suspend_to_idle0 &suspend_to_idle1>; }; - }; - power-states { - suspend_to_idle0: suspend-to-idle0 { - compatible = "zephyr,power-state"; - power-state-name = "suspend-to-idle"; - substate-id = <0>; - min-residency-us = <1000>; - }; + power-states { + suspend_to_idle0: suspend-to-idle0 { + compatible = "zephyr,power-state"; + power-state-name = "suspend-to-idle"; + substate-id = <0>; + min-residency-us = <1000>; + }; - suspend_to_idle1: suspend-to-idle1 { - compatible = "zephyr,power-state"; - power-state-name = "suspend-to-idle"; - substate-id = <1>; - min-residency-us = <201000>; + suspend_to_idle1: suspend-to-idle1 { + compatible = "zephyr,power-state"; + power-state-name = "suspend-to-idle"; + substate-id = <1>; + min-residency-us = <201000>; + }; }; }; diff --git a/dts/arm/nxp/nxp_ke1xf.dtsi b/dts/arm/nxp/nxp_ke1xf.dtsi index 6a3f10ef2e9..9326b20c9cf 100644 --- a/dts/arm/nxp/nxp_ke1xf.dtsi +++ b/dts/arm/nxp/nxp_ke1xf.dtsi @@ -29,30 +29,30 @@ compatible = "arm,cortex-m4f"; reg = <0>; }; - }; - power-states { - idle: idle { - compatible = "zephyr,power-state"; - power-state-name = "runtime-idle"; - }; + power-states { + idle: idle { + compatible = "zephyr,power-state"; + power-state-name = "runtime-idle"; + }; - stop: stop { - compatible = "zephyr,power-state"; - power-state-name = "suspend-to-idle"; - substate-id = <0>; - }; + stop: stop { + compatible = "zephyr,power-state"; + power-state-name = "suspend-to-idle"; + substate-id = <0>; + }; - pstop1: pstop1 { - compatible = "zephyr,power-state"; - power-state-name = "suspend-to-idle"; - substate-id = <1>; - }; + pstop1: pstop1 { + compatible = "zephyr,power-state"; + power-state-name = "suspend-to-idle"; + substate-id = <1>; + }; - pstop2: pstop2 { - compatible = "zephyr,power-state"; - power-state-name = "suspend-to-idle"; - substate-id = <2>; + pstop2: pstop2 { + compatible = "zephyr,power-state"; + power-state-name = "suspend-to-idle"; + substate-id = <2>; + }; }; }; diff --git a/dts/arm/nxp/nxp_rt10xx.dtsi b/dts/arm/nxp/nxp_rt10xx.dtsi index 9a4fe00ed4b..46b6aeac2b2 100644 --- a/dts/arm/nxp/nxp_rt10xx.dtsi +++ b/dts/arm/nxp/nxp_rt10xx.dtsi @@ -42,20 +42,20 @@ swo-ref-frequency = <132000000>; }; }; - }; - power-states { - idle: idle { - compatible = "zephyr,power-state"; - power-state-name = "runtime-idle"; - exit-latency-us = <4000>; - min-residency-us = <5000>; - }; - suspend: suspend { - compatible = "zephyr,power-state"; - power-state-name = "suspend-to-idle"; - exit-latency-us = <5000>; - min-residency-us = <10000>; + power-states { + idle: idle { + compatible = "zephyr,power-state"; + power-state-name = "runtime-idle"; + exit-latency-us = <4000>; + min-residency-us = <5000>; + }; + suspend: suspend { + compatible = "zephyr,power-state"; + power-state-name = "suspend-to-idle"; + exit-latency-us = <5000>; + min-residency-us = <10000>; + }; }; }; diff --git a/dts/arm/nxp/nxp_rt11xx.dtsi b/dts/arm/nxp/nxp_rt11xx.dtsi index 6f907fdb640..eb423986fb5 100644 --- a/dts/arm/nxp/nxp_rt11xx.dtsi +++ b/dts/arm/nxp/nxp_rt11xx.dtsi @@ -52,34 +52,34 @@ arm,num-mpu-regions = <16>; }; }; - }; - power-states { - /* - * Power states are managed with set points (see page 30-35 of RT1170 - * datasheet). These set points correspond to various power - * savings, and associated transition (residency) times. - * - * Set points 1 and 10 were chosen as sane defaults to offer - * limited power savings and quick transitions when entering idle for - * short periods, and better power savings with longer transition - * times for long idle periods - */ - idle: set_point_1_wait { - /* idle corresponds to set point 1 (wait) for RT1170 */ - compatible = "zephyr,power-state"; - power-state-name="runtime-idle"; - substate-id = ; - min-residency-us = <100>; - }; + power-states { + /* + * Power states are managed with set points (see page 30-35 of RT1170 + * datasheet). These set points correspond to various power + * savings, and associated transition (residency) times. + * + * Set points 1 and 10 were chosen as sane defaults to offer + * limited power savings and quick transitions when entering idle for + * short periods, and better power savings with longer transition + * times for long idle periods + */ + idle: set_point_1_wait { + /* idle corresponds to set point 1 (wait) for RT1170 */ + compatible = "zephyr,power-state"; + power-state-name="runtime-idle"; + substate-id = ; + min-residency-us = <100>; + }; - suspend: set_point_10_suspend { - /* suspend corresponds to set point 10 for RT1170 */ - compatible = "zephyr,power-state"; - power-state-name="suspend-to-idle"; - substate-id = ; - min-residency-us = <5000>; - exit-latency-us = <500>; + suspend: set_point_10_suspend { + /* suspend corresponds to set point 10 for RT1170 */ + compatible = "zephyr,power-state"; + power-state-name="suspend-to-idle"; + substate-id = ; + min-residency-us = <5000>; + exit-latency-us = <500>; + }; }; }; diff --git a/dts/arm/nxp/nxp_rt5xx_common.dtsi b/dts/arm/nxp/nxp_rt5xx_common.dtsi index 87d20a445df..6040ba3f47a 100644 --- a/dts/arm/nxp/nxp_rt5xx_common.dtsi +++ b/dts/arm/nxp/nxp_rt5xx_common.dtsi @@ -35,37 +35,39 @@ arm,num-mpu-regions = <8>; }; }; - }; - power-states { - /* This is the setting Sleep Mode */ - idle: idle { - compatible = "zephyr,power-state"; - power-state-name = "runtime-idle"; - min-residency-us = <0>; - exit-latency-us = <0>; - }; - /* This is the setting for Deep-sleep Mode */ - suspend: suspend { - compatible = "nxp,pdcfg-power", "zephyr,power-state"; - power-state-name = "suspend-to-idle"; - min-residency-us = <500>; - exit-latency-us = <120>; + power-states { + /* This is the setting Sleep Mode */ + idle: idle { + compatible = "zephyr,power-state"; + power-state-name = "runtime-idle"; + min-residency-us = <0>; + exit-latency-us = <0>; + }; + /* This is the setting for Deep-sleep Mode */ + suspend: suspend { + compatible = "nxp,pdcfg-power", "zephyr,power-state"; + power-state-name = "suspend-to-idle"; + min-residency-us = <500>; + exit-latency-us = <120>; + /* + * These values are written to the PDSLEEPCFG + * registers to keep certain blocks such as + * LPOSC, SRAM's, FlexSPI0 SRAM powered on + * during deep sleep mode. + */ + deep-sleep-config = <0xC800>, + <0x80000004>, + <0xFFFFFFFF>, + <0>; + }; /* - * These values are written to the PDSLEEPCFG registers to keep certain - * blocks such as LPOSC, SRAM's, FlexSPI0 SRAM powered on during deep - * sleep mode. + * Deep power-down mode is supported in this SoC through + * 'PM_STATE_SOFT_OFF' state. There is no entry for this + * in device tree, user can call pm_state_force to enter + * this state. */ - deep-sleep-config = <0xC800>, - <0x80000004>, - <0xFFFFFFFF>, - <0>; }; - /* - * Deep power-down mode is supported in this SoC through 'PM_STATE_SOFT_OFF' state. - * There is no entry for this in device tree, user can call pm_state_force to enter - * this state. - */ }; }; diff --git a/dts/arm/nxp/nxp_rt6xx_common.dtsi b/dts/arm/nxp/nxp_rt6xx_common.dtsi index 20e7c805cbb..3629772d746 100644 --- a/dts/arm/nxp/nxp_rt6xx_common.dtsi +++ b/dts/arm/nxp/nxp_rt6xx_common.dtsi @@ -33,18 +33,18 @@ arm,num-mpu-regions = <8>; }; }; - }; - power-states { - idle: idle { - compatible = "zephyr,power-state"; - power-state-name = "runtime-idle"; - min-residency-us = <10>; - }; - suspend: suspend { - compatible = "zephyr,power-state"; - power-state-name = "suspend-to-idle"; - min-residency-us = <1000>; + power-states { + idle: idle { + compatible = "zephyr,power-state"; + power-state-name = "runtime-idle"; + min-residency-us = <10>; + }; + suspend: suspend { + compatible = "zephyr,power-state"; + power-state-name = "suspend-to-idle"; + min-residency-us = <1000>; + }; }; }; }; diff --git a/dts/arm/silabs/efr32bg2x.dtsi b/dts/arm/silabs/efr32bg2x.dtsi index bb6a0d847af..deee10ccdde 100644 --- a/dts/arm/silabs/efr32bg2x.dtsi +++ b/dts/arm/silabs/efr32bg2x.dtsi @@ -17,57 +17,6 @@ zephyr,entropy = &trng; }; - power-states { - /* - * EM1 is a basic "CPU WFI idle", all high-freq clocks remain - * enabled. - */ - pstate_em1: em1 { - compatible = "zephyr,power-state"; - power-state-name = "runtime-idle"; - min-residency-us = <4>; - /* HFXO remains active */ - exit-latency-us = <2>; - }; - - /* - * EM2 is a deepsleep with HF clocks disabled by HW, voltages - * scaled down, etc. - */ - pstate_em2: em2 { - compatible = "zephyr,power-state"; - power-state-name = "suspend-to-idle"; - min-residency-us = <260>; - exit-latency-us = <250>; - }; - - /* - * EM3 seems to be exactly the same as EM2 except that - * LFXO & LFRCO should be disabled, so you must use ULFRCO - * as BURTC clock for the system to not lose track of time and - * wake up. - */ - pstate_em3: em3 { - compatible = "zephyr,power-state"; - power-state-name = "standby"; - min-residency-us = <20000>; - exit-latency-us = <2000>; - }; - - /* - * EM4 does not preserve CPU or RAM state, so system runs - * through a cold boot upon wake up. BURTC can wake up the - * system from EM4 but that has to be manually configured - * by the application in BURTC registers. - */ - pstate_em4: em4 { - compatible = "zephyr,power-state"; - power-state-name = "soft-off"; - min-residency-us = <100000>; - exit-latency-us = <80000>; - }; - }; - cpus { #address-cells = <1>; #size-cells = <0>; @@ -89,6 +38,57 @@ */ cpu-power-states = <&pstate_em1>; }; + + power-states { + /* + * EM1 is a basic "CPU WFI idle", all high-freq clocks remain + * enabled. + */ + pstate_em1: em1 { + compatible = "zephyr,power-state"; + power-state-name = "runtime-idle"; + min-residency-us = <4>; + /* HFXO remains active */ + exit-latency-us = <2>; + }; + + /* + * EM2 is a deepsleep with HF clocks disabled by HW, voltages + * scaled down, etc. + */ + pstate_em2: em2 { + compatible = "zephyr,power-state"; + power-state-name = "suspend-to-idle"; + min-residency-us = <260>; + exit-latency-us = <250>; + }; + + /* + * EM3 seems to be exactly the same as EM2 except that + * LFXO & LFRCO should be disabled, so you must use ULFRCO + * as BURTC clock for the system to not lose track of time and + * wake up. + */ + pstate_em3: em3 { + compatible = "zephyr,power-state"; + power-state-name = "standby"; + min-residency-us = <20000>; + exit-latency-us = <2000>; + }; + + /* + * EM4 does not preserve CPU or RAM state, so system runs + * through a cold boot upon wake up. BURTC can wake up the + * system from EM4 but that has to be manually configured + * by the application in BURTC registers. + */ + pstate_em4: em4 { + compatible = "zephyr,power-state"; + power-state-name = "soft-off"; + min-residency-us = <100000>; + exit-latency-us = <80000>; + }; + }; }; sram0: memory@20000000 { diff --git a/dts/arm/silabs/efr32mg24.dtsi b/dts/arm/silabs/efr32mg24.dtsi index 39f5bc70a5a..6e75c9b6bbd 100644 --- a/dts/arm/silabs/efr32mg24.dtsi +++ b/dts/arm/silabs/efr32mg24.dtsi @@ -27,14 +27,14 @@ reg = <0>; cpu-power-states = <&state0>; }; - }; - power-states { - state0: state0 { - compatible = "zephyr,power-state"; - power-state-name = "standby"; - min-residency-us = <50000>; - exit-latency-us = <0>; + power-states { + state0: state0 { + compatible = "zephyr,power-state"; + power-state-name = "standby"; + min-residency-us = <50000>; + exit-latency-us = <0>; + }; }; }; diff --git a/dts/arm/st/g0/stm32g0.dtsi b/dts/arm/st/g0/stm32g0.dtsi index 1e25aba2eb1..bfc61d8cfea 100644 --- a/dts/arm/st/g0/stm32g0.dtsi +++ b/dts/arm/st/g0/stm32g0.dtsi @@ -34,6 +34,21 @@ compatible = "arm,cortex-m0+"; reg = <0>; }; + + power-states { + stop0: state0 { + compatible = "zephyr,power-state"; + power-state-name = "suspend-to-idle"; + substate-id = <1>; + min-residency-us = <20>; + }; + stop1: state1 { + compatible = "zephyr,power-state"; + power-state-name = "suspend-to-idle"; + substate-id = <2>; + min-residency-us = <100>; + }; + }; }; sram0: memory@20000000 { @@ -77,21 +92,6 @@ }; }; - power-states { - stop0: state0 { - compatible = "zephyr,power-state"; - power-state-name = "suspend-to-idle"; - substate-id = <1>; - min-residency-us = <20>; - }; - stop1: state1 { - compatible = "zephyr,power-state"; - power-state-name = "suspend-to-idle"; - substate-id = <2>; - min-residency-us = <100>; - }; - }; - soc { flash: flash-controller@40022000 { compatible = "st,stm32-flash-controller", "st,stm32g0-flash-controller"; diff --git a/dts/arm/st/g4/stm32g4.dtsi b/dts/arm/st/g4/stm32g4.dtsi index e3dccb86db8..32d6c4d5f87 100644 --- a/dts/arm/st/g4/stm32g4.dtsi +++ b/dts/arm/st/g4/stm32g4.dtsi @@ -33,6 +33,21 @@ compatible = "arm,cortex-m4f"; reg = <0>; }; + + power-states { + stop0: state0 { + compatible = "zephyr,power-state"; + power-state-name = "suspend-to-idle"; + substate-id = <1>; + min-residency-us = <20>; + }; + stop1: state1 { + compatible = "zephyr,power-state"; + power-state-name = "suspend-to-idle"; + substate-id = <2>; + min-residency-us = <100>; + }; + }; }; sram0: memory@20000000 { @@ -82,21 +97,6 @@ }; }; - power-states { - stop0: state0 { - compatible = "zephyr,power-state"; - power-state-name = "suspend-to-idle"; - substate-id = <1>; - min-residency-us = <20>; - }; - stop1: state1 { - compatible = "zephyr,power-state"; - power-state-name = "suspend-to-idle"; - substate-id = <2>; - min-residency-us = <100>; - }; - }; - soc { /* * Both adc instances cannot be used in parallel right now. diff --git a/dts/arm/st/l0/stm32l0.dtsi b/dts/arm/st/l0/stm32l0.dtsi index 25c1158ba1d..2a77be4c636 100644 --- a/dts/arm/st/l0/stm32l0.dtsi +++ b/dts/arm/st/l0/stm32l0.dtsi @@ -32,14 +32,14 @@ reg = <0>; cpu-power-states = <&stop>; }; - }; - power-states { - stop: stop { - compatible = "zephyr,power-state"; - power-state-name = "suspend-to-idle"; - min-residency-us = <2000>; - exit-latency-us = <750>; + power-states { + stop: stop { + compatible = "zephyr,power-state"; + power-state-name = "suspend-to-idle"; + min-residency-us = <2000>; + exit-latency-us = <750>; + }; }; }; diff --git a/dts/arm/st/l4/stm32l4.dtsi b/dts/arm/st/l4/stm32l4.dtsi index d3e9caa475e..1b6452119fe 100644 --- a/dts/arm/st/l4/stm32l4.dtsi +++ b/dts/arm/st/l4/stm32l4.dtsi @@ -33,6 +33,27 @@ compatible = "arm,cortex-m4f"; reg = <0>; }; + + power-states { + stop0: state0 { + compatible = "zephyr,power-state"; + power-state-name = "suspend-to-idle"; + substate-id = <1>; + min-residency-us = <500>; + }; + stop1: state1 { + compatible = "zephyr,power-state"; + power-state-name = "suspend-to-idle"; + substate-id = <2>; + min-residency-us = <700>; + }; + stop2: state2 { + compatible = "zephyr,power-state"; + power-state-name = "suspend-to-idle"; + substate-id = <3>; + min-residency-us = <1000>; + }; + }; }; sram0: memory@20000000 { @@ -82,27 +103,6 @@ }; }; - power-states { - stop0: state0 { - compatible = "zephyr,power-state"; - power-state-name = "suspend-to-idle"; - substate-id = <1>; - min-residency-us = <500>; - }; - stop1: state1 { - compatible = "zephyr,power-state"; - power-state-name = "suspend-to-idle"; - substate-id = <2>; - min-residency-us = <700>; - }; - stop2: state2 { - compatible = "zephyr,power-state"; - power-state-name = "suspend-to-idle"; - substate-id = <3>; - min-residency-us = <1000>; - }; - }; - soc { flash: flash-controller@40022000 { compatible = "st,stm32-flash-controller", "st,stm32l4-flash-controller"; diff --git a/dts/arm/st/l5/stm32l5.dtsi b/dts/arm/st/l5/stm32l5.dtsi index b8be5a6be4f..28c7d87491b 100644 --- a/dts/arm/st/l5/stm32l5.dtsi +++ b/dts/arm/st/l5/stm32l5.dtsi @@ -42,6 +42,27 @@ arm,num-mpu-regions = <8>; }; }; + + power-states { + stop0: state0 { + compatible = "zephyr,power-state"; + power-state-name = "suspend-to-idle"; + substate-id = <1>; + min-residency-us = <100>; + }; + stop1: state1 { + compatible = "zephyr,power-state"; + power-state-name = "suspend-to-idle"; + substate-id = <2>; + min-residency-us = <500>; + }; + stop2: state2 { + compatible = "zephyr,power-state"; + power-state-name = "suspend-to-idle"; + substate-id = <3>; + min-residency-us = <900>; + }; + }; }; sram0: memory@20000000 { @@ -98,27 +119,6 @@ }; }; - power-states { - stop0: state0 { - compatible = "zephyr,power-state"; - power-state-name = "suspend-to-idle"; - substate-id = <1>; - min-residency-us = <100>; - }; - stop1: state1 { - compatible = "zephyr,power-state"; - power-state-name = "suspend-to-idle"; - substate-id = <2>; - min-residency-us = <500>; - }; - stop2: state2 { - compatible = "zephyr,power-state"; - power-state-name = "suspend-to-idle"; - substate-id = <3>; - min-residency-us = <900>; - }; - }; - soc { flash: flash-controller@40022000 { compatible = "st,stm32-flash-controller", "st,stm32l5-flash-controller"; diff --git a/dts/arm/st/u5/stm32u5.dtsi b/dts/arm/st/u5/stm32u5.dtsi index 343bc8ed4e2..91f5822673b 100644 --- a/dts/arm/st/u5/stm32u5.dtsi +++ b/dts/arm/st/u5/stm32u5.dtsi @@ -43,6 +43,27 @@ arm,num-mpu-regions = <8>; }; }; + + power-states { + stop0: state0 { + compatible = "zephyr,power-state"; + power-state-name = "suspend-to-idle"; + substate-id = <1>; + min-residency-us = <100>; + }; + stop1: state1 { + compatible = "zephyr,power-state"; + power-state-name = "suspend-to-idle"; + substate-id = <2>; + min-residency-us = <500>; + }; + stop2: state2 { + compatible = "zephyr,power-state"; + power-state-name = "suspend-to-idle"; + substate-id = <3>; + min-residency-us = <900>; + }; + }; }; sram0: memory@20000000 { @@ -118,27 +139,6 @@ }; }; - power-states { - stop0: state0 { - compatible = "zephyr,power-state"; - power-state-name = "suspend-to-idle"; - substate-id = <1>; - min-residency-us = <100>; - }; - stop1: state1 { - compatible = "zephyr,power-state"; - power-state-name = "suspend-to-idle"; - substate-id = <2>; - min-residency-us = <500>; - }; - stop2: state2 { - compatible = "zephyr,power-state"; - power-state-name = "suspend-to-idle"; - substate-id = <3>; - min-residency-us = <900>; - }; - }; - soc { flash: flash-controller@40022000 { compatible = "st,stm32-flash-controller", "st,stm32l5-flash-controller"; diff --git a/dts/arm/st/wb/stm32wb.dtsi b/dts/arm/st/wb/stm32wb.dtsi index 67b8bc87f0f..84f459dcf6f 100644 --- a/dts/arm/st/wb/stm32wb.dtsi +++ b/dts/arm/st/wb/stm32wb.dtsi @@ -32,6 +32,27 @@ compatible = "arm,cortex-m4f"; reg = <0>; }; + + power-states { + stop0: state0 { + compatible = "zephyr,power-state"; + power-state-name = "suspend-to-idle"; + substate-id = <1>; + min-residency-us = <100>; + }; + stop1: state1 { + compatible = "zephyr,power-state"; + power-state-name = "suspend-to-idle"; + substate-id = <2>; + min-residency-us = <500>; + }; + stop2: state2 { + compatible = "zephyr,power-state"; + power-state-name = "suspend-to-idle"; + substate-id = <3>; + min-residency-us = <900>; + }; + }; }; sram0: memory@20000000 { @@ -115,27 +136,6 @@ }; }; - power-states { - stop0: state0 { - compatible = "zephyr,power-state"; - power-state-name = "suspend-to-idle"; - substate-id = <1>; - min-residency-us = <100>; - }; - stop1: state1 { - compatible = "zephyr,power-state"; - power-state-name = "suspend-to-idle"; - substate-id = <2>; - min-residency-us = <500>; - }; - stop2: state2 { - compatible = "zephyr,power-state"; - power-state-name = "suspend-to-idle"; - substate-id = <3>; - min-residency-us = <900>; - }; - }; - soc { flash: flash-controller@58004000 { compatible = "st,stm32-flash-controller", "st,stm32wb-flash-controller"; diff --git a/dts/arm/st/wba/stm32wba.dtsi b/dts/arm/st/wba/stm32wba.dtsi index 03b75e322f4..ed4f4ac49a4 100644 --- a/dts/arm/st/wba/stm32wba.dtsi +++ b/dts/arm/st/wba/stm32wba.dtsi @@ -40,20 +40,20 @@ arm,num-mpu-regions = <8>; }; }; - }; - power-states { - stop0: state0 { - compatible = "zephyr,power-state"; - power-state-name = "suspend-to-idle"; - substate-id = <1>; - min-residency-us = <100>; - }; - stop1: state1 { - compatible = "zephyr,power-state"; - power-state-name = "suspend-to-idle"; - substate-id = <2>; - min-residency-us = <500>; + power-states { + stop0: state0 { + compatible = "zephyr,power-state"; + power-state-name = "suspend-to-idle"; + substate-id = <1>; + min-residency-us = <100>; + }; + stop1: state1 { + compatible = "zephyr,power-state"; + power-state-name = "suspend-to-idle"; + substate-id = <2>; + min-residency-us = <500>; + }; }; }; diff --git a/dts/arm/st/wl/stm32wl.dtsi b/dts/arm/st/wl/stm32wl.dtsi index 5b01255446f..26da70106c1 100644 --- a/dts/arm/st/wl/stm32wl.dtsi +++ b/dts/arm/st/wl/stm32wl.dtsi @@ -33,6 +33,27 @@ reg = <0>; cpu-power-states = <&stop0 &stop1 &stop2>; }; + + power-states { + stop0: state0 { + compatible = "zephyr,power-state"; + power-state-name = "suspend-to-idle"; + substate-id = <1>; + min-residency-us = <100>; + }; + stop1: state1 { + compatible = "zephyr,power-state"; + power-state-name = "suspend-to-idle"; + substate-id = <2>; + min-residency-us = <500>; + }; + stop2: state2 { + compatible = "zephyr,power-state"; + power-state-name = "suspend-to-idle"; + substate-id = <3>; + min-residency-us = <900>; + }; + }; }; sram0: memory@20000000 { @@ -84,27 +105,6 @@ }; }; - power-states { - stop0: state0 { - compatible = "zephyr,power-state"; - power-state-name = "suspend-to-idle"; - substate-id = <1>; - min-residency-us = <100>; - }; - stop1: state1 { - compatible = "zephyr,power-state"; - power-state-name = "suspend-to-idle"; - substate-id = <2>; - min-residency-us = <500>; - }; - stop2: state2 { - compatible = "zephyr,power-state"; - power-state-name = "suspend-to-idle"; - substate-id = <3>; - min-residency-us = <900>; - }; - }; - soc { flash: flash-controller@58004000 { compatible = "st,stm32-flash-controller", "st,stm32l4-flash-controller"; diff --git a/dts/arm/ti/cc13xx_cc26xx.dtsi b/dts/arm/ti/cc13xx_cc26xx.dtsi index a536d7b6522..b57349eb837 100644 --- a/dts/arm/ti/cc13xx_cc26xx.dtsi +++ b/dts/arm/ti/cc13xx_cc26xx.dtsi @@ -25,20 +25,20 @@ reg = <0>; cpu-power-states = <&idle &standby>; }; - }; - power-states { - idle: idle { - compatible = "zephyr,power-state"; - power-state-name = "suspend-to-idle"; - min-residency-us = <1000>; - }; + power-states { + idle: idle { + compatible = "zephyr,power-state"; + power-state-name = "suspend-to-idle"; + min-residency-us = <1000>; + }; - standby: standby { - compatible = "zephyr,power-state"; - power-state-name = "standby"; - min-residency-us = <5000>; - exit-latency-us = <240>; + standby: standby { + compatible = "zephyr,power-state"; + power-state-name = "standby"; + min-residency-us = <5000>; + exit-latency-us = <240>; + }; }; }; diff --git a/dts/riscv/espressif/esp32c3.dtsi b/dts/riscv/espressif/esp32c3.dtsi index 8b2e584987e..9d751c1fe7e 100644 --- a/dts/riscv/espressif/esp32c3.dtsi +++ b/dts/riscv/espressif/esp32c3.dtsi @@ -35,21 +35,21 @@ reg = <0>; cpu-power-states = <&light_sleep &deep_sleep>; }; - }; - power-states { - light_sleep: light_sleep { - compatible = "zephyr,power-state"; - power-state-name = "standby"; - min-residency-us = <200>; - exit-latency-us = <60>; - }; + power-states { + light_sleep: light_sleep { + compatible = "zephyr,power-state"; + power-state-name = "standby"; + min-residency-us = <200>; + exit-latency-us = <60>; + }; - deep_sleep: deep_sleep { - compatible = "zephyr,power-state"; - power-state-name = "soft-off"; - min-residency-us = <660>; - exit-latency-us = <105>; + deep_sleep: deep_sleep { + compatible = "zephyr,power-state"; + power-state-name = "soft-off"; + min-residency-us = <660>; + exit-latency-us = <105>; + }; }; }; diff --git a/dts/riscv/ite/it8xxx2.dtsi b/dts/riscv/ite/it8xxx2.dtsi index 3fbf0c06252..c0e5933346d 100644 --- a/dts/riscv/ite/it8xxx2.dtsi +++ b/dts/riscv/ite/it8xxx2.dtsi @@ -33,13 +33,13 @@ reg = <0>; cpu-power-states = <&standby>; }; - }; - power-states { - standby: standby { - compatible = "zephyr,power-state"; - power-state-name = "standby"; - min-residency-us = <500>; + power-states { + standby: standby { + compatible = "zephyr,power-state"; + power-state-name = "standby"; + min-residency-us = <500>; + }; }; }; diff --git a/dts/xtensa/espressif/esp32.dtsi b/dts/xtensa/espressif/esp32.dtsi index fe86379081f..f8acfbdfb9c 100644 --- a/dts/xtensa/espressif/esp32.dtsi +++ b/dts/xtensa/espressif/esp32.dtsi @@ -37,22 +37,20 @@ reg = <1>; }; - }; + power-states { + light_sleep: light_sleep { + compatible = "zephyr,power-state"; + power-state-name = "standby"; + min-residency-us = <200>; + exit-latency-us = <60>; + }; - - power-states { - light_sleep: light_sleep { - compatible = "zephyr,power-state"; - power-state-name = "standby"; - min-residency-us = <200>; - exit-latency-us = <60>; - }; - - deep_sleep: deep_sleep { - compatible = "zephyr,power-state"; - power-state-name = "soft-off"; - min-residency-us = <2000>; - exit-latency-us = <212>; + deep_sleep: deep_sleep { + compatible = "zephyr,power-state"; + power-state-name = "soft-off"; + min-residency-us = <2000>; + exit-latency-us = <212>; + }; }; }; diff --git a/dts/xtensa/espressif/esp32s2.dtsi b/dts/xtensa/espressif/esp32s2.dtsi index a335abb3924..898701457d4 100644 --- a/dts/xtensa/espressif/esp32s2.dtsi +++ b/dts/xtensa/espressif/esp32s2.dtsi @@ -36,21 +36,21 @@ reg = <0>; cpu-power-states = <&light_sleep &deep_sleep>; }; - }; - power-states { - light_sleep: light_sleep { - compatible = "zephyr,power-state"; - power-state-name = "standby"; - min-residency-us = <200>; - exit-latency-us = <60>; - }; + power-states { + light_sleep: light_sleep { + compatible = "zephyr,power-state"; + power-state-name = "standby"; + min-residency-us = <200>; + exit-latency-us = <60>; + }; - deep_sleep: deep_sleep { - compatible = "zephyr,power-state"; - power-state-name = "soft-off"; - min-residency-us = <2000>; - exit-latency-us = <212>; + deep_sleep: deep_sleep { + compatible = "zephyr,power-state"; + power-state-name = "soft-off"; + min-residency-us = <2000>; + exit-latency-us = <212>; + }; }; }; diff --git a/dts/xtensa/intel/intel_adsp_ace15_mtpm.dtsi b/dts/xtensa/intel/intel_adsp_ace15_mtpm.dtsi index a786f493296..1a669d5eb44 100644 --- a/dts/xtensa/intel/intel_adsp_ace15_mtpm.dtsi +++ b/dts/xtensa/intel/intel_adsp_ace15_mtpm.dtsi @@ -34,23 +34,23 @@ reg = <2>; cpu-power-states = <&d0i3 &d3>; }; - }; - power-states { - d0i3: idle { - compatible = "zephyr,power-state"; - power-state-name = "runtime-idle"; - min-residency-us = <200>; - exit-latency-us = <100>; - }; - /* PM_STATE_SOFT_OFF can be entered only by calling pm_state_force. - * The procedure is triggered by IPC from the HOST (SET_DX). - */ - d3: off { - compatible = "zephyr,power-state"; - power-state-name = "soft-off"; - min-residency-us = <2147483647>; - exit-latency-us = <0>; + power-states { + d0i3: idle { + compatible = "zephyr,power-state"; + power-state-name = "runtime-idle"; + min-residency-us = <200>; + exit-latency-us = <100>; + }; + /* PM_STATE_SOFT_OFF can be entered only by calling pm_state_force. + * The procedure is triggered by IPC from the HOST (SET_DX). + */ + d3: off { + compatible = "zephyr,power-state"; + power-state-name = "soft-off"; + min-residency-us = <2147483647>; + exit-latency-us = <0>; + }; }; }; diff --git a/dts/xtensa/intel/intel_adsp_ace20_lnl.dtsi b/dts/xtensa/intel/intel_adsp_ace20_lnl.dtsi index b5f57ac5183..903d72e0d56 100644 --- a/dts/xtensa/intel/intel_adsp_ace20_lnl.dtsi +++ b/dts/xtensa/intel/intel_adsp_ace20_lnl.dtsi @@ -49,23 +49,22 @@ cpu-power-states = <&d0i3 &d3>; }; - }; - - power-states { - d0i3: idle { - compatible = "zephyr,power-state"; - power-state-name = "runtime-idle"; - min-residency-us = <200>; - exit-latency-us = <100>; - }; - /* PM_STATE_SOFT_OFF can be entered only by calling pm_state_force. - * The procedure is triggered by IPC from the HOST (SET_DX). - */ - d3: off { - compatible = "zephyr,power-state"; - power-state-name = "soft-off"; - min-residency-us = <2147483647>; - exit-latency-us = <0>; + power-states { + d0i3: idle { + compatible = "zephyr,power-state"; + power-state-name = "runtime-idle"; + min-residency-us = <200>; + exit-latency-us = <100>; + }; + /* PM_STATE_SOFT_OFF can be entered only by calling pm_state_force. + * The procedure is triggered by IPC from the HOST (SET_DX). + */ + d3: off { + compatible = "zephyr,power-state"; + power-state-name = "soft-off"; + min-residency-us = <2147483647>; + exit-latency-us = <0>; + }; }; }; diff --git a/dts/xtensa/intel/intel_adsp_cavs25.dtsi b/dts/xtensa/intel/intel_adsp_cavs25.dtsi index 02142c30b63..1039a00b094 100644 --- a/dts/xtensa/intel/intel_adsp_cavs25.dtsi +++ b/dts/xtensa/intel/intel_adsp_cavs25.dtsi @@ -41,17 +41,18 @@ reg = <3>; cpu-power-states = <&d3>; }; - }; - power-states { - /* PM_STATE_SOFT_OFF can be entered only by calling pm_state_force. - * The procedure is triggered by IPC from the HOST (SET_DX). - */ - d3: off { - compatible = "zephyr,power-state"; - power-state-name = "soft-off"; - min-residency-us = <2147483647>; - exit-latency-us = <0>; + power-states { + /* PM_STATE_SOFT_OFF can be entered only by calling + * pm_state_force. The procedure is triggered by IPC + * from the HOST (SET_DX). + */ + d3: off { + compatible = "zephyr,power-state"; + power-state-name = "soft-off"; + min-residency-us = <2147483647>; + exit-latency-us = <0>; + }; }; }; diff --git a/dts/xtensa/intel/intel_adsp_cavs25_tgph.dtsi b/dts/xtensa/intel/intel_adsp_cavs25_tgph.dtsi index 6cdd0e4c887..a03605df515 100644 --- a/dts/xtensa/intel/intel_adsp_cavs25_tgph.dtsi +++ b/dts/xtensa/intel/intel_adsp_cavs25_tgph.dtsi @@ -27,17 +27,18 @@ reg = <1>; cpu-power-states = <&d3>; }; - }; - power-states { - /* PM_STATE_SOFT_OFF can be entered only by calling pm_state_force. - * The procedure is triggered by IPC from the HOST (SET_DX). - */ - d3: off { - compatible = "zephyr,power-state"; - power-state-name = "soft-off"; - min-residency-us = <2147483647>; - exit-latency-us = <0>; + power-states { + /* PM_STATE_SOFT_OFF can be entered only by calling + * pm_state_force. The procedure is triggered by IPC + * from the HOST (SET_DX). + */ + d3: off { + compatible = "zephyr,power-state"; + power-state-name = "soft-off"; + min-residency-us = <2147483647>; + exit-latency-us = <0>; + }; }; }; diff --git a/include/zephyr/pm/state.h b/include/zephyr/pm/state.h index 1f5fd217ed5..c7fe6f4b4ac 100644 --- a/include/zephyr/pm/state.h +++ b/include/zephyr/pm/state.h @@ -227,24 +227,24 @@ struct pm_state_info { * ... * cpu-power-states = <&state0 &state1>; * }; - * }; * - * ... - * power-states { - * state0: state0 { - * compatible = "zephyr,power-state"; - * power-state-name = "suspend-to-idle"; - * min-residency-us = <10000>; - * exit-latency-us = <100>; - * }; + * power-states { + * state0: state0 { + * compatible = "zephyr,power-state"; + * power-state-name = "suspend-to-idle"; + * min-residency-us = <10000>; + * exit-latency-us = <100>; + * }; * - * state1: state1 { - * compatible = "zephyr,power-state"; - * power-state-name = "suspend-to-ram"; - * min-residency-us = <50000>; - * exit-latency-us = <500>; + * state1: state1 { + * compatible = "zephyr,power-state"; + * power-state-name = "suspend-to-ram"; + * min-residency-us = <50000>; + * exit-latency-us = <500>; + * }; * }; * }; + * @endcode * * Example usage: @@ -276,22 +276,21 @@ struct pm_state_info { * ... * cpu-power-states = <&state0 &state1>; * }; - * }; * - * ... - * power-states { - * state0: state0 { - * compatible = "zephyr,power-state"; - * power-state-name = "suspend-to-idle"; - * min-residency-us = <10000>; - * exit-latency-us = <100>; - * }; + * power-states { + * state0: state0 { + * compatible = "zephyr,power-state"; + * power-state-name = "suspend-to-idle"; + * min-residency-us = <10000>; + * exit-latency-us = <100>; + * }; * - * state1: state1 { - * compatible = "zephyr,power-state"; - * power-state-name = "suspend-to-ram"; - * min-residency-us = <50000>; - * exit-latency-us = <500>; + * state1: state1 { + * compatible = "zephyr,power-state"; + * power-state-name = "suspend-to-ram"; + * min-residency-us = <50000>; + * exit-latency-us = <500>; + * }; * }; * }; * @endcode diff --git a/tests/subsys/pm/power_states_api/boards/native_posix.overlay b/tests/subsys/pm/power_states_api/boards/native_posix.overlay index 247ca393448..79fafb582b0 100644 --- a/tests/subsys/pm/power_states_api/boards/native_posix.overlay +++ b/tests/subsys/pm/power_states_api/boards/native_posix.overlay @@ -5,26 +5,30 @@ */ / { - state0: state0 { - compatible = "zephyr,power-state"; - power-state-name = "suspend-to-idle"; - min-residency-us = <10000>; - exit-latency-us = <100>; - }; + cpus { + cpu@0 { + cpu-power-states = <&state0 &state1 &state2>; + }; - state1: state1 { - compatible = "zephyr,power-state"; - power-state-name = "suspend-to-ram"; - min-residency-us = <50000>; - exit-latency-us = <500>; - }; + power-states { + state0: state0 { + compatible = "zephyr,power-state"; + power-state-name = "suspend-to-idle"; + min-residency-us = <10000>; + exit-latency-us = <100>; + }; - state2: state2 { - compatible = "zephyr,power-state"; - power-state-name = "standby"; + state1: state1 { + compatible = "zephyr,power-state"; + power-state-name = "suspend-to-ram"; + min-residency-us = <50000>; + exit-latency-us = <500>; + }; + + state2: state2 { + compatible = "zephyr,power-state"; + power-state-name = "standby"; + }; + }; }; }; - -&cpu0 { - cpu-power-states = <&state0 &state1 &state2>; -};