kuangboqi123 发表于 2022-10-21 21:59:27

A40i通过TWI1驱动GT911触摸屏

之前使用USB免驱板,驱动GOODIX的GT911触摸IC,后续发现系统不是特别兼容,在多指滑动屏幕几次后,屏幕就失灵了, 软件是正常运行的,重新插拔USB就恢复正常,此问题实在无从下手解决,瞎鼓捣了几天也没搞明白一二,后来直接去掉免驱板,使用TWI总线直接驱动,看飞凌手册,默认配置是使用TWI3驱动gt911,但奈何引脚都被占用,所以更换TWI1和其他RST与INT引脚。
本文也是分享一下配置方式,提供各位需要的朋友,少走弯路,修改sys_config文件要注意TWI的id是否选择,TWI是否使能

twi1_used      = 1
twi1_scl         = port:PB18<2><default><default><default>
twi1_sda         = port:PB19<2><default><default><default>
;----------------------------------------------------------------------------------
;capacitor tp configuration电容触摸
;external int function
;wakeup output function
;notice ---    tp_int_port &tp_io_port use the same port
;compatible       设备名字
;ctp_used                  是否使用
;ctp_name                  用作区别gd系列,适配屏幕分辨率
;ctp_twi_id                  用作选择iic的adapter,可选1,2
;ctp_twi_addr   指明iic设备地址,与硬件相关
;ctp_screen_max_x 触摸板x最大坐标
;ctp_screen_max_y 触摸板y最大坐标
;ctp_touch_panel_max_x
;ctp_touch_panel_max_y
;ctp_revert_x_flag是否需要反转x坐标,需要置1,反之置0
;ctp_revert_y_flag是否需要反转y坐标,需要置1,反之置0
;ctp_exchange_x_y_flag是否需要xy坐标对换
;ctp_power_ldo          触摸屏电源配置
;ctp_power_ldo_vol触摸屏电压配置
;ctp_int_port          电容屏中断信号GPIO配置
;ctp_wakeup                  电容屏唤醒信号GPIO配置
;----------------------------------------------------------------------------------

compatible          = "allwinner,sun50i-ctp-para"
ctp_used            = 1
ctp_name            = "gt9xx_ts"
ctp_twi_id          = 1
ctp_twi_addr      = 0x14
ctp_screen_max_x    = 800
ctp_screen_max_y    = 480
ctp_touch_panel_max_x= 800
ctp_touch_panel_max_y= 480
ctp_revert_x_flag   = 0
ctp_revert_y_flag   = 0
ctp_exchange_x_y_flag = 0
ctp_power_ldo       = "vcc-ctp"
ctp_power_ldo_vol   = 3300

ctp_int_port      = port:PH02<6><default><default><default>
ctp_wakeup          = port:PH05<1><default><default><0>

;----------------------------------------------------------------------------------
;compatible配置名称
;ctp_list_used 支持触摸屏list
;ft5x_ts       是否支持ft5x_ts模组
;gt82x             同上
;gt9xx_ts      同上
;gt9xxnew_ts   同上
;gt811             同上
;zet622x       同上
;aw5306_ts   同上
;----------------------------------------------------------------------------------

compatible          = "allwinner,sun50i-ctp-list"
ctp_list_used          = 1
ft5x_ts             = 1
gt82x               = 1
gt9xx_ts            = 1
gt9xxnew_ts         = 1
gt811               = 1
zet622x             = 1
aw5306_ts          = 1我之前就是这两个总是差一个条件,最坑的是我把TWI1的引脚模式改了, 后来恢复才发现好使,置于xy方向镜像都是小问题, 修改对应反向即可。
在就是看一下系统中是否编译了GT9xx的触摸驱动,是否自动加载了,官方默认源码好像是没有打开,需要修改sun8iw11p1smp_oka40i_c_defconfig文件
将CONFIG_TOUCHSCREEN_GT9XXNEW_TS=y设置y,y就是开机自动加载,m就是编译出ko文件,需要人工手动加载。
最后,放上我修改的相关文件在附件中。祝大家一次成功。

页: [1]
查看完整版本: A40i通过TWI1驱动GT911触摸屏