embox
1/**
2* @file
3* @brief AT91 watchdog driver.
4*
5* @date 29.09.10
6* @author Anton Kozlov
7*/
8
9#include <embox/unit.h>10#include <drivers/watchdog.h>11#include <hal/reg.h>12#include <drivers/at91sam7s256.h>13
14EMBOX_UNIT_INIT(unit_init);15
16static int unit_init(void) {17watchdog_disable();18return 0;19}
20
21void watchdog_enable(void) {22REG_ANDIN(AT91C_WDTC_WDMR, ~(AT91C_WDTC_WDDIS));23}
24
25void watchdog_disable(void) {26REG_STORE(AT91C_WDTC_WDMR, AT91C_WDTC_WDDIS);27}
28
29void watchdog_restart(void) {30REG_STORE(AT91C_WDTC_WDCR, AT91C_WDTC_WDRSTT | AT91C_WDTC_KEY);31}
32