高通USB 調試總結隨筆

最近分析了個高通USB 1 通過 主板上的HUB芯片不能正常通信識別USB 外設的問題,
注意分析時,一定要再三確認硬件工作正常 ,可以做個實驗,
剪開一根USB 線,飛線到HUB芯片DPDM 上,如果,USB 接在電腦上,USB 外設接在HUB口上,電腦能正常識別外設,說明HUB芯片正常工作。

如下是對軟件調試方面的一些方法,寫個隨筆備份下:


1. 分析USB log

echo ‘file dwc3-msm.c +p’ > /d/dynamic_debug/control
echo ‘file phy-msm-snps-hs.c +p’ > /d/dynamic_debug/control
echo ‘file phy-msm-qmp.c +p’ > /d/dynamic_debug/control
echo ‘file hub.c +p’ > /d/dynamic_debug/control

2. 正常識別流程

正常流程是vbus是常供電,device上電後,device拉高DP,host檢測到dp拉高後,來枚舉device。

@ drivers/usb/dwc3/dwc3-msm.c

static void dwc3_otg_sm_work(struct work_struct *w)
{
	case DRD_STATE_HOST_IDLE:
		ret = dwc3_otg_start_host(mdwc, 1);
		這裏就會切到host mode
}

3. 修改爲host 模式

dwc1: dwc3@a800000{
--- dr_mode="drd".
+++ dr_mode="host"

4. USB檢測插入原理

在網上看到一篇寫的非常好的文章,等有時間,我再學習總結到這裏面,
先貼個鏈接:《如何檢測USB 已經插入?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章