X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=drivers%2Fwatchdog%2Fimx_watchdog.c;h=0d775956bff45fd52687676f16fc706788c2f6ff;hb=4ca0c3c993436cca743ed521e7f3d784d7fe31c8;hp=1d18d4b269f8af94e4f8cae77bdc9a39b5524f8e;hpb=b491d9757d14415edcb1468ed896a704d0f0cfe7;p=u-boot diff --git a/drivers/watchdog/imx_watchdog.c b/drivers/watchdog/imx_watchdog.c index 1d18d4b269..0d775956bf 100644 --- a/drivers/watchdog/imx_watchdog.c +++ b/drivers/watchdog/imx_watchdog.c @@ -8,19 +8,7 @@ #include #include #include - -struct watchdog_regs { - u16 wcr; /* Control */ - u16 wsr; /* Service */ - u16 wrsr; /* Reset Status */ -}; - -#define WCR_WDZST 0x01 -#define WCR_WDBG 0x02 -#define WCR_WDE 0x04 /* WDOG enable */ -#define WCR_WDT 0x08 -#define WCR_SRS 0x10 -#define SET_WCR_WT(x) (x << 8) +#include #ifdef CONFIG_IMX_WATCHDOG void hw_watchdog_reset(void) @@ -55,7 +43,8 @@ void reset_cpu(ulong addr) { struct watchdog_regs *wdog = (struct watchdog_regs *)WDOG1_BASE_ADDR; - writew(WCR_WDE, &wdog->wcr); + clrsetbits_le16(&wdog->wcr, 0, WCR_WDE); + writew(0x5555, &wdog->wsr); writew(0xaaaa, &wdog->wsr); /* load minimum 1/2 second timeout */ while (1) {