diff options
author | Jacky Bai <ping.bai@nxp.com> | 2019-12-09 09:53:28 +0800 |
---|---|---|
committer | Manish Pandey <manish.pandey2@arm.com> | 2020-08-19 09:46:05 +0000 |
commit | 9eb1bb63e1d51dd85402227f7d904ae004ef49d9 (patch) | |
tree | 568bd0f7e97f5311bb65d09258cf5aa9d344b794 /plat/imx | |
parent | 9ce37110f5e78fff40a62ba32fab9282af311102 (diff) | |
download | arm-trusted-firmware-9eb1bb63e1d51dd85402227f7d904ae004ef49d9.tar.gz |
plat: imx8m: Keep A53 PLAT on in wait mode(ret)
Keep A53 PLAT(SCU) power domain on in wait mode(ret).
RBC count only need to be set in PLAT OFF mode, so
change it accordingly.
Signed-off-by: Jacky Bai <ping.bai@nxp.com>
Change-Id: Ie55e25c8210d298506fc4dca7a9653583db45e0c
Diffstat (limited to 'plat/imx')
-rw-r--r-- | plat/imx/imx8m/gpc_common.c | 8 | ||||
-rw-r--r-- | plat/imx/imx8m/imx8m_psci_common.c | 2 |
2 files changed, 4 insertions, 6 deletions
diff --git a/plat/imx/imx8m/gpc_common.c b/plat/imx/imx8m/gpc_common.c index eb2801cea..8aae1a62b 100644 --- a/plat/imx/imx8m/gpc_common.c +++ b/plat/imx/imx8m/gpc_common.c @@ -133,14 +133,12 @@ void imx_set_cluster_powerdown(unsigned int last_core, uint8_t power_state) val = mmio_read_32(IMX_GPC_BASE + LPCR_A53_AD); val &= ~EN_L2_WFI_PDN; /* L2 cache memory is on in WAIT mode */ - if (is_local_state_off(power_state)) + if (is_local_state_off(power_state)) { val |= (L2PGE | EN_PLAT_PDN); - else - val |= EN_PLAT_PDN; + imx_a53_plat_slot_config(true); + } mmio_write_32(IMX_GPC_BASE + LPCR_A53_AD, val); - - imx_a53_plat_slot_config(true); } else { /* clear the slot and ack for cluster power down */ imx_a53_plat_slot_config(false); diff --git a/plat/imx/imx8m/imx8m_psci_common.c b/plat/imx/imx8m/imx8m_psci_common.c index d6416288e..dbb772dc1 100644 --- a/plat/imx/imx8m/imx8m_psci_common.c +++ b/plat/imx/imx8m/imx8m_psci_common.c @@ -192,7 +192,7 @@ void __dead2 imx_pwr_domain_pwr_down_wfi(const psci_power_state_t *target_state) * drived by the 32K OSC, so delay 30us to make sure the counter * is really running. */ - if (!is_local_state_run(CLUSTER_PWR_STATE(target_state))) { + if (is_local_state_off(CLUSTER_PWR_STATE(target_state))) { imx_set_rbc_count(); udelay(30); } |