您的位置:首页 > 产品设计 > UI/UE

移植触屏驱动,利用buildroot编译tslib,

2016-08-08 10:56 453 查看
基于2440开发板

1. 内核修改

1.1首先更改平台设备文件

arch/arm/mach-s3c24xx/mach-lxa2440.c(由mach-mini2440.c修改而来)

添加头文件ts.h,最新版的内核这个头文件更改了位置,自查下.

#include <plat/ts.h>


添加触摸设备

/* Touchscreen device support added by anzyelay */
static struct s3c2410_ts_mach_info lxa2440_ts_info = {
.delay = 10000, //延时
.presc = 49,    //预分频
.oversampling_shift = 2,//采样次数 2的2次方
};


增加将s3c_device_ts添加到设备组中选项

主要是修改lxa2440_parse_features函数中的case ‘t’

case 't':
if(features->done & FEATURE_TOUCH)
printk(KERN_INFO "LXA2440: '%c' ignored, "
"touchscreen not compiled in\n", f);
else {
features->optional[features->count++] =
&s3c_device_ts;
}
features->done |= FEATURE_TOUCH;
break;


修改lxa2440_features_str,将s3c_device_ts添加到设备组中

static char lxa2440_features_str[12] __initdata = "4t";


或者在启动参数中加入lxa2440=4t,新版内核就是通过lxa2440_features_str字符组来支持从启动参数处更改,

此处添加后,在lxa2440_init中会调用lxa2440_parse_features(&features, lxa2440_features_str);,最终将其添加到设备数组中去

初始触摸设备

在lxa2440_init中添加触摸设备的初始化信息.

s3c24xx_udc_set_platdata(&lxa2440_udc_cfg);
s3c24xx_mci_set_platdata(&lxa2440_mmc_cfg);
s3c_nand_set_platdata(&lxa2440_nand_info);
s3c_i2c0_set_platdata(NULL);
s3c24xx_ts_set_platdata(&lxa2440_ts_info);//初始化触摸设备


1.2 修改编译配置,增加触摸驱动

Device Drivers  --->
Input device support  --->
[*]   Touchscreens  --->
<*>   Samsung S3C2410/generic touchscreen input driver


1.3 编译下载

下载成功后可以看到ls /dev/input/event0

cat一下,手点下屏幕看看是否有输出信息,有就说明移植成功了.

2 使用buildroot编译tslib

执行make menuconfig

Target packages  --->
Graphic libraries and applications (graphic/text)  --->
[*] Qt5  --->
[*]     Enable Tslib support


或者qt–>Mouse drivers —>tslib

编译成功后下载到开发板或nfs mount过去执行ts_calibration校正看看是否可以.

这个就是这么傻瓜式操作了.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: