RK3588 USB Device Tree 与板级配置
1. 启用规则
必须同时启用完整链路:
1 | controller wrapper |
漏一个节点常表现为probe defer、PHY missing或只支持USB2。
2. EVB示例
rk3588-evb.dtsi启用:
- u2phy0/1 OTG;
- u2phy2/3 host;
-两组EHCI/OHCI;
-USBDP PHY0/1的DP和U3 child;
-DRD0、DRD1;
-host3_0;
-DRD0覆盖为OTG。
RK3588S EVB没有DRD1/PHY1。
3. DWC3
1 | &usbdrd3_0 { status = "okay"; }; |
父wrapper和子core都必须enabled。
4. USB2 Host
EHCI和OHCI应成对启用,且对应 u2phyN_host enabled。只开EHCI可能丢失FS/LS设备。
5. USB3 PHY
DRD0需:
1 | &usbdp_phy0 { status = "okay"; }; |
DP child是否启用取决于同一PHY是否承载DP。
6. Type-C
OTG Type-C还需:
-TCPC I2C node;
-connector capabilities/PDO;
-interrupt GPIO;
-VBUS regulator;
-orientation/mux graph;
-DWC3 usb-role-switch或BSP支持的extcon;
-DP endpoint graph。
具体板型可能用FUSB302、HUSB311或其它芯片。
7. Fixed Host口
固定Type-A Host无需PD,但需要正确VBUS enable和过流设计。不要把dr_mode="host"当作自动供电。
8. Maximum speed
可用 maximum-speed = "high-speed"限制到USB2以定位SS问题。它是诊断/产品约束,不修复PHY、lane或SI缺陷。
9. Quirks
保留SoC .dtsi中的 snps,*quirk,除非有芯片版本、TRM和回归测试支持修改。
10. Binding差异
本树 rockchip,dwc3.yaml没有列 rockchip,rk3588-dwc3,且描述的是较旧的扁平DWC3节点/ref_clk命名;RK3588 DTS实际使用父wrapper(rk3588-dwc3, rk3399-dwc3)加snps,dwc3子节点,并用ref/suspend/bus。因此 dtbs_check可能暴露厂商binding滞后,不能据schema缺项删除运行所需节点,应同步修订binding并核对driver。
11. 最终DT
1 | dtc -I fs -O dts /sys/firmware/devicetree/base > running.dts |
板级include覆盖很多,运行DTB是最终事实。
正在加载留言…