全志a20平臺(tái)init-input說明_第1頁(yè)
全志a20平臺(tái)init-input說明_第2頁(yè)
全志a20平臺(tái)init-input說明_第3頁(yè)
全志a20平臺(tái)init-input說明_第4頁(yè)
全志a20平臺(tái)init-input說明_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、A20init-input 說明文檔V1.02013-06-17Copyright 2013Allwinner Technology.s.- 1- ReviHistoryCopyright 2013Allwinner Technology.s.- 2- VerDateChanges compared to previous ieV1.02013-06-17Initial ver目錄1. 前言. - 5 -1.1 編寫目的. - 5 -1.2 適用范圍. - 5 -1.3 相關(guān). - 5 -1.4 文檔介紹. - 5 -2. 模塊介紹. - 6 -2.1 模塊功能介紹. - 6 -2.2 相關(guān)術(shù)

2、語(yǔ)介紹. - 6 -2.3 模塊源碼介紹. - 6 -2.4 模塊config 配置. - 6 -3. init-input 模塊詳細(xì)講解. - 8 -3.1 關(guān)鍵數(shù)據(jù)結(jié)構(gòu)介紹. - 8 -input_sensor_type. - 8 -struct ctp_config_info. - 8 -sensor_config_info. - 10 -struct ir_config_info. - 10 -3.1.13.1.23.1.33.1.4該結(jié)構(gòu)體用于存放 IR 模塊的相關(guān)參數(shù)值。. - 10 -script 接口介紹. - 10 -3.23.2.13.2.23.2.33.2.43.2.5i

3、nput_fetch_sysconfig_para. - 10 -script_item_u get_para_value. - 11 -void get_str_para. - 11 -void get_para. - 13 -void get_pio_para. - 14 -i2c 通信相關(guān)接口. - 15 -3.3.1 sw_i2c_write_bytes. - 15 -3.3.2 i2c_read_bytes_addr8. - 15 -3.3.3 i2c_read_bytes_addr16. - 16 -ctp 接口介紹. - 16 -3.33.4_port_rate. - 16 -_

4、port_rate. - 16 -_port_deb. - 17 -_port_deb. - 17 -3.4.13.4.23.4.33.4.53.4.6ctp_get_ ctp_set_ ctp_get_ ctp_set_ctp_wakeup. - 17 -gpio 接口介紹. - 18 -3.5申請(qǐng)與3.5.1 input_init_platform_resource. - 18 -3.5.2 input_free_platform_resource. - 18 -4. 使用示例. - 20 -Copyright 2013Allwinner Technology.s.- 3- 4.1 使用說

5、明. - 20 -4.24.3ctp 使用示例說明. - 20 -設(shè)備使用示例說明. - 21 - 23 -5.Copyright 2013Allwinner Technology.s.- 4- 1. 前言1.1 編寫目的本文首先介紹了 init-input 模塊的作用以及說明相關(guān)的接口,供驅(qū)動(dòng)移植人員快速的使用。(由于文檔不斷補(bǔ)充,代碼也不斷更新,有些地方可能和實(shí)際代碼中有細(xì)微差別,請(qǐng)注意)1.2 適用范圍適用于 A20 對(duì)應(yīng)。1.3 相關(guān)項(xiàng)目中 input 設(shè)備驅(qū)動(dòng)的開發(fā),以及使用應(yīng)認(rèn)真閱讀該文檔。1.4 文檔介紹本文主要針對(duì) init-input 模塊進(jìn)行相關(guān)的介紹,對(duì)其中的關(guān)鍵數(shù)據(jù)結(jié)構(gòu)

6、以及所用接口進(jìn)行清晰的描述,同時(shí)舉例子說明相關(guān)接口的使用方法。Copyright 2013Allwinner Technology.s.- 5- 模塊介紹模塊功能介紹init-input 模塊(即輸入設(shè)備初始化模塊),該模塊的主要功能為向其他輸入設(shè)備提供以下功能。Script 接口提供了sys_config.fex的功能。申請(qǐng)以及ctp 相關(guān)的硬件 gpio 資源。(中斷引腳),wakeup(復(fù)位引腳)硬件操作的接口封裝。2.2 相關(guān)術(shù)語(yǔ)介紹Script置參數(shù).:指的是打包到 img 中的 sys_config.fex 文件. 包含系統(tǒng)各模塊配Script 接口:指對(duì) sys_config.f

