cpufreq: mediatek: Refine mtk_cpufreq_voltage_tracking()
authorJia-Wei Chang <jia-wei.chang@mediatek.com>
Thu, 5 May 2022 11:52:20 +0000 (19:52 +0800)
committerViresh Kumar <viresh.kumar@linaro.org>
Fri, 6 May 2022 04:10:42 +0000 (09:40 +0530)
commit6a17b3876bc8303612d7ad59ecf7cbc0db418bcd
tree1878638b7309089ebaaf2918226404f6d4d0a0d4
parentead858bd128d4ecfb2107115190d52d50416ec45
cpufreq: mediatek: Refine mtk_cpufreq_voltage_tracking()

Because the difference of sram and proc should in a range of min_volt_shift
and max_volt_shift. We need to adjust the sram and proc step by step.

We replace VOLT_TOL (voltage tolerance) with the platform data and update the
logic to determine the voltage boundary and invoking regulator_set_voltage.

- Use 'sram_min_volt' and 'sram_max_volt' to determine the voltage boundary
  of sram regulator.
- Use (sram_min_volt - min_volt_shift) and 'proc_max_volt' to determine the
  voltage boundary of vproc regulator.

Moreover, to prevent infinite loop when tracking voltage, we calculate the
maximum value for each platform data.
We assume min voltage is 0 and tracking target voltage using
min_volt_shift for each iteration.
The retry_max is 3 times of expeted iteration count.

Signed-off-by: Jia-Wei Chang <jia-wei.chang@mediatek.com>
Signed-off-by: Rex-BC Chen <rex-bc.chen@mediatek.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
drivers/cpufreq/mediatek-cpufreq.c