On Wed, Apr 21, 2021 at 06:26:21PM +0200, Francesco Zanella wrote: > 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); So the only real difference to always_running is that always_running doesn't stop the watchdog on close but keeps it running. Does that really warrant another property ? Why not just use always-running ? The special use case of being able to stop the watchdog doesn't seem to be worth the trouble. Please explain your use case. Guenter