7、ex 進(jìn)行2.3 模塊源碼介紹的函數(shù).init-input 模塊的源碼位于 input 目錄下,如下所示:內(nèi)核:licheelinux-3.3driversinputinit-inp內(nèi)核:licheelinux-3.3driversinputinit-inp包含該模塊的頭文件為:init-input.h,目錄位置如下:內(nèi)核:licheelinux-3.3includelinuxinit-input.h內(nèi)核:licheelinux-3.4includelinuxinit-input.h使用該文件提供的函數(shù)時(shí),請(qǐng)包含頭文件 init-input.h。2.4 模塊config 配置Init-inpu

8、t 為設(shè)備獲取配置參數(shù)以及申請(qǐng) gpio 資源的重要文件,建議編譯進(jìn)內(nèi)核中,默認(rèn)情況下該文件為編譯近內(nèi)核。對(duì)于 init-input 的內(nèi)核配置, 可到 linux-3.x 目錄下通過命令 makeARCH=arm以下步驟操作:config 進(jìn)入配置主界面,以 linux3.4 為例子進(jìn)行說明。并按首先,選擇 Device Drivers 選項(xiàng)進(jìn)入下一級(jí)配置,如圖 1 所示:圖 1 Device Drivers 選項(xiàng)配置Copyright 2013Allwinner Technology.s.- 6- 進(jìn)入 Device Drivers 配置后,選擇 Input deviupport 選項(xiàng),如

9、圖 2 所示圖 2Input deviupport 選項(xiàng)配置將 initdevice選擇編譯進(jìn)內(nèi)核,如下所示:圖 3 將 init-input 編譯進(jìn)內(nèi)核Copyright 2013Allwinner Technology.s.- 7- 3. init-input 模塊詳細(xì)講解3.1 關(guān)鍵數(shù)據(jù)結(jié)構(gòu)介紹Init-input 模塊中定義了一些數(shù)據(jù)結(jié)構(gòu)用于存放獲取到的 sysconfig.fex 參數(shù),某些輸入設(shè)備因?yàn)槭褂幂^少,有可能沒有定義其相關(guān)的數(shù)據(jù)結(jié)構(gòu),使用時(shí),請(qǐng)按照已使用的例子,自行添加相關(guān)數(shù)據(jù)結(jié)構(gòu)。下面將一一介紹。3.1.1 enum input_sensor_type列舉了一些輸入設(shè)備類

10、型,用于區(qū)分使用接口以及獲取輸入設(shè)備sysconfig.fex 存放數(shù)據(jù)結(jié)構(gòu)體信息,函數(shù)接口的選擇等。3.1.2 struct ctp_config_info該結(jié)構(gòu)體用于存放 ctp 參數(shù)的數(shù)據(jù)結(jié)構(gòu)名稱。定義如下:Copyright 2013Allwinner Technology.s.- 8- struct ctp_config_infoenum input_sensor_typeinput_type; ctp_used;名稱作用CTP_TYPEctp 設(shè)備類型GSENSOR_TYPRGsensor 設(shè)備類型GYR_TYPE陀螺儀設(shè)備類型IR_TYPEIR 設(shè)備類型LS_TYPE光傳感器設(shè)備

11、類型COMPASS_TYPECompass 設(shè)備類型MOTOR_TYPE振動(dòng)器設(shè)備類型enum inpusor type CTP TYPE, GSENSOR TYPE, GYR TYPE,IR TYPE, LS TYPE,COMPASS TYPE, MOTOR TYPE;Copyright 2013Allwinner Technology.s.- 9- 名稱作用input_typeInput 設(shè)備類型,ctp 的應(yīng)為:CTP_TYPE ,主要用于在各接口獲得整個(gè)結(jié)構(gòu)體的信息ctp_usedctp_para 中,ctp_used 參數(shù)值,用于設(shè)備驅(qū)動(dòng)中判斷是否繼續(xù)加載設(shè)備驅(qū)動(dòng)twi_idctp_

