LVDS on IMX8MP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

LVDS on IMX8MP

1,437 Views
SanthoshRajavel
Contributor II

I am new to Yocto and the i.MX8M Plus platform. I need to enable the LVDS port in my Yocto build, but I couldn’t find a clear reference on how to do this. Could you please suggest where I should start and share any relevant links or documentation for enabling LVDS?

I am using the i.MX8M Plus LPDDR4 EVK and Yocto Scarthgap.

0 Kudos
Reply
4 Replies

1,355 Views
SanthoshRajavel
Contributor II

This is my error after change my dtb file 
root@imx8mp-lpddr4-evk:~# dmesg | grep -E "ldb|panel|lcdif3"
[ 0.090951] platform panel-lvds: Fixed dependency cycle(s) with /ldb-display- controller/lvds-channel@0
[ 1.605694] panel-lvds panel-lvds: /panel-lvds: problems parsing panel-timing (-22)
[ 1.613391] panel-lvds: probe of panel-lvds failed with error -22
[ 1.630510] imx8mp-ldb ldb-display-controller: Failed to create device link ( 0x180) with 32e90000.lcd-controller
[ 2.659304] imx8mp-ldb ldb-display-controller: Failed to create device link ( 0x180) with phy-lvds

 

0 Kudos
Reply

1,356 Views
SanthoshRajavel
Contributor II

Now i create a custom dts for to enable lvds channel 0 only but i didn't get any positive response . I attach my code can you help me to find the problem. Also attach my display config details.Media (2).jpgMedia (2).jpg

My code 

// SPDX-License-Identifier: GPL-2.0+
/*
* Custom LVDS panel: 800x480 @ 60Hz
* Timing source: User-provided Datasheet Table
*/

#include "imx8mp-evk.dts"

/ {
model = "NXP i.MX8M Plus EVK - 800x480 LVDS";
compatible = "fsl,imx8mp-evk", "fsl,imx8mp";

panel_lvds: panel-lvds {
compatible = "panel-lvds";
status = "okay";
data-mapping = "jeida-24";

panel-timing {
/* DCLK frequency: 25.005 MHz (from Typ. value) */
clock-frequency = <25005000>;
hactive = <800>; /* thd */
vactive = <480>; /* tvd */

/* Horizontal (th): Typ total 858, using values in Min-Max range */
hfront-porch = <28>; /* Adjusted for th total stability */
hsync-len = <10>; /* thpw (Range 6-14) */
hback-porch = <20>; /* thbp (Range 14-34) */

/* Vertical (tv): Typ total 488, using values in Min-Max range */
vfront-porch = <5>; /* ttvfp (Range 5-41) */
vsync-len = <2>; /* tvpw (Range 1-2) */
vback-porch = <1>; /* tvbp (Range 3-4, adjusted for tv total) */

/* Mandatory polarity flags for kernel 6.6 parser */
hsync-active = <0>;
vsync-active = <0>;
de-active = <1>;
pixelclk-active = <0>;
};

port {
panel_lvds_in: endpoint {
remote-endpoint = <&ldb_out>;
};
};
};
};

/* Remove base bridge to avoid resource conflicts */
/delete-node/ &lvds_bridge;

&ldb_phy {
status = "okay";
};

&ldb {
status = "okay";
/* Assign clocks to fix 'Failed to create device link' */
assigned-clocks = <&clk IMX8MP_VIDEO_PLL1_OUT>,
<&clk IMX8MP_CLK_MEDIA_LDB>,
<&clk IMX8MP_CLK_MEDIA_DISP2_PIX>;
assigned-clock-parents = <&clk IMX8MP_VIDEO_PLL1_BYPASS>,
<&clk IMX8MP_VIDEO_PLL1_OUT>,
<&clk IMX8MP_VIDEO_PLL1_OUT>;

lvds-channel@0 {
fsl,data-mapping = "jeida-24";
fsl,data-width = <24>;
status = "okay";

/* Clean and re-map the port to the panel */
/delete-node/ port@1;
port@1 {
reg = <1>;
ldb_out: endpoint {
remote-endpoint = <&panel_lvds_in>;
};
};
};
};

/* LCDIF3 is mandatory for LVDS on i.MX8MP */
&lcdif3 {
status = "okay";
};

&hdmi {
status = "disabled";
};

0 Kudos
Reply

1,388 Views
SanthoshRajavel
Contributor II

I have downloaded the BSP and created a custom Qt application, which is currently running successfully on HDMI. Now, I want to display the output through LVDS, but I am unable to find proper information on how to enable and configure the LVDS display in the BSP and Yocto build.

0 Kudos
Reply

1,407 Views
Bio_TICFSL
NXP TechSupport
NXP TechSupport

Hello,

Download the BSP from NXP:

https://www.nxp.com/design/design-center/software/embedded-software/i-mx-software/embedded-linux-for...

And follow the latest documentation version, in particula the Yocto user guide.

regards

0 Kudos
Reply