参考的触屏移植

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移植手册

猜你喜欢

转载自blog.csdn.net/steel0205/article/details/120501735
今日推荐