全志A64触摸屏驱动调试

一、前言

     linux的触摸屏驱动一般要经历一下几个步骤(以4412为例):1.移植驱动到linux源码“driver/input/touchscreen/”目录下,在Kconfig里面增加这款触摸屏驱动的菜单。

#add by long 20170207
config TOUCHSCREEN_GT9XX
                tristate "GT9XX based touchscreens"
                depends on I2C
                help
                  Say Y here if you have a GT9XX based touchscreen
                  controller.

                  If unsure, say N.

                  To compile this driver as a module, choose M here: the
                  module will be called GT9XX.
#end add


2.在“driver/input/touchscreen/Makefile"文件里增加编译条件,控制触摸屏驱动是否编译。

obj-$(CONFIG_TOUCHSCREEN_GT9XX) += gt9xx_module.o
gt9xx_module-objs := gt9xx.o gt9xx_update.o goodix_tool.o

3.增加板载驱动信息。修改方法,,在“arch/arm/mach-exynos/mach-itop4412.c“增加

#if defined(CONFIG_TOUCHSCREEN_GT9XX)
{
         //I2C_BOARD_INFO("Goodix-TS", 0x5d),
     I2C_BOARD_INFO("Goodix-TS", 0x14),
},
#endif


二、全志平台触摸屏驱动移植

1.简介

      全志平台对于input设备有专门的模块程序进行管理,无需添加专门的初始化信息或者insmod驱动,这个模块就是“sw-device.c”,所在位置“drivers/input/sw-device.c”。安卓系统初始化的时候只需要安装sw-device.ko即可

“ insmod /system/vendor/modules/sw-device.ko” 

sw-device所支持的设备有






2.移植gt928触摸屏驱动的步骤1:修改sys_config.fex

若 sys_config.fex 文件中不存在 ctp_list 配置项时,请添加该配置项,且将不使用的存在冲突的设备设置为 0,即将其剔除出扫描列表。已支持的设备不存在冲突情况,但是为了减少检测时间,也可以将不使用的模组剔除出扫描列表。将 gt82x 系列剔除出扫描列表,

sys_config.fex 文件中关系到自动 ctp 自动检测功能的为 “ctp”以及“ ctp_list”
两块参数。如下所示:
[ctp]
compatible       = "allwinner,sun50i-ctp-para"
ctp_used        = 1
ctp_name        = "gt9xxf_ts"
ctp_twi_id       = 1
ctp_twi_addr      = 0x14
ctp_screen_max_x    = 1280
ctp_screen_max_y    = 800
ctp_revert_x_flag    = 0
ctp_revert_y_flag    = 0
ctp_exchange_x_y_flag  = 1

ctp_int_port      = port:PH10<6><default><default><default>
ctp_wakeup       = port:PH11<1><default><default><1>
ctp_power_ldo      = "vcc-ctp"
ctp_power_ldo_vol    = 3300
ctp_power_io        =
;-----------------------------------------------------------------------
如果ctp_used 设置为0 ,表示不使用ctp,则将不继续ctp的自动检测。
;------------------------------------------------------------------------
[ctp_list]
ctp_list_used = 1 //设置为 1 时,启动自动检测,设置为 0 时,不检测
ft5x_ts   = 1 //设置为 1,添加该型号 TP 到自动扫描列表
gt82x     = 0 //设置为 0,不添加该型号 TP 到自动扫描列表
gslX680   = 0 //gslX680 旧量产工具 TP,和 gslX680new 不能同时为 1
gslX680 new = 0 //gslX680 新量产工具 TP,和 gslX680 不能同时为 1
gt9xx_ts  = 0
gt9xxf_ts = 1
gt811     = 0
zet622x   = 0
ctp_list列表中的名称顺序必须与 sw-device.c中ctps的名称顺序一一对应。
当ctp_list_used 设置为1时,启用自动检测,将设置为0时,退出自动检测。模块
的名称后面写 1表示添加到自动检测扫描列表,写0表示剔除自动检测扫描列表

3.移植gt928触摸屏驱动的步骤2:修改menuconfig

在编译服务器上,目录为\lichee\linux-3.10 上,输入以下命令:make ARCH=arm64 menuconfig进入目录 Device Drivers\Input device support\ i2c device detect support 目录下可以看到 device 模块是编译为模块、编译进内核、不编译。 device 驱动默认编译为模块

Symbol: TOUCHSCREEN_GT9XXF_TS [=m]                                                                          
 Type  : tristate                                                                                        
 Prompt: gt9XXF touchscreen driver                                                                      
Location:                                                                                            
-> Device Drivers                                                                                  
-> Input device support                                                                          
> Generic input layer (needed for keyboard, mouse, ...) (INPUT [=y])                            
-> Touchscreens (INPUT_TOUCHSCREEN [=y])                                                      
Defined at drivers/input/touchscreen/gt9xxf/Kconfig:5                                                 
Depends on: !UML && INPUT_TOUCHSCREEN [=y] && INPUT [=y] && I2C [=y]    

4.移植gt928触摸屏驱动的步骤3:修改sw_device

sw-device.c 中的修改主要为增加设备的描述信息,将相关的描述信息增加到相应的 sw_device_info 中的变量中即可。结构体 sw_device_info 用于存放设备的相关信息,该结构体的相关变量如下列表所示:注意:当有两个或者以上的设备地址相同,且存在两个设备没有 chip id 值时,将按照顺序检测,返回第一个检测到的设备,可能造成错误,因此当存在两个设备没有 chip id 时,为了确保无误,请将不使用的设备剔除掉。CTP 设备的 sw_device_info 结构体变量为 ctps,如果增加的设备为 ctp 设备,只需要按照 sw_device_info 中的格式,添加相关的信息放置到 ctps 变量中即可。Gsensor 设备的 sw_device_info 结构体变量为 gsensors,如果增加的设备为gsensor 设备,只需要按照 sw_device_info 中的格式,添加相关的信息放置到 gsensors变量中即可。以下针对 sw_device_info 中相关的设置进行相关的说明。( 1)进行 chip id 值检测ctp 中需要增加 gt811 这个设备到自动检测中,编译之后的模块驱动名称为:“gt811”, I2C 地址可以设置为 0x5d; chip id 寄存器为 0x715; chip id 值为 0x11。描述信息如下所示:

1、安装PC上的升级工具Livesuite.exe。      2、打开Livesuit      找到升级工具文件双击打开,如下图所示:      3、选择固件      点击上图的“否”关闭用户向导升级,并点击“选择固件”按钮选择后缀名为.img文件,如下图:      4、关闭电源      确保将I130关机(开机状态下,长按电源键8秒钟以上可强制断电关机)      5、按下组合键开始升级      按住I130平板的任意键(除了电源键,推荐音量+)不放开,再通过USB数据线连上电脑,然后快速连续点击电源键5-6次,记住此时千万不能松开开始按住的按键,直到电脑上出现下图界面时,松开所有键开始升级。      (注:如果此时弹出安装驱动程序的对话框,请把路径指向Livesuit安装目录下的UsbDriver文件夹,并按下一步提示完成驱动程序的安装)。      6、选择强制格式化升级      Livesuit提示“是否强制格式化”,点击“是”,则原先安装的APK全部被删除,点击否则原装APK不会删除。      推荐强制格式化,进行彻底更新升级!否则可能更新不彻底而变砖!      7、升级开始      弹出“确定要强制格式化”对话框,选择“是”,升级开始,如下图:      8、升级完成      固件更新过程大约持续3分半钟左右,请耐心等待,直到提示“升级成功”。   
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值