How to set up Riverdi 7″ MIPI display in Linux?

Testing and validating a MSI-DSI display(LCD driver EK79007AD3+EK73217BCGA) in Linux is possible with using a device tree overlay template.

A generic “simple-panel-dsi” driver available in the system kernel can be used in Linux to run most MIPI displays, which, thanks to the ability to assign an initialization sequence in the “panel-init-sequence” field, can be used to operate most displays without the need to prepare a dedicated driver. Such a solution makes it possible to quickly reconfigure the display, without having to compile the entire system kernel each time – changing timing parameters or initialization code is possible by conveniently recompiling DeviceTree files. The following is an excerpt from the DeviceTree description related to the addition of display support:

&dsi0 {

status = “okay”;

mipi_panel: mipi-panel {

compatible = “simple-panel-dsi”;

reg = <0>;

enable-gpios = <&gpio6 3 GPIO_ACTIVE_LOW>;

reset-gpios = <&gpio6 4 GPIO_ACTIVE_HIGH>;

bpc = <8>;

bus-format = <0x100a>;

width-mm = <154>;

height-mm = <85>;

prepare-delay-ms = <10>;

reset-delay-ms = <20>;

init-delay-ms = <120>;

dsi,flags = <(MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST | MIPI_DSI_MODE_LPM)>;

dsi,format = ;

dsi,lanes = <2>;

panel-init-sequence = [

15 00 02 87 5a

15 00 02 B2 10

15 00 02 80 4B

15 00 02 81 FF

15 00 02 82 1A

15 00 02 83 88

15 00 02 84 8F

15 00 02 85 35

15 00 02 86 B0

05 00 01 21

];

display-timings {

native-mode = <&timing2>;

timing2: timing2 {

clock-frequency = <33000000>; //dclk

hactive = <1024>; //hactive

vactive = <600>; //vactive

hfront-porch = <60>; //hfp

hback-porch = <60>; //hbp

hsync-len = <10>; //hsa

vfront-porch = <5>; //vfp

vsync-len = <2>; //vsa

vback-porch = <10>; //vbp

hsync-active = <0>; //hync active control

vsync-active = <0>; //vsync active control

de-active = <1>; //den active control

pixelclk-active = <0>; //dclk active control

};

};

};

};

The above description should be adapted to the DeviceTree description used in your system, as well as the display types (timing parameters and initialization sequence – if needed). In addition, be sure to enable the driver in the system kernel.

Go to Top