We're currently working on enabling an LVDS display in L5.15.52 for an IMX8MP board. We followed a guide on the NXP community website (https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/Add-i-MX8MP-LVDS-driver-in-uboot/ta-p/14...), but we're using an LVDS panel instead of an LVDS to HDMI bridge. Consequently, we made some modifications to the U-Boot device tree files and added the panel as a simple panel.
The driver works and print the following in uboot,
[*]-Video Link 0 (1280 x 800)
[0] lcd-controller@32e90000, video
[1] lvds-channel@0, display
[2] lvds-panel, panel
The questions is that there is no data from the LVDS port, I mean there are 4 data lines and 1 clk line on the LVDS cahnnel 0, the clk has 74M, data 0 and data 1 keep high, data 2 and data 3 has some data(I measured the results using an oscilloscope. I attached one picture to show that).
I can confirm that the hardware is ok as the kernel can display LVDS well.
can you help check what happen?
I use simple-panel as panel driver, and the following dts,
backlight: backlight {
compatible = "pwm-backlight";
pwms = <&pwm1 0 50000>; /* period = 5000000 ns => f = 200 Hz */
brightness-levels = <0 100>;
num-interpolated-steps = <100>;
default-brightness-level = <100>;
status = "okay";
};
lvds_panel: lvds-panel {
compatible = "simple-panel";
backlight = <&backlight>;
display-timings {
native-mode = <&timing0>;
timing0: timing0 {
clock-frequency = <71100000>;
hactive = <1280>;
vactive = <800>;
hback-porch = <40>;
hfront-porch = <40>;
vback-porch = <3>;
vfront-porch = <10>;
hsync-len = <80>;
vsync-len = <10>;
};
};
port {
panel_lvds_in: endpoint {
remote-endpoint = <&lvds_out>;
};
};
};
&lcdif2 {
status = "okay";
};
&ldb_phy {
status = "okay";
};
&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 = <&panel_lvds_in>;
};
};
};
};