Lines Matching defs:iclk

110 	struct imx6_clk *iclk;
111 iclk = imx6_clk_find(sc, name);
113 if (iclk == NULL)
116 return &iclk->base;
158 imxccm_clk_get_rate_pll_generic(struct imx6ccm_softc *sc, struct imx6_clk *iclk,
161 struct imx6_clk_pll *pll = &iclk->clk.pll;
174 imxccm_clk_get_rate_pll_sys(struct imx6ccm_softc *sc, struct imx6_clk *iclk,
177 struct imx6_clk_pll *pll = &iclk->clk.pll;
193 struct imx6_clk *iclk, const u_int rate_parent)
195 struct imx6_clk_pll *pll = &iclk->clk.pll;
214 struct imx6_clk *iclk, const u_int rate_parent)
216 struct imx6_clk_pll *pll = &iclk->clk.pll;
224 imxccm_clk_get_rate_fixed_factor(struct imx6ccm_softc *sc, struct imx6_clk *iclk)
226 struct imx6_clk_fixed_factor *fixed_factor = &iclk->clk.fixed_factor;
229 KASSERT(iclk->type == IMX6_CLK_FIXED_FACTOR);
231 parent = imx6_clk_find(sc, iclk->parent);
240 imxccm_clk_get_rate_pll(struct imx6ccm_softc *sc, struct imx6_clk *iclk)
242 struct imx6_clk_pll *pll = &iclk->clk.pll;
245 KASSERT(iclk->type == IMX6_CLK_PLL);
247 parent = imx6_clk_find(sc, iclk->parent);
254 return imxccm_clk_get_rate_pll_generic(sc, iclk, rate_parent);
256 return imxccm_clk_get_rate_pll_sys(sc, iclk, rate_parent);
258 return imxccm_clk_get_rate_pll_generic(sc, iclk, rate_parent);
260 return imxccm_clk_get_rate_pll_audio_video(sc, iclk, rate_parent);
262 return imxccm_clk_get_rate_pll_enet(sc, iclk, rate_parent);
264 panic("imx6: unknown pll type %d", iclk->type);
269 imxccm_clk_get_rate_div(struct imx6ccm_softc *sc, struct imx6_clk *iclk)
271 struct imx6_clk_div *div = &iclk->clk.div;
274 KASSERT(iclk->type == IMX6_CLK_DIV);
276 parent = imx6_clk_find(sc, iclk->parent);
304 imxccm_clk_get_rate_pfd(struct imx6ccm_softc *sc, struct imx6_clk *iclk)
306 struct imx6_clk_pfd *pfd = &iclk->clk.pfd;
309 KASSERT(iclk->type == IMX6_CLK_PFD);
311 parent = imx6_clk_find(sc, iclk->parent);
344 struct imx6_clk *iclk, struct clk *parent)
346 struct imx6_clk_mux *mux = &iclk->clk.mux;
350 KASSERT(iclk->type == IMX6_CLK_MUX);
371 iclk->parent = pname;
380 imxccm_clk_get_parent_mux(struct imx6ccm_softc *sc, struct imx6_clk *iclk)
382 struct imx6_clk_mux *mux = &iclk->clk.mux;
384 KASSERT(iclk->type == IMX6_CLK_MUX);
396 iclk->base.name, sel, mux->nparents);
398 iclk->parent = mux->parents[sel];
400 return imx6_clk_find(sc, iclk->parent);
405 struct imx6_clk *iclk, u_int rate)
414 struct imx6_clk *iclk, u_int rate)
416 struct imx6_clk_div *div = &iclk->clk.div;
419 KASSERT(iclk->type == IMX6_CLK_DIV);
421 parent = imx6_clk_find(sc, iclk->parent);
461 struct imx6_clk *iclk;
464 iclk = imx6_clk_find(sc, name);
465 if (iclk == NULL)
468 atomic_inc_uint(&iclk->refcnt);
470 return &iclk->base;
476 struct imx6_clk *iclk = (struct imx6_clk *)clk;
478 KASSERT(iclk->refcnt > 0);
480 atomic_dec_uint(&iclk->refcnt);
486 struct imx6_clk *iclk = (struct imx6_clk *)clk;
490 switch (iclk->type) {
492 return iclk->clk.fixed.rate;
494 return imxccm_clk_get_rate_fixed_factor(sc, iclk);
496 return imxccm_clk_get_rate_pll(sc, iclk);
502 return imxccm_clk_get_rate_div(sc, iclk);
504 return imxccm_clk_get_rate_pfd(sc, iclk);
506 panic("imx6: unknown clk type %d", iclk->type);
513 struct imx6_clk *iclk = (struct imx6_clk *)clk;
516 switch (iclk->type) {
521 return imxccm_clk_set_rate_pll(sc, iclk, rate);
527 return imxccm_clk_set_rate_div(sc, iclk, rate);
531 panic("imx6: unknown clk type %d", iclk->type);
536 imxccm_clk_enable_pll(struct imx6ccm_softc *sc, struct imx6_clk *iclk, bool enable)
538 struct imx6_clk_pll *pll = &iclk->clk.pll;
540 KASSERT(iclk->type == IMX6_CLK_PLL);
564 imxccm_clk_enable_gate(struct imx6ccm_softc *sc, struct imx6_clk *iclk, bool enable)
566 struct imx6_clk_gate *gate = &iclk->clk.gate;
568 KASSERT(iclk->type == IMX6_CLK_GATE);
594 struct imx6_clk *iclk = (struct imx6_clk *)clk;
598 if ((parent = imx6_clk_find(sc, iclk->parent)) != NULL)
601 switch (iclk->type) {
606 return imxccm_clk_enable_pll(sc, iclk, true);
612 return imxccm_clk_enable_gate(sc, iclk, true);
614 panic("imx6: unknown clk type %d", iclk->type);
621 struct imx6_clk *iclk = (struct imx6_clk *)clk;
624 switch (iclk->type) {
629 return imxccm_clk_enable_pll(sc, iclk, false);
635 return imxccm_clk_enable_gate(sc, iclk, false);
637 panic("imx6: unknown clk type %d", iclk->type);
644 struct imx6_clk *iclk = (struct imx6_clk *)clk;
647 switch (iclk->type) {
656 return imxccm_clk_set_parent_mux(sc, iclk, parent);
658 panic("imx6: unknown clk type %d", iclk->type);
665 struct imx6_clk *iclk = (struct imx6_clk *)clk;
669 switch (iclk->type) {
676 if (iclk->parent != NULL)
677 parent = imx6_clk_find(sc, iclk->parent);
680 parent = imxccm_clk_get_parent_mux(sc, iclk);
683 panic("imx6: unknown clk type %d", iclk->type);