Lines Matching full:md
23 int mux_div_set_src_div(struct clk_regmap_mux_div *md, u32 src, u32 div) in mux_div_set_src_div() argument
27 const char *name = clk_hw_get_name(&md->clkr.hw); in mux_div_set_src_div()
29 val = (div << md->hid_shift) | (src << md->src_shift); in mux_div_set_src_div()
30 mask = ((BIT(md->hid_width) - 1) << md->hid_shift) | in mux_div_set_src_div()
31 ((BIT(md->src_width) - 1) << md->src_shift); in mux_div_set_src_div()
33 ret = regmap_update_bits(md->clkr.regmap, CFG_RCGR + md->reg_offset, in mux_div_set_src_div()
38 ret = regmap_update_bits(md->clkr.regmap, CMD_RCGR + md->reg_offset, in mux_div_set_src_div()
45 ret = regmap_read(md->clkr.regmap, CMD_RCGR + md->reg_offset, in mux_div_set_src_div()
59 static void mux_div_get_src_div(struct clk_regmap_mux_div *md, u32 *src, in mux_div_get_src_div() argument
63 const char *name = clk_hw_get_name(&md->clkr.hw); in mux_div_get_src_div()
65 regmap_read(md->clkr.regmap, CMD_RCGR + md->reg_offset, &val); in mux_div_get_src_div()
72 regmap_read(md->clkr.regmap, CFG_RCGR + md->reg_offset, &val); in mux_div_get_src_div()
73 s = (val >> md->src_shift); in mux_div_get_src_div()
74 s &= BIT(md->src_width) - 1; in mux_div_get_src_div()
77 d = (val >> md->hid_shift); in mux_div_get_src_div()
78 d &= BIT(md->hid_width) - 1; in mux_div_get_src_div()
91 struct clk_regmap_mux_div *md = to_clk_regmap_mux_div(hw); in mux_div_determine_rate() local
100 max_div = BIT(md->hid_width) - 1; in mux_div_determine_rate()
127 struct clk_regmap_mux_div *md = to_clk_regmap_mux_div(hw); in __mux_div_set_rate_and_parent() local
137 max_div = BIT(md->hid_width) - 1; in __mux_div_set_rate_and_parent()
145 best_src = md->parent_map[i]; in __mux_div_set_rate_and_parent()
154 ret = mux_div_set_src_div(md, best_src, best_div); in __mux_div_set_rate_and_parent()
156 md->div = best_div; in __mux_div_set_rate_and_parent()
157 md->src = best_src; in __mux_div_set_rate_and_parent()
165 struct clk_regmap_mux_div *md = to_clk_regmap_mux_div(hw); in mux_div_get_parent() local
169 mux_div_get_src_div(md, &src, &div); in mux_div_get_parent()
172 if (src == md->parent_map[i]) in mux_div_get_parent()
181 struct clk_regmap_mux_div *md = to_clk_regmap_mux_div(hw); in mux_div_set_parent() local
183 return mux_div_set_src_div(md, md->parent_map[index], md->div); in mux_div_set_parent()
189 struct clk_regmap_mux_div *md = to_clk_regmap_mux_div(hw); in mux_div_set_rate() local
191 return __mux_div_set_rate_and_parent(hw, rate, prate, md->src); in mux_div_set_rate()
197 struct clk_regmap_mux_div *md = to_clk_regmap_mux_div(hw); in mux_div_set_rate_and_parent() local
200 md->parent_map[index]); in mux_div_set_rate_and_parent()
205 struct clk_regmap_mux_div *md = to_clk_regmap_mux_div(hw); in mux_div_recalc_rate() local
210 mux_div_get_src_div(md, &src, &div); in mux_div_recalc_rate()
212 if (src == md->parent_map[i]) { in mux_div_recalc_rate()