Lines Matching refs:hwd
144 struct cdce706_hw_data *hwd = to_hw_data(hw); in cdce706_clkin_set_parent() local
146 hwd->parent = index; in cdce706_clkin_set_parent()
152 struct cdce706_hw_data *hwd = to_hw_data(hw); in cdce706_clkin_get_parent() local
154 return hwd->parent; in cdce706_clkin_get_parent()
165 struct cdce706_hw_data *hwd = to_hw_data(hw); in cdce706_pll_recalc_rate() local
167 dev_dbg(&hwd->dev_data->client->dev, in cdce706_pll_recalc_rate()
169 __func__, hwd->idx, hwd->mux, hwd->mul, hwd->div); in cdce706_pll_recalc_rate()
171 if (!hwd->mux) { in cdce706_pll_recalc_rate()
172 if (hwd->div && hwd->mul) { in cdce706_pll_recalc_rate()
173 u64 res = (u64)parent_rate * hwd->mul; in cdce706_pll_recalc_rate()
175 do_div(res, hwd->div); in cdce706_pll_recalc_rate()
179 if (hwd->div) in cdce706_pll_recalc_rate()
180 return parent_rate / hwd->div; in cdce706_pll_recalc_rate()
188 struct cdce706_hw_data *hwd = to_hw_data(hw); in cdce706_pll_round_rate() local
192 dev_dbg(&hwd->dev_data->client->dev, in cdce706_pll_round_rate()
199 hwd->mul = mul; in cdce706_pll_round_rate()
200 hwd->div = div; in cdce706_pll_round_rate()
202 dev_dbg(&hwd->dev_data->client->dev, in cdce706_pll_round_rate()
204 __func__, hwd->idx, mul, div); in cdce706_pll_round_rate()
206 res = (u64)*parent_rate * hwd->mul; in cdce706_pll_round_rate()
207 do_div(res, hwd->div); in cdce706_pll_round_rate()
214 struct cdce706_hw_data *hwd = to_hw_data(hw); in cdce706_pll_set_rate() local
215 unsigned long mul = hwd->mul, div = hwd->div; in cdce706_pll_set_rate()
218 dev_dbg(&hwd->dev_data->client->dev, in cdce706_pll_set_rate()
220 __func__, hwd->idx, mul, div); in cdce706_pll_set_rate()
222 err = cdce706_reg_update(hwd->dev_data, in cdce706_pll_set_rate()
223 CDCE706_PLL_HI(hwd->idx), in cdce706_pll_set_rate()
231 err = cdce706_reg_write(hwd->dev_data, in cdce706_pll_set_rate()
232 CDCE706_PLL_M_LOW(hwd->idx), in cdce706_pll_set_rate()
237 err = cdce706_reg_write(hwd->dev_data, in cdce706_pll_set_rate()
238 CDCE706_PLL_N_LOW(hwd->idx), in cdce706_pll_set_rate()
243 err = cdce706_reg_update(hwd->dev_data, in cdce706_pll_set_rate()
245 CDCE706_PLL_FVCO_MASK(hwd->idx), in cdce706_pll_set_rate()
247 CDCE706_PLL_FVCO_MASK(hwd->idx) : 0); in cdce706_pll_set_rate()
259 struct cdce706_hw_data *hwd = to_hw_data(hw); in cdce706_divider_set_parent() local
261 if (hwd->parent == index) in cdce706_divider_set_parent()
263 hwd->parent = index; in cdce706_divider_set_parent()
264 return cdce706_reg_update(hwd->dev_data, in cdce706_divider_set_parent()
265 CDCE706_DIVIDER_PLL(hwd->idx), in cdce706_divider_set_parent()
266 CDCE706_DIVIDER_PLL_MASK(hwd->idx), in cdce706_divider_set_parent()
267 index << CDCE706_DIVIDER_PLL_SHIFT(hwd->idx)); in cdce706_divider_set_parent()
272 struct cdce706_hw_data *hwd = to_hw_data(hw); in cdce706_divider_get_parent() local
274 return hwd->parent; in cdce706_divider_get_parent()
280 struct cdce706_hw_data *hwd = to_hw_data(hw); in cdce706_divider_recalc_rate() local
282 dev_dbg(&hwd->dev_data->client->dev, in cdce706_divider_recalc_rate()
284 __func__, hwd->idx, hwd->div); in cdce706_divider_recalc_rate()
285 if (hwd->div) in cdce706_divider_recalc_rate()
286 return parent_rate / hwd->div; in cdce706_divider_recalc_rate()
293 struct cdce706_hw_data *hwd = to_hw_data(hw); in cdce706_divider_round_rate() local
294 struct cdce706_dev_data *cdce = hwd->dev_data; in cdce706_divider_round_rate()
297 dev_dbg(&hwd->dev_data->client->dev, in cdce706_divider_round_rate()
336 dev_dbg(&hwd->dev_data->client->dev, in cdce706_divider_round_rate()
344 dev_dbg(&hwd->dev_data->client->dev, in cdce706_divider_round_rate()
349 hwd->div = div; in cdce706_divider_round_rate()
351 dev_dbg(&hwd->dev_data->client->dev, in cdce706_divider_round_rate()
353 __func__, hwd->idx, div); in cdce706_divider_round_rate()
361 struct cdce706_hw_data *hwd = to_hw_data(hw); in cdce706_divider_set_rate() local
363 dev_dbg(&hwd->dev_data->client->dev, in cdce706_divider_set_rate()
365 __func__, hwd->idx, hwd->div); in cdce706_divider_set_rate()
367 return cdce706_reg_update(hwd->dev_data, in cdce706_divider_set_rate()
368 CDCE706_DIVIDER(hwd->idx), in cdce706_divider_set_rate()
370 hwd->div); in cdce706_divider_set_rate()
383 struct cdce706_hw_data *hwd = to_hw_data(hw); in cdce706_clkout_prepare() local
385 return cdce706_reg_update(hwd->dev_data, CDCE706_CLKOUT(hwd->idx), in cdce706_clkout_prepare()
392 struct cdce706_hw_data *hwd = to_hw_data(hw); in cdce706_clkout_unprepare() local
394 cdce706_reg_update(hwd->dev_data, CDCE706_CLKOUT(hwd->idx), in cdce706_clkout_unprepare()
400 struct cdce706_hw_data *hwd = to_hw_data(hw); in cdce706_clkout_set_parent() local
402 if (hwd->parent == index) in cdce706_clkout_set_parent()
404 hwd->parent = index; in cdce706_clkout_set_parent()
405 return cdce706_reg_update(hwd->dev_data, in cdce706_clkout_set_parent()
406 CDCE706_CLKOUT(hwd->idx), in cdce706_clkout_set_parent()
412 struct cdce706_hw_data *hwd = to_hw_data(hw); in cdce706_clkout_get_parent() local
414 return hwd->parent; in cdce706_clkout_get_parent()