您的位置:首页 > 运维架构 > Linux

linux-3.8.0 S5PV210 LCD显示屏驱动移植

2015-04-30 10:03 363 查看

前言

近期在学习linux驱动移植,记录下学习过程,供自己参考和有需要的网友参考。

一、材料准备

1)核心板:TINY210v2 的核心板

2)LCD屏:TINY210v2自带的7寸电容触摸屏(S70,驱动器是AT070TN92)

3)linux环境:VMware10 + Fedora15 + arm-linux-gcc-4.5.1

4)linux内核:linux-3.8.0

5)bootloader:u-boot

二、移植步骤

1、修改arch/arm/mach-s5pv210/mach-smdkv210.c  文件

第一步:修改结构体struct fb_videomode smdkv210_lcd_timing (211行左右),
命令:vim arch/arm/mach-s5pv210/mach-smdkv210.c,修改后的代码如下:
static struct fb_videomode smdkv210_lcd_timing = {
.left_margin    = 25,
.right_margin   = 209,
.upper_margin   = 13,
.lower_margin   = 21,
.hsync_len  = 19,
.vsync_len  = 9,
.xres       = 800,
.yres       = 480,
};

设置LCD的各个参数。

第二步:修改 struct s3c_fb_platdatasmdkv210_lcd0_pdata (222行左右),
修改后的代码如下:
static struct s3c_fb_platdata smdkv210_lcd0_pdata __initdata = {
.win[0]     = &smdkv210_fb_win0,
.vtiming    = &smdkv210_lcd_timing,
//.vidcon0  = VIDCON0_VIDOUT_RGB | VIDCON0_PNRMODE_RGB,
//.vidcon1  = VIDCON1_INV_HSYNC | VIDCON1_INV_VSYNC,
.vidcon0    = (5<<6) | (1<<4) | (1<<1) | (1<<0),
.vidcon1    = (1<<6) | (1<<5),
.setup_gpio = s5pv210_fb_gpio_setup_24bpp,
};


设置使能,由LCD的手册(AT070TN92)得HSYNC和VSYNC极性须反转。

第三步:修改函数void smdkv210_lte480wv_set_power()  (165行左右)
修改后的代码如下:
static void smdkv210_lte480wv_set_power(struct plat_lcd_data *pd,
unsigned int power)
{
if (power) {
#if !defined(CONFIG_BACKLIGHT_PWM)
gpio_request_one(S5PV210_GPD0(1), GPIOF_OUT_INIT_HIGH, "GPD0");
gpio_free(S5PV210_GPD0(1));
#endif
#if 0
/* fire nRESET on power up */
gpio_request_one(S5PV210_GPH0(6), GPIOF_OUT_INIT_HIGH, "GPH0");

gpio_set_value(S5PV210_GPH0(6), 0);
mdelay(10);

gpio_set_value(S5PV210_GPH0(6), 1);
mdelay(10);

gpio_free(S5PV210_GPH0(6));
#endif
} else {
#if !defined(CONFIG_BACKLIGHT_PWM)
gpio_request_one(S5PV210_GPD0(1), GPIOF_OUT_INIT_LOW, "GPD0");
gpio_free(S5PV210_GPD0(1));
#endif

4000
}
}

设置背光,我们使用的LCD-S70的背光由PWM1(GPD0_1控制),所以要修改。同时不需要复位设置,所以使用 #if 0 和#endif注释掉。

2、修改drivers/video/Makefile

命令:vim drivers/video/Makefile

第四步:确认包含 s3c-fb.o  (126行)
obj-$(CONFIG_FB_S3C)          += s3c-fb.o


3、配置内核

命令:make menuconfig



4、编译下载

开机后就会看到logo了,是linux的小企鹅。

5、显示:hello world!

在调试终端输入:echo hello world!>/dev/tty0

6、结果验证

附最后的图片一张:



(只照了半边)

三、参考资料

整个移植过程中我参考了:《嵌入式Linux学习笔记(基于S5PV210、TQ210).pdf》 (P146)
对它的原作者表示感谢!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: