zoukankan      html  css  js  c++  java
  • RK Android7.1 TP GT1X

    RK3399 GT1X触摸屏驱动调试笔记 

    GT1X 驱动,cfg 资源  https://download.csdn.net/download/qq_40949012/20432225?spm=1001.2014.3001.5501

    一.DTS 

    &i2c4 {
    	     gt1x:goodix_ts@14{
    	      status = "okay";
                  compatible = "goodix,gt1x";
                  reg = <0x14>;
                  max-x = <1280>;
                  max-y = <800>;            
                  touch-gpio = <&gpio3 16 IRQ_TYPE_LEVEL_LOW>;
    	      reset-gpio = <&gpio3 17 GPIO_ACTIVE_HIGH>;
           };
    };
    

     二.修改驱动源码

    2.1.kerneldriversinput ouchscreengt1xgt1x.c 

    /**
     * gt1x_parse_dt - parse platform infomation form devices tree.
     */
    static int gt1x_parse_dt(struct device *dev)
    {
    	struct device_node *np;
    	int ret;
    
    	if (!dev)
    		return -ENODEV;
    
    	np = dev->of_node;
    	gt1x_int_gpio = of_get_named_gpio(np, "goodix,irq-gpio", 0);//"touch-gpio"
    	gt1x_rst_gpio = of_get_named_gpio(np, "goodix,rst-gpio", 0);//"reset-gpio"
    
    	if (!gpio_is_valid(gt1x_int_gpio) || !gpio_is_valid(gt1x_rst_gpio)) {
    		GTP_ERROR("Invalid GPIO, irq-gpio:%d, rst-gpio:%d",
    				gt1x_int_gpio, gt1x_rst_gpio);
    		return -EINVAL;
    	}
    
    	vdd_ana = regulator_get(dev, "vdd_ana");
    	if (IS_ERR(vdd_ana)) {
    		GTP_ERROR("regulator get of vdd_ana failed");
    		ret = PTR_ERR(vdd_ana);
    		vdd_ana = NULL;
    		return ret;
    	}
    
    	vcc_i2c = regulator_get(dev, "vcc_i2c");
    	if (IS_ERR(vcc_i2c)) {
    		GTP_ERROR("regulator get of vcc_i2c failed");
    		ret = PTR_ERR(vcc_i2c);
    		vcc_i2c = NULL;
    		goto ERR_GET_VCC;
    	}
    	return 0;
    ERR_GET_VCC:
    	regulator_put(vdd_ana);
    	vdd_ana = NULL;
    	return ret;
    	return 0;
    }
    

    2.2.修改CFG参数,更改为厂家提供的CFG参数,其余的GTP_CFG_GROUP1,GTP_CFG_GROUP2,GTP_CFG_GROUP3,GTP_CFG_GROUP4,GTP_CFG_GROUP5均清空 

    2.4.kerneldriversinput ouchscreengt1xgt1x_generic.h

    设置GTP_CUSTOM_CFG为1,加载自定义配置

    #define GTP_CUSTOM_CFG        1	// customize resolution & interrupt trigger mode
    

    修改自定义CFG

    #if GTP_CUSTOM_CFG
    #define GTP_MAX_HEIGHT   1280
    #define GTP_MAX_WIDTH    800
    #define GTP_INT_TRIGGER  1	/* 0:Rising 1:Falling */
    #define GTP_WAKEUP_LEVEL 1
    #else
    #define GTP_MAX_HEIGHT   4096
    #define GTP_MAX_WIDTH    4096
    #define GTP_INT_TRIGGER  1
    #define GTP_WAKEUP_LEVEL 1
    #endif   

    三.#define GTP_DEBUG_ON 1 // enable log printed by GTP_DEBUG(...)  方便调试输出信息。

    dmesg | grep  GTP
    [    0.648308] <<GTP-DBG>>[gt1x_ts_init:752]GTP driver installing...
    [    0.879360] <<GTP-INF>>[gt1x_ts_probe:509] GTP Driver Version: V1.4<2015/07/10>//驱动加载成功
    [    0.879435] <<GTP-INF>>[gt1x_ts_probe:510] GTP I2C Address: 0x14
    [    0.879748] <<GTP-ERR>>[gt1x_parse_dt:317] vdd_ana not specified, fallback to power-supply
    [    0.879883] <<GTP-ERR>>[gt1x_parse_dt:320] power not specified, ignore power ctrl
    [    0.880121] <<GTP-INF>>[gt1x_reset_guitar:779] GTP RESET!
    [    0.945381] <<GTP-DBG>>[gt1x_set_reset_status:672]Set reset status.
    [    0.968541] <<GTP-INF>>[gt1x_get_chip_type:898] Chip Type: GT1X
    [    0.977775] <<GTP-INF>>[gt1x_read_version:854] IC VERSION:GT1158_00012A(Patch)_0102(Mask)_00(SensorID)//触摸屏id
    [    1.000212] <<GTP-INF>>[gt1x_init_panel:650] X_MAX=800,Y_MAX=1280,TRIGGER=0x01,WAKEUP_LEVEL=1
    [    1.001155] <<GTP-DBG>>[gt1x_request_irq:408]INT trigger type:1
    [    1.001280] <<GTP-DBG>>[gt1x_ts_probe:557]GTP works in interrupt mode.
    [    1.002817] <<GTP-DBG>>[gt1x_touch_event_handler:1314]Additional Int Pulse.
    [    1.007746] <<GTP-DBG>>[gt1x_touch_event_handler:1314]Additional Int Pulse.
    [    1.021001] <<GTP-DBG>>[gt1x_touch_event_handler:1314]Additional Int Pulse.
    [   15.741651] <<GTP-DBG>>[gt1x_touch_event_handler:1273](0)(391,1192)[100]
    [   15.754392] <<GTP-DBG>>[gt1x_touch_event_handler:1273](0)(391,1192)[100]
    [   15.767474] <<GTP-DBG>>[gt1x_touch_event_handler:1273](0)(391,1192)[100]
    [   15.780796] <<GTP-DBG>>[gt1x_touch_event_handler:1273](0)(391,1192)[100]
    

      

  • 相关阅读:
    201771030123-王爽 实验一 软件工程准备—阅读《现代软件工程—构建之法》并提问
    《面向对象程序设计课程学习进度条》
    201771010132-徐思 实验四 软件项目案例分析
    201771010132-徐思 实验三 结对项目-《西北师范大学疫情防控信息系统》
    201771010132-徐思 实验一 软件工程准备-浏览《构建之法》
    徐思201771010132 《面向对象程序设计(java)》课程学习总结
    徐思 201771010132
    徐思201771010132《面向对象程序设计(java)》第十六周学习总结
    徐思201771010132《面向对象程序设计(java)》第十五周学习总结
    徐思201771010132《面向对象程序设计(java)》第十四周学习总结
  • 原文地址:https://www.cnblogs.com/crushgirl/p/15047781.html
Copyright © 2011-2022 走看看