How to apply custom timings for LCD on Colibri iMX6DL / Linux

Hello.

I work on a project with Colibri iMX6DL module and parallel LCD (Winstar WF70YT* series). I did managed to set correct display timings with linux command “fbset” and would like to apply the settings on system boot.

Should I customize the Device Tree? Which properties/nodes should I change (any examples available)?
What should I put to “vidargs” uboot environment variable to make these DT changes to be used by kernel/OS?

Thank you.

hi @user622190

I did managed to set correct display timings with linux command “fbset” and would like to apply the settings on system boot.

In most cases, you can setup the properties using u-boot variable vidargs as explained here.

Should I customize the Device Tree? Which properties/nodes should I change (any examples available)? What should I put to “vidargs” uboot environment variable to make these DT changes to be used by kernel/OS?

This will depend on the display you are using. Our Developer Article describes how you can setup the uboot variables and give some examples for the device tree properties.

Best regards, Jaski

Thx.

The display I’m working with is Winstar WF70YTIAGDNG0#.

I’ve already changed the “vidargs” variable to value:
“video=mxcfb0:dev=lcd,800x480M@60,if=RGB24,bpp=24 video=mxcfb1:off fbmem=8M”

Also I’ve enabled all 24 data lines for parallel RGB interface with modification in Device Tree.

With only this two changes image on the display is shifted off center (to right and to top).

Then I’ve managed to correct the image using “fbset” command with parameters:
-left 26
-right 210
-upper 13
-lower 22
-hslen 20
-vslen 10
-vsync low
These values I’ve based on documentation (timing data) of the display.

So now I would like to modify Device Tree to apply the same timing values for the display, but I’m not sure which nodes/properties to change. Is there any good example available with similar modification to use on iMX6DL module (with Linux BSP 2.7)?

Could you post a picture showing the display?

Regarding the settings, did you check the developer article? There is an example.

Picture of the display: https://goo.gl/images/Z7jcGc

This developer article ? I do not see any example of Device Tree modification for iMX6 there. Should I use the same node/properties as in example for iMX7?

Hi

I don’t think you can specify the timings for the parallel LCD in the device tree in the downstream 4.1 (or 4.9) kernel. You rather have to change the kernel code and recompile and deploy the kernel. Here we refer to this as named modes.

E.g. add your timings as an additional array element here and then choose the timing on the kernel command line.

Max

Thx. This (kernel source modifiication) was my next step on a list of things to try.
I’ll write more after test.

You are welcome. Please let us know your results.

I have made changes in kernel source as described in the answer, and my custom timings for the display are correctly applied on system boot.

Thank you.

As @max.tx already pointed out, you do need to modify this in code and not the device tree!