
Preparing to support composite clk.
Signed-off-by: Peng Fan peng.fan@nxp.com --- drivers/clk/clk-divider.c | 4 ++-- drivers/clk/clk-mux.c | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/drivers/clk/clk-divider.c b/drivers/clk/clk-divider.c index 1d2c1b1ec4..2f09e0bb58 100644 --- a/drivers/clk/clk-divider.c +++ b/drivers/clk/clk-divider.c @@ -69,8 +69,8 @@ unsigned long divider_recalc_rate(struct clk *hw, unsigned long parent_rate,
static ulong clk_divider_recalc_rate(struct clk *clk) { - struct clk_divider *divider = - to_clk_divider((struct clk *)dev_get_driver_data(clk->dev)); + struct clk_divider *divider = to_clk_divider(clk_dev_binded(clk) ? + (struct clk *)dev_get_driver_data(clk->dev) : clk); unsigned long parent_rate = clk_get_parent_rate(clk); unsigned int val;
diff --git a/drivers/clk/clk-mux.c b/drivers/clk/clk-mux.c index 2c85f2052c..55fc97367a 100644 --- a/drivers/clk/clk-mux.c +++ b/drivers/clk/clk-mux.c @@ -35,7 +35,8 @@ int clk_mux_val_to_index(struct clk *clk, u32 *table, unsigned int flags, unsigned int val) { - struct clk_mux *mux = to_clk_mux(clk); + struct clk_mux *mux = to_clk_mux(clk_dev_binded(clk) ? + (struct clk *)dev_get_driver_data(clk->dev) : clk); int num_parents = mux->num_parents;
if (table) { @@ -61,7 +62,8 @@ int clk_mux_val_to_index(struct clk *clk, u32 *table, unsigned int flags,
static u8 clk_mux_get_parent(struct clk *clk) { - struct clk_mux *mux = to_clk_mux(clk); + struct clk_mux *mux = to_clk_mux(clk_dev_binded(clk) ? + (struct clk *)dev_get_driver_data(clk->dev) : clk); u32 val;
val = readl(mux->reg) >> mux->shift;