regulator: mt6358 vdram2_idx/vsel_mask/ vsel_shift setting seems wrong

Axel Lin axel.lin at
Mon Jun 21 20:20:08 PDT 2021

Hi Hsin-Hsiung,

In drivers/regulator/mt6358-regulator.c:

static const u32 vdram2_idx[] = {
        0, 12,

MT6358_LDO("ldo_vdram2", VDRAM2, vdram2_voltages, vdram2_idx,
           MT6358_LDO_VDRAM2_CON0, 0, MT6358_LDO_VDRAM2_ELR0, 0x10, 0),

With current setting the vsel_mask does not match the vsel_shift setting
   So in set_voltage_sel, it will call regmap_update_bits with
   mask = 0x10
   val = idx << 0
   No matter idx is 0 (pvol[0]) or 12 (pvol[1]), it will clear vsel_mask bits

I don't have the datasheet to check, so please help to double check the
vdram2_idx, vsel_mask and vsel_shift settings for ldo_vdram2.
I think at least one of the settings is wrong.


More information about the Linux-mediatek mailing list