Chinaunix首页 | 论坛 | 博客
  • 博客访问: 936405
  • 博文数量: 192
  • 博客积分: 3070
  • 博客等级: 中校
  • 技术积分: 1861
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-27 23:44
个人简介

Start Linux Leave Linux a while Back to Linux

文章分类

全部博文(192)

文章存档

2023年(18)

2022年(11)

2021年(8)

2020年(14)

2019年(7)

2018年(13)

2017年(16)

2016年(4)

2012年(2)

2011年(13)

2010年(26)

2009年(13)

2008年(27)

2007年(20)

我的朋友

分类: LINUX

2009-04-23 22:03:12

在Linux-2.6.21选中s3c touch panel驱动,在启动系统时发现无法注册 touch panel的驱动,后来发现原来是 touch panel的驱动与 adc 的驱动发生冲突了.
在 driver/input/touchscreen/s3c-ts.c 中,
 

static struct platform_driver s3c_ts_driver = {
       .probe = s3c_ts_probe,
       .remove = s3c_ts_remove,
       .suspend = s3c_ts_suspend,
       .resume = s3c_ts_resume,
       .driver        = {
        .owner    = THIS_MODULE,
        .name    = "s3c2410-adc",   <<---
    },
};

再到 arch/arm/plat-s3c24xx/devs.c

struct platform_device s3c_device_adc = {
    .name         = "s3c-adc",
    .id         = -1,
    .num_resources     = ARRAY_SIZE(s3c_adc_resource),
    .resource     = s3c_adc_resource,
};

发现devs.c中是没有 s3c2410-adc 这个名字的资源的,所以到了 probe这个函数里就无法正常注册设备.

所以只需将 s3c-ts.c 这个文件中的 s3c2410-adc 改为 s3c-adc 这个名字就可以了.不过这样会产生另外一个问题,就是会导致 ADC 的驱动不能用,所以现在adc与touch panel的驱动只能2选1,以后找到解决的方法再写出来.

 

阅读(1738) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2009-05-02 23:38:06

将这两个写到一起就OK了.