TP调试

转载 2015年07月08日 15:07:28

1. 问题一:tp的驱动添加之后,下载到机器直接死机

    平台:高通8x12

    TP IC: GT9157

   在平台文件中添加如下信息:

goodix@5d{
compatible = "goodix,gt9xx";
reg = <0x5d>;
interrupt-parent = <&msmgpio>;
interrupts = <1 0x2008>;
reset-gpios = <&msmgpio 0 0x00>;
interrupt-gpios = <&msmgpio 1 0x00>;
vdd-supply = <&pm8110_l19>;
vcc-i2c-supply = <&pm8110_l14>;
goodix,panel-coords = <0 0 720 1360>;
goodix,display-coords = <0 0 720 1280>;
goodix,button-map= <139 102 158>;
goodix,product-id = "915";
goodix,enable-power-off;
goodix,cfg-data0 = [
41  E0  01  56  03  05  35  41  01  0F  19  0A  50 
  3C  03  05  00  00  FF  FF  00  00  04  16  17  18 
  14  8B  0A  0B  4D  00  B2  04  00  00  00  02  32 
  11  3C  41  00  00  00  00  00  32  00  00  11  32 
  78  94  C5  02  00  00  00  04  B0  36  00  94  41 
  00  80  4D  00  6D  5C  00  5E  6E  00  5E  10  30 
50  00  F7  36  2A  FF  FF  17  00  00  00  00  00 
  00  00  00  00   00  00   00  00 00  00 00  00 00 
  00  00  00  14  10  00  32  1E  02  04  06  08  0A 
  0C  0E  10  12  14  16  FF  FF  FF  00  00  00  00 
  00  00  00  00  00  00  00  0F  00  00  00  00  24 
  16  22  18  21  1C  20  1D  1F  1E  13  0A  08  12 
  06  10  04  0F  02  0C  00  FF  FF  FF  FF  FF  00 
  00  00  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF  FF 
  FF  FF  35  01];
}; 

      kernel中已经存在GT的驱动--gt9xx.c,这个驱动兼容大部分汇顶系列的tp ic,中间出现的问题这个驱动怎么加载不上,于是就开始查看驱动文件,分析过程,刚开始的上电,panel初始化都没有问题,直到看到这么一段函数:

     ret = gtp_check_product_id(client);
if (ret != 0) {
dev_err(&client->dev, "GTP Product id doesn't match.\n");
goto exit_free_irq;
}

   函数里面怎么写的,继续往下看:

  /*******************************************************
Function:
Read and check chip id.
Input:
client:  i2c device
Output:
read operation return.
0: succeed, otherwise: failed
*******************************************************/
static int gtp_check_product_id(struct i2c_client *client)
{
int ret = 0;
char product_id[GTP_PRODUCT_ID_MAXSIZE];
struct goodix_ts_data *ts = i2c_get_clientdata(client);
/* 04 bytes are used for the Product-id in the register space.*/
u8 buf[GTP_PRODUCT_ID_BUFFER_MAXSIZE] =
{
GTP_REG_PRODUCT_ID >> 8, GTP_REG_PRODUCT_ID & 0xff };


ret = gtp_i2c_read(client, buf, sizeof(buf));
if (ret < 0) {
dev_err(&client->dev, "GTP read version failed.\n");
return -EIO;
}


if (buf[5] == 0x00) {
/* copy (GTP_PRODUCT_ID_MAXSIZE - 1) from buffer. Ex: 915 */
strlcpy(product_id, &buf[2], GTP_PRODUCT_ID_MAXSIZE - 1);
} else {
if (buf[5] == 'S' || buf[5] == 's')
chip_gt9xxs = 1;
/* copy GTP_PRODUCT_ID_MAXSIZE from buffer. Ex: 915s */
strlcpy(product_id, &buf[2], GTP_PRODUCT_ID_MAXSIZE);
}


dev_info(&client->dev, "Goodix Product ID = %s\n", product_id);


ret = strcmp(product_id, ts->pdata->product_id);
if (ret != 0)
return -EINVAL;


return ret;
}

   原来这一段函数会读取IC的product_id寄存器,读到的值会跟goodix,product-id = "915"; 设定的值比较,如果相同,则匹配成功,否则exit_free_irq(这种情况会直接导致IRQ中断时序错乱,导致死机)。最后,项目中实际用到的IC为gt9157,那么goodix,product-id = "9157",匹配成功,机器现在可以正常启动了。


