GT9xx触摸屏驱动总结

一:GT9xx触摸屏驱动移植过程出现的问题

1:GT9xx触摸屏驱动的模块加载函数没有执行到。

具体情况:

现象:.ko文件已经是最新的,烧进去之后,或者使用adb工具push进去之后,

打印出来的log信息中发现没有执行GT9xx触摸屏驱动的加载模块函数。

原因:修改后期加载模块文件错误

错误的做法:

修改了A13\android\out\target\product\nuclear-evb045-jiaweiet616_xc3\root目录下的init.sun5i.rc

正确的做法:

修改:A13\android\device\softwinner\nuclear-evb045-jiaweiet616_xc3目录下的init.sun5i.rc

 

2:GT9xx触摸屏驱动程序的“名字”和“IIC地址”已经匹配,

但是还没有调用GT9xx触摸屏驱动的proble函数,并且模块

加载的detect函数也没有执行。

 

原因:没有填充i2c_driver结构体的.class和address_list成员。

推测:

   i2c设备层的代码注册 i2c_device 时使用了 i2c_register_board_info 

注册;probe函数不是名字对上就能调用,还需要它探测到设备真实存在都会调用;

使用 i2c_register_board_info 注册的设备,其探测时机是在适配器驱动安装

时候就执行了,后期安装不会调用probe。因此使用 i2c_register_board_info 注册的,

要提供detect接口,而且i2c_driver结构体要填充.class和address_list成员。

   

3:注册中断

1)注意中断号

2)注意注册中断的触发方式

如果注册为独占中断,则会出现IRQ handler type mismatch for IRQ 0错误。

    ctp_ops.set_irq_mode("ctp_para","ctp_int_port", CTP_IRQ_MODE);ts->client->irq = SW_INT_IRQNO_PIO;ret  = request_irq(ts->client->irq,goodix_ts_irq_handler,IRQF_TRIGGER_RISING | IRQF_SHARED,ts->client->name,ts);printk("======gtp_request_irq======%s %s %d\n", __FILE__, __FUNCTION__, __LINE__);

 

4:修改驱动的reset和init脚为A13CTP专用的,方便使用A13CTP提供的相关函数

 

二:移植脚本步骤

1:修改系统配置文件sys_config1.fex

文件所在目录:

A13\lichee\tools\pack\chips\sun5i\configs\android\a13-evb045-jiaweiet616_xc3

 

1)把触摸屏的名字改为我们这款触摸屏的名字

ctp_name                 = "Goodix-TS"

如下图

2)把IIC地址修改为这款触摸屏对应的IIC地址

ctp_twi_addr             = 0x5d

如下图

2:添加A13相关操作代码

也就是把ctp_ops的成员的实现搬过来

struct ctp_platform_ops ctp_ops = {
.get_pendown_state = ctp_get_pendown_state,
.clear_penirq      = ctp_clear_penirq,
.set_irq_mode      = ctp_set_irq_mode,
.set_gpio_mode     = ctp_set_gpio_mode,
.judge_int_occur   = ctp_judge_int_occur,
.init_platform_resource = ctp_init_platform_resource,
.free_platform_resource = ctp_free_platform_resource,
.fetch_sysconfig_para = ctp_fetch_sysconfig_para,
.ts_reset =          ctp_reset,
.ts_wakeup =         ctp_wakeup,
.ts_detect = ctp_detect,
};

 

3:修改源码程序是reset和init脚为A13CTP专用的

 

4:仿造其他的驱动程序编写A13平台特定的模块加载函数

主要的步骤是:

1) 获取系统配置信息

2) 进行物理地址到虚拟地址的映射,GPIO的申请

3) 调用ctp_ops的detect ,进行设备的推测

 

5:填充i2c_driver goodix_ts_driver结构体的 class和address_list 成员

   说明:如果没有填充address_list地址表这个成员,即使

是设备和驱动的名字和IIC地址对应上了,proble函数也不会被调用到。

 

6:注释掉TP固件升级的相关代码

 

 

7:修改中断申请函数

1)修改中断号

 ts->client->irq = SW_INT_IRQNO_PIO;

2)设置中断模式

ctp_ops.set_irq_mode("ctp_para","ctp_int_port", CTP_IRQ_MODE);

3)注意修改中断的触发方式,申请方式。

    ret  = request_irq(ts->client->irq,goodix_ts_irq_handler,/*IRQF_TRIGGER_RISING | IRQF_SHARED,*/irq_table[ts->int_trigger_type],ts->client->name,ts);

irq_table定义如下:它是用一个宏来初始化

 const u8 irq_table[] = GTP_IRQ_TAB;

 

GTP_IRQ_TAB宏的定义:

#define GTP_IRQ_TAB {IRQ_TYPE_EDGE_RISING,   IRQ_TYPE_EDGE_FALLING,IRQ_TYPE_LEVEL_LOW,IRQ_TYPE_LEVEL_HIGH}

 

