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);

Reply via email to