Lines Matching defs:timing

28 static void dsi_dphy_timing_calc_clk_zero(struct msm_dsi_dphy_timing *timing,
35 temp = 300 * coeff - ((timing->clk_prepare >> 1) + 1) * 2 * ui;
46 temp = (timing->hs_rqst + timing->clk_prepare + clk_z) & 0x7;
47 timing->clk_zero = clk_z + 8 - temp;
50 int msm_dsi_dphy_timing_calc(struct msm_dsi_dphy_timing *timing,
72 timing->clk_prepare = linear_inter(tmax, tmin, pcnt0, 0, true);
76 timing->hs_rqst = temp;
78 timing->hs_rqst = max_t(s32, 0, temp - 2);
81 dsi_dphy_timing_calc_clk_zero(timing, ui, coeff, pcnt2);
86 timing->clk_trail = linear_inter(tmax, tmin, pcnt3, 0, true);
92 timing->hs_prepare = linear_inter(tmax, tmin, pcnt1, 0, true);
95 temp = ((timing->hs_prepare >> 1) + 1) * 2 * ui + 2 * ui;
98 timing->hs_zero = linear_inter(tmax, tmin, pcnt2, 24, true);
104 timing->hs_trail = linear_inter(tmax, tmin, pcnt3, 0, true);
108 timing->hs_exit = linear_inter(tmax, tmin, pcnt2, 0, true);
111 temp = ((timing->hs_exit >> 1) + 1) * 2 * ui;
114 timing->shared_timings.clk_post = linear_inter(tmax, tmin, pcnt2, 0,
117 temp = ((timing->clk_prepare >> 1) + 1) * 2 * ui;
118 temp += ((timing->clk_zero >> 1) + 1) * 2 * ui;
123 timing->shared_timings.clk_pre = temp >> 1;
124 timing->shared_timings.clk_pre_inc_by_2 = true;
126 timing->shared_timings.clk_pre =
128 timing->shared_timings.clk_pre_inc_by_2 = false;
131 timing->ta_go = 3;
132 timing->ta_sure = 0;
133 timing->ta_get = 4;
136 timing->shared_timings.clk_pre, timing->shared_timings.clk_post,
137 timing->shared_timings.clk_pre_inc_by_2, timing->clk_zero,
138 timing->clk_trail, timing->clk_prepare, timing->hs_exit,
139 timing->hs_zero, timing->hs_prepare, timing->hs_trail,
140 timing->hs_rqst);
145 int msm_dsi_dphy_timing_calc_v2(struct msm_dsi_dphy_timing *timing,
166 timing->hs_halfbyte_en = 0;
168 timing->hs_halfbyte_en_ckln = 0;
170 timing->hs_prep_dly_ckln = (bit_rate > 100000000) ? 0 : 3;
171 pd_ckln = timing->hs_prep_dly_ckln;
172 timing->hs_prep_dly = (bit_rate > 120000000) ? 0 : 1;
173 pd = timing->hs_prep_dly;
185 timing->clk_prepare = linear_inter(tmax, tmin, pcnt0, 0, false);
187 temp = 300 * coeff - ((timing->clk_prepare << 3) + val_ckln) * ui;
190 timing->clk_zero = linear_inter(tmax, tmin, pcnt5, 0, false);
195 timing->clk_trail = linear_inter(tmax, tmin, pcnt3, 0, false);
201 timing->hs_prepare = linear_inter(tmax, tmin, pcnt1, 0, false);
203 temp = 145 * coeff + 10 * ui - ((timing->hs_prepare << 3) + val) * ui;
206 timing->hs_zero = linear_inter(tmax, tmin, pcnt4, 0, false);
211 timing->hs_trail = linear_inter(tmax, tmin, pcnt3, 0, false);
214 timing->hs_rqst = S_DIV_ROUND_UP(temp, ui_x8);
218 timing->hs_exit = linear_inter(tmax, tmin, pcnt2, 0, false);
221 timing->hs_rqst_ckln = S_DIV_ROUND_UP(temp, ui_x8);
226 timing->shared_timings.clk_post =
229 temp = 8 * ui + ((timing->clk_prepare << 3) + val_ckln) * ui;
230 temp += (((timing->clk_zero + 3) << 3) + 11 - (pd_ckln << 1)) * ui;
231 temp += hb_en_ckln ? (((timing->hs_rqst_ckln << 3) + 4) * ui) :
232 (((timing->hs_rqst_ckln << 3) + 8) * ui);
237 timing->shared_timings.clk_pre = temp >> 1;
238 timing->shared_timings.clk_pre_inc_by_2 = 1;
240 timing->shared_timings.clk_pre =
242 timing->shared_timings.clk_pre_inc_by_2 = 0;
245 timing->ta_go = 3;
246 timing->ta_sure = 0;
247 timing->ta_get = 4;
250 timing->shared_timings.clk_pre, timing->shared_timings.clk_post,
251 timing->shared_timings.clk_pre_inc_by_2, timing->clk_zero,
252 timing->clk_trail, timing->clk_prepare, timing->hs_exit,
253 timing->hs_zero, timing->hs_prepare, timing->hs_trail,
254 timing->hs_rqst, timing->hs_rqst_ckln, timing->hs_halfbyte_en,
255 timing->hs_halfbyte_en_ckln, timing->hs_prep_dly,
256 timing->hs_prep_dly_ckln);
261 int msm_dsi_dphy_timing_calc_v3(struct msm_dsi_dphy_timing *timing,
281 timing->hs_halfbyte_en = 0;
283 timing->hs_halfbyte_en_ckln = 0;
293 timing->clk_prepare = linear_inter(tmax, tmin, pcnt0, 0, false);
295 temp = 300 * coeff - (timing->clk_prepare << 3) * ui;
298 timing->clk_zero = linear_inter(tmax, tmin, pcnt5, 0, false);
303 timing->clk_trail = linear_inter(tmax, tmin, pcnt3, 0, false);
309 timing->hs_prepare = linear_inter(tmax, tmin, pcnt1, 0, false);
311 temp = 145 * coeff + 10 * ui - (timing->hs_prepare << 3) * ui;
314 timing->hs_zero = linear_inter(tmax, tmin, pcnt4, 0, false);
319 timing->hs_trail = linear_inter(tmax, tmin, pcnt3, 0, false);
322 timing->hs_rqst = S_DIV_ROUND_UP(temp, ui_x8);
326 timing->hs_exit = linear_inter(tmax, tmin, pcnt2, 0, false);
329 timing->hs_rqst_ckln = S_DIV_ROUND_UP(temp, ui_x8);
334 timing->shared_timings.clk_post =
337 temp = 8 * ui + (timing->clk_prepare << 3) * ui;
338 temp += (((timing->clk_zero + 3) << 3) + 11) * ui;
339 temp += hb_en_ckln ? (((timing->hs_rqst_ckln << 3) + 4) * ui) :
340 (((timing->hs_rqst_ckln << 3) + 8) * ui);
345 timing->shared_timings.clk_pre = temp >> 1;
346 timing->shared_timings.clk_pre_inc_by_2 = 1;
348 timing->shared_timings.clk_pre =
350 timing->shared_timings.clk_pre_inc_by_2 = 0;
353 timing->shared_timings.byte_intf_clk_div_2 = true;
355 timing->ta_go = 3;
356 timing->ta_sure = 0;
357 timing->ta_get = 4;
360 timing->shared_timings.clk_pre, timing->shared_timings.clk_post,
361 timing->shared_timings.clk_pre_inc_by_2, timing->clk_zero,
362 timing->clk_trail, timing->clk_prepare, timing->hs_exit,
363 timing->hs_zero, timing->hs_prepare, timing->hs_trail,
364 timing->hs_rqst, timing->hs_rqst_ckln, timing->hs_halfbyte_en,
365 timing->hs_halfbyte_en_ckln, timing->hs_prep_dly,
366 timing->hs_prep_dly_ckln);
371 int msm_dsi_dphy_timing_calc_v4(struct msm_dsi_dphy_timing *timing,
406 timing->clk_prepare = linear_inter(tmax, tmin, pcnt_clk_prep, 0, false);
408 temp = 300 * coeff - (timing->clk_prepare << 3) * ui;
411 timing->clk_zero = linear_inter(tmax, tmin, pcnt_clk_zero, 0, false);
416 timing->clk_trail = linear_inter(tmax, tmin, pcnt_clk_trail, 0, false);
422 timing->hs_prepare = linear_inter(tmax, tmin, pcnt_hs_prep, 0, false);
424 temp = 145 * coeff + 10 * ui - (timing->hs_prepare << 3) * ui;
427 timing->hs_zero = linear_inter(tmax, tmin, pcnt_hs_zero, 0, false);
432 timing->hs_trail = linear_inter(tmax, tmin, pcnt_hs_trail, 0, false);
435 timing->hs_rqst = S_DIV_ROUND_UP(temp, ui_x8);
439 timing->hs_exit = linear_inter(tmax, tmin, pcnt_hs_exit, 0, false);
444 temp = 60 * coeff + 52 * ui + + (timing->hs_trail + 1) * ui_x8;
447 timing->shared_timings.clk_post = linear_inter(tmax, tmin, 5, 0, false);
454 temp = 52 * coeff + (timing->clk_prepare + timing->clk_zero + 1) * ui_x8 + 54 * coeff;
457 timing->shared_timings.clk_pre = DIV_ROUND_UP((tmax - tmin) * 125, 10000) + tmin;
459 timing->shared_timings.byte_intf_clk_div_2 = true;
462 timing->shared_timings.clk_pre, timing->shared_timings.clk_post,
463 timing->clk_zero, timing->clk_trail, timing->clk_prepare, timing->hs_exit,
464 timing->hs_zero, timing->hs_prepare, timing->hs_trail, timing->hs_rqst);
469 int msm_dsi_cphy_timing_calc_v4(struct msm_dsi_dphy_timing *timing,
489 timing->clk_prepare = linear_inter(tmax, tmin, 50, 0, false);
493 timing->hs_rqst = linear_inter(tmax, tmin, 1, 0, false);
497 timing->hs_exit = linear_inter(tmax, tmin, 10, 0, false);
501 timing->shared_timings.clk_post = linear_inter(tmax, tmin, 80, 0, false);
505 timing->shared_timings.clk_pre = linear_inter(tmax, tmin, 20, 0, false);
508 timing->shared_timings.clk_pre, timing->shared_timings.clk_post,
509 timing->clk_prepare, timing->hs_exit, timing->hs_rqst);
777 memcpy(shared_timings, &phy->timing.shared_timings,