summaryrefslogtreecommitdiff
path: root/arch/arm/cpu/armv7/ls102xa/cpu.c
diff options
context:
space:
mode:
authorchenhui zhao <chenhui.zhao@freescale.com>2014-10-22 10:20:22 (GMT)
committerYork Sun <yorksun@freescale.com>2014-12-11 17:35:42 (GMT)
commit306fa012794e68e568bd51b829d1754323e0b8aa (patch)
tree322f9e01223b76dbf67f779cbbd0982e2054f31d /arch/arm/cpu/armv7/ls102xa/cpu.c
parentb699b01e5cf0f74f123dcc7090df232214dddf93 (diff)
downloadu-boot-306fa012794e68e568bd51b829d1754323e0b8aa.tar.xz
arm: ls102xa: clear EPU registers for deep sleep
After wakeup from deep sleep, Clear EPU registers as early as possible to prevent from possible issue. It's also safe to clear at normal boot. Signed-off-by: Chenhui Zhao <chenhui.zhao@freescale.com> Reviewed-by: York Sun <yorksun@freescale.com>
Diffstat (limited to 'arch/arm/cpu/armv7/ls102xa/cpu.c')
-rw-r--r--arch/arm/cpu/armv7/ls102xa/cpu.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/arch/arm/cpu/armv7/ls102xa/cpu.c b/arch/arm/cpu/armv7/ls102xa/cpu.c
index b7dde45..fae6c68 100644
--- a/arch/arm/cpu/armv7/ls102xa/cpu.c
+++ b/arch/arm/cpu/armv7/ls102xa/cpu.c
@@ -12,6 +12,8 @@
#include <netdev.h>
#include <fsl_esdhc.h>
+#include "fsl_epu.h"
+
DECLARE_GLOBAL_DATA_PTR;
#if defined(CONFIG_DISPLAY_CPUINFO)
@@ -101,3 +103,17 @@ int cpu_eth_init(bd_t *bis)
return 0;
}
+
+int arch_cpu_init(void)
+{
+ void *epu_base = (void *)(CONFIG_SYS_DCSRBAR + EPU_BLOCK_OFFSET);
+
+ /*
+ * After wakeup from deep sleep, Clear EPU registers
+ * as early as possible to prevent from possible issue.
+ * It's also safe to clear at normal boot.
+ */
+ fsl_epu_clean(epu_base);
+
+ return 0;
+}