clk: rockchip: add clock type for pll clocks and pll used on rk3066
authorHeiko Stübner <heiko@sntech.de>
Wed, 2 Jul 2014 23:59:10 +0000 (01:59 +0200)
committerMike Turquette <mturquette@linaro.org>
Sun, 13 Jul 2014 19:17:06 +0000 (12:17 -0700)
commit90c590254051f511299538c158e12fdad41ce163
treed77e33a138a6b9ec55f2b7f0cdbf259cb3cffff4
parenta245fecbb8064641d9cc317b347b5bdb2b7a4bb6
clk: rockchip: add clock type for pll clocks and pll used on rk3066

All known Rockchip SoCs down to the RK28xx (ARM9) use a similar pattern to
handle their plls:
                       |--\
xin32k ----------------|mux\
xin24m -----| pll |----|pll|--- pll output
       \---------------|src/
                       |--/

The pll output is sourced from 1 of 3 sources, the actual pll being one of
them. To change the pll frequency it is imperative to remux it to another
source beforehand. This is done by adding a clock-listener to the pll that
handles the remuxing before and after the rate change.

The output mux is implemented as a separate clock to make use of already
existing common-clock features for disabling the pll if one of the other
two sources is used.

Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Acked-By: Max Schwarz <max.schwarz@online.de>
Tested-By: Max Schwarz <max.schwarz@online.de>
Signed-off-by: Mike Turquette <mturquette@linaro.org>
drivers/clk/rockchip/Makefile
drivers/clk/rockchip/clk-pll.c [new file with mode: 0644]
drivers/clk/rockchip/clk.c
drivers/clk/rockchip/clk.h