From e97067c7fc89439cf33357a3031e2ed101d79b4b Mon Sep 17 00:00:00 2001 From: Anson Huang Date: Mon, 25 Jan 2016 22:16:48 +0800 Subject: [PATCH] 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 --- arch/arm/mach-imx/ddr3_freq_imx7d.S | 10 ++++++++++ arch/arm/mach-imx/lpddr3_freq_imx.S | 5 +++++ arch/arm/mach-imx/suspend-imx7.S | 5 +++++ 3 files changed, 20 insertions(+) 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) -- 2.17.1