主题 : 关于移植触摸屏驱动的问题??? 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 18441
精华: 0
发帖: 45
金钱: 225 两
威望: 45 点
综合积分: 90 分
注册时间: 2010-04-09
最后登录: 2013-08-20
楼主  发表于: 2010-05-13 14:03

 关于移植触摸屏驱动的问题???

大家好,我现在想在移植mini2440的触摸屏驱动,可是移植好后下到开发板找不到设备文件,我的文件系统支持mdev机制,其他的都能识别到如adc和fb0等,这是什么原因啊?????
具体的移植步骤如下:(adc驱动以移植成功)
1.复制友善光盘里的的s3c2440_ts.c到我自己的内核的drivers/input/touchscreen/s3c2440_ts.c
   并在touchscreen下的Makefile下添加obj-$(CONFIG_TOUCHSCREEN_S3C2410)      += s3c2410_ts.o
   编辑Kconfig,添加
   config TOUCHSCREEN_S3C2410
       tristate "Samsung S3C2410 touchscreen input driver"
       depends on INPUT && MINI2440_ADC        
       help
       Say Y here if you have the s3c2410 touchscreen.

       If unsure, say N.

        To compile this driver as a module, choose M here: the
          module will be called s3c2410_ts.
2.修改arch/arm/mach-s3c2440/mach-smdk2440.c如下:
         struct s3c2410_ts_mach_info s3c2440_ts_cfg __initdata = {
              .delay =20000,
              .presc = 55,
              .oversampling_shift = 2,
         }
    在函数smdk2440_devices中添加&s3c_device_ts
     函数smdk2440_machine_init添加s3c24xx_fb_set_platdata(&smdk2440_ts_cfg);
3.修改arch/arm/plat-s3c24xx/devs.c如下
    添加以下函数:
   static struct s3c2410_ts_mach_info s3c2410_ts_info;
   void __init s3c24xx_init_touchscreen(struct s3c2410_ts_mach_info *hard_s3c2410_ts_info)
   {
         memcpy(&s3c2410_ts_info,hard_s3c2410_ts_info,sizeof(struct s3c2410_ts_mach_info));
     }
   struct platform_device s3c_device_ts = {
     .name = "s3c2410-ts",
     .id = -1,
     .num_resources   = ARRAY_SIZE(s3c_adc_resource),
     .resource   = s3c_adc_resource,
     .dev = {
       .platform_data = &s3c2410_ts_info,
        }
      };
      EXPORT_SYMBOL(s3c_device_ts);
4.创建一个ts.h文件。里面是对s3c2410_ts_mach_info结构体的定义
5.然后make menuconfig,增加对触摸屏的支持(adc以添加过)
把编译好的uImage下到开发板了,在/dev下面找不到过于触摸屏的设备节点,不知道哪里出错了,有哪位大哥做过触摸屏移植啊,帮忙指点一下,谢谢
QtE已经移植好了,可以在开发板上运行,就是触摸屏不能用,找不到设备节点~~~
级别: 新手上路
UID: 18441
精华: 0
发帖: 45
金钱: 225 两
威望: 45 点
综合积分: 90 分
注册时间: 2010-04-09
最后登录: 2013-08-20
1楼  发表于: 2010-05-13 14:07

 回 楼主(songfangfang) 的帖子

文中有个错误,就是第二点的最后一行,应该是
在函数smdk2440_machine_init添加s3c24xx_init_touchscreen(&smdk2440_ts_cfg);
级别: 新手上路
UID: 18441
精华: 0
发帖: 45
金钱: 225 两
威望: 45 点
综合积分: 90 分
注册时间: 2010-04-09
最后登录: 2013-08-20
2楼  发表于: 2010-05-14 08:41
没有人回复吗?这个是我的内核启动信息:
s3c2410 TouchScreen successfully loaded
input: s3c2410 TouchScreen as /class/input/input0
其中有这两句,是不是说明触摸屏驱动移植成功了,可是在/dev下没有相应的设备文件
在/sys/calss/input中有个input0 ,这个应该不是,
哪位高人给指点一下,谢谢了
级别: 侠客
UID: 12186
精华: 0
发帖: 96
金钱: 480 两
威望: 96 点
综合积分: 192 分
注册时间: 2009-12-31
最后登录: 2013-11-25
3楼  发表于: 2010-05-18 20:16
小弟也遇到了这样的问题。也在解决。不知道怎么解决。哪位大侠可以解决一下啊!楼上朋友这个问题解决了没有啊?
级别: 新手上路
UID: 18441
精华: 0
发帖: 45
金钱: 225 两
威望: 45 点
综合积分: 90 分
注册时间: 2010-04-09
最后登录: 2013-08-20
4楼  发表于: 2010-05-19 13:59

 回 3楼(wuyan) 的帖子

我现在还没有解决这个问题,我的QT程序已经在mini2440上跑起来了,就是现在触摸屏的问题,并且我按屏的时候有相应信息:
X:000000000000234 Y:8766
触摸屏驱动应该没问题的,只是现在不知道出了什么问题,这几天在准备论文答辩的事情,也没时间弄
级别: 侠客
UID: 12186
精华: 0
发帖: 96
金钱: 480 两
威望: 96 点
综合积分: 192 分
注册时间: 2009-12-31
最后登录: 2013-11-25
5楼  发表于: 2010-05-20 14:47
你在配置界面中选中input下的event 接口试试。
级别: 新手上路
UID: 18441
精华: 0
发帖: 45
金钱: 225 两
威望: 45 点
综合积分: 90 分
注册时间: 2010-04-09
最后登录: 2013-08-20
6楼  发表于: 2010-06-23 10:15

 回 5楼(wuyan) 的帖子

在在内核的配置菜单中没有找到你所说的input下的event接口,楼上的朋友能说的具体点吗?
级别: 新手上路
UID: 22132
精华: 0
发帖: 3
金钱: 15 两
威望: 3 点
综合积分: 6 分
注册时间: 2010-05-27
最后登录: 2010-09-01
7楼  发表于: 2010-06-24 18:08
我也遇到了这个问题,我是按照光盘里的 移植开发实战指南的pdf里面说的搞的,结果也是触摸屏没有反应,和楼主遇到的问题类似,不知道楼主解决没有啊?谢谢!
级别: 新手上路
UID: 18441
精华: 0
发帖: 45
金钱: 225 两
威望: 45 点
综合积分: 90 分
注册时间: 2010-04-09
最后登录: 2013-08-20
8楼  发表于: 2010-06-28 14:38
我的解决了。在内核的配置菜单中选中device drivers->
                                                                        input device support ->
                                                                            <*>event interface