郁闷好几天了,寻求各位同仁的帮助:
我的内核是linux2.6.26的,lcd是LTV350QV-F04,从nfs到usb都很顺利,但是到了lcd的移植一直没有成功,我修改了arch/arm/mach-s3c2440/mach-smdk2440.c,以下是我的lcd主要两个结构体的配置和通过内核打印出来的寄存器的值
s3c2410fb: devinit
s3c2410fb: got and enabled clock
s3c2410fb: map_video_memory(fbi=c3c76230) map_size 307200
s3c2410fb: map_video_memory: clear ffc00000:0004b000
s3c2410fb: map_video_memory: dma=33d80000 cpu=ffc00000 size=0004b000
s3c2410fb: got video memory
s3c2410fb: LPCSEL = 0x00000cf0
s3c2410fb: replacing TPAL 00000000
s3c2410fb: check_var(var=c3c76008, info=c3c76000)
s3c2410fb: pixclk 145624, divisor is 14
s3c2410fb: s3c2410fb_activate_var: var->xres = 320
s3c2410fb: s3c2410fb_activate_var: var->yres = 240
s3c2410fb: s3c2410fb_activate_var: var->bpp = 32
s3c2410fb: setting vert: up=4, low=3, sync=3
s3c2410fb: setting horz: lft=30, rt=10, sync=19
s3c2410fb: new register set:
s3c2410fb: lcdcon[1] = 0x0000067a
s3c2410fb: lcdcon[2] = 0x033bc082
s3c2410fb: lcdcon[3] = 0x00493f1d
s3c2410fb: lcdcon[4] = 0x00000012
s3c2410fb: lcdcon[5] = 0x00000708
s3c2410fb: LCDSADDR1 = 0x19ec0000
s3c2410fb: LCDSADDR2 = 0x19ee5800
s3c2410fb: LCDSADDR3 = 0x00000280
Console: switching to colour frame buffer device 40x30
fb0: s3c2410fb frame buffer device
fb1: Virtual frame buffer device, using 1024K of video memory
* LCD driver info */
static struct s3c2410fb_display smdk2440_lcd_cfg __initdata = {
.lcdcon5 = S3C2410_LCDCON5_BPP24BL |
S3C2410_LCDCON5_INVVCLK |
S3C2410_LCDCON5_INVVLINE |
S3C2410_LCDCON5_INVVFRAME |
S3C2410_LCDCON5_PWREN |
S3C2410_LCDCON5_BSWP |
S3C2410_LCDCON5_HWSWP,
.type = S3C2410_LCDCON1_TFT,
.width = 320,
.height = 240,
.pixclock = 145624,//174757, /* HCLK 101.25 MHz, DOTCLK 6.867M ,divisor 6 */
.xres = 320,
.yres = 240,
.bpp = 32,
.left_margin = 30,//20,
.right_margin = 10,//8,
.hsync_len = 19,//4,
.upper_margin = 4,//8,
.lower_margin = 3,//7,
.vsync_len = 3,//4,
};
static struct s3c2410fb_mach_info smdk2440_fb_info __initdata = {
.displays = &smdk2440_lcd_cfg,
.num_displays = 1,
.default_display = 0,
#if 1
/* currently setup by downloader */
.gpccon = 0xaa955699,//0xaa940659,
.gpccon_mask = 0xffc003cc,//0xffffffff,
.gpcup = 0x0000ffff,
.gpcup_mask = 0xffffffff,
.gpdcon = 0xaa95aaa1,//0xaa84aaa0,
.gpdcon_mask = 0xffc0fff0,//0xffffffff,
.gpdup = 0x0000faff,
.gpdup_mask = 0xffffffff,
#endif
.lpcsel =((0xCE6) & ~7) | 1<<4,
};
还有,关于内核的配置,我参照前人的配置,该打开的也都打开了。
关于vspw,hspw等值,我根据pdf中的时序图取的值,dotclolk也是根据里面的公式算出来的,
关于pixclk都是我参照ltv350的pdf算出来的,但是现在怎么显示不了logo,希望能得到各位同仁的指点。
我用光盘中的测试程序测试了lcd,是可以正常显示的,硬件没有什么问题。