U-Boot passes timeout in milliseconds for ops->start. However the driver treats this value as seconds. This will cause an overflow on writing wdt register.
This patch divides the timeout by 1000 before writing to wdt register. Reviewed-by: Stefan Roese <s...@denx.de> Reviewed-by: Ryder Lee <ryder....@mediatek.com> Signed-off-by: Weijie Gao <weijie....@mediatek.com> --- Changes since v1: none --- drivers/watchdog/mtk_wdt.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/watchdog/mtk_wdt.c b/drivers/watchdog/mtk_wdt.c index 0b501733f2..19e3fde968 100644 --- a/drivers/watchdog/mtk_wdt.c +++ b/drivers/watchdog/mtk_wdt.c @@ -78,7 +78,7 @@ static void mtk_wdt_set_timeout(struct udevice *dev, unsigned int timeout) * One bit is the value of 512 ticks * The clock has 32 KHz */ - timeout = WDT_LENGTH_TIMEOUT(timeout << 6) | WDT_LENGTH_KEY; + timeout = WDT_LENGTH_TIMEOUT((timeout << 6) / 1000) | WDT_LENGTH_KEY; writel(timeout, priv->base + MTK_WDT_LENGTH); mtk_wdt_reset(dev); -- 2.18.0 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot