summaryrefslogtreecommitdiff
path: root/plat/imx/imx8mm/imx8mm_psci.c
diff options
context:
space:
mode:
authorAnson Huang <Anson.Huang@nxp.com>2018-08-10 17:49:00 +0800
committerBai Ping <ping.bai@nxp.com>2018-09-15 00:18:32 +0800
commit7b60954d68e074d6d0d1a6f828f4392cf7c7137d (patch)
treeb8c02b2582e001eb86dc8e2f67aa88c478a0d079 /plat/imx/imx8mm/imx8mm_psci.c
parentca98a9fca54b491755e515ca0f0d7f53a19ad74f (diff)
plat: imx8mm: Add support for imx8mm lpa
For i.MX8MM low power audio playback, when Linux suspend, M4 still needs to be active for audio playback, so system can NOT enter DSM mode but only force A core platform into STOP mode, PLLs/NoC/DRAM need to be active as well and MU interrupt wakeup needs to be enabled for waking up Linux by MU message sent by M4. Signed-off-by: Anson Huang <Anson.Huang@nxp.com> Signed-off-by: Bai Ping <ping.bai@nxp.com>
Diffstat (limited to 'plat/imx/imx8mm/imx8mm_psci.c')
-rw-r--r--plat/imx/imx8mm/imx8mm_psci.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/plat/imx/imx8mm/imx8mm_psci.c b/plat/imx/imx8mm/imx8mm_psci.c
index eb82ec33..ec3a8c1a 100644
--- a/plat/imx/imx8mm/imx8mm_psci.c
+++ b/plat/imx/imx8mm/imx8mm_psci.c
@@ -130,7 +130,8 @@ void imx_domain_suspend(const psci_power_state_t *target_state)
/* do system level power mode setting */
if (is_local_state_retn(SYSTEM_PWR_STATE(target_state))) {
- dram_enter_retention();
+ if (!imx_is_m4_enabled() || !imx_m4_lpa_active())
+ dram_enter_retention();
imx_set_sys_lpm(true);
imx_anamix_pre_suspend();
noc_wrapper_pre_suspend(core_id);
@@ -151,7 +152,8 @@ void imx_domain_suspend_finish(const psci_power_state_t *target_state)
imx_set_sys_wakeup(core_id, false);
imx_anamix_post_resume();
imx_clear_rbc_count();
- dram_exit_retention();
+ if (!imx_is_m4_enabled() || !imx_m4_lpa_active())
+ dram_exit_retention();
noc_wrapper_post_resume(core_id);
}