summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorRobin Gong <B38343@freescale.com>2011-10-08 11:17:42 +0800
committerAndy Voltz <andy.voltz@timesys.com>2012-03-09 11:26:43 -0500
commit4f190080f27f51351833bf964342296b305aff5c (patch)
tree7836fd34f2b1740e42de569170c93c550183fa15 /arch
parent19ae3dfaa0996d2755fc347811b03aee6acf8a05 (diff)
ENGR00155891 mx53_loco: enable mc34708's WDI function and pin configuration
Because of reboot failure, we add mc34708's WDI reset function and the pin's mux function when system reboot. So mc34708 will be reset when AP reboot. Signed-off-by: Robin Gong <B38343@freescale.com> (cherry picked from commit 8e03278824625e8d528e129ad49e094e4d533f87)
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-mx5/mx53_loco_pmic_mc34708.c5
-rw-r--r--arch/arm/plat-mxc/system.c4
2 files changed, 9 insertions, 0 deletions
diff --git a/arch/arm/mach-mx5/mx53_loco_pmic_mc34708.c b/arch/arm/mach-mx5/mx53_loco_pmic_mc34708.c
index ca5a05294f0e..3ad020629df9 100644
--- a/arch/arm/mach-mx5/mx53_loco_pmic_mc34708.c
+++ b/arch/arm/mach-mx5/mx53_loco_pmic_mc34708.c
@@ -285,6 +285,11 @@ static int mc34708_regulator_init(struct mc34708 *mc34708)
value &= ~SWHOLD_MASK;
pmic_write_reg(REG_MC34708_USB_CONTROL, value, 0xffffff);
+ /* enable WDI reset*/
+ pmic_read_reg(REG_MC34708_POWER_CTL2, &value, 0xffffff);
+ value |= 0x1000;
+ pmic_write_reg(REG_MC34708_POWER_CTL2, value, 0xffffff);
+
mc34708_register_regulator(mc34708, MC34708_SW1A, &sw1a_init);
mc34708_register_regulator(mc34708, MC34708_SW1B, &sw1b_init);
mc34708_register_regulator(mc34708, MC34708_SW2, &sw2_init);
diff --git a/arch/arm/plat-mxc/system.c b/arch/arm/plat-mxc/system.c
index e4665a290655..4f21d5cec5eb 100644
--- a/arch/arm/plat-mxc/system.c
+++ b/arch/arm/plat-mxc/system.c
@@ -78,6 +78,10 @@ void arch_reset(char mode, const char *cmd)
}
/* Assert SRS signal */
+#ifdef CONFIG_ARCH_MX5
+ if (board_is_mx53_loco_mc34708()) /*only for mx53_loco_mc34708*/
+ mxc_iomux_v3_setup_pad(MX53_PAD_GPIO_9__WDOG1_WDOG_B);
+#endif
__raw_writew(wcr_enable, wdog_base);
/* wait for reset to assert... */