資源簡介
包內是對Linux平臺下的ilitek驅動。適用于mtk,allwin,rockchip,amlogic等不同平臺下的ilitek觸摸屏驅動,內含區分不同平臺的配置說明文檔.通過宏來區分不同的平臺。
代碼片段和文件信息
/*
?*?ILITEK?Touch?IC?driver
?*
?*?Copyright?(C)?2011?ILI?Technology?Corporation.
?*
?*?Author:?Jijie?Wang?
?*?
?*?This?program?is?free?software;?you?can?redistribute?it?and/or?modify
?*?it?under?the?terms?of?the?GNU?General?Public?License?as?published?by
?*?the?Free?Software?Foundation;?either?version?2?of?the?License?or
?*?(at?your?option)?any?later?version.
?*?
?*?This?program?is?distributed?in?the?hope?that?it?will?be?useful
?*?but?WITHOUT?ANY?WARRANTY;?without?even?the?implied?warranty?of
?*?MERCHANTABILITY?or?FITNESS?FOR?A?PARTICULAR?PURPOSE.??See?the
?*?GNU?General?Public?License?for?more?details.
?*?
?*?You?should?have?received?a?copy?of?the?GNU?General?Public?License
?*?along?with?this?program;?if?not?write?to?the?Free?Software
?*?Foundation?Inc.?51?Franklin?Street?Fifth?Floor?Boston
?*?MA?02110-1301?USA.
?*?
?*/
#include?“ilitek_ts.h“
char?ilitek_driver_information[]?=?{DERVER_VERSION_MAJOR?DERVER_VERSION_MINOR?CUSTOMER_ID?MODULE_ID?PLATFORM_ID?PLATFORM_MODULE?ENGINEER_ID};
int?ilitek_log_level_value?=?ILITEK_DEFAULT_LOG_LEVEL;
static?bool?ilitek_repeat_start?=?true;
static?bool?ilitek_exit_report?=?false;
#if?ILITEK_PLAT?==?ILITEK_PLAT_MTK
extern?struct?tpd_device?*tpd;
#ifdef?ILITEK_ENABLE_DMA
static?unsigned?char?*I2CDMABuf_va?=?NULL;
static?dma_addr_t?I2CDMABuf_pa?=?0;
#endif
#endif
#ifdef?ILITEK_TUNING_MESSAGE
static?struct?sock?*?ilitek_netlink_sock;
bool?ilitek_debug_flag?=?false;
static?void?ilitek_udp_reply(int?pidint?seqvoid?*payloadint?size)
{
struct?sk_buff *skb;
struct?nlmsghdr *nlh;
int len?=?NLMSG_SPACE(size);
void *data;
int?ret;
tp_log_debug(“udp_reply\n“);
skb?=?alloc_skb(len?GFP_ATOMIC);
if?(!skb)?{
tp_log_info(“alloc?skb?error\n“);
return;
}
//tp_log_info(“ilitek?udp_reply\n“);
#if?LINUX_VERSION_CODE?>=?KERNEL_VERSION(380)
nlh=?nlmsg_put(skb?pid?seq?0?size?0);
#else
nlh=?NLMSG_PUT(skb?pid?seq?0?size);
#endif
nlh->nlmsg_flags?=?0;
data=NLMSG_DATA(nlh);
memcpy(data?payload?size);
#if?LINUX_VERSION_CODE?>=?KERNEL_VERSION(380)
NETlink_CB(skb).portid?=?0; ??/*?from?kernel?*/
#else
NETlink_CB(skb).pid?=?0; ?/*?from?kernel?*/
#endif
NETlink_CB(skb).dst_group?=?0;??/*?unicast?*/
ret=netlink_unicast(ilitek_netlink_sock?skb?pid?MSG_DONTWAIT);
if?(ret?<0)?{
tp_log_err(“ilitek?send?failed\n“);
return;
}
return;
#if?LINUX_VERSION_CODE? nlmsg_failure: /*?Used?by?NLMSG_PUT?*/
if?(skb)?{
kfree_skb(skb);
}
#endif
}
/*?Receive?messages?from?netlink?socket.?*/
static?u_int?ilitek_pid?=?100?ilitek_seq?=?23/*?sid*/;
static?void?udp_receive(struct?sk_buff??*skb)
{
?? int?count?=?0?ret?=?0?i?=?0;
uint8_t?*?data;
struct?nlmsghdr?*nlh;
nlh?=?(struct?nlmsghdr?*)skb->data;
ilitek_pid??=?100;//NETlink_CREDS(skb)->pid;
//uid??=?NETlink_CREDS(skb)->uid;
//sid??=?NETlink_CB(skb).sid;
ilitek_seq??=?23;//nlh->nlmsg
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????349??2017-09-08?11:11??ilitek_limv5_1_0\ilitek.dts
?????文件?????725064??2017-09-14?18:13??ilitek_limv5_1_0\ILITEK_LINUX_I2C_DRIVER_CHS_V0.0.6.pdf
?????文件??????72322??2017-09-13?11:05??ilitek_limv5_1_0\ilitek_main.c
?????文件??????11732??2017-09-13?11:05??ilitek_limv5_1_0\ilitek_platform_init.c
?????文件??????79225??2017-09-15?17:01??ilitek_limv5_1_0\ilitek_tool.c
?????文件??????14336??2017-09-13?11:05??ilitek_limv5_1_0\ilitek_ts.h
?????文件??????28527??2017-09-15?17:00??ilitek_limv5_1_0\ilitek_update.c
?????文件?????????91??2017-09-08?11:11??ilitek_limv5_1_0\Makefile
?????文件????????121??2017-09-08?11:11??ilitek_limv5_1_0\Makefile_build_ko
?????文件????????381??2017-09-15?09:38??ilitek_limv5_1_0\Makefile_mtk
?????目錄??????????0??2017-09-15?10:02??ilitek_limv5_1_0
-----------?---------??----------?-----??----
???????????????932148????????????????????11
評論
共有 條評論