[U-Boot] [PATCH] MX31: Disable watchdog during low-power modes

Marek Vasut
2011-09-20T09:24:26Z

On Tuesday, September 20, 2011 10:48:12 AM Stefano Babic wrote:
> On 09/20/2011 06:16 AM, Marek Vasut wrote:
> > On Monday, September 19, 2011 07:51:10 PM Fabio Estevam wrote:
> >> Turn on the watchdog WDZST bit so that watchdog timer does not count
> >> during low power modes.
> >>
> >> Prior to applying this patch mx31pdk board got watchdog resets because
> >> when it booted in the Linux prompt and there was no activity, the
> >> system entered into idle mode while watchdog timer was still active.
> >>
> >> Fix this by disabling watchdog timer during idle mode.
> >>
> >> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
> >> ---
> >>
> >> arch/arm/cpu/arm1136/mx31/timer.c | 4 ++--
> >> arch/arm/include/asm/arch-mx31/imx-regs.h | 2 ++
> >> 2 files changed, 4 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/arch/arm/cpu/arm1136/mx31/timer.c
> >> b/arch/arm/cpu/arm1136/mx31/timer.c index c05a39d..7197108 100644
> >> --- a/arch/arm/cpu/arm1136/mx31/timer.c
> >> +++ b/arch/arm/cpu/arm1136/mx31/timer.c
> >> @@ -173,8 +173,8 @@ void mxc_hw_watchdog_enable(void)
> >>
> >> #else
> >>
> >> secs = 64;
> >>
> >> #endif
> >>
> >> - writew(readw(&wdog->wcr) | (secs << WDOG_WT_SHIFT) | WDOG_ENABLE,
> >> - &wdog->wcr);
> >> + writew(readw(&wdog->wcr) | (secs << WDOG_WT_SHIFT) | WDOG_ENABLE
> >> + | WDOG_WDZST, &wdog->wcr);
> >
> > Maybe
> > tmp = readw();
> > tmp |= ...
> > writel(tmp, ...);
>
> Well, I do not see a big difference with your proposal - so it is only a
> question of taste. Calling write with an embedded read as first
> parameter is used often in u-boot.

It's a matter of taste and readability ... but then maybe use clrsetbits()?

>
> Best regards,
> Stefano Babic