int hdmi_in1_calibrate_delays(void) { hdmi_in1_data0_cap_dly_ctl_write(DVISAMPLER_DELAY_MASTER_CAL|DVISAMPLER_DELAY_SLAVE_CAL); hdmi_in1_data1_cap_dly_ctl_write(DVISAMPLER_DELAY_MASTER_CAL|DVISAMPLER_DELAY_SLAVE_CAL); hdmi_in1_data2_cap_dly_ctl_write(DVISAMPLER_DELAY_MASTER_CAL|DVISAMPLER_DELAY_SLAVE_CAL); if(!wait_idelays()) return 0; hdmi_in1_data0_cap_dly_ctl_write(DVISAMPLER_DELAY_MASTER_RST|DVISAMPLER_DELAY_SLAVE_RST); hdmi_in1_data1_cap_dly_ctl_write(DVISAMPLER_DELAY_MASTER_RST|DVISAMPLER_DELAY_SLAVE_RST); hdmi_in1_data2_cap_dly_ctl_write(DVISAMPLER_DELAY_MASTER_RST|DVISAMPLER_DELAY_SLAVE_RST); hdmi_in1_data0_cap_phase_reset_write(1); hdmi_in1_data1_cap_phase_reset_write(1); hdmi_in1_data2_cap_phase_reset_write(1); hdmi_in1_d0 = hdmi_in1_d1 = hdmi_in1_d2 = 0; return 1; }
int dvisampler_calibrate_delays(void) { dvisampler_data0_cap_dly_ctl_write(DVISAMPLER_DELAY_MASTER_CAL|DVISAMPLER_DELAY_SLAVE_CAL); dvisampler_data1_cap_dly_ctl_write(DVISAMPLER_DELAY_MASTER_CAL|DVISAMPLER_DELAY_SLAVE_CAL); dvisampler_data2_cap_dly_ctl_write(DVISAMPLER_DELAY_MASTER_CAL|DVISAMPLER_DELAY_SLAVE_CAL); if(!wait_idelays()) return 0; dvisampler_data0_cap_dly_ctl_write(DVISAMPLER_DELAY_MASTER_RST|DVISAMPLER_DELAY_SLAVE_RST); dvisampler_data1_cap_dly_ctl_write(DVISAMPLER_DELAY_MASTER_RST|DVISAMPLER_DELAY_SLAVE_RST); dvisampler_data2_cap_dly_ctl_write(DVISAMPLER_DELAY_MASTER_RST|DVISAMPLER_DELAY_SLAVE_RST); dvisampler_data0_cap_phase_reset_write(1); dvisampler_data1_cap_phase_reset_write(1); dvisampler_data2_cap_phase_reset_write(1); dvisampler_d0 = dvisampler_d1 = dvisampler_d2 = 0; return 1; }
int hdmi_in1_adjust_phase(void) { switch(hdmi_in1_data0_cap_phase_read()) { case DVISAMPLER_TOO_LATE: hdmi_in1_data0_cap_dly_ctl_write(DVISAMPLER_DELAY_DEC); if(!wait_idelays()) return 0; hdmi_in1_d0--; hdmi_in1_data0_cap_phase_reset_write(1); break; case DVISAMPLER_TOO_EARLY: hdmi_in1_data0_cap_dly_ctl_write(DVISAMPLER_DELAY_INC); if(!wait_idelays()) return 0; hdmi_in1_d0++; hdmi_in1_data0_cap_phase_reset_write(1); break; } switch(hdmi_in1_data1_cap_phase_read()) { case DVISAMPLER_TOO_LATE: hdmi_in1_data1_cap_dly_ctl_write(DVISAMPLER_DELAY_DEC); if(!wait_idelays()) return 0; hdmi_in1_d1--; hdmi_in1_data1_cap_phase_reset_write(1); break; case DVISAMPLER_TOO_EARLY: hdmi_in1_data1_cap_dly_ctl_write(DVISAMPLER_DELAY_INC); if(!wait_idelays()) return 0; hdmi_in1_d1++; hdmi_in1_data1_cap_phase_reset_write(1); break; } switch(hdmi_in1_data2_cap_phase_read()) { case DVISAMPLER_TOO_LATE: hdmi_in1_data2_cap_dly_ctl_write(DVISAMPLER_DELAY_DEC); if(!wait_idelays()) return 0; hdmi_in1_d2--; hdmi_in1_data2_cap_phase_reset_write(1); break; case DVISAMPLER_TOO_EARLY: hdmi_in1_data2_cap_dly_ctl_write(DVISAMPLER_DELAY_INC); if(!wait_idelays()) return 0; hdmi_in1_d2++; hdmi_in1_data2_cap_phase_reset_write(1); break; } return 1; }