This is an automated email from the ASF dual-hosted git repository.
acassis pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git
The following commit(s) were added to refs/heads/master by this push:
new a03b09c34d arch: cxd56xx: Fix bug when watchdog restart
a03b09c34d is described below
commit a03b09c34da7830f30c950ead0cd3a9566036d72
Author: SPRESENSE <[email protected]>
AuthorDate: Tue Jul 4 09:20:46 2023 +0900
arch: cxd56xx: Fix bug when watchdog restart
Fix a bug that watchdog is expired in less time than the specified time
when restarting without clearing interrupt.
---
arch/arm/src/cxd56xx/cxd56_wdt.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/arch/arm/src/cxd56xx/cxd56_wdt.c b/arch/arm/src/cxd56xx/cxd56_wdt.c
index a9a076ced5..849bc8ac54 100644
--- a/arch/arm/src/cxd56xx/cxd56_wdt.c
+++ b/arch/arm/src/cxd56xx/cxd56_wdt.c
@@ -200,7 +200,7 @@ static uint32_t cxd56_getreg(uintptr_t regaddr)
/* Show the register value read */
- wdinfo("%08x->%08\n", regaddr, regval);
+ wdinfo("%08x->%08x\n", regaddr, regval);
return regval;
}
#endif
@@ -283,6 +283,7 @@ static int cxd56_start(struct watchdog_lowerhalf_s *lower)
wdinfo("Entry\n");
cxd56_putreg(WDOGLOCK_UNLOCK_KEY, CXD56_WDT_WDOGLOCK);
+ cxd56_putreg(0, CXD56_WDT_WDOGINTCLR); /* reload by write any value */
cxd56_putreg(WDOGCONTROL_RESEN | WDOGCONTROL_INTEN, CXD56_WDT_WDOGCONTROL);
cxd56_putreg(0, CXD56_WDT_WDOGLOCK);
@@ -473,6 +474,7 @@ static int cxd56_settimeout(struct watchdog_lowerhalf_s
*lower,
/* Set the WDT register according to calculated value */
cxd56_putreg(WDOGLOCK_UNLOCK_KEY, CXD56_WDT_WDOGLOCK);
+ cxd56_putreg(0, CXD56_WDT_WDOGINTCLR); /* reload by write any value */
cxd56_putreg(reload, CXD56_WDT_WDOGLOAD);
cxd56_putreg(WDOGCONTROL_RESEN | WDOGCONTROL_INTEN, CXD56_WDT_WDOGCONTROL);
cxd56_putreg(0, CXD56_WDT_WDOGLOCK);