Hi everyone!
I am currently struggling with a LVDS display (Ampire model that I already use on IMX6 with success!).
My BSP (buildroot 2025.02 + NXP kernel 6) has been successfully tested with an HDMI display; 2D and 3D acceleration work fine with weston. I have therefore decided to switch to LVDS display and the main problem is that I am stuck on this error
"imx-drm display-subsystem: [drm] Cannot find any crtc or sizes"
that I can't resolve.
I attach my DTS snippet. pls take note that LVDS DRM display support is compiled built-in inside kernel.
reg_lvds_en: regulator_lvds_en {
compatible = "regulator-fixed";
regulator-name = "lvds_enable";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_lvds_enable>;
gpio = <&gpio1 6 GPIO_ACTIVE_HIGH>;
enable-active-high;
regulator-always-on;
status = "okay";
};
reg_vccbkl_en: regulator_vccbkl_en {
compatible = "regulator-fixed";
regulator-name = "vddbkl_enable";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_vccbkl_enable>;
gpio = <&gpio1 8 GPIO_ACTIVE_HIGH>;
enable-active-high;
regulator-always-on;
status = "okay";
};
lvds_backlight: lvds_backlight {
compatible = "pwm-backlight";
pwms = <&pwm1 0 100000 0>;
power-supply = <®_vccbkl_en>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_bkl_enable>;
enable-gpios = <&gpio1 9 GPIO_ACTIVE_HIGH>;
brightness-levels = < 0 1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19
20 21 22 23 24 25 26 27 28 29
30 31 32 33 34 35 36 37 38 39
40 41 42 43 44 45 46 47 48 49
50 51 52 53 54 55 56 57 58 59
60 61 62 63 64 65 66 67 68 69
70 71 72 73 74 75 76 77 78 79
80 81 82 83 84 85 86 87 88 89
90 91 92 93 94 95 96 97 98 99
100>;
default-brightness-level = <80>;
status = "okay";
};
panel_lvds: panel_lvds {
compatible = "panel-lvds";
power-supply = <®_lvds_en>;
backlight = <&lvds_backlight>;
width-mm = <153>;
height-mm = <90>;
label = "am1024600";
data-mapping = "jeida-18";
status = "okay";
panel-timing {
clock-frequency = <51200000>;
hactive = <1024>;
vactive = <600>;
hback-porch = <128>;
hfront-porch = <128>;
vback-porch = <15>;
vfront-porch = <30>;
hsync-len = <10>;
vsync-len = <2>;
de-active = <1>;
};
port {
panel_in: endpoint {
remote-endpoint = <&lvds_out>; // lvds_out
};
};
};
&lcdif1 {
status = "okay";
};
&lcdif2 {
status = "disabled";
};
&lcdif3 {
status = "disabled";
};
&ldb {
status = "okay";
phys = <&ldb_phy1>;
phy-names = "ldb-phy";
ports {
port@0 {
lvds_out: endpoint {
remote-endpoint = <&panel_in>;
};
};
};
};
&ldb_phy {
#phy-cells = <0>;
status = "okay";
};