RK3588 USB3 Host 控制器依赖分析文档
概述
本文档记录 RK3588 SoC 上 USB3OTG1 (usb@fc400000) 主机控制器的完整依赖关系分析,包括寄存器基地址、电源域、时钟、复位和 PHY 依赖。
目标: 解决 DWC3 PHY 寄存器 (GUSB3PIPECTL, GUSB2PHYCFG) 无法写入的问题
分析日期: 2025-12-30
寄存器基地址映射
控制器和 PHY 寄存器
| 组件 | 基地址 | 大小 | 说明 |
|---|---|---|---|
| DWC3 控制器 | 0xfc400000 | 0x400000 (4MB) | USB3 DRD 控制器寄存器空间 |
| USBDP PHY | 0xfed90000 | 0x10000 (64KB) | USB3.0 Combo PHY 寄存器 |
| USB2 PHY | 0xfd5d8000 | 0x4000 (16KB) | USB2 PHY 寄存器 (USB2PHY1) |
GRF (General Register Files)
| GRF 名称 | 基地址 | 大小 | 用途 |
|---|---|---|---|
| USB GRF | 0xfd5ac000 | 0x4000 | USB3 OTG 端口配置 (U3_PORT_ENABLE) |
| USBDP PHY GRF | 0xfd5cc000 | 0x4000 | USBDP PHY 低功耗控制 (LOW_PWRN) |
| USB2PHY GRF | 0xfd5d4000 | 0x4000 | USB2 PHY 配置 (端口使能、挂起控制) |
| PIPE PHY GRF | 0xfd5c0000 | 0x100 | PIPE PHY 配置 |
系统控制寄存器
| 组件 | 基地址 | 大小 | 说明 |
|---|---|---|---|
| CRU | 0xfd7c0000 | 0x5c000 | 时钟和复位单元 (Clock & Reset Unit) |
| PMIC | 0xfd8d8000 | 0x1000 | 电源管理 IC (Power Domain Control) |
电源域依赖
必需的电源域
根据设备树 usb@fc400000 节点:
power-domains = <&power 31>; // USB power domain
| 电源域 ID | 名称 | 状态 | 说明 |
|---|---|---|---|
| 31 | USB | ✅ 已使能 | USB3 OTG 控制器电源域 |
| 32 | PHP | ✅ 已使能 | 高性能总线电源域(可选但推荐) |
电源域初始化代码
// 使能 USB 电源域 (domain 31)
pm.power_domain_on(rockchip_pm::PowerDomain(31))?;
// 可选:使能 PHP 电源域 (domain 32)
pm.power_domain_on(rockchip_pm::PowerDomain(32))?;