• 大小: 15KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-23
  • 语言: 其他
  • 标签: ft5x06  

资源简介

FT5X06 触摸屏驱动程序,直接替换即可使用 厂家提供的资料 绝对真实可靠 已用在项目当中 资料珍贵 不能用,欢迎举报

资源截图

代码片段和文件信息

#include 
#include 
//#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

#include 
#include “focaltech_ctl.h“

static int ft_rw_iic_drv_major = FT_RW_IIC_DRV_MAJOR;
struct ft_rw_i2c_dev {
struct cdev cdev;
struct mutex ft_rw_i2c_mutex;
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 = ft5x0x_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 = ft5x0x_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].buf data_ptrs[i] i2c_rw_msg[i].length)) {
++i;
ret = -EFAULT;
break;
}
}

if (ret < 0) {
int j;
for (j=0; j kfree(i2c_rw_msg[j].buf);
kfree(data_ptrs);
kfree(i2c_rw_msg);
return ret;
}

for (i=0; i< i2c_rw_queue.queuenum; i++) {
if (i2c_rw_msg[i].flag) {
        ret = ft_rw_iic_drv_myread(client

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        565  2013-06-21 16:26  ft5336_download_lib.h

     文件       6417  2013-06-21 10:03  focaltech_ctl.c

     文件        638  2013-06-21 10:03  focaltech_ctl.h

     文件      26678  2013-06-26 09:43  ft5x06_ex_fun.c

     文件       2210  2013-06-26 09:37  ft5x06_ex_fun.h

     文件      15969  2013-06-26 09:38  ft5x06_ts.c

     文件       1088  2013-06-22 11:07  ft5x06_ts.h

----------- ---------  ---------- -----  ----

                53565                    7


评论

共有 条评论