高通msm8953平台有乙個需求:需要在modem側讀取和設定gpio狀態,這樣就可以識別不同的硬體版本,從而載入不同的射頻nv檔案。
使用gpio134和gpio62來檢測不同硬體的上下拉來識別,如下圖:
**修改
//begin: stone added for gpio-in
/* dal apis */
#include
"dditlmm.h"
#include
"daldevice.h"
#include
"daldeviceid.h"
//end: stone added for gpio-in
再定義使用的gpio:
//begin: stone added for gpio-in
#define rf_gpio_num1 134
#define rf_gpio_num2 62
#define rf_config_gpio1 \
dal_gpio_cfg(rf_gpio_num1, 0, (uint32)dal_gpio_input, (uint32)dal_gpio_pull_up, (uint32)dal_gpio_2ma)
#define rf_config_gpio2 \
dal_gpio_cfg(rf_gpio_num2, 0, (uint32)dal_gpio_input, (uint32)dal_gpio_pull_up, (uint32)dal_gpio_2ma)
//end: stone added for gpio-in
如果需要使用gpio輸出,還可以新增:
//測試輸出
#define test_gpio_num 0
#define test_config_gpio \
dal_gpio_cfg(test_gpio_num, 0, (uint32)dal_gpio_output, (uint32)dal_gpio_pull_up, (uint32)dal_gpio_2ma)
函式定義:
//begin: stone added for gpio-in
static daldevicehandle *tlmm_dal_handle =
null
;dalresult gpio_init_dal_handle
(void
)return dal_status;
}int
rfc_common_get_gpio
(void
)//daltlmm_selectgpioidmode(tlmm_dal_handle, uim_tlmm_gpio_inst_index, &settings);
//config gpio function
(void
)daltlmm_configgpio
(tlmm_dal_handle,
(dalgpiosignaltype)rf_config_gpio1,
dal_tlmm_gpio_enable);(
void
)daltlmm_configgpio
(tlmm_dal_handle,
(dalgpiosignaltype)rf_config_gpio2,
dal_tlmm_gpio_enable)
; nresult =
daltlmm_gpioin
(tlmm_dal_handle,
(dalgpiosignaltype)rf_config_gpio1,
&evalue);if
((dal_success == nresult)&&(
(dal_gpio_low_value == evalue)
||(dal_gpio_high_value == evalue)))
else
return-1
; nresult =
daltlmm_gpioin
(tlmm_dal_handle,
(dalgpiosignaltype)rf_config_gpio2,
&evalue);if
((dal_success == nresult)&&(
(dal_gpio_low_value == evalue)
||(dal_gpio_high_value == evalue)))
else
return-1
; ret_status =
((ret_status_134 <<1)
| ret_status_62)
;msg_1
(msg_ssid_ds, msg_legacy_fatal,
"dbg::ret_status = %d"
, ret_status)
;return ret_status;
}//end: stone added for gpio-in
//測試輸出gpio狀態
(void
)daltlmm_configgpio
(tlmm_dal_handle,
(dalgpiosignaltype)test_config_gpio,
dal_tlmm_gpio_enable);(
void
)daltlmm_gpioidout
(tlmm_dal_handle,
(dalgpiosignaltype)test_config_gpio,
dal_gpio_high_value)
;
上述完成後,在需要檢測gpio狀態的地方呼叫rfc_common_get_gpio即可:
void
caller_func
(void){
…… int gpio_value =0;
gpio_value =
rfc_common_get_gpio()
;msg_1
(msg_ssid_ds, msg_legacy_fatal,
"dbg::gpio_value********* = %d"
, gpio_value)
; ……
}
高通modem側新增AT命令
modem側新增at命令 filename description dsat.h atcop外部模組使用的定義,函式和資料結構 dsat.h atcop外部模組使用的定義,函式和資料結構 dsati.h atcop內部使用的定義,函式和資料結構 dsatprep.c 接收自串列埠裝置的資料的預處理 ...
在高通平台如何新增沒有定義的按鍵
1.在對應的檔案裡新增裝置樹 如 2.在對應的pinctrl裡修改重複gpio 3.如果在 device google atv generic.kl裡沒有按鍵定義 就在device qcom msm8953 64 gpio keys.kl裡先對映 補充 在 device google atv gen...
MTK和高通展訊他們平台的主要區別是什麼
高通 美國的晶元廠商,世界頂級智慧型手機cpu廠商。mtk 台灣的晶元廠商,中文名 聯發科,2009才推出智慧型手機晶元,中國山寨手機的晶元就是出自於它,稱 山寨手機之父 展訊 中國大陸的晶元廠商,不怎麼樣。論效能,最出色的是高通的晶元,主要是中高階市場,質量很過關。然後是mtk,但是mtk發展很快...