diff options
Diffstat (limited to 'arch/arm/mach-omap2/vp.c')
-rw-r--r-- | arch/arm/mach-omap2/vp.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/arch/arm/mach-omap2/vp.c b/arch/arm/mach-omap2/vp.c index 85241b828c02..a3c30655aa30 100644 --- a/arch/arm/mach-omap2/vp.c +++ b/arch/arm/mach-omap2/vp.c | |||
@@ -58,8 +58,10 @@ void __init omap_vp_init(struct voltagedomain *voltdm) | |||
58 | sys_clk_rate = voltdm->sys_clk.rate / 1000; | 58 | sys_clk_rate = voltdm->sys_clk.rate / 1000; |
59 | 59 | ||
60 | timeout = (sys_clk_rate * voltdm->pmic->vp_timeout_us) / 1000; | 60 | timeout = (sys_clk_rate * voltdm->pmic->vp_timeout_us) / 1000; |
61 | vddmin = voltdm->pmic->vp_vddmin; | 61 | vddmin = max(voltdm->vp_param->vddmin, voltdm->pmic->vddmin); |
62 | vddmax = voltdm->pmic->vp_vddmax; | 62 | vddmax = min(voltdm->vp_param->vddmax, voltdm->pmic->vddmax); |
63 | vddmin = voltdm->pmic->uv_to_vsel(vddmin); | ||
64 | vddmax = voltdm->pmic->uv_to_vsel(vddmax); | ||
63 | 65 | ||
64 | waittime = DIV_ROUND_UP(voltdm->pmic->step_size * sys_clk_rate, | 66 | waittime = DIV_ROUND_UP(voltdm->pmic->step_size * sys_clk_rate, |
65 | 1000 * voltdm->pmic->slew_rate); | 67 | 1000 * voltdm->pmic->slew_rate); |
@@ -138,7 +140,7 @@ int omap_vp_forceupdate_scale(struct voltagedomain *voltdm, | |||
138 | udelay(1); | 140 | udelay(1); |
139 | } | 141 | } |
140 | if (timeout >= VP_TRANXDONE_TIMEOUT) { | 142 | if (timeout >= VP_TRANXDONE_TIMEOUT) { |
141 | pr_warn("%s: vdd_%s TRANXDONE timeout exceeded. Voltage change aborted", | 143 | pr_warn("%s: vdd_%s TRANXDONE timeout exceeded. Voltage change aborted\n", |
142 | __func__, voltdm->name); | 144 | __func__, voltdm->name); |
143 | return -ETIMEDOUT; | 145 | return -ETIMEDOUT; |
144 | } | 146 | } |
@@ -197,7 +199,7 @@ void omap_vp_enable(struct voltagedomain *voltdm) | |||
197 | u32 vpconfig, volt; | 199 | u32 vpconfig, volt; |
198 | 200 | ||
199 | if (!voltdm || IS_ERR(voltdm)) { | 201 | if (!voltdm || IS_ERR(voltdm)) { |
200 | pr_warning("%s: VDD specified does not exist!\n", __func__); | 202 | pr_warn("%s: VDD specified does not exist!\n", __func__); |
201 | return; | 203 | return; |
202 | } | 204 | } |
203 | 205 | ||
@@ -214,8 +216,8 @@ void omap_vp_enable(struct voltagedomain *voltdm) | |||
214 | 216 | ||
215 | volt = voltdm_get_voltage(voltdm); | 217 | volt = voltdm_get_voltage(voltdm); |
216 | if (!volt) { | 218 | if (!volt) { |
217 | pr_warning("%s: unable to find current voltage for %s\n", | 219 | pr_warn("%s: unable to find current voltage for %s\n", |
218 | __func__, voltdm->name); | 220 | __func__, voltdm->name); |
219 | return; | 221 | return; |
220 | } | 222 | } |
221 | 223 | ||
@@ -242,7 +244,7 @@ void omap_vp_disable(struct voltagedomain *voltdm) | |||
242 | int timeout; | 244 | int timeout; |
243 | 245 | ||
244 | if (!voltdm || IS_ERR(voltdm)) { | 246 | if (!voltdm || IS_ERR(voltdm)) { |
245 | pr_warning("%s: VDD specified does not exist!\n", __func__); | 247 | pr_warn("%s: VDD specified does not exist!\n", __func__); |
246 | return; | 248 | return; |
247 | } | 249 | } |
248 | 250 | ||
@@ -272,8 +274,7 @@ void omap_vp_disable(struct voltagedomain *voltdm) | |||
272 | VP_IDLE_TIMEOUT, timeout); | 274 | VP_IDLE_TIMEOUT, timeout); |
273 | 275 | ||
274 | if (timeout >= VP_IDLE_TIMEOUT) | 276 | if (timeout >= VP_IDLE_TIMEOUT) |
275 | pr_warning("%s: vdd_%s idle timedout\n", | 277 | pr_warn("%s: vdd_%s idle timedout\n", __func__, voltdm->name); |
276 | __func__, voltdm->name); | ||
277 | 278 | ||
278 | vp->enabled = false; | 279 | vp->enabled = false; |
279 | 280 | ||