summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBai Ping <ping.bai@nxp.com>2017-01-19 18:27:34 +0800
committerBai Ping <ping.bai@nxp.com>2017-01-20 17:30:46 +0800
commit5aa5974f487e0b4c2e963a86203161c5f05e2fdf (patch)
treedc5e1311945680b78adcee9d6cbc7bf5831d88ca
parentdf42b7b0c5e6847f32419075eb25f274ed039d6f (diff)
downloadu-boot-imx-5aa5974f487e0b4c2e963a86203161c5f05e2fdf.zip
u-boot-imx-5aa5974f487e0b4c2e963a86203161c5f05e2fdf.tar.gz
u-boot-imx-5aa5974f487e0b4c2e963a86203161c5f05e2fdf.tar.bz2
MLK-13761 board: imx7ulp: Fix system reset after a7 rtc alarm expired.
The board will reboot if A7 core enter mem mode by rtc, then M4 core enter VLLS mode after the RTC alarm expired. Enable the dumb PMIC mode to fix this issue. Signed-off-by: Bai Ping <ping.bai@nxp.com>
-rw-r--r--arch/arm/cpu/armv7/mx7ulp/soc.c3
-rw-r--r--arch/arm/include/asm/arch-mx7ulp/imx-regs.h4
2 files changed, 7 insertions, 0 deletions
diff --git a/arch/arm/cpu/armv7/mx7ulp/soc.c b/arch/arm/cpu/armv7/mx7ulp/soc.c
index 09e6851..871dfcd 100644
--- a/arch/arm/cpu/armv7/mx7ulp/soc.c
+++ b/arch/arm/cpu/armv7/mx7ulp/soc.c
@@ -157,6 +157,9 @@ void s_init(void)
/* clock configuration. */
clock_init();
+ /* enable dumb pmic */
+ writel((readl(SNVS_LP_LPCR) | 0x20), SNVS_LP_LPCR);
+
return;
}
diff --git a/arch/arm/include/asm/arch-mx7ulp/imx-regs.h b/arch/arm/include/asm/arch-mx7ulp/imx-regs.h
index fed22f6..474e526 100644
--- a/arch/arm/include/asm/arch-mx7ulp/imx-regs.h
+++ b/arch/arm/include/asm/arch-mx7ulp/imx-regs.h
@@ -56,6 +56,7 @@
#define USDHC1_AIPS2_SLOT (56)
#define RGPIO2P0_AIPS0_SLOT (15)
#define RGPIO2P1_AIPS2_SLOT (15)
+#define SNVS_AIPS2_SLOT (35)
#define IOMUXC0_AIPS0_SLOT (61)
#define OCOTP_CTRL_AIPS1_SLOT (38)
#define OCOTP_CTRL_PCC1_SLOT (38)
@@ -185,6 +186,9 @@
#define USDHC0_RBASE ((AIPS2_BASE + (AIPS2_SLOT_SIZE * USDHC0_AIPS2_SLOT)))
#define USDHC1_RBASE ((AIPS2_BASE + (AIPS2_SLOT_SIZE * USDHC1_AIPS2_SLOT)))
+#define SNVS_BASE ((AIPS2_BASE + (AIPS2_SLOT_SIZE * SNVS_AIPS2_SLOT)))
+#define SNVS_LP_LPCR (SNVS_BASE + 0x38)
+
#define RGPIO2P0_RBASE ((AIPS0_BASE + (AIPS0_SLOT_SIZE * RGPIO2P0_AIPS0_SLOT)))
#define RGPIO2P1_RBASE ((AIPS2_BASE + (AIPS2_SLOT_SIZE * RGPIO2P1_AIPS2_SLOT)))