How to change TFT resolution to 320x240

I tried to change the display resolution from 640x480 to 320x240 for the 3.5’’ NewHeaven display without success.
As it describes in display-output-resolution…:

The kernel will always select the “best” display timings, which is the higher resolution. Therefore, if a resolution below the currently selected panel (by default VGA) is specified, the output will still be VGA. One can use XrandR to select the lower resolution. To permanently configure a certain display timing, using the panel-simple driver is the recommended approach.

i used the panel-simple.c and manipulate the “edt,et057090dhu” device like this

I also changed the device tree file like this.I copied just the dcu0 section from toradex_vf_4.1 and changed the resolution of the 640x480 entry.

I compiled the new kernel and update my sd card and run setupdate / run update at the uboot-terminal.

Furthermore i set the environment variable “fdt_fixup” in the uboot section like this.
I do not set the vidargs variable because of the precedence of the device tree.

The display shows just the upper left part of the standard toradex desktop screen on my 3.5’’ TFT.

With the fbset i get:

root@colibri-vf:~# fbset
mode "640x480"
    geometry 640 480 640 480 24
    timings 0 0 0 0 0 0 0
    accel true
    rgba 8/16,8/8,8/0,0/0
endmode

Many thanks for hints and helping with this issue.

hi @Ivan

Welcome to the Toradex Community!

Could you setup the vidargs correcty as explained on the following site without introducing any devicetree changes?

Further you can also try to use xrandr for changing the resolution of the display.

Thanks and best regards, Jaski

Which vidargs are valid? I tried 320x240-16@60 without success. fbset shows the same setting as above.

xrandr --output LVDS-1 --scale 0.5x0.5

just scales the framebuffer, but it clocks still 640x480pixel on the hardware side.

LVDS display mode has to be defined within the kernel, “xrandr --newmode” does not work.

as here described

Does the LDXM has any influence on the display resolution?

xrandr:

xrandr -q
Screen 0: minimum 320 x 200, current 640 x 480, maximum 2031 x 2047

Which vidargs are valid? I tried 320x240-16@60 without success. fbset shows the same setting as above.

You should try this:
setenv vidargs ‘video=dcufb:320x240-16@60’
LVDS is for the LVDS Screen. How did you connect the screen to Aster Board?

Solved.
After recompile the Kernel the display shows the right resolution.

I have to set the fdt_fixup variable anytime when i update the kernel e.g. to change the display timings. To update the Kernal I always use these commands.

run setupdate
run prepare_ubi
run update

setenv fdt_fixup 'fdt addr ${fdt_addr_r} && fdt set /panel compatible "edt,et057090dhu"'
saveenv
boot

Great, thanks for letting us know.