• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Dummy clk implementations for powerpc.
3  * These need to be overridden in platform code.
4  */
5 
6 #include <linux/clk.h>
7 #include <linux/err.h>
8 #include <linux/errno.h>
9 #include <linux/export.h>
10 #include <asm/clk_interface.h>
11 
12 struct clk_interface clk_functions;
13 
clk_get(struct device * dev,const char * id)14 struct clk *clk_get(struct device *dev, const char *id)
15 {
16 	if (clk_functions.clk_get)
17 		return clk_functions.clk_get(dev, id);
18 	return ERR_PTR(-ENOSYS);
19 }
20 EXPORT_SYMBOL(clk_get);
21 
clk_put(struct clk * clk)22 void clk_put(struct clk *clk)
23 {
24 	if (clk_functions.clk_put)
25 		clk_functions.clk_put(clk);
26 }
27 EXPORT_SYMBOL(clk_put);
28 
clk_enable(struct clk * clk)29 int clk_enable(struct clk *clk)
30 {
31 	if (clk_functions.clk_enable)
32 		return clk_functions.clk_enable(clk);
33 	return -ENOSYS;
34 }
35 EXPORT_SYMBOL(clk_enable);
36 
clk_disable(struct clk * clk)37 void clk_disable(struct clk *clk)
38 {
39 	if (clk_functions.clk_disable)
40 		clk_functions.clk_disable(clk);
41 }
42 EXPORT_SYMBOL(clk_disable);
43 
clk_get_rate(struct clk * clk)44 unsigned long clk_get_rate(struct clk *clk)
45 {
46 	if (clk_functions.clk_get_rate)
47 		return clk_functions.clk_get_rate(clk);
48 	return 0;
49 }
50 EXPORT_SYMBOL(clk_get_rate);
51 
clk_round_rate(struct clk * clk,unsigned long rate)52 long clk_round_rate(struct clk *clk, unsigned long rate)
53 {
54 	if (clk_functions.clk_round_rate)
55 		return clk_functions.clk_round_rate(clk, rate);
56 	return -ENOSYS;
57 }
58 EXPORT_SYMBOL(clk_round_rate);
59 
clk_set_rate(struct clk * clk,unsigned long rate)60 int clk_set_rate(struct clk *clk, unsigned long rate)
61 {
62 	if (clk_functions.clk_set_rate)
63 		return clk_functions.clk_set_rate(clk, rate);
64 	return -ENOSYS;
65 }
66 EXPORT_SYMBOL(clk_set_rate);
67 
clk_get_parent(struct clk * clk)68 struct clk *clk_get_parent(struct clk *clk)
69 {
70 	if (clk_functions.clk_get_parent)
71 		return clk_functions.clk_get_parent(clk);
72 	return ERR_PTR(-ENOSYS);
73 }
74 EXPORT_SYMBOL(clk_get_parent);
75 
clk_set_parent(struct clk * clk,struct clk * parent)76 int clk_set_parent(struct clk *clk, struct clk *parent)
77 {
78 	if (clk_functions.clk_set_parent)
79 		return clk_functions.clk_set_parent(clk, parent);
80 	return -ENOSYS;
81 }
82 EXPORT_SYMBOL(clk_set_parent);
83