我正在将Linux移植到ARM平台。我正在开发的平台有一个OTG芯片,我想附加一个驱动程序。它还没有OTG驱动程序。但是,它基于EHCI规范,所以我认为至少可以在不编写全新驱动程序的情况下使主机控制器正常工作。
我已将通用EHCI HCD平台驱动程序附加到设备上,它似乎被检测并初始化,但插入设备时没有中断。
在我花费更多时间进行调试之前,我只是想问一下,通过一些小修改,是否可以在OTG设备上使用通用主机控制器驱动程序来获得USB主机支持?
由于
答案 0 :(得分:1)
我的记忆太模糊了,无法回答这个问题所以我只能说我想我参与了一个这样做的项目。如果我正确地回忆起来,它是一个专有的OTG控制器,它实现了全套EHCI寄存器,只需稍微调整一个额外的寄存器或位,以确定控制器是作为主机还是设备连接。虽然USB很复杂,但EHCI规范非常适合使用并提供了一套相当清晰(和行业硬件标准化!)的寄存器集。如果您可以启动系统并主动转储或以其他方式查看此EHCI寄存器集,您应该能够非常快速地确定主控制器是否正在运行(例如,参见FRINDEX寄存器递增)以及是否检测到设备(检查位0,当前连接状态,相应的PORTSC寄存器)。正如我所说,寄存器集是硬件标准化的,因此只要正确配置USBBASE寄存器,驱动程序中用于转储寄存器的任何调试例程都可以正常工作。祝你好运!