[PATCH 2/2] mx53loco: add support for MC34708

Eric Miao eric.miao at linaro.org
Sat Oct 8 15:22:40 UTC 2011


From: Eric Miao <eric.miao at canonical.com>

A quick support for mx53 QuickStart board with MC34708.

Signed-off-by: Eric Miao <eric.miao at linaro.org>
---
 board/freescale/mx53loco/mx53loco.c |   57 +++++++++++++++++++++++++++--------
 include/configs/mx53loco.h          |    3 +-
 2 files changed, 46 insertions(+), 14 deletions(-)

diff --git a/board/freescale/mx53loco/mx53loco.c b/board/freescale/mx53loco/mx53loco.c
index 158ec32..82048e6 100644
--- a/board/freescale/mx53loco/mx53loco.c
+++ b/board/freescale/mx53loco/mx53loco.c
@@ -353,21 +353,48 @@ static void clock_init(void)
 		printf("CPU:   Switch DDR clock to 1GHZ failed\n");
 }
 
+static int pmic_mc34708 = 0;
+
 static void power_init(void)
 {
 	unsigned int val;
-
-	/* Set VDDA to 1.25V */
-	val = DA9052_BUCKCORE_BCOREEN;
-	val |= DA_BUCKCORE_VBCORE_1_250V;
-	pmic_reg_write(DA9053_BUCKCORE_REG, val);
-	val = pmic_reg_read(DA9053_SUPPLY_REG);
-	val |= DA9052_SUPPLY_VBCOREGO;
-	pmic_reg_write(DA9053_SUPPLY_REG, val);
-
-	/* Set Vcc peripheral to 1.35V */
-	pmic_reg_write(0x2f, 0x62);
-	pmic_reg_write(0x3c, 0x62);
+	unsigned char buf[4] = { 0, 0, 0, 0 };
+
+	if (i2c_probe(0x08) == 0)
+		pmic_mc34708 = 1;
+
+	if (pmic_mc34708) {
+		i2c_read(0x8, 24, 1, &buf[0], 3);
+
+		/* increase VDDGP as 1.25V for 1GHZ on SW1 */
+		buf[2] = 0x30;
+		i2c_write(0x8, 24, 1, buf, 3);
+
+		i2c_read(0x8, 25, 1, &buf[0], 3);
+
+		/* increase VCC as 1.3V on SW2 */
+		buf[2] = 0x34;
+		i2c_write(0x8, 25, 1, buf, 3);
+
+		/*change global reset time as 4s*/
+		i2c_read(0x8, 15, 1, &buf[0], 3);
+
+		buf[1] |= 0x1;
+		buf[1] &= ~0x2;
+		i2c_write(0x8, 15, 1, buf, 3);
+	} else {
+		/* Set VDDA to 1.25V */
+		val = DA9052_BUCKCORE_BCOREEN;
+		val |= DA_BUCKCORE_VBCORE_1_250V;
+		pmic_reg_write(DA9053_BUCKCORE_REG, val);
+		val = pmic_reg_read(DA9053_SUPPLY_REG);
+		val |= DA9052_SUPPLY_VBCOREGO;
+		pmic_reg_write(DA9053_SUPPLY_REG, val);
+
+		/* Set Vcc peripheral to 1.35V */
+		pmic_reg_write(0x2f, 0x62);
+		pmic_reg_write(0x3c, 0x62);
+	}
 }
 
 int board_early_init_f(void)
@@ -393,7 +420,11 @@ int board_init(void)
 
 int checkboard(void)
 {
-	puts("Board: MX53 LOCO\n");
+	puts("Board: MX53 LOCO");
+
+	if (pmic_mc34708)
+		puts(" with MC34708");
 
+	puts("\n");
 	return 0;
 }
diff --git a/include/configs/mx53loco.h b/include/configs/mx53loco.h
index 644c853..04d2ee3 100644
--- a/include/configs/mx53loco.h
+++ b/include/configs/mx53loco.h
@@ -56,7 +56,8 @@
 
 /* PMIC Configs */
 #define CONFIG_DIALOG_PMIC
-#define CONFIG_SYS_DIALOG_PMIC_I2C_ADDR    0x48
+#define CONFIG_SYS_DIALOG_PMIC_I2C_ADDR	0x48
+#define CONFIG_SYS_MC34708_I2C_ADDR	0x08
 
 /* MMC Configs */
 #define CONFIG_FSL_ESDHC
-- 
1.7.4.1




More information about the linaro-dev mailing list