MCDP6000 Retimer driver callback implementation:

Linux Drivers

Release Date
2023-07-22

The Xilinx solution expects the use of the MCDP6000 Retimer along with the DisplayPort 1.4 RX Subsystem solution. MCDP6000 as a retimer provides better SI features. As a retimer, the MCDP6000 removes the random and ISI jitter from the video source. For the Xilinx DisplayPort,  MCDP6000 configuration is controlled through an I2C interface. For a DisplayPort 1.4 solution, the MCDP6000 retimer chip is present on the FMC card and the driver for this chip is developed as a part of FMC driver.

Because the DisplayPort 1.4 Rx driver handles the required MCDP6000 configurations, DP 1.4 Rx driver needs register the callback functions of the FMC driver. These functions will be called from the DP 1.4 Rx Driver interrupt context. Below are driver and device tree changes to achieve this callback mechanism.

  • Add reference to the FMC node in the DP 1.4 RX Device tree node. Below is an example.
dp_rx_hier_0_v_dp_rxss1_0: v_dp_rxss1@a0040000 {
                         clock-names = "s_axi_aclk", "rx_vid_clk", "m_axis_aclk_stream1", "rx_lnk_clk", "m_aud_axis_aclk";
                         clocks = <&zynqmp_clk 71>, <&zynqmp_clk 72>, <&zynqmp_clk 72>, <&misc_clk_1>, <&zynqmp_clk 71>;
                         compatible = "xlnx,v-dp-rxss-3.0","xlnx,vid-edid-1.0";
                         interrupt-names = "dprxss_dp_irq";
                         interrupt-parent = <&gic>;
                         interrupts = <0 89 4>;
                         reg = <0x0 0xa0040000 0x0 0x40000>,<0x0 0xa0010000 0x0 0x10000>;
                         reg-names = "dp_base", "edid_base";
                         xlnx,dp-retimer = <&xfmc>;
						 -----------
						 -----------
						 ------------
};
  • Implement Retimer configuration structure in the DP 1.4 Rx driver

  • Assign the FMC driver private data pointer to the DP 1.4 Rx driver member pointer

  • The DP 1.4 Rx drive will use the xdprxss→retimer_prvdata pointer to call the FMC driver callbacks.  For more information, see DP 1.4 Rx Linux driver.