This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

am335x LCD resolution

Other Parts Discussed in Thread: AM3352

I have a quick question on the LCD resolution on the am3352. Currently using the 3.14 kernel from Ti git.

The LCD panel works fine but the vyres is wrong by default so I need to manually correct it with fbset in order to make it work. Does anyone know what in the kernel sets that parameter since the yres is correct by default?

# fbset

mode "320x240-0"
# D: 0.000 MHz, H: 0.000 kHz, V: 0.000 Hz
geometry 320 240 320 720 16
timings 0 0 0 0 0 0 0
accel true
rgba 5/11,6/5,5/0,0/0
endmode

# fbset -fb /dev/fb0 -g 320 240 320 240 16

# fbset

mode "320x240-0"
# D: 0.000 MHz, H: 0.000 kHz, V: 0.000 Hz
geometry 320 240 320 240 16
timings 0 0 0 0 0 0 0
accel true
rgba 5/11,6/5,5/0,0/0
endmode

Thanks.

//Henrik

  • Hi Henrik,

    The newest official release by TI is SDK 7.0, based on kernel 3.12.10. Here is the wiki link for the LCD driver: http://processors.wiki.ti.com/index.php/Linux_Core_LCD_Controller_User_Guide

  • Yes, I am aware of that but this is a project that will not be ready for production in quite some time so we based it on the "next" release.
    i.e git.ti.com/.../ti-linux-3.14.y

    As said, the display works otherwise fine and it works as described in the wiki for the 3.12.x but somehow the vyres is set incorrectly. We had a similar issue with the old 3.2 release but there we just manually set the parameters on every boot but I would like to find a proper solution this time.
  • Hi Henrik,

    I think that you are not initialize good the lcd display driver. Could you see the parameters in struct <vendor>_<model> known_lcd_panels[] in a <>/drivers/video/xxx.c file. There you have to initialize the correct value for your LCD. Also see all parameters for fbset commands. I'm embarassed for the second and third line: geometry that in your board is D0, H0, V0, also timing line is 0 too. This is not normal. See the value on my board:
    root@am335x-evm:~# fbset

    mode "800x480-62"
    # D: 30.000 MHz, H: 32.433 kHz, V: 61.895 Hz
    geometry 800 480 800 960 32
    timings 33333 39 39 29 13 47 2
    hsync high
    vsync high
    rgba 8/16,8/8,8/0,8/24
    endmode

    BR
    Ivan
  • Afaik, it gets its timings from the device tree since this is the DRM driver and not the old framebuffer driver. It uses the simple-panel declaration as described in Documentation/devicetree/bindings/drm/tilcdc

    	panel {
    		compatible = "ti,tilcdc,panel";
    		status = "okay";
    		backlight = <&backlight>;
    		panel-info {
    			ac-bias           = <255>;
    			ac-bias-intrpt    = <0>;
    			dma-burst-sz      = <16>;
    			bpp               = <16>;
    			fdd               = <0x80>;
    			sync-edge         = <1>;
    			sync-ctrl         = <1>;
    			raster-order      = <1>;
    			fifo-th           = <0>;
    			invert-pxl-clk	  = <1>;
    		};
    
    		display-timings {
    			native-mode = <&timing0>;
    			timing0: 320x240 { 
    				clock-frequency = <6500000>;
    				hactive = <320>;
    				vactive = <240>;
    				hfront-porch = <20>;
    				hback-porch = <38>;
    				hsync-len = <30>;
    				vback-porch = <15>;
    				vfront-porch = <4>;
    				vsync-len = <4>;
    				hsync-active = <0>;
    				vsync-active = <0>;
    
    			};
    		};
    	};



    //Henrik