[Linux-stm32] [PATCH 7/7] arm64: dts: st: add power domains for STM32MP21 family
Patrick Delaunay
patrick.delaunay at foss.st.com
Wed Nov 4 14:55:10 CET 2026
Add the PSCI power domain for STM32MP21 family on CPU and cluster,
and the D1 power domain for devices that require the Cortex-A35
cluster to remain in Run1. The wake-up handling is only managed
by the PSCI power domain with EXTI.
Signed-off-by: Patrick Delaunay <patrick.delaunay at foss.st.com>
---
arch/arm64/boot/dts/st/stm32mp211.dtsi | 37 ++++++++++++++++++++++++++
1 file changed, 37 insertions(+)
diff --git a/arch/arm64/boot/dts/st/stm32mp211.dtsi b/arch/arm64/boot/dts/st/stm32mp211.dtsi
index 4bfd58b26b51..aad7c87dc8ca 100644
--- a/arch/arm64/boot/dts/st/stm32mp211.dtsi
+++ b/arch/arm64/boot/dts/st/stm32mp211.dtsi
@@ -18,6 +18,21 @@ cpu0: cpu at 0 {
reg = <0>;
device_type = "cpu";
enable-method = "psci";
+ power-domains = <&cpu0_pd>;
+ power-domain-names = "psci";
+ };
+
+ idle-states {
+ entry-method = "psci";
+
+ cpu_sleep: cpu-sleep {
+ compatible = "arm,idle-state";
+ arm,psci-suspend-param = <0x00000002>;
+ local-timer-stop;
+ entry-latency-us = <150>;
+ exit-latency-us = <200>;
+ min-residency-us = <1000>;
+ };
};
};
@@ -70,9 +85,30 @@ scmi_reset: protocol at 16 {
};
};
+ d1_pd: power-domain-d1 {
+ compatible = "st,stm32mp-pm-domain";
+ #power-domain-cells = <0>;
+ power-domains = <&cluster_pd>;
+ };
+
psci {
compatible = "arm,psci-1.0";
method = "smc";
+
+ cpu0_pd: power-domain-cpu0 {
+ #power-domain-cells = <0>;
+ domain-idle-states = <&cpu_sleep>;
+ power-domains = <&cluster_pd>;
+ };
+
+ cluster_pd: power-domain-cluster {
+ #power-domain-cells = <0>;
+ power-domains = <&ret_pd>;
+ };
+
+ ret_pd: power-domain-retention {
+ #power-domain-cells = <0>;
+ };
};
timer {
@@ -108,6 +144,7 @@ usart2: serial at 400e0000 {
interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
clocks = <&ck_flexgen_08>;
access-controllers = <&rifsc 32>;
+ power-domains = <&d1_pd>;
status = "disabled";
};
};
--
2.43.0
More information about the Linux-stm32
mailing list