专栏总目录
文章目录
- 概述
- 一、设备树配置
- 1.1 DWC3节点配置
- 1.2 maximum-speed属性
- 二、相关结构体
- 2.1 USB速度枚举
- 2.2 DWC3结构体
- 2.3 Gadget结构体
- 三、最大速率设置流程
- 3.1 设置链路
- 3.2 代码路径
- 四、当前速率设置
- 4.1 连接完成中断
- 4.2 速度协商流程
- 五、速率控制总结
- 5.1 速率决定因素
- 5.2 速率限制关系
- 六、常见问题
- Q1: 如何限制USB为2.0高速模式?
- Q2: 为什么实际速率比配置的低?
- Q3: DWC3速度枚举值对应关系?
- 七、知识总结
- 7.1 核心要点
概述
DWC3(DesignWare USB 3.0 Controller)是Synopsys设计的USB 3.0控制器IP,广泛应用于高通、RK等平台。通过设备树和驱动代码可以控制USB的最大速率和当前工作速率。
一、设备树配置
1.1 DWC3节点配置
dwc3@a600000 { compatible = "snps,dwc3"; reg = <0x0a600000 0xcd00>; interrupts = <0 133 0>; usb-phy = <&usb2_phy>, <&usb_qmp_phy>; dr_mode = "otg"; maximum-speed = "super-speed-plus"; /* 关键: 控制最大速率 */ tx-fifo-resize; };1.2 maximum-speed属性
| 值 | 对应速度 | 说明 |
|---|---|---|
| “low-speed” | USB_SPEED_LOW | USB 1.1 |