summaryrefslogtreecommitdiff
path: root/arch/arm/mach-imx/pm-imx7.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-imx/pm-imx7.c')
-rw-r--r--arch/arm/mach-imx/pm-imx7.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/arm/mach-imx/pm-imx7.c b/arch/arm/mach-imx/pm-imx7.c
index f5d0fd575cc0..dc468f8c560f 100644
--- a/arch/arm/mach-imx/pm-imx7.c
+++ b/arch/arm/mach-imx/pm-imx7.c
@@ -577,6 +577,7 @@ static void __init imx7_pm_common_init(const struct imx7_pm_socdata
*socdata)
{
int ret;
+ struct regmap *gpr;
if (IS_ENABLED(CONFIG_SUSPEND)) {
ret = imx7_suspend_init(socdata);
@@ -584,6 +585,16 @@ static void __init imx7_pm_common_init(const struct imx7_pm_socdata
pr_warn("%s: No DDR LPM support with suspend %d!\n",
__func__, ret);
}
+
+ /*
+ * Force IOMUXC irq pending, so that the interrupt to GPC can be
+ * used to deassert dsm_request signal when the signal gets
+ * asserted unexpectedly.
+ */
+ gpr = syscon_regmap_lookup_by_compatible("fsl,imx7d-iomuxc-gpr");
+ if (!IS_ERR(gpr))
+ regmap_update_bits(gpr, IOMUXC_GPR1, IMX7D_GPR1_IRQ_MASK,
+ IMX7D_GPR1_IRQ_MASK);
}
void __init imx7d_pm_init(void)