diff options
-rw-r--r-- | arch/arm/mach-imx/system.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/arch/arm/mach-imx/system.c b/arch/arm/mach-imx/system.c index 826b72ba08d9..5e3027d3692f 100644 --- a/arch/arm/mach-imx/system.c +++ b/arch/arm/mach-imx/system.c | |||
@@ -52,7 +52,14 @@ void mxc_restart(enum reboot_mode mode, const char *cmd) | |||
52 | 52 | ||
53 | /* Assert SRS signal */ | 53 | /* Assert SRS signal */ |
54 | __raw_writew(wcr_enable, wdog_base); | 54 | __raw_writew(wcr_enable, wdog_base); |
55 | /* write twice to ensure the request will not get ignored */ | 55 | /* |
56 | * Due to imx6q errata ERR004346 (WDOG: WDOG SRS bit requires to be | ||
57 | * written twice), we add another two writes to ensure there must be at | ||
58 | * least two writes happen in the same one 32kHz clock period. We save | ||
59 | * the target check here, since the writes shouldn't be a huge burden | ||
60 | * for other platforms. | ||
61 | */ | ||
62 | __raw_writew(wcr_enable, wdog_base); | ||
56 | __raw_writew(wcr_enable, wdog_base); | 63 | __raw_writew(wcr_enable, wdog_base); |
57 | 64 | ||
58 | /* wait for reset to assert... */ | 65 | /* wait for reset to assert... */ |