12、para 中,ctp_twi_id 參數(shù)值,用于detect 函數(shù)中screen_max_xctp_para 中,ctp_screen_max_x 參數(shù)值,ctp 面板的 X 軸最大分辨率screen_max_yctp_para 中,ctp_screen_max_y 參數(shù)值,ctp 面板的 Y 軸最大分辨率revert_x_flagctp_para 中,ctp_revert_x_flag 參數(shù)值,ctp 面板的 X 軸方向,可配置值為 0,1。當(dāng)前獲取值為 1 時(shí),發(fā)現(xiàn) X 軸方向反置,在將該參數(shù)值替換為 0 時(shí),即可以調(diào)整 X 軸方向revert_y_flagctp_para 中,ctp_r

13、evert_y_flag 參數(shù)值,ctp 面板的 Y 軸方向,可配置值為 0,1。當(dāng)前獲取值為 1 時(shí),發(fā)現(xiàn) Y 軸方向反置,在將該參數(shù)值替換為 0,即可以調(diào)整 Y 軸方向exchange_x_y_fla gctp_para 中,ctp_exchange_x_y_flag 參數(shù)值,ctp 面板 X,Y 軸互換標(biāo)志,可配置值為 0,1。當(dāng)前獲取值為 1 時(shí),發(fā)現(xiàn) X, Y 軸方向反了,在將該參數(shù)值替換為 0 時(shí),即可以將 X,Y軸的方向互換。_numberctp_para 中,ctp_port 參數(shù)值,ctp 模塊中斷引腳號(hào)wakeup_numberctp_para 中,ctp_wakeup 參

14、數(shù)值,ctp 模塊復(fù)位引腳號(hào)light_numberctp_para 中,ctp_light 參數(shù)值,ctp 模塊按鍵燈引腳號(hào),當(dāng)使用按鍵燈時(shí)使用,目前該參數(shù)均不使用。u32twi id; screen max x; screen max y; revert x flag; revert y flag;exchange x y flag;u32number;u32wakeup number; #ifdef TOUCH KEY LIGHT SUPPORTu32light number;#endif;3.1.3 sensor_config_info該結(jié)構(gòu)體為 sensors 設(shè)備類型,目前使用的

15、sensor 均使用輪詢的方法獲得數(shù)據(jù)。3.1.4 struct ir_config_info該結(jié)構(gòu)體用于存放 IR 模塊的相關(guān)參數(shù)值。3.2 script 接口介紹3.2.1input_fetch_sysconfig_para函數(shù)原型如下:input_fetch_sysconfig_para(enum input_sensor_type *input_type)Copyright 2013Allwinner Technology.s.- 10 -名稱作用input_type輸入設(shè)備類型,IR 應(yīng)為 IRTYPEir_usedSysconfig.fex 中 ir_para 的 ir_used

16、參數(shù)值,表示該 IR 是否啟用ir_gpioSysconfig.fex 中 ir_para 的 ir_rx 參數(shù)值,rx 使用的 gpio 號(hào)rate目前尚未使用struct ir config infoenum inpusor type input type; ir used;struct gpio config ir gpio;unsigned long rate;名稱作用input_typeSensor 輸入設(shè)備類型,根據(jù)驅(qū)動(dòng)需要進(jìn)行設(shè)置sensor_useSysconfig.fex 中_para 的_used 參數(shù)值,表示該 sensor是否啟用twi_idSysconfig.fex

