Lines Matching +full:pll +full:-
1 // SPDX-License-Identifier: GPL-2.0
8 #include <linux/clk-provider.h>
14 #include "clk-cgu.h"
41 struct lgm_clk_pll *pll = to_lgm_clk_pll(hw); in lgm_pll_recalc_rate() local
45 spin_lock_irqsave(&pll->lock, flags); in lgm_pll_recalc_rate()
46 mult = lgm_get_clk_val(pll->membase, PLL_REF_DIV(pll->reg), 0, 12); in lgm_pll_recalc_rate()
47 div = lgm_get_clk_val(pll->membase, PLL_REF_DIV(pll->reg), 18, 6); in lgm_pll_recalc_rate()
48 frac = lgm_get_clk_val(pll->membase, pll->reg, 2, 24); in lgm_pll_recalc_rate()
49 spin_unlock_irqrestore(&pll->lock, flags); in lgm_pll_recalc_rate()
51 if (pll->type == TYPE_LJPLL) in lgm_pll_recalc_rate()
59 struct lgm_clk_pll *pll = to_lgm_clk_pll(hw); in lgm_pll_is_enabled() local
63 spin_lock_irqsave(&pll->lock, flags); in lgm_pll_is_enabled()
64 ret = lgm_get_clk_val(pll->membase, pll->reg, 0, 1); in lgm_pll_is_enabled()
65 spin_unlock_irqrestore(&pll->lock, flags); in lgm_pll_is_enabled()
72 struct lgm_clk_pll *pll = to_lgm_clk_pll(hw); in lgm_pll_enable() local
77 spin_lock_irqsave(&pll->lock, flags); in lgm_pll_enable()
78 lgm_set_clk_val(pll->membase, pll->reg, 0, 1, 1); in lgm_pll_enable()
79 ret = readl_poll_timeout_atomic(pll->membase + pll->reg, in lgm_pll_enable()
81 spin_unlock_irqrestore(&pll->lock, flags); in lgm_pll_enable()
88 struct lgm_clk_pll *pll = to_lgm_clk_pll(hw); in lgm_pll_disable() local
91 spin_lock_irqsave(&pll->lock, flags); in lgm_pll_disable()
92 lgm_set_clk_val(pll->membase, pll->reg, 0, 1, 0); in lgm_pll_disable()
93 spin_unlock_irqrestore(&pll->lock, flags); in lgm_pll_disable()
108 struct lgm_clk_pll *pll; in lgm_clk_register_pll() local
109 struct device *dev = ctx->dev; in lgm_clk_register_pll()
114 init.name = list->name; in lgm_clk_register_pll()
115 init.flags = list->flags; in lgm_clk_register_pll()
116 init.parent_data = list->parent_data; in lgm_clk_register_pll()
117 init.num_parents = list->num_parents; in lgm_clk_register_pll()
119 pll = devm_kzalloc(dev, sizeof(*pll), GFP_KERNEL); in lgm_clk_register_pll()
120 if (!pll) in lgm_clk_register_pll()
121 return ERR_PTR(-ENOMEM); in lgm_clk_register_pll()
123 pll->membase = ctx->membase; in lgm_clk_register_pll()
124 pll->lock = ctx->lock; in lgm_clk_register_pll()
125 pll->reg = list->reg; in lgm_clk_register_pll()
126 pll->flags = list->flags; in lgm_clk_register_pll()
127 pll->type = list->type; in lgm_clk_register_pll()
128 pll->hw.init = &init; in lgm_clk_register_pll()
130 hw = &pll->hw; in lgm_clk_register_pll()
148 dev_err(ctx->dev, "failed to register pll: %s\n", in lgm_clk_register_plls()
149 list->name); in lgm_clk_register_plls()
152 ctx->clk_data.hws[list->id] = hw; in lgm_clk_register_plls()