This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/DRA745:USB 角色切换功能不起作用

Guru**** 2589280 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/590325/linux-dra745-usb-role-switch-functionality-is-not-working

器件型号:DRA745

工具/软件:Linux

您好!

    我正在基于 DRA74xx Jancito6 SoC 研究硬件。 它具有来自 Synopsys 的 dwc3 DRD。 我们正在尝试在 Linux 内核版本4.4.23中提供 USB 双角色开关功能。

由于 h/w 限制、我们对目标没有 OTG 支持。 因此、我们无法使用 ID PIN 进行模式选择。 我们正在从软件(使用 /sys/kernel/debugfs 界面)寻找角色切换。

我们的目的是在启动时使 USB DRD 控制器处于主机模式(dr_mode=host)。 然后、根据某个条件、我们将触发角色开关、最好通过将"device"写入 debugfs 文件"mode"来触发。 但是、当我们这么做时、没有角色开关、因为 DWC 控制器仍将注册到 XHCI 驱动程序、并且它不会注册到 UDC 驱动程序。 这同样适用于反之亦然的场景、即器件模式到主机模式切换。

我们是否可以通过任何方法来实现这一点? 或者、如果您已经拥有了可帮助我们实现目标的补丁/解决方案?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Dhananjay、

    我已将您的问题转交给 USB 专家。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Dhananjay、
    我不擅长 USB 软件、我想您必须重新加载驱动程序或类似的内容。 我将这个问题留给 USB 专家来回答。
    我只想强调一下、您仍然可以通过使用相应的焊盘配置寄存器启用内部上拉或下拉电阻来切换 ID GPIO (假设它在 PCB 上未连接)。

    此致、
    STAN
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Dhananjay

    支持 DRD 角色开关。 您是在 TI-EVM 还是自定义电路板上进行验证。

    确保将 DR_MODE 设置为"OTG"、以便支持 USB1或 USB2的 DRD。 您已经插入了 DRD 端口的小工具模块、以用作主机或器件。

    请检查以下步骤、例如中的 USB1配置为支持 DRD。

    # mount -t debugfs debugfs /mnt

    # modprobe g_zero

    到主机的角色切换

    # echo "host">/mnt/48890000.usb/mode

    角色切换到设备

    # echo "device">/mnt/48890000.usb/mode

    更多信息、请参阅 SDG。

    此致

    Ravi