diff options
Diffstat (limited to 'arch/arm/mach-shmobile/include/mach/clock.h')
| -rw-r--r-- | arch/arm/mach-shmobile/include/mach/clock.h | 39 | 
1 files changed, 39 insertions, 0 deletions
diff --git a/arch/arm/mach-shmobile/include/mach/clock.h b/arch/arm/mach-shmobile/include/mach/clock.h new file mode 100644 index 00000000000..76ac61292e4 --- /dev/null +++ b/arch/arm/mach-shmobile/include/mach/clock.h @@ -0,0 +1,39 @@ +#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  |