• Paul Cercueil's avatar
    clk: ingenic: Add support for divider tables · a9fa2893
    Paul Cercueil authored
    Some clocks provided on Ingenic SoCs have dividers, whose hardware value
    as written in the register cannot be expressed as an affine function
    to the actual divider value.
    
    For instance, for the CPU clock on the JZ4770, the dividers are coded as
    follows:
    
        ------------------
        | Bits     | Div |
        ------------------
        | 0  0  0  |  1  |
        | 0  0  1  |  2  |
        | 0  1  0  |  3  |
        | 0  1  1  |  4  |
        | 1  0  0  |  6  |
        | 1  0  1  |  8  |
        | 1  1  0  | 12  |
        ------------------
    
    To support this setup, we introduce a new field in the
    ingenic_cgu_div_info structure that allows to specify the divider table.
    Signed-off-by: default avatarPaul Cercueil <paul@crapouillou.net>
    Signed-off-by: default avatarStephen Boyd <sboyd@kernel.org>
    a9fa2893
cgu.c 20.1 KB