summaryrefslogtreecommitdiffstats
path: root/drivers/clk/sunxi-ng/ccu_mux.c
diff options
context:
space:
mode:
authorChen-Yu Tsai <wens@csie.org>2016-08-25 08:21:57 +0200
committerMaxime Ripard <maxime.ripard@free-electrons.com>2016-08-25 22:27:22 +0200
commitff5294db4161d7121c0251527d6ea2f1f9c91854 (patch)
tree6342ff187690b5dc1975b47db8d46caddaae58a2 /drivers/clk/sunxi-ng/ccu_mux.c
parentclk: sunxi-ng: mux: Add support for mux tables (diff)
downloadlinux-ff5294db4161d7121c0251527d6ea2f1f9c91854.tar.xz
linux-ff5294db4161d7121c0251527d6ea2f1f9c91854.zip
clk: sunxi-ng: mux: support fixed pre-dividers on multiple parents
Some clocks on the A31 have fixed pre-dividers on multiple parents. Add support for them. Signed-off-by: Chen-Yu Tsai <wens@csie.org> Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Diffstat (limited to 'drivers/clk/sunxi-ng/ccu_mux.c')
-rw-r--r--drivers/clk/sunxi-ng/ccu_mux.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/clk/sunxi-ng/ccu_mux.c b/drivers/clk/sunxi-ng/ccu_mux.c
index 68b32f168a74..7b17e0c26b01 100644
--- a/drivers/clk/sunxi-ng/ccu_mux.c
+++ b/drivers/clk/sunxi-ng/ccu_mux.c
@@ -20,6 +20,7 @@ void ccu_mux_helper_adjust_parent_for_prediv(struct ccu_common *common,
{
u16 prediv = 1;
u32 reg;
+ int i;
if (!((common->features & CCU_FEATURE_FIXED_PREDIV) ||
(common->features & CCU_FEATURE_VARIABLE_PREDIV)))
@@ -32,8 +33,9 @@ void ccu_mux_helper_adjust_parent_for_prediv(struct ccu_common *common,
}
if (common->features & CCU_FEATURE_FIXED_PREDIV)
- if (parent_index == cm->fixed_prediv.index)
- prediv = cm->fixed_prediv.div;
+ for (i = 0; i < cm->n_predivs; i++)
+ if (parent_index == cm->fixed_predivs[i].index)
+ prediv = cm->fixed_predivs[i].div;
if (common->features & CCU_FEATURE_VARIABLE_PREDIV)
if (parent_index == cm->variable_prediv.index) {