Merge tag 'omap-pm-v3.11/voltdm' of git://git.kernel.org/pub/scm/linux/kernel/git...
[sfrench/cifs-2.6.git] / arch / arm / mach-shmobile / include / mach / clock.h
1 #ifndef CLOCK_H
2 #define CLOCK_H
3
4 unsigned long shmobile_fixed_ratio_clk_recalc(struct clk *clk);
5 extern struct sh_clk_ops shmobile_fixed_ratio_clk_ops;
6
7 /* clock ratio */
8 struct clk_ratio {
9         int mul;
10         int div;
11 };
12
13 #define SH_CLK_RATIO(name, m, d)                \
14 static struct clk_ratio name ##_ratio = {       \
15         .mul = m,                               \
16         .div = d,                               \
17 }
18
19 #define SH_FIXED_RATIO_CLKg(name, p, r) \
20 struct clk name = {                     \
21         .parent = &p,                           \
22         .ops    = &shmobile_fixed_ratio_clk_ops,\
23         .priv   = &r ## _ratio,                 \
24 }
25
26 #define SH_FIXED_RATIO_CLK(name, p, r)          \
27 static SH_FIXED_RATIO_CLKg(name, p, r);
28
29 #define SH_FIXED_RATIO_CLK_SET(name, p, m, d)   \
30         SH_CLK_RATIO(name, m, d);               \
31         SH_FIXED_RATIO_CLK(name, p, name);
32
33 #define SH_CLK_SET_RATIO(p, m, d)       \
34 {                       \
35         (p)->mul = m;   \
36         (p)->div = d;   \
37 }
38
39 #endif