2002-08-17 17:36:01 +08:00
|
|
|
/*
|
|
|
|
* (C) Copyright 2001
|
|
|
|
* Erik Theisen, Wave 7 Optics, etheisen@mindspring.com.
|
|
|
|
*
|
2013-07-08 15:37:19 +08:00
|
|
|
* SPDX-License-Identifier: GPL-2.0+
|
2002-08-17 17:36:01 +08:00
|
|
|
*/
|
|
|
|
|
|
|
|
/*
|
|
|
|
* W7O board level hardware watchdog.
|
|
|
|
*/
|
|
|
|
#include <common.h>
|
|
|
|
#include <config.h>
|
|
|
|
|
|
|
|
#ifdef CONFIG_HW_WATCHDOG
|
|
|
|
#include <watchdog.h>
|
|
|
|
|
|
|
|
void hw_watchdog_reset(void)
|
|
|
|
{
|
2008-10-16 21:01:15 +08:00
|
|
|
volatile ushort *hwd = (ushort *)(CONFIG_SYS_W7O_EBC_PB7CR & 0xfff00000);
|
2002-08-17 17:36:01 +08:00
|
|
|
|
|
|
|
/*
|
|
|
|
* 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 */
|