700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 基于百问网IMX6ULL_PRO开发板移植LCD多点触摸驱动(GT911)

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

时间:2023-09-07 22:51:35

相关推荐

基于百问网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 0000 05 5A 46 53 11 00 00 11 1114 14 14 22 0A 04 00 00 00 0000 00 53 00 14 00 00 84 00 003C 00 00 64 1E 28 87 27 08 3234 05 0D 20 33 60 11 02 24 0000 64 80 80 14 02 00 00 54 8968 85 6D 82 72 80 76 7D 7B 7B00 00 00 00 00 00 00 F0 50 3CFF FF 07 00 00 00 02 14 14 0304 00 21 64 0A 00 00 00 00 0000 00 00 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00 0032 20 50 3C 3C 00 00 00 00 000D 06 0C 05 0B 04 0A 03 FF FFFF FF FF FF 00 01 02 03 04 0506 07 08 09 0A 0B 0C 0D FF FFFF FF FF FF FF FF FF FF FF FF00 00 00 00 00 00 00 00 00 0000 00 00 00 3C 00 05 1E 00 022A 1E 19 14 02 00 03 0A 05 0000 00 00 00 00 00 01 FF FF 8622 03 00 00 33 00 0F 00 00 0050 3C 50 00 00 00 00 2A 01];/*5*/goodix,cfg-group2 = [00 20 03 E0 01 05 3C 00 01 0828 0C 50 32 03 05 00 00 00 0000 00 00 17 19 1E 14 8B 2B 0D33 35 0C 08 00 00 00 9A 03 1100 01 00 00 00 00 00 32 00 0000 20 58 94 C5 02 00 00 00 04B0 23 00 93 2B 00 7B 35 00 6941 00 5B 4F 00 5B 00 00 00 0000 00 00 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00 0000 00 00 00 00 00 00 00 00 0000 00 02 04 06 08 0A 0C 0E 1012 14 16 18 1A FF 00 00 00 0000 00 00 00 00 00 00 00 00 0000 00 00 02 04 06 08 0A 0C 0F10 12 13 16 18 1C 1D 1E 1F 22 24 26 FF FF FF FF 00 0000 FF FF FF FF FF FF FF FF FFFF FF FF FF 48 01];};}

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

make dtbsmake -j32

下载到单板上,进入/dev/input目录,测试一下

这里event2并不是绝对的,根据实际情况

cd /dev/inputhexdump event2

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。