s3c2440触摸屏驱动修改

    xiaoxiao2023-11-22  167

    为了使能我们的触摸屏,我们必须对原有的触摸屏驱动做一些小的修改,添加相应的支持。

    先添加我们的结构体,对一些参数进行设置 添加我们的ts的结构体, 我们可以看到s3c24xx_ts_set_platdata()就是将添加的触摸屏的信息传给s3c_device_ts.dev.platform的,

    我们还要注册adc和ts的设备结构体到paltform设备总线上去,这里上面的写法是错误的,&s3c_device_ts应该在&s3c_device_adc的下面,不然编译的时候不会抛错,但是移植运行内核的时候会抛错误:Unable to handle kernel NULL pointer dereference at virtual address 00000021 我估计是应为ts设备依赖着adc设备,所以得先添加了adc才不会抛错。

    进入menuconfig添加选项 Device Drivers —> Input device support —> 选上<*> Event interface <*> Event debugging

    进入 [*] Touchscreens —> <*> Samsung S3C2410/generic touchscreen input driver //选择上这个

    然后编译移植,cat /dev/input/event0,此文件下会记录触摸屏的信息,然后用手按压触摸屏,会有很多乱码显示出来,这是因为缺少tslib库来校准我们的坐标信息,Tslib是一个开源的程序,能够为触摸屏驱动获得的采样提供诸如滤波、去抖、校准等功能,通常作为触摸屏驱动的适配层,为上层的应用提供了一个统一的接口。

    下载tslib1.4版本源码,并解压 源码最好不要从windows下直接拿,从git或者直接网站下载,不然可能会编译错误, git源码网站:https://github.com/zhuerwang/Tslib.git

    进入tslib运行 ./autogen.sh生成configure,再运行 ./configure --host=arm-linux --prefix=/home/xiaobaicai/lib/tslib CC=/opt/xtools/arm920t/bin/arm-linux-gcc生成Makefile文件, 最后make && makeinstall,过程中可能需要一些工具,automake、autoconf、libtool,缺少哪个就apt-get install就行了 在安装好的路径下,也就是\home\xiaobaicai\lib\tslib,会产生五个文件,不要share,其余的四个文件打包移植到开发板上\lib\tslib下

    然后就是配置环境变量

    在 lib\tslib\etc\ts.conf中添加 然后在lib/tslib/bin/运行./ts_calibrate

    最新回复(0)