[ARM] pxa: move pxa310 specific MMC3 clk out of generic pxa3xx.c
[deliverable/linux.git] / arch / arm / mach-pxa / clock.h
CommitLineData
a6dba20c
RK
1struct clk;
2
3struct clkops {
4 void (*enable)(struct clk *);
5 void (*disable)(struct clk *);
6 unsigned long (*getrate)(struct clk *);
7};
8
9struct clk {
10 struct list_head node;
11 const char *name;
12 struct device *dev;
13 const struct clkops *ops;
14 unsigned long rate;
15 unsigned int cken;
16 unsigned int delay;
17 unsigned int enabled;
bdb08cb2 18 struct clk *other;
a6dba20c
RK
19};
20
21#define INIT_CKEN(_name, _cken, _rate, _delay, _dev) \
22 { \
23 .name = _name, \
24 .dev = _dev, \
25 .ops = &clk_cken_ops, \
26 .rate = _rate, \
27 .cken = CKEN_##_cken, \
28 .delay = _delay, \
29 }
30
31#define INIT_CK(_name, _cken, _ops, _dev) \
32 { \
33 .name = _name, \
34 .dev = _dev, \
35 .ops = _ops, \
36 .cken = CKEN_##_cken, \
37 }
38
bdb08cb2
RK
39/*
40 * This is a placeholder to alias one clock device+name pair
41 * to another struct clk.
42 */
43#define INIT_CKOTHER(_name, _other, _dev) \
44 { \
45 .name = _name, \
46 .dev = _dev, \
47 .other = _other, \
48 }
49
a6dba20c
RK
50extern const struct clkops clk_cken_ops;
51
52void clk_cken_enable(struct clk *clk);
53void clk_cken_disable(struct clk *clk);
54
7a2c5cb0 55#ifdef CONFIG_PXA3xx
56#define PXA3xx_CKEN(_name, _cken, _rate, _delay, _dev) \
57 { \
58 .name = _name, \
59 .dev = _dev, \
60 .ops = &clk_pxa3xx_cken_ops, \
61 .rate = _rate, \
62 .cken = CKEN_##_cken, \
63 .delay = _delay, \
64 }
65
66#define PXA3xx_CK(_name, _cken, _ops, _dev) \
67 { \
68 .name = _name, \
69 .dev = _dev, \
70 .ops = _ops, \
71 .cken = CKEN_##_cken, \
72 }
73
74extern const struct clkops clk_pxa3xx_cken_ops;
75extern void clk_pxa3xx_cken_enable(struct clk *);
76extern void clk_pxa3xx_cken_disable(struct clk *);
77#endif
78
a6dba20c 79void clks_register(struct clk *clks, size_t num);
This page took 0.106018 seconds and 5 git commands to generate.