Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

The purpose of this page is to describe the Linux V4L2 driver for the Xilinx DisplayPort 1.4 RX Subsystem Soft IP for Zynq UltraScale+ MPSoC and for Versal.

Note: The content of this page is applicable for the 2022.1 release. A few steps for building the kernel or taking sources from Git might be different for previous releases before 2022.1.

Table of Contents

Table of Contents
excludeTable of Contents

Introduction

The DisplayPort (DP) 1.4 Receiver Subsystem is a plug-in solution for serial digital video data reception in large Video systems of up to video resolutions of Full Ultra HD (FUHD) at 30 fps.


It has the dynamic support of BPC (Bits per pixel) and different color formats. DisplayPort ( DP) 1.4 core supports 4 data lanes and each lane supports dynamic data rate up to 8.1Gb/s. It is a feature-rich soft IP incorporating all the necessary logic to properly interface with PHY layers and provide DP decoding functionality. The subsystem is a hierarchical IP that bundles a collection of DP RX-related IP sub-cores and outputs them as a single IP. The subsystem outputs multi-pixel video to AXI4-Stream Protocol interface. Below is the block diagram of the DisplayPort 1.4 Rx Subsystem.


Figure 1. Block diagram of the DisplayPort 1.4 Rx subsystem

DP Rx interface with Video PHY Controller for Zynq UltraScale+ MPSoC


The DP 1.4 Receiver Subsystem is a MAC subsystem which works with a Video PHY Controller (PHY) to create a video connectivity system. The DP 1.4 Receiver Subsystem is tightly coupled with the Xilinx Video PHY Controller, which itself is independent and offers flexible architecture with multiple-protocol support. Both the MAC and PHY are dynamically programmable through the AXI4-Lite interface.
Linux driver mentioned in this page only supports GTHE4 transreceiver.

Figure 2. Block diagram of MAC interface with PHY for Zynq

DP Rx interface with GT Quad base Controller for Versal

The DP 1.4 Receiver Subsystem is a MAC subsystem which works with a GT Quad Base Controller (PHY) to create a video connectivity system. The DP 1.4 Receiver Subsystem is tightly coupled with the Xilinx PHY Controller, which itself is independent and offers flexible architecture with multiple-protocol support. Both the MAC and PHY are dynamically programmable through the AXI4-Lite interface.

Figure 3. Block diagram of MAC interface with PHY for Versal

...

2020.2 : https://github.com/XilinxDocumentation/devicetree/bindings/media/xilinx/xlnx,v-dprxss.yaml - Deprecated 

2021.1 : Documentation/devicetree/bindings/media/xilinx/xlnx,v-dprxss.yaml - Deprecated 

2021.2 : Documentation/devicetree/bindings/media/xilinx/xlnx,v-dprxss.yaml - Deprecated 

2022.1 : Documentation  Documentation/devicetree/bindings/displaymedia/xlnxxilinx/xlnx,dpv-txdprxss.yaml

2023.2 Documentation/devicetree/bindings/media/xilinx/xlnx,v-dprxss.yaml

2024.1 Documentation/devicetree/bindings/media/xilinx/xlnx,v-dprxss.yaml

Building Driver Modules in OSL flow

Note: The below steps are applicable for building images for 2020.1. These steps are deprecated. Customers are advised to use 2022.1 onwards drivers and the device tree.

...

  • 2023.1
    • Summary:
      • 4a511ba v4l: xilinx: dprx: Correct the XDPRX_HPD_INTR_MASK macro bit mask value
      • 650d180 v4l: xilinx: dprx: Add check for status1 in irq_handler
      • 5ad0c90 v4l2: xilinx: dprx: Move the interrupt handlers to workqueue
  •  2022.2
    • Summary:
      •  d7d99e0v4l: xilinx: dprx: Fix dtg enable register update
      • cfdc4cd v4l: xilinx: dprx: Add support for static HDR
      • 66853f8  v4l: xilinx: dprx: Enable audio to receive infoframes with static HDR…
      • 47ba8cf  v4l: xilinx: dprx: Fix compilation error
      • 9b6c5df  v4l: xilinx: dprx: Add HDCP1X support
  •  2022.1
    • Summary:
      • f2e88a581130 v4l: xilinx: dprxss: Add support for Versal
      • 9b62852ec04b Merge tag 'v5.15' into master
      • 986aca58b142 v4l: xilinx: dprx: Disable unplug interrupt when RX is disconnected
      • f6d1241bb3c4 v4l: xilinx: dprx: Fix typo in macro
      • a83d69b2d8e2 v4l: xilinx: dprx: Generate HPD interrupt in unplug handler
      • 535e3c204208 v4l: xilinx: dprx: Disable audio when training is lost
      • 7e01e94bf687 v4l: xilinx: dprx: Correct the DTG disable sequence
      • f0462a9ebeae v4l: xilinx: dprx: Update max linkrate to extended capability registers
      • 1241f0ac2c23 v4l: xilinx: dprx: Set default CDR timeout value
      • 8ebfdae0ac5e v4l: xilinx: dprx: Enable training timeout
      • caf59ff90799 v4l: xilinx: dprxss: Add changes to get gt_quad_base as phy handle
      • 5f68e6129b68 v4l: xilinx: dprx: Align kernel-doc description
      • 94c6af3e9c95 v4l: xilinx: dprx: Call retimer reset functions
      • 40653103453e v4l: xilinx: dprx: Reset the retimer dp data path
      • be37b4278bb3 v4l: xilinx: dprx: Fix TP2 macro
      • d534ae1bf76f v4l: xilinx: dprx: Implement access laneset and tp2 interrupt handlers
      • 647c103aaa52 v4l: xilinx: dprx: Implement prbs7 mode enable in retimer
      • 9f2b813b6fc2 v4l: xilinx: dprx: Implement prbs7 mode enable in video phy
      • 96feaf25679d v4l: xilinx: dprx: Enable training related interrupts in unplug handler
      • f63eb4c6a2fd v4l: xilinx: dprx: Enable audio interrupts in no video handler
      • 001e0c6bf4f9 v4l: xilinx: dprx: Enable or disable INTERRUPT_CAUSE_1 interrupts
      • 70f52b12363f v4l: xilinx: dprx: Add support for 8k 25fps resolution
      • 5ff7cd8defe1 v4l: xilinx: dprx: Update video timings information
      • 50fc7aacbe25 v4l: xilinx: dprx: Add MMCM configuration for rx_dec_clk for versal systems
      • 7628155 v4l: xilinx: dprx: Add unplug handler function in work queue
  •  2021.2

...