sw10086的个人空间 https://blog.eetop.cn/1516684 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

RK3288 汇顶GT触摸屏移植调试

已有 1122 次阅读| 2020-2-13 14:57 |系统分类:硬件设计

CPURK3288

系统:Android 5.1

触摸ICGT911

 

1、在 menuconfig 或者 rockchip_defconfig 中支持触摸屏。具体用哪种方式需要结合编译方法。

按照瑞芯微提供的编译方式,则修改 rockchip_defconfig,这种方式在make前,需要执行 make rockchip_defconfig,生成 .config 文件。

pathkernel/arch/arm/configs/rockchip_defconfig

CONFIG_INPUT_TOUCHSCREEN=y

CONFIG_TOUCHSCREEN_GT9XX=y

只执行make的话,就要在make menuconfig中修改,保存后生成 .config 文件。

Device Drivers  --->

    Input device support  --->

         [*]   Touchscreens  --->

            <*>   Goodix touch screen gt9xx support for rockchip based platform

 

2、修改触摸屏分辨率。

pathkernel/drivers/input/touchscreen/gt9xx/gt9xx.h

// 下面有两种定义分辨率的方式,任选一种

#define GTP_CUSTOM_CFG        1    

        ... ...

#define GTP_1024X768

        ... ...

#if GTP_CUSTOM_CFG

    #ifdef GTP_1024X768

          #define GTP_MAX_HEIGHT      768

          #define GTP_MAX_WIDTH     1024

    #else

         #define GTP_MAX_HEIGHT      320

          #define GTP_MAX_WIDTH     480

    #endif

  // 触摸屏中断触发信号

  #define GTP_INT_TRIGGER      0          // 0: Rising 1: Falling

#else

  #define GTP_MAX_HEIGHT   4096

  #define GTP_MAX_WIDTH    4096

  #define GTP_INT_TRIGGER  1

#endif       

 

3、确认触摸屏Sensor-ID,有下面两种方式

(1)根据硬件配置,需要咨询供应商。

//*************************** PART2:TODO define **********************************

// STEP_1(REQUIRED): Define Configuration Information Group(s)

// Sensor_ID Map:

/* sensor_opt1 sensor_opt2 Sensor_ID

    GND         GND          0

    VDDIO       GND          1

    NC          GND          2

    GND         NC/300K      3

    VDDIO       NC/300K      4

    NC          NC/300K      5

*/

(2)内核运行时的log可以看出来

// 获取 sensor_id

ret = gtp_i2c_read_dbl_check(ts->client, GTP_REG_SENSOR_ID, &sensor_id, 1);

if (SUCCESS == ret)    // 获取 sensor_id 成功

{

    // sensor_id 超出范围

    if (sensor_id >= 0x06)

    {

        GTP_ERROR("Invalid sensor_id(0x%02X), No Config Sent!", sensor_id);

        ts->pnl_init_error = 1;

        return -1;

    }

}

else    // 获取 sensor_id 失败

{

    GTP_ERROR("Failed to get sensor_id, No config sent!");

    ts->pnl_init_error = 1;

    return -1;

}

// 成功后打印 sensor_id

GTP_INFO("Sensor_ID: %d", sensor_id);

 

4、在dts文件中,修改触摸屏的硬件参数。

// i2c接口

&i2c4 {

    // 使能

    status = "okay";

    // 设备地址(记得除二)

    ts@5d{

        compatible = "goodix,gt9xx";

        reg = <0x5d>;

        // 复位IO

        goodix,rst-gpio = <&gpio7 GPIO_B2 GPIO_ACTIVE_HIGH>;

        // 中断IO

        goodix,irq-gpio = <&gpio7 GPIO_B1 IRQ_TYPE_LEVEL_LOW>;

        pinctrl-names = "default";

        // 中断IO默认上拉

        pinctrl-0 = <&gpio7_b1>;

        // 触摸屏配置参数,需要供应商提供,group0-group5,根据Sensor-ID决定,若ID=4,则使用goodix,cfg-group4

        goodix,cfg-group0 = [

            63 40 01 E0 01 05 35 00 01 08 28 05 50 32 03 05 00 00 00 00

            00 00 00 14 16 18 10 8C 20 08 17 15 31 0D 00 00 02 9A 04 24

            00 00 00 00 00 03 64 32 00 00 00 0F 94 94 45 02 07 00 00 04

            8D 13 00 5C 1E 00 3C 30 00 28 4C 00 1D 78 00 1D 00 00 00 00

            00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

            00 00 00 00 00 00 00 00 00 00 00 00 02 04 06 08 0A 0C 0E 10

            FF FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00

            00 00 00 02 04 06 08 0A 0C 0F 10 12 13 14 FF FF FF FF FF FF

            FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00

            00 00 00 00 C9 01];

        };

};

 

此时已配置完毕

 

若出现触摸方向xy反了,可以联系供应商改配置文件,也可以在头文件中打开交换xy坐标的宏

宏生效后,会在触摸按下的函数 gtp_touch_down 中,交换xy坐标

#define GTP_CHANGE_X2Y        1       //swap x y

#if GTP_CHANGE_X2Y

    GTP_SWAP(x, y);

#endif

若出现触摸方向xy镜像了,可以联系供应商改配置文件,也可以在触摸按下的函数 gtp_touch_down 中,修改xy坐标

// abs_x_max abs_y_max 分别是x y方向的最大值

// x 方向镜像

x = ts->abs_x_max - x;

// y 方向镜像

y = ts->abs_y_max - y;

若出现触摸不准,,触摸跳点等问题,则需要联系供应商查看硬件或者修改配置参数。

 


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 1

    粉丝
  • 0

    好友
  • 0

    获赞
  • 0

    评论
  • 1372

    访问数
关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-25 08:47 , Processed in 0.024106 second(s), 14 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部