]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
watchdog: npcm: Support more timeout value
authorStanley Chu <yschu@nuvoton.com>
Tue, 16 Dec 2025 02:47:24 +0000 (10:47 +0800)
committerTom Rini <trini@konsulko.com>
Wed, 31 Dec 2025 16:17:00 +0000 (10:17 -0600)
Calculate a timeout value that is close to the requested value.

Signed-off-by: Stanley Chu <yschu@nuvoton.com>
drivers/watchdog/npcm_wdt.c

index 57b61215a2a39b57b186617ed1867f7b65019c00..7becc646fda9c3b586091793798014ac05cafbaa 100644 (file)
@@ -27,26 +27,11 @@ struct npcm_wdt_priv {
 static int npcm_wdt_start(struct udevice *dev, u64 timeout_ms, ulong flags)
 {
        struct npcm_wdt_priv *priv = dev_get_priv(dev);
-       u32 time_out, val;
-
-       time_out = (u32)(timeout_ms) / 1000;
-       if (time_out < 2)
-               val = 0x800;
-       else if (time_out < 3)
-               val = 0x420;
-       else if (time_out < 6)
-               val = 0x810;
-       else if (time_out < 11)
-               val = 0x430;
-       else if (time_out < 22)
-               val = 0x820;
-       else if (time_out < 44)
-               val = 0xc00;
-       else if (time_out < 87)
-               val = 0x830;
-       else if (time_out < 173)
-               val = 0xc10;
-       else if (time_out < 688)
+       u32 val;
+
+       if (timeout_ms < 343552)
+               val = ((timeout_ms / 1342) << 16) + 0x800;
+       else if (timeout_ms < 688000)
                val = 0xc20;
        else
                val = 0xc30;