Increase HDMI display resolution on imx7ulp-evk

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

Increase HDMI display resolution on imx7ulp-evk

1,465 Views
Nico_H
Contributor II

How can I increase the HDMI display resolution on the IMX7ULP-EVK with embedded-linux and framebuffer-backend?

 

I found inside the kernel the mxc_edid.c file. I tried some other video-mode inside the kernel device tree, but with all other settings my Monitor doesn't accept the HDMI as an valid input. Only 640x480 is working.

I've also tried to set 1024x768 with the following timings (which should be VESA standard), but it doens't work:

NULL, 60, 1024, 768, 15384, 160, 24, 29, 3, 136, 6, 0, FB_VMODE_NONINTERLACED | FB_VMODE_ASPECT_4_3, 0,

Then I tried with a resolution of 800x600:

NULL, 60, 800, 600, 20000, 64, 56, 23, 47, 120, 6, FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT, FB_VMODE_NONINTERLACED | FB_VMODE_ASPECT_4_3, 0,

On this setting the Monitor responds to HDMI input, but the screen leaves black. From the info screen I can see that the driven frequency is 71HZ instead of 60HZ.

Does anyone has a tip what I am doing wrong?

 

Best regards,

Nico

Labels (1)
0 Kudos
5 Replies

1,455 Views
igorpadykov
NXP Employee
NXP Employee

Hi Nico_H

 

on i.MX7ULP EVK board for hdmi ADV7535 mipi-dsi bridge is used, connected to mipi-dsi module.

Mipi-dsi internally is connected to LCDIF module and one can try to adjust its timings in dts:

&lcdif {..disp-dev = "mipi_dsi_northwest";..
display-timings {..

https://source.codeaurora.org/external/imx/linux-imx/tree/arch/arm/boot/dts/imx7ulp-evk.dts?h=imx_5....

 

Best regards
igor

 

0 Kudos

1,449 Views
Nico_H
Contributor II

Hi Igor,

inside the lcdif entry the value disp-dev = "mipi_dsi_northwest"; is defined, so the driver will use one of the display resolution defined in mxc_edid.c instead of the timing you mentioned.

 

The used display-resolution is defined by 

adv7535: adv7535@3d {
		compatible = "adi,adv7535";
		reg = <0x3d>; /* PD pin is low */
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_dsi_hdmi>;
		interrupt-parent = <&gpio_ptc>;
		interrupts = <18 IRQ_TYPE_EDGE_FALLING>;
		video-mode = <1>; /*
				   * Only support CEA modes.
				   * Reference mxc_edid.c
				   */
		dsi-traffic-mode = <0>;
		bpp = <24>;
		status = "disabled";
	};

But it is not possible to set any other resolution than 640x480.

 

Best regards,

Nico

0 Kudos

1,443 Views
igorpadykov
NXP Employee
NXP Employee

Hi Nico_H

 

from referenced part of dts:

video-mode = <1>; /*
* Only support CEA modes...

 

both "800x600,1024x768" are not CEA modes.

CEA resolutions are described, for example in

Table 33-3. Video Modes  i.MX 6Dual/6Quad Applications Processor Reference Manual

 

Best regards
igor

0 Kudos

1,421 Views
Nico_H
Contributor II

Hi Igor,

thank you for your answer.

Now I tried:

root@imx7ulpevk:/sys/class/graphics/fb0# cat mode
U:720x576p-50
root@imx7ulpevk:/sys/class/graphics/fb0# U:720x576p-50

Out of the PDF it should be a CEA resolution (see attached image). Also the used HDMI monitor shows in it's EDID that this resolution is supported, but it won't accept the HDMI as an Input. It switches all the time between it's sources.

Again to the beginning: The only working resolution for now is 640x480.

Can you get another resolution working on IMX7ULP-EVK with embedded linux (5.4.47-2.2.0+g5ec03d06f54e)?

 

Best regards,

Nico

 

0 Kudos

1,414 Views
igorpadykov
NXP Employee
NXP Employee

Hi Nico

 

one can try to debug it in driver or with other hdmi monitors:

in function adv7535_probe() check what video modes obtained from hdmi panel:
line 306 i2c_set_clientdata(info->i2c_dsi_cec, info);

sets obtained resolutions

if ((ret = adv7535_setup_cfg(info)))
if ((ret = adv7535_vmode_cfg(info)))

https://source.codeaurora.org/external/imx/linux-imx/tree/drivers/video/fbdev/mxc/adv7535.c?h=imx_5....

 

Best regards
igor

0 Kudos