GT9xx触摸屏驱动总结相关推荐

  1. RK3399 GT1X触摸屏驱动调试笔记

    硬件环境 1.Firefly AIO-3399(AI)开发版: 2.恒智的5寸电容触摸屏800X480,I2C驱动支持GT5688. 操作系统 Android 7.2 for rockship Ste ...

  2. MTK8788[android 9.0]汇顶GT9XX TP触摸屏驱动流程分析

    TP 相关引脚DTS中的定义 我们这个项目TP复位引脚是GPIO158,中断引脚是GPIO1,由下图原理图知道我们的TP挂载在I2c0上,3.3v的供电电压是有PMIC 2.8V供电电压通过i2c电平 ...

  3. 全志A64触摸屏驱动调试

    一.前言 linux的触摸屏驱动一般要经历一下几个步骤(以4412为例):1.移植驱动到linux源码"driver/input/touchscreen/"目录下,在Kconfig ...

  4. firefly-rk3288j开发板 TP实验之GT9XX触摸驱动

    linux TP实验之GT9XX触摸驱动 1 准备工作 开发板:aio-rk3288j SDK版本:rk3288_linux_release_20210304 下载工具:Linux_Upgrade_T ...

  5. Linux 驱动 | hy46xx触摸屏驱动

    hy46xx Touch IC hy46xx是HYCON科技一款触摸IC. 上电时序: 通信接口: 使用IIC通信 中断方式: 当INT引脚产生下降沿的时候,触摸数据就绪,这样就可以在中断中读取 如果 ...

  6. linux下GT911触摸屏驱动优化记录

    linux下GT911触摸屏驱动优化记录 背景 由于最近要做linux内核启动速度优化,所以就对着驱动一点一点优化,加上QT应用程序的初始化,总共的启动时间要做到4S以内.目前先调试GT911驱动程序 ...

  7. WINCE6.0+S3C6410的触摸屏驱动

    ********************************LoongEmbedded******************************** 作者:LoongEmbedded(kandi ...

  8. linux 触摸屏驱动编写

    早在诺基亚手机还比较流行的时候,那时候触摸屏用的还不多.但是随着触摸屏手机.即智能手机的流行,触摸屏基本成了手机的标配.所以,今天可以看看触摸屏驱动在linux上是如何进行的. 1.驱动目录 driv ...

  9. linux内核关闭触摸屏校准,linux内核usb触摸屏驱动bug调试- selected device is not a touchscreen I understand...

    近期给客户调试一块数控板,今天客户带过来一个屏,并且有一个usb的触摸屏芯片接在屏上.屏很快就弄好正常显示. 触摸屏在内核下找到usb 触摸屏驱动,内核启动后这个usb转的触摸屏也正常找到,注册为ev ...

最新文章

  1. 某高校教授要求:博士生发表论文,必须把他列为第一作者
  2. 登白云嶂,银屏嘴游记
  3. CISCO 3550交换机配置DHCP三步骤
  4. 过渡效果_12个酷炫创意的动画过渡效果AE模板
  5. 解决在freemarker中报空问题
  6. 1.17.Flink 并行度详解(Parallel)、TaskManager与Slot、Operator Level、Execution Environment Level、Client Level等
  7. String.slice
  8. 简单链接Simplelink 传感器标签SensorTag
  9. 开源 java CMS - FreeCMS2.5 标签 infoPage
  10. python读取行政区txt文件实现行政区树_数据库的点数据根据行政区shp来进行行政区处理,python定时器实现...
  11. 使用Entity Framwork 保存数据时,提示不能在对象中插入重复键,违反了PRIMARY_KEY约束...
  12. windows便签工具在哪 windows11的便签在哪里打开
  13. 转载:技术大停滞——范式春梦中的地球工业文明2:科技利益集团鼓吹的范式春梦—所谓的技术大爆炸
  14. 什么是索引,索引的优缺点
  15. Android性能分析之---卡顿分析
  16. Red5 Client 调用 Red5 Server
  17. python语言属于机器语言汇编语言高级语言自然语言_机器语言,汇编语言,高级语言的主要特点及区别是什么...
  18. 国务院拟出台职工带薪年休假规定
  19. 某爱上面的一个帖子(一些比较实用的网站和软件)
  20. 推荐系统召回总结(持续更新)

热门文章

  1. gltf文件的几种形式
  2. 人脸识别签到考勤系统毕业设计,人脸识别考勤系统设计与实现,人脸识别系统论文毕设作品参考
  3. 计算机三种校验方式,三种校验码
  4. Backpack VI
  5. VBA字符串智能拼接与自动换行 VBA代码助手独家功能
  6. stream流按照个数分割list
  7. android2.2智能手机,Jelly 2:全球最小的Android 10 4G智能手机
  8. centos查看显卡型号时出现 NVIDIA Corporation
  9. C指针之指针与数组的天生姻缘
  10. Android中文API(129) —— AudioManager