summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorAnson Huang <Anson.Huang@nxp.com>2016-01-25 22:16:48 +0800
committerAnson Huang <Anson.Huang@nxp.com>2016-01-28 18:54:27 +0800
commit69d5543e8dbdd2c4480ae0b2cb4d84deb13ddc94 (patch)
tree1fc7288f7ea4babd18c9cccce32709d0adb858d3 /arch
parent79e27ef0d94b6ce3adf7d51009f4e3cef25d4a7c (diff)
MLK-12262-1 ARM: imx: enable ddr auto self-refresh for i.MX7D
Enable DDR auto self-refresh for i.MX7D, when doing DDR frequency scale or suspend/resume, DDR self-refresh will be disabled, this is incorrect for saving power, enable it for all these scenarios. Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-imx/ddr3_freq_imx7d.S10
-rw-r--r--arch/arm/mach-imx/lpddr3_freq_imx.S5
-rw-r--r--arch/arm/mach-imx/suspend-imx7.S5
3 files changed, 20 insertions, 0 deletions
diff --git a/arch/arm/mach-imx/ddr3_freq_imx7d.S b/arch/arm/mach-imx/ddr3_freq_imx7d.S
index 01ab9b002ddf..6b706f4b46eb 100644
--- a/arch/arm/mach-imx/ddr3_freq_imx7d.S
+++ b/arch/arm/mach-imx/ddr3_freq_imx7d.S
@@ -228,6 +228,11 @@
ldr r7, =0x0
str r7, [r4, #DDRC_DBG1]
+ /* enable auto self-refresh */
+ ldr r7, [r4, #DDRC_PWRCTL]
+ orr r7, r7, #(1 << 0)
+ str r7, [r4, #DDRC_PWRCTL]
+
.endm
.macro switch_to_533m
@@ -421,6 +426,11 @@
ldr r7, =0x0
str r7, [r4, #DDRC_DBG1]
+ /* enable auto self-refresh */
+ ldr r7, [r4, #DDRC_PWRCTL]
+ orr r7, r7, #(1 << 0)
+ str r7, [r4, #DDRC_PWRCTL]
+
.endm
ENTRY(imx7d_ddr3_freq_change)
diff --git a/arch/arm/mach-imx/lpddr3_freq_imx.S b/arch/arm/mach-imx/lpddr3_freq_imx.S
index 515e96112ef7..b122f797f2e8 100644
--- a/arch/arm/mach-imx/lpddr3_freq_imx.S
+++ b/arch/arm/mach-imx/lpddr3_freq_imx.S
@@ -117,6 +117,11 @@
ldr r7, =0x1
str r7, [r4, #DDRC_PCTRL_0]
+ /* enable auto self-refresh */
+ ldr r7, [r4, #DDRC_PWRCTL]
+ orr r7, r7, #(1 << 0)
+ str r7, [r4, #DDRC_PWRCTL]
+
.endm
.macro switch_to_below_100m
diff --git a/arch/arm/mach-imx/suspend-imx7.S b/arch/arm/mach-imx/suspend-imx7.S
index 074efdc6f49e..f4a48024ea98 100644
--- a/arch/arm/mach-imx/suspend-imx7.S
+++ b/arch/arm/mach-imx/suspend-imx7.S
@@ -487,6 +487,11 @@
ldr r7, =0x1
str r7, [r3, #DDRC_PCTRL_0]
+ /* enable auto self-refresh */
+ ldr r7, [r3, #DDRC_PWRCTL]
+ orr r7, r7, #(1 << 0)
+ str r7, [r3, #DDRC_PWRCTL]
+
.endm
ENTRY(imx7_suspend)