IMX8MP LVDS does not work

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

IMX8MP LVDS does not work

2,105 次查看
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?

标记 (1)
2 回复数

2,058 次查看
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 项奖励
回复

2,048 次查看
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 项奖励
回复