[PATCH] arm64: dts: rockchip: Add the watchdog reset to RK3399

Shawn Lin shawn.lin at rock-chips.com
Mon Oct 26 17:56:19 PDT 2026


Cc: Simon

在 2026/10/27 星期二 8:20, Igor Velkov via B4 Relay 写道:
> From: Igor Velkov <iav at iav.lv>
> 
> The RK3399 watchdog at 0xff848000 is reset by SRST_P_WDT0 (bit 5 of
> CRU_SOFTRST_CON20), but its node has no resets property. Its clock is
> gated from SECURE_GRF_SOC_CON3[8], out of reach for Linux, so without
> the reset dw_wdt_stop() can only set WDOG_HW_RUNNING and the watchdog
> keeps counting through s2idle: on a Kobol Helios64 and a ROCK Pi 4A,
> s2idle longer than the watchdog timeout ends in a watchdog reset.
> 
> With the reset line dw_wdt_stop() can stop the watchdog, and with
> "watchdog: dw_wdt: manage reset line during system suspend/resume" the
> driver holds it in reset while the system sleeps.
> 
> Signed-off-by: Igor Velkov <iav at iav.lv>
> ---
> The dw_wdt side is applied in the watchdog tree:
> https://lore.kernel.org/r/20261024140854.25664-3-a.shimko.dev@gmail.com
> ---
>   arch/arm64/boot/dts/rockchip/rk3399-base.dtsi | 1 +
>   1 file changed, 1 insertion(+)
> 
> diff --git a/arch/arm64/boot/dts/rockchip/rk3399-base.dtsi b/arch/arm64/boot/dts/rockchip/rk3399-base.dtsi
> index c46e58d4af0d..7b71b24c1f51 100644
> --- a/arch/arm64/boot/dts/rockchip/rk3399-base.dtsi
> +++ b/arch/arm64/boot/dts/rockchip/rk3399-base.dtsi
> @@ -1748,6 +1748,7 @@ watchdog at ff848000 {
>   		reg = <0x0 0xff848000 0x0 0x100>;
>   		clocks = <&cru PCLK_WDT>;
>   		interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH 0>;
> +		resets = <&cru SRST_P_WDT0>;
>   	};
>   
>   	rktimer: rktimer at ff850000 {
> 
> ---
> base-commit: d2abcbb905b0e4b2e06b257fa1e5bcf4faa6dbda
> change-id: 20261027-rk3399-wdt-reset-c58d2111609d
> 
> Best regards,




More information about the linux-arm-kernel mailing list