Lines Matching full:vproc
27 * Mediatek SoCs has two voltage inputs, Vproc and Vsram. In some cases the two
29 * 100mV < Vsram - Vproc < 200mV
68 int old_vproc, old_vsram, new_vsram, vsram, vproc, ret; in mtk_cpufreq_voltage_tracking() local
72 pr_err("%s: invalid Vproc value: %d\n", __func__, old_vproc); in mtk_cpufreq_voltage_tracking()
80 * When scaling up voltages, Vsram and Vproc scale up step in mtk_cpufreq_voltage_tracking()
81 * by step. At each step, set Vsram to (Vproc + 200mV) first, in mtk_cpufreq_voltage_tracking()
82 * then set Vproc to (Vsram - 100mV). in mtk_cpufreq_voltage_tracking()
83 * Keep doing it until Vsram and Vproc hit target voltages. in mtk_cpufreq_voltage_tracking()
94 pr_err("%s: invalid Vproc value: %d\n", in mtk_cpufreq_voltage_tracking()
115 vproc = new_vproc; in mtk_cpufreq_voltage_tracking()
120 vproc = vsram - MIN_VOLT_SHIFT; in mtk_cpufreq_voltage_tracking()
125 ret = regulator_set_voltage(proc_reg, vproc, in mtk_cpufreq_voltage_tracking()
126 vproc + VOLT_TOL); in mtk_cpufreq_voltage_tracking()
132 } while (vproc < new_vproc || vsram < new_vsram); in mtk_cpufreq_voltage_tracking()
135 * When scaling down voltages, Vsram and Vproc scale down step in mtk_cpufreq_voltage_tracking()
136 * by step. At each step, set Vproc to (Vsram - 200mV) first, in mtk_cpufreq_voltage_tracking()
137 * then set Vproc to (Vproc + 100mV). in mtk_cpufreq_voltage_tracking()
138 * Keep doing it until Vsram and Vproc hit target voltages. in mtk_cpufreq_voltage_tracking()
143 pr_err("%s: invalid Vproc value: %d\n", in mtk_cpufreq_voltage_tracking()
154 vproc = max(new_vproc, old_vsram - MAX_VOLT_SHIFT); in mtk_cpufreq_voltage_tracking()
155 ret = regulator_set_voltage(proc_reg, vproc, in mtk_cpufreq_voltage_tracking()
156 vproc + VOLT_TOL); in mtk_cpufreq_voltage_tracking()
160 if (vproc == new_vproc) in mtk_cpufreq_voltage_tracking()
163 vsram = max(new_vsram, vproc + MIN_VOLT_SHIFT); in mtk_cpufreq_voltage_tracking()
188 } while (vproc > new_vproc + VOLT_TOL || in mtk_cpufreq_voltage_tracking()
195 static int mtk_cpufreq_set_voltage(struct mtk_cpu_dvfs_info *info, int vproc) in mtk_cpufreq_set_voltage() argument
198 return mtk_cpufreq_voltage_tracking(info, vproc); in mtk_cpufreq_set_voltage()
200 return regulator_set_voltage(info->proc_reg, vproc, in mtk_cpufreq_set_voltage()
201 vproc + VOLT_TOL); in mtk_cpufreq_set_voltage()
214 int vproc, old_vproc, inter_vproc, target_vproc, ret; in mtk_cpufreq_set_target() local
221 pr_err("%s: invalid Vproc value: %d\n", __func__, old_vproc); in mtk_cpufreq_set_target()
233 vproc = dev_pm_opp_get_voltage(opp); in mtk_cpufreq_set_target()
240 target_vproc = (inter_vproc > vproc) ? inter_vproc : vproc; in mtk_cpufreq_set_target()
285 if (vproc < inter_vproc || vproc < old_vproc) { in mtk_cpufreq_set_target()
286 ret = mtk_cpufreq_set_voltage(info, vproc); in mtk_cpufreq_set_target()