Lines Matching refs:clk
39 #include <dev/clk/clk_backend.h>
43 static struct clk *
47 struct imx_ccm_clk *clk;
55 clk = &sc->sc_clks[i];
56 if (clk->id == clock_id)
57 return &clk->base;
67 static struct clk *
71 struct imx_ccm_clk *clk;
73 clk = imx_ccm_clock_find(sc, name);
74 if (clk == NULL)
77 return &clk->base;
81 imx_ccm_clock_put(void *priv, struct clk *clk)
86 imx_ccm_clock_get_rate(void *priv, struct clk *clkp)
89 struct imx_ccm_clk *clk = (struct imx_ccm_clk *)clkp;
90 struct clk *clkp_parent;
92 if (clk->get_rate)
93 return clk->get_rate(sc, clk);
97 aprint_debug("%s: no parent for %s\n", __func__, clk->base.name);
105 imx_ccm_clock_set_rate(void *priv, struct clk *clkp, u_int rate)
108 struct imx_ccm_clk *clk = (struct imx_ccm_clk *)clkp;
109 struct clk *clkp_parent;
114 aprint_error("%s: no parent for %s\n", __func__, clk->base.name);
120 if (clk->set_rate)
121 return clk->set_rate(sc, clk, rate);
127 imx_ccm_clock_round_rate(void *priv, struct clk *clkp, u_int rate)
130 struct imx_ccm_clk *clk = (struct imx_ccm_clk *)clkp;
131 struct clk *clkp_parent;
136 aprint_error("%s: no parent for %s\n", __func__, clk->base.name);
142 if (clk->round_rate)
143 return clk->round_rate(sc, clk, rate);
149 imx_ccm_clock_enable(void *priv, struct clk *clkp)
152 struct imx_ccm_clk *clk = (struct imx_ccm_clk *)clkp;
153 struct clk *clkp_parent;
163 if (clk->enable)
164 error = clk->enable(sc, clk, 1);
170 imx_ccm_clock_disable(void *priv, struct clk *clkp)
173 struct imx_ccm_clk *clk = (struct imx_ccm_clk *)clkp;
176 if (clk->enable)
177 error = clk->enable(sc, clk, 0);
183 imx_ccm_clock_set_parent(void *priv, struct clk *clkp,
184 struct clk *clkp_parent)
187 struct imx_ccm_clk *clk = (struct imx_ccm_clk *)clkp;
189 if (clk->set_parent == NULL)
192 return clk->set_parent(sc, clk, clkp_parent->name);
195 static struct clk *
196 imx_ccm_clock_get_parent(void *priv, struct clk *clkp)
199 struct imx_ccm_clk *clk = (struct imx_ccm_clk *)clkp;
203 if (clk->get_parent == NULL)
206 parent = clk->get_parent(sc, clk);
276 struct imx_ccm_clk *clk;
277 struct clk *clkp_parent;
282 clk = &sc->sc_clks[i];
283 if (clk->type == IMX_CCM_UNKNOWN)
286 clkp_parent = clk_get_parent(&clk->base);
288 switch (clk->type) {
302 clk->id,
303 clk->base.name,
307 aprint_debug("%10d Hz\n", clk_get_rate(&clk->base));