版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
S3C6410持多指,能夠在系統(tǒng)支持的情況下在主控進(jìn)入關(guān)屏狀態(tài)時(shí)自動調(diào)整GT818工作狀態(tài),達(dá)到省電的目的。硬件IOGuitar的數(shù)據(jù)中斷,通知系統(tǒng)運(yùn)系統(tǒng)中斷號:119((18I2C創(chuàng)建驅(qū)動結(jié)構(gòu)體,探測Guitar設(shè)備,并將其掛載到I2C總線驅(qū)動上;測試I2C通信, 本驅(qū)動采用GPL證,代碼沒有采用模塊方式,所以使用本驅(qū)動前需要重新編譯內(nèi)核。在編譯內(nèi)核前,2gcc及arm-linux-gccCCLDarm-linux-gcc;3、獲取平臺對應(yīng)的Android源碼,解壓到自己的工作。#makexconfig(QT的圖形配置界面,非常直觀,推薦使用 config基于文本菜單的配置界面 將編寫的源代碼到Linux內(nèi)核源代碼的相 #config##選擇項(xiàng),選擇Y dependson ItisaandroiddrivertosupportGooidx'stouchscreenwhoseisguitarons3c6410tform.Thetouchscreencansupportmulti-touchnotmorethantwofingers.SayYheretoenablethedriverforthetouchscreenontheS3CSMDKboard.Ifunsure,sayN.Tocompilethisdriverasamodule,chooseMhere:themodulewillbecalledgoodix_touch.ko.# ,執(zhí)行makexconfig,查看driver項(xiàng)中是否增加了GOODIX_TOUCHSCREEN條的關(guān)聯(lián)設(shè)置需要。以S3C開發(fā)板提供的電阻屏驅(qū)動為例:自帶電阻屏的驅(qū)動配置選項(xiàng)為TOUCHSCREEN_S3C或TOUCHSCREEN_S3C_ANDROID,而s3c_ts_set_tdata、s3c_device_ts是在arch/arm/t-s3c/dev-ts.c文件中定義的,而這個(gè)源文件必須在CONFIG_TOUCHSCREEN_S3C或者CONFIG_TOUCHSCREEN_S3C_ANDROID有定義的情況下才會被編譯,要支持多點(diǎn)觸摸,首先需要linux內(nèi)核的支持,也就是input子系統(tǒng)需要提供多點(diǎn)觸摸的接口,其次是GUI庫要能處理多點(diǎn)觸摸的,后者在Android2.0及以上版本已經(jīng)支持。內(nèi)核方面,自2.6.30以后的內(nèi)核的input子系統(tǒng)開始增加了多點(diǎn)觸摸的支持,而比這更早的版本我們可以通過修改input子系統(tǒng)源文件來在文件(內(nèi)核源文件)/include/input.h#define #define #define #defineABS_MT_TOUCH_MAJOR0x30/*Majoraxisoftouchingellipse*/#defineABS_MT_TOUCH_MINOR0x31/*Minoraxis(omitifcircular)*/#defineABS_MT_WIDTH_MAJOR0x32/*Majoraxisofapproachingellipse*/#defineABS_MT_WIDTH_MINOR0x33/*Minoraxis(omitifcircular)*/#defineABS_MT_ORIENTATION0x34/*Ellipseorientation*/#defineABS_MT_POSITION_X0x35/*CenterXellipseposition*/#defineABS_MT_POSITION_Y0x36/*CenterYellipseposition*/#defineABS_MT_TOOL_TYPE0x37/*Typeoftouchingdevice*/#defineABS_MT_BLOB_ID0x38/*Groupasetofpacketsasablob*/#defineABS_MT_TRACKING_ID0x39/*UniqueIDofinitiatedcontact*/#defineABS_MT_PRESSURE0x3a/*Pressureoncontactarea*/#defineABS_MAX staticinlinevoidinput_mt_sync(structinput_dev{} staticunsigned 0staticunsignedlonginput_abs_bypass[BITS_TO_LONGS( staticvoidinput_handle_event(structinput_dev*dev,disposition=}dev->sync=0;}case{if(test_bit(code,input_abs_bypass))}value=static init{constunsignedintfor(p=input_abs_bypass_init_data;*p;p++)}static init{interr;err=其他版本的內(nèi)核的input子系統(tǒng)文件可以根據(jù)http /kernel/上提供的文件更新比較來作如果采用的是New-style驅(qū)動探測方式,在掛載驅(qū)動前需要預(yù)先建立在主板的i2c_board_infostaticstructi2c_board_info initdata= }staticstructi2c_board_info initdata= },// 動中使用的i2c總線i2c_board_info數(shù)組上不存在與GT818相同地址的。另缺省從設(shè)備地址是0x5d,0x14Guitar106字節(jié)(紅色部分windows系統(tǒng)的GuitarTesttform工具自動產(chǎn)生,細(xì)內(nèi)容可參閱Guitar的用戶手冊。下面以4.3inch屏為例:staticintgoodix_init_panel(structgoodix_ts_data{shortret=-1;uint8_tconfig_info_c[]={ uint8_tconfig_info_d[]= //Touchkeydevlopif(ret<0)return{}{}
cfg_data=config_info_c;cfg_data=config_info_d;ts->abs_x_max=(cfg_data[62]<<8)+ts->abs_y_max=(cfg_data[64]<<8)+if(ret<return0;}GuitarI2C傳輸有最大速率限制(Guitar主控編程說明,建議不350K保證小于一定閾值,請注意i2c工作電壓和Guitar的工作電壓;為了便于移植調(diào)試,這里可以采用編譯控制宏的方式來方便地控制GPIO的使用:Touch芯片的分辨率(注意,配置信息中也要相應(yīng)配置)與屏的像素。頭文件中的義為5代表5指,本最大支持5指;按鍵的設(shè)置,如果使用的是讀鍵值方式則只需打開頭文件中的宏HAVE_TOUCH_KEY,而選擇通過讀坐標(biāo)來判斷按鍵(根據(jù)客戶不同的需求要結(jié)合TP結(jié)構(gòu)重新配配置參數(shù)),則還需開宏COOR_TO_KEY,KEY_X、KEY_Y分別為按鍵的長跟寬的一半,key_center[MAX_KEY_NUM][2]={的位置是否在按鍵區(qū)內(nèi),然后上報(bào)則需最多支持4個(gè)按鍵;大分辨率去減,即如果X軸反了,則可以 模塊支持上電自動檢測版本并升級版本方式。GOODIX提供的驅(qū)動參考代碼默認(rèn)自帶固件升級模塊,并依賴于AUTO_UPDATE_GT818與CONFIG_TOUCHSCREEN_GOODIX_IAP宏編譯開關(guān)和升級數(shù)據(jù)gt818_update.h(3824byteIC無法正常工作)#define#defineret=gt818_downloader(ts,goodix_gt818_firmware,update_path);if(ret<0){ ->dev,"Warnning:GT818updatemightbe}#ifdefgoodix_proc_entry=create_proc_entry("goodix-update",0666,NULL);if(goodix_proc_entry==NULL){ ->dev,"Couldn'tcreateprocentry!\n");ret=-ENOMEM;goto}{ ->dev,"Createprocentry }取所需的數(shù)據(jù)存到goodix_gt818_firmware數(shù)組中,然后調(diào)用ret=gt818_downloader(ts,goodix_gt818_firmware,升級過程中會使用到中斷腳與復(fù)位腳,具體動作請參考818編程指南,請?jiān)谏壨旰蟊WC中斷口為輸且安裝GOODIX提供的Android固件升級程序GOODiX升級程序.apk,程序運(yùn)行后的界面如下圖所示進(jìn)入相應(yīng)文件夾選擇用于升級的*.binGOODIX提10s后自動進(jìn) #define#define#define #define enumCHIP_TYPE{ GT800= #define 令。所以驅(qū)動中的寫節(jié)點(diǎn)(goodix_update_write())要添加相應(yīng)的分支,并注意將ts->read_mode賦MODE_RD_CHIP_TYPE。時(shí)注意要將ts->read_mode賦為MODE_RD_CFG。ts->read_mode賦為MODE_RD_DIF。將ts->read_mode賦為MODE_RD_RAW。caseAPK_READ_FUN: if(cmd[1]==CMD_READ_VER){ts->read_mode=MODE_RD_VER;}elseif(cmd[1]== ts->read_mode= elseif(cmd[1]== ts->read_mode= elseif(cmd[1]== ts->read_mode= elseif(cmd[1]== ts->read_mode= 2)數(shù)據(jù)的elseif(ts->read_mode== page[0]= return elseif(ts->read_mode=={read_data[0]=read_data[1]= //cfgstartprintk("readconfigaddris:%x,%x\n",len= ret ret=i2c_read_bytes(ts-,read_data, if(ret<=0){printk(KERN_INFO"Readconfiginfofailed!\n");return0;}returnlen;}差值/原始值,需要標(biāo)識符控制。對標(biāo)識符的操作方法是,初始化為DATA_NON_ACTIVE狀狀態(tài),完數(shù)據(jù)后,將其置為DATA_NON_ACTIVE狀態(tài)。更換狀態(tài)后,如果原始值,則從0x0880和0x09c0兩處分別160個(gè)字節(jié)的數(shù)據(jù),如果差值,則從0xd80和0xe20兩處分別160個(gè)字節(jié),完數(shù)據(jù)后,再往0x711寫1,然后再將標(biāo)識符置為DATA_NON_ACTIVE狀態(tài)。#ifdefelseif(ts->read_mode==MODE_RD_RAW||ts->read_mode=={intretry=if(data_ready!={data_ready=}
//往0x711寫1 read_data[1]= read_data[2]= ret ret=i2c_write_bytes(ts-,read_data, if(ret<={printk("Writereadrawdataordiffcmderror!\n");return0;}read_times=while(DATA_READY!={if(read_times++>{if(retry++>{printk("Readrawdataordifftimeout!\n");returnTIMEOUT;}goto}}if(ts->read_mode=={read_data[0]= read_data[1]= //rawdata}elseif(ts->read_mode=={read_data[0]= read_data[1]=}len=retret=i2c_read_bytes(ts- ,read_data,if(ret<={printk(KERN_INFO"Readrawdatafailed!\n");return0;}if(ts->read_mode=={read_data[0]= read_data[1]=}elseif(ts->read_mode=={read_data[0]= read_data[1]=}retret=i2c_read_bytes(ts-,read_data,if(re
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年蘇州市中醫(yī)醫(yī)院、西苑醫(yī)院蘇州醫(yī)院公開招聘編外護(hù)理人員70人備考題庫及參考答案詳解1套
- 2025年主管護(hù)師(中級)復(fù)習(xí)提分資料(模擬題)附答案詳解
- 工程項(xiàng)目薪酬管理方案
- 文化創(chuàng)意產(chǎn)業(yè)項(xiàng)目投資方案
- 中醫(yī)骨傷科學(xué)博士考試真題集
- 吊燈安全安裝操作規(guī)范
- 醫(yī)療器械產(chǎn)品注冊資料補(bǔ)正指南
- 常見職業(yè)病癥狀對照表及預(yù)防
- 2025年互聯(lián)網(wǎng)保險(xiǎn)理賠五年優(yōu)化發(fā)展線上報(bào)告
- 快遞業(yè)務(wù)操作規(guī)程及注意事項(xiàng)
- DB51-T 401-2025 禾本科牧草栽培技術(shù)規(guī)程 黑麥草屬
- 2026四川廣安安農(nóng)發(fā)展集團(tuán)有限公司第一批次招聘勞務(wù)派遣制人員15人筆試備考試題及答案解析
- 肯尼亞介紹全套課件
- 中國眼底病臨床診療指南2025年版
- 押題專輯十五:14道押題+精準(zhǔn)解題+14篇范文+點(diǎn)評遷移七年級語文上學(xué)期期末作文押題(新教材統(tǒng)編版)
- 2025年高職(中醫(yī)康復(fù)技術(shù))運(yùn)動康復(fù)綜合測試題及答案
- 2025年重癥三基考試試題及答案
- 工貿(mào)行業(yè)安全員培訓(xùn)課件
- 2025年青島衛(wèi)生局事業(yè)單位考試及答案
- 紀(jì)委檔案規(guī)范制度
- 金太陽云南省2025-2026學(xué)年高一上學(xué)期12月聯(lián)考英語試卷
評論
0/150
提交評論