Lines Matching refs:clk

43 #include <dev/clk/clk_backend.h>
104 static struct clk *
109 struct sunxi_ccu_clk *clk;
118 clk = &sc->sc_clks[clock_id];
119 if (clk->type == SUNXI_CCU_UNKNOWN)
122 return &clk->base;
129 static struct clk *
133 struct sunxi_ccu_clk *clk;
135 clk = sunxi_ccu_clock_find(sc, name);
136 if (clk == NULL)
139 return &clk->base;
143 sunxi_ccu_clock_put(void *priv, struct clk *clk)
148 sunxi_ccu_clock_get_rate(void *priv, struct clk *clkp)
151 struct sunxi_ccu_clk *clk = (struct sunxi_ccu_clk *)clkp;
152 struct clk *clkp_parent;
154 if (clk->get_rate)
155 return clk->get_rate(sc, clk);
159 aprint_error("%s: no parent for %s\n", __func__, clk->base.name);
167 sunxi_ccu_clock_set_rate(void *priv, struct clk *clkp, u_int rate)
170 struct sunxi_ccu_clk *clk = (struct sunxi_ccu_clk *)clkp;
171 struct clk *clkp_parent;
176 aprint_error("%s: no parent for %s\n", __func__, clk->base.name);
182 if (clk->set_rate)
183 return clk->set_rate(sc, clk, rate);
189 sunxi_ccu_clock_round_rate(void *priv, struct clk *clkp, u_int rate)
192 struct sunxi_ccu_clk *clk = (struct sunxi_ccu_clk *)clkp;
193 struct clk *clkp_parent;
198 aprint_error("%s: no parent for %s\n", __func__, clk->base.name);
204 if (clk->round_rate)
205 return clk->round_rate(sc, clk, rate);
211 sunxi_ccu_clock_enable(void *priv, struct clk *clkp)
214 struct sunxi_ccu_clk *clk = (struct sunxi_ccu_clk *)clkp;
215 struct clk *clkp_parent;
225 if (clk->enable)
226 error = clk->enable(sc, clk, 1);
232 sunxi_ccu_clock_disable(void *priv, struct clk *clkp)
235 struct sunxi_ccu_clk *clk = (struct sunxi_ccu_clk *)clkp;
238 if (clk->enable)
239 error = clk->enable(sc, clk, 0);
245 sunxi_ccu_clock_set_parent(void *priv, struct clk *clkp,
246 struct clk *clkp_parent)
249 struct sunxi_ccu_clk *clk = (struct sunxi_ccu_clk *)clkp;
251 if (clk->set_parent == NULL)
254 return clk->set_parent(sc, clk, clkp_parent->name);
257 static struct clk *
258 sunxi_ccu_clock_get_parent(void *priv, struct clk *clkp)
261 struct sunxi_ccu_clk *clk = (struct sunxi_ccu_clk *)clkp;
265 if (clk->get_parent == NULL)
268 parent = clk->get_parent(sc, clk);
341 struct sunxi_ccu_clk *clk;
342 struct clk *clkp_parent;
347 clk = &sc->sc_clks[i];
348 if (clk->type == SUNXI_CCU_UNKNOWN)
351 clkp_parent = clk_get_parent(&clk->base);
353 switch (clk->type) {
369 clk->base.name,
373 aprint_debug("%10u Hz\n", clk_get_rate(&clk->base));