I am working with a 8MPLUSLPD4-EV building the OS stack with the latest Yocto Project meta-freescale layer (LAYERSERIES_COMPAT_freescale-layer = "whinlatter wrynose").
I am looking to use the IMX-LVDS-HDMI adapter board.
The default device tree imx8mp-evk.dts should correctly enable lvds-channel0 for use with this board and the it6263 chip. This is what is in the device tree file:
&ldb {
status = "okay";
lvds-channel@0 {
status = "okay";
port@1 {
reg = <1>;
lvds_out: endpoint {
remote-endpoint = <&it6263_in>;
};
};
};
};However, when I boot the board:
# dmesg | grep it6263
[ 2.998982] it6263 1-004c: Probe failed. Remote port 'lvds-channel@0' disabled
# cat /sys/firmware/devicetree/base/ldb-display-controller/lvds-channel\@0/status
disabled
# cat /sys/firmware/devicetree/base/ldb-display-controller/status
okayAlbeit the device tree explicitly enables lvds-channel@0 it is being disabled somewhere, although the ldb-display-controller itself is enabled.
The bootloader is u-boot-imx-2025.04. The source file arch/arm/mach-imx/imx8m/soc.c contains the function disable_lvds_lcdif_nodes() which disables the lvds channels by patching the device tree for certain variants of the SoC, namely: imx8mpul, imx8mpsc, imx8mpdsc.
I am wondering why this would happen on the 8MPLUSLPD4-EV as the SoC should be an imx8mp quad.
Hello,
I tried on my side with the pre-built image we have on the EVK, it is working correctly even I see that the port shows as okay
root@imx8mpevk:~# cat /sys/firmware/devicetree/base/ldb-display-controller/lvds-channel@0/status
okay
I'm building using yocto now just to verify as well, but pre-built is essentially the same so I do not expect a different result.
Best regards/Saludos,
Aldo.
Thank you, @AldoG. Much appreciated. Please let me know what you find.
I have decompiled the dtb and the node is enabled in the dtb:
ldb-display-controller {
#address-cells = <0x01>;
#size-cells = <0x00>;
compatible = "fsl,imx8mp-ldb";
clocks = <0x02 0x149>;
clock-names = "ldb";
assigned-clocks = <0x02 0xae>;
assigned-clock-parents = <0x02 0x28>;
gpr = <0x5d>;
power-domains = <0x63>;
status = "okay";
phandle = <0x11c>;
lvds-channel@0 {
#address-cells = <0x01>;
#size-cells = <0x00>;
reg = <0x00>;
phys = <0x8a>;
phy-names = "ldb_phy";
status = "okay";
port@0 {
reg = <0x00>;
endpoint {
remote-endpoint = <0x8b>;
phandle = <0x61>;
};
};
port@1 {
reg = <0x01>;
endpoint {
remote-endpoint = <0x8c>;
phandle = <0x36>;
};
};
};
lvds-channel@1 {
reg = <0x01>;
phys = <0x8d>;
phy-names = "ldb_phy";
status = "disabled";
port {
endpoint {
remote-endpoint = <0x8e>;
phandle = <0x62>;
};
};
};
};It seems that u-boot is changing the device tree. However, it is not clear to me why.
This is the YP build configuration:
Build Configuration:
BB_VERSION = "2.16.0"
BUILD_SYS = "x86_64-linux"
NATIVELSBSTRING = "universal"
TARGET_SYS = "aarch64-tdx-linux"
MACHINE = "imx8mp-lpddr4-evk"
SDKMACHINE = "x86_64"
DISTRO = "test"
DISTRO_VERSION = "0.0.0-devel-20260417002956+build.0"
TUNE_FEATURES = "aarch64 crc cortexa53 crypto"
meta-clang = "master:78c5e12f08198f4f257a9348516d2103cd617c1d"
meta-freescale = "master:4cc4bc05063f7f4c105587332493742379d11ad7"
meta-freescale-3rdparty = "master:29c36ae80ba5762091f48d6d15b637455cc15758"
meta-freescale-distro = "master:70b7591ecaa99cb6366f93ee05df7c38d94d724b"
meta-filesystems
meta-multimedia
meta-networking
meta-oe
meta-perl
meta-python = "master:44a29c54f9b6e87431e34de1558a962d0e614ef8"
meta-qt6 = "6.11:34ad7dbc591a5cf31f6d23799c339ba8985f1428"
meta-efi-secure-boot
meta-encrypted-storage
meta-ids
meta-integrity
meta-secure-core-common
meta-signing-key
meta-tpm2 = "master:a9c1ce8beea586ee6837284d922e45e4441f09f6"
meta-security
meta-poky
meta-yocto-bsp = "master:49cbb01d52521bfe557395c9ebfae6b1c162581e"
meta = "master:274ce0c0d73fd82b63c522580aed9dbac51ba09c"