Afzal Mohammed <afzal@xxxxxx> writes: > Specify voltage in ranges for regulator. Range > used is tolerance specified for OPP. > > This helps to achieve DVFS with a wider range of > regulators. > > Cc: Kevin Hilman <khilman@xxxxxx> > Cc: Sekhar Nori <nsekhar@xxxxxx> > Signed-off-by: Afzal Mohammed <afzal@xxxxxx> Thanks, will queue this with the CPUfreq changes for MPU DVFS. Kevin > --- > Hi, > > Tolerance specified here is that of AM335X, least value > of tolerance that I could find so far for OMAP family > > This applies on top of Kevin Hilman's patch (v2), > "cpufreq: OMAP: scale voltage along with frequency" > http://www.spinics.net/lists/linux-omap/msg65002.html > > Regards > Afzal > > drivers/cpufreq/omap-cpufreq.c | 10 +++++++--- > 1 files changed, 7 insertions(+), 3 deletions(-) > > diff --git a/drivers/cpufreq/omap-cpufreq.c b/drivers/cpufreq/omap-cpufreq.c > index 10b8e23..3cea51b 100644 > --- a/drivers/cpufreq/omap-cpufreq.c > +++ b/drivers/cpufreq/omap-cpufreq.c > @@ -38,6 +38,9 @@ > > #include <mach/hardware.h> > > +/* OPP tolerance in percentage */ > +#define OPP_TOLERANCE 4 > + > #ifdef CONFIG_SMP > struct lpj_info { > unsigned long ref; > @@ -81,7 +84,7 @@ static int omap_target(struct cpufreq_policy *policy, > int r, ret = 0; > struct cpufreq_freqs freqs; > struct opp *opp; > - unsigned long freq, volt = 0, volt_old = 0; > + unsigned long freq, volt = 0, volt_old = 0, tol = 0; > > if (!freq_table) { > dev_err(mpu_dev, "%s: cpu%d: no freq table!\n", __func__, > @@ -125,6 +128,7 @@ static int omap_target(struct cpufreq_policy *policy, > return -EINVAL; > } > volt = opp_get_voltage(opp); > + tol = volt * OPP_TOLERANCE / 100; > volt_old = regulator_get_voltage(mpu_reg); > } > > @@ -134,7 +138,7 @@ static int omap_target(struct cpufreq_policy *policy, > > /* scaling up? scale voltage before frequency */ > if (mpu_reg && (freqs.new > freqs.old)) { > - r = regulator_set_voltage(mpu_reg, volt, volt); > + r = regulator_set_voltage(mpu_reg, volt - tol, volt + tol); > if (r < 0) { > dev_warn(mpu_dev, "%s: unable to scale voltage up.\n", > __func__); > @@ -147,7 +151,7 @@ static int omap_target(struct cpufreq_policy *policy, > > /* scaling down? scale voltage after frequency */ > if (mpu_reg && (freqs.new < freqs.old)) { > - r = regulator_set_voltage(mpu_reg, volt, volt); > + r = regulator_set_voltage(mpu_reg, volt - tol, volt + tol); > if (r < 0) { > dev_warn(mpu_dev, "%s: unable to scale voltage down.\n", > __func__); -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html