[openwrt/openwrt] ramips: Switch Teltonika RUT5xx to kernel GPIO-line watchdog driver

LEDE Commits lede-commits at lists.infradead.org
Thu Feb 3 13:58:44 PST 2022


hauke pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/7c3efd5273fde3ec53d7f80670963e16512c6f17

commit 7c3efd5273fde3ec53d7f80670963e16512c6f17
Author: Sven Eckelmann <sven at narfation.org>
AuthorDate: Mon Jan 31 14:39:52 2022 +0100

    ramips: Switch Teltonika RUT5xx to kernel GPIO-line watchdog driver
    
    The commit 04e91631e050 ("om-watchdog: add support for Teltonika RUT5xx
    (ramips)") used the deprecated om-watchdog daemon to handle the GPIO-line
    connected watchdog on the Teltonika RUT5xx.
    
    But this daemon has massive problems since commit 30f61a34b4cf
    ("base-files: always use staged sysupgrade"). The process will always be
    stopped on sysupgrades. If the sysupgrade takes slightly longer, the
    watchdog is not triggered at the correct time and thus the sysupgrade will
    interrupted hard by the watchdog sysupgrade. And this hard interrupt can
    easily brick the device when there is no fallback (dual-boot, ...).
    
    Signed-off-by: Sven Eckelmann <sven at narfation.org>
---
 target/linux/ramips/dts/rt3050_teltonika_rut5xx.dts | 9 +++++++++
 target/linux/ramips/image/rt305x.mk                 | 1 -
 target/linux/ramips/rt305x/config-5.10              | 2 ++
 3 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/target/linux/ramips/dts/rt3050_teltonika_rut5xx.dts b/target/linux/ramips/dts/rt3050_teltonika_rut5xx.dts
index cfdb4d6b4b..6be2590a0c 100644
--- a/target/linux/ramips/dts/rt3050_teltonika_rut5xx.dts
+++ b/target/linux/ramips/dts/rt3050_teltonika_rut5xx.dts
@@ -33,6 +33,15 @@
 			linux,code = <KEY_RESTART>;
 		};
 	};
+
+	watchdog {
+		compatible = "linux,wdt-gpio";
+		gpios = <&gpio0 11 GPIO_ACTIVE_LOW>;
+		hw_algo = "toggle";
+		/* hw_margin_ms is actually 280s but driver limits it to 60s */
+		hw_margin_ms = <60000>;
+		always-running;
+	};
 };
 
 &spi0 {
diff --git a/target/linux/ramips/image/rt305x.mk b/target/linux/ramips/image/rt305x.mk
index e817c12e76..d8ea1d5673 100644
--- a/target/linux/ramips/image/rt305x.mk
+++ b/target/linux/ramips/image/rt305x.mk
@@ -990,7 +990,6 @@ define Device/teltonika_rut5xx
   IMAGE_SIZE := 16064k
   DEVICE_VENDOR := Teltonika
   DEVICE_MODEL := RUT5XX
-  DEVICE_PACKAGES := om-watchdog
   SUPPORTED_DEVICES += rut5xx
 endef
 TARGET_DEVICES += teltonika_rut5xx
diff --git a/target/linux/ramips/rt305x/config-5.10 b/target/linux/ramips/rt305x/config-5.10
index b62c441988..31dbec907e 100644
--- a/target/linux/ramips/rt305x/config-5.10
+++ b/target/linux/ramips/rt305x/config-5.10
@@ -60,6 +60,8 @@ CONFIG_GENERIC_SMP_IDLE_THREAD=y
 CONFIG_GENERIC_TIME_VSYSCALL=y
 CONFIG_GPIOLIB=y
 CONFIG_GPIO_RALINK=y
+CONFIG_GPIO_WATCHDOG=y
+# CONFIG_GPIO_WATCHDOG_ARCH_INITCALL is not set
 CONFIG_HANDLE_DOMAIN_IRQ=y
 CONFIG_HARDWARE_WATCHPOINTS=y
 CONFIG_HAS_DMA=y



More information about the lede-commits mailing list