summaryrefslogtreecommitdiff
path: root/board/w7o/watchdog.c
blob: ff1b212096631c7b20f904013379268e74ad2565 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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 */