summaryrefslogtreecommitdiffstats
path: root/recipes-kernel/linux/linux-imx-2.6.35.3/1132-ENGR00155891-mx53_loco-enable-mc34708-s-WDI-functio.patch
blob: 8ebcf840df6872a4cc011c50f9d63661da637e1d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
From 8cece584b73434c1eb76a553424ff5b875fd1022 Mon Sep 17 00:00:00 2001
From: Robin Gong <B38343@freescale.com>
Date: Sat, 8 Oct 2011 11:17:42 +0800
Subject: [PATCH] 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)
---
 arch/arm/mach-mx5/mx53_loco_pmic_mc34708.c |    5 +++++
 arch/arm/plat-mxc/system.c                 |    4 ++++
 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 ca5a052..3ad0206 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 e4665a2..4f21d5c 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... */
-- 
1.5.4.4