1)驱动的加载
如果使用了自动检测功能,只需在device/vendor-name/device-name/init.sunxi.rc加载
insmod /system/vendor/modules/sw-device.ko
模块,此驱动会自动检测使用的tp,并根据检测结果加载相应的tp驱动。
如果采用手动加载方式,则在device/vendor-name/device-name/init.sunxi.rc文件中加入装载驱动
模块的语句:
insmod /system/vendor/modules/gslX680.ko
2)IDC文件修改
Android4.0 之后,配置文件中需要一个idc文件来识别输入设备为触摸屏还是鼠标,如果没有该文件,则默认为鼠标,因此需要添加该文件。
使用adb shell getevent命令,获取设备的名称为"gslX680", "gt82x", "ft5x_ts", "sunxi-ts", "gt818_ts",
"tu_ts", "sw-ts", "gt9xx", "gt9xxf_ts", "aw5306_ts"时,使用的idc名字均为tp.idc。
idc文件放置的目录为:system/usr/idc ,则在配置文件为product-name.mk拷贝语句如下所示:
PRODUCT_COPY_FILES += \
device/vendor-name/device-name/sw-keyboard.kl:system/usr/keylayout/sw-keyboard.kl \
device/vendor-name/device-name/tp.idc:system/usr/idc/tp.idc
当使用adb shell getevent命令得到的设备名称与以上的设备名称不符合,则需要增加该名称的idc文件进行相应的匹配。如使用getevent命令后,获得的名称为ctp_name,如下:
图9.4.1
则相应的idc文件就应该为 ctp_name.idc ,则在配置文件为product-name.mk拷贝语句如下所示:
# input device config
PRODUCT_COPY_FILES += \
device/vendor-name/device-name/sw-keyboard.kl:system/usr/keylayout/sw-keyboard.kl \
device/vendor-name/device-name/tp.idc:system/usr/idc/tp.idc \
device/vendor-name/device-name/gsensor.cfg:system/usr/gsensor.cfg
3.4.3. touch panel驱动使用说明
1)gslX680使用说明
gslX680驱动兼容 gsl1680,gsl2680,gsl3680。为了区分下载的参数,在sys_config.fex 的
配置文件中,需要增加ctp_name 进行区别,目前,gslX680系列的参数设置方式为每一种分辨
率或者是一组参数设置为一个.h文件,使用ctp_name进行区分,使用时请注意项目中使用的头
文件。如使用的参数为“gsl168.h”, 则sysconfig.fex中的参数如下所示:
[ctp_para]
ctp_used = 1
ctp_twi_id = 2
ctp_name = "gsl1680"
ctp_screen_max_x = 1024
ctp_screen_max_y = 600
使用时注意驱动中已经支持的参数是否跟当前使用的tp匹配,若不匹配将无法正常使用。
当更换参数时,需要替换sysconfig.fex中的ctp_name找到相对应的参数。找不到时驱动将退出
加载。
2)GT系列(汇顶)使用说明
Gt系列的驱动包括gt811,gt82x(gt813,gt827,gt828),gt9xx,gt9xxf系列。gt系列的产品在
驱动端初始化时需要根据具体的tp屏下载相应的参数之后才可以正常的工作,在掉电之后也需要通
过驱动端重新下载相关的参数。
为了兼容多款tp面板,多种分辨率,目前将gt系列的参数抽取出来放置单独的头文件中,通过
名字进行匹配的方法进行参数的选择。如果驱动中没有找到相对应的匹配名字,将使用第0组参数。
gt82x.ko驱动为兼容gt813,gt827,gt828这三颗IC的驱动。gt82x对应的参数头文件:
lichee\linux-3.x\drivers\input\sw_touchscreen\gt82x.h
gt811.ko驱动为gt811这颗IC的驱动。头文件中放置了两组参数,gt811对应的头文件:
lichee\linux-3.x\drivers\input\sw_touchscreen\gt811_info.h
gt9xx_ts.ko驱动为gt9xx系列对应的驱动。头文件中放置了两组gt911使用的参数。gt9xx对应
的头文件:lichee\linux-3.x\drivers\input\sw_touchscreen\gt9xx_info.h
通过ctp_name 进行区别使用的参数,请先查看驱动中已经支持的参数跟目前使用的tp是否符
合。
如evb中使用gt813,相对应的参数在gt82x.h中的“gt813_evb”数组中。则sysconfig.fex中的
参数如下所示:
[ctp_para]
ctp_used = 1
ctp_twi_id = 2
ctp_name = "gt813_evb"
ctp_screen_max_x = 1024
ctp_screen_max_y = 800
使用时注意驱动中已经支持的参数是否跟当前使用的tp匹配,若不匹配将可能造成无法正
常使用等异常情况。
当更换参数时,需要替换sysconfig.fex中的ctp_name找到相对应的参数,如果
没有找到匹配的参数,将默认下载第0组参数。
3)ft系类驱动使用说明
Ft5x02系列的相关说明:
ft5x02使用时需要tp相关的头文件信息即使用tp的ft5x02_config.h文件。如果该文件为拷贝过
来,则请注意头文件中定义的名称是否与原来的文件一致,特别是文件中定义的变量名称的大小写。
驱动中通过读取a3寄存器,通过对其值的判断确定是否为0x02,如果为0x02,则说明为02系
列。此时将通过驱动下载ft5x02_config.h相关的参数。当ic掉电之后重新上电也需要下载参数。
当发现tp无法正常读取数据时,请确认相关的参数是否已经正确的下载。
Ft5x06的相关说明:
当需要更新固件时,可以打开驱动的CONFIG_SUPPORT_FTS_CTP_UPG的定义,通过下载i
文件去下载固件。正常情况下该定义被屏蔽掉,当确认需要下载时,请打开该宏定义且请更换正确
的点i文件,否则将造成tp无法正常使用的情况
参考 A33移植手册