From: Eric Miao <eric.m...@canonical.com>

A quick support for mx53 QuickStart board with MC34708.

Signed-off-by: Eric Miao <eric.m...@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


_______________________________________________
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev

Reply via email to