GT911触摸移植
百度网站
文章目录
- GT911触摸移植
- 一、添加gt911库文件
- 二、添加设备树文件
- 修改文件路径 :arch/arm/boot/dts/suniv-f1c100s.dtsi
- 修改文件路径 :arch/arm/boot/dts/suniv-f1c100s-licheepi-nano.dts
- 编译烧录
- 三、添加ts-lib触摸测试软件
- 参考
一、添加gt911库文件
在 drivers/input/touchscreen 路径下添加gt911.c文件
修改Makefile 添加gt911.c的文件编译 drivers/input/touchscreen/Makefile 添加obj-y += gt911.o
二、添加设备树文件
修改文件路径 :arch/arm/boot/dts/suniv-f1c100s.dtsi
添加I2C属性定义 到soc节点下
i2c0: i2c@1C27000 {compatible = "allwinner,sun6i-a31-i2c";reg = <0x01C27000 0x400>;interrupts = <7>;clocks = <&ccu CLK_BUS_I2C0>;resets = <&ccu RST_BUS_I2C0>;pinctrl-names = "default";pinctrl-0 = <&i2c0_pins>;status = "disabled";#address-cells = <1>;#size-cells = <0>;
};
添加I2C引脚定义 到pio节点下
i2c0_pins: i2c0 {pins = "PD0", "PD12";function = "i2c0";
};
修改LCD的引脚定义,因为有两个脚被I2C占用了
lcd_rgb666_pins: lcd-rgb666-pins {pins = "PD1", "PD2", "PD3", "PD4","PD5", "PD6", "PD7", "PD8", "PD9","PD10", "PD11", "PD13", "PD14","PD15", "PD16", "PD17", "PD18", "PD19","PD20", "PD21";function = "lcd";
};
修改文件路径 :arch/arm/boot/dts/suniv-f1c100s-licheepi-nano.dts
添加头文件
#include <dt-bindings/input/input.h>
#include <dt-bindings/interrupt-controller/irq.h>
添加gt911设备树配置
&i2c0 {pinctrl-0 = <&i2c0_pins>;pinctrl-names = "default";status = "okay";/* 触摸 */gt911:gt911@5d {compatible = "goodix,gt911","goodix,gt9xx";reg = <0x5d>;pinctrl-names = "default";interrupt-parent = <&pio>;interrupts = <4 12 IRQ_TYPE_EDGE_FALLING>; irq-gpio = <&pio 4 12 GPIO_ACTIVE_HIGH>; rst-gpio = <&pio 0 0 GPIO_ACTIVE_HIGH>; status = "okay";};
};
编译烧录
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j12
编译文件放到SD卡的boot分区之后开机,可看到驱动已经挂上。
ls /dev/input/
cat proc/interrupts
三、添加ts-lib触摸测试软件
触摸驱动移植成功后需要判断是否可用,可以用ts-lib 这个软件直观的测试触摸驱动
buildroot配置安装ts-lib软件
make menuconfig
打开ts-lib功能 位置:Target packages > Libraries > Hardware handling > tslib
编译软件
make -j12
编译完成 烧录根目录文件系统后启动开发板,在 /usr/bin 路径下会发现多了很多可执行文件
接下来要设置tslib的配置文件
打开 /etc/ts.conf 文件 查看是否有 module_raw input 如果被注解解开注解 如果没有自己添加一句
打开/etc/profile 文件,在里面加入如下内容:
export TSLIB_TSDEVICE=/dev/input/event0 #触摸驱动文件路径
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONFFILE=/etc/ts.conf #触摸配置文件路径
export TSLIB_PLUGINDIR=/usr/lib/ts #触摸库文件路径 input.so 文件的所在路径
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0 #软件显示在那个fb上
具体配置方法可参考tslib移植小问题这篇博客
保存后重启开发板,输入ts_test启动测试软件,可以直观的测试触摸情况了。
参考
https://blog.csdn.net/Ternence_zq/article/details/109778136
链接