The purpose of this page is to describe the Linux i2c client driver for DP159 Retimer device


The SNx5DP159 device is a dual modeDisplayPort to transition-minimized differential signal (TMDS) retimer supporting digital video interface (DVI) 1.0 and high-definition multimedia interface (HDMI) 1.4b and 2.0 output signals. The SNx5DP159 device supports the dual mode standard version 1.1 type 1 and type 2 through the DDC link or AUX channel. The SNx5DP159 device supports data rate up to 6-Gbps per data lane to support Ultra HD (4K × 2K / 60-Hz) 8-bits per color high-resolution video and HDTV with 16-bit color depth at 1080p (1920 × 1080 / 60-Hz).

Driver Overview

DP159 driver is added as a Linux Kernel mode I2C client driver that is a virtual Common Clock Framework (CCF) clock producer. This clock can be obtained and set by any consuming driver, and in Xilinx’s case, the HDMI Tx driver requests the TX line rate from the VPHY and steers the DP159.

User can easily configure the connection between the HDMI Tx driver and (any) retimer Linux driver through the device tree and thus there is no hard-dependency on the DP159. Since this driver does not conform to any particular in-kernel framework therefore is added to the miscellaneous folder of the kernel.

Known Issues and Limitations

  • Not a comprehensive DP159 driver. Only API’s required to support Xilinx HDMI Tx use-case(s) are implemented at this time.
  • Driver does not conform to Linux coding guidelines and is being released as early-access. Consequently driver files will be located in staging area until further notice

Kernel Configuration Options for Driver

2018.1: CONFIG_COMMON_CLK and CONFIG_I2C should be enabled
Driver is added as an out-of-tree kernel module and therefore requires no driver specific kernel configuration However to enable the driver user must include it in the rootfs. Following steps are required enable the driver
  • Make sure the meta-user layer has the recipe-hdmi included
  • Add the recipe to petalinux image. Edit ./meta-user/recipes-core/images/petalinux-image.bbappend and add the new recipe at the end

IMAGE_INSTALL_append = " kernel-module-hdmi"
  • Next include the driver in the rootfs
% petalinux-config –c rootfs
  • Select "user-pakages->modules->kernel-module-hdmi", save and exit
  • Build the project

2017.3: Driver is added in-kernel and can be enabled via following configuration options

Device Tree Binding

The dts node should be defined with correct hardware configuration. How to define the node is documented in
2018.1: Documentation/devicetree/bindings/ti,dp159.txt
2017.3: Documentation/devicetree/bindings/misc/ti,dp159.txt

Boards Supported

Driver has been tested on following boards
  • zcu102 Rev 1.0
  • Zcu106 Rev C

Related Links