9
0
Fork 0

ARM i.MX28: make chip reset via reset pin work again

Since commit:

    2ccd451 ARM i.MX28: change default watchdog reset method

the external reset via the reset pin is broken. That commit overwrites the
HW_CLKCTRL_RESET register with only WDOG_POR_DISABLE set, which results in
disabling the external reset.

This patch uses read-modify-write to set the WDOG_POR_DISABLE, leaving the
WDOG_POR_DISABLE untouched.

Cc: Steffen Trumtrar <s.trumtrar@pengutronix.de>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
This commit is contained in:
Marc Kleine-Budde 2013-04-19 16:36:29 +02:00 committed by Sascha Hauer
parent 46d7027a6a
commit 8bafdc1c46
1 changed files with 5 additions and 1 deletions

View File

@ -39,12 +39,16 @@ EXPORT_SYMBOL(reset_cpu);
static int imx28_init(void)
{
u32 reg;
/*
* The default setting for the WDT is to do a POR. If the SoC is only
* powered via battery, then a WDT reset powers the chip down instead
* of resetting it. Use a software reset only.
*/
writel(HW_CLKCTRL_WDOG_POR_DISABLE, IMX_CCM_BASE + HW_CLKCTRL_RESET);
reg = readl(IMX_CCM_BASE + HW_CLKCTRL_RESET) |
HW_CLKCTRL_WDOG_POR_DISABLE;
writel(reg, IMX_CCM_BASE + HW_CLKCTRL_RESET);
return 0;
}