Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
clock.c
Go to the documentation of this file.
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 
13 
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 }
21 
22 void clk_put(struct clk *clk)
23 {
24  if (clk_functions.clk_put)
25  clk_functions.clk_put(clk);
26 }
28 
29 int clk_enable(struct clk *clk)
30 {
32  return clk_functions.clk_enable(clk);
33  return -ENOSYS;
34 }
36 
37 void clk_disable(struct clk *clk)
38 {
41 }
43 
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 }
51 
52 long clk_round_rate(struct clk *clk, unsigned long rate)
53 {
55  return clk_functions.clk_round_rate(clk, rate);
56  return -ENOSYS;
57 }
59 
60 int clk_set_rate(struct clk *clk, unsigned long rate)
61 {
63  return clk_functions.clk_set_rate(clk, rate);
64  return -ENOSYS;
65 }
67 
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 }
75 
76 int clk_set_parent(struct clk *clk, struct clk *parent)
77 {
79  return clk_functions.clk_set_parent(clk, parent);
80  return -ENOSYS;
81 }