Home | History | Annotate | Download | only in starfive

Lines Matching refs:jcc

54     struct jh71x0_clkc_clk *jcc, uint32_t set, uint32_t clr)
57 uint32_t val = RD4(sc, jcc->jcc_reg);
60 WR4(sc, jcc->jcc_reg, val);
79 struct jh71x0_clkc_clk *jcc)
81 KASSERT(jcc->jcc_type == JH71X0CLK_FIXED_FACTOR);
83 struct jh71x0_clkc_fixed_factor * const jcff = &jcc->jcc_ffactor;
84 struct clk *clk = &jcc->jcc_clk;
108 struct jh71x0_clkc_clk *jcc, u_int rate)
110 KASSERT(jcc->jcc_type == JH71X0CLK_FIXED_FACTOR);
112 struct jh71x0_clkc_fixed_factor * const jcff = &jcc->jcc_ffactor;
113 struct clk *clk = &jcc->jcc_clk;
125 struct jh71x0_clkc_clk *jcc)
127 KASSERT(jcc->jcc_type == JH71X0CLK_FIXED_FACTOR);
129 struct jh71x0_clkc_fixed_factor * const jcff = &jcc->jcc_ffactor;
141 struct jh71x0_clkc_clk *jcc, const char *name)
143 KASSERT(jcc->jcc_type == JH71X0CLK_MUX);
145 struct jh71x0_clkc_mux * const jcm = &jcc->jcc_mux;
158 uint32_t val = RD4(sc, jcc->jcc_reg);
161 WR4(sc, jcc->jcc_reg, val);
169 struct jh71x0_clkc_clk *jcc)
171 KASSERT(jcc->jcc_type == JH71X0CLK_MUX);
173 uint32_t val = RD4(sc, jcc->jcc_reg);
176 if (pindex >= jcc->jcc_mux.jcm_nparents)
179 return jcc->jcc_mux.jcm_parents[pindex];
189 struct jh71x0_clkc_clk *jcc, int enable)
191 KASSERT(jcc->jcc_type == JH71X0CLK_GATE);
193 jh71x0_clkc_update(sc, jcc,
201 struct jh71x0_clkc_clk *jcc)
203 KASSERT(jcc->jcc_type == JH71X0CLK_GATE);
205 struct jh71x0_clkc_gate *jcc_gate = &jcc->jcc_gate;
217 struct jh71x0_clkc_clk *jcc)
219 KASSERT(jcc->jcc_type == JH71X0CLK_DIV);
221 struct clk * const clk = &jcc->jcc_clk;
231 uint32_t val = RD4(sc, jcc->jcc_reg);
239 struct jh71x0_clkc_clk *jcc, u_int new_rate)
241 KASSERT(jcc->jcc_type == JH71X0CLK_DIV);
243 struct jh71x0_clkc_div * const jcc_div = &jcc->jcc_div;
244 struct clk * const clk = &jcc->jcc_clk;
262 jh71x0_clkc_update(sc, jcc,
270 struct jh71x0_clkc_clk *jcc)
272 KASSERT(jcc->jcc_type == JH71X0CLK_DIV);
274 struct jh71x0_clkc_div *jcc_div = &jcc->jcc_div;
286 struct jh71x0_clkc_clk *jcc)
288 KASSERT(jcc->jcc_type == JH71X0CLK_FRACDIV);
290 struct clk * const clk = &jcc->jcc_clk;
301 uint32_t val = RD4(sc, jcc->jcc_reg);
311 struct jh71x0_clkc_clk *jcc, u_int new_rate)
313 KASSERT(jcc->jcc_type == JH71X0CLK_FRACDIV);
315 struct clk * const clk = &jcc->jcc_clk;
335 jh71x0_clkc_update(sc, jcc,
344 struct jh71x0_clkc_clk *jcc)
346 KASSERT(jcc->jcc_type == JH71X0CLK_FRACDIV);
348 struct jh71x0_clkc_fracdiv *jcc_fracdiv = &jcc->jcc_fracdiv;
361 struct jh71x0_clkc_clk *jcc, const char *name)
363 KASSERT(jcc->jcc_type == JH71X0CLK_MUXDIV);
365 struct jh71x0_clkc_muxdiv * const jcmd = &jcc->jcc_muxdiv;
378 uint32_t val = RD4(sc, jcc->jcc_reg);
381 WR4(sc, jcc->jcc_reg, val);
389 struct jh71x0_clkc_clk *jcc)
391 KASSERT(jcc->jcc_type == JH71X0CLK_MUXDIV);
393 uint32_t val = RD4(sc, jcc->jcc_reg);
396 if (pindex >= jcc->jcc_muxdiv.jcmd_nparents)
399 return jcc->jcc_muxdiv.jcmd_parents[pindex];
406 struct jh71x0_clkc_clk *jcc)
408 KASSERT(jcc->jcc_type == JH71X0CLK_MUXDIV);
410 struct clk * const clk = &jcc->jcc_clk;
420 uint32_t val = RD4(sc, jcc->jcc_reg);
428 struct jh71x0_clkc_clk *jcc, u_int new_rate)
430 KASSERT(jcc->jcc_type == JH71X0CLK_MUXDIV);
432 struct jh71x0_clkc_muxdiv * const jcc_muxdiv = &jcc->jcc_muxdiv;
433 struct clk * const clk = &jcc->jcc_clk;
451 jh71x0_clkc_update(sc, jcc,
463 struct jh71x0_clkc_clk *jcc)
465 KASSERT(jcc->jcc_type == JH71X0CLK_INV);
467 struct jh71x0_clkc_inv * const jci = &jcc->jcc_inv;
520 struct jh71x0_clkc_clk * const jcc = &sc->sc_clk[id];
522 if (strcmp(name, jcc->jcc_clk.name) == 0) {
523 return &jcc->jcc_clk;
540 struct jh71x0_clkc_clk * const jcc =
547 jcc->jcc_clk.name);
553 if (jcc->jcc_ops->jcco_setrate)
554 return jcc->jcc_ops->jcco_setrate(sc, jcc, rate);
563 struct jh71x0_clkc_clk * const jcc =
566 if (jcc->jcc_ops->jcco_getrate)
567 return jcc->jcc_ops->jcco_getrate(sc, jcc);
572 jcc->jcc_clk.name);
583 struct jh71x0_clkc_clk * const jcc =
593 switch (jcc->jcc_type) {
595 jh71x0_clkc_update(sc, jcc, JH71X0_CLK_ENABLE, 0);
599 struct jh71x0_clkc_div * const jcc_div = &jcc->jcc_div;
601 jh71x0_clkc_update(sc, jcc, JH71X0_CLK_ENABLE, 0);
607 struct jh71x0_clkc_mux * const jcc_mux = &jcc->jcc_mux;
609 jh71x0_clkc_update(sc, jcc, JH71X0_CLK_ENABLE, 0);
620 printf("%s: type %d\n", __func__, jcc->jcc_type);
630 struct jh71x0_clkc_clk * const jcc =
633 switch (jcc->jcc_type) {
635 jh71x0_clkc_update(sc, jcc, 0, JH71X0_CLK_ENABLE);
639 struct jh71x0_clkc_div * const jcc_div = &jcc->jcc_div;
641 jh71x0_clkc_update(sc, jcc, 0, JH71X0_CLK_ENABLE);
647 struct jh71x0_clkc_mux * const jcc_mux = &jcc->jcc_mux;
649 jh71x0_clkc_update(sc, jcc, 0, JH71X0_CLK_ENABLE);
671 struct jh71x0_clkc_clk * const jcc = &sc->sc_clk[id];
673 if (jcc->jcc_clk.name == NULL)
675 if (strcmp(jcc->jcc_clk.name, name) == 0)
676 return jcc;
689 struct jh71x0_clkc_clk * const jcc =
692 if (jcc->jcc_ops->jcco_setparent == NULL)
695 return jcc->jcc_ops->jcco_setparent(sc, jcc, clk_parent->name);
703 struct jh71x0_clkc_clk * const jcc =
706 if (jcc->jcc_ops->jcco_getparent == NULL)
709 const char *parent = jcc->jcc_ops->jcco_getparent(sc, jcc);