[ARM] pxa: convert to clkdev and match clocks by struct device where possible
[deliverable/linux.git] / arch / arm / mach-pxa / clock.h
CommitLineData
8c3abc7d 1#include <asm/clkdev.h>
a6dba20c
RK
2
3struct clkops {
4 void (*enable)(struct clk *);
5 void (*disable)(struct clk *);
6 unsigned long (*getrate)(struct clk *);
7};
8
9struct clk {
a6dba20c
RK
10 const struct clkops *ops;
11 unsigned long rate;
12 unsigned int cken;
13 unsigned int delay;
14 unsigned int enabled;
bdb08cb2 15 struct clk *other;
a6dba20c
RK
16};
17
8c3abc7d 18#define INIT_CLKREG(_clk,_devname,_conname) \
a6dba20c 19 { \
8c3abc7d
RK
20 .clk = _clk, \
21 .dev_id = _devname, \
22 .con_id = _conname, \
23 }
24
25#define DEFINE_CKEN(_name, _cken, _rate, _delay) \
26struct clk clk_##_name = { \
a6dba20c
RK
27 .ops = &clk_cken_ops, \
28 .rate = _rate, \
29 .cken = CKEN_##_cken, \
30 .delay = _delay, \
31 }
32
8c3abc7d
RK
33#define DEFINE_CK(_name, _cken, _ops) \
34struct clk clk_##_name = { \
a6dba20c
RK
35 .ops = _ops, \
36 .cken = CKEN_##_cken, \
37 }
38
8c3abc7d
RK
39#define DEFINE_CLK(_name, _ops, _rate, _delay) \
40struct clk clk_##_name = { \
41 .ops = _ops, \
42 .rate = _rate, \
ed847782
IM
43 .delay = _delay, \
44 }
45
a6dba20c
RK
46extern const struct clkops clk_cken_ops;
47
48void clk_cken_enable(struct clk *clk);
49void clk_cken_disable(struct clk *clk);
50
7a2c5cb0 51#ifdef CONFIG_PXA3xx
8c3abc7d
RK
52#define DEFINE_PXA3_CKEN(_name, _cken, _rate, _delay) \
53struct clk clk_##_name = { \
7a2c5cb0 54 .ops = &clk_pxa3xx_cken_ops, \
55 .rate = _rate, \
56 .cken = CKEN_##_cken, \
57 .delay = _delay, \
58 }
59
8c3abc7d
RK
60#define DEFINE_PXA3_CK(_name, _cken, _ops) \
61struct clk clk_##_name = { \
7a2c5cb0 62 .ops = _ops, \
63 .cken = CKEN_##_cken, \
64 }
65
66extern const struct clkops clk_pxa3xx_cken_ops;
67extern void clk_pxa3xx_cken_enable(struct clk *);
68extern void clk_pxa3xx_cken_disable(struct clk *);
69#endif
70
8c3abc7d 71void clks_register(struct clk_lookup *clks, size_t num);
5fedd0af
IM
72int clk_add_alias(char *alias, struct device *alias_dev, char *id,
73 struct device *dev);
74
This page took 0.133051 seconds and 5 git commands to generate.