summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Gong <yibin.gong@nxp.com>2016-02-02 16:30:50 +0800
committerFrank Li <Frank.Li@nxp.com>2016-05-23 14:56:04 -0500
commit8b381036631a5704b4f1fab18ee7fe4184655523 (patch)
treeff6a6e58125ea0b2b1d6caa11726276bcc552eb3
parent5db98a4109ac40418b9bb825fd2bbe916a80de20 (diff)
MLK-12371: ARM: imx: suspend-imx7: correct HW_ANADIG_SNVS_MISC_CTRL set
To avoid touch other bits of HW_ANADIG_SNVS_MISC_CTRL , use set/clear register , and correct the bit29 setting: --before: write 1 to toggle DDR power pin to high before enter DDR retention, and write 1 again to pull pin to low when exit from DDR retention. --now: write 1 to pull DDR power pin to high and write 0 to low. Signed-off-by: Robin Gong <yibin.gong@nxp.com>
-rw-r--r--arch/arm/mach-imx/suspend-imx7.S11
1 files changed, 7 insertions, 4 deletions
diff --git a/arch/arm/mach-imx/suspend-imx7.S b/arch/arm/mach-imx/suspend-imx7.S
index 7c85a64a8bb7..5f4e31152a69 100644
--- a/arch/arm/mach-imx/suspend-imx7.S
+++ b/arch/arm/mach-imx/suspend-imx7.S
@@ -81,6 +81,8 @@
#define GPC_PGC_C0 0x800
#define GPC_PGC_FM 0xa00
#define ANADIG_SNVS_MISC_CTRL 0x380
+#define ANADIG_SNVS_MISC_CTRL_SET 0x384
+#define ANADIG_SNVS_MISC_CTRL_CLR 0x388
#define ANADIG_DIGPROG 0x800
#define DDRC_STAT 0x4
#define DDRC_PWRCTL 0x30
@@ -336,11 +338,12 @@
ldr r7, [r11, r6]
orr r7, r7, #0x1
str r7, [r11, r6]
+11:
/* turn off ddr power */
ldr r11, [r0, #PM_INFO_MX7_ANATOP_V_OFFSET]
ldr r7, =(0x1 << 29)
- str r7, [r11, #ANADIG_SNVS_MISC_CTRL]
-11:
+ str r7, [r11, #ANADIG_SNVS_MISC_CTRL_SET]
+
ldr r11, [r0, #PM_INFO_MX7_SRC_V_OFFSET]
ldr r6, =0x1000
ldr r7, [r11, r6]
@@ -367,7 +370,7 @@
/* turn on ddr power */
ldr r7, =(0x1 << 29)
- str r7, [r1, #ANADIG_SNVS_MISC_CTRL]
+ str r7, [r1, #ANADIG_SNVS_MISC_CTRL_CLR]
ldr r6, =50
wait_delay
@@ -419,7 +422,7 @@
str r7, [r11]
12:
ldr r7, =(0x1 << 30)
- str r7, [r1, #ANADIG_SNVS_MISC_CTRL]
+ str r7, [r1, #ANADIG_SNVS_MISC_CTRL_SET]
/* need to delay ~5mS */
ldr r6, =0x100000