Lines Matching refs:clk_cpu
67 struct meson_clk_cpu *clk_cpu = to_meson_clk_cpu_hw(hw); in meson_clk_cpu_round_rate() local
69 return divider_round_rate(hw, rate, prate, clk_cpu->div_table, in meson_clk_cpu_round_rate()
76 struct meson_clk_cpu *clk_cpu = to_meson_clk_cpu_hw(hw); in meson_clk_cpu_set_rate() local
89 reg = readl(clk_cpu->base + clk_cpu->reg_off + MESON_CPU_CLK_CNTL1); in meson_clk_cpu_set_rate()
91 writel(reg, clk_cpu->base + clk_cpu->reg_off + MESON_CPU_CLK_CNTL1); in meson_clk_cpu_set_rate()
93 reg = readl(clk_cpu->base + clk_cpu->reg_off + MESON_CPU_CLK_CNTL); in meson_clk_cpu_set_rate()
95 writel(reg, clk_cpu->base + clk_cpu->reg_off + MESON_CPU_CLK_CNTL); in meson_clk_cpu_set_rate()
103 struct meson_clk_cpu *clk_cpu = to_meson_clk_cpu_hw(hw); in meson_clk_cpu_recalc_rate() local
108 reg = readl(clk_cpu->base + clk_cpu->reg_off + MESON_CPU_CLK_CNTL1); in meson_clk_cpu_recalc_rate()
111 reg = readl(clk_cpu->base + clk_cpu->reg_off + MESON_CPU_CLK_CNTL); in meson_clk_cpu_recalc_rate()
122 static int meson_clk_cpu_pre_rate_change(struct meson_clk_cpu *clk_cpu, in meson_clk_cpu_pre_rate_change() argument
128 cpu_clk_cntl = readl(clk_cpu->base + clk_cpu->reg_off in meson_clk_cpu_pre_rate_change()
131 writel(cpu_clk_cntl, clk_cpu->base + clk_cpu->reg_off in meson_clk_cpu_pre_rate_change()
137 writel(cpu_clk_cntl, clk_cpu->base + clk_cpu->reg_off in meson_clk_cpu_pre_rate_change()
143 static int meson_clk_cpu_post_rate_change(struct meson_clk_cpu *clk_cpu, in meson_clk_cpu_post_rate_change() argument
149 cpu_clk_cntl = readl(clk_cpu->base + clk_cpu->reg_off in meson_clk_cpu_post_rate_change()
152 writel(cpu_clk_cntl, clk_cpu->base + clk_cpu->reg_off in meson_clk_cpu_post_rate_change()
168 struct meson_clk_cpu *clk_cpu = to_meson_clk_cpu_nb(nb); in meson_clk_cpu_notifier_cb() local
172 ret = meson_clk_cpu_pre_rate_change(clk_cpu, ndata); in meson_clk_cpu_notifier_cb()
174 ret = meson_clk_cpu_post_rate_change(clk_cpu, ndata); in meson_clk_cpu_notifier_cb()
191 struct meson_clk_cpu *clk_cpu; in meson_clk_register_cpu() local
195 clk_cpu = kzalloc(sizeof(*clk_cpu), GFP_KERNEL); in meson_clk_register_cpu()
196 if (!clk_cpu) in meson_clk_register_cpu()
199 clk_cpu->base = reg_base; in meson_clk_register_cpu()
200 clk_cpu->reg_off = clk_conf->reg_off; in meson_clk_register_cpu()
201 clk_cpu->div_table = clk_conf->conf.div_table; in meson_clk_register_cpu()
202 clk_cpu->clk_nb.notifier_call = meson_clk_cpu_notifier_cb; in meson_clk_register_cpu()
211 clk_cpu->hw.init = &init; in meson_clk_register_cpu()
221 ret = clk_notifier_register(pclk, &clk_cpu->clk_nb); in meson_clk_register_cpu()
228 clk = clk_register(NULL, &clk_cpu->hw); in meson_clk_register_cpu()
237 clk_notifier_unregister(pclk, &clk_cpu->clk_nb); in meson_clk_register_cpu()
239 kfree(clk_cpu); in meson_clk_register_cpu()