diff options
-rw-r--r-- | board/freescale/mx6sl_arm2/mx6sl_arm2.c | 13 | ||||
-rw-r--r-- | board/freescale/mx6sl_evk/mx6sl_evk.c | 14 |
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(); |