資源簡介
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????????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
評論
共有 條評論