17、中_para 的_twi_id 參數(shù)值,表示該 sensor是使用的 i2c 組別號(hào),在驅(qū)動(dòng)的 detect 函數(shù)中使用。strucsor config infoenum inpusor type input type; sensor used;u32 twi id;input_type:輸入設(shè)備類型返回值:成功返回 0,失敗或者該設(shè)備的_used 不為 1 時(shí),返回-1;該函數(shù)使用輸入的類型獲取相關(guān)的數(shù)據(jù)結(jié)構(gòu)體,實(shí)現(xiàn)了常使用的輸入設(shè)備的具體函數(shù),某些不經(jīng)常使用的設(shè)備,可能沒寫出具體的實(shí)現(xiàn)函數(shù),如果使用,請(qǐng)按照已經(jīng)支持的設(shè)備寫出需要的設(shè)備的具體實(shí)現(xiàn)。目前已經(jīng)實(shí)現(xiàn)的獲取 sysconfig.fe

18、x 下配置參數(shù)的如下所示:使用該函數(shù)時(shí),注意input_sensor_type中設(shè)備的類型應(yīng)與實(shí)際的實(shí)現(xiàn)函數(shù)對(duì)應(yīng),否則將可以錯(cuò)誤。3.2.2 script_item_u get_para_value函數(shù)原型如下:根據(jù)主鍵值以及值對(duì)系統(tǒng)提供的函數(shù):script_get_item 進(jìn)行封裝來獲取配置參數(shù),返回 script_item_u 數(shù)據(jù)結(jié)構(gòu)數(shù)值。keyname:主鍵值Subname:值返回值: 返回獲取到的 script_item_u 結(jié)構(gòu)體數(shù)據(jù)。例子:需要獲取 ctp_para 下 ctp_used 的數(shù)值。則使用的語(yǔ)句如下:3.2.3 void get_str_paraCopyright

19、 2013Allwinner Technology.s.- 11 -.ctp used;script item uval;val = get para value(ctp para, ctp used); ctp used = val.val;.script_item_u get_para_value(char* keyname, char* subname)(* const fetch sysconfig para)(enum inpusor type *input type) = ctp fetch sysconfig para,gsensor fetch sysconfig para,

20、gyr fetch sysconfig para,ir fetch sysconfig para, ls fetch sysconfig para,e compass fetch sysconfig para;函數(shù)原型如下:該函數(shù)可用于獲取 sysconfig.fex 下 char 類型的參數(shù)值。name:用于存放需要獲取的主鍵以及名稱。第一個(gè)必須放置主鍵名稱。value:依照 name 的順序存取獲取的 char 類型數(shù)據(jù)。num:需要獲取多少個(gè) char 的內(nèi)容,為的個(gè)數(shù)值。例子 1:需要獲取 ctp_para 下的 ctp_name 值,并將獲取到的值放置在 cfgname下。則使用語(yǔ)句

21、如下所示:例子 2:若 ctp_para 下存在ctp_name1,ctp_name2,ctp_name3,ctp_name4 的 char類型數(shù)據(jù),并將獲取到的數(shù)據(jù)存在到 name1,name2,name3,name4 下。則使用的語(yǔ)句如下:Copyright 2013Allwinner Technology.s.- 12 -.char *getname = ctp para, ctp name1, ctp name2, ctp name3, ctp name4;char * value4;char * name1, * name2, * name3,* name4; get str par

22、a(getname, value,4);name1 = value0; name2 = value1; name3 = value2; name4 = value3;.char *name = ctp para, ctp name;char * cfgname;get str para(name, &cfgname,1);.void get_str_para(char* name, char* value,num)3.2.4 void get_para函數(shù)的原型如下:void get_para(char* name,value,num)name:用于存放需要獲取的主鍵以及 value:依照 n

23、ame 的順序存取獲取的名稱。第一個(gè)必須放置主鍵名稱。類型數(shù)據(jù)。的個(gè)數(shù)值。num:需要獲取多少個(gè)的內(nèi)容,為例子 1:需要獲取 ctp_para 下的 ctp_used 值,并將獲取到的值放置在 used 下。則使用語(yǔ)句如下所示:例子 2:若需要獲取 ctp_para 下存在 ctp_used, ctp_twi_id, ctp_screen_max_x, ctp_screen_max_y, ctp_revert_x_flag, ctp_revert_y_flag, ctp_exchange_x_y_flag 等類型數(shù)據(jù),并將獲取到的數(shù)據(jù)存在到 ctp_used, twi_id, screen_m

