summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorJacky Bai <ping.bai@nxp.com>2019-03-04 09:49:06 +0800
committerJacky Bai <ping.bai@nxp.com>2019-03-04 14:02:00 +0800
commit7dec20bcb6633c7feee1eb32a5d81356075a61f7 (patch)
tree750118116a7997951d472d94bb5521951db9345d /arch
parentc9a1b023f2962cad8dd40380773b0ba37ce849e3 (diff)
MLK-21031 arm: imx: fix standby resume hang on imx7ulp
When system resume from VLPS mode, DDR IO must be restored before mmdc out of the self-fresh mode. Signed-off-by: Jacky Bai <ping.bai@nxp.com> Tested-by: Anson Huang <Anson.Huang@nxp.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-imx/suspend-imx7ulp.S13
1 files changed, 13 insertions, 0 deletions
diff --git a/arch/arm/mach-imx/suspend-imx7ulp.S b/arch/arm/mach-imx/suspend-imx7ulp.S
index 6e11c1c46c81..bd45e460f75f 100644
--- a/arch/arm/mach-imx/suspend-imx7ulp.S
+++ b/arch/arm/mach-imx/suspend-imx7ulp.S
@@ -427,7 +427,20 @@ wait_apll:
orr r7, #(1 << 28)
str r7, [r10, #SCG_NICCCR]
+ /* let mmdc io out of lpm */
+ ldr r11, [r0, #PM_INFO_PM_INFO_MMDC_IO_VBASE_OFFSET]
+ ldr r10, [r0, #PM_INFO_MMDC_IO_NUM_OFFSET]
+ ldr r7, =PM_INFO_MMDC_IO_VAL_OFFSET
+ add r7, r7, r0
+mmdc_io_exit_lpm:
+ ldr r8, [r7], #0x4
+ ldr r9, [r7], #0x4
+ str r9, [r11, r8]
+ subs r10, r10, #0x1
+ bne mmdc_io_exit_lpm
+
/* let DDR out of self-refresh */
+ ldr r11, [r0, #PM_INFO_PM_INFO_MMDC_VBASE_OFFSET]
ldr r7, [r11, #MX7ULP_MMDC_MAPSR]
bic r7, r7, #(1 << 20)
str r7, [r11, #MX7ULP_MMDC_MAPSR]