• Yuan Jiangli's avatar
    ARM: OMAP3+: PM: VP: fix integer truncation error · 3223d007
    Yuan Jiangli authored
    commit 2f34ce81
    (OMAP3: PM: Adding voltage driver support.)
    introduced runtime computation of waittime to handle all potential
    sys clocks available.
    
    In the voltage processor, the SPMSUpdateWait is calculated based on
    the slew rate and the voltage step (SMPSUpdateWait = slew rate *
    Voltage Step). After the voltage processor receives the SMPS_Ack
    signal, the Voltage Controller will wait for SMPSUpdateWait clock
    cycles for the voltage to settle to the new value. For all
    practical purposes, the waittime parameter is the OMAP hardware
    translation of what the slew rate on the PMIC is.
    
    As an example, with TPS62361 on OMAP4460,
    step_size = 10000
    slew_rate = 32000
    sys_clk_rate = 38400
    
    Our current computation results in the following:
     = ((step_size / slew_rate) * sys_clk_rate) / 1000
     = ((10000 / 32000) * 38400 / 1000
     = 0
    
    Fix the same using DIV_ROUND_UP as an extra wait clock cycle
    is better than lesser clock cycle. For the above example, this
    translates to:
     = (10000 * 38400) / (1000 * 32000)
     = 12
    Acked-by: default avatarJon Hunter <jon-hunter@ti.com>
    [nm@ti.com: slightly better implementation]
    Signed-off-by: default avatarNishanth Menon <nm@ti.com>
    Signed-off-by: default avatarYuan Jiangli <jlyuan@motorola.com>
    Acked-by: default avatarKevin Hilman <khilman@ti.com>
    Signed-off-by: default avatarTony Lindgren <tony@atomide.com>
    3223d007
vp.c 7.24 KB