LCD驱动移植
*********************************************************************************************************************************************
cpu : s3c2440(arm9)
开发板 :fl2440开发板
内核版本:linux 3.0
**********************************************************************************************************************************************
什么是lcd?
VSPW(vertical sync pulse width):表示垂直同步脉冲的宽度,用行数计算,对应驱动中的vsync_len;
HBP(horizontal back porch):表示从水平同步信号开始到一行的有效数据开始之间的VCLK的个数,对应驱动中的left_margin;
HFP(horizontal front porth):表示一行的有效数据结束到下一个水平同步信号开始之间的VCLK的个数,对应驱动中的right_margin;
HSPW(horizontal sync pulse width):表示水平同步信号的宽度,用VCLK计算,对应驱动中的hsync_len;
*********************************************************************************************************************
218 /* LCD driver info */
219
220 static struct s3c2410fb_display smdk2440_lcd_cfg __initdata = {
221
222 .lcdcon5 = S3C2410_LCDCON5_FRM565 |
223 S3C2410_LCDCON5_INVVLINE |
224 S3C2410_LCDCON5_INVVFRAME |
225 S3C2410_LCDCON5_PWREN |
226 S3C2410_LCDCON5_HWSWP,
227
228 .type = S3C2410_LCDCON1_TFT,
229
230 .width = 480,/*modify by zoulei 2017.4.18*/
231 .height = 272,/*modify by zoulei*/
232
233 .pixclock = 600000, /* HCLK 60 MHz, divisor 10 像素时钟*/
234 .xres = 480,/*modify by zoulei 水平可见的有效像素*/
235 .yres = 272,/*modify by zoulei 垂直可见的有效像素*/
236 .bpp = 16,/*modify by zoulei色位模式*/
237 .left_margin = 19,/*modify by zoulei行切换,从同步到绘图之间的延迟*/
238 .right_margin = 10,/*modify by zoulei行切换,从绘图到同步之间的延迟*/
239 .hsync_len = 30,/*modify by zoulei水平同步的长度*/
240 .upper_margin = 4,/*modify by zoulei帧切换,从同步到绘图之间的延迟*/
241 .lower_margin = 2,/*modify by zoulei帧切换,从绘图到同步之间的延迟*/
242 .vsync_len = 8,/*modify by zoulei垂直同步的长度*/
243 };
......
262 .lpcsel = 0,//((0xCE6) & ~7) | 1<<4,/*modify by zoulei这个是三星TFT屏参数*/
263 };
**************************************************************************************************************************************************************************DOTCLK = fframe × (X + HBP + HFP+HSPW) × (Y + VBP + VFP+VSPW) (单位:MHz)
pixclock = 1012/ DOTCLK=1012/ (fframe × (X + HBP + HFP+HSPW) × (Y + VBP + VFP+VSPW)) (单位:皮秒)
************************************************************************************************************************************
Device Drivers ---> Graphics (图像)support --->
<*> Support for frame buffer devices --->
[*] Enable firmware EDID
[*] Enable Video Mode Handling Helpers
<*> S3C2410 LCD framebuffer support
[*] Backlight & LCD device support --->
<M> Lowlevel LCD controls
<M> Lowlevel Backlight controls
<M> Generic (aka Sharp Corgi) Backlight Driver
Console display driver support --->
<*> Framebuffer Console support
[*] Map the console to the primary display device
[*] Framebuffer Console Rotation
[*] Select compiled-in fonts
[*] VGA 8x8 font
[*] Mini 4x6 font
[*] Bootup logo --->
[*] Standard 224-color Linux logo
配置好后make编译,将内核烧入开发板.....
如果要想在开发板的屏幕上看到启动的代码,则因修改如下环境变量,我的是jffs2文件系统,
set bootargs'noinitrd root=/dev/mtdblock2 rootfstype=jffs2 init=/linuxrc console=ttyS0 console=tty1,115200'
set bootargs_jffs2'noinitrd root=/dev/mtdblock2 rootfstype=jffs2 init=/linuxrc console=ttyS0 console=tty1,115200'
***************************************************************************************************************************
说明:我的开发板内核是加载的jffs2文件系统,所以想在开发板屏幕上显示启动信息,在uboot 环境变量里面添加那两段代码
不过主要是添加tty1文本型控制台,也就是对应的putty或者secure crt虚拟控制终端,因此加上控制台参数console=tty1.
********************************************************************************************************************
如果在开发板上看到小企鹅,以及显示信息,ok这样lcd驱动就顺利移植好了......