• 大小: 35KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-28
  • 语言: Java
  • 标签: Android  STM32  敦泰FT6336  

资源简介

Android下MTK平台驱动FT6336U电容触摸屏参考代码资料,已调试OK,只支持单点触摸,多用在手环 手表等小显示应用上,这种一般用的是Cortex-M0系列的芯片。可以直接参考里面的代码。

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

#include “tpd_custom_fts.h“
#include “focaltech_ctl.h“
#include “focaltech_ex_fun.h“
#include 

 
extern u8 *I2CDMABuf_va ;
extern volatile u32 I2CDMABuf_pa;


static int ft_rw_iic_drv_major = FT_RW_IIC_DRV_MAJOR;
struct ft_rw_i2c_dev 
{
    struct cdev cdev;
    struct semaphore ft_rw_i2c_sem;
    struct i2c_client *client;
};
struct ft_rw_i2c_dev *ft_rw_i2c_dev_tt;
static struct class *fts_class;

static int ft_rw_iic_drv_myread(struct i2c_client *client u8 *buf int length)
{
    int ret = 0;    
    ret = fts_i2c_Read(client NULL 0 buf length);

    if(ret<0)
        dev_err(&client->dev “%s:IIC Read failed\n“
                __func__);
    return ret;
}

static int ft_rw_iic_drv_mywrite(struct i2c_client *client u8 *buf int length)
{
    int ret = 0;
    ret = fts_i2c_Write(client buf length);
    if(ret<0)
        dev_err(&client->dev “%s:IIC Write failed\n“
                __func__);
    return ret;
}

static int ft_rw_iic_drv_RDWR(struct i2c_client *client unsigned long arg)
{
    struct ft_rw_i2c_queue i2c_rw_queue;
    u8 __user **data_ptrs;
    struct ft_rw_i2c * i2c_rw_msg;
    int ret = 0;
    int i;

    if (!access_ok(VERIFY_READ (struct ft_rw_i2c_queue *)arg sizeof(struct ft_rw_i2c_queue)))
        return -EFAULT;

    if (copy_from_user(&i2c_rw_queue
        (struct ft_rw_i2c_queue *)arg 
        sizeof(struct ft_rw_i2c_queue)))
        return -EFAULT;

    if (i2c_rw_queue.queuenum > FT_I2C_RDWR_MAX_QUEUE)
        return -EINVAL;


    i2c_rw_msg = (struct ft_rw_i2c*)
        kmalloc(i2c_rw_queue.queuenum *sizeof(struct ft_rw_i2c)
        GFP_KERNEL);
    if (!i2c_rw_msg)
        return -ENOMEM;

    if (copy_from_user(i2c_rw_msg i2c_rw_queue.i2c_queue
            i2c_rw_queue.queuenum*sizeof(struct ft_rw_i2c))) {
        kfree(i2c_rw_msg);
        return -EFAULT;
    }

    data_ptrs = kmalloc(i2c_rw_queue.queuenum * sizeof(u8 __user *) GFP_KERNEL);
    if (data_ptrs == NULL) {
        kfree(i2c_rw_msg);
        return -ENOMEM;
    }
    
    ret = 0;
    for (i=0; i< i2c_rw_queue.queuenum; i++) {
        if ((i2c_rw_msg[i].length > 8192)||
            (i2c_rw_msg[i].flag & I2C_M_RECV_LEN)) {
            ret = -EINVAL;
            break;
        }
        data_ptrs[i] = (u8 __user *)i2c_rw_msg[i].buf;
        i2c_rw_msg[i].buf = kmalloc(i2c_rw_msg[i].length GFP_KERNEL);
        if (i2c_rw_msg[i].buf == NULL) {
            ret = -ENOMEM;
            break;
        }

        if (copy_from_user(i2c_rw_msg[i].b

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2014-10-12 14:46  Android下MTK平台驱动(FT6X36_MTK6571 沃特沃德已调试通过)\
     文件        8337  2014-09-04 18:54  Android下MTK平台驱动(FT6X36_MTK6571 沃特沃德已调试通过)\focaltech_ctl.c
     文件         911  2014-09-04 18:54  Android下MTK平台驱动(FT6X36_MTK6571 沃特沃德已调试通过)\focaltech_ctl.h
     文件       33977  2014-10-14 12:45  Android下MTK平台驱动(FT6X36_MTK6571 沃特沃德已调试通过)\focaltech_driver.c
     文件       33821  2014-09-04 18:54  Android下MTK平台驱动(FT6X36_MTK6571 沃特沃德已调试通过)\focaltech_ex_fun.c
     文件        1770  2014-09-04 18:54  Android下MTK平台驱动(FT6X36_MTK6571 沃特沃德已调试通过)\focaltech_ex_fun.h
     文件       27986  2014-07-02 16:28  Android下MTK平台驱动(FT6X36_MTK6571 沃特沃德已调试通过)\ft_gesture_lib.a_shipped
     文件         374  2014-09-04 18:54  Android下MTK平台驱动(FT6X36_MTK6571 沃特沃德已调试通过)\ft_gesture_lib.h
     文件         666  2014-09-04 18:54  Android下MTK平台驱动(FT6X36_MTK6571 沃特沃德已调试通过)\Makefile
     文件        5413  2014-10-10 19:35  Android下MTK平台驱动(FT6X36_MTK6571 沃特沃德已调试通过)\tpd_custom_fts.h

评论

共有 条评论