LVDS on IMX8MP

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

LVDS on IMX8MP

1,204 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,122 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,123 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).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,155 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,174 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
%3CLINGO-SUB%20id%3D%22lingo-sub-2301355%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ELVDS%20on%20IMX8MP%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2301355%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EI%20am%20new%20to%20Yocto%20and%20the%20i.MX8M%20Plus%20platform.%20I%20need%20to%20enable%20the%20LVDS%20port%20in%20my%20Yocto%20build%2C%20but%20I%20couldn%E2%80%99t%20find%20a%20clear%20reference%20on%20how%20to%20do%20this.%20Could%20you%20please%20suggest%20where%20I%20should%20start%20and%20share%20any%20relevant%20links%20or%20documentation%20for%20enabling%20LVDS%3F%3C%2FP%3E%3CP%3EI%20am%20using%20the%20i.MX8M%20Plus%20LPDDR4%20EVK%20and%20Yocto%20%3CSTRONG%3EScarthgap%3C%2FSTRONG%3E.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-2301355%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CLINGO-LABEL%3EGraphics%20%26amp%3B%20Display%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3Ei.MX%208%20Family%20%7C%20i.MX%208QuadMax%20(8QM)%20%7C%208QuadPlus%3C%2FLINGO-LABEL%3E%3CLINGO-LABEL%3Ei.MX%208M%20%7C%20i.MX%208M%20Mini%20%7C%20i.MX%208M%20Nano%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2301814%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20LVDS%20on%20IMX8MP%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2301814%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EI%20have%20downloaded%20the%20BSP%20and%20created%20a%20custom%20Qt%20application%2C%20which%20is%20currently%20running%20successfully%20on%20HDMI.%20Now%2C%20I%20want%20to%20display%20the%20output%20through%20LVDS%2C%20but%20I%20am%20unable%20to%20find%20proper%20information%20on%20how%20to%20enable%20and%20configure%20the%20LVDS%20display%20in%20the%20BSP%20and%20Yocto%20build.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2301514%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20LVDS%20on%20IMX8MP%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2301514%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EHello%2C%3C%2FP%3E%0A%3CP%3EDownload%20the%20BSP%20from%20NXP%3A%3C%2FP%3E%0A%3CP%3E%3CA%20href%3D%22https%3A%2F%2Fwww.nxp.com%2Fdesign%2Fdesign-center%2Fsoftware%2Fembedded-software%2Fi-mx-software%2Fembedded-linux-for-i-mx-applications-processors%3AIMXLINUX%22%20target%3D%22_blank%22%20rel%3D%22nofollow%20noopener%20noreferrer%22%3Ehttps%3A%2F%2Fwww.nxp.com%2Fdesign%2Fdesign-center%2Fsoftware%2Fembedded-software%2Fi-mx-software%2Fembedded-linux-for-i-mx-applications-processors%3AIMXLINUX%3C%2FA%3E%3C%2FP%3E%0A%3CP%3EAnd%20follow%20the%20latest%20documentation%20version%2C%20in%20particula%20the%20Yocto%20user%20guide.%3C%2FP%3E%0A%3CP%3Eregards%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2303039%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20LVDS%20on%20IMX8MP%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2303039%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EThis%20is%20my%20error%20after%20change%20my%20dtb%20file%26nbsp%3B%3CBR%20%2F%3Eroot%40imx8mp-lpddr4-evk%3A~%23%20dmesg%20%7C%20grep%20-E%20%22ldb%7Cpanel%7Clcdif3%22%3CBR%20%2F%3E%5B%200.090951%5D%20platform%20panel-lvds%3A%20Fixed%20dependency%20cycle(s)%20with%20%2Fldb-display-%20controller%2Flvds-channel%400%3CBR%20%2F%3E%5B%201.605694%5D%20panel-lvds%20panel-lvds%3A%20%2Fpanel-lvds%3A%20problems%20parsing%20panel-timing%20(-22)%3CBR%20%2F%3E%5B%201.613391%5D%20panel-lvds%3A%20probe%20of%20panel-lvds%20failed%20with%20error%20-22%3CBR%20%2F%3E%5B%201.630510%5D%20imx8mp-ldb%20ldb-display-controller%3A%20Failed%20to%20create%20device%20link%20(%200x180)%20with%2032e90000.lcd-controller%3CBR%20%2F%3E%5B%202.659304%5D%20imx8mp-ldb%20ldb-display-controller%3A%20Failed%20to%20create%20device%20link%20(%200x180)%20with%20phy-lvds%3CBR%20%2F%3E%3CBR%20%2F%3E%3C%2FP%3E%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2303037%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20LVDS%20on%20IMX8MP%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2303037%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3ENow%20i%20create%20a%20custom%20dts%20for%20to%20enable%20lvds%20channel%200%20only%20but%20i%20didn't%20get%20any%20positive%20response%20.%20I%20attach%20my%20code%20can%20you%20help%20me%20to%20find%20the%20problem.%20Also%20attach%20my%20display%20config%20details.%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22Media%20(2).jpg%22%20style%3D%22width%3A%20862px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22Media%20(2).jpg%22%20style%3D%22width%3A%20862px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F374811i35165387584C8FE8%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22Media%20(2).jpg%22%20alt%3D%22Media%20(2).jpg%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3CBR%20%2F%3E%3CBR%20%2F%3EMy%20code%26nbsp%3B%3C%2FP%3E%3CP%3E%2F%2F%20SPDX-License-Identifier%3A%20GPL-2.0%2B%3CBR%20%2F%3E%2F*%3CBR%20%2F%3E*%20Custom%20LVDS%20panel%3A%20800x480%20%40%2060Hz%3CBR%20%2F%3E*%20Timing%20source%3A%20User-provided%20Datasheet%20Table%3CBR%20%2F%3E*%2F%3C%2FP%3E%3CP%3E%23include%20%22imx8mp-evk.dts%22%3C%2FP%3E%3CP%3E%2F%20%7B%3CBR%20%2F%3Emodel%20%3D%20%22NXP%20i.MX8M%20Plus%20EVK%20-%20800x480%20LVDS%22%3B%3CBR%20%2F%3Ecompatible%20%3D%20%22fsl%2Cimx8mp-evk%22%2C%20%22fsl%2Cimx8mp%22%3B%3C%2FP%3E%3CP%3Epanel_lvds%3A%20panel-lvds%20%7B%3CBR%20%2F%3Ecompatible%20%3D%20%22panel-lvds%22%3B%3CBR%20%2F%3Estatus%20%3D%20%22okay%22%3B%3CBR%20%2F%3Edata-mapping%20%3D%20%22jeida-24%22%3B%3C%2FP%3E%3CP%3Epanel-timing%20%7B%3CBR%20%2F%3E%2F*%20DCLK%20frequency%3A%2025.005%20MHz%20(from%20Typ.%20value)%20*%2F%3CBR%20%2F%3Eclock-frequency%20%3D%20%26lt%3B25005000%26gt%3B%3B%3CBR%20%2F%3Ehactive%20%3D%20%26lt%3B800%26gt%3B%3B%20%2F*%20thd%20*%2F%3CBR%20%2F%3Evactive%20%3D%20%26lt%3B480%26gt%3B%3B%20%2F*%20tvd%20*%2F%3CBR%20%2F%3E%3CBR%20%2F%3E%2F*%20Horizontal%20(th)%3A%20Typ%20total%20858%2C%20using%20values%20in%20Min-Max%20range%20*%2F%3CBR%20%2F%3Ehfront-porch%20%3D%20%26lt%3B28%26gt%3B%3B%20%2F*%20Adjusted%20for%20th%20total%20stability%20*%2F%3CBR%20%2F%3Ehsync-len%20%3D%20%26lt%3B10%26gt%3B%3B%20%2F*%20thpw%20(Range%206-14)%20*%2F%3CBR%20%2F%3Ehback-porch%20%3D%20%26lt%3B20%26gt%3B%3B%20%2F*%20thbp%20(Range%2014-34)%20*%2F%3CBR%20%2F%3E%3CBR%20%2F%3E%2F*%20Vertical%20(tv)%3A%20Typ%20total%20488%2C%20using%20values%20in%20Min-Max%20range%20*%2F%3CBR%20%2F%3Evfront-porch%20%3D%20%26lt%3B5%26gt%3B%3B%20%2F*%20ttvfp%20(Range%205-41)%20*%2F%3CBR%20%2F%3Evsync-len%20%3D%20%26lt%3B2%26gt%3B%3B%20%2F*%20tvpw%20(Range%201-2)%20*%2F%3CBR%20%2F%3Evback-porch%20%3D%20%26lt%3B1%26gt%3B%3B%20%2F*%20tvbp%20(Range%203-4%2C%20adjusted%20for%20tv%20total)%20*%2F%3C%2FP%3E%3CP%3E%2F*%20Mandatory%20polarity%20flags%20for%20kernel%206.6%20parser%20*%2F%3CBR%20%2F%3Ehsync-active%20%3D%20%26lt%3B0%26gt%3B%3B%3CBR%20%2F%3Evsync-active%20%3D%20%26lt%3B0%26gt%3B%3B%3CBR%20%2F%3Ede-active%20%3D%20%26lt%3B1%26gt%3B%3B%3CBR%20%2F%3Epixelclk-active%20%3D%20%26lt%3B0%26gt%3B%3B%3CBR%20%2F%3E%7D%3B%3C%2FP%3E%3CP%3Eport%20%7B%3CBR%20%2F%3Epanel_lvds_in%3A%20endpoint%20%7B%3CBR%20%2F%3Eremote-endpoint%20%3D%20%26lt%3B%26amp%3Bldb_out%26gt%3B%3B%3CBR%20%2F%3E%7D%3B%3CBR%20%2F%3E%7D%3B%3CBR%20%2F%3E%7D%3B%3CBR%20%2F%3E%7D%3B%3C%2FP%3E%3CP%3E%2F*%20Remove%20base%20bridge%20to%20avoid%20resource%20conflicts%20*%2F%3CBR%20%2F%3E%2Fdelete-node%2F%20%26amp%3Blvds_bridge%3B%3C%2FP%3E%3CP%3E%26amp%3Bldb_phy%20%7B%3CBR%20%2F%3Estatus%20%3D%20%22okay%22%3B%3CBR%20%2F%3E%7D%3B%3C%2FP%3E%3CP%3E%26amp%3Bldb%20%7B%3CBR%20%2F%3Estatus%20%3D%20%22okay%22%3B%3CBR%20%2F%3E%2F*%20Assign%20clocks%20to%20fix%20'Failed%20to%20create%20device%20link'%20*%2F%3CBR%20%2F%3Eassigned-clocks%20%3D%20%26lt%3B%26amp%3Bclk%20IMX8MP_VIDEO_PLL1_OUT%26gt%3B%2C%3CBR%20%2F%3E%26lt%3B%26amp%3Bclk%20IMX8MP_CLK_MEDIA_LDB%26gt%3B%2C%3CBR%20%2F%3E%26lt%3B%26amp%3Bclk%20IMX8MP_CLK_MEDIA_DISP2_PIX%26gt%3B%3B%3CBR%20%2F%3Eassigned-clock-parents%20%3D%20%26lt%3B%26amp%3Bclk%20IMX8MP_VIDEO_PLL1_BYPASS%26gt%3B%2C%3CBR%20%2F%3E%26lt%3B%26amp%3Bclk%20IMX8MP_VIDEO_PLL1_OUT%26gt%3B%2C%3CBR%20%2F%3E%26lt%3B%26amp%3Bclk%20IMX8MP_VIDEO_PLL1_OUT%26gt%3B%3B%3C%2FP%3E%3CP%3Elvds-channel%400%20%7B%3CBR%20%2F%3Efsl%2Cdata-mapping%20%3D%20%22jeida-24%22%3B%3CBR%20%2F%3Efsl%2Cdata-width%20%3D%20%26lt%3B24%26gt%3B%3B%3CBR%20%2F%3Estatus%20%3D%20%22okay%22%3B%3C%2FP%3E%3CP%3E%2F*%20Clean%20and%20re-map%20the%20port%20to%20the%20panel%20*%2F%3CBR%20%2F%3E%2Fdelete-node%2F%20port%401%3B%3CBR%20%2F%3Eport%401%20%7B%3CBR%20%2F%3Ereg%20%3D%20%26lt%3B1%26gt%3B%3B%3CBR%20%2F%3Eldb_out%3A%20endpoint%20%7B%3CBR%20%2F%3Eremote-endpoint%20%3D%20%26lt%3B%26amp%3Bpanel_lvds_in%26gt%3B%3B%3CBR%20%2F%3E%7D%3B%3CBR%20%2F%3E%7D%3B%3CBR%20%2F%3E%7D%3B%3CBR%20%2F%3E%7D%3B%3C%2FP%3E%3CP%3E%2F*%20LCDIF3%20is%20mandatory%20for%20LVDS%20on%20i.MX8MP%20*%2F%3CBR%20%2F%3E%26amp%3Blcdif3%20%7B%3CBR%20%2F%3Estatus%20%3D%20%22okay%22%3B%3CBR%20%2F%3E%7D%3B%3C%2FP%3E%3CP%3E%26amp%3Bhdmi%20%7B%3CBR%20%2F%3Estatus%20%3D%20%22disabled%22%3B%3CBR%20%2F%3E%7D%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E