Lines Matching refs:clk

31 void at32_clk_register(struct clk *clk)  in at32_clk_register()  argument
35 list_add_tail(&clk->list, &at32_clock_list); in at32_clk_register()
39 static struct clk *__clk_get(struct device *dev, const char *id) in __clk_get()
41 struct clk *clk; in __clk_get() local
43 list_for_each_entry(clk, &at32_clock_list, list) { in __clk_get()
44 if (clk->dev == dev && strcmp(id, clk->name) == 0) { in __clk_get()
45 return clk; in __clk_get()
52 struct clk *clk_get(struct device *dev, const char *id) in clk_get()
54 struct clk *clk; in clk_get() local
57 clk = __clk_get(dev, id); in clk_get()
60 return clk; in clk_get()
65 void clk_put(struct clk *clk) in clk_put() argument
71 static void __clk_enable(struct clk *clk) in __clk_enable() argument
73 if (clk->parent) in __clk_enable()
74 __clk_enable(clk->parent); in __clk_enable()
75 if (clk->users++ == 0 && clk->mode) in __clk_enable()
76 clk->mode(clk, 1); in __clk_enable()
79 int clk_enable(struct clk *clk) in clk_enable() argument
83 if (!clk) in clk_enable()
87 __clk_enable(clk); in clk_enable()
94 static void __clk_disable(struct clk *clk) in __clk_disable() argument
96 if (clk->users == 0) { in __clk_disable()
97 printk(KERN_ERR "%s: mismatched disable\n", clk->name); in __clk_disable()
102 if (--clk->users == 0 && clk->mode) in __clk_disable()
103 clk->mode(clk, 0); in __clk_disable()
104 if (clk->parent) in __clk_disable()
105 __clk_disable(clk->parent); in __clk_disable()
108 void clk_disable(struct clk *clk) in clk_disable() argument
112 if (IS_ERR_OR_NULL(clk)) in clk_disable()
116 __clk_disable(clk); in clk_disable()
121 unsigned long clk_get_rate(struct clk *clk) in clk_get_rate() argument
126 if (!clk) in clk_get_rate()
130 rate = clk->get_rate(clk); in clk_get_rate()
137 long clk_round_rate(struct clk *clk, unsigned long rate) in clk_round_rate() argument
141 if (!clk) in clk_round_rate()
144 if (!clk->set_rate) in clk_round_rate()
148 actual_rate = clk->set_rate(clk, rate, 0); in clk_round_rate()
155 int clk_set_rate(struct clk *clk, unsigned long rate) in clk_set_rate() argument
160 if (!clk) in clk_set_rate()
163 if (!clk->set_rate) in clk_set_rate()
167 ret = clk->set_rate(clk, rate, 1); in clk_set_rate()
174 int clk_set_parent(struct clk *clk, struct clk *parent) in clk_set_parent() argument
179 if (!clk) in clk_set_parent()
182 if (!clk->set_parent) in clk_set_parent()
186 ret = clk->set_parent(clk, parent); in clk_set_parent()
193 struct clk *clk_get_parent(struct clk *clk) in clk_get_parent() argument
195 return !clk ? NULL : clk->parent; in clk_get_parent()
220 dump_clock(struct clk *parent, struct clkinf *r) in dump_clock()
224 struct clk *clk; in dump_clock() local
250 list_for_each_entry(clk, &at32_clock_list, list) { in dump_clock()
251 if (clk->parent == parent) in dump_clock()
252 dump_clock(clk, r); in dump_clock()
261 struct clk *clk; in clk_show() local
287 clk = __clk_get(NULL, "osc32k"); in clk_show()
288 dump_clock(clk, &r); in clk_show()
289 clk_put(clk); in clk_show()
291 clk = __clk_get(NULL, "osc0"); in clk_show()
292 dump_clock(clk, &r); in clk_show()
293 clk_put(clk); in clk_show()
295 clk = __clk_get(NULL, "osc1"); in clk_show()
296 dump_clock(clk, &r); in clk_show()
297 clk_put(clk); in clk_show()