同时从GT9157资料中知道,GT9157 的 I2C 从设备地址有两组,分别为 0xBA/0xBB 和 0x28/0x29。主控在上电初
始化时控制 Reset 和 INT 口状态进行设定,这个可以从驱动中看到原函数。


驱动中I2C从设备的地址使用地址的低7位,也就是需要右移一位


android TP驱动移植调试笔记

1. 添加I2C 设备 TP 一般采用的是I2C 作为数据和命令接口,所以TP 驱动也可以归类为I2C 驱动。TP驱动的主要逻辑不在这里,但是了解了Linux 的I2C 体系架构,就可以对整个驱动流...
  • jkzrc
  • jkzrc
  • 2014年01月20日 11:28
  • 2987

调试tp驱动常用的adb命令

1、adb shell cat /proc/kmsg这条命令肯定是要放在第一位的,可以打印内核信息,对应于驱动程序中的printk语句。 如果出现以下提示,说明权限不够,可以通过adb root获取...
  • encourage2011
  • encourage2011
  • 2016年08月16日 11:40
  • 4953

高通 8x12 添加 TP和按键

1 .在tp的驱动文件中添加以下代码实现按键功能[plain] view plain copystatic ssize_t  ft5x06_virtual_keys_register(struct k...
  • LoongEmbedded
  • LoongEmbedded
  • 2016年04月20日 17:18
  • 3999

一个L2TP调试案例

  • 2014年03月05日 19:25
  • 64KB
  • 下载

调试gpio模拟i2c的TP中碰到的问题

最近有个板子,TP使用的是不是i2c总线传输,而是利用的gpio模拟的i2c通信,导致整个移植过程稍显负责,现在记录下碰到过的问题。 问题1.GPIO模拟i2c时,那个adapt一定要重新设置, ...
  • suwenqiang2011
  • suwenqiang2011
  • 2013年04月13日 12:07
  • 1456

mtk android tp 调试

msg2133 tp调试 重要函数为: tpd_local_init(tpd_probe), tpd_suspend, tpd_resume Msg2133_driver.c: ...
  • gaoguoxin2
  • gaoguoxin2
  • 2012年09月01日 10:44
  • 4564

TP触摸屏主机端调试指南

  • 2017年07月17日 10:14
  • 515KB
  • 下载

android TP驱动移植调试笔记

1. 添加I2C 设备 TP 一般采用的是I2C 作为数据和命令接口,所以TP 驱动也可以归类为I2C 驱动。TP驱动的主要逻辑不在这里,但是了解了Linux 的I2C 体系架构,就可以对整个驱动流...
  • jkzrc
  • jkzrc
  • 2014年01月20日 11:28
  • 2987

TP3.0调试模式总结

昨天刚下载了THINKPHP3.0,首先就看了一下调试模式在3.0中的变化,开始的时候没看源码也折腾了不少时间,将出现的问题分享与大家,不对的地方欢迎拍砖 1.打开调试模式 在入口文件中添加代...
  • a9254778
  • a9254778
  • 2012年03月14日 11:34
  • 990

ThinkPHP使用PHPMailer发送邮件 QQ邮箱 配置文件发送方法都有 发送邮件方法 PHPMailer资源一整套,放tp框架就能用,亲测贼好使

  • 2017年12月27日 17:29
  • 195KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:TP调试
举报原因:
原因补充:

(最多只允许输入30个字)