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?
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
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?