Lines Matching refs:isc_clk
250 struct isc_clk *isc_clk = to_isc_clk(hw); in isc_wait_clk_stable() local
251 struct regmap *regmap = isc_clk->regmap; in isc_wait_clk_stable()
268 struct isc_clk *isc_clk = to_isc_clk(hw); in isc_clk_prepare() local
270 if (isc_clk->id == ISC_ISPCK) in isc_clk_prepare()
271 pm_runtime_get_sync(isc_clk->dev); in isc_clk_prepare()
278 struct isc_clk *isc_clk = to_isc_clk(hw); in isc_clk_unprepare() local
282 if (isc_clk->id == ISC_ISPCK) in isc_clk_unprepare()
283 pm_runtime_put_sync(isc_clk->dev); in isc_clk_unprepare()
288 struct isc_clk *isc_clk = to_isc_clk(hw); in isc_clk_enable() local
289 u32 id = isc_clk->id; in isc_clk_enable()
290 struct regmap *regmap = isc_clk->regmap; in isc_clk_enable()
294 dev_dbg(isc_clk->dev, "ISC CLK: %s, div = %d, parent id = %d\n", in isc_clk_enable()
295 __func__, isc_clk->div, isc_clk->parent_id); in isc_clk_enable()
297 spin_lock_irqsave(&isc_clk->lock, flags); in isc_clk_enable()
300 (isc_clk->div << ISC_CLKCFG_DIV_SHIFT(id)) | in isc_clk_enable()
301 (isc_clk->parent_id << ISC_CLKCFG_SEL_SHIFT(id))); in isc_clk_enable()
304 spin_unlock_irqrestore(&isc_clk->lock, flags); in isc_clk_enable()
315 struct isc_clk *isc_clk = to_isc_clk(hw); in isc_clk_disable() local
316 u32 id = isc_clk->id; in isc_clk_disable()
319 spin_lock_irqsave(&isc_clk->lock, flags); in isc_clk_disable()
320 regmap_write(isc_clk->regmap, ISC_CLKDIS, ISC_CLK(id)); in isc_clk_disable()
321 spin_unlock_irqrestore(&isc_clk->lock, flags); in isc_clk_disable()
326 struct isc_clk *isc_clk = to_isc_clk(hw); in isc_clk_is_enabled() local
329 if (isc_clk->id == ISC_ISPCK) in isc_clk_is_enabled()
330 pm_runtime_get_sync(isc_clk->dev); in isc_clk_is_enabled()
332 regmap_read(isc_clk->regmap, ISC_CLKSR, &status); in isc_clk_is_enabled()
334 if (isc_clk->id == ISC_ISPCK) in isc_clk_is_enabled()
335 pm_runtime_put_sync(isc_clk->dev); in isc_clk_is_enabled()
337 return status & ISC_CLK(isc_clk->id) ? 1 : 0; in isc_clk_is_enabled()
343 struct isc_clk *isc_clk = to_isc_clk(hw); in isc_clk_recalc_rate() local
345 return DIV_ROUND_CLOSEST(parent_rate, isc_clk->div + 1); in isc_clk_recalc_rate()
351 struct isc_clk *isc_clk = to_isc_clk(hw); in isc_clk_determine_rate() local
390 dev_dbg(isc_clk->dev, in isc_clk_determine_rate()
406 struct isc_clk *isc_clk = to_isc_clk(hw); in isc_clk_set_parent() local
411 isc_clk->parent_id = index; in isc_clk_set_parent()
418 struct isc_clk *isc_clk = to_isc_clk(hw); in isc_clk_get_parent() local
420 return isc_clk->parent_id; in isc_clk_get_parent()
427 struct isc_clk *isc_clk = to_isc_clk(hw); in isc_clk_set_rate() local
437 isc_clk->div = div - 1; in isc_clk_set_rate()
459 struct isc_clk *isc_clk; in isc_clk_register() local
485 isc_clk = &isc->isc_clks[id]; in isc_clk_register()
486 isc_clk->hw.init = &init; in isc_clk_register()
487 isc_clk->regmap = regmap; in isc_clk_register()
488 isc_clk->id = id; in isc_clk_register()
489 isc_clk->dev = isc->dev; in isc_clk_register()
490 spin_lock_init(&isc_clk->lock); in isc_clk_register()
492 isc_clk->clk = clk_register(isc->dev, &isc_clk->hw); in isc_clk_register()
493 if (IS_ERR(isc_clk->clk)) { in isc_clk_register()
495 return PTR_ERR(isc_clk->clk); in isc_clk_register()
497 of_clk_add_provider(np, of_clk_src_simple_get, isc_clk->clk); in isc_clk_register()
526 struct isc_clk *isc_clk = &isc->isc_clks[i]; in isc_clk_cleanup() local
528 if (!IS_ERR(isc_clk->clk)) in isc_clk_cleanup()
529 clk_unregister(isc_clk->clk); in isc_clk_cleanup()