[PATCH v3 08/13] ARM: dts: stm32: enable arm smc watchdog on stm32mp15x scmi boards

From: Antonio Borneo

Date: Fri Nov 06 2026 - 11:44:22 EST


From: Amelie Delaunay <amelie.delaunay@xxxxxxxxxxx>

On STM32MP15x SCMI boards, IWDG1 is secure and monitored by OP-TEE.

Enable the arm,smc-wdt node on ST SCMI board variants so that
Linux can control the secure watchdog through SMC calls.

With two watchdogs now enabled on ST STM32MP2xx boards, assign the
watchdog0 alias to the ARM SMC watchdog that may have been started
by an earlier boot stage. This allows userspace to identify and
ping the appropriate watchdog.

Signed-off-by: Amelie Delaunay <amelie.delaunay@xxxxxxxxxxx>
Signed-off-by: Antonio Borneo <antonio.borneo@xxxxxxxxxxx>
---
arch/arm/boot/dts/st/stm32mp157a-dk1-scmi.dts | 9 +++++++++
arch/arm/boot/dts/st/stm32mp157c-dk2-scmi.dts | 9 +++++++++
arch/arm/boot/dts/st/stm32mp157c-ed1-scmi.dts | 9 +++++++++
arch/arm/boot/dts/st/stm32mp157c-ev1-scmi.dts | 9 +++++++++
4 files changed, 36 insertions(+)

diff --git a/arch/arm/boot/dts/st/stm32mp157a-dk1-scmi.dts b/arch/arm/boot/dts/st/stm32mp157a-dk1-scmi.dts
index 53e40e2f776b7..2f4d212de3e9c 100644
--- a/arch/arm/boot/dts/st/stm32mp157a-dk1-scmi.dts
+++ b/arch/arm/boot/dts/st/stm32mp157a-dk1-scmi.dts
@@ -13,6 +13,10 @@ / {
model = "STMicroelectronics STM32MP157A-DK1 SCMI Discovery Board";
compatible = "st,stm32mp157a-dk1-scmi", "st,stm32mp157";

+ aliases {
+ watchdog0 = &arm_wdt;
+ };
+
reserved-memory {
optee@de000000 {
reg = <0xde000000 0x2000000>;
@@ -21,6 +25,11 @@ optee@de000000 {
};
};

+&arm_wdt {
+ timeout-sec = <32>;
+ status = "okay";
+};
+
&cpu0 {
clocks = <&scmi_clk CK_SCMI_MPU>;
};
diff --git a/arch/arm/boot/dts/st/stm32mp157c-dk2-scmi.dts b/arch/arm/boot/dts/st/stm32mp157c-dk2-scmi.dts
index 0790ed426ebc0..41ba8a5b756b1 100644
--- a/arch/arm/boot/dts/st/stm32mp157c-dk2-scmi.dts
+++ b/arch/arm/boot/dts/st/stm32mp157c-dk2-scmi.dts
@@ -13,6 +13,10 @@ / {
model = "STMicroelectronics STM32MP157C-DK2 SCMI Discovery Board";
compatible = "st,stm32mp157c-dk2-scmi", "st,stm32mp157";

+ aliases {
+ watchdog0 = &arm_wdt;
+ };
+
reserved-memory {
optee@de000000 {
reg = <0xde000000 0x2000000>;
@@ -21,6 +25,11 @@ optee@de000000 {
};
};

+&arm_wdt {
+ timeout-sec = <32>;
+ status = "okay";
+};
+
&cpu0 {
clocks = <&scmi_clk CK_SCMI_MPU>;
};
diff --git a/arch/arm/boot/dts/st/stm32mp157c-ed1-scmi.dts b/arch/arm/boot/dts/st/stm32mp157c-ed1-scmi.dts
index 0a3894aff4aea..2fad04ed60161 100644
--- a/arch/arm/boot/dts/st/stm32mp157c-ed1-scmi.dts
+++ b/arch/arm/boot/dts/st/stm32mp157c-ed1-scmi.dts
@@ -13,6 +13,10 @@ / {
model = "STMicroelectronics STM32MP157C-ED1 SCMI eval daughter";
compatible = "st,stm32mp157c-ed1-scmi", "st,stm32mp157";

+ aliases {
+ watchdog0 = &arm_wdt;
+ };
+
reserved-memory {
optee@fe000000 {
reg = <0xfe000000 0x2000000>;
@@ -21,6 +25,11 @@ optee@fe000000 {
};
};

+&arm_wdt {
+ timeout-sec = <32>;
+ status = "okay";
+};
+
&cpu0 {
clocks = <&scmi_clk CK_SCMI_MPU>;
};
diff --git a/arch/arm/boot/dts/st/stm32mp157c-ev1-scmi.dts b/arch/arm/boot/dts/st/stm32mp157c-ev1-scmi.dts
index c2b6efb1cbb74..d14506e9b6f0e 100644
--- a/arch/arm/boot/dts/st/stm32mp157c-ev1-scmi.dts
+++ b/arch/arm/boot/dts/st/stm32mp157c-ev1-scmi.dts
@@ -13,6 +13,10 @@ / {
model = "STMicroelectronics STM32MP157C-EV1 SCMI eval daughter on eval mother";
compatible = "st,stm32mp157c-ev1-scmi", "st,stm32mp157c-ed1", "st,stm32mp157";

+ aliases {
+ watchdog0 = &arm_wdt;
+ };
+
reserved-memory {
optee@fe000000 {
reg = <0xfe000000 0x2000000>;
@@ -21,6 +25,11 @@ optee@fe000000 {
};
};

+&arm_wdt {
+ timeout-sec = <32>;
+ status = "okay";
+};
+
&cpu0 {
clocks = <&scmi_clk CK_SCMI_MPU>;
};
--
2.34.1