i.MX6ULL终结者Linux 电容触摸屏实验使用Linux内核自带的ft5426驱动

在Linux内核中集成了许多电容触摸芯片的驱动,其中就包括我们使用的ft5426的驱动。所以我们来使用一下Linux内核自带的ft5426驱动文件。在使用之前需要先将前面我们添加的ft5426.c驱动文件去除掉,只 需 要 修 改drivers/input/touchscreen/Makefile 这个文件即可,将下面这一行删除掉:
obj-y += ft54266.o
内核自带的 ft5426 的驱动文件为 drivers/input/touchscreen/edt-ft5x06.c。
1、使能内核ft5426驱动配置
要使用Linux内核自带的驱动,需要添加Linux内核配置。首先打开图形化配置界面,命令如下:
make ARCH=arm menuconfig
配置路径如下:

Device Drivers  --->
Input device support  --->
[*]   Touchscreens  --->
<*>   EDT FocalTech FT5x06 I2C Touchscreen support

配置如图 1所示:
i.MX6ULL终结者Linux 电容触摸屏实验使用Linux内核自带的ft5426驱动_第1张图片

图 1

配置完成后重新编译Linux内核,生成zImage镜像。
2、修改设备树文件
我们要根据edt-ft5x06.c 文件中的compatible 属性修改设备树下ft5426设备节点的compatible 属性值edt-ft5x06.c 所支持的 compatible 属性列表如下所示:

static const struct of_device_id edt_ft5x06_of_match[] = { 
{ .compatible = "edt,edt-ft5206", }, 
{ .compatible = "edt,edt-ft5306", }, 
{ .compatible = "edt,edt-ft5406", }, 
{ /* sentinel */ } 
}; 

可以看出,edt-ft5x06.c 文件默认支持的 compatible 属性只要三个“edt,edt-ft5206”、 “edt,edt-ft5306”和“edt,edt-ft5406”。我们可以修改设备树中的 ft5426 节点,在 compatible 属性值添加一条“edt,edt-ft5406”,或者在edt-ft5x06.c文件中的edt_ft5x06_of_match 表,在里面添加一条:
{ .compatible = "edt,edt-ft5426", }
总之一句话,让 ft5426 这个设备和 edt-ft5x06.c 这个驱动匹配起来。这里我们修改设备树下的ft5426设备节点,修改后如下所示;

1 ft5426: ft5426@38 { 
2  compatible = "edt,edt-ft5426","edt,edt-ft5406"; 
3  reg = <0x38>; 
4  pinctrl-names = "default";
5  pinctrl-0 = <&pinctrl_tsc>; 
6  interrupt-parent = <&gpio1>; 
7    interrupts = <9 0>; 
8  reset-gpios = <&gpio5 9 GPIO_ACTIVE_LOW>; 
9    interrupt-gpios = <&gpio1 9 GPIO_ACTIVE_LOW>; 
10 }; 

在compatible属性中添加"edt,edt-ft5406"兼容值。
设备树修改完成后,重新编译。然后使用新的zImage和dtb设备树文件启动开发板。驱动正常的情况,有如下启动信息:
在这里插入图片描述

图 2

然后可以使用下面的命令查看input设备的具体情况:
cat /proc/bus/input/devices
结果如图 3:
i.MX6ULL终结者Linux 电容触摸屏实验使用Linux内核自带的ft5426驱动_第2张图片

图 3

然后可以使用hexdump或者ts_test_mt命令进行测试。

i.MX6ULL终结者Linux 电容触摸屏实验使用Linux内核自带的ft5426驱动_第3张图片

你可能感兴趣的:(#,第四部分,Linux驱动开发,i.MX6ULL终结者,linux,开发,嵌入式)