summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--board/freescale/mx6sl_arm2/mx6sl_arm2.c13
-rw-r--r--board/freescale/mx6sl_evk/mx6sl_evk.c14
2 files changed, 27 insertions, 0 deletions
diff --git a/board/freescale/mx6sl_arm2/mx6sl_arm2.c b/board/freescale/mx6sl_arm2/mx6sl_arm2.c
index 13d6339..f695066 100644
--- a/board/freescale/mx6sl_arm2/mx6sl_arm2.c
+++ b/board/freescale/mx6sl_arm2/mx6sl_arm2.c
@@ -1009,6 +1009,19 @@ static int setup_pmic_voltages(void)
int board_init(void)
{
+/*
+ * need set Power Supply Glitch to 0x41736166
+ * and need clear Power supply Glitch Detect bit
+ * when POR or reboot or power on Otherwise system
+ * could not be power off anymore
+ * */
+ u32 reg;
+ writel(0x41736166, SNVS_BASE_ADDR + 0x64);/*set LPPGDR*/
+ udelay(10);
+ reg = readl(SNVS_BASE_ADDR + 0x4c);
+ reg |= (1 << 3);
+ writel(reg, SNVS_BASE_ADDR + 0x4c);/*clear LPSR*/
+
mxc_iomux_v3_init((void *)IOMUXC_BASE_ADDR);
setup_boot_device();
diff --git a/board/freescale/mx6sl_evk/mx6sl_evk.c b/board/freescale/mx6sl_evk/mx6sl_evk.c
index 1ce3e59..5800f3d 100644
--- a/board/freescale/mx6sl_evk/mx6sl_evk.c
+++ b/board/freescale/mx6sl_evk/mx6sl_evk.c
@@ -1033,6 +1033,20 @@ int check_powerkey_pressed(void)
int board_init(void)
{
+/*
+ * need set Power Supply Glitch to 0x41736166
+ * and need clear Power supply Glitch Detect bit
+ * when POR or reboot or power on Otherwise system
+ * could not be power off anymore;
+ * need to set SNVS work at DUMP mode;
+ * */
+ u32 reg;
+ writel(0x41736166, SNVS_BASE_ADDR + 0x64);/*set LPPGDR*/
+ udelay(10);
+ reg = readl(SNVS_BASE_ADDR + 0x4c);
+ reg |= (1 << 3);
+ writel(reg, SNVS_BASE_ADDR + 0x4c);/*clear LPSR*/
+
mxc_iomux_v3_init((void *)IOMUXC_BASE_ADDR);
setup_boot_device();