diff options
-rw-r--r-- | arch/arm/mach-imx/gpcv2.c | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/arch/arm/mach-imx/gpcv2.c b/arch/arm/mach-imx/gpcv2.c index 72036e217c91..ef16e55ef831 100644 --- a/arch/arm/mach-imx/gpcv2.c +++ b/arch/arm/mach-imx/gpcv2.c @@ -623,10 +623,12 @@ void imx_gpcv2_post_resume(void) val |= BM_SLPCR_EN_A7_FASTWUP_WAIT_MODE; writel_relaxed(val, gpc_base + GPC_SLPCR); - /* disable memory low power mode */ - val = readl_relaxed(gpc_base + GPC_MLPCR); - val |= BM_GPC_MLPCR_MEMLP_CTL_DIS; - writel_relaxed(val, gpc_base + GPC_MLPCR); + if (imx_get_soc_revision() == IMX_CHIP_REVISION_1_0) { + /* disable memory low power mode */ + val = readl_relaxed(gpc_base + GPC_MLPCR); + val |= BM_GPC_MLPCR_MEMLP_CTL_DIS; + writel_relaxed(val, gpc_base + GPC_MLPCR); + } for (i = 0; i < IMR_NUM; i++) writel_relaxed(gpcv2_saved_imrs[i], reg_imr1 + i * 4); @@ -938,10 +940,12 @@ static int __init imx_gpcv2_init(struct device_node *node, val |= BM_SLPCR_EN_A7_FASTWUP_WAIT_MODE; writel_relaxed(val, gpc_base + GPC_SLPCR); - /* disable memory low power mode */ - val = readl_relaxed(gpc_base + GPC_MLPCR); - val |= BM_GPC_MLPCR_MEMLP_CTL_DIS; - writel_relaxed(val, gpc_base + GPC_MLPCR); + if (imx_get_soc_revision() == IMX_CHIP_REVISION_1_0) { + /* disable memory low power mode */ + val = readl_relaxed(gpc_base + GPC_MLPCR); + val |= BM_GPC_MLPCR_MEMLP_CTL_DIS; + writel_relaxed(val, gpc_base + GPC_MLPCR); + } /* disable RBC */ imx_gpcv2_enable_rbc(false); |