您的位置:首页 > 编程语言 > PHP开发

MTK 驱动开发(28)--6797平台 TP 移植

2018-03-27 15:16 776 查看
1、 修改kernel-3.18\arch\arm64\configs\len6797_6m_n_debug_defconfig、6797_6m_n_defconfig  
        CONFIG_INPUT_TOUCHSCREEN=y  
        CONFIG_TOUCHSCREEN_MTK=y  
        #CONFIG_TOUCHSCREEN_MTK_FT6X36=y  
        CONFIG_TOUCHSCREEN_MTK_GT1151=y      //打开指定的tp,关闭其他的 

        #CONFIG_TOUCHSCREEN_MTK_GSLX680=y  
2、device\ivvi\ivvi6797_6m_n
   修改device\XXX\ProjectConfig.mk  

     CUSTOM_KERNEL_TOUCHPANEL = GT1XX        //修改为指定tp 

3、把厂家的代码放到kernel-3.18\drivers\input\touchscreen\mediatek\  
       


4、kernel-3.18\drivers\input\touchscreen\mediatek\Kconfig 添加:
if INPUT_TOUCHSCREEN

config TOUCHSCREEN_MTK
tristate "MediaTek Touch Panel Driver"
default n
help
  Say Y here if you have MediaTek touch panel.
  If unsure, say N.
  To compile this dirver as a module, choose M here: the
  module will be called.

source "drivers/input/touchscreen/mediatek/GT1151/Kconfig"
5、 在kernel-3.18\drivers\input\touchscreen\mediatek\Makefile 添加:  

      obj-$(CONFIG_TOUCHSCREEN_MTK) +=  GT1151/
6、tp常用调试方法:  
    1. adb查看tp型号: -- 从log中查看  
      
    2. 查看tp报点  
        2.1 驱动中有打印的话:  
            cat /proc/kmsg | grep "tpd"  
            cat /proc/kmsg | grep -i "key|power|backlight"   
  
        2.2 可以直接从input设备节点/dev/input/event读取  
            getevent -i  
            getevent -t /dev/input/event5       (event?,用[getevent -i] 查看)  
              
            --  查看到的是原始数据,看不出坐标点,只能看出有无上报  
              
        2.3 查看hal层收到的数据  
       
              
    3. 在tp还不通的时候/frameworks/base/include/ui/KeycodeLabels.h中定义了很多keyevent  
        inut keyevent 3                     //home  
        inut keyevent 4                     //back  
        inut keyevent 26                    //power  
      
    4 检查硬件  
        用万用表测量6个引脚的电压:  
            正常工作电压  休眠电压  
        INT     1.8V        0V  
        RST     1.8V        1.8V  
        VDD     2.8V        2.8V  
        SDA     1.8V        1.8V  
        SCL     1.8V        1.8V  
        GND     0V          0V  
          
        通过[万用表]查看中断脚有无中断 - 实测可以  
        通过[万用表]查看TP的GND是否与主板的GND导通  
        通过[示波器]查看sda有无数据波形  
          
          
二、如何使能tp的log  
    1 GT5668        默认打开    GTP_DEBUG()     由宏控制  
        #define GTP_DEBUG_ON          1 // enable log printed by GTP_DEBUG(...)  
          
    2 ft6xx6_ges    默认关闭    TPD_DEBUG()  
        --  暂时没找到哪边开关  
          
三、虚拟按键  
    1 虚拟按键坐标通常写在dts中,也可能写死在驱动,具体看驱动  
        &touch {  
            tpd-resolution = <720 1280>;      // 分辨率 - 不用这里的,而是用defconfig中的lcm宽与高  
            use-tpd-button = <1>;             // 虚拟按键使能  
            tpd-key-num = <3>;                    // 虚拟按键个数  
            tpd-key-local= <139 172 158 0>;       // 虚拟按键坐标 - 兑换139 与158的位置可以按键对换  
            tpd-key-dim-local = <90 883 100 40 230 883 100 40 370 883 100 40 0 0 0 0>;  
          
    2 通过sys节点读取  
        cat /sys/board_properties/virtualkeys.mtk-tpd   // 获取软件中虚拟按键坐标  
          
    2.1 读取底层TP虚拟安静键值  
        cat proc/kmsg | grep "tpd"  
          
    2.2 读取上层TP虚拟安静键值  
        logcat | grep "keyCode"  
      
    3 从input设备节点/dev/input/event?读取  
        getevent -i  
        getevent -t /dev/input/event5       // 获取tp在内核中通过input上报的数据  
        -----虚拟按键跟tp供用一个input设备  
          
四、tp翻转180度  
    kernel-3.18\drivers\input\touchscreen\mediatek\ft6x36\focaltech_core.c 打开宏:  
      
    #define CONFIG_TPD_ROTATE_180  
      
    驱动中有:(没有可以自己实现)  
    #if defined(CONFIG_TPD_ROTATE_90) || defined(CONFIG_TPD_ROTATE_270) || defined(CONFIG_TPD_ROTATE_180)  
    static void tpd_rotate_180(int *x, int *y)  
    {  
        *y = TPD_RES_Y + 1 - *y;                // TPD_RES_Y -- mtk_tpd.c从defconfig的CONFIG_LCM_HEIGT获得  
        *x = TPD_RES_X + 1 - *x;  
    }  
    #endif  
    static void tpd_down(int x, int y, int p, int id)  
    {  
    #if defined(CONFIG_TPD_ROTATE_180)  
        tpd_rotate_180(&x, &y);  
    #endif  
        ...  
        input_report_abs(tpd->dev, ABS_MT_POSITION_X, x);  
    }  
  
五、相同ic的tp模组做兼容 - 根据读寄存器OxB8,  
   
      
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: