aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Miao <eric.miao@canonical.com>2011-10-03 22:11:02 +0800
committerEric Miao <eric.miao@canonical.com>2011-10-03 22:31:35 +0800
commitc3f3101d0b5becf70030ce046c1a1a7ce5ea5603 (patch)
tree65ab5d63b977a32cd02b1bddc6d9b2a3f3d10737
parentae245d901241e76d5d5213585c13fae522c768e9 (diff)
downloadu-boot-linaro-c3f3101d0b5becf70030ce046c1a1a7ce5ea5603.tar.gz
mx53loco: add support for MC34708
A quick support for mx53 QuickStart board with MC34708. Signed-off-by: Eric Miao <eric.miao@linaro.org>
-rw-r--r--board/freescale/mx53loco/mx53loco.c57
-rw-r--r--include/configs/mx53loco.h3
2 files changed, 46 insertions, 14 deletions
diff --git a/board/freescale/mx53loco/mx53loco.c b/board/freescale/mx53loco/mx53loco.c
index 158ec3270..82048e68c 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 644c85355..04d2ee3ae 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