先说结论:如果使用的是正点原子官方例程源码中gt9147.c文件,去驱动4.3寸屏幕触摸却没有反应的话,大概率问题出在设备树上。
按照正点原子驱动手册上64.7章内容修改好设备树后,要注意检查引脚复用。
先选中这个 MX6UL_PAD_SNVS_TAMPER9__GPIO5_IO09 引脚, ctrl+f设备树文件下全局搜索,发现只有一处定义,因此不用管,看下一个引脚
同上一步搜素 MX6UL_PAD_GPIO1_IO09__GPIO1_IO09 引脚检查是否有复用,发现果然有另一处复用了这一引脚
于是将这一行引脚复用屏蔽掉。
此时博主以为已经检查完了设备树内引脚复用的问题,于是便编译设备树进开发板,重启开发板加载gt9147驱动模块,却发现4.3寸屏触摸仍然无反应。于是开始怀疑是不是官方例程有问题,上网查资料发现正点原子早期4.3寸屏幕使用的是gt9147芯片,后期改为了gt1151芯片。
于是博主开始以为是官方未针对1151芯片修改例程,导致的触摸失效。于是开始了长时间的查资料始终没解决问题。
最后在官方论坛上发现有人提出可能是设备树内还存在引脚复用没屏蔽导致的驱动失效。
于是找到了上图中这一行 gpio = <&gpio1 9 GPIO_ACTIVE_HIGH>,这里与原先修改的内容冲突
于是将其屏蔽掉后,编译设备树,重启开发板,加载驱动模块后发现4.3寸屏幕有触摸反馈。
使用tslib测试发现4.3屏幕触摸正常。
不管是gt9147还是gt1151使用官方例程中的gt9147文件都可以实现屏幕触摸