On 01/10/15 03:32 PM, Fabio Estevam wrote:
From: Fabio Estevam <[email protected]>

This reverts commit 623d96e89aca64c2762150087f4e872c55481f13.

commit 623d96e89aca6("imx: wdog: correct wcr register settings")
introduced the usage of clrsetbits_le16(), which causes a regression
on LS1021 systems.

Unlike i.MX, LS1021 uses big-endian ordering for the watchdog
controller, which means we cannot use the little endian accessors.

Reported-by: Sinan Akman <[email protected]>
Signed-off-by: Fabio Estevam <[email protected]>
---
  drivers/watchdog/imx_watchdog.c | 3 +--
  1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/watchdog/imx_watchdog.c b/drivers/watchdog/imx_watchdog.c
index 9a77a54..1d18d4b 100644
--- a/drivers/watchdog/imx_watchdog.c
+++ b/drivers/watchdog/imx_watchdog.c
@@ -55,8 +55,7 @@ void reset_cpu(ulong addr)
  {
        struct watchdog_regs *wdog = (struct watchdog_regs *)WDOG1_BASE_ADDR;
- clrsetbits_le16(&wdog->wcr, 0, WCR_WDE);
-
+       writew(WCR_WDE, &wdog->wcr);
        writew(0x5555, &wdog->wsr);
        writew(0xaaaa, &wdog->wsr);      /* load minimum 1/2 second timeout */
        while (1) {

Hi Fabio, I just wanted to point out that with this revert we don't only break imx again (whatever the initial bug was for this commit) but also we are having ls1021atwr
working accidentally, just because  writew(WCR_WDE, &wdog->wcr) clears SRS
bit which is the only requirement for reset if watchdog is not running.

I don't have any strong opinion on this but i just wanted to make it clear that
we are leaving both imx6 and ls1021atwr not properly implemented.

  Regards
  Sinan Akman
_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to