24、ax_x, screen_max_y, revert_x_flag,revert_y_flag, exchange_x_y_flag 下。則使用的語(yǔ)句如下:Copyright 2013Allwinner Technology.s.- 13 -.value7 = 0; char *name11 = ctp para, ctp used, ctp twi id,ctp screen max x, ctp screen max y, ctp revert x flag, ctp revert y flag,ctp exchange x y flag,;.char *name = ctp para,

25、ctp used;used;getpara(name, &used, 1);.3.2.5 void get_pio_para函數(shù)原型如下:name:用于存放需要獲取的主鍵以及 value:依照 name 的順序存取獲取的名稱。第一個(gè)必須放置主鍵名稱。類型數(shù)據(jù)。的個(gè)數(shù)值。num:需要獲取多少個(gè)的內(nèi)容,為例子 1:如需要獲取 ctp_para 下的 ctp_port的 gpio,則使用該語(yǔ)句為:例子 2:如需要獲取 ctp_para 下的 ctp_語(yǔ)句為:_port ,ctp_wakeup 的 gpio,則使用該Copyright 2013Allwinner Technology.s.- 14 -

26、.char *name = ctp para, ctp_port,.char *name = ctp para, ctpport;struct gpio configgpio; number;get pio para(name, &gpio, 1); number =gpio.gpio;.void get_pio_para(char* name, struct gpio_config value,num)getpara(name, &value, 7); ctp used= value0;twi id= value1;screen max x= value2;screen max y= val

27、ue3;revert x flag= value4; revert y flag= value5; exchange x y flag = value6;.3.3 i2c 通信相關(guān)接口3.3.1 sw_i2c_write_bytes函數(shù)原型如下:sw_i2c_write_bytes(struct i2c_cnt *cnt, u8_t *data, u16_t len)cnt:存放地址的 i2c_cnt 結(jié)構(gòu)體 data:存放需要寫入的數(shù)據(jù) len:數(shù)據(jù)的長(zhǎng)度返回值:成功返回 1,失敗返回負(fù)數(shù)。例子:寄存器地址寫在數(shù)組的前面。3.3.2 i2c_read_bytes_addr8函數(shù)原型如下:i2

28、c_read_bytes_addr8(struct i2c_cnt *cnt, u8_t *buf, u16_t len)cnt:存放地址的 i2c_cnt 結(jié)構(gòu)體bug:存放到的據(jù)len:數(shù)據(jù)的長(zhǎng)度注意:bug 的第一個(gè)數(shù)據(jù)(bug0)為需要的起始寄存器地址。回來的第一個(gè)數(shù)據(jù)(bug0)仍為寄存器地址,bug1開始為從 bug0寄存器開始的數(shù)據(jù)。例子:0 x80 寄存器起始 32 個(gè)數(shù)據(jù)。Copyright 2013Allwinner Technology.s.- 15 -.u8 value33 = 0 x80;u8 data2 = 0 x80, 0 x01, 0 x55;ret = i2c

29、_write_bytes(cnt, ata, 3);ctp wakeup;struct gpio config gpio2; number, wakeup number;get pio para(name, gpio, 2); number = gpio0.gpio;wakeup number = gpio1.gpio;.3.3.3 i2c_read_bytes_addr16函數(shù)原型如下:i2c_read_bytes_addr16(struct i2c_cnt *cnt, u8_t *buf, u16_t len)cnt:存放地址的 i2c_cnt 結(jié)構(gòu)體bug:存放到的據(jù)len:數(shù)據(jù)的長(zhǎng)度注

30、意:bug 的第一與第二個(gè)數(shù)據(jù)(bug0,bug1)為需要的起始寄存器地址。回來的第一與第二數(shù)據(jù)(bug0,bug1)仍為寄存器地址,bug2開始為從16 位寄存器(bug0,bug1)寄存器開始的數(shù)據(jù)。例子:0 x715 寄存器起始 32 個(gè)數(shù)據(jù)。3.4 ctp 接口介紹3.4.1 ctp_get_port_rate函數(shù)原型如下:功能:獲取 CTP IRQ 頻率參數(shù): CLK :存放獲取到的 clk 值GPIO:返回值:true,false,引腳號(hào)成功。失敗。3.4.2 ctp_set_port_rate函數(shù)原型如下:Copyright 2013Allwinner Technology.s.

