初学linux触摸屏驱动,请求IRQ_ADC和IRQ_TC中断总是返回EBUSY,请问怎么解决啊

小弟初学驱动,参考资料写了一个触摸屏驱动程序,编译成功后在mini2440开发板上进行测试,在insmod加载后,注册IRQ_ADC和IRQ_TC中断的时候request_irq总是返回EBUSY,注册中断的代码如下:
static struct input_dev *dev;
.....//别的一些设置略
if ((ret = request_irq(IRQ_ADC, stylus_action, IRQF_SAMPLE_RANDOM,"s3c2410_action", dev)) != 0)
{
printk(KERN_ERR "s3c2410_ts.c: Could not allocate ts IRQ_ADC :%d,%d!\n", EIO,ret);
iounmap(base_addr);
return -EIO;
}
if ((ret = request_irq(IRQ_TC, stylus_updown, IRQF_SAMPLE_RANDOM,"s3c2410_action", dev)) != 0)
{
printk(KERN_ERR "s3c2410_ts.c: Could not allocate ts IRQ_TC :%d,%d!\n", EIO,ret);
iounmap(base_addr);
return -EIO;
}

我查了一些资料说是中断线被占用,请问这个问题怎么解决呢?这是因为开发板上已经包含了触摸屏驱动引起吗?这种情况下自己写的触摸屏驱动应该怎么去测试啊?
请大家指点一下,不胜感激!!!
如果把IRQF_SAMPLE_RANDOM改成IRQF_SHARED的话,IRQ_ADC可以租车成功,而IRQ_TC仍然注册失败

第1个回答  2010-05-07
是该中断线被占用了,可能是其他设备占用的,把那个地方找到,把中断线释放掉就行了本回答被提问者采纳
第2个回答  2019-05-17
这个需要先把板子中的触摸屏驱动给卸载掉就可以了。
我的做法是卸载内核自带的触摸屏驱动,重新烧写内核uImage。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网