Lines Matching refs:icst

63 static int vco_get(struct clk_icst *icst, struct icst_vco *vco)  in vco_get()  argument
68 ret = regmap_read(icst->map, icst->vcoreg_off, &val); in vco_get()
80 if (icst->ctype == ICST_INTEGRATOR_AP_CM) { in vco_get()
95 if (icst->ctype == ICST_INTEGRATOR_AP_SYS) { in vco_get()
110 if (icst->ctype == ICST_INTEGRATOR_AP_PCI) { in vco_get()
127 if (icst->ctype == ICST_INTEGRATOR_CP_CM_CORE) { in vco_get()
134 if (icst->ctype == ICST_INTEGRATOR_CP_CM_MEM) { in vco_get()
152 static int vco_set(struct clk_icst *icst, struct icst_vco vco) in vco_set() argument
159 switch (icst->ctype) { in vco_set()
206 ret = regmap_write(icst->map, icst->lockreg_off, VERSATILE_LOCK_VAL); in vco_set()
209 ret = regmap_update_bits(icst->map, icst->vcoreg_off, mask, val); in vco_set()
213 ret = regmap_write(icst->map, icst->lockreg_off, 0); in vco_set()
222 struct clk_icst *icst = to_icst(hw); in icst_recalc_rate() local
227 icst->params->ref = parent_rate; in icst_recalc_rate()
228 ret = vco_get(icst, &vco); in icst_recalc_rate()
233 icst->rate = icst_hz(icst->params, vco); in icst_recalc_rate()
234 return icst->rate; in icst_recalc_rate()
240 struct clk_icst *icst = to_icst(hw); in icst_round_rate() local
243 if (icst->ctype == ICST_INTEGRATOR_AP_CM || in icst_round_rate()
244 icst->ctype == ICST_INTEGRATOR_CP_CM_CORE) { in icst_round_rate()
253 if (icst->ctype == ICST_INTEGRATOR_CP_CM_MEM) { in icst_round_rate()
262 if (icst->ctype == ICST_INTEGRATOR_AP_SYS) { in icst_round_rate()
272 if (icst->ctype == ICST_INTEGRATOR_AP_PCI) { in icst_round_rate()
283 vco = icst_hz_to_vco(icst->params, rate); in icst_round_rate()
284 return icst_hz(icst->params, vco); in icst_round_rate()
290 struct clk_icst *icst = to_icst(hw); in icst_set_rate() local
293 if (icst->ctype == ICST_INTEGRATOR_AP_PCI) { in icst_set_rate()
307 ret = regmap_write(icst->map, icst->lockreg_off, in icst_set_rate()
311 ret = regmap_update_bits(icst->map, icst->vcoreg_off, in icst_set_rate()
317 ret = regmap_write(icst->map, icst->lockreg_off, 0); in icst_set_rate()
324 icst->params->ref = parent_rate; in icst_set_rate()
325 vco = icst_hz_to_vco(icst->params, rate); in icst_set_rate()
326 icst->rate = icst_hz(icst->params, vco); in icst_set_rate()
327 return vco_set(icst, vco); in icst_set_rate()
344 struct clk_icst *icst; in icst_clk_setup() local
348 icst = kzalloc(sizeof(*icst), GFP_KERNEL); in icst_clk_setup()
349 if (!icst) in icst_clk_setup()
354 kfree(icst); in icst_clk_setup()
363 icst->map = map; in icst_clk_setup()
364 icst->hw.init = &init; in icst_clk_setup()
365 icst->params = pclone; in icst_clk_setup()
366 icst->vcoreg_off = desc->vco_offset; in icst_clk_setup()
367 icst->lockreg_off = desc->lock_offset; in icst_clk_setup()
368 icst->ctype = ctype; in icst_clk_setup()
370 clk = clk_register(dev, &icst->hw); in icst_clk_setup()
373 kfree(icst); in icst_clk_setup()