Android触摸屏驱动(2.6内核)分析

Android触摸屏驱动(2.6内核)分析

ID:40530405

大小:50.50 KB

页数:8页

时间:2019-08-04

Android触摸屏驱动(2.6内核)分析_第1页
Android触摸屏驱动(2.6内核)分析_第2页
Android触摸屏驱动(2.6内核)分析_第3页
Android触摸屏驱动(2.6内核)分析_第4页
Android触摸屏驱动(2.6内核)分析_第5页
资源描述:

《Android触摸屏驱动(2.6内核)分析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、s3c2410触摸屏驱动(2.6内核)分析来源:ChinaUnix博客 日期:2007.10.1521:15 (共有条评论)我要评论                 s3c2410触摸屏驱动(2.6内核)分析                        驱动不是很多,在此把它贴出来然后加上必要的注释:#include#include#include#include#include#include#include#include#include#include#include#include#include#include#include/*Forts.d

2、ev.id.version*/#defineS3C2410TSVERSION  0x0101#defineWAIT4INT(x)(((x)");MODULE_DESCRIPTION("s3c2410touchscreendriver");MODULE_LICENSE("GPL");/**Definitions&globalarrays.*/staticchar*s3c2410ts_name="s3c2410TouchScreen";/**Per-touchscreendata.*/structs3c2410ts{  structinput_devdev; 

3、 longxp;  longyp;  intcount;  intshift;  charphys[32];};staticstructs3c2410tsts;staticvoid__iomem*base_addr;staticinlinevoids3c2410_ts_connect(void){  s3c2410_gpio_cfgpin(S3C2410_GPG12,S3C2410_GPG12_XMON);  s3c2410_gpio_cfgpin(S3C2410_GPG13,S3C2410_GPG13_nXPON);  s3c2410_gpio_cfgp

4、in(S3C2410_GPG14,S3C2410_GPG14_YMON);  s3c2410_gpio_cfgpin(S3C2410_GPG15,S3C2410_GPG15_nYPON);}staticvoidtouch_timer_fire(unsignedlongdata){    unsignedlongdata0;    unsignedlongdata1;    intupdown;    /*      读取stylus的状态      0=Stylusdownstate      1=Stylusupstate    */    data0=

5、readl(base_addr+S3C2410_ADCDAT0);    data1=readl(base_addr+S3C2410_ADCDAT1);    updown=(!(data0&S3C2410_ADCDAT0_UPDOWN))&&(!(data1&S3C2410_ADCDAT1_UPDOWN));    /*    更新stylus状态寄存器updown:    1=down    0=up    */  /*    touch_timer_fire这个函数主要实现以下功能:    1、stylusdown的时候,在中断函数stylus_up

6、down里面被调用,      此时缓存区没有数据,ts.count为0,所以只是简单的设置ad转换的模式,然后开启ad转换。    2、但ADC中断函数stylus_action把缓冲区填满的时候,作为中断后半段函数稍后被调用,      此时ts.count为4,算出其平均值后,交给事件处理层(EventHandler)处理,      主要是填写缓冲,然后唤醒等待输入数据的进程。    3、stylus抬起,等到缓冲区填满后(可能会包含一些无用的数据)被调用,      这时候判断出stylusup,报告stylusup事件,重新等待stylusdo

7、wn。    if(updown){                      if(ts.count!=0){              /*求平均值*/        ts.xp>>=ts.shift;        ts.yp>>=ts.shift;#ifdefCONFIG_TOUCHSCREEN_S3C2410_DEBUG        {            structtimevaltv;            do_gettimeofday(&tv);            printk(DEBUG_LVL"T:%06d,X:%03ld,Y

8、:%03ld",(int)tv.tv_usec,ts.xp,t

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。