Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/arch/arm/mach-pxa/clock.h
10817 views
1
#include <linux/clkdev.h>
2
#include <linux/syscore_ops.h>
3
4
struct clkops {
5
void (*enable)(struct clk *);
6
void (*disable)(struct clk *);
7
unsigned long (*getrate)(struct clk *);
8
};
9
10
struct clk {
11
const struct clkops *ops;
12
unsigned long rate;
13
unsigned int cken;
14
unsigned int delay;
15
unsigned int enabled;
16
};
17
18
void clk_dummy_enable(struct clk *);
19
void clk_dummy_disable(struct clk *);
20
21
extern const struct clkops clk_dummy_ops;
22
extern struct clk clk_dummy;
23
24
#define INIT_CLKREG(_clk,_devname,_conname) \
25
{ \
26
.clk = _clk, \
27
.dev_id = _devname, \
28
.con_id = _conname, \
29
}
30
31
#define DEFINE_CK(_name, _cken, _ops) \
32
struct clk clk_##_name = { \
33
.ops = _ops, \
34
.cken = CKEN_##_cken, \
35
}
36
37
#define DEFINE_CLK(_name, _ops, _rate, _delay) \
38
struct clk clk_##_name = { \
39
.ops = _ops, \
40
.rate = _rate, \
41
.delay = _delay, \
42
}
43
44
#define DEFINE_PXA2_CKEN(_name, _cken, _rate, _delay) \
45
struct clk clk_##_name = { \
46
.ops = &clk_pxa2xx_cken_ops, \
47
.rate = _rate, \
48
.cken = CKEN_##_cken, \
49
.delay = _delay, \
50
}
51
52
extern const struct clkops clk_pxa2xx_cken_ops;
53
54
void clk_pxa2xx_cken_enable(struct clk *clk);
55
void clk_pxa2xx_cken_disable(struct clk *clk);
56
57
extern struct syscore_ops pxa2xx_clock_syscore_ops;
58
59
#if defined(CONFIG_PXA3xx) || defined(CONFIG_PXA95x)
60
#define DEFINE_PXA3_CKEN(_name, _cken, _rate, _delay) \
61
struct clk clk_##_name = { \
62
.ops = &clk_pxa3xx_cken_ops, \
63
.rate = _rate, \
64
.cken = CKEN_##_cken, \
65
.delay = _delay, \
66
}
67
68
extern const struct clkops clk_pxa3xx_cken_ops;
69
extern const struct clkops clk_pxa3xx_hsio_ops;
70
extern const struct clkops clk_pxa3xx_ac97_ops;
71
extern const struct clkops clk_pxa3xx_pout_ops;
72
extern const struct clkops clk_pxa3xx_smemc_ops;
73
74
extern void clk_pxa3xx_cken_enable(struct clk *);
75
extern void clk_pxa3xx_cken_disable(struct clk *);
76
77
extern struct syscore_ops pxa3xx_clock_syscore_ops;
78
79
#endif
80
81