Merge branch 'devel-stable' into devel
[linux-2.6/linux-acpi-2.6/ibm-acpi-2.6.git] / arch / arm / mach-pxa / clock.h
blobf9f349a21b54ee7f2d2c1b67f5079efc11b5ad65
1 #include <linux/clkdev.h>
2 #include <linux/sysdev.h>
4 struct clkops {
5 void (*enable)(struct clk *);
6 void (*disable)(struct clk *);
7 unsigned long (*getrate)(struct clk *);
8 };
10 struct clk {
11 const struct clkops *ops;
12 unsigned long rate;
13 unsigned int cken;
14 unsigned int delay;
15 unsigned int enabled;
18 void clk_dummy_enable(struct clk *);
19 void clk_dummy_disable(struct clk *);
21 extern const struct clkops clk_dummy_ops;
22 extern struct clk clk_dummy;
24 #define INIT_CLKREG(_clk,_devname,_conname) \
25 { \
26 .clk = _clk, \
27 .dev_id = _devname, \
28 .con_id = _conname, \
31 #define DEFINE_CK(_name, _cken, _ops) \
32 struct clk clk_##_name = { \
33 .ops = _ops, \
34 .cken = CKEN_##_cken, \
37 #define DEFINE_CLK(_name, _ops, _rate, _delay) \
38 struct clk clk_##_name = { \
39 .ops = _ops, \
40 .rate = _rate, \
41 .delay = _delay, \
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, \
52 extern const struct clkops clk_pxa2xx_cken_ops;
54 void clk_pxa2xx_cken_enable(struct clk *clk);
55 void clk_pxa2xx_cken_disable(struct clk *clk);
57 extern struct sysdev_class pxa2xx_clock_sysclass;
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, \
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;
74 extern void clk_pxa3xx_cken_enable(struct clk *);
75 extern void clk_pxa3xx_cken_disable(struct clk *);
77 extern struct sysdev_class pxa3xx_clock_sysclass;
78 #endif