16 #include <linux/kernel.h>
17 #include <asm/clock.h>
21 static const int pll1rate[]={1,2,3,4,6,8};
22 static const int pfc_divisors[]={1,2,3,4,6,8,12};
23 #define ifc_divisors pfc_divisors
25 static unsigned int pll2_mult;
27 static void master_clk_init(
struct clk *
clk)
29 clk->
rate = 10000000 * pll2_mult *
33 static struct sh_clk_ops sh7201_master_clk_ops = {
34 .init = master_clk_init,
37 static unsigned long module_clk_recalc(
struct clk *
clk)
40 return clk->
parent->rate / pfc_divisors[
idx];
43 static struct sh_clk_ops sh7201_module_clk_ops = {
44 .recalc = module_clk_recalc,
47 static unsigned long bus_clk_recalc(
struct clk *
clk)
50 return clk->
parent->rate / pfc_divisors[
idx];
53 static struct sh_clk_ops sh7201_bus_clk_ops = {
54 .recalc = bus_clk_recalc,
57 static unsigned long cpu_clk_recalc(
struct clk *
clk)
63 static struct sh_clk_ops sh7201_cpu_clk_ops = {
64 .recalc = cpu_clk_recalc,
68 &sh7201_master_clk_ops,
69 &sh7201_module_clk_ops,
84 *ops = sh7201_clk_ops[
idx];