JZ2440-4.3寸屏LCD驱动和触摸屏驱动分析笔记

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

追风~忆梦JZ24404.3寸屏LCD驱动和触摸屏驱动分析笔记LCD驱动分析S3C2410/2440LCD控制结构图LCDCDMA从SBUS拉取图像数据,将FIFO数据送到VIDPRCS组合后发出,当FIFO减少到0或者阀值,LCDCDMA又自动从SBUS上拉取图像数据。显示器沿着“Z”字形的路线进行扫描,使用HSYNC(表示“是跳到最左边的时候了”)、VSYNC(表示“是跳到最上边的时候了”)信号来控制扫描路线的跳转。它只会依据这两个信号来取得、显示数据,并不理会该数据是否有效,何时发出有效数据由显卡决定。显示器扫描一帧数据的过程2014年1月10日于武汉华清远见追风~忆梦S3C2410/2440TFTLCD时序图2014年1月10日于武汉华清远见追风~忆梦每个VSYNC信号便是一帧数据的开始;每个HSYNC信号表示一行数据的开始,不管这些数据是否有效;每个VCLK信号表示正在传输一个像素的数据,无论它是否有效。数据是否有效只是对CPU的LCD控制器来说的,LCD根据VSYNC、HSYNC、VCLK不停地读取总线数据、显示。2014年1月10日于武汉华清远见追风~忆梦2014年1月10日于武汉华清远见追风~忆梦320*240TFT屏显示器控制图2014年1月10日于武汉华清远见追风~忆梦2014年1月10日于武汉华清远见追风~忆梦2014年1月10日于武汉华清远见追风~忆梦2014年1月10日于武汉华清远见追风~忆梦structfb_info{intnode;intflags;structfb_var_screeninfovar;/*Currentvar*/structfb_fix_screeninfofix;/*Currentfix*/2014年1月10日于武汉华清远见追风~忆梦structfb_monspecsmonspecs;/*CurrentMonitorspecs*/structwork_structqueue;/*Framebuffereventqueue*/structfb_pixmappixmap;/*Imagehardwaremapper*/structfb_pixmapsprite;/*Cursorhardwaremapper*/structfb_cmapcmap;/*Currentcmap*/structlist_headmodelist;/*modelist*/structfb_videomode*mode;/*currentmode*/structfb_ops*fbops;structdevice*device;/*Thisistheparent*/structdevice*dev;/*Thisisthisfbdevice*/intclass_flag;/*privatesysfsflags*/#ifdefCONFIG_FB_TILEBLITTINGstructfb_tile_ops*tileops;/*TileBlitting*/#endifchar__iomem*screen_base;/*Virtualaddress*/unsignedlongscreen_size;/*AmountofioremappedVRAMor0*/void*pseudo_palette;/*Fakepaletteof16colors*/#defineFBINFO_STATE_RUNNING0#defineFBINFO_STATE_SUSPENDED1u32state;/*Hardwarestatei.esuspend*/void*fbcon_par;/*fbconuse-onlyprivatearea*//*Fromhereoneverythingisdevicedependent*/2014年1月10日于武汉华清远见追风~忆梦void*par;};structfb_fix_screeninfo{charid[16];/*identificationstringegTTBuiltin*/unsignedlongsmem_start;/*Startofframebuffermem*//*(physicaladdress)*/__u32smem_len;/*Lengthofframebuffermem*/__u32type;/*seeFB_TYPE_**/__u32type_aux;/*InterleaveforinterleavedPlanes*/__u32visual;/*seeFB_VISUAL_**/__u16xpanstep;/*zeroifnohardwarepanning*/__u16ypanstep;/*zeroifnohardwarepanning*/__u16ywrapstep;/*zeroifnohardwareywrap*/__u32line_length;/*lengthofalineinbytes*/unsignedlongmmio_start;/*StartofMemoryMappedI/O*//*(physicaladdress)*/__u32mmio_len;/*LengthofMemoryMappedI/O*/__u32accel;/*Indicatetodriverwhich*//*specificchip/cardwehave*/__u16reserved[3];/*Reservedforfuturecompatibility*/};2014年1月10日于武汉华清远见追风~忆梦structfb_var_screeninfo{__u32xres;/*visibleresolution*/__u32yres;__u32xres_virtual;/*virtualresolution*/__u32yres_virtual;__u32xoffset;/*offsetfromvirtualtovisible*/__u32yoffset;/*resolution*/__u32bits_per_pixel;/*guesswhat*/__u32grayscale;/*!=0Graylevelsinsteadofcolors*/structfb_bitfieldred;/*bitfieldinfbmemiftruecolor,*/structfb_bitfieldgreen;/*elseonlylengthissignificant*/structfb_bitfieldblue;structfb_bitfieldtransp;/*transparency*/__u32nonstd;/*!=0Nonstandardpixelformat*/__u32activate;/*seeFB_ACTIVATE_**/__u32height;/*heightofpictureinmm*/__u32width;/*widthofpictureinmm*/__u32accel_flags;/*(OBSOLETE)seefb_info.flags*/__u32pixclock;/*pixelclockinps(picoseconds)*/__u32left_margin;/*timefromsynctopicture*/2014年1月10日于武汉华清远见追风~忆梦__u32right_margin;/*timefrompicturetosync*/__u32upper_margin;/*timefromsynctopicture*/__u32lower_margin;__u32hsync_len;/*lengthofhorizontalsync*/__u32vsync_len;/*lengthofverticalsync*/__u32sync;/*seeFB_SYNC_**/__u32vmode;/*seeFB_VMODE_**/__u32rotate;/*anglewerotatecounterclockwise*/__u32reserved[5];/*Reservedforfuturecompatibility*/};4.3寸LCD芯片手册TFT屏垂直方向时间参数图解:2014年1月10日于武汉华清远见追风~忆梦S3C2440手册TFT屏垂直方向时间参数图解:4.3寸LCD芯片手册TFT屏水平方向时间参数图解:S3C2440手册LCDTFT屏水平方向时间参数图解:2014年1月10日于武汉华清远见追风~忆梦#includelinux/module.h#includelinux/kernel.h#includelinux/errno.h#includelinux/string.h#includelinux/mm.h#includelinux/slab.h#includelinux/delay.h#includelinux/fb.h#includelinux/init.h#includelinux/dma-mapping.h#includelinux/interrupt.h#includelinux/workqueue.h#includelinux/wait.h#includelinux/platform_device.h#includelinux/clk.h#includeasm/io.h#includeasm/uaccess.h#includeasm/div64.h#includeasm/mach/map.h#includeasm/arch/regs-lcd.h#includeasm/arch/regs-gpio.h#includeasm/arch/fb.h/**设置调色板*调色板说白了,就是在内存中建一个表,而每个像素*对应的8位数据是用来在表中查找相应的RGB的值,而*这个表是有前面的24BPP或16BPP构成的**/staticints3c_lcdfb_setcolreg(unsignedintregno,unsignedintred,unsignedintgreen,unsignedintblue,unsignedinttransp,structfb_info*info);structlcd_regs{unsignedlonglcdcon1;unsignedlonglcdcon2;unsignedlonglcdcon3;unsignedlonglcdcon4;unsignedlonglcdcon5;2014年1月10日于武汉华清远见追风~忆梦unsignedlonglcdsaddr1;unsignedlonglcdsaddr2;unsignedlonglcdsaddr3;unsignedlongredlut;unsignedlonggreenlut;unsignedlongbluelut;unsignedlongreserved[9];unsignedlongdithmode;unsignedlongtpal;unsignedlonglcdintpnd;unsignedlonglcdsrcpnd;unsignedlonglcdintmsk;unsignedlonglpcsel;};/*对显存的操作*/staticstructfb_opss3c_lcdfb_ops={.owner=THIS_MODULE,.fb_setcolreg=s3c_lcdfb_setcolreg,.fb_fillrect=cfb_fillrect,/*填充矩形*/.fb_copyarea=cfb_copyarea,/*拷贝区域*/.fb_imageblit=cfb_imageblit,/**/};staticstructfb_info*s3c_lcd;staticvolatileunsignedlong*gpbcon;staticvolatileunsignedlong*gpbdat;staticvolatileunsignedl

1 / 35
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功