I.MX6开发板移植Linux4.1.15内核之TSC2007触摸屏设备树信息的添加
发布日期:2021-07-01 00:05:05
浏览次数:2
分类:技术文章
本文共 2446 字,大约阅读时间需要 8 分钟。
之前写过一篇3.0.35内核移植关于TSC2007触摸屏驱动移植的文章。里面对TSC2007.c驱动程序的分析比较清晰,点击链接查看:
本篇文章,主要记录在4.1.15内核移植的过程中,对于TSC2007设备的添加,需要如何添加设备树信息。
1、TSC2007硬件原理图分析
先看相关原理图:
tsc2007控制器芯片的原理图。
由tsc2007芯片原图与核心板相关连接的引脚知:
- 触摸屏与CPU通过I2C总线进行数据传输,且为I2C3
- I2C3有两条线,SCL与SDA,分别于核心板的GPIO_3与GPIO_6连接
- 中断引脚为GPIO6_IO7,与核心板的连接为NAND_CLE系列引脚
2、TSC2007设备树的添加
本次主要修改imx6qdl-sabresd.dtsi文件,该文件是与具体外设相关的文件
在i2c3节点下:
&i2c3 { clock-frequency = <100000>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c3>; status = "okay"; //添加 tsc2007@48 { compatible = "ti,tsc2007"; reg = <0x48>; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_i2c1_tsc2007_int>; interrupt-parent = <&gpio6>; interrupts = <0x7 0x8>; gpios = <&gpio6 7 0>; ti,x-plate-ohms = <180>; };};
在iomuxc节点下的imx6qdl-sabresd节点下:
&iomuxc { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_hog>; imx6qdl-sabresd { ........ ........ pinctrl_i2c3: i2c3grp { fsl,pins = < MX6QDL_PAD_GPIO_3__I2C3_SCL 0x4001b8b1 MX6QDL_PAD_GPIO_6__I2C3_SDA 0x4001b8b1 >; }; pinctrl_i2c1_tsc2007_int: i2c1_tsc2007_int { fsl,pins = < MX6QDL_PAD_NANDF_CLE__GPIO6_IO07 0x80000000 >; }; ........ ........ };};
3、触摸屏的校准
校准的目的:为了与显示屏的坐标一一对应。我们一般采用软件校准,使用Tslib库里的校准软件进行校准们首先需要移植Tslib库。
- 将Tslib库编译安装到文件系统中
编译tslib(放到rootfs/tslib/tslib):$ tar xzf tslib-1.4.tar.gz$ cd tslib$ ./autogen.sh $ mkdir tmp$ echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache$ ./configure --host=arm-linux --cache-file=arm-linux.cache --prefix=$(pwd)/tmp$ make$ make install
我的这一步骤是放到开发的环境中做的,其实可以直接在单板上搞,如果单板上是有编译器的话。
- 然后将系统烧写到单板,在单板上操作:
$ cd /tslib/tslib/tmp$ cp * / -rfd1.修改 /etc/ts.conf第1行(去掉#号和第一个空格):# module_raw input改为:module_raw input2.添加环境变量$ export TSLIB_TSDEVICE=/dev/input/event1$ export TSLIB_CALIBFILE=/etc/pointercal$ export TSLIB_CONFFILE=/etc/ts.conf$ export TSLIB_PLUGINDIR=/lib/ts$ export TSLIB_CONSOLEDEVICE=none$ export TSLIB_FBDEVICE=/dev/fb0
- 测试
$ ts_calibrate
$ ts_test
备注:如果出现段错误,解决办法如下:
1、ts.conf文件中的各个设置选项之前不能有空格,否则会出现: Segmentation fault 错误2、不要在pointercal对应的目录下,建立一个空的pointercal文件,否则在运行ts_calibrate时,
也可能会出现Segmentation fault4、总结
不要放弃,下一次就会成功!!!
学习探讨加:
qq:1126137994 微信:liu1126137994转载地址:https://lyy-0217.blog.csdn.net/article/details/83318024 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月30日 10时43分33秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
在VC环境中调试跟踪变量
2019-05-01
开源网络通信库参考
2019-05-01
c++/c#类互用
2019-05-01
我的C++实践(10-15)
2019-05-01
实验吧杂项-流量日志分析
2019-05-01
C++ Singleton (单例) 模式最优实现
2019-05-01
linux进程、线程与cpu的亲和性(affinity)
2019-05-01
mac的terminal快捷键
2019-05-01
C语言可变参数va_list
2019-05-01
__BEGIN_DECLS 和 __END_DECLS
2019-05-01
[转帖]Robots.txt指南
2019-05-01
[转帖]robots.txt和Robots META标签
2019-05-01
[转帖]Gooele排名PR页查询
2019-05-01
[转帖]Google左侧排名攻略
2019-05-01
Tomcat配置技巧
2019-05-01
安装eclipse及语言包
2019-05-01
启动TOMCAT时出现"-Djaava.endorsed.dirs="的解决办法
2019-05-01
Eclipse + MyEclipse下配置J2EE工程(英文界面)
2019-05-01
Eclipse及其插件下载网址大全
2019-05-01