Lines Matching refs:pll

74 	struct clk_pll *pll = (struct clk_pll *)dev_id;  in clk_pll_irq_handler()  local
76 wake_up(&pll->wait); in clk_pll_irq_handler()
77 disable_irq_nosync(pll->irq); in clk_pll_irq_handler()
84 struct clk_pll *pll = to_clk_pll(hw); in clk_pll_prepare() local
85 struct at91_pmc *pmc = pll->pmc; in clk_pll_prepare()
86 const struct clk_pll_layout *layout = pll->layout; in clk_pll_prepare()
88 pll->characteristics; in clk_pll_prepare()
89 u8 id = pll->id; in clk_pll_prepare()
102 (div == pll->div && mul == pll->mul)) in clk_pll_prepare()
106 out = characteristics->out[pll->range]; in clk_pll_prepare()
109 icpr |= (characteristics->icpll[pll->range] << in clk_pll_prepare()
116 (pll->div | (PLL_MAX_COUNT << PLL_COUNT_SHIFT) | in clk_pll_prepare()
118 ((pll->mul & layout->mul_mask) << layout->mul_shift)); in clk_pll_prepare()
122 enable_irq(pll->irq); in clk_pll_prepare()
123 wait_event(pll->wait, in clk_pll_prepare()
132 struct clk_pll *pll = to_clk_pll(hw); in clk_pll_is_prepared() local
133 struct at91_pmc *pmc = pll->pmc; in clk_pll_is_prepared()
136 PLL_STATUS_MASK(pll->id)); in clk_pll_is_prepared()
141 struct clk_pll *pll = to_clk_pll(hw); in clk_pll_unprepare() local
142 struct at91_pmc *pmc = pll->pmc; in clk_pll_unprepare()
143 const struct clk_pll_layout *layout = pll->layout; in clk_pll_unprepare()
144 int offset = PLL_REG(pll->id); in clk_pll_unprepare()
153 struct clk_pll *pll = to_clk_pll(hw); in clk_pll_recalc_rate() local
155 if (!pll->div || !pll->mul) in clk_pll_recalc_rate()
158 return (parent_rate / pll->div) * (pll->mul + 1); in clk_pll_recalc_rate()
161 static long clk_pll_get_best_div_mul(struct clk_pll *pll, unsigned long rate, in clk_pll_get_best_div_mul() argument
165 const struct clk_pll_layout *layout = pll->layout; in clk_pll_get_best_div_mul()
167 pll->characteristics; in clk_pll_get_best_div_mul()
274 struct clk_pll *pll = to_clk_pll(hw); in clk_pll_round_rate() local
276 return clk_pll_get_best_div_mul(pll, rate, *parent_rate, in clk_pll_round_rate()
283 struct clk_pll *pll = to_clk_pll(hw); in clk_pll_set_rate() local
289 ret = clk_pll_get_best_div_mul(pll, rate, parent_rate, in clk_pll_set_rate()
294 pll->range = index; in clk_pll_set_rate()
295 pll->div = div; in clk_pll_set_rate()
296 pll->mul = mul; in clk_pll_set_rate()
316 struct clk_pll *pll; in at91_clk_register_pll() local
326 pll = kzalloc(sizeof(*pll), GFP_KERNEL); in at91_clk_register_pll()
327 if (!pll) in at91_clk_register_pll()
336 pll->id = id; in at91_clk_register_pll()
337 pll->hw.init = &init; in at91_clk_register_pll()
338 pll->layout = layout; in at91_clk_register_pll()
339 pll->characteristics = characteristics; in at91_clk_register_pll()
340 pll->pmc = pmc; in at91_clk_register_pll()
341 pll->irq = irq; in at91_clk_register_pll()
343 pll->div = PLL_DIV(tmp); in at91_clk_register_pll()
344 pll->mul = PLL_MUL(tmp, layout); in at91_clk_register_pll()
345 init_waitqueue_head(&pll->wait); in at91_clk_register_pll()
346 irq_set_status_flags(pll->irq, IRQ_NOAUTOEN); in at91_clk_register_pll()
347 ret = request_irq(pll->irq, clk_pll_irq_handler, IRQF_TRIGGER_HIGH, in at91_clk_register_pll()
348 id ? "clk-pllb" : "clk-plla", pll); in at91_clk_register_pll()
352 clk = clk_register(NULL, &pll->hw); in at91_clk_register_pll()
354 kfree(pll); in at91_clk_register_pll()