[PATCH 4/5] MIPS: Alchemy: Use the GPIO watchdog driver on MTX-1

From: Florian Fainelli

Date: Fri Oct 16 2026 - 18:19:52 EST


The MTX-1 watchdog is serviced by toggling GPIO 215. Describe its toggle
algorithm and 1.6-second minimum interval through the existing software
node properties, and register gpio-wdt instead of mtx1-wdt.

The nominal 100-second circuit reset the test board about 82 seconds after
starting an unclean-close test over the serial console. Allow for circuit
tolerance and console transmission time with a conservative 70-second
hardware service margin. Keep a 100-second initial userspace timeout and
let the core schedule keepalives for the longer userspace timeout.

Mark the watchdog always-running so the core services it before userspace
opens the device and after a clean stop, without trying to disable the
hardware by tristating the GPIO. Enable GPIO_WATCHDOG in the MTX-1
defconfig.

Signed-off-by: Florian Fainelli <f.fainelli@xxxxxxxxx>
---
arch/mips/alchemy/board-mtx1.c | 8 +++++++-
arch/mips/configs/mtx1_defconfig | 2 +-
2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/arch/mips/alchemy/board-mtx1.c b/arch/mips/alchemy/board-mtx1.c
index 88c20c0ca96d..8543ae42af92 100644
--- a/arch/mips/alchemy/board-mtx1.c
+++ b/arch/mips/alchemy/board-mtx1.c
@@ -125,13 +125,19 @@ static void __init mtx1_keys_init(void)
}

static const struct property_entry mtx1_wdt_props[] = {
+ PROPERTY_ENTRY_STRING("hw_algo", "toggle"),
+ /* Allow for tolerance in the nominal 100-second timeout. */
+ PROPERTY_ENTRY_U32("hw_margin_ms", 70000),
+ PROPERTY_ENTRY_U32("hw-min-interval-ms", 1600),
+ PROPERTY_ENTRY_U32("timeout-sec", 100),
+ PROPERTY_ENTRY_BOOL("always-running"),
/* Global number 215 is offset 15 on Alchemy GPIO 2 */
PROPERTY_ENTRY_GPIO("gpios", &alchemy_gpio2_node, 15, GPIO_ACTIVE_HIGH),
{ }
};

static const struct platform_device_info mtx1_wdt_info __initconst = {
- .name = "mtx1-wdt",
+ .name = "gpio-wdt",
.id = 0,
.properties = mtx1_wdt_props,
};
diff --git a/arch/mips/configs/mtx1_defconfig b/arch/mips/configs/mtx1_defconfig
index e28a0b1e6d52..5e060daded9d 100644
--- a/arch/mips/configs/mtx1_defconfig
+++ b/arch/mips/configs/mtx1_defconfig
@@ -377,7 +377,7 @@ CONFIG_SENSORS_W83627HF=m
CONFIG_SENSORS_W83627EHF=m
CONFIG_WATCHDOG=y
CONFIG_WATCHDOG_NOWAYOUT=y
-CONFIG_WDT_MTX1=y
+CONFIG_GPIO_WATCHDOG=y
# CONFIG_VGA_ARB is not set
# CONFIG_LCD_CLASS_DEVICE is not set
CONFIG_BACKLIGHT_CLASS_DEVICE=y
--
2.53.0