Chinaunix首页 | 论坛 | 博客
  • 博客访问: 863184
  • 博文数量: 156
  • 博客积分: 6553
  • 博客等级: 准将
  • 技术积分: 3965
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-22 18:36
文章存档

2012年(3)

2011年(43)

2010年(110)

分类: LINUX

2010-10-02 18:06:04

文件: s3c2410_touchscreen.zip
大小: 4KB
下载: 下载
环境:

Ubuntu 8.10发行版

编译好的Linux-2.6.22内核

交叉编译器 arm-softfloat-linux-gnu-gcc-3.4.5

下载补丁:

或者从上面下

 

找到第一个download 点击下载即可

(1)首先打一个补丁:s3c2410_touchscreen.patch

s3c2410_touchscreen.patch拷贝到内核目录下

$cp s3c2410_touchscreen.patch linux-2.6.22.6

$patch -p1 < s3c2410_touchscreen.patch(在内核下执行)

(2)然后修改arch/arm/mach-s3c2410/mach-smdk2410.c添加如下代码:

添加头文件:#include

添加结构体:static struct s3c2410_ts_mach_info smdk2410_ts_cfg __initdata = {

        .delay = 20000,

        .presc = 49,

        .oversampling_shift = 2,

};

并添加支持触摸屏平台代码的信息,这个找到一个名为*smdk2410_devices[]的结构体指针数组里添加:&s3c_device_ts,

然后在smdk2410_map_io函数里添加:set_s3c2410ts_info(&smdk2410_ts_cfg);

 

(3)修改driver/input/touchscreen/Makefile,添加如下内容:

obj-$(CONFIG_TOUCHSCREEN_S3C2410) += s3c2410_ts.o

(4)修改driver/input/touchscreen/s3c2410_ts.c

注释掉

#include 3c/regs-adc.h>

添加

#include

 

还需修改/include/asm/arch/ts.h中

void __init set_s3c2410ts_info(struct s3c2410_ts_mach_info *hard_s3c2410ts_info);

void set_s3c2410ts_info(struct s3c2410_ts_mach_info *hard_s3c2410ts_info);

修改下面内容

ts.dev->evbit[0] = BIT_MASK(EV_SYN) | BIT_MASK(EV_KEY) |

                 BIT_MASK(EV_ABS);

ts.dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH);

ts.dev->evbit[0] = 0xb;

ts.dev->keybit[0xa] = 0x400;

ts.dev->evbit[0] = BIT(EV_SYN) | BIT(EV_KEY) |

                 BIT(EV_ABS);

ts.dev->keybit[LONG(BTN_TOUCH)] = BIT(BTN_TOUCH

这两种方法都可以。

 

(5)修改arch/arm/mach-s3c2410/mach-h1940.c

       添加头文件#include

      

(6) make menuconfig 配置支持触摸屏驱动

  Device Drivers  --->

       Input device support  --->

              <*>   Event interface   

              [*]Touchscreens  --->

               <*>Samsung S3C2410 touchscreen input driver                  

             [*]Samsung S3C2410 touchscreen debug messages    

 

(7)然后make zImage

(8)拷贝zImagetftpboot

(9)系统启动以后会在dev目录下产生event0 mouse0两个设备节点,它们就是触摸屏的设备节点。

文件系统没有支持udevmdev的话就必须进行下面步骤

mknod dev/event0 c 13 64

mknod dev/mouse0 c 13 32

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

xutianxi2012-12-26 11:32:23

cailantu2012: 您好,我想问一下,我做的文件系统,运行后,在dev/下没有event0这个设备,我的文件系统有mdev -s这样的rcS中,内核也勾选了相应的触摸屏支持,想咨询下,这个问.....
我也很久没做底层了,基本忘了。不好意思

cailantu20122012-11-19 17:18:26

您好,我想问一下,我做的文件系统,运行后,在dev/下没有event0这个设备,我的文件系统有mdev -s这样的rcS中,内核也勾选了相应的触摸屏支持,想咨询下,这个问题是还有哪个地方没有做到位么?