Lines Matching refs:cpuclk

150 			struct exynos_cpuclk *cpuclk, void __iomem *base)
152 const struct exynos_cpuclk_cfg_data *cfg_data = cpuclk->cfg;
153 unsigned long alt_prate = clk_hw_get_rate(cpuclk->alt_parent);
165 spin_lock_irqsave(cpuclk->lock, flags);
173 if (cpuclk->flags & CLK_CPU_HAS_DIV1) {
194 if (cpuclk->flags & CLK_CPU_NEEDS_DEBUG_ALT_DIV) {
215 if (cpuclk->flags & CLK_CPU_HAS_DIV1) {
221 spin_unlock_irqrestore(cpuclk->lock, flags);
227 struct exynos_cpuclk *cpuclk, void __iomem *base)
229 const struct exynos_cpuclk_cfg_data *cfg_data = cpuclk->cfg;
235 if (cpuclk->flags & CLK_CPU_NEEDS_DEBUG_ALT_DIV) {
243 spin_lock_irqsave(cpuclk->lock, flags);
250 if (cpuclk->flags & CLK_CPU_NEEDS_DEBUG_ALT_DIV) {
256 spin_unlock_irqrestore(cpuclk->lock, flags);
278 struct exynos_cpuclk *cpuclk, void __iomem *base)
280 const struct exynos_cpuclk_cfg_data *cfg_data = cpuclk->cfg;
281 unsigned long alt_prate = clk_hw_get_rate(cpuclk->alt_parent);
293 spin_lock_irqsave(cpuclk->lock, flags);
332 spin_unlock_irqrestore(cpuclk->lock, flags);
338 struct exynos_cpuclk *cpuclk, void __iomem *base)
344 spin_lock_irqsave(cpuclk->lock, flags);
352 spin_unlock_irqrestore(cpuclk->lock, flags);
358 * notifications of the parent clock of cpuclk.
364 struct exynos_cpuclk *cpuclk;
368 cpuclk = container_of(nb, struct exynos_cpuclk, clk_nb);
369 base = cpuclk->ctrl_base;
372 err = exynos_cpuclk_pre_rate_change(ndata, cpuclk, base);
374 err = exynos_cpuclk_post_rate_change(ndata, cpuclk, base);
381 * notifications of the parent clock of cpuclk.
387 struct exynos_cpuclk *cpuclk;
391 cpuclk = container_of(nb, struct exynos_cpuclk, clk_nb);
392 base = cpuclk->ctrl_base;
395 err = exynos5433_cpuclk_pre_rate_change(ndata, cpuclk, base);
397 err = exynos5433_cpuclk_post_rate_change(ndata, cpuclk, base);
409 struct exynos_cpuclk *cpuclk;
419 cpuclk = kzalloc(sizeof(*cpuclk), GFP_KERNEL);
420 if (!cpuclk)
431 cpuclk->alt_parent = alt_parent;
432 cpuclk->hw.init = &init;
433 cpuclk->ctrl_base = ctx->reg_base + offset;
434 cpuclk->lock = &ctx->lock;
435 cpuclk->flags = flags;
437 cpuclk->clk_nb.notifier_call = exynos5433_cpuclk_notifier_cb;
439 cpuclk->clk_nb.notifier_call = exynos_cpuclk_notifier_cb;
442 ret = clk_notifier_register(parent->clk, &cpuclk->clk_nb);
449 cpuclk->cfg = kmemdup(cfg, sizeof(*cfg) * num_cfgs, GFP_KERNEL);
450 if (!cpuclk->cfg) {
455 ret = clk_hw_register(NULL, &cpuclk->hw);
457 pr_err("%s: could not register cpuclk %s\n", __func__, name);
461 samsung_clk_add_lookup(ctx, &cpuclk->hw, lookup_id);
465 kfree(cpuclk->cfg);
467 clk_notifier_unregister(parent->clk, &cpuclk->clk_nb);
469 kfree(cpuclk);