summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plat/imx/imx8m/gpc_common.c2
-rw-r--r--plat/imx/imx8m/imx8mp/gpc.c6
-rw-r--r--plat/imx/imx8m/imx8mp/include/gpc_reg.h4
3 files changed, 7 insertions, 5 deletions
diff --git a/plat/imx/imx8m/gpc_common.c b/plat/imx/imx8m/gpc_common.c
index 400341ce..7a8837ef 100644
--- a/plat/imx/imx8m/gpc_common.c
+++ b/plat/imx/imx8m/gpc_common.c
@@ -241,7 +241,7 @@ void imx_noc_slot_config(bool pdn)
mmio_setbits_32(IMX_GPC_BASE + SLTx_CFG(1), NOC_PDN_SLT_CTRL);
mmio_setbits_32(IMX_GPC_BASE + SLTx_CFG(2), NOC_PUP_SLT_CTRL);
/* clear a53's PDN ack, use NOC's PDN ack */
- mmio_clrsetbits_32(IMX_GPC_BASE + PGC_ACK_SEL_A53, 0xffff, NOC_PGC_PDN_ACK);
+ mmio_clrsetbits_32(IMX_GPC_BASE + PGC_ACK_SEL_A53, A53_PLAT_PDN_ACK, NOC_PGC_PDN_ACK);
mmio_setbits_32(IMX_GPC_BASE + NOC_PGC_PCR, 0x1);
} else {
mmio_clrbits_32(IMX_GPC_BASE + SLTx_CFG(1), NOC_PDN_SLT_CTRL);
diff --git a/plat/imx/imx8m/imx8mp/gpc.c b/plat/imx/imx8m/imx8mp/gpc.c
index 08a1a82b..4556b80c 100644
--- a/plat/imx/imx8m/imx8mp/gpc.c
+++ b/plat/imx/imx8m/imx8mp/gpc.c
@@ -351,7 +351,8 @@ void imx_gpc_pm_domain_enable(uint32_t domain_id, bool on)
}
if (on) {
- pu_domain_status |= (1 << domain_id);
+ if (pwr_domain->need_sync)
+ pu_domain_status |= (1 << domain_id);
if (domain_id == HDMIMIX) {
/* assert the reset */
@@ -404,7 +405,8 @@ void imx_gpc_pm_domain_enable(uint32_t domain_id, bool on)
if (domain_id == AUDIOMIX)
imx_aips5_init();
} else {
- pu_domain_status &= ~(1 << domain_id);
+ if (pwr_domain->need_sync)
+ pu_domain_status &= ~(1 << domain_id);
/* handle the ADB400 sync */
if (!pwr_domain->init_on && pwr_domain->need_sync) {
diff --git a/plat/imx/imx8m/imx8mp/include/gpc_reg.h b/plat/imx/imx8m/imx8mp/include/gpc_reg.h
index 70a895d6..66e4b920 100644
--- a/plat/imx/imx8m/imx8mp/include/gpc_reg.h
+++ b/plat/imx/imx8m/imx8mp/include/gpc_reg.h
@@ -70,8 +70,8 @@
#define NOC_PDN_SLT_CTRL BIT(12)
#define NOC_PUP_SLT_CTRL BIT(13)
-#define NOC_PGC_PDN_ACK BIT(8)
-#define NOC_PGC_PUP_ACK BIT(19)
+#define NOC_PGC_PDN_ACK BIT(12)
+#define NOC_PGC_PUP_ACK BIT(13)
#define PLAT_PUP_SLT_CTRL BIT(9)
#define PLAT_PDN_SLT_CTRL BIT(8)