diff options
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/export/as3525.h | 6 | ||||
-rw-r--r-- | firmware/target/arm/as3525/system-as3525.c | 5 |
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 | ||
273 | void system_reboot(void) | 273 | void 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 | ||
277 | int system_memory_guard(int newmode) | 282 | int system_memory_guard(int newmode) |