Linux LCD驱动中的LCD参数(2)

static struct s3c2410fb_display smdk2440_lcd_cfg __initdata = {

    .lcdcon5    = S3C2410_LCDCON5_FRM565 |
             S3C2410_LCDCON5_INVVLINE |
             S3C2410_LCDCON5_INVVFRAME |
             S3C2410_LCDCON5_PWREN |
             S3C2410_LCDCON5_HWSWP,

    .type        = S3C2410_LCDCON1_TFT,

    .width = LCD_WIDTH,
    .height = LCD_HEIGHT,

    .pixclock = LCD_PIXCLOCK,
    .xres = LCD_WIDTH,
    .yres = LCD_HEIGHT,
    .bpp = 16,
    .left_margin = LCD_LEFT_MARGIN,
    .right_margin = LCD_RIGHT_MARGIN,
    .hsync_len = LCD_HSYNC_LEN,
    .upper_margin = LCD_UPPER_MARGIN ,
    .lower_margin = LCD_LOWER_MARGIN,
    .vsync_len = LCD_VSYNC_LEN,
};

 
pixclock:现在我们就可以开始设置这个结构体的参数了,有上面第3小结的表我们可以知道LCD的时钟Dclk应该是156ns,这个对应结构体里面的像素点时钟pixclock,在来看看第四节提到的一个公式 pixclock=1000000/DCF,这个DCF就是LCD的Dclk对应的频率,注意,单位为MHz,所以DCF=1000 000 000/156 Hz=1000/156 MHz;可以得到pixclock=1000000/(1000/156)=156000; width、height的设定这个就没什么歧义了,对应320和240 bpp:其实我的这个LCD手册上说该屏是支持24位色的,但是这里填写16位,有空可以试试24位
其他的参数:其他参数对应第3节的表填写

xres         <===========> TEP

yres         <===========> Tvd

left_margin  <===========> Thf

right_margin <===========> Thb

hsync_len    <===========> THS

upper_margin <===========> Tvf

lower_margin <===========> Tvb

vsync_len    <===========> Tvs

 
所以我的配置如下

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwsggw.html