This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM572x: AVS voltage adjustments in U-Boot

Other Parts Discussed in Thread: TPS659037, AM5728

Hi,

I'm using a custom hardware with a AM5728 device and the TPS659037 PMIC. The power domains DSPEVE, GPU and IVA are supplied by a single PMIC rail, SMPS45. The GP EVM uses the same configuration.

While checking configuration of the voltages in U-Boot I discovered that the voltages for these domains are configured independently after each other in scale_vcores():

    val = optimize_vcore_voltage(&vcores->gpu);
    do_scale_vcore(vcores->gpu.addr, val, vcores->gpu.pmic);

    val = optimize_vcore_voltage(&vcores->eve);
    do_scale_vcore(vcores->eve.addr, val, vcores->eve.pmic);

    val = optimize_vcore_voltage(&vcores->iva);
    do_scale_vcore(vcores->iva.addr, val, vcores->iva.pmic);

Because they all use the same PMIC power rail, only the last call takes effect, overwriting the previous settings. There also is an alternative implementation if CONFIG_DRA7XX is defined, which seems to search for the maximum voltage for shared rails. But I think this is not used by the GP EVM. I'm not sure how to proceed.

Thanks,
Ralf