Lines Matching refs:consider_data

713 static inline void ti_pll_internal_calc(struct ti_pll_consider_data *consider_data)  in ti_pll_internal_calc()  argument
715 struct ti_clk *clkp = consider_data->clk; in ti_pll_internal_calc()
716 const struct ti_pll_data *data = consider_data->data; in ti_pll_internal_calc()
746 lowest_plld = 1U + ((consider_data->input - 1U) / consider_data->vco_in->max_hz); in ti_pll_internal_calc()
747 if (consider_data->vco_in->min_hz != 0U) { in ti_pll_internal_calc()
748 highest_plld = consider_data->input / consider_data->vco_in->min_hz; in ti_pll_internal_calc()
787 if (consider_data->max == UINT_MAX) { in ti_pll_internal_calc()
790 } else if (consider_data->vco->min_hz == 0U) { in ti_pll_internal_calc()
794 lowest_clkod = 1U + ((consider_data->vco->min_hz - 1U) / (consider_data->max + 1U)); in ti_pll_internal_calc()
796 if (consider_data->min == 0U) { in ti_pll_internal_calc()
799 highest_clkod = consider_data->vco->max_hz / consider_data->min; in ti_pll_internal_calc()
892 do_frac = (data->pllfm_bits != 0U) && consider_data->pll->fractional_support; in ti_pll_internal_calc()
898 input_inverse64 = input_inverse_rem64 / consider_data->input; in ti_pll_internal_calc()
899 input_inverse_rem64 = input_inverse_rem64 % consider_data->input; in ti_pll_internal_calc()
915 consider_data->vco_min = CLAMP((uint64_t)consider_data->vco->min_hz, in ti_pll_internal_calc()
916 (uint64_t)clkod * consider_data->min, in ti_pll_internal_calc()
919 uint64_t vco_max = (uint64_t)clkod * (consider_data->max + 1) - 1U; in ti_pll_internal_calc()
921 consider_data->vco_max = MIN(vco_max, (uint64_t)consider_data->vco->max_hz); in ti_pll_internal_calc()
927 consider_data->curr_clkod = clkod; in ti_pll_internal_calc()
940 vco_target = CLAMP((uint64_t)consider_data->vco->min_hz, in ti_pll_internal_calc()
941 (uint64_t)consider_data->output * clkod, in ti_pll_internal_calc()
942 (uint64_t)consider_data->vco->max_hz); in ti_pll_internal_calc()
949 ideal_pllm_step = vco_target / consider_data->input; in ti_pll_internal_calc()
950 ideal_pllm_step_rem = vco_target % consider_data->input; in ti_pll_internal_calc()
962 extra = ((uint32_t) ideal_pllm_rem) / consider_data->input; in ti_pll_internal_calc()
964 ideal_pllm_rem -= ((uint64_t) extra) * consider_data->input; in ti_pll_internal_calc()
971 consider_data->curr_plld = plld; in ti_pll_internal_calc()
978 if (ideal_pllm_rem >= consider_data->input) { in ti_pll_internal_calc()
980 ideal_pllm_rem -= consider_data->input; in ti_pll_internal_calc()
983 consider_data->clkod_plld += clkod * plld; in ti_pll_internal_calc()
1046 frem += (ideal_pllm - low_pllm) * consider_data->input; in ti_pll_internal_calc()
1055 ti_pll_consider_fractional(consider_data, low_pllm, in ti_pll_internal_calc()
1071 consider_data->curr_plld, in ti_pll_internal_calc()
1073 consider_data->curr_clkod); in ti_pll_internal_calc()
1084 ret = ti_pll_consider(consider_data, low_pllm, 0U, in ti_pll_internal_calc()
1094 consider_data->curr_plld, in ti_pll_internal_calc()
1096 consider_data->curr_clkod); in ti_pll_internal_calc()
1107 ret = ti_pll_consider(consider_data, high_pllm, 0U, 0U); in ti_pll_internal_calc()
1117 consider_data->curr_plld, in ti_pll_internal_calc()
1119 consider_data->curr_clkod); in ti_pll_internal_calc()
1144 struct ti_pll_consider_data consider_data = { in ti_pll_calc() local
1166 if ((consider_data.vco == NULL) || (consider_data.vco_in == NULL)) { in ti_pll_calc()
1171 if ((consider_data.pll->pll_entries) != NULL) { in ti_pll_calc()
1174 for (i = 0; i < consider_data.pll->pll_entries_count; i++) { in ti_pll_calc()
1175 ti_pll_consider_entry(&consider_data, in ti_pll_calc()
1177 [consider_data.pll->pll_entries[i]]); in ti_pll_calc()
1178 if (consider_data.min_delta == 0U) { in ti_pll_calc()
1186 if (consider_data.min_delta == UINT_MAX) { in ti_pll_calc()
1187 ti_pll_internal_calc(&consider_data); in ti_pll_calc()
1196 return consider_data.best_actual; in ti_pll_calc()