1#ifndef CLOCK_H 2#define CLOCK_H 3 4/* legacy clock implementation */ 5 6struct clk; 7unsigned long shmobile_fixed_ratio_clk_recalc(struct clk *clk); 8extern struct sh_clk_ops shmobile_fixed_ratio_clk_ops; 9 10/* clock ratio */ 11struct clk_ratio { 12 int mul; 13 int div; 14}; 15 16#define SH_CLK_RATIO(name, m, d) \ 17static struct clk_ratio name ##_ratio = { \ 18 .mul = m, \ 19 .div = d, \ 20} 21 22#define SH_FIXED_RATIO_CLKg(name, p, r) \ 23struct clk name = { \ 24 .parent = &p, \ 25 .ops = &shmobile_fixed_ratio_clk_ops,\ 26 .priv = &r ## _ratio, \ 27} 28 29#define SH_FIXED_RATIO_CLK(name, p, r) \ 30static SH_FIXED_RATIO_CLKg(name, p, r) 31 32#define SH_FIXED_RATIO_CLK_SET(name, p, m, d) \ 33 SH_CLK_RATIO(name, m, d); \ 34 SH_FIXED_RATIO_CLK(name, p, name) 35 36#define SH_CLK_SET_RATIO(p, m, d) \ 37do { \ 38 (p)->mul = m; \ 39 (p)->div = d; \ 40} while (0) 41 42#endif 43