summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorAnson Huang <b20788@freescale.com>2015-03-16 13:08:06 +0800
committerJason Liu <r64343@freescale.com>2015-05-08 17:22:32 +0800
commit47c4180c8210d639bd140c85b975b85d4d38d67a (patch)
treeb74302e9a8a99495b0d0b7a6fa8b8fcb3d85faac /include
parente89472429091967bfa4a09ed08220d64d814b3ad (diff)
MLK-10430 ARM: imx: use IOMUX IRQ to make GPC state machine correct on imx7d
When ARM is waked up from WFI by irq number which < 32, GPC state machine may keep ARM WFI signal available for next time entering low power mode, so the issue is when we just set the low power mode in GPC, ARM is still executing instructions, whenever GPC's low power mode is enabled, the whole system is forced into low power mode, this is unexpected, low power mode should only be entered when ARM is in WFI. To fix this issue, we should make sure the last wakeup irq is from our SOC platform, the irq number should be >= 32, so here we force the IOMUX irq to be always pending by setting bit 12 of IOMUX_GPR1, then whenever we set the low power mode in GPC, we should unmask it in GPC first then mask it back, it will clean all previous internal logics in GPC low power mode. Signed-off-by: Anson Huang <b20788@freescale.com>
Diffstat (limited to 'include')
-rw-r--r--include/linux/mfd/syscon/imx7-iomuxc-gpr.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/mfd/syscon/imx7-iomuxc-gpr.h b/include/linux/mfd/syscon/imx7-iomuxc-gpr.h
index 24089a026af8..dd00de556ce8 100644
--- a/include/linux/mfd/syscon/imx7-iomuxc-gpr.h
+++ b/include/linux/mfd/syscon/imx7-iomuxc-gpr.h
@@ -36,6 +36,7 @@
#define IOMUXC_GPR22 0x58
/* For imx7d iomux gpr register field define */
+#define IMX7D_GPR1_IRQ_MASK (0x1 << 12)
#define IMX7D_GPR1_ENET1_TX_CLK_SEL_MASK (0x1 << 13)
#define IMX7D_GPR1_ENET2_TX_CLK_SEL_MASK (0x1 << 14)
#define IMX7D_GPR1_ENET_TX_CLK_SEL_MASK (0x3 << 13)