Imx8qxp-mek LVDS display

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Imx8qxp-mek LVDS display

1,093 Views
MahdiMG
Contributor I

Hello,
We are using custom board of iMX8QXP-mek
I built an NXP i.MX Release Distro 5.4-zeus imx8qxpc0mek image.
The board boot on SD card without problem
I have the display on hdmi screen using the IMX-LVDS-HDMI converter.

My goal is to have the display on an LVDS screen directly.
So I will not use the IMX-LVDS-HDMI converter.

My question is what do I have to change to have a display on a lvds screen?
Is there a dtb that is already ready that I could use it?

0 Kudos
3 Replies

1,076 Views
MahdiMG
Contributor I

Hi Igor,
Thank you for your reply !
Before modifying the timing I used the dtb which exists by default to manage the display via lvds (fdt_file imx8qxp-mek-jdi-wuxga-lvds1-panel.dtb):

=> setenv fdt_file imx8qxp-mek-jdi-wuxga-lvds1-panel.dtb
=> saveenv
=> boot

After booting, I encountered a problem:
The image is blocked at init.

[ 2.945411] i2c i2c-18: LPI2C adapter registered
[ 2.952633] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[ 2.959322] [drm] No driver support for vblank timestamp query.
[ 2.965358] imx-drm display-subsystem: bound imx-drm-dpu-bliteng.2 (ops dpu_bliteng_ops)
[ 2.973829] imx-drm display-subsystem: bound imx-dpu-crtc.0 (ops dpu_crtc_ops)
[ 2.981353] imx-drm display-subsystem: bound imx-dpu-crtc.1 (ops dpu_crtc_ops)
[ 2.988658] imx-drm display-subsystem: bound 56228000.dsi_host (ops nwl_dsi_component_ops)
[ 2.998133] imx-drm display-subsystem: bound bus@56220000:ldb@562410e0 (ops imx8qxp_ldb_ops)
[ 3.006648] imx-drm display-subsystem: bound 56248000.dsi_host (ops nwl_dsi_component_ops)
[ 3.015751] [drm] Initialized imx-drm 1.0.0 20120507 for display-subsystem on minor 0
[ 3.152993] mmc1: new ultra high speed SDR104 SDXC card at address aaaa
[ 3.153689] mmcblk1: mmc1:aaaa SB64G 59.5 GiB
[ 3.156519] mmcblk1: p1 p2
[ 3.337405] Console: switching to colour frame buffer device 240x75
[ 3.390082] imx-drm display-subsystem: fb0: imx-drmdrmfb frame buffer device
[ 8.902174] random: crng init done

Herewith the full traces.


Are there any explanations?
Is this the correct dtb that I should be using?

0 Kudos

1,086 Views
igorpadykov
NXP Employee
NXP Employee

Hi Mahdi

 

one can look at jdi panel dts:
https://source.codeaurora.org/external/imx/linux-imx/tree/arch/arm64/boot/dts/freescale/imx8qxp-mek-...

h=imx_5.4.70_2.3.0

timings can be adjusted in struct display_timing jdi_tx26d202vm0bwa_timing in driver
https://source.codeaurora.org/external/imx/linux-imx/tree/drivers/gpu/drm/panel/panel-simple.c?h=imx...

 

Best regards
igor

0 Kudos

1,055 Views
MahdiMG
Contributor I

Hi igor,
Thank you for your reply !
I work with a S231AJ1-LE1-INNOLUX screen which is connected to mini SAS connector (J3).
imx8-LVDS1.jpg
I made changes in jdi_tx26d202vm0bwa_timing struct panel-simple.c to adjust the timing of the display:

panel_timing.png
After generating and flashing the new image, i used the dtb which exists by default to manage the display via lvds (imx8qxp-mek-jdi-wuxga-lvds1-panel-rpmsg.dtb)
=> setenv fdt_file imx8qxp-mek-jdi-wuxga-lvds1-panel-rpmsg.dtb
=> saveenv
=> boot

The board boot, but I don't have display in the lvds screen.

Knowing that for another project based on an imx6 card, I manage to have display on the same LVDS screen with this configuration:

&ldb {
status = "okay";
lvds-channel@0 {
fsl,data-mapping = "jeida"; // fsl,data-mapping = "jeida";
fsl,data-width = <24>;
primary;
status = "okay";

display-timings {
native-mode = <&timing0>;
timing0: S231AJ1 {
clock-frequency = <74250000>;
hactive = <256>;
vactive = <1920>;
hback-porch = <150>;
hfront-porch = <150>;
vback-porch = <20>;
vfront-porch = <20>;
hsync-len = <72>;
vsync-len = <8>;
};
};
};
}

I wanted to know if the settings I changed in the panel struct are the right ones to have the display working on this screen?
If not, what should be changed?
Is there a way to know if the new timing values ​​are taken into account?

Best regards
Mahdi

0 Kudos