Prevent the Qualcomm watchdog from autostarting and ensure it's stopped when the driver probed. In some cases the watchdog is left running by a previous bootloader stage. Disable autostart so it isn't left running when we boot into the OS, this behaviour can be changed by enabling autostart in the board defconfig.
Signed-off-by: Casey Connolly <[email protected]> --- drivers/watchdog/Kconfig | 1 + drivers/watchdog/qcom-wdt.c | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig index 35ae7d106b1a..416d29d256a2 100644 --- a/drivers/watchdog/Kconfig +++ b/drivers/watchdog/Kconfig @@ -15,8 +15,9 @@ config WATCHDOG_AUTOSTART bool "Automatically start watchdog timer" depends on WDT default n if ARCH_SUNXI default n if ARCH_STM32MP + default n if ARCH_SNAPDRAGON default y help Automatically start watchdog timer and start servicing it during init phase. Enabled by default. Disable this option if you want diff --git a/drivers/watchdog/qcom-wdt.c b/drivers/watchdog/qcom-wdt.c index e4ebb1f31d4b..a8d7e7a79508 100644 --- a/drivers/watchdog/qcom-wdt.c +++ b/drivers/watchdog/qcom-wdt.c @@ -128,9 +128,9 @@ static int qcom_wdt_probe(struct udevice *dev) return rate < 0 ? (int)rate : -EINVAL; wdt->clk_rate = (ulong)rate; - return 0; + return qcom_wdt_stop(dev); } static const struct wdt_ops qcom_wdt_ops = { .start = qcom_wdt_start, -- 2.52.0

