uboot 液晶驱动问题
本帖最后由 enzo26 于 2013-11-28 13:37 编辑我们购买了2416核心板,但是换了LCD,内核配置液晶如下,可正常显示
#elif defined(CONFIG_FB_S3C_VGA640480)
#define S3CFB_HFP 16 /* front porch */
#define S3CFB_HSW 10 /* hsync width */
#define S3CFB_HBP 134 /* back porch */
#define S3CFB_VFP 32 /* front porch */
#define S3CFB_VSW 2 /* vsync width */
#define S3CFB_VBP 11 /* back porch */
#define S3CFB_HRES 640 /* horizon pixelx resolition */
#define S3CFB_VRES 480 /* line cnt y resolution */
#define S3CFB_HRES_VIRTUAL 640 /* horizon pixelx resolition */
#define S3CFB_VRES_VIRTUAL 960 /* line cnt y resolution */
#define S3CFB_HRES_OSD 640 /* horizon pixelx resolition */
#define S3CFB_VRES_OSD 480 /* line cnt y resolution */
#define S3CFB_VFRAME_FREQ 60 /* frame rate freq */
#define S3CFB_PIXEL_CLOCK 4//(S3CFB_VFRAME_FREQ * (S3CFB_HFP + S3CFB_HSW + S3CFB_HBP + S3CFB_HRES) * (S3CFB_VFP + S3CFB_VSW + S3CFB_VBP + S3CFB_VRES))
#define LCD_TYPE "VGA 640*480"
但是同样的道理修改uboot, s3c2416_fb_parameter.c
#if 0
//640x480
{
29,//VBPD
5,//VFPD
4,//VSPW
71,//HBPD
40,//HFPD
31,//HSPW
1,//CLKVAL
16,//BPP
640,//XSIZE
480//YSIZE
},
#endif
//640x480
{
11,//VBPD
32,//VFPD
2,//VSPW
134,//HBPD
16,//HFPD
10,//HSPW
4,//CLKVAL
16,//BPP
640,//XSIZE
480//YSIZE
},
修改后会花屏一会儿,知道内核重新初始化lcd后,液晶才能正常显示, uboot还应该修改什么 修改u-boot源码下的include/configs/TQ2416.h文件的大概39行的内容:#define CONFIG_LCD_TYPE X480Y272把X480Y272修改为X640Y480然后再试试。
亚瑟王 发表于 2013-11-26 18:21
修改u-boot源码下的include/configs/TQ2416.h文件的大概39行的内容:#define CONFIG_LCD_TYPE X480Y272 ...
改了,依旧不行 enzo26 发表于 2013-11-27 12:08
改了,依旧不行
确认一下你是否保存了u-boot参数到Nand中,如果保存了,不行清除掉才行。 Enter your selection: 5
Name(enter to view all paramters):
bootargs=noinitrd root=/dev/mtdblock3 rootfstype=yaffs2 init=/linuxrc console=ttySAC0
bootcmd=nand read.jffs2 c0008000 kernel;bootm c0008000
bootdelay=1
baudrate=115200
ethaddr=10:23:45:67:89:ab
bootargs_defaults=setenv bootargs ${bootargs} lcd=${lcdtype}
ethact=dm9000
mtdids=nand0=nandflash0
mtdparts=mtdparts=nandflash0:512k@0(bios),512k(params),2048K(logo),4m(kernel),-(root)
filesize=5887C
fileaddr=C0000000
gatewayip=192.168.1.2
netmask=255.255.255.0
ipaddr=192.168.101.11
serverip=192.168.101.36
lcdtype=X640Y480
stdin=serial
stdout=serial
stderr=serial
partition=nand0,0
mtddevnum=0
mtddevname=bios
这是我的环境变量, lcdtype=X640Y480是没有问题的
内核代码中有
static void s3c2416_fb_gpio_setup_24bpp(void)
{
unsigned int gpio;
for (gpio = S3C2410_GPC(1); gpio <= S3C2410_GPC(4); gpio++) {
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
}
for (gpio = S3C2410_GPC(8); gpio <= S3C2410_GPC(15); gpio++) {
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
}
for (gpio = S3C2410_GPD(0); gpio <= S3C2410_GPD(15); gpio++) {
s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2));
s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
}
}
static struct s3c_fb_platdata tq2416_fb_platdata = {
.win = &tq2416_fb_win,
#if (CONFIG_FB_S3C_NUM == 2)
.win = &tq2416_fb_win,
#endif
.setup_gpio = s3c2416_fb_gpio_setup_24bpp,
.vidcon0 = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB,
.vidcon1 = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
};
#endif /* CONFIG_FB_S3C */
因为看不到 s3c2416_fb.module的源码,我不知道uboot是否做了相应的GPIO和寄存器的配置工作
页:
[1]