Re: [PATCH 4/5] MIPS: Alchemy: Use the GPIO watchdog driver on MTX-1
From: Thomas Bogendoerfer
Date: Fri Oct 23 2026 - 04:33:55 EST
On Fri, Oct 16, 2026 at 03:16:16PM -0700, Florian Fainelli wrote:
> 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
>
Acked-by: Thomas Bogendoerfer <tsbogend@xxxxxxxxxxxxxxxx>
--
Crap can work. Given enough thrust pigs will fly, but it's not necessarily a
good idea. [ RFC1925, 2.3 ]