Enabling the vddpu regulator at boot has no efect, since the enable call in
anatop will set it to power gated off. This leads to a hang in the VPU driver
if cpufreq does not get initialized before.
The anatop on i.MX6 requires that vddpu uses the same voltage level as vddsoc.
When it is initialized, vddsoc will have a default selector of 0
(Power gated off), but will use LDO_FET_FULL_ON since it is in bypass mode.
However, the local value saved for the vddsoc selector will remain 0.
When vddpu is enabled, it will use the local selector 0 from vddsoc and
will remain disabled.
Take into consideration the bypass mode when using the vddsoc selector for
vddpu.
Signed-off-by: Irina Tirdea <irina.tirdea@nxp.com>
* whenever it's about to be enabled.
*/
if (anatop_reg == vddpu && vddsoc)
- anatop_reg->sel = vddsoc->sel;
+ anatop_reg->sel = vddsoc->bypass ? LDO_FET_FULL_ON : vddsoc->sel;
sel = anatop_reg->bypass ? LDO_FET_FULL_ON : anatop_reg->sel;
return regulator_set_voltage_sel_regmap(reg, sel);