diff options
-rw-r--r-- | board/freescale/mx53_smd/mx53_smd.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/board/freescale/mx53_smd/mx53_smd.c b/board/freescale/mx53_smd/mx53_smd.c index 3cfa430..aff0364 100644 --- a/board/freescale/mx53_smd/mx53_smd.c +++ b/board/freescale/mx53_smd/mx53_smd.c @@ -399,9 +399,15 @@ static void setup_i2c(unsigned int module_base) } } +/* restore VUSB 2V5 active after suspend */ +#define BUCKPERI_RESTORE_SW_STEP (0x55) +/* restore VUSB 2V5 power supply after suspend */ +#define SUPPLY_RESTORE_VPERISW_EN (0x20) +#define DA9052_ID1213_REG (35) +#define DA9052_SUPPLY_REG (60) void setup_pmic_voltages(void) { - int value; + uchar value; i2c_init(CONFIG_SYS_I2C_SPEED, CONFIG_SYS_I2C_SLAVE); /* increase VDDGP as 1.25V for 1GHZ */ value = 0x5e; @@ -409,6 +415,13 @@ void setup_pmic_voltages(void) i2c_read(0x48, 60, 1, &value, 1); value |= 0x1; i2c_write(0x48, 60, 1, &value, 1); + + /* restore VUSB_2V5 when reset from suspend state */ + value = BUCKPERI_RESTORE_SW_STEP; + i2c_write(0x48, DA9052_ID1213_REG, 1, &value, 1); + i2c_read(0x48, DA9052_SUPPLY_REG, 1, &value, 1); + value |= SUPPLY_RESTORE_VPERISW_EN; + i2c_write(0x48, DA9052_SUPPLY_REG, 1, &value, 1); } #endif |