Lines Matching refs:ns

26 static u32 ns_to_src(struct src_sel *s, u32 ns)  in ns_to_src()  argument
28 ns >>= s->src_sel_shift; in ns_to_src()
29 ns &= SRC_SEL_MASK; in ns_to_src()
30 return ns; in ns_to_src()
33 static u32 src_to_ns(struct src_sel *s, u8 src, u32 ns) in src_to_ns() argument
39 ns &= ~mask; in src_to_ns()
41 ns |= src << s->src_sel_shift; in src_to_ns()
42 return ns; in src_to_ns()
49 u32 ns; in clk_rcg_get_parent() local
52 ret = regmap_read(rcg->clkr.regmap, rcg->ns_reg, &ns); in clk_rcg_get_parent()
55 ns = ns_to_src(&rcg->s, ns); in clk_rcg_get_parent()
57 if (ns == rcg->s.parent_map[i].cfg) in clk_rcg_get_parent()
76 u32 ns, reg; in clk_dyn_rcg_get_parent() local
87 ret = regmap_read(rcg->clkr.regmap, rcg->ns_reg[bank], &ns); in clk_dyn_rcg_get_parent()
90 ns = ns_to_src(s, ns); in clk_dyn_rcg_get_parent()
93 if (ns == s->parent_map[i].cfg) in clk_dyn_rcg_get_parent()
105 u32 ns; in clk_rcg_set_parent() local
107 regmap_read(rcg->clkr.regmap, rcg->ns_reg, &ns); in clk_rcg_set_parent()
108 ns = src_to_ns(&rcg->s, rcg->s.parent_map[index].cfg, ns); in clk_rcg_set_parent()
109 regmap_write(rcg->clkr.regmap, rcg->ns_reg, ns); in clk_rcg_set_parent()
121 static u32 ns_to_pre_div(struct pre_div *p, u32 ns) in ns_to_pre_div() argument
123 ns >>= p->pre_div_shift; in ns_to_pre_div()
124 ns &= BIT(p->pre_div_width) - 1; in ns_to_pre_div()
125 return ns; in ns_to_pre_div()
128 static u32 pre_div_to_ns(struct pre_div *p, u8 pre_div, u32 ns) in pre_div_to_ns() argument
134 ns &= ~mask; in pre_div_to_ns()
136 ns |= pre_div << p->pre_div_shift; in pre_div_to_ns()
137 return ns; in pre_div_to_ns()
157 static u32 ns_m_to_n(struct mn *mn, u32 ns, u32 m) in ns_m_to_n() argument
159 ns = ~ns >> mn->n_val_shift; in ns_m_to_n()
160 ns &= BIT(mn->width) - 1; in ns_m_to_n()
161 return ns + m; in ns_m_to_n()
171 static u32 mn_to_ns(struct mn *mn, u32 m, u32 n, u32 ns) in mn_to_ns() argument
177 ns &= ~mask; in mn_to_ns()
184 ns |= n; in mn_to_ns()
187 return ns; in mn_to_ns()
208 u32 ns, md, reg; in configure_bank() local
228 ret = regmap_read(rcg->clkr.regmap, ns_reg, &ns); in configure_bank()
236 ns |= BIT(mn->mnctr_reset_bit); in configure_bank()
237 ret = regmap_write(rcg->clkr.regmap, ns_reg, ns); in configure_bank()
248 ns = mn_to_ns(mn, f->m, f->n, ns); in configure_bank()
249 ret = regmap_write(rcg->clkr.regmap, ns_reg, ns); in configure_bank()
255 ns = mn_to_reg(mn, f->m, f->n, ns); in configure_bank()
256 ret = regmap_write(rcg->clkr.regmap, ns_reg, ns); in configure_bank()
267 ns &= ~BIT(mn->mnctr_reset_bit); in configure_bank()
268 ret = regmap_write(rcg->clkr.regmap, ns_reg, ns); in configure_bank()
275 ns = pre_div_to_ns(p, f->pre_div - 1, ns); in configure_bank()
282 ns = src_to_ns(s, s->parent_map[index].cfg, ns); in configure_bank()
283 ret = regmap_write(rcg->clkr.regmap, ns_reg, ns); in configure_bank()
302 u32 ns, md, reg; in clk_dyn_rcg_set_parent() local
311 regmap_read(rcg->clkr.regmap, rcg->ns_reg[bank], &ns); in clk_dyn_rcg_set_parent()
316 f.n = ns_m_to_n(&rcg->mn[bank], ns, f.m); in clk_dyn_rcg_set_parent()
320 f.pre_div = ns_to_pre_div(&rcg->p[bank], ns) + 1; in clk_dyn_rcg_set_parent()
353 u32 pre_div, m = 0, n = 0, ns, md, mode = 0; in clk_rcg_recalc_rate() local
356 regmap_read(rcg->clkr.regmap, rcg->ns_reg, &ns); in clk_rcg_recalc_rate()
357 pre_div = ns_to_pre_div(&rcg->p, ns); in clk_rcg_recalc_rate()
362 n = ns_m_to_n(mn, ns, m); in clk_rcg_recalc_rate()
367 mode = ns; in clk_rcg_recalc_rate()
378 u32 m, n, pre_div, ns, md, mode, reg; in clk_dyn_rcg_recalc_rate() local
387 regmap_read(rcg->clkr.regmap, rcg->ns_reg[bank], &ns); in clk_dyn_rcg_recalc_rate()
394 n = ns_m_to_n(mn, ns, m); in clk_dyn_rcg_recalc_rate()
397 reg = ns; in clk_dyn_rcg_recalc_rate()
402 pre_div = ns_to_pre_div(&rcg->p[bank], ns); in clk_dyn_rcg_recalc_rate()
489 u32 ns, md, ctl; in __clk_rcg_set_rate() local
507 regmap_read(rcg->clkr.regmap, rcg->ns_reg, &ns); in __clk_rcg_set_rate()
514 ns = mn_to_reg(mn, f->m, f->n, ns); in __clk_rcg_set_rate()
516 ns = mn_to_ns(mn, f->m, f->n, ns); in __clk_rcg_set_rate()
518 regmap_read(rcg->clkr.regmap, rcg->ns_reg, &ns); in __clk_rcg_set_rate()
521 ns = pre_div_to_ns(&rcg->p, f->pre_div - 1, ns); in __clk_rcg_set_rate()
522 regmap_write(rcg->clkr.regmap, rcg->ns_reg, ns); in __clk_rcg_set_rate()