• Axel Lin's avatar
    regulator: Fix n_voltage settings for pcf50633 regulator · ba51c6c0
    Axel Lin authored
    Current code has off-by-one n_voltage settings for AUTO/DOWN*/LDO* regulators.
    
    Take ldo1 as example:
    n_voltage should be (3.6 - 0.9) / 0.1 + 1 = 28
    
    Table 76. LDO1OUT - LDO1 output voltage select register (address 2Dh) bit description[1]
    Bit Symbol Access Description
    4:0 ldo1_out R/W VO(prog) = 0.9 + ldo1_out × 0.1 V (max 3.6V); e.g.
    00000 : 0.9 V
    00001 : 1.0 V
    11000 : 3.3 V
    11011 : 3.6 V
    11111 : 3.6 V
    
    The n_voltage settings for HCLDO and MEMLDO are also wrong.
    n_voltage for HCLDO and MEMLDO should be (3.6 - 0.9) / 0.1 + 1 = 28
    
    Table 88. HCLDOOUT - HCLDO output voltage select register (addr. 39h) bit description[1]
    Bit Symbol Access Description
    4:0 hcldo_out R/W VO(prog) = 0.9 + hcldo_out × 0.1 V (max 3.6 V); e.g.
    00000 : 0.9 V
    00001 : 1.0 V
    11011 : 3.6 V
    11111 : 3.6 V
    
    Table 62. MEMLDOOUT - MEMLDO o/p voltage select reg. (address 26h) bit description[1]
    Bit Symbol Access Description
    4:0 memldo_out R/W VO(prog) = 0.9 + memldo_out × 0.1 V; e.g.
    00000: 0.9 V
    00001: 1.0 V
    11000 : 3.3 V
    11011 : 3.6 V
    11111 : 3.6 V
    Signed-off-by: default avatarAxel Lin <axel.lin@gmail.com>
    Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
    ba51c6c0
pcf50633-regulator.c 9.12 KB