diff options
-rw-r--r-- | arch/arm/mach-ux500/board-mop500-regulators.c | 7 | ||||
-rw-r--r-- | arch/arm/mach-ux500/clock-db8500.c | 6 | ||||
-rw-r--r-- | drivers/regulator/ab8500.c | 2 |
3 files changed, 13 insertions, 2 deletions
diff --git a/arch/arm/mach-ux500/board-mop500-regulators.c b/arch/arm/mach-ux500/board-mop500-regulators.c index 1408bd50dbb..06262bd6b2d 100644 --- a/arch/arm/mach-ux500/board-mop500-regulators.c +++ b/arch/arm/mach-ux500/board-mop500-regulators.c @@ -504,8 +504,13 @@ struct regulator_init_data ab8500_regulators[AB8500_NUM_REGULATORS] = { .name = "V-INTCORE", .min_uV = 1250000, .max_uV = 1350000, + .input_uV = 1800000, .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE | - REGULATOR_CHANGE_STATUS, + REGULATOR_CHANGE_STATUS | + REGULATOR_CHANGE_MODE | + REGULATOR_CHANGE_DRMS, + .valid_modes_mask = REGULATOR_MODE_NORMAL | + REGULATOR_MODE_IDLE, }, .num_consumer_supplies = ARRAY_SIZE(ab8500_vintcore_consumers), .consumer_supplies = ab8500_vintcore_consumers, diff --git a/arch/arm/mach-ux500/clock-db8500.c b/arch/arm/mach-ux500/clock-db8500.c index 5434fef0d3f..19a549fbcc6 100644 --- a/arch/arm/mach-ux500/clock-db8500.c +++ b/arch/arm/mach-ux500/clock-db8500.c @@ -139,6 +139,9 @@ static int ab_ulpclk_enable(struct clk *clk) return PTR_ERR(reg); clk->regulator = reg; } + err = regulator_set_optimum_mode(clk->regulator, 1500); + if (unlikely(err < 0)) + goto regulator_enable_error; err = regulator_enable(clk->regulator); if (unlikely(err)) goto regulator_enable_error; @@ -168,6 +171,9 @@ static void ab_ulpclk_disable(struct clk *clk) AB8500_SYSULPCLKCTRL1_ULPCLKREQ); if (unlikely(regulator_disable(clk->regulator) || err)) goto out_err; + + regulator_set_optimum_mode(clk->regulator, 0); + return; out_err: diff --git a/drivers/regulator/ab8500.c b/drivers/regulator/ab8500.c index db9a93d513c..c96a0910d6e 100644 --- a/drivers/regulator/ab8500.c +++ b/drivers/regulator/ab8500.c @@ -651,7 +651,7 @@ static struct ab8500_regulator_info .update_bank = 0x03, .update_reg = 0x80, .update_mask = 0x44, - .update_val = 0x04, + .update_val = 0x44, .update_val_idle = 0x44, .update_val_normal = 0x04, .voltage_bank = 0x03, |