]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
wdt: nuvoton: Fix reset/expire function error
authorJim Liu <jim.t90615@gmail.com>
Wed, 18 Oct 2023 02:09:00 +0000 (10:09 +0800)
committerStefan Roese <sr@denx.de>
Thu, 19 Oct 2023 05:51:12 +0000 (07:51 +0200)
Fix npcm845 watchdog halt for reset function and expire function.
Reset function is restart wdt.

Signed-off-by: Jim Liu <JJLIU0@nuvoton.com>
Reviewed-by: Stefan Roese <sr@denx.de>
drivers/watchdog/npcm_wdt.c

index e56aa0ebe1d336529bfef37e2f40179f6c3bce8c..57b61215a2a39b57b186617ed1867f7b65019c00 100644 (file)
@@ -69,15 +69,21 @@ static int npcm_wdt_stop(struct udevice *dev)
 static int npcm_wdt_reset(struct udevice *dev)
 {
        struct npcm_wdt_priv *priv = dev_get_priv(dev);
+       u32 val;
 
-       writel(NPCM_WTR | NPCM_WTRE | NPCM_WTE, priv->regs);
+       val = readl(priv->regs);
+       writel(val | NPCM_WTR, priv->regs);
 
        return 0;
 }
 
 static int npcm_wdt_expire_now(struct udevice *dev, ulong flags)
 {
-       return npcm_wdt_reset(dev);
+       struct npcm_wdt_priv *priv = dev_get_priv(dev);
+
+       writel(NPCM_WTR | NPCM_WTRE | NPCM_WTE, priv->regs);
+
+       return 0;
 }
 
 static int npcm_wdt_of_to_plat(struct udevice *dev)