diff options
Diffstat (limited to 'qemu/roms/u-boot/board/w7o/watchdog.c')
-rw-r--r-- | qemu/roms/u-boot/board/w7o/watchdog.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/qemu/roms/u-boot/board/w7o/watchdog.c b/qemu/roms/u-boot/board/w7o/watchdog.c new file mode 100644 index 000000000..ff1b21209 --- /dev/null +++ b/qemu/roms/u-boot/board/w7o/watchdog.c @@ -0,0 +1,31 @@ +/* + * (C) Copyright 2001 + * Erik Theisen, Wave 7 Optics, etheisen@mindspring.com. + * + * SPDX-License-Identifier: GPL-2.0+ + */ + +/* + * W7O board level hardware watchdog. + */ +#include <common.h> +#include <config.h> + +#ifdef CONFIG_HW_WATCHDOG +#include <watchdog.h> + +void hw_watchdog_reset(void) +{ + volatile ushort *hwd = (ushort *)(CONFIG_SYS_W7O_EBC_PB7CR & 0xfff00000); + + /* + * Read the LMG's hwd register and toggle the + * watchdog bit to reset it. On the LMC, just + * reading it is enough, but toggling the bit + * doen't hurt either. + */ + *hwd = *hwd ^ 0x8000; + +} /* hw_watchdog_reset() */ + +#endif /* CONFIG_HW_WATCHDOG */ |