31、- 16 -bool ctp_get_port_rate(u32 gpio, u32 *clk).u8 value34 = 0 x07,0 x15;i2c read bytes addr8(cnt, value, 34);/數(shù)據(jù)的長(zhǎng)度為需要的數(shù)據(jù)的個(gè)數(shù)與寄存器長(zhǎng)度之和,即 32 + 2.i2c read bytes addr8(cnt, value, 33);/數(shù)據(jù)的長(zhǎng)度為需要的數(shù)據(jù)的個(gè)數(shù)與寄存器長(zhǎng)度之和,即 32 + 1.功能:設(shè)置 CTP IRQ 頻率參數(shù): CLK :需要設(shè)置的 clk 值。clk= 0 時(shí),clk 為clk 為 24Mhz。32Khz;clk= 1時(shí),GPIO:引腳號(hào)返

32、回值:true,設(shè)置成功。false,設(shè)置失敗。3.4.3 ctp_get_port_deb函數(shù)原型如下:功能:獲取 CTP IRQ DEB 值(即時(shí)鐘的分頻系數(shù))參數(shù): CLK_PRE_SCL :獲取到的 DEB 值GPIO:引腳號(hào)返回值:true,設(shè)置成功。false,設(shè)置失敗。3.4.5 ctp_set_port_deb函數(shù)原型如下:功能:設(shè)置 CTP IRQ DEB 值(即即將時(shí)鐘分頻到 2 的 n 次方)時(shí)鐘的分頻系數(shù),設(shè)置值 n 為 0 到 7,參數(shù): CLK_PRE_SCL :設(shè)置的 DEB 值GPIO:引腳號(hào)返回值:true,設(shè)置成功。false,設(shè)置失敗。3.4.6 ctp_

33、wakeup函數(shù)原型如下所示:ctp_wakeup(u32 gpio,sus,ms)gpio: 為 wakeup 引腳的 gpiosus:為輸出的 gpio 的狀態(tài),0 表示低電平,1 表示高電平。ms:延時(shí)時(shí)間。Wakeup 的引腳號(hào)存在與 struct ctp_config_info 結(jié)構(gòu)體中。當(dāng) ms 為 0 的時(shí)候,表示將 gpio 設(shè)置為 sus 狀態(tài)。當(dāng) ms 不為 0 時(shí)表示將 gpio 設(shè)置為 ms 后,在將Copyright 2013Allwinner Technology.s.- 17 -bool ctp_set_port_deb(u32 gpio, u32 clk_pre

34、_scl)bool ctp_get_port_deb(u32 gpio, u32 *clk_pre_scl)bool ctp_set_port_rate(u32 gpio, u32 clk)其設(shè)置為“-ms”。例子:3.5 申請(qǐng)與gpio 接口介紹3.5.1 input_init_platform_resource函數(shù)原型如下:input_type :輸入設(shè)備類型返回值:申請(qǐng)成功返回 0,失敗返回-1;該函數(shù)用于申請(qǐng) gpio 資源,當(dāng)沒有 gpio 時(shí),此函數(shù)設(shè)置為空。注意input_sensor_type誤。中設(shè)備的類型應(yīng)與實(shí)際的實(shí)現(xiàn)函數(shù)對(duì)應(yīng),否則將可以錯(cuò)目前已經(jīng)實(shí)現(xiàn)的獲取 sysconf

35、ig.fex 下申請(qǐng) gpio 資源的如下所示:3.5.2 input_free_platform_resource函數(shù)原型如下:input_type :輸入設(shè)備類型Copyright 2013Allwinner Technology.s.- 18 -void input_free_platform_resource(enum input_sensor_type *input_type)(*init platform resource)(enum inpusor type *input type) = ctp init platform resource,gsensor init platfo

