summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/export/as3525.h6
-rw-r--r--firmware/target/arm/as3525/system-as3525.c5
2 files changed, 11 insertions, 0 deletions
diff --git a/firmware/export/as3525.h b/firmware/export/as3525.h
index f2f16c8d23..50b1fbe06b 100644
--- a/firmware/export/as3525.h
+++ b/firmware/export/as3525.h
@@ -303,6 +303,12 @@ interface */
303#define TIMER_PRESCALE_16 0x04 303#define TIMER_PRESCALE_16 0x04
304#define TIMER_PRESCALE_256 0x08 304#define TIMER_PRESCALE_256 0x08
305 305
306
307/* Watchdog registers */
308#define WDT_LOAD (*(volatile unsigned long*)(WDT_BASE))
309#define WDT_CONTROL (*(volatile unsigned long*)(WDT_BASE+8))
310
311
306/* GPIO registers */ 312/* GPIO registers */
307 313
308#define GPIOA_DIR (*(volatile unsigned char*)(GPIOA_BASE+0x400)) 314#define GPIOA_DIR (*(volatile unsigned char*)(GPIOA_BASE+0x400))
diff --git a/firmware/target/arm/as3525/system-as3525.c b/firmware/target/arm/as3525/system-as3525.c
index f2f2c0b454..b502b22425 100644
--- a/firmware/target/arm/as3525/system-as3525.c
+++ b/firmware/target/arm/as3525/system-as3525.c
@@ -272,6 +272,11 @@ void system_init(void)
272 272
273void system_reboot(void) 273void system_reboot(void)
274{ 274{
275 /* use watchdog to reset */
276 CGU_PERI |= (CGU_WDOCNT_CLOCK_ENABLE | CGU_WDOIF_CLOCK_ENABLE);
277 WDT_LOAD = 1; /* set counter to 1 */
278 WDT_CONTROL = 3; /* enable watchdog counter & reset */
279 while(1);
275} 280}
276 281
277int system_memory_guard(int newmode) 282int system_memory_guard(int newmode)