From cde504077e1ce94d9ad34ece0f3e882972404297 Mon Sep 17 00:00:00 2001 From: Ye Li Date: Tue, 7 Feb 2017 22:48:01 +0800 Subject: [PATCH] MLK-14422 imx7d: wdog: Overwrite the reset_cpu to turn off internal reset signal Set wdog WCR register SRS bit to turn off internal reset signal WDOG_RESET_B_DEB for mx7d. So that the warm reset is disabled. The WDA is cleared to output WDOG_B immediately to reset the board. Signed-off-by: Ye Li (cherry picked from commit 6d09863801695d975060fbc240147a9067dbafbf) --- arch/arm/mach-imx/mx7/soc.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/arch/arm/mach-imx/mx7/soc.c b/arch/arm/mach-imx/mx7/soc.c index 6ccdc20..96eb782 100644 --- a/arch/arm/mach-imx/mx7/soc.c +++ b/arch/arm/mach-imx/mx7/soc.c @@ -19,6 +19,7 @@ #include #include #include +#include #if defined(CONFIG_IMX_THERMAL) static const struct imx_thermal_plat imx7_thermal_plat = { @@ -302,3 +303,16 @@ void reset_misc(void) #endif } +void reset_cpu(ulong addr) +{ + struct watchdog_regs *wdog = (struct watchdog_regs *)WDOG1_BASE_ADDR; + + /* Clear WDA to trigger WDOG_B immediately */ + writew((WCR_WDE | WCR_SRS), &wdog->wcr); + + while (1) { + /* + * spin for .5 seconds before reset + */ + } +} -- 1.9.1