MTK手机皮套驱动实现驱动代码分析

平台:MTK6592,KK

修改文件路径:

alps\bird\custom\1481G\kernel\touchpanel\GT9158\gt9xx_driver.c


代码分析:

kpd.c: flip代码分析

1.

#if KPD_HAS_FLIP_FUN
#define GET_KPD_FLIP_KEY _IOR('k', 35, int)
#endif


2.

#if KPD_HAS_FLIP_FUN
static void kpd_flip_handler(unsigned long data);
static DECLARE_TASKLET(kpd_flip_tasklet, kpd_flip_handler, 0);

static bool kpd_flip_state = true;
#endif


3.

#if KPD_HAS_FLIP_FUN
#ifdef BIRD_HALL_CHANGE_TP_PARAM
extern void gtp_change_param(int Mhall_key_level);
#endif


4.

在probe函数里加入

#if  KPD_HAS_FLIP_FUN
    __set_bit(KEY_FLIP_OPEN, kpd_input_dev->keybit);
__set_bit(KEY_FLIP_CLOSE, kpd_input_dev->keybit);
#endif


#if KPD_HAS_FLIP_FUN
mt_set_gpio_mode(GPIO_MHALL_EINT_PIN, GPIO_MHALL_EINT_PIN_M_EINT);
mt_set_gpio_dir(GPIO_MHALL_EINT_PIN, GPIO_DIR_IN);
mt_set_gpio_pull_enable(GPIO_MHALL_EINT_PIN, GPIO_PULL_ENABLE);
mt_set_gpio_pull_select(GPIO_MHALL_EINT_PIN, GPIO_PULL_UP);
mt_eint_set_hw_debounce(CUST_EINT_MHALL_NUM, CUST_EINT_MHALL_DEBOUNCE_CN);
    mt_eint_registration(CUST_EINT_MHALL_NUM, CUST_EINT_MHALL_TYPE, kpd_flip_eint_handler, false);
    mt_eint_unmask(CUST_EINT_MHALL_NUM);
#endif


5.

static void kpd_flip_handler(unsigned long data)
{
    bool old_state = kpd_flip_state;
    int Mhall_key_level;


    kpd_fl

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值