基于百问网IMX6ULL_PRO开发板移植LCD多点触摸驱动(GT911)

引言

笔者这里使用的Linux内核是自己移植的4.1.15版本

添加驱动代码

进入drivers/input/touchscreen目录查找是否拥有gt911驱动

cd drivers/input/touchscreen/
grep -nR gt911

在这里插入图片描述
去查看一下百问网官方是否用的这个驱动
在设备树中搜索gt9
在这里插入图片描述
看来用的不是我们刚才搜索到的驱动,我们去百问网官方源码里面去搜索一下这个gt9xx

grep -nR gt9xx

在这里插入图片描述
看来还在一个文件夹里面,那我们直接复制这个文件夹到我们的驱动文件里面(如果没有此文件请点此下载

cp 百问网Linux源码目录/drivers/input/touchscreen/gt9xx 你的Linux源码目录/

添加gt9xx到menuconfig中

打开drivers/input/touchscreen/文件夹,打开Kconfig,添加上gt9xx的Kconfig文件的路径,这样我们才能用图形化界面去配置gt9xx驱动
在这里插入图片描述
打开drivers/input/touchscreen/Makefile,末尾加入gt9xx路径,别忘了**//**表明这是一个文件夹而非文件
在这里插入图片描述
回到Linux源码主目录,进入配置

make menuconfig

配置项目录为:
Device Drivers
->Input device support
->Touchscreens
->Goodix touchpanel GT9xx series
在这里插入图片描述
至此gt9xx源码就添加完毕了,但是我们还没有添加设备树描述硬件资源呢,由于板子是百问网的板子,参考的gt9xx驱动也是从百问网官方拷贝来的,所以我们可以直接抄设备树

&iomuxc_snvs {
		pinctrl_tsc_reset: tscresetgrp  {        /*!< Function assigned for the core: Cortex-A7[ca7] */
            fsl,pins = <
                MX6ULL_PAD_SNVS_TAMPER2__GPIO5_IO02        0x000110A0
            >;
        };
}

&iomuxc{
		pinctrl_touchscreen_int: lcdif_tsc_int {
			fsl,pins = <
					MX6UL_PAD_GPIO1_IO05__GPIO1_IO05 0x000010B0
				>;
            };
}

&i2c2{
	gt9xx@5d {
                compatible = "goodix,gt9xx";
                reg = <0x5d>;
                status = "okay";
                interrupt-parent = <&gpio1>;
                interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
                pinctrl-names = "default";
                pinctrl-0 = <&pinctrl_tsc_reset &pinctrl_touchscreen_int>;
                reset-gpios = <&gpio5 2 GPIO_ACTIVE_LOW>;
                irq-gpios = <&gpio1 5 IRQ_TYPE_EDGE_FALLING>;
                irq-flags = <2>;                /*1:rising 2: falling*/

                touchscreen-max-id = <1>;
                touchscreen-size-x = <800>;
                touchscreen-size-y = <480>;
                touchscreen-max-w = <1024>;
                touchscreen-max-p = <1024>;
                /*touchscreen-key-map = <172>, <158>;*/ /*KEY_HOMEPAGE, KEY_BACK*/

                goodix,type-a-report = <0>;
                goodix,driver-send-cfg = <1>;
                goodix,create-wr-node = <1>;
                goodix,wakeup-with-reset = <0>;
                goodix,resume-in-workqueue = <0>;
                goodix,int-sync = <0>;
                goodix,swap-x2y = <0>;
                goodix,esd-protect = <0>;
                goodix,pen-suppress-finger = <0>;
                goodix,auto-update = <0>;
                goodix,auto-update-cfg = <0>;
                goodix,power-off-sleep = <0>;

                /*7*/
                goodix,cfg-group0 = [
6b 00 04 58 02 05 0d 00 01 0f 
28 0f 50 32 03 05 00 00 00 00 
00 00 00 00 00 00 00 8a 2a 0c 
45 47 0c 08 00 00 00 40 03 2c 
00 01 00 00 00 03 64 32 00 00 
00 28 64 94 d5 02 07 00 00 04 
95 2c 00 8b 34 00 82 3f 00 7d 
4c 00 7a 5b 00 7a 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 
00 00 18 16 14 12 10 0e 0c 0a 
08 06 04 02 ff ff 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 
00 00 16 18 1c 1d 1e 1f 20 21 
22 24 13 12 10 0f 0a 08 06 04 
02 00 ff ff ff ff ff ff 00 00 
00 00 00 00 00 00 00 00 00 00 
00 00 00 00 79 01
                ];

                /*4.3*/
                goodix,cfg-group1 = [
                97 E0 01 10 01 05 0D 00 01 00
                00 05 5A 46 53 11 00 00 11 11
                14 14 14 22 0A 04 00 00 00 00
                00 00 53 00 14 00 00 84 00 00
                3C 00 00 64 1E 28 87 27 08 32
                34 05 0D 20 33 60 11 02 24 00
                00 64 80 80 14 02 00 00 54 89
                68 85 6D 82 72 80 76 7D 7B 7B
                00 00 00 00 00 00 00 F0 50 3C
                FF FF 07 00 00 00 02 14 14 03
                04 00 21 64 0A 00 00 00 00 00
                00 00 00 00 00 00 00 00 00 00
                00 00 00 00 00 00 00 00 00 00
                32 20 50 3C 3C 00 00 00 00 00
                0D 06 0C 05 0B 04 0A 03 FF FF
                FF FF FF FF 00 01 02 03 04 05
                06 07 08 09 0A 0B 0C 0D FF FF
                FF FF FF FF FF FF FF FF FF FF
                00 00 00 00 00 00 00 00 00 00
                00 00 00 00 3C 00 05 1E 00 02
                2A 1E 19 14 02 00 03 0A 05 00
                00 00 00 00 00 00 01 FF FF 86
                22 03 00 00 33 00 0F 00 00 00
                50 3C 50 00 00 00 00 2A 01
                ];

                /*5*/
                goodix,cfg-group2 = [
                00 20 03 E0 01 05 3C 00 01 08
                28 0C 50 32 03 05 00 00 00 00
                00 00 00 17 19 1E 14 8B 2B 0D
                33 35 0C 08 00 00 00 9A 03 11
                00 01 00 00 00 00 00 32 00 00
                00 20 58 94 C5 02 00 00 00 04
                B0 23 00 93 2B 00 7B 35 00 69
                41 00 5B 4F 00 5B 00 00 00 00
                00 00 00 00 00 00 00 00 00 00
                00 00 00 00 00 00 00 00 00 00
                00 00 00 00 00 00 00 00 00 00
                00 00 02 04 06 08 0A 0C 0E 10
                12 14 16 18 1A FF 00 00 00 00
                00 00 00 00 00 00 00 00 00 00
                00 00 00 02 04 06 08 0A 0C 0F
                10 12 13 16 18 1C 1D 1E 1F 20
                21 22 24 26 FF FF FF FF 00 00
                00 FF FF FF FF FF FF FF FF FF
                FF FF FF FF 48 01
                ];

        };
}

保存后回到主目录编译设备树和内核

make dtbs
make -j32

下载到单板上,进入/dev/input目录,测试一下
这里event2并不是绝对的,根据实际情况

cd /dev/input
hexdump event2

在这里插入图片描述

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值