A20 GSLX680 触摸按键驱动调试

1. 开启触摸IC

     #define HAVE_TOUCH_KEY

2.按键值

const u16 key_array[]={
                        KEY_ESC,
                        KEY_HOME,
                        KEY_MENU,
                        //KEY_SEARCH,
                       };
#define MAX_KEY_NUM     (sizeof(key_array)/sizeof(key_array[0]))

struct key_data gsl_key_data[MAX_KEY_NUM] = {
    {KEY_ESC, 820, 832, 116, 124},
    {KEY_HOME, 820, 832, 68, 76},
    {KEY_MENU, 820, 832, 20, 28},
};

按键的值使用include/linux/input.h里面定义的默认值

3.编译之后,无法正常工作,包括原先工作正常的AA区域。

4.gslx680.c驱动文件

#ifdef HAVE_TOUCH_KEY
    input_device->evbit[0] = BIT_MASK(EV_KEY);
    for (i = 0; i < MAX_KEY_NUM; i++)
        set_bit(gsl_key_data[i].key, input_device->keybit);
#endif


#ifdef REPORT_DATA_ANDROID_4_0
    __set_bit(EV_ABS, input_device->evbit);
    __set_bit(EV_KEY, input_device->evbit);
    __set_bit(EV_REP, input_device->evbit);
    __set_bit(INPUT_PROP_DIRECT, input_device->propbit);
    input_mt_init_slots(input_device, (MAX_CONTACTS+1));
#else
    input_set_abs_params(input_device,ABS_MT_TRACKING_ID, 0, (MAX_CONTACTS+1), 0, 0);
    set_bit(EV_ABS, input_device->evbit);
    set_bit(EV_KEY, input_device->evbit);
#endif
#ifdef FOR_TSLIB_TEST
    set_bit(BTN_TOUCH, input_device->keybit);
#endif

将红色代码放在蓝色代码之前,重新编译工作正常。因为EV_KEY那行的初始化必须要在红色之后。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值