|
请教各位大哥,小弟在使用S3C2410做这款PLANAR 320*256-F6屏幕的驱动程序。现在我的屏幕始终不亮,我已经更改了s3c2410fb.c 驱动程序内的LCD控制器 和 frame buffer. 希望能有某位大哥帮小弟找出错误。 附带EL 320*256屏幕的datasheet。
小弟在s3c2410fb.c 文件中修改的部分
static struct s3c2410fb_mach_info xxx_stn_info __initdata = {
pixclock: 174757
bpp: 1,
xres: 320,
yres: 256,
hsync_len : 5, vsync_len : 1,
left_margin : 7, upper_margin : 1,
right_margin: 3, lower_margin : 3,
sync: 0, cmap_static: 1,
reg : {
lcdcon1 : LCD1_PNR_4S | LCD1_BPP_1S| LCD1_CLKVAL(35), lcdcon2 : LCD2_VBPD(0) | LCD2_VFPD(0) | LCD2_VSPW(0),
lcdcon3: LCD3_WDLY_16 | 0x10,
lcdcon4: LCD4_WLH(0) | LCD4_MVAL(13),
lcdcon5: LCD5_PWREN | LCD5_BSWP | LCD5_INVVLINE,
}
};
static int s3c2410fb_activate_var(struct fb_var_screeninfo *var, struct s3c2410fb_info *fbi)
{
struct s3c2410fb_lcd_reg new_regs;
u_int half_screen_size, yres;
u_long flags;
unsigned long VideoPhysicalTemp = fbi->screen_dma;
save_flags_cli(flags);
new_regs.lcdcon1 = fbi->reg.lcdcon1 & ~LCD1_ENVID;
new_regs.lcdcon2 = (fbi->reg.lcdcon2 & ~LCD2_LINEVAL_MSK)| LCD2_LINEVAL(var->yres - 1);
new_regs.lcdcon3 = (fbi->reg.lcdcon3 & ~LCD3_HOZVAL_MSK)| LCD3_HOZVAL(79);
new_regs.lcdcon4 = fbi->reg.lcdcon4;
new_regs.lcdcon5 = fbi->reg.lcdcon5;
new_regs.lcdsaddr1 =
LCDADDR_BANK(((unsigned long)VideoPhysicalTemp >> 22))
| LCDADDR_BASEU(((unsigned long)VideoPhysicalTemp >> 1));
/* 1bpp */
new_regs.lcdsaddr2 = LCDADDR_BASEL(
((unsigned long)VideoPhysicalTemp + (var->xres * var->yres / 8))>> 1);
new_regs.lcdsaddr3 = LCDADDR_OFFSET(0) | (LCDADDR_PAGE(var->xres / 8) /*>>1*/);
............
以上为此函数修改了的
}
【文件名】:081013@52RD_EL320.256_f6_fd6_020_0352_00A[1].pdf
【格 式】:pdf
【大 小】:310K
【简 介】:
【目 录】:
|
|