#ifndef CLOCK_H | |
#define CLOCK_H | |
unsigned long shmobile_fixed_ratio_clk_recalc(struct clk *clk); | |
extern struct sh_clk_ops shmobile_fixed_ratio_clk_ops; | |
/* clock ratio */ | |
struct clk_ratio { | |
int mul; | |
int div; | |
}; | |
#define SH_CLK_RATIO(name, m, d) \ | |
static struct clk_ratio name ##_ratio = { \ | |
.mul = m, \ | |
.div = d, \ | |
} | |
#define SH_FIXED_RATIO_CLKg(name, p, r) \ | |
struct clk name = { \ | |
.parent = &p, \ | |
.ops = &shmobile_fixed_ratio_clk_ops,\ | |
.priv = &r ## _ratio, \ | |
} | |
#define SH_FIXED_RATIO_CLK(name, p, r) \ | |
static SH_FIXED_RATIO_CLKg(name, p, r); | |
#define SH_FIXED_RATIO_CLK_SET(name, p, m, d) \ | |
SH_CLK_RATIO(name, m, d); \ | |
SH_FIXED_RATIO_CLK(name, p, name); | |
#define SH_CLK_SET_RATIO(p, m, d) \ | |
{ \ | |
(p)->mul = m; \ | |
(p)->div = d; \ | |
} | |
#endif |