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 de948babbf xtensa/esp32s2: Fix esp32s2 wdt interrupt bug
de948babbf is described below
commit de948babbfe3aba930e410ff002c1d7ef6f2e9de
Author: Eren Terzioglu <[email protected]>
AuthorDate: Thu Feb 1 19:04:15 2024 +0300
xtensa/esp32s2: Fix esp32s2 wdt interrupt bug
---
arch/xtensa/src/esp32s2/esp32s2_wdt.c | 8 ++++++++
arch/xtensa/src/esp32s2/hardware/esp32s2_tim.h | 2 +-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/arch/xtensa/src/esp32s2/esp32s2_wdt.c
b/arch/xtensa/src/esp32s2/esp32s2_wdt.c
index 06ac7c13e9..449f512b48 100644
--- a/arch/xtensa/src/esp32s2/esp32s2_wdt.c
+++ b/arch/xtensa/src/esp32s2/esp32s2_wdt.c
@@ -852,6 +852,10 @@ static void wdt_enableint(struct esp32s2_wdt_dev_s *dev)
}
else if (IS_MWDT(dev))
{
+ /* Level Interrupt */
+
+ wdt_modifyreg32(dev, MWDT_CONFIG0_OFFSET, 0, TIMG_WDT_LEVEL_INT_EN);
+
wdt_modifyreg32(dev, MWDT_INT_ENA_REG_OFFSET, 0, TIMG_WDT_INT_ENA);
}
else
@@ -882,6 +886,10 @@ static void wdt_disableint(struct esp32s2_wdt_dev_s *dev)
}
else if (IS_MWDT(dev))
{
+ /* Level Interrupt */
+
+ wdt_modifyreg32(dev, MWDT_CONFIG0_OFFSET, TIMG_WDT_LEVEL_INT_EN, 0);
+
wdt_modifyreg32(dev, MWDT_INT_ENA_REG_OFFSET, TIMG_WDT_INT_ENA, 0);
}
else
diff --git a/arch/xtensa/src/esp32s2/hardware/esp32s2_tim.h
b/arch/xtensa/src/esp32s2/hardware/esp32s2_tim.h
index 8b8a75b91d..ee270b946b 100644
--- a/arch/xtensa/src/esp32s2/hardware/esp32s2_tim.h
+++ b/arch/xtensa/src/esp32s2/hardware/esp32s2_tim.h
@@ -45,7 +45,7 @@
#define MWDT_FEED_OFFSET 0x0060
#define MWDT_WP_REG 0x0064
#define MWDT_INT_ENA_REG_OFFSET 0x0098
-#define MWDT_INT_CLR_REG_OFFSET 0x00a0
+#define MWDT_INT_CLR_REG_OFFSET 0x00a4
/* The value that needs to be written to TIMG_WDT_WKEY to
* write-enable the WDT registers.