前言
平台:RK3568
系统:Android 11
需求:MIPI触摸屏适配
驱动移植
从触摸厂商获取最新的驱动包,将驱动包放入到kernel\drivers\input\touchscreen\
目录,修改Kconfig以及Makefile;
设备树修改
&i2c3 {clock-frequency = <100000>;status = "okay";pinctrl-0 = <&i2c3m1_xfer>;gt9xx:gt9xx@5d {status = "okay";compatible = "goodix,gt9xx";pinctrl-names = "default";pinctrl-0 = <>9xx_gpio>;reg = <0x5d>;touch-gpio = <&gpio0 RK_PB5 IRQ_TYPE_LEVEL_LOW>;reset-gpio = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>;tp-size = <911>;max-x = <800>;max-y = <1280>;};
};>9xx {//power-supply = <&vcc3v3_lcd0_n>;
};&pinctrl {touch {gt9xx_gpio: gt9xx-gpio {rockchip,pins = <0 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>,<0 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;};};
};
其中:
touch-gpio
:中断引脚reset-gpio
:复位引脚tp-size
:触摸板类型max-x
:屏幕 x 方向分辨率max-y
:屏幕 y 方向分辨率
调试
- 正常驱动跑起来时,会打印版本号以及probe函数,说明真正跑了驱动。如果没有打印,检查DTS配置;
- 如果触摸时,x跟y的方向反了,需要修改
gtp_change_x2y
- 如果触摸屏可以响应操作,方向正常,但是位置不对,大概率是配置参数有误,需要写入正确的峰位配置