Lines Matching full:vsram
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
75 /* Vsram should not exceed the maximum allowed voltage of SoC. */ 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()
88 pr_err("%s: invalid Vsram value: %d\n", in mtk_cpufreq_voltage_tracking()
99 vsram = min(new_vsram, old_vproc + MAX_VOLT_SHIFT); in mtk_cpufreq_voltage_tracking()
101 if (vsram + VOLT_TOL >= MAX_VOLT_LIMIT) { in mtk_cpufreq_voltage_tracking()
102 vsram = MAX_VOLT_LIMIT; in mtk_cpufreq_voltage_tracking()
105 * If the target Vsram hits the maximum voltage, in mtk_cpufreq_voltage_tracking()
108 ret = regulator_set_voltage(sram_reg, vsram, in mtk_cpufreq_voltage_tracking()
109 vsram); in mtk_cpufreq_voltage_tracking()
112 vsram - VOLT_TOL, in mtk_cpufreq_voltage_tracking()
113 vsram); in mtk_cpufreq_voltage_tracking()
117 ret = regulator_set_voltage(sram_reg, vsram, in mtk_cpufreq_voltage_tracking()
118 vsram + VOLT_TOL); in mtk_cpufreq_voltage_tracking()
120 vproc = vsram - MIN_VOLT_SHIFT; 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()
138 * Keep doing it until Vsram and Vproc hit target voltages. in mtk_cpufreq_voltage_tracking()
149 pr_err("%s: invalid Vsram value: %d\n", in mtk_cpufreq_voltage_tracking()
161 vsram = new_vsram; in mtk_cpufreq_voltage_tracking()
163 vsram = max(new_vsram, vproc + MIN_VOLT_SHIFT); in mtk_cpufreq_voltage_tracking()
165 if (vsram + VOLT_TOL >= MAX_VOLT_LIMIT) { in mtk_cpufreq_voltage_tracking()
166 vsram = MAX_VOLT_LIMIT; in mtk_cpufreq_voltage_tracking()
169 * If the target Vsram hits the maximum voltage, in mtk_cpufreq_voltage_tracking()
172 ret = regulator_set_voltage(sram_reg, vsram, in mtk_cpufreq_voltage_tracking()
173 vsram); in mtk_cpufreq_voltage_tracking()
176 vsram - VOLT_TOL, in mtk_cpufreq_voltage_tracking()
177 vsram); in mtk_cpufreq_voltage_tracking()
179 ret = regulator_set_voltage(sram_reg, vsram, in mtk_cpufreq_voltage_tracking()
180 vsram + VOLT_TOL); in mtk_cpufreq_voltage_tracking()
189 vsram > new_vsram + VOLT_TOL); in mtk_cpufreq_voltage_tracking()