基于mini2440触摸屏驱动

2014-11-24 09:15:13 · 作者: · 浏览: 0

驱动路径:drivers/input/touchscreen/s3c2410_ts.c


在static int __init s3c2410ts_init(void)函数中注册了两个中断


1.if (request_irq(IRQ_ADC, stylus_action, IRQF_SHARED|IRQF_SAMPLE_RANDOM,
"s3c2410_action", dev))


2.if (request_irq(IRQ_TC, stylus_updown, IRQF_SAMPLE_RANDOM,
"s3c2410_action", dev))


中断处理函数stylus_action和stylus_updown。当点击触摸屏时进入该函数,在该函数中启动ad转换,转换完成就触发中断进入stylus_action在stylus_action中读取数据。


首先来看一下stylus_updown函数



下面开一下touch_timer_fire是怎么个玩法



注意:当第一次按下时,count==0,启动ad,当转换完成将触发中断,进入stylus_action中断处理函数,好家伙来看一下哦



接下来就得看一下touch_timer在忙些什么请看招。。。。。。。。。。。


static struct timer_list touch_timer =
TIMER_INITIALIZER(touch_timer_fire, 0, 0); 重新初始化