IMX8MP LVDS does not work

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

IMX8MP LVDS does not work

1,170 Views
koo_sensei
Contributor II

Hello.

I'm trying to work with mistubishi LVDS panel directly connected to LVDS of i.MX8m PLUS.   
I'm working with custom board but it is based on imx8mp evk.

I refered to imx8mp-evk-jdi-wuxga-lvds-panel.dts, so this is the .dts what I made.

/ {
	lvds0_panel {
        compatible = "panel-lvds";
	    backlight = <&lvds_backlight>;
		status = "okay";

		data-mapping = "jeida-24";
		width-mm = <160>;
		height-mm = <120>;

		panel-timing {
	                clock-frequency = <50000000>;
        	        hactive = <320>;
	                vactive = <240>;
        	        hback-porch = <65>;
	                hfront-porch = <65>;
        	        vback-porch = <14>;
                	vfront-porch = <3>;
	                hsync-len = <32>;
        	        vsync-len = <5>;
                	hsync-active = <0>;
	                vsync-active = <0>;
        	        de-active = <1>;
                	pixelclk-active = <0>;

	                power-on-delay = <40>;
        	        power-off-delay = <16>;
                	relax-delay = <1000>;
		};

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


&lcdif1 {
	status = "okay";
};

&lcdif2 {
	status = "okay";
};

&lcdif3 {
	status = "okay";

	thres-low  = <1 2>;             /* (FIFO * 1 / 2) */
	thres-high =  4>;             /* (FIFO * 3 / 4) */
};

&ldb_phy {
	status = "okay";
};

&ldb {
	status = "okay";
	fsl,dual-channel;

        lvds-channel@0 {
                fsl,data-mapping = "spwg";
		status = "okay";

		/delete-node/ port@1;

                port@1 {
                        reg = <1>;

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

 

And according to dmesg log, panel-lvds probe completed. as I know, there should be the file something like /sys/class/drm/card1-LVDS-1, but there's file list of /sys/class/drm/ in my situation is pretty different.

root@imx8mpevk:/sys/class/drm# ls
card0 renderD128 version

 

So, when I excute 'weston-flower' after weston-start, there's errors that says cannot find display.

root@imx8mpevk:~# weston-start
root@imx8mpevk:~# weston-flower
failed to connect to Wayland display: No such file or directory
failed to create display: No such file or directory

 

I read many of NXP community articles that similar of my case, but any of them was not helpful.

Can I get any clue of this situation?

Tags (1)
2 Replies

1,123 Views
Zhiming_Liu
NXP TechSupport
NXP TechSupport

The lvds driver isn't probed correctly.

For single channel panel, the dts node should like below.

&ldb {
	status = "okay";

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

		port@1 {
			reg = <1>;

			lvds_out: endpoint {
				remote-endpoint = <&xxxxx>;
			};
		};
	};
};

 You should confirm the pixel format, jeida or spwg in panel-lvds

Qmiller_0-1684204146649.png

 

0 Kudos
Reply

1,113 Views
koo_sensei
Contributor II

Dear @Zhiming_Liu .

I did you advised, but it does not work.

I'm using Kernel 5.4.70, and I checked some source code below /drivers/gpu.

Properties like 'fsl,data-mapping' and 'fsl,data-width' are used in "of_get_bus_format()" in /drivers/gpu/drm/bridge/fsl-imx-ldb.c. I add printk msg in "of_get_bus_format()" function but I cannot find my printk msg at dmesg log.

And of_get_bus_format() functions is called by function binds ldb, but Kernel does not call this function.
I also checked imx8mp_ldb_bind() in drivers/gpu/imx/imx8mp-ldb.c, and I don't know why imx8mp_ldb_bind() does not called.

 

Can you advise how can I bind LDB interface in 5.4.70 Kernel?

0 Kudos
Reply