If "start-at-boot" property is present in the device tree, start pinging hw watchdog at probe, in order to take advantage of kernel configs: - WATCHDOG_HANDLE_BOOT_ENABLED: Avoid possible reboot if hw watchdog was been enabled before the kernel (by uboot for example) and userspace doesn't take control of /dev/watchdog in time; - WATCHDOG_OPEN_TIMEOUT: Reboot if userspace doesn't take control of /dev/watchdog within the timeout. Signed-off-by: Francesco Zanella <francesco.zanella@xxxxxxxxx> --- drivers/watchdog/gpio_wdt.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/watchdog/gpio_wdt.c b/drivers/watchdog/gpio_wdt.c index 0923201ce874..1e6f0322ab7a 100644 --- a/drivers/watchdog/gpio_wdt.c +++ b/drivers/watchdog/gpio_wdt.c @@ -31,6 +31,7 @@ struct gpio_wdt_priv { struct gpio_desc *gpiod; bool state; bool always_running; + bool start_at_boot; unsigned int hw_algo; struct watchdog_device wdd; }; @@ -147,6 +148,9 @@ static int gpio_wdt_probe(struct platform_device *pdev) priv->always_running = of_property_read_bool(np, "always-running"); + priv->start_at_boot = of_property_read_bool(np, + "start-at-boot"); + watchdog_set_drvdata(&priv->wdd, priv); priv->wdd.info = &gpio_wdt_ident; @@ -161,7 +165,7 @@ static int gpio_wdt_probe(struct platform_device *pdev) watchdog_stop_on_reboot(&priv->wdd); - if (priv->always_running) + if (priv->always_running || priv->start_at_boot) gpio_wdt_start(&priv->wdd); return devm_watchdog_register_device(dev, &priv->wdd); -- 2.17.1