36、rm resource, gyr init platform resource,ir init platform resource, ls init platform resource,e compass init platform resource;input_init_platform_resource(enum input_sensor_type *input_type)ctp_wakeup(config_info.wakeup_number, 0, 10);/將wakeup 引腳輸出低 10ms 之后輸出高。ctp_wakeup(config_info.wakeup_number, 1

37、, 20);/將wakeup 引腳輸出高 20ms 之后輸出低。ctp_wakeup(config_info.wakeup_number, 0, 0);/將 wakeup 引腳輸出低。ctp_wakeup(config_info.wakeup_number, 1, 0);/將 wakeup 引腳輸出高。該函數(shù)用于申請(qǐng) gpio 資源,當(dāng)沒有申請(qǐng) gpio 資源時(shí),此函數(shù)設(shè)置為空。注意 input_sensor_type 中設(shè)備的類型應(yīng)與實(shí)際的實(shí)現(xiàn)函數(shù)對(duì)應(yīng),否則將可以錯(cuò)誤。目前已經(jīng)實(shí)現(xiàn)的獲取 sysconfig.fex 下gpio 資源的如下所示:Copyright 2013Allwinner

38、Technology.s.- 19 -void (*free platform resource)(void) = ctp free platform resource,gsensor free platform resource, gyr free platform resource,ir free platform resource, ls free platform resource,e compass free platform resource;4. 使用示例4.1 使用說明輸入設(shè)備驅(qū)動(dòng)中使用 init-input 中的相關(guān)接口 動(dòng)中添加頭文件 init-input.h,即添加如下語(yǔ)

39、句:sysconfig.fex 時(shí),需要在設(shè)備驅(qū)4.2 ctp 使用示例說明ctp 模塊中,除了有參數(shù)的獲取外,還有 gpio 的申請(qǐng)與。Gpio 的應(yīng)放置在最后面進(jìn)行。以 gt82x 驅(qū)動(dòng)中為例子進(jìn)行說明,如下所示:Copyright 2013Allwinner Technology.s.- 20 -.sic struct ctp config info config info = .input type = CTP TYPE,;/第一步:定義 ctp_config_info 結(jié)構(gòu)體,并且將 input_type 賦值為 CTP_TYPE.sicdevinit goodix ts init(

40、void).if (input_fetch_sysconfig_para(&(config_info.input_type) /第二步 prk(%s: ctp fetch sysconfig para err.n,func); return 0; else ret = input_init_platform_resource(&(config_info.input_type);/第三步 if (0 != ret) prk(%s:ctp ops.init platform resource err. n,func);if(config_info.ctp_used = 0)/第四步 prk(* c

41、tp used set to 0 !n);prk(* if use ctp,please put the sys config.fex ctp used set to 1. n);return 0;#include 步驟如下:第一步:定義 ctp_config_info 結(jié)構(gòu)體,并且將 input_type 賦值為 CTP_TYPE第二步:init 函數(shù)中調(diào)用 input_fetch_sysconfig_para 函數(shù)獲取 sysconfig.fex 下的配置參數(shù)。第三步:若能正確的獲取參數(shù),調(diào)用 input_init_platform_resource 接口申請(qǐng)gpio 資源。第四步:判斷獲

42、取到的 ctp_used 是否為 1,若不為 1,則直接返回。第五步:當(dāng)該驅(qū)動(dòng)退出時(shí),應(yīng)該在exit 函數(shù)中調(diào)用input_free_platform_resource函數(shù)將申請(qǐng)的 gpio 資源掉。4.3 gsensor 設(shè)備使用示例說明在目前使用的輸入設(shè)備中,sensor 類設(shè)備都沒有 gpio 的申請(qǐng),只需要獲取配置參數(shù)即可。以 bma250 為例子進(jìn)行說明,如下:Copyright 2013Allwinner Technology.s.- 21 -.sic strucsor_config_info config_info = /第一步.input type = GSENSOR TYPE,;.sicinit BMA250 init(void).if(input_fetch_sysconfig_para(&(config_info.input_ty

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論