触摸屏驱动移植

在Ubuntu 8.10上,使用Linux-2.6.22内核和交叉编译器进行触摸屏驱动移植。通过下载并应用s3c2410_touchscreen.patch补丁到内核源码中,实现驱动的编译与整合。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

Ubuntu 8.10发行版

编译好的Linux-2.6.22内核

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

下载补丁:

http://svnweb.openmoko.org/branches/src/target/kernel/2.6.22.x/patches/s3c2410_touchscreen.patch?rev=3954&sortby=rev&sortdir=down&view=log

或者从上面下

 

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

(1)首先打一个补丁:s 3c 2410_touchscreen.patch,

将s 3c 2410_touchscreen.patch拷贝到内核目录下

$cp s 3c 2410_touchscreen.patch linux- 2.6.22 .6

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

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

添加头文件:#include <asm/arch/ts.h>

添加结构体:static struct s 3c 2410_ts_mach_info smdk2410_ts_cfg __initdata = {

        .delay = 20000,

        .presc = 49,

        .oversampling_shift = 2,

};

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

然后在smdk2410_map_io函数里添加:set_s 3c 2410ts_info(&smdk2410_ts_cfg);

 

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

obj-$(CONFIG_TOUCHSCREEN_S 3C 2410) += s 3c 2410_ts.o

(4)修改driver/input/touchscreen/s 3c 2410_ts.c

注释掉

#include <asm/plat-s 3c /regs-adc.h>

添加

#include <asm/arch/regs-adc.h>

 

还需修改/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-s 3c 2410/mach-h1940.c

       添加头文件#include <asm/arch/ts.h>

      

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

  Device Drivers  --->

       Input device support  --->

              <*>   Event interface   

              [*]Touchscreens  --->

               <*>Samsung S 3C 2410 touchscreen input driver                  

             [*]Samsung S 3C 2410 touchscreen debug messages    

 

(7)然后make zImage。

(8)拷贝zImage到tftpboot下

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

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

mknod dev/event 0 c 13 64

mknod dev/mouse 0 c 13 32

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值