这次帮客户在海思352上增加触摸屏。客户工程师加了很久没搞定,客户找到我,我以为加个触摸屏应该很简单,没想到还是折腾了一阵。现把调试过程记录一下。
调触摸屏,无非整合驱动,修改DTS,配置I2C和中断脚,复位脚。如下是一个典型的DTS配置:
i2c3@3{
goodix_gt911@5D{
compatible = "goodix,gt911";
reg = <0x5D>;
goodix_rst = <PAD_PM_GPIO7>;
goodix_int = <PAD_PM_GPIO6>;
interrupts-extended = <&ms_pm_intc INT_PMSLEEP_GPIO6>;
interrupt-names = "goodix_int";
};
};
坑的是,海思352触摸配置不走DTS,没有I2C的挂载点,就是这里卡了很久,只能另辟蹊径。
想到遥控器,按键板也是当做一个虚拟输入设备处理,触摸屏可以模拟这样操作。
1. 首先在kernel注册tp设备;
2. tp设备初始化,这里需要导入tp的驱动;
3. 修改驱动,配置I2C,复位脚;
4. 参考海思文档,增加GPIO中断处理。
至此,触摸加好。