[PATCH 1/3] ARM: dts: stm32: enable iwdg1 on STM32MP15 ST boards

From: Antonio Borneo

Date: Wed Oct 07 2026 - 11:17:28 EST


From: Amelie Delaunay <amelie.delaunay@xxxxxxxxxxx>

On ST STM32MP15 boards where IWDG1 is exposed as a non-secure watchdog,
Linux must register and periodically ping it once started by the
boot chain. Add the missing IWDG1 DT node to the STM32MP151 SoC device
tree and enable it on ST non-SCMI boards that use the non-secure
watchdog configuration.

Signed-off-by: Amelie Delaunay <amelie.delaunay@xxxxxxxxxxx>
Signed-off-by: Antonio Borneo <antonio.borneo@xxxxxxxxxxx>
---
arch/arm/boot/dts/st/stm32mp15-scmi.dtsi | 4 ++++
arch/arm/boot/dts/st/stm32mp151.dtsi | 9 +++++++++
arch/arm/boot/dts/st/stm32mp157c-ed1.dts | 5 +++++
arch/arm/boot/dts/st/stm32mp15xx-dkx.dtsi | 5 +++++
4 files changed, 23 insertions(+)

diff --git a/arch/arm/boot/dts/st/stm32mp15-scmi.dtsi b/arch/arm/boot/dts/st/stm32mp15-scmi.dtsi
index 98552fe45d4e0..cc9521b105262 100644
--- a/arch/arm/boot/dts/st/stm32mp15-scmi.dtsi
+++ b/arch/arm/boot/dts/st/stm32mp15-scmi.dtsi
@@ -64,6 +64,10 @@ scmi_usb33: regulator@2 {
};
};

+&iwdg1 {
+ status = "disabled";
+};
+
&reg11 {
status = "disabled";
};
diff --git a/arch/arm/boot/dts/st/stm32mp151.dtsi b/arch/arm/boot/dts/st/stm32mp151.dtsi
index e7fec8b49ae16..25f111c8aa7a4 100644
--- a/arch/arm/boot/dts/st/stm32mp151.dtsi
+++ b/arch/arm/boot/dts/st/stm32mp151.dtsi
@@ -570,6 +570,15 @@ usbphyc_port1: usb-phy@1 {
};
};

+ iwdg1: watchdog@5c003000 {
+ compatible = "st,stm32mp1-iwdg";
+ reg = <0x5c003000 0x400>;
+ interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&rcc IWDG1>, <&rcc CK_LSI>;
+ clock-names = "pclk", "lsi";
+ status = "disabled";
+ };
+
rtc: rtc@5c004000 {
compatible = "st,stm32mp1-rtc";
reg = <0x5c004000 0x400>;
diff --git a/arch/arm/boot/dts/st/stm32mp157c-ed1.dts b/arch/arm/boot/dts/st/stm32mp157c-ed1.dts
index 49dd555cc228c..dfe726b481629 100644
--- a/arch/arm/boot/dts/st/stm32mp157c-ed1.dts
+++ b/arch/arm/boot/dts/st/stm32mp157c-ed1.dts
@@ -331,6 +331,11 @@ &ipcc {
status = "okay";
};

+&iwdg1 {
+ timeout-sec = <32>;
+ status = "okay";
+};
+
&iwdg2 {
timeout-sec = <32>;
status = "okay";
diff --git a/arch/arm/boot/dts/st/stm32mp15xx-dkx.dtsi b/arch/arm/boot/dts/st/stm32mp15xx-dkx.dtsi
index 1a07ae09afb2a..e8e75e59f4c98 100644
--- a/arch/arm/boot/dts/st/stm32mp15xx-dkx.dtsi
+++ b/arch/arm/boot/dts/st/stm32mp15xx-dkx.dtsi
@@ -511,6 +511,11 @@ &ipcc {
status = "okay";
};

+&iwdg1 {
+ timeout-sec = <32>;
+ status = "okay";
+};
+
&iwdg2 {
timeout-sec = <32>;
status = "okay";
--
2.34.1