Verdin iMX8MM DSI to LVDS display adapter flickering

Hello,
I’ve been trying to implement display in our design.
I connected DSI to LVDS adapter (rev 1.1) to development board (v1.1A) and connected Verdin iMX8MM SoM (V1.1B).
I’ve flashed newest image using Easy Installer, this is the uname output:

Linux verdin-imx8mm-06899291 5.4.154-5.5.0+git.c65f1622951c ....

Then configured overlays.txt to load all the neccessary overlays as described in Device tree overlays wiki:

touch-atmel-mxt_overlay.dtbo verdin-imx8mm_sn65dsi84-lt170410_overlay.dtbo verdin-imx8mm_sn65dsi84_overlay.dtbo

This is serial output while booting:

Starting kernel ...

[    0.078941] No BMan portals available!
[    0.079503] No QMan portals available!
[    1.218139] imx_sec_dsim_drv 32e10000.mipi_dsi: Failed to attach bridge: 32e10000.mipi_dsi
[    1.226458] imx_sec_dsim_drv 32e10000.mipi_dsi: failed to bind sec dsim bridge: -517, retry 0
[    2.872659] imx6q-pcie 33800000.pcie: failed to initialize host
[    2.878594] imx6q-pcie 33800000.pcie: unable to add pcie port.
Starting version 244.5+
[    5.952971] debugfs: Directory '30020000.sai' with parent 'imx8mm-nau8822' already present!
[    6.133648] atmel_mxt_ts 3-004a: __mxt_read_reg: i2c transfer failed (-6)
[    6.165787] atmel_mxt_ts 3-004a: mxt_bootloader_read: i2c recv failed (-6)
[    6.177295] atmel_mxt_ts 3-004a: mxt_bootloader_read: i2c recv failed (-6)

After boot the display shows Torizon logo but the image constantly flickers (video attached).
When running container (portainer or chromium) the image still flickers.
Any ideas what should I try ?

Greetings @spasoye,

First of all, the LVDS display you are using here. Is this a Toradex display? Or is this some other LVDS display?

Best Regards,
Jeremias

Its not Toradex display, we are using Riverdi’s display .

Its not Toradex display, we are using Riverdi’s display .

This is the problem then. The instructions you followed are specifically to get the LVDS display Toardex sells working. The steps are similar for other LVDS displays, however a big difference is you need to supply your own display’s specific timings.

One of the overlays you applied was verdin-imx8mm_sn65dsi84-lt170410_overlay.dtbo. The source for this is here: verdin-imx8mm_sn65dsi84-lt170410_overlay.dts « overlays - device-tree-overlays.git - Sources for Device Tree Overlays

As you can see the overlay is applying various values that are specific to our display. You need to create a new overlay that has values that are specific to this Riverdi display. This is probably why you’re seeing flickering since you’re trying to use another display’s timing values for this display.

Best Regards,
Jeremias

Hey, thanks @jeremias.tx I’ve found timing table and managed to get display to work.
This is my dts if someone has the same problem:

// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/*
 * Copyright 2020-2021 Toradex
 */

// Verdin DSI to LVDS Adapter with connected LT170410 display (10 inch) with a
// resolution of 1280x800 pixel. Adapter and display can be ordered at Toradex.

/dts-v1/;
/plugin/;

/ {
	compatible = "toradex,verdin-imx8mm";
};

&lvds_ti_sn65dsi83 {
	ti,dsi-lanes = <4>;
	ti,height-mm = <136>;
	ti,lvds-bpp = <24>;
	ti,lvds-format = <8>;
	ti,width-mm = <217>;

	display-timings {
		native-mode = <&lvds_timing0>;

		lvds_timing0: lt170410_2whc {
			/*
			 * Take the minimum pixelclock as 71.1 MHz is
			 * not working on NXP i.MX 8M Mini
			 */
			clock-frequency = <68900000>;
			hactive = <1280 1280 1280>;			
			hfront-porch = <12 72 132>;	// Fix
			hback-porch = <88 88 88>;	// Fix
			hsync-len = <1 20 40>;	// Fix
			vactive = <800 800 800>;
			vfront-porch = <1 15 49>; // Fix
			vback-porch = <23 23 23>; // Fix
			vsync-len = <1 20 20>;    // Fix
			de-active = <1>;
			pixelclk-active = <0>;
		};
	};
};

Glad you were able to get your display working!