Commit e809daec authored by Ye Li's avatar Ye Li Committed by Wim Van Sebroeck

watchdog: imx7ulp_wdt: Check CMD32EN in wdog init

When bootloader has enabled the CMD32EN bit, switch to use 32bits
unlock command to unlock the CS register. Using 32bits command will
help on avoiding 16 bus cycle window violation for two 16 bits
commands.
Signed-off-by: default avatarYe Li <ye.li@nxp.com>
Signed-off-by: default avatarAlice Guo <alice.guo@nxp.com>
Reviewed-by: default avatarJacky Bai <ping.bai@nxp.com>
Acked-by: default avatarJason Liu <jason.hui.liu@nxp.com>
Reviewed-by: default avatarGuenter Roeck <linux@roeck-us.net>
Link: https://lore.kernel.org/r/20220825083256.14565-4-alice.guo@oss.nxp.comSigned-off-by: default avatarGuenter Roeck <linux@roeck-us.net>
Signed-off-by: default avatarWim Van Sebroeck <wim@linux-watchdog.org>
parent 6371593f
......@@ -180,11 +180,16 @@ static int imx7ulp_wdt_init(void __iomem *base, unsigned int timeout)
local_irq_disable();
mb();
/* unlock the wdog for reconfiguration */
writel_relaxed(UNLOCK_SEQ0, base + WDOG_CNT);
writel_relaxed(UNLOCK_SEQ1, base + WDOG_CNT);
mb();
val = readl(base + WDOG_CS);
if (val & WDOG_CS_CMD32EN) {
writel(UNLOCK, base + WDOG_CNT);
} else {
mb();
/* unlock the wdog for reconfiguration */
writel_relaxed(UNLOCK_SEQ0, base + WDOG_CNT);
writel_relaxed(UNLOCK_SEQ1, base + WDOG_CNT);
mb();
}
ret = imx7ulp_wdt_wait(base, WDOG_CS_ULK);
if (ret)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment