Lines Matching refs:isc_clk

105 	struct isc_clk *isc_clk = to_isc_clk(hw);  in isc_wait_clk_stable()  local
106 struct regmap *regmap = isc_clk->regmap; in isc_wait_clk_stable()
123 struct isc_clk *isc_clk = to_isc_clk(hw); in isc_clk_prepare() local
126 if (isc_clk->id == ISC_ISPCK) { in isc_clk_prepare()
127 ret = pm_runtime_resume_and_get(isc_clk->dev); in isc_clk_prepare()
137 struct isc_clk *isc_clk = to_isc_clk(hw); in isc_clk_unprepare() local
141 if (isc_clk->id == ISC_ISPCK) in isc_clk_unprepare()
142 pm_runtime_put_sync(isc_clk->dev); in isc_clk_unprepare()
147 struct isc_clk *isc_clk = to_isc_clk(hw); in isc_clk_enable() local
148 u32 id = isc_clk->id; in isc_clk_enable()
149 struct regmap *regmap = isc_clk->regmap; in isc_clk_enable()
153 dev_dbg(isc_clk->dev, "ISC CLK: %s, id = %d, div = %d, parent id = %d\n", in isc_clk_enable()
154 __func__, id, isc_clk->div, isc_clk->parent_id); in isc_clk_enable()
156 spin_lock_irqsave(&isc_clk->lock, flags); in isc_clk_enable()
159 (isc_clk->div << ISC_CLKCFG_DIV_SHIFT(id)) | in isc_clk_enable()
160 (isc_clk->parent_id << ISC_CLKCFG_SEL_SHIFT(id))); in isc_clk_enable()
163 spin_unlock_irqrestore(&isc_clk->lock, flags); in isc_clk_enable()
174 struct isc_clk *isc_clk = to_isc_clk(hw); in isc_clk_disable() local
175 u32 id = isc_clk->id; in isc_clk_disable()
178 spin_lock_irqsave(&isc_clk->lock, flags); in isc_clk_disable()
179 regmap_write(isc_clk->regmap, ISC_CLKDIS, ISC_CLK(id)); in isc_clk_disable()
180 spin_unlock_irqrestore(&isc_clk->lock, flags); in isc_clk_disable()
185 struct isc_clk *isc_clk = to_isc_clk(hw); in isc_clk_is_enabled() local
189 if (isc_clk->id == ISC_ISPCK) { in isc_clk_is_enabled()
190 ret = pm_runtime_resume_and_get(isc_clk->dev); in isc_clk_is_enabled()
195 regmap_read(isc_clk->regmap, ISC_CLKSR, &status); in isc_clk_is_enabled()
197 if (isc_clk->id == ISC_ISPCK) in isc_clk_is_enabled()
198 pm_runtime_put_sync(isc_clk->dev); in isc_clk_is_enabled()
200 return status & ISC_CLK(isc_clk->id) ? 1 : 0; in isc_clk_is_enabled()
206 struct isc_clk *isc_clk = to_isc_clk(hw); in isc_clk_recalc_rate() local
208 return DIV_ROUND_CLOSEST(parent_rate, isc_clk->div + 1); in isc_clk_recalc_rate()
214 struct isc_clk *isc_clk = to_isc_clk(hw); in isc_clk_determine_rate() local
253 dev_dbg(isc_clk->dev, in isc_clk_determine_rate()
269 struct isc_clk *isc_clk = to_isc_clk(hw); in isc_clk_set_parent() local
274 isc_clk->parent_id = index; in isc_clk_set_parent()
281 struct isc_clk *isc_clk = to_isc_clk(hw); in isc_clk_get_parent() local
283 return isc_clk->parent_id; in isc_clk_get_parent()
290 struct isc_clk *isc_clk = to_isc_clk(hw); in isc_clk_set_rate() local
300 isc_clk->div = div - 1; in isc_clk_set_rate()
322 struct isc_clk *isc_clk; in isc_clk_register() local
348 isc_clk = &isc->isc_clks[id]; in isc_clk_register()
349 isc_clk->hw.init = &init; in isc_clk_register()
350 isc_clk->regmap = regmap; in isc_clk_register()
351 isc_clk->id = id; in isc_clk_register()
352 isc_clk->dev = isc->dev; in isc_clk_register()
353 spin_lock_init(&isc_clk->lock); in isc_clk_register()
355 isc_clk->clk = clk_register(isc->dev, &isc_clk->hw); in isc_clk_register()
356 if (IS_ERR(isc_clk->clk)) { in isc_clk_register()
358 return PTR_ERR(isc_clk->clk); in isc_clk_register()
360 of_clk_add_provider(np, of_clk_src_simple_get, isc_clk->clk); in isc_clk_register()
390 struct isc_clk *isc_clk = &isc->isc_clks[i]; in isc_clk_cleanup() local
392 if (!IS_ERR(isc_clk->clk)) in isc_clk_cleanup()
393 clk_unregister(isc_clk->clk); in isc_clk_cleanup()