1. 程式人生 > >[headset]怎樣定位插入耳機無法識別的問題

[headset]怎樣定位插入耳機無法識別的問題

[DESCRIPTION]

怎樣定位插入耳機後無任何的圖示顯示問題

[SOLUTION]

首先在kernel log裡面搜尋關鍵字accdet,看是否有耳機插拔的EINT中斷和ACCDET
PMIC中斷。
耳機插拔的eint中斷
<4>[ 227.035109] (0)[169:kworker/u16:5][Accdet]EINT func :plug-in
<4>[ 227.035120] (0)[169:kworker/u16:5][Accdet]accdet hardware init
<4>[ 227.035131] (0)[169:kworker/u16:5][Accdet]accdet TOP_CKPDN=0x7573!
<4>[ 227.035136] (0)[169:kworker/u16:5]ACCDET reset : reset start!!
<4>[ 227.035143] (0)[169:kworker/u16:5]ACCDET reset function test: reset finished!!
<4>[ 227.035188] (0)[169:kworker/u16:5] ACCDET_ADC_REG =f80
<4>[ 227.035196] (0)[169:kworker/u16:5] ACCDET_EINT_NV =0
<4>[ 227.035205] (0)[169:kworker/u16:5] ACCDET_RSV =1290
<4>[ 227.035223] (0)[169:kworker/u16:5][Accdet]pin recog start! micbias always on!
<4>[ 227.035234] (0)[169:kworker/u16:5]accdet: enable_accdet
<4>[ 227.035250] (0)[169:kworker/u16:5][Accdet]enable_irq !!!!!!
2、耳機型別判斷的accdet pmic中斷
<5>[ 227.643324] (0)[53:pmic_6325_threa][Power/PMIC] [accdet_int_handler]....
<4>[ 227.643358] (0)[53:pmic_6325_threa][Accdet]clear_accdet_interrupt: ACCDET_IRQ_STS
(ed8) = 0x101
<4>[ 227.643467] (1)[169:kworker/u16:5][Accdet]accdet interrupt happen:[Plug_out] AB=1
[0x7055]
<4>[ 227.643533] (1)[169:kworker/u16:5][Accdet]check_cable_type: ACCDET_IRQ_STS = 0x100
<4>[ 227.643598] (1)[169:kworker/u16:5][Accdet]check_cable_type:Clear
interrupt
one[0x0]!
<4>[ 227.643623] (1)[169:kworker/u16:5][Accdet]cable type:[Headset_mic], status
switch:[Plug_out]->[Headset_plug_in]
1、如果第一步的log都沒有,那就是耳機插拔的GPIO狀態不對導致,按照下面的步驟check配置是否正確。

5.12tp-13.png (62.22 KB, 下載次數: 0 )

下載附件  儲存到相簿

2016-5-12 10:50 上傳


配置LK裡面對應Project的DWS檔案,把耳機插拔的GPIO配置為輸入上拉。

5.12tp-14.png

(56.04 KB, 下載次數: 0 )

下載附件  儲存到相簿

2016-5-12 10:50 上傳


把耳機插拔的EINT觸發方式配置為低電平觸發,256ms的debounce time。
開機後,不插入耳機看該GPIO是否為高電平,以及對應的mode是否正確。可以使用
adb命令來check。
#adb shell
#cd /sys/devices/virtual/misc/mtgpio/
check all GPIO setting
index: mode(0~7) pullselect(0 low,1 high) din(1 en) dout(1 en)
pullenable(1 en) dir(0 in, 1 out) ies(1 en)
#cat pin
PIN: [MODE] [PULL_SEL] [DIN] [DOUT] [PULL EN] [DIR] [IES]
36: 0 1 1 0 1 0 1
標紅的值表示配置為輸入上拉,DIN為1表示該GPIO是高電平,為0表示是低電平。
如果DIN為0,說明該GPIO的電平狀態是不正確的,先確保配置正確,配置正確後電平
不正確,請check 硬體電路。
2、如果有第一步的log,沒有第二步的accdet pmic 中斷log。

5.12tp-15.png (146.06 KB, 下載次數: 0 )

下載附件  儲存到相簿

2016-5-12 10:50 上傳


按照accdet的檢測原理,請用示波器測量HP_MIC的accdet輸入電壓是否在
0.5~1.77V之間。
如果電壓都不在區間範圍之內,請按照參考設計check電路。