]> asedeno.scripts.mit.edu Git - linux.git/commit
clk: ingenic: Add support for divider tables
authorPaul Cercueil <paul@crapouillou.net>
Thu, 2 May 2019 21:24:58 +0000 (23:24 +0200)
committerStephen Boyd <sboyd@kernel.org>
Fri, 7 Jun 2019 18:48:58 +0000 (11:48 -0700)
commita9fa2893fcc64bd32cbc46bfb7aa09bde8175987
treed8d53fdece53eaef53440ecb0828626edae9c9e5
parenta188339ca5a396acc588e5851ed7e19f66b0ebd9
clk: ingenic: Add support for divider tables

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: Paul Cercueil <paul@crapouillou.net>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
drivers/clk/ingenic/cgu.c
drivers/clk/ingenic/cgu.h