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>
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
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)
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
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)