ft6236 触摸屏驱动

本文详细介绍了FT6236触摸屏的驱动实现,包括init函数中的复位和input系统初始化,以及中断函数处理。在init函数中,对触摸屏进行复位并设置了input子系统的支持事件。在中断处理部分,注册了中断管脚,并在touch_event_handler函数中处理触摸事件。整个驱动依赖于i2c_board_info和中断处理协议。
摘要由CSDN通过智能技术生成

在目录下amp\a53_linux\drv\extdrv\touchpad\ft6236下可以看到ft6236.c的文件

1. init函数

static int __init ft_init(void)
{
    int ret = 0;
    hi_gpio_groupbit_info stIntInfo;
    hi_gpio_groupbit_info stRstInfo;

    stIntInfo.group_num = INT_GPIO_CHIP;
    stIntInfo.bit_num = INT_GPIO_OFFSET;
    stIntInfo.value = 0;

    stRstInfo.group_num = RST_GPIO_CHIP;
    stRstInfo.bit_num = RST_GPIO_OFFSET;
    stRstInfo.value = 1;

    ret = i2cdev_init();
    if (ret)
    {
        dev_err(NULL, " i2cdev_init fail!\n");
        goto error_end;
    }

    hi_gpio_set_dir(&stIntInfo);
    hi_gpio_set_dir(&stRstInfo);

    ret = ft_reset(&stRstInfo);
    if (ret)
    {
        dev_err(NULL, " ft_reset fail!\n");
        goto error_end;
    }
    ret = devinput_init();
    if (ret)
    {
        dev_err(NULL, " devinput_init fail!\n");
        goto error_end;
    }

    return 0;
error_end:
    return -1;
}

INT_GPIO_CHIPINT_GPIO_OFFSET都是在宏定义
#elif (defined(BOARD_DEMB) && (defined(HI3556AV100) || defined(HI3519AV100)))下定义的

#define RST_GPIO_CHIP (2)
#define RST_GPIO_OFFSET (6)
#define INT_GPIO_CHIP (2)
#define INT_GPIO_OFFSET (5)

这些管脚可以在这里《Hi3556AV100 Demo 单板使用指南.pdf》中看到,分别得出触摸屏的中断和复位管脚

1.1 对触摸屏进行复位

static int ft_reset(hi_gpio_groupbit_info* pstRstInfo)
{
    pstRstInfo->value = 1;
    hi_gpio_write_bit(pstRstInfo);
    pstRstInfo->value = 0;
    hi_gpio_write_bit(pstRstInfo);
    msleep(5);
    pst
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值