Xilinx DRM KMS MIPI DSI2-Tx Driver


Table of Contents

The purpose of this page is to describe the Linux DRM KMS driver for Xilinx MIPI Digital Serial Interface 2 Transmitter subsystem (MIPI DSI2 Tx SS) soft IP.

Introduction

The Linux MIPI DSI2 Tx Subsystem driver (xlnx_dsi.c) is part of the Xilinx DRM KMS framework, and provides the encoder and connector functionality.

IP / Driver Features

IP Features2017.1 - 2019.12019.2 and above
IP Version2.02.0
Support 1 to 4 LanesYesYes
Input Pixels per clock 1 / 2 / 4

Yes

Yes

DSI Data Types

RGB888, RGB565, RGB666 L, RGB666 P, Compressed

Supports all except Compressed (DRM framework limitation)

Supports all except Compressed (DRM framework limitation)
Interrupt generation to indicate subsystem status informationNo

No

DCS(Display Command Set) command modeNoYes

Other supported features

The MIPI DSI-2 Tx Subsystem driver supports the following features -
  • Enable/Disable EoTp Generation
  • Send blanking packet/use LP mode for BLLP periods
  • Blanking packet type for BLLP region
  • Blanking Packet/Null Packet
  • Video mode transmission sequence
  • BLLP duration of VACT region packet
  • payload size in bytes(WC). Applicable only Burst mode
  • Write short packets with different data types to control the Panel. Refer Xilinx PG238.

Unsupported Features

  • Reading the DSI panel parameters from EDID
  • No interrupts are supported.

Kernel Configuration

CONFIG_DRM_XLNX_DSI should be enabled. This depends on CONFIG_DRM_XLNX and CONFIG_DRM

Device tree binding

The dts node should be defined with correct hardware configuration. How to define the node is documented here, xlnx,dsi.txt

Test Procedure

The IP has been tested for 1920x1200 RGB888 4 Lanes 2 pixels per clock along with Frame buffer Read and Video Mixer IP.


Xorg (X11) and Mali GPU

The MIPI DSI-2 Tx Subsystem can be used with Xorg and the Zynq UltraScale+ MPSoC Mali400 GPU.

Since Xorg works with AR24 DRM format (DRM_FORMAT_ARGB8888), please ensure that this is enabled/supported in Video Framebuffer ReadVideo_Mixer IP connected.

A user should enable the following packages in the PetaLinux Configuration to enable and test the GPU (Xilinx Arm Mali-400 Driver) acceleration:

  •  -> Filesystem Package -> libs -> libmali-xlnx
     -> Filesystem Package -> misc -> xf86-video-armsoc
     -> Filesystem Package -> x11 -> base -> xserver-org -> xserver-xorg-extension-glx
     -> Filesystem Package -> x11 -> mesa-demos

Steps to manually launch Xorg

Xorg clients look for the env variable to find corresponding server. Thus export before running clients from serial console.

Run OpenGL ES test applications.


Disable Xorg Timeouts:

The default settings for Xorg may cause the screen to go black after a 10 minute timeout.  The user can disable these in their xorg.conf file using the following.



xset can be used to change some settings.  The following can be used to change the power sate and force display on if a timeout occurs.

Power & Clock Management

There is no power down for the MIPI DSI IP. However the MIPI DSI IP clocks can be controlled using the Common Clock Framework.

Boards Supported

ZCU102 Rev 1.0

Known Issues

  • AR66769 - MIPI DSI TX Subsystem - Release Notes and Known Issues for the Vivado 2016.1 tool and later versions

Change log

2020.2

  • Summary
    • Added support to Generic long write command
  • Commits
    • d61300 drm: xlnx: dsi: Add Generic long write command support

2020.1

  •  no changes

2019.2

  • Summary
    • Added support to DCS command mode
  • Commits
    • 5f0013 drm: xlnx: dsi: Add command mode support

2019.1

  • Summary
    • Added support for clock framework
    • Updated the drm property creation logic
  • Commits
    • 9d61db1 drm: xlnx: dsi: Fix the drm property creation

    • 3792d72 drm: xlnx: dsi: Add support for clock framework

    • 26a8a4d Merge tag 'v4.19' into master

2018.3

  • Summary
    • Disabling bridge when DSI is disabled
    • Fix a kernel panic when "halt" is run
  • Commits
    • 3a1266e drm: xlnx: dsi: Fix kernel panic when "halt" is run

    • b3314af drm: xlnx: dsi: Disable bridge instance

2018.2

  • Summary
    • No change 

2018.1

  • Summary
    • Added xlnx bridge support
    • Initial version based on new xlnx drm framework
      • Driver now moved to different drivers/gpu/drm/xlnx/xlns_dsi.c
      • Older driver drivers/gpu/drm/xilinx/xilinx_drm_dsi.c not supported.
  • Commits
    • a1a9719 drm: xlnx: dsi: Adding xlnx bridge support

    • 4d08c57 drm: xlnx: dsi: Adding dsi driver to new framework

2017.4

  • Summary
    • No changes

2017.3

  • Summary
    • Fix the Horizontal Active calculation
    • Other minor fixes
  • Commits
    • 3a49cee drm: xilinx: dsi: Fixes the Hact calculation
    • 00bf902 drm: xilinx: dsi: Fix for checkpatch
    • 33ab072 drm: xilinx: dsi: Don't check unsigned with negative
    • 434275c drm: xilinx: dsi: Add static and remove unused variable
    • 9db27d0 drm: xilinx: dsi: Add const for constant callback functions
    • 9c6f82c drm: xilinx: dsi: Change the documentation style

2017.2

  • Summary
    • No changes

2017.1

  • Summary
    • Initial version of driver added
  • Commits
    • 63b99c0 drm: xilinx: mipi: DRM/KMS driver for MIPI DSI2 Tx subsystem

Related Links