Lines Matching refs:pclk

218 	struct xgene_clk *pclk = to_xgene_clk(hw);  in xgene_clk_enable()  local
223 if (pclk->lock) in xgene_clk_enable()
224 spin_lock_irqsave(pclk->lock, flags); in xgene_clk_enable()
226 if (pclk->param.csr_reg != NULL) { in xgene_clk_enable()
228 reg = __pa(pclk->param.csr_reg); in xgene_clk_enable()
230 data = xgene_clk_read(pclk->param.csr_reg + in xgene_clk_enable()
231 pclk->param.reg_clk_offset); in xgene_clk_enable()
232 data |= pclk->param.reg_clk_mask; in xgene_clk_enable()
233 xgene_clk_write(data, pclk->param.csr_reg + in xgene_clk_enable()
234 pclk->param.reg_clk_offset); in xgene_clk_enable()
237 pclk->param.reg_clk_offset, pclk->param.reg_clk_mask, in xgene_clk_enable()
241 data = xgene_clk_read(pclk->param.csr_reg + in xgene_clk_enable()
242 pclk->param.reg_csr_offset); in xgene_clk_enable()
243 data &= ~pclk->param.reg_csr_mask; in xgene_clk_enable()
244 xgene_clk_write(data, pclk->param.csr_reg + in xgene_clk_enable()
245 pclk->param.reg_csr_offset); in xgene_clk_enable()
248 pclk->param.reg_csr_offset, pclk->param.reg_csr_mask, in xgene_clk_enable()
252 if (pclk->lock) in xgene_clk_enable()
253 spin_unlock_irqrestore(pclk->lock, flags); in xgene_clk_enable()
260 struct xgene_clk *pclk = to_xgene_clk(hw); in xgene_clk_disable() local
264 if (pclk->lock) in xgene_clk_disable()
265 spin_lock_irqsave(pclk->lock, flags); in xgene_clk_disable()
267 if (pclk->param.csr_reg != NULL) { in xgene_clk_disable()
270 data = xgene_clk_read(pclk->param.csr_reg + in xgene_clk_disable()
271 pclk->param.reg_csr_offset); in xgene_clk_disable()
272 data |= pclk->param.reg_csr_mask; in xgene_clk_disable()
273 xgene_clk_write(data, pclk->param.csr_reg + in xgene_clk_disable()
274 pclk->param.reg_csr_offset); in xgene_clk_disable()
277 data = xgene_clk_read(pclk->param.csr_reg + in xgene_clk_disable()
278 pclk->param.reg_clk_offset); in xgene_clk_disable()
279 data &= ~pclk->param.reg_clk_mask; in xgene_clk_disable()
280 xgene_clk_write(data, pclk->param.csr_reg + in xgene_clk_disable()
281 pclk->param.reg_clk_offset); in xgene_clk_disable()
284 if (pclk->lock) in xgene_clk_disable()
285 spin_unlock_irqrestore(pclk->lock, flags); in xgene_clk_disable()
290 struct xgene_clk *pclk = to_xgene_clk(hw); in xgene_clk_is_enabled() local
293 if (pclk->param.csr_reg != NULL) { in xgene_clk_is_enabled()
295 data = xgene_clk_read(pclk->param.csr_reg + in xgene_clk_is_enabled()
296 pclk->param.reg_clk_offset); in xgene_clk_is_enabled()
298 data & pclk->param.reg_clk_mask ? "enabled" : in xgene_clk_is_enabled()
302 if (pclk->param.csr_reg == NULL) in xgene_clk_is_enabled()
304 return data & pclk->param.reg_clk_mask ? 1 : 0; in xgene_clk_is_enabled()
310 struct xgene_clk *pclk = to_xgene_clk(hw); in xgene_clk_recalc_rate() local
313 if (pclk->param.divider_reg) { in xgene_clk_recalc_rate()
314 data = xgene_clk_read(pclk->param.divider_reg + in xgene_clk_recalc_rate()
315 pclk->param.reg_divider_offset); in xgene_clk_recalc_rate()
316 data >>= pclk->param.reg_divider_shift; in xgene_clk_recalc_rate()
317 data &= (1 << pclk->param.reg_divider_width) - 1; in xgene_clk_recalc_rate()
334 struct xgene_clk *pclk = to_xgene_clk(hw); in xgene_clk_set_rate() local
340 if (pclk->lock) in xgene_clk_set_rate()
341 spin_lock_irqsave(pclk->lock, flags); in xgene_clk_set_rate()
343 if (pclk->param.divider_reg) { in xgene_clk_set_rate()
348 divider &= (1 << pclk->param.reg_divider_width) - 1; in xgene_clk_set_rate()
349 divider <<= pclk->param.reg_divider_shift; in xgene_clk_set_rate()
352 data = xgene_clk_read(pclk->param.divider_reg + in xgene_clk_set_rate()
353 pclk->param.reg_divider_offset); in xgene_clk_set_rate()
354 data &= ~((1 << pclk->param.reg_divider_width) - 1); in xgene_clk_set_rate()
356 xgene_clk_write(data, pclk->param.divider_reg + in xgene_clk_set_rate()
357 pclk->param.reg_divider_offset); in xgene_clk_set_rate()
364 if (pclk->lock) in xgene_clk_set_rate()
365 spin_unlock_irqrestore(pclk->lock, flags); in xgene_clk_set_rate()
373 struct xgene_clk *pclk = to_xgene_clk(hw); in xgene_clk_round_rate() local
377 if (pclk->param.divider_reg) { in xgene_clk_round_rate()