am335x otg-usb
任務: am335x一共有兩個usb主機控制器,在天嵌的bsp中,一個配置為usb host ,一個配置為了usb otg。現在需要將otg也配置為host。
實際修改過程非常簡單:將.config文件中,將CONFIG_USB_OTG,CONFIG_USB_OTG_WHITELIST,CONFIG_USB_OTG_UTILS這幾個宏注釋掉,重新編譯即可。
修改過程中,大概看了一下usb總線驅動程序。
根據usb設備的插拔,根據串口的打印信息,查到了drivers/usb/core/hub.c
usb_hub_init
??????? kthread_run(hub_thread, NULL, "khubd") ? ?? 開啟hub_thread線程
??????????? hub_thread 線程會阻塞,直到hub_irq中斷到來調用kick_khubd來解除阻塞
???????????????? hub_events
??????????????????????????? hub_port_connect_change
??????????????????????????????????????? choose_devnum????? 每一個usb主機控制器,可以支持127個設備,因此這個函數給新接入的設備分配一個設備號(1-127)
??????????????????????????????????????? hub_port_init? 這里串口打印出了 "new high-speed USB device number 6 using"
??????????????????????????????????????? usb_new_device
?????????????????????????????????????????????????? usb_enumerate_device
???????????????????????????????????????????????????????????????? usb_enumerate_device_otg
??????????????????????????????????????????????????????????????????????????? is_targeted? 這里很關鍵,如果將usb設備插入到了otg中,這里會打印出"device v05e3 p0723 is not supported",這個函數在otg_whitelist.h。
?????????????????????????????????????????????????? announce_device ?? 這里打印出"New USB device found, idVendor=05e3,idProduct=0723"
總結
以上是生活随笔為你收集整理的am335x otg-usb的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于linux kernel编译的几项关
- 下一篇: 证券公司理财产品安全吗?通过三个指标判断