• Roman Volkov's avatar
    clk: vt8500: rework wm8650_find_pll_bits() · c03d795b
    Roman Volkov authored
    PLL clock on WM8650 is calculated in the following way:
    M * parent [O1] => / P [O2] => / D [O3]
    Where O2 is 600MHz >= (M * parent) / P >= 300MHz.
    Current algorithm does not met this requirement, so that the
    function may return rates which are not supported by the hardware.
    This patch fixes the algorithm and simplifies the code, reducing
    the calculation time by ~10000 times (according to usermode app) by
    removing the nested loops.
    Signed-off-by: default avatarRoman Volkov <rvolkov@v1ros.org>
    Signed-off-by: default avatarStephen Boyd <sboyd@codeaurora.org>
clk-vt8500.c 18.1 KB