Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/arch/powerpc/kernel/clock.c
10817 views
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/module.h>
10
#include <asm/clk_interface.h>
11
12
struct clk_interface clk_functions;
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
}
20
EXPORT_SYMBOL(clk_get);
21
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
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
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
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
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
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
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
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
84