Lines Matching +full:0 +full:x1f0000

20 #define COMBRXPHY_MAX_REGISTER	COMBRX_REG(0x6790)
43 rk628_i2c_read(rk628, COMBRX_REG(0x6630), &val); in rk628_combrxphy_try_clk_detect()
45 val = val & 0xfffffff6; in rk628_combrxphy_try_clk_detect()
46 rk628_i2c_write(rk628, COMBRX_REG(0x6630), val); in rk628_combrxphy_try_clk_detect()
51 rk628_i2c_read(rk628, COMBRX_REG(0x6630), &val); in rk628_combrxphy_try_clk_detect()
53 rk628_i2c_write(rk628, COMBRX_REG(0x6630), val); in rk628_combrxphy_try_clk_detect()
55 rk628_i2c_read(rk628, COMBRX_REG(0x66f0), &val); in rk628_combrxphy_try_clk_detect()
56 val = val & 0xfffffeff; in rk628_combrxphy_try_clk_detect()
57 rk628_i2c_write(rk628, COMBRX_REG(0x66f0), val); in rk628_combrxphy_try_clk_detect()
59 rk628_i2c_read(rk628, COMBRX_REG(0x66f4), &val); in rk628_combrxphy_try_clk_detect()
60 val = val & 0xfffffffe; in rk628_combrxphy_try_clk_detect()
61 rk628_i2c_write(rk628, COMBRX_REG(0x66f4), val); in rk628_combrxphy_try_clk_detect()
63 rk628_i2c_read(rk628, COMBRX_REG(0x66f0), &val); in rk628_combrxphy_try_clk_detect()
64 val = val | 0x100; in rk628_combrxphy_try_clk_detect()
65 rk628_i2c_write(rk628, COMBRX_REG(0x66f0), val); in rk628_combrxphy_try_clk_detect()
67 rk628_i2c_read(rk628, COMBRX_REG(0x66f4), &val); in rk628_combrxphy_try_clk_detect()
68 val = val | 0x1; in rk628_combrxphy_try_clk_detect()
69 rk628_i2c_write(rk628, COMBRX_REG(0x66f4), val); in rk628_combrxphy_try_clk_detect()
71 rk628_i2c_read(rk628, COMBRX_REG(0x66f0), &val); in rk628_combrxphy_try_clk_detect()
73 val = (val & 0xfffffff8) | 0x5; in rk628_combrxphy_try_clk_detect()
74 rk628_i2c_write(rk628, COMBRX_REG(0x66f0), val); in rk628_combrxphy_try_clk_detect()
76 /* auto fsm en = 0 */ in rk628_combrxphy_try_clk_detect()
77 rk628_i2c_read(rk628, COMBRX_REG(0x66f0), &val); in rk628_combrxphy_try_clk_detect()
79 val = (val & 0xfffffff8) | 0x4; in rk628_combrxphy_try_clk_detect()
80 rk628_i2c_write(rk628, COMBRX_REG(0x66f0), val); in rk628_combrxphy_try_clk_detect()
82 for (i = 0; i < 10; i++) { in rk628_combrxphy_try_clk_detect()
84 rk628_i2c_read(rk628, COMBRX_REG(0x6654), &val); in rk628_combrxphy_try_clk_detect()
85 if ((val & 0xf0000000) == 0x80000000) { in rk628_combrxphy_try_clk_detect()
86 ret = 0; in rk628_combrxphy_try_clk_detect()
100 for (i = 0; i < MAX_DATA_NUM; i++) in rk628_combrxphy_get_data_of_round()
101 rk628_i2c_read(rk628, COMBRX_REG(0x6740 + i * 4), &data[i]); in rk628_combrxphy_get_data_of_round()
110 dc_gain_ch0 = x & 0xf; in rk628_combrxphy_set_dc_gain()
111 dc_gain_ch1 = y & 0xf; in rk628_combrxphy_set_dc_gain()
112 dc_gain_ch2 = z & 0xf; in rk628_combrxphy_set_dc_gain()
113 rk628_i2c_read(rk628, COMBRX_REG(0x661c), &val); in rk628_combrxphy_set_dc_gain()
115 val = (val & 0xff0f0f0f) | (dc_gain_ch0 << 20) | (dc_gain_ch1 << 12) | in rk628_combrxphy_set_dc_gain()
117 rk628_i2c_write(rk628, COMBRX_REG(0x661c), val); in rk628_combrxphy_set_dc_gain()
123 data_in[0] = data[0]; in rk628_combrxphy_set_data_of_round()
148 u32 cnt = 0; in rk628_combrxphy_max_zero_of_round()
149 u32 max_cnt = 0; in rk628_combrxphy_max_zero_of_round()
150 u32 max_v = 0; in rk628_combrxphy_max_zero_of_round()
152 for (i = 0; i < MAX_DATA_NUM; i++) { in rk628_combrxphy_max_zero_of_round()
157 for (i = 0; i < MAX_DATA_NUM; i++) { in rk628_combrxphy_max_zero_of_round()
158 if (data_in[i] == 0) in rk628_combrxphy_max_zero_of_round()
160 else if ((data_in[i] > 0) && (data_in[i] < 100)) in rk628_combrxphy_max_zero_of_round()
163 max_cnt = (cnt >= 3200) ? 0 : cnt; in rk628_combrxphy_max_zero_of_round()
175 int i, rd = 0; in rk628_combrxphy_chose_round_for_ch()
176 u32 max = 0; in rk628_combrxphy_chose_round_for_ch()
177 u32 max_v = 0; in rk628_combrxphy_chose_round_for_ch()
179 for (i = 0; i < MAX_ROUND; i++) { in rk628_combrxphy_chose_round_for_ch()
200 equ_gain_ch0 = (x & 0xf); in rk628_combrxphy_set_sample_edge_round()
201 equ_gain_ch1 = (y & 0xf); in rk628_combrxphy_set_sample_edge_round()
202 equ_gain_ch2 = (z & 0xf); in rk628_combrxphy_set_sample_edge_round()
203 rk628_i2c_read(rk628, COMBRX_REG(0x6618), &val); in rk628_combrxphy_set_sample_edge_round()
204 val = (val & 0xff00f0ff) | (equ_gain_ch1 << 20) | in rk628_combrxphy_set_sample_edge_round()
206 rk628_i2c_write(rk628, COMBRX_REG(0x6618), val); in rk628_combrxphy_set_sample_edge_round()
213 rk628_i2c_read(rk628, COMBRX_REG(0x66f0), &val); in rk628_combrxphy_start_sample_edge()
214 val &= 0xfffff1ff; in rk628_combrxphy_start_sample_edge()
215 rk628_i2c_write(rk628, COMBRX_REG(0x66f0), val); in rk628_combrxphy_start_sample_edge()
216 rk628_i2c_read(rk628, COMBRX_REG(0x66f0), &val); in rk628_combrxphy_start_sample_edge()
217 val = (val & 0xfffff1ff) | (0x7 << 9); in rk628_combrxphy_start_sample_edge()
218 rk628_i2c_write(rk628, COMBRX_REG(0x66f0), val); in rk628_combrxphy_start_sample_edge()
225 rk628_i2c_read(rk628, COMBRX_REG(0x6634), &val); in rk628_combrxphy_set_sample_edge_mode()
226 val = val & (~(0xf << ((ch + 1) * 4))); in rk628_combrxphy_set_sample_edge_mode()
227 rk628_i2c_write(rk628, COMBRX_REG(0x6634), val); in rk628_combrxphy_set_sample_edge_mode()
234 rk628_i2c_read(rk628, COMBRX_REG(0x6700), &val); in rk628_combrxphy_select_channel()
235 val = (val & 0xfffffffc) | (ch & 0x3); in rk628_combrxphy_select_channel()
236 rk628_i2c_write(rk628, COMBRX_REG(0x6700), val); in rk628_combrxphy_select_channel()
243 rk628_i2c_read(rk628, COMBRX_REG(0x6730), &val); in rk628_combrxphy_cfg_6730()
244 val = (val & 0xffff0000) | 0x1; in rk628_combrxphy_cfg_6730()
245 rk628_i2c_write(rk628, COMBRX_REG(0x6730), val); in rk628_combrxphy_cfg_6730()
259 /* Step1: set sample edge mode for channel 0~2 */ in rk628_combrxphy_sample_edge_procedure_for_cable()
260 for (ch = 0; ch < MAX_CHANNEL; ch++) in rk628_combrxphy_sample_edge_procedure_for_cable()
264 for (ch = 0; ch < MAX_CHANNEL; ch++) { in rk628_combrxphy_sample_edge_procedure_for_cable()
273 dc_gain = 0; in rk628_combrxphy_sample_edge_procedure_for_cable()
274 rd_offset = 0; in rk628_combrxphy_sample_edge_procedure_for_cable()
277 rd_offset = 0; in rk628_combrxphy_sample_edge_procedure_for_cable()
307 for (ch = 0; ch < MAX_CHANNEL; ch++) { in rk628_combrxphy_sample_edge_procedure_for_cable()
309 rk628_i2c_write(rk628, COMBRX_REG(0x6708), edge); in rk628_combrxphy_sample_edge_procedure_for_cable()
314 /* step4:set sample edge round value n,n=0(n=0~31) */ in rk628_combrxphy_sample_edge_procedure_for_cable()
320 for (ch = 0; ch < MAX_CHANNEL; ch++) { in rk628_combrxphy_sample_edge_procedure_for_cable()
335 for (ch = 0; ch < MAX_CHANNEL; ch++) { in rk628_combrxphy_sample_edge_procedure_for_cable()
341 ch_round[0], ch_round[1], ch_round[2]); in rk628_combrxphy_sample_edge_procedure_for_cable()
344 rk628_combrxphy_set_sample_edge_round(rk628, ch_round[0], ch_round[1], ch_round[2]); in rk628_combrxphy_sample_edge_procedure_for_cable()
360 u32 temp = 0; in rk628_combrxphy_set_hdmi_mode_for_cable()
365 * frequency.Refer to register 0x6654[21:16]: in rk628_combrxphy_set_hdmi_mode_for_cable()
395 for (i = 0; i < CLK_DET_TRY_TIMES; i++) { in rk628_combrxphy_set_hdmi_mode_for_cable()
396 rk628_i2c_read(rk628, COMBRX_REG(0x6620), &val); in rk628_combrxphy_set_hdmi_mode_for_cable()
401 if (rk628_combrxphy_try_clk_detect(rk628) >= 0) in rk628_combrxphy_set_hdmi_mode_for_cable()
405 rk628_i2c_read(rk628, COMBRX_REG(0x6654), &val); in rk628_combrxphy_set_hdmi_mode_for_cable()
407 state = (val >> 28) & 0xf; in rk628_combrxphy_set_hdmi_mode_for_cable()
411 channel_st = (val >> 21) & 0x7f; in rk628_combrxphy_set_hdmi_mode_for_cable()
413 channel_st & 0x40 ? "|clk_p|" : "", in rk628_combrxphy_set_hdmi_mode_for_cable()
414 channel_st & 0x20 ? "|clk_n|" : "", in rk628_combrxphy_set_hdmi_mode_for_cable()
415 channel_st & 0x10 ? "|d0_p|" : "", in rk628_combrxphy_set_hdmi_mode_for_cable()
416 channel_st & 0x08 ? "|d0_n|" : "", in rk628_combrxphy_set_hdmi_mode_for_cable()
417 channel_st & 0x04 ? "|d1_p|" : "", in rk628_combrxphy_set_hdmi_mode_for_cable()
418 channel_st & 0x02 ? "|d1_n|" : "", in rk628_combrxphy_set_hdmi_mode_for_cable()
419 channel_st & 0x01 ? "|d2_p|" : "", in rk628_combrxphy_set_hdmi_mode_for_cable()
423 rk628_i2c_read(rk628, COMBRX_REG(0x6620), &val); in rk628_combrxphy_set_hdmi_mode_for_cable()
425 ((val & 0x7f000000) == 0) || in rk628_combrxphy_set_hdmi_mode_for_cable()
426 ((val & 0x007f0000) == 0) || in rk628_combrxphy_set_hdmi_mode_for_cable()
427 ((val & 0x00007f00) == 0) || in rk628_combrxphy_set_hdmi_mode_for_cable()
428 ((val & 0x0000007f) == 0)) { in rk628_combrxphy_set_hdmi_mode_for_cable()
430 rk628_i2c_write(rk628, COMBRX_REG(0x6620), 0x66666666); in rk628_combrxphy_set_hdmi_mode_for_cable()
431 rk628_i2c_update_bits(rk628, COMBRX_REG(0x6604), BIT(31), BIT(31)); in rk628_combrxphy_set_hdmi_mode_for_cable()
436 for (j = 0; j < CLK_STABLE_LOOP_CNT ; j++) { in rk628_combrxphy_set_hdmi_mode_for_cable()
437 cdr_data_min = 0xffffffff; in rk628_combrxphy_set_hdmi_mode_for_cable()
438 cdr_data_max = 0; in rk628_combrxphy_set_hdmi_mode_for_cable()
440 for (i = 0; i < CLK_DET_TRY_TIMES; i++) { in rk628_combrxphy_set_hdmi_mode_for_cable()
441 rk628_i2c_read(rk628, COMBRX_REG(0x6654), &val); in rk628_combrxphy_set_hdmi_mode_for_cable()
442 cdr_data = val & 0xffff; in rk628_combrxphy_set_hdmi_mode_for_cable()
458 rk628_i2c_read(rk628, COMBRX_REG(0x6630), &val_a); in rk628_combrxphy_set_hdmi_mode_for_cable()
459 rk628_i2c_read(rk628, COMBRX_REG(0x6608), &val_b); in rk628_combrxphy_set_hdmi_mode_for_cable()
465 rk628_i2c_update_bits(rk628, COMBRX_REG(0x6628), BIT(31), BIT(31)); in rk628_combrxphy_set_hdmi_mode_for_cable()
470 rk628_i2c_read(rk628, COMBRX_REG(0x6654), &val); in rk628_combrxphy_set_hdmi_mode_for_cable()
471 if ((val & 0x1f0000) == 0x1f0000) { in rk628_combrxphy_set_hdmi_mode_for_cable()
472 rk628_i2c_read(rk628, COMBRX_REG(0x6630), &val_a); in rk628_combrxphy_set_hdmi_mode_for_cable()
473 rk628_i2c_read(rk628, COMBRX_REG(0x6608), &val_b); in rk628_combrxphy_set_hdmi_mode_for_cable()
475 "clock error: 0x1f, reg_0x6630:%#x, reg_0x6608:%#x", in rk628_combrxphy_set_hdmi_mode_for_cable()
481 cdr_mode = (val >> 16) & 0x1f; in rk628_combrxphy_set_hdmi_mode_for_cable()
482 cdr_data = val & 0xffff; in rk628_combrxphy_set_hdmi_mode_for_cable()
490 rk628_i2c_write(rk628, COMBRX_REG(0x662c), 0x01000500); in rk628_combrxphy_set_hdmi_mode_for_cable()
491 rk628_i2c_write(rk628, COMBRX_REG(0x66a8), 0x0000c600); in rk628_combrxphy_set_hdmi_mode_for_cable()
493 rk628_i2c_write(rk628, COMBRX_REG(0x662c), 0x01001400); in rk628_combrxphy_set_hdmi_mode_for_cable()
494 rk628_i2c_write(rk628, COMBRX_REG(0x66a8), 0x0000c600); in rk628_combrxphy_set_hdmi_mode_for_cable()
500 pll_man = 0x7960c; in rk628_combrxphy_set_hdmi_mode_for_cable()
502 pll_man = 0x7750c; in rk628_combrxphy_set_hdmi_mode_for_cable()
504 pll_man = 0x7964c; in rk628_combrxphy_set_hdmi_mode_for_cable()
506 pll_man = 0x7754c; in rk628_combrxphy_set_hdmi_mode_for_cable()
508 pll_man = 0x7a108; in rk628_combrxphy_set_hdmi_mode_for_cable()
510 pll_man = 0x73588; in rk628_combrxphy_set_hdmi_mode_for_cable()
512 pll_man = 0x7a108; in rk628_combrxphy_set_hdmi_mode_for_cable()
514 pll_man = 0x7f0c8; in rk628_combrxphy_set_hdmi_mode_for_cable()
517 rk628_i2c_write(rk628, COMBRX_REG(0x6630), pll_man); in rk628_combrxphy_set_hdmi_mode_for_cable()
524 rk628_i2c_write(rk628, COMBRX_REG(0x66a0), 0x00000003); in rk628_combrxphy_set_hdmi_mode_for_cable()
526 rk628_i2c_write(rk628, COMBRX_REG(0x66b0), 0x00080060); in rk628_combrxphy_set_hdmi_mode_for_cable()
528 rk628_i2c_write(rk628, COMBRX_REG(0x66a0), 0x00000083); in rk628_combrxphy_set_hdmi_mode_for_cable()
530 rk628_i2c_write(rk628, COMBRX_REG(0x66b0), 0x00380060); in rk628_combrxphy_set_hdmi_mode_for_cable()
531 /* cfg 0x2260 high_8b to 0x66ac high_8b, low_8b to 0x66b0 low_8b */ in rk628_combrxphy_set_hdmi_mode_for_cable()
532 rk628_i2c_update_bits(rk628, COMBRX_REG(0x66ac), GENMASK(31, 24), UPDATE(0x22, 31, 24)); in rk628_combrxphy_set_hdmi_mode_for_cable()
536 count = 0; in rk628_combrxphy_set_hdmi_mode_for_cable()
537 for (i = 0; i < CHECK_CNT; i++) { in rk628_combrxphy_set_hdmi_mode_for_cable()
539 rk628_i2c_read(rk628, COMBRX_REG(0x66b4), &data_a); in rk628_combrxphy_set_hdmi_mode_for_cable()
540 rk628_i2c_read(rk628, COMBRX_REG(0x66b8), &data_b); in rk628_combrxphy_set_hdmi_mode_for_cable()
542 if (((data_a & 0x00ff00ff) == 0x00ff00ff) && in rk628_combrxphy_set_hdmi_mode_for_cable()
543 ((data_b & 0xff) == 0xff)) { in rk628_combrxphy_set_hdmi_mode_for_cable()
551 ret = 0; in rk628_combrxphy_set_hdmi_mode_for_cable()
552 } else if (count > 0) { in rk628_combrxphy_set_hdmi_mode_for_cable()
554 ret = 0; in rk628_combrxphy_set_hdmi_mode_for_cable()
570 f = f & 0x7fffffff; in rk628_rxphy_power_on()
577 rk628_i2c_update_bits(rk628, COMBRX_REG(0x6630), BIT(0), BIT(0)); in rk628_rxphy_power_off()
581 return 0; in rk628_rxphy_power_off()