Lines Matching refs:data
47 const struct mtk_pll_data *data;
65 int pcwbits = pll->data->pcwbits;
72 ibits = pll->data->pcwibits ? pll->data->pcwibits : INTEGER_BITS;
94 r = readl(pll->tuner_en_addr) | BIT(pll->data->tuner_en_bit);
107 r = readl(pll->tuner_en_addr) & ~BIT(pll->data->tuner_en_bit);
125 val &= ~(POSTDIV_MASK << pll->data->pd_shift);
126 val |= (ffs(postdiv) - 1) << pll->data->pd_shift;
135 val &= ~GENMASK(pll->data->pcw_shift + pll->data->pcwbits - 1,
136 pll->data->pcw_shift);
137 val |= pcw << pll->data->pcw_shift;
162 unsigned long fmin = pll->data->fmin ? pll->data->fmin : (1000 * MHZ);
163 const struct mtk_pll_div_table *div_table = pll->data->div_table;
168 if (freq > pll->data->fmax)
169 freq = pll->data->fmax;
189 ibits = pll->data->pcwibits ? pll->data->pcwibits : INTEGER_BITS;
190 _pcw = ((u64)freq << val) << (pll->data->pcwbits - ibits);
216 postdiv = (readl(pll->pd_addr) >> pll->data->pd_shift) & POSTDIV_MASK;
219 pcw = readl(pll->pcw_addr) >> pll->data->pcw_shift;
220 pcw &= GENMASK(pll->data->pcwbits - 1, 0);
251 r |= pll->data->en_mask;
258 if (pll->data->flags & HAVE_RST_BAR) {
260 r |= pll->data->rst_bar_mask;
272 if (pll->data->flags & HAVE_RST_BAR) {
274 r &= ~pll->data->rst_bar_mask;
300 static struct clk *mtk_clk_register_pll(const struct mtk_pll_data *data,
312 pll->base_addr = base + data->reg;
313 pll->pwr_addr = base + data->pwr_reg;
314 pll->pd_addr = base + data->pd_reg;
315 pll->pcw_addr = base + data->pcw_reg;
316 if (data->pcw_chg_reg)
317 pll->pcw_chg_addr = base + data->pcw_chg_reg;
320 if (data->tuner_reg)
321 pll->tuner_addr = base + data->tuner_reg;
322 if (data->tuner_en_reg)
323 pll->tuner_en_addr = base + data->tuner_en_reg;
325 pll->data = data;
327 init.name = data->name;
328 init.flags = (data->flags & PLL_AO) ? CLK_IS_CRITICAL : 0;
330 if (data->parent_name)
331 init.parent_names = &data->parent_name;