[U-Boot] [PATCH] Revert "imx: wdog: correct wcr register settings"

Sinan Akman sinan at writeme.com
Thu Oct 1 21:39:17 CEST 2015



On 01/10/15 03:32 PM, Fabio Estevam wrote:
> From: Fabio Estevam <fabio.estevam at freescale.com>
>
> 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 <sinan at writeme.com>
> Signed-off-by: Fabio Estevam <fabio.estevam at freescale.com>
> ---
>   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


More information about the U-Boot mailing list