Lines Matching refs:ch
225 struct berlin2_avpll_channel *ch = to_avpll_channel(hw); in berlin2_avpll_channel_is_enabled() local
228 if (ch->index == 7) in berlin2_avpll_channel_is_enabled()
231 reg = readl_relaxed(ch->base + VCO_CTRL10); in berlin2_avpll_channel_is_enabled()
232 reg &= VCO_POWERUP_CH1 << ch->index; in berlin2_avpll_channel_is_enabled()
239 struct berlin2_avpll_channel *ch = to_avpll_channel(hw); in berlin2_avpll_channel_enable() local
242 reg = readl_relaxed(ch->base + VCO_CTRL10); in berlin2_avpll_channel_enable()
243 reg |= VCO_POWERUP_CH1 << ch->index; in berlin2_avpll_channel_enable()
244 writel_relaxed(reg, ch->base + VCO_CTRL10); in berlin2_avpll_channel_enable()
251 struct berlin2_avpll_channel *ch = to_avpll_channel(hw); in berlin2_avpll_channel_disable() local
254 reg = readl_relaxed(ch->base + VCO_CTRL10); in berlin2_avpll_channel_disable()
255 reg &= ~(VCO_POWERUP_CH1 << ch->index); in berlin2_avpll_channel_disable()
256 writel_relaxed(reg, ch->base + VCO_CTRL10); in berlin2_avpll_channel_disable()
265 struct berlin2_avpll_channel *ch = to_avpll_channel(hw); in berlin2_avpll_channel_recalc_rate() local
269 reg = readl_relaxed(ch->base + VCO_CTRL30); in berlin2_avpll_channel_recalc_rate()
270 if ((reg & (VCO_DPLL_CH1_ENABLE << ch->index)) == 0) in berlin2_avpll_channel_recalc_rate()
278 reg = readl_relaxed(ch->base + VCO_SYNC1n(ch->index)); in berlin2_avpll_channel_recalc_rate()
280 if (ch->flags & BERLIN2_AVPLL_BIT_QUIRK && ch->index == 0) in berlin2_avpll_channel_recalc_rate()
284 reg = readl_relaxed(ch->base + VCO_SYNC2n(ch->index)); in berlin2_avpll_channel_recalc_rate()
288 if (ch->index == 7) in berlin2_avpll_channel_recalc_rate()
295 reg = readl_relaxed(ch->base + VCO_CTRL11) >> 7; in berlin2_avpll_channel_recalc_rate()
296 reg = (reg >> (ch->index * 3)); in berlin2_avpll_channel_recalc_rate()
304 if (ch->index == 0) { in berlin2_avpll_channel_recalc_rate()
305 reg = readl_relaxed(ch->base + VCO_CTRL11); in berlin2_avpll_channel_recalc_rate()
308 reg = readl_relaxed(ch->base + VCO_CTRL12); in berlin2_avpll_channel_recalc_rate()
309 reg >>= (ch->index-1) * 3; in berlin2_avpll_channel_recalc_rate()
318 if (ch->index < 2) { in berlin2_avpll_channel_recalc_rate()
319 reg = readl_relaxed(ch->base + VCO_CTRL12); in berlin2_avpll_channel_recalc_rate()
320 reg >>= 18 + (ch->index * 7); in berlin2_avpll_channel_recalc_rate()
321 } else if (ch->index < 7) { in berlin2_avpll_channel_recalc_rate()
322 reg = readl_relaxed(ch->base + VCO_CTRL13); in berlin2_avpll_channel_recalc_rate()
323 reg >>= (ch->index - 2) * 7; in berlin2_avpll_channel_recalc_rate()
325 reg = readl_relaxed(ch->base + VCO_CTRL14); in berlin2_avpll_channel_recalc_rate()
336 if (ch->index < 6) { in berlin2_avpll_channel_recalc_rate()
337 reg = readl_relaxed(ch->base + VCO_CTRL14); in berlin2_avpll_channel_recalc_rate()
338 reg >>= 7 + (ch->index * 4); in berlin2_avpll_channel_recalc_rate()
340 reg = readl_relaxed(ch->base + VCO_CTRL15); in berlin2_avpll_channel_recalc_rate()
371 struct berlin2_avpll_channel *ch; in berlin2_avpll_channel_register() local
374 ch = kzalloc(sizeof(*ch), GFP_KERNEL); in berlin2_avpll_channel_register()
375 if (!ch) in berlin2_avpll_channel_register()
378 ch->base = base; in berlin2_avpll_channel_register()
380 ch->index = quirk_index[index]; in berlin2_avpll_channel_register()
382 ch->index = index; in berlin2_avpll_channel_register()
384 ch->flags = ch_flags; in berlin2_avpll_channel_register()
385 ch->hw.init = &init; in berlin2_avpll_channel_register()
392 return clk_register(NULL, &ch->hw); in berlin2_avpll_channel_register()