AW35615 与 HUSB311 全面对比:Type-C / PD / DP Alt Mode 核心逻辑、硬件 Switch 设计与 RK3576 调试要点


📺 B站 嵌入式孙老师博主个人介绍

📘 博主书籍-京东购买链接*:Yocto项目实战教程

📘 加博主微信,进技术交流群jerrydev


AW35615 与 HUSB311 全面对比:Type-C / PD / DP Alt Mode 核心逻辑、硬件 Switch 设计与 RK3576 调试要点

一、背景:为什么一颗 Type-C CC 芯片会影响 USB、DP、充电和下载?

在 RK3576、RK3588、平板、工控板、智能终端等产品中,经常会看到一个 Type-C 口同时承担多种功能:

  • USB2 下载 / ADB
  • USB Device
  • USB Host
  • USB3 高速数据
  • Type-C DP Alt Mode 显示输出
  • Source / Sink / DRP 供电角色切换
  • 正反插识别
  • PD 充电协商

这时板子上通常会放一颗 Type-C CC / PD 控制芯片,例如:

  • AW35615
  • HUSB311
  • HUSB311C
  • FUSB302
  • RT1711 / RT1715
  • TUSB422

在某些原理图中,甚至会看到同一个位置标注:

U4001 = AW35615(Default) / HUSB311(Option)

这说明这两个芯片在该设计里属于同类功能器件:Type-C CC / PD 控制器,用于 Type-C 口的检测、方向识别、角色判断、PD 协商和 Alt Mode 协商。当前硬件文档中也明确提到,AW35615 负责 CC 检测、插头正反识别、PD 协商、DP Alt Mode 进入条件协商,而真正的 USB3 / DP 高速复用由 RK3576 内部 USBDP PHY 完成。

这篇文章将从工程角度完整说明:

  1. AW35615 是什么;
  2. HUSB311 是什么;
  3. 两者有什么相同点和差异;
  4. Type-C 的 USB / DP 切换到底谁在做;
  5. AW35615 / HUSB311 作为 “Switch” 时该怎么理解;
  6. RK3576 平台上应该怎么配置和调试;
  7. 硬件设计和软件设备树中最容易踩坑的点。

在这里插入图片描述

二、先给结论:AW35615 / HUSB311 都不是高速 DP Switch

先把最重要的结论放在前面。

AW35615 和 HUSB311 都不是 USB3 / DP 高速 Lane Switch。它们是 Type-C CC / PD 控制器。

它们主要负责:

  • CC1 / CC2 检测
  • Attach / Detach 检测
  • 正反插方向识别
  • Source / Sink / DRP 角色判断
  • Rp / Rd 状态判断
  • USB PD 通信
  • Power Role Swap
  • Data Role Swap
  • VCONN 控制
  • VBUS 检测
  • DP Alt Mode 协商
  • 通过 I2C + INT 通知 AP / EC / SoC

它们不负责:

  • 传输 USB2 数据
  • 传输 USB3 高速数据
  • 生成 DP 视频
  • 直接切换 DP Main Link
  • 直接切换 USB3 SSTX / SSRX
  • 直接完成 Type-C SuperSpeed Lane 翻转
  • 直接把 HDMI / eDP 转成 DP Alt Mode

所以正确理解应该是:

AW35615 / HUSB311:
    负责 Type-C 口状态识别、PD 协商、Alt Mode 协商

RK3576 USBDP PHY 或外部高速 MUX:
    负责真正的 USB3 / DP Lane 复用和方向映射

电源开关芯片:
    负责 VBUS 5V 或更高电压的实际开关

三、AW35615 是什么?

AW35615 是艾为电子 Awinic 的一颗 USB Type-C PD Controller / PD PHY & Controller

根据艾为官方资料,AW35615 是一颗可编程 DRP / SRC / SNK USB Type-C 控制器,集成完整 Type-C 收发器,包括 CC 上拉 / 下拉电阻,并支持 Type-C attach、orientation 和 role 检测。部分型号支持 USB PD3.1 和 Type-C V2.4。(Awinic)

AW35615 的核心功能如下:

功能说明
Type-C CC 检测检测 CC1 / CC2 上的 Rp / Rd 状态
Attach / Detach判断设备插入或拔出
Orientation判断正插 / 反插
Power Role支持 Source / Sink / DRP
PD 协议支持 USB PD 通信
Alt Mode支持 Type-C Alternative Mode,例如 DP Alt Mode
VBUS 检测检测 VBUS 电压状态
VBUS 放电支持 VBUS discharge
VCONN部分型号集成 VCONN switch,并支持 OCP / OTP
Dead Battery支持无主电时作为 Sink 被唤醒
Wake Detection支持低功耗唤醒检测,避免 CC 电压反复 toggle
BIST支持测试模式
I2C / INT通过 I2C 与主控通信,通过 INT 上报事件

官方资料中提到,AW35615 的 CC logic block 会监测 CC1 / CC2 上的上拉或下拉状态,用于判断是否 attach、线缆方向以及检测到的角色。其 BMC PD block 支持 Type-C 规范中的 alternative interfaces,因此可以用于 DP Alt Mode 这类场景。(Awinic)


四、HUSB311 是什么?

HUSB311 是慧能泰 Hynetek 的一颗 USB Type-C PD Controller / TCPC

根据 Hynetek 官方资料,HUSB311 遵循 USB Type-C 和 PD3.0 标准,实现 VCONN 电源控制、Type-C CC 控制与检测、USB PD Message delivery,并通过 I2C 与 TCPM 通信,通过 INT 请求主控处理事件。(Hynetek)

HUSB311 的核心功能如下:

功能说明
TCPCType-C Port Controller
CC 控制与检测检测 CC1 / CC2,判断 attach 和 orientation
Rp / Rd 配置每条 CC 线支持可编程 Rp / Rd
PD 消息传输集成 BMC 编码器、接收器和发送器
Power Role支持 Dual-Role Port
Role Swap支持 Power Role Swap / Data Role Swap
Alt Mode支持 Type-C alternative interfaces
VCONN支持 Type-C VCONN power control
I2C / INT通过 I2C 与 TCPM 通信,通过 INT 请求 attention

Hynetek 官方还提到,HUSB311 可以用于 DRP 双角色应用,AP 或 EC 控制 HUSB311,再根据 HUSB311 提供的信息控制电池充放电和 USB 数据通道切换;官方资料中也提到它与 FUSB302、RT1715、RT1711、TUSB422 等同类产品相似。(Hynetek)

此外,Hynetek 还有 HUSB311C,官方说明其符合 USB Type-C 和 PD3.1 标准,同样支持 CC 控制、PD message delivery、VCONN 控制、attach / orientation 检测以及 I2C + INT 通信。(Hynetek)


五、AW35615 与 HUSB311 的共同点

AW35615 和 HUSB311 的核心定位非常接近。

它们都属于:

Type-C CC / PD Controller
或者
TCPC / PD PHY Controller

它们共同负责:

功能项AW35615HUSB311
CC1 / CC2 检测支持支持
Attach / Detach支持支持
Orientation 正反插识别支持支持
Source / Sink / DRP支持支持
Rp / Rd 判断支持支持
PD 通信支持支持
Role Swap支持支持
VCONN 控制支持,依型号而定支持
VBUS 检测支持支持
Alt Mode 支持支持支持
I2C 通信支持支持
INT 中断通知支持支持
是否直接切 USB3 / DP Lane不负责不负责

因此,在硬件逻辑上,它们的定位基本一致:

Type-C 插入
    ↓
CC 检测
    ↓
方向识别
    ↓
角色判断
    ↓
PD 协商
    ↓
Alt Mode 判断
    ↓
通知 SoC / EC
    ↓
SoC / 外部 MUX 执行真正的数据路径切换

六、AW35615 与 HUSB311 的关键差异

虽然二者定位接近,但在工程选型和软件移植时仍然不能混用。

1. 厂商不同

项目AW35615HUSB311
厂商艾为电子 Awinic慧能泰 Hynetek
产品定位PD PHY & ControllerUSB Type-C PD Controller / TCPC
官方平台资源AW35615 官方驱动、GUI、RK / MCU 等资源HUSB311 官方 TCPC 方案与应用资料

2. PD 版本差异

AW35615 不同封装和版本对应的 PD 能力不同。

例如:

型号官方描述
AW35615QNRUSB PD3.0,Type-C 1.2,最高 100W 级别描述
AW35615HCSRUSB PD3.1,Type-C V2.4,支持 SPR 和 28V EPR
AW35615PFCRUSB PD3.1,Type-C V2.4,支持 28V EPR

艾为官方页面中,AW35615QNR 描述为支持 USB PD3.0,HCSR / PFCR 等版本描述为支持 USB PD3.1 和 Type-C V2.4。(Awinic)

HUSB311 官方页面描述其支持 USB Type-C 和 PD3.0;HUSB311C 官方页面则描述其支持 USB Type-C 和 PD3.1。(Hynetek)

所以不能简单说:

AW35615 一定比 HUSB311 高级
或者
HUSB311 一定只支持 PD3.0

更准确的说法是:

要看具体料号:
    AW35615 的具体封装 / 后缀
    HUSB311 还是 HUSB311C

3. IO 电平和封装差异

AW35615 不同型号的 IO level、封装和耐压能力不同。

例如官方页面中:

型号IO Level封装CC / VBUS 耐压描述
AW35615QNR1.8V / 3.3VWBQFN 2.5 × 2.5-14LCC 24V,VBUS 28V
AW35615HCSR1.8V / 3.3VWLCSP 1.40 × 1.36-9BCC 28V,VBUS 28V
AW35615PFCR1.2VFCQFN 1.2 × 1.2-9LCC 32V,VBUS 32V

这些差异直接影响硬件设计中的:

  • I2C 电平
  • INT 电平
  • 上拉电阻电源域
  • 芯片供电
  • 封装焊接
  • 替代兼容性
  • Layout 封装兼容性

HUSB311 / HUSB311C 也有自己的封装和默认角色配置,具体必须以 Hynetek 对应 datasheet 为准。

4. 软件驱动差异

这是工程上最关键的差异。

即使原理图上写:

AW35615(Default) / HUSB311(Option)

也不代表软件可以完全不改。

需要确认:

项目AW35615HUSB311
I2C 地址以原理图和实测为准以原理图和实测为准
compatible可能是 awinic 专用驱动可能走 husb311 / tcpc 驱动
寄存器表AW35615 自己的寄存器定义HUSB311 自己的寄存器定义
TCPM 适配需要确认是否标准 TCPCIHUSB311 常见作为 TCPC 与 TCPM 配合
初始化参数以 AW 官方驱动 / GUI / BSP 为准以 Hynetek 驱动 / BSP 为准
Alt Mode 上报驱动需要对接 Linux Type-C 框架驱动需要对接 Linux Type-C 框架

最容易踩坑的是:

硬件能 pin-to-pin 替换,不代表软件能 binary 兼容。

如果板子实际焊的是 AW35615,但 DTS / 驱动按 HUSB311 写,可能出现:

  • I2C 能扫到,但 probe 失败;
  • 插拔没有中断;
  • CC 状态读不对;
  • PD 协商异常;
  • DP Alt Mode 不上报;
  • 正反插状态无法传给 PHY;
  • USB role switch 不工作。

反过来也一样。


七、AW35615 / HUSB311 与 Type-C Pin 的关系

很多人会问:

USB 模式和 DP 模式到底 CC 有什么不同?为什么硬件上一直讲 Pin?

答案是:

CC 不跑 USB 数据,也不跑 DP 视频。CC 只负责识别、协商和通知。USB / DP 的区别体现在 Type-C 连接器中不同物理 Pin 的功能分配。

Type-C 中主要有以下几类信号:

Type-C 信号组USB 模式DP Alt Mode
CC1 / CC2插入检测、方向识别、PD插入检测、方向识别、PD、DP Alt Mode 协商
D+ / D-USB2、ADB、下载通常仍可保留 USB2
SuperSpeed LaneUSB3 TX/RX可复用为 DP Main Link
SBU1 / SBU2通常不用或辅助用途DP AUX
VBUS供电供电
GND

因此,AW35615 / HUSB311 所处理的是:

CC1 / CC2 上的状态和 PD 消息

而不是:

USB2 D+/D-
USB3 SSTX/SSRX
DP_TX_D0/D1/D2/D3
DP_TX_AUX
SBU1/SBU2

八、Type-C USB / DP Alt Mode 硬件逻辑图

下面是一个典型的 RK3576 + AW35615 / HUSB311 + Type-C DP Alt Mode 硬件逻辑图。

VBUS Power Path

RK3576

J4001 USB30 Type-C Receptacle

USB2_OTG0_DP / DM

USB3 SSTX / SSRX or DP Main Link

DP AUX

VBUS5V0_TYPEC

I2C + INT

USB_OTG0_PWREN_H

U4001 AW35615 / HUSB311

CC 检测

PD 协议

DP Alt Mode 协商

方向识别

CC1 / CC2

D+ / D-

SuperSpeed Lane

SBU1 / SBU2

VBUS

USB2 OTG0 PHY

USB3 OTG0 / DP1.4 Alt USBDP PHY

DP Controller

Linux Type-C / TCPM

VCC_5V0_S0

U4002 KTS1665

这个图里最重要的是三层分工:

层级负责对象典型模块
协议控制层CC / PD / Alt ModeAW35615 / HUSB311
高速复用层USB3 / DP Lane / OrientationRK3576 USBDP PHY
电源路径层VBUS 输出 / 检测 / 放电KTS1665 + VBUSDET + TCPC

九、AW35615 / HUSB311 作为 “Switch” 时到底切什么?

在 Type-C 设计中,经常有人说:

AW35615 / HUSB311 是 Type-C Switch。

这句话容易造成误解。

如果这里的 Switch 指:

切换 Type-C 端口状态

那可以这么说。

如果这里的 Switch 指:

直接切 USB3 / DP 高速差分线

那就是错误的。

1. 它们切的是“状态”

AW35615 / HUSB311 切换或管理的是:

状态说明
Attach / Detach插入或拔出
Orientation正插或反插
Power RoleSource / Sink / DRP
Data RoleHost / Device
CC 状态Rp / Rd / Ra
PD ContractPD 协商结果
VCONN 状态是否需要给线缆供 VCONN
VBUS 状态检测、放电、状态上报
Alt Mode 状态是否进入 DP Alt Mode
HPD / AttentionDP Alt Mode 相关状态事件

2. 它们不切“高速线”

它们不直接切:

高速数据对象应该由谁处理
USB3 SSTX / SSRXSoC USBDP PHY 或外部 MUX
DP Main LinkSoC DP PHY / USBDP PHY
DP AUX 到 SBUSoC PHY / AUX mux / 外部电路
正反插 Lane 映射SoC USBDP PHY 或外部 MUX
2-lane / 4-lane DPSoC USBDP PHY 或外部 MUX

因此正确的逻辑是:

AW35615 / HUSB311:
    “检测到对端支持 DP Alt Mode,当前方向是反插,建议切到 DP 模式。”

RK3576 USBDP PHY:
    “收到,按反插映射切换 SuperSpeed Lane 和 SBU/AUX。”

十、USB 模式与 DP Alt Mode 的差异

1. 普通 USB 模式

普通 USB 模式下:

CC1 / CC2:
    负责 attach、orientation、role

D+ / D-:
    负责 USB2

SuperSpeed Lane:
    负责 USB3

SBU1 / SBU2:
    通常不参与

VBUS:
    供电或检测供电

流程如下:

USB Controller RK3576 AW35615/HUSB311 Type-C 对端 USB Controller RK3576 AW35615/HUSB311 Type-C 对端 插入,CC 状态变化 判断 Attach / Orientation / Role INT 中断 I2C 读取状态 设置 Host / Device USB2 / USB3 通信

2. DP Alt Mode 模式

DP Alt Mode 下:

CC1 / CC2:
    负责 PD 和 DP Alt Mode 协商

SuperSpeed Lane:
    被复用为 DP Main Link,或者部分保留 USB3

SBU1 / SBU2:
    用作 DP AUX

D+ / D-:
    通常仍可保留 USB2

VBUS:
    仍然负责供电

流程如下:

RK3576 DP Controller RK3576 USBDP PHY Linux Type-C/TCPM AW35615/HUSB311 DP Alt Mode 显示器/扩展坞 RK3576 DP Controller RK3576 USBDP PHY Linux Type-C/TCPM AW35615/HUSB311 DP Alt Mode 显示器/扩展坞 Type-C 插入 CC 检测、方向识别 INT 通知 I2C 读取 CC/PD 状态 PD 协商、发现 DP Alt Mode 设置 Orientation / Mode 切换 USB3/DP Lane 输出 DP Main Link Type-C SuperSpeed Lane 输出 DP

十一、2-lane DP + USB3 与 4-lane DP

DP Alt Mode 并不只有一种模式。

1. 2-lane DP + USB3

这种模式下:

部分 SuperSpeed Lane → DP Main Link
部分 SuperSpeed Lane → USB3

优点:

  • 可以同时输出 DP 显示;
  • 可以保留 USB3 数据;
  • 常见于扩展坞或显示器 USB Hub 场景。

缺点:

  • DP 可用带宽较低;
  • 高分辨率或高刷新率可能受限。

2. 4-lane DP

这种模式下:

全部 SuperSpeed Lane → DP Main Link

优点:

  • DP 带宽更高;
  • 更适合高分辨率、高刷新率显示。

缺点:

  • 通常无法同时保留 USB3;
  • 但 USB2 D+ / D- 一般仍可继续使用。

因此:

DP Alt Mode 占用的是 USB3 SuperSpeed Lane,不等于 USB2 下载 / ADB 一定消失。

这也是为什么一个 Type-C 口可以既支持下载 / ADB,又支持 DP 显示。


十二、AW35615 与 HUSB311 在 RK3576 板级设计中的关系

在 RK3576 Type-C DP Alt Mode 设计中,一般有四个关键模块:

模块典型名称作用
Type-C CC / PD 控制器AW35615 / HUSB311CC、PD、Alt Mode
Type-C 连接器J4001物理接口
VBUS 电源开关KTS1665控制板端 5V 到 Type-C VBUS
SoC 内部 PHYRK3576 USBDP PHYUSB3 / DP Lane 复用

典型硬件链路如下:

Type-C CC1/CC2
    ↓
AW35615 / HUSB311
    ↓ I2C + INT
RK3576 Type-C / TCPM / USBDP PHY
    ↓
USB2 / USB3 / DP / AUX / Role Switch

而 VBUS 是另一条链:

VCC_5V0_S0
    ↓
U4002 KTS1665
    ↓
VBUS5V0_TYPEC
    ↓
Type-C VBUS

注意:

AW35615 / HUSB311 知道 VBUS 状态,但不等于它们直接承载 VBUS 大电流路径。

真正送电通常要靠外部 power switch、load switch、charger 或 PMIC。


十三、硬件信号分组表

1. AW35615 / HUSB311 到 Type-C 口

信号作用
TYPEC_CC1CC1 检测 / PD 通信
TYPEC_CC2CC2 检测 / PD 通信
VCONN给有源线缆或电子标记线缆供电
VBUS5V0_TYPECVBUS 状态检测或相关电源路径

2. AW35615 / HUSB311 到 RK3576

信号作用
I2C2_SCL_M0_CC_RTCI2C 时钟
I2C2_SDA_M0_CC_RTCI2C 数据
USBCC_INT_L中断,低有效常见

3. RK3576 到 Type-C USB2

信号作用
USB2_OTG0_DPUSB2 D+
USB2_OTG0_DMUSB2 D-
USB2_OTG0_VBUSDETUSB 下载 / Device 模式的 VBUS 检测

4. RK3576 到 Type-C USB3 / DP Main Link

信号USB 模式DP Alt Mode
USB3_OTG0_SSTX1P/NUSB3 TX可复用为 DP Lane
USB3_OTG0_SSTX2P/NUSB3 TX可复用为 DP Lane
USB3_OTG0_SSRX1P/NUSB3 RX可复用为 DP Lane
USB3_OTG0_SSRX2P/NUSB3 RX可复用为 DP Lane
DP_TX_D0P/N不用于 USBDP Lane 0
DP_TX_D1P/N不用于 USBDP Lane 1
DP_TX_D2P/N不用于 USBDP Lane 2
DP_TX_D3P/N不用于 USBDP Lane 3

5. RK3576 到 Type-C AUX / SBU

信号作用
DP_TX_AUXPDP AUX 正
DP_TX_AUXNDP AUX 负
TYPEC_SBU1Type-C SBU1
TYPEC_SBU2Type-C SBU2
TYPEC_DPTX_AUX_PUPDCTL1AUX / SBU 相关辅助控制
TYPEC_DPTX_AUX_PUPDCTL2AUX / SBU 相关辅助控制

6. VBUS 电源链

信号作用
VCC_5V0_S0板端 5V 电源
USB_OTG0_PWREN_H控制 VBUS 电源开关
VBUS5V0_TYPECType-C VBUS

十四、AW35615 / HUSB311 软件配置思路

1. 芯片驱动层

首先要确认实物到底焊的是谁:

AW35615
还是
HUSB311 / HUSB311C

然后确认对应驱动:

实物芯片驱动方向
AW35615使用 Awinic 官方 AW35615 驱动,或确认其是否兼容 TCPCI/TCPM
HUSB311使用 Hynetek HUSB311 / TCPC 驱动
HUSB311C使用支持 PD3.1 的 HUSB311C 驱动

不要只因为原理图兼容,就直接复用另一个芯片的驱动。

2. I2C 配置

需要确认:

项目检查方式
I2C bus看原理图和 pinctrl
I2C address看 datasheet / 原理图 / i2cdetect
IO 电平1.8V / 3.3V / 其他
上拉电阻是否上拉到正确电源域
时钟速率100k / 400k 是否满足

示意:

&i2c2 {
    status = "okay";

    typec_controller: typec@22 {
        compatible = "awinic,aw35615";   /* 示例,实际以驱动绑定为准 */
        reg = <0x22>;

        interrupt-parent = <&gpioX>;
        interrupts = <Y IRQ_TYPE_LEVEL_LOW>;
        pinctrl-names = "default";
        pinctrl-0 = <&usbcc_int_l>;
    };
};

如果换成 HUSB311,可能变成:

&i2c2 {
    status = "okay";

    typec_controller: typec@4e {
        compatible = "hynetek,husb311";  /* 示例,实际以驱动绑定为准 */
        reg = <0x4e>;

        interrupt-parent = <&gpioX>;
        interrupts = <Y IRQ_TYPE_LEVEL_LOW>;
        pinctrl-names = "default";
        pinctrl-0 = <&usbcc_int_l>;
    };
};

注意:

上面只是结构示意,不是可以直接复制使用的最终 DTS。实际 compatible、I2C 地址、中断触发方式必须以当前内核驱动和原理图为准。

3. Connector 配置

Type-C 口通常需要描述成 usb-c-connector

核心字段:

字段作用
power-rolesource / sink / dual
data-rolehost / device / dual
try-power-roleDRP 时优先 source 还是 sink
source-pdosSource 供电能力
sink-pdosSink 受电能力
op-sink-microwattSink 典型功耗
altmodesDP Alt Mode
portsgraph 连接到 USB / DP / PHY / mux

示意:

connector {
    compatible = "usb-c-connector";
    label = "USB-C";

    power-role = "dual";
    data-role = "dual";
    try-power-role = "sink";

    source-pdos = <...>;
    sink-pdos = <...>;
    op-sink-microwatt = <...>;

    altmodes {
        displayport {
            svid = /bits/ 16 <0xff01>;
            vdo = <...>;
        };
    };

    ports {
        /* 连接到 usbdp_phy / dp / usb role switch */
    };
};

十五、AW35615 / HUSB311 与 Linux Type-C 框架

在 Linux 中,推荐把 Type-C 逻辑拆成几层:

TCPC 驱动:
    AW35615 / HUSB311

TCPM:
    Type-C Port Manager

Type-C Class:
    向系统抽象 port、partner、cable、altmode

USB Role Switch:
    控制 Host / Device

Type-C Mux / Orientation Switch:
    控制 USB / DP / USB+DP / 正反插

Rockchip USBDP PHY:
    真正执行 Lane 复用

逻辑图如下:

AW35615 / HUSB311 驱动
TCPC / PD PHY

Linux TCPM

Linux Type-C Class

USB Role Switch

Type-C Mode / Orientation Switch

RK3576 USBDP PHY

DWC3 USB Controller

DisplayPort Controller

如果某一层没接好,就会出现“单项功能正常,整体功能不完整”的情况。

例如:

现象可能原因
I2C 能扫到,但插拔没反应INT GPIO / IRQ 配置错误
USB2 下载正常,但 DP 不亮Alt Mode / USBDP PHY / AUX 未接通
DP 正插正常,反插不正常orientation-switch / lane mapping 问题
USB Host 正常,Device 不正常role-switch / VBUSDET 问题
PD 协商成功但没有显示DP controller / AUX / link training 问题
HUSB311 能工作,换 AW35615 不工作驱动 / 寄存器 / compatible 不匹配

十六、RK3576 平台上的配置重点

1. 必须配置 Type-C 控制器

要先保证 AW35615 / HUSB311 能工作:

I2C probe 成功
INT 中断正常
CC attach/detach 正常
orientation 正常
PD 状态正常

2. 必须配置 USB2 下载链路

USB2 下载 / ADB 依赖:

USB2_OTG0_DP
USB2_OTG0_DM
USB2_OTG0_VBUSDET

如果 USB2 下载不正常,优先查:

  • D+ / D- 是否接对;
  • VBUSDET 是否有效;
  • USB role 是否正确;
  • Type-C 角色是否正确;
  • BootROM / loader 对该口的要求。

3. 必须配置 USBDP PHY

DP Alt Mode 依赖 RK3576 的:

USB3 OTG0 / DP1.4 Alt / USBDP PHY

它负责:

  • USB3 / DP Lane 复用;
  • 2-lane / 4-lane 模式;
  • 正反插方向映射;
  • SBU / AUX 映射;
  • Type-C mux 状态响应。

4. 必须配置 DP Controller

AW35615 / HUSB311 协商成功后,只代表:

系统知道可以进入 DP Alt Mode

并不代表:

DP 控制器已经输出视频

还要检查:

  • DRM 是否识别 connector;
  • DP AUX 是否读到 EDID;
  • Link Training 是否成功;
  • 显示 timing 是否正确;
  • lane rate / lane count 是否正确。

十七、AW35615 与 HUSB311 的 DTS 迁移注意点

如果一块板支持 AW35615 / HUSB311 二选一,DTS 和驱动需要非常小心。

1. 不要只改 compatible

很多时候不只是:

compatible = "awinic,aw35615";

和:

compatible = "hynetek,husb311";

的区别。

还可能包括:

项目可能差异
I2C 地址可能不同
INT 触发方式level low / falling edge
GPIO reset某些版本可能需要
regulator供电 rail 不同
vconn supply配置方式不同
vbus supply配置方式不同
connector 子节点驱动绑定要求不同
PD capabilityPDO 写法不同
altmodeVDO 配置不同
role switchgraph endpoint 不同

2. 要确认是否走标准 TCPM / TCPCI

如果 HUSB311 驱动是标准 TCPC 模式,而 AW35615 是厂商私有适配方式,那么两者 DTS 差异可能比较大。

反过来,如果 AW35615 驱动也封装成标准 TCPC / TCPM 接口,那么上层 Type-C 配置可以尽量保持一致。

理想架构是:

AW35615 driver
        \
         → TCPM → Type-C Class → Mux / Role / AltMode
        /
HUSB311 driver

这样上层 connector、role、mux、DP Alt Mode 的配置可以复用更多。


十八、硬件 Switch 设计时的核心指点

指点一:先确认是否真的需要外部高速 MUX

如果 SoC 内部已经有:

USB3 OTG0 / DP1.4 Alt USBDP PHY

并且原理图中 USB3 / DP 高速线直接连到 Type-C 口,那么通常意味着:

SoC 内部负责高速 Lane 复用

这时 AW35615 / HUSB311 只是 CC / PD 控制器。

如果 SoC 没有内部 USBDP PHY,或者需要外部方向翻转和 mux,则可能需要外置芯片,例如:

USB3/DP Alt Mode MUX
Redriver
Retimer
Crossbar Switch

指点二:CC 控制器和高速 MUX 是两类芯片

类型代表器件作用
CC / PD 控制器AW35615 / HUSB311检测、协商、状态上报
高速 MUXPI3USB、HD3SS、FSA、ANX 等真正切高速 Lane
Retimer / Redriver高速信号增强器改善 USB3 / DP 信号质量
Power SwitchKTS1665 等控制 VBUS 电源路径

不要把这几类芯片混为一谈。

指点三:正反插不是只靠 CC 芯片完成

AW35615 / HUSB311 能判断方向:

CC1 有效:一种方向
CC2 有效:另一种方向

但是它们只是把 orientation 状态告诉系统。

真正需要执行的是:

USB3 Lane 翻转
DP Lane 映射
SBU1 / SBU2 与 AUXP / AUXN 映射

这由 SoC USBDP PHY 或外部 MUX 完成。

指点四:DP 不亮时不要只查 CC 芯片

DP 不亮要分层查:

1. CC attach 是否成功
2. orientation 是否正确
3. PD 是否协商成功
4. DP Alt Mode 是否进入
5. Type-C mux state 是否切到 DP
6. USBDP PHY 是否切换成功
7. AUX / SBU 是否正常
8. EDID 是否读到
9. Link Training 是否成功
10. DRM connector 是否正常

AW35615 / HUSB311 只覆盖前 1 到 4 步的一部分。


十九、AW35615 与 HUSB311 全方位对比表

对比项AW35615HUSB311 / HUSB311C
厂商艾为电子 Awinic慧能泰 Hynetek
类型USB Type-C PD Controller / PD PHY & ControllerUSB Type-C PD Controller / TCPC
CC 检测支持支持
Attach / Detach支持支持
Orientation支持支持
DRP支持支持
Source / Sink支持支持
PD 协议依型号支持 PD3.0 / PD3.1HUSB311 支持 PD3.0,HUSB311C 支持 PD3.1
Alt Mode支持 Type-C alternative interfaces支持 Type-C alternative interfaces
VCONN部分型号集成 VCONN switch支持 VCONN power control
VBUS 检测支持支持
VBUS 放电支持依具体型号和资料确认
Dead Battery支持依具体型号确认
I2C支持支持
INT支持支持
TCPM 配合需看官方驱动实现官方明确提到通过 I2C 与 TCPM 通信
是否直接切 USB3 / DP
是否适合 RK 平台官方有 RK 相关驱动资源常见 TCPC 方案,可按 BSP 支持情况适配
替换风险驱动、地址、封装、IO 电平需确认驱动、地址、封装、IO 电平需确认

二十、典型调试顺序

建议按照下面顺序调试,不要一上来就调 DP 显示。

1. 确认实物焊接型号:AW35615 还是 HUSB311
2. 确认芯片供电是否正常
3. 确认 I2C 地址是否能扫到
4. 确认驱动 probe 是否成功
5. 确认 USBCC_INT_L 是否触发
6. 确认插拔 attach / detach 状态
7. 确认 CC1 / CC2 正反插识别
8. 确认 Source / Sink / DRP 角色
9. 确认 USB2 下载 / ADB
10. 确认 VBUSDET
11. 确认 VBUS source 开关
12. 确认 PD 协商
13. 确认 DP Alt Mode 协商
14. 确认 Type-C mux / orientation 状态传给 USBDP PHY
15. 确认 AUX / SBU
16. 确认 DP Link Training
17. 确认最终显示输出

二十一、常见故障定位表

故障现象优先检查
I2C 扫不到芯片供电、I2C 地址、上拉、电平、焊接
驱动 probe 失败compatible、reg 地址、驱动匹配、reset / regulator
插线无反应INT GPIO、IRQ 类型、CC 连接
只能正插,反插不行CC1 / CC2、orientation switch、lane mapping
USB2 下载失败USB2 DP/DM、VBUSDET、role switch
USB3 不通USBDP PHY、SuperSpeed Lane、mux state
DP 不亮PD Alt Mode、AUX/SBU、USBDP PHY、DP 控制器
PD 充电异常PDO、Source/Sink role、VBUS、VCONN
AW35615 换 HUSB311 后不工作驱动、I2C 地址、寄存器、DTS、INT、IO 电平
HUSB311 换 AW35615 后不工作同上,不能只看 pin 兼容

二十二、工程上如何选择 AW35615 或 HUSB311?

1. 优先看 BSP 支持

对于 RK 平台来说,最重要的不是单颗芯片参数,而是:

当前 SDK / Kernel 是否已经支持该芯片

如果 SDK 已经支持 HUSB311,而 AW35615 需要额外移植,那么 HUSB311 可能更快落地。

如果项目要求 AW35615,并且艾为提供了对应 RK 驱动包,那么 AW35615 也可以顺利集成。

2. 看 PD 版本和功率需求

需求建议
只需要 PD3.0 / 100W 以内AW35615QNR 或 HUSB311 级别可能够用
需要 PD3.1 / EPR关注 AW35615HCSR / PFCR 或 HUSB311C
只做普通 Type-C 检测可能不需要复杂 PD3.1
需要 DP Alt Mode必须确认 Alt Mode 和 Type-C 框架支持

3. 看硬件兼容性

需要确认:

  • 封装是否一致;
  • pin 是否兼容;
  • I2C 地址是否一致;
  • INT 极性是否一致;
  • VCONN / VBUS 引脚是否一致;
  • IO 电平是否一致;
  • 外围电阻电容是否一致;
  • 默认角色是否一致。

4. 看软件维护成本

情况风险
驱动已在 SDK 中风险低
只有厂商 zip 驱动需要适配内核版本
非标准 TCPC 实现需要处理 Type-C 框架对接
没有 DP Alt Mode 示例DP 调试成本高
只支持充电,不支持 mux graphUSB/DP 切换可能要额外开发

二十三、推荐的软件架构

对于 RK3576 + Type-C DP Alt Mode,推荐目标架构如下:

AW35615 / HUSB311
    ↓
TCPC Driver
    ↓
TCPM
    ↓
Linux Type-C Class
    ↓
USB Role Switch
Type-C Orientation Switch
Type-C Mode Switch
DP Alt Mode
    ↓
RK3576 USBDP PHY
    ↓
USB3 / DP / AUX / SBU

这样做的好处是:

  • Type-C 逻辑清晰;
  • AW35615 / HUSB311 可替换性更好;
  • USB role 切换有标准路径;
  • DP Alt Mode 事件能传到 USBDP PHY;
  • 正反插和 2-lane / 4-lane 模式更容易维护。

二十四、推荐的 DTS 结构思路

一个完整的 DTS 结构通常应该包含:

&i2c2
    AW35615 / HUSB311 节点
        connector 子节点
            power-role
            data-role
            PDO
            altmodes
            ports graph

&usbdrd / &dwc3
    usb-role-switch

&usbdp_phy
    orientation-switch
    mode-switch
    DP/USB mux

&dp
    DP controller

&vbus regulator / power switch
    GPIO enable

示意结构:

&i2c2 {
    status = "okay";

    typec_controller: typec@22 {
        compatible = "awinic,aw35615";      /* 示例 */
        reg = <0x22>;

        interrupt-parent = <&gpioX>;
        interrupts = <Y IRQ_TYPE_LEVEL_LOW>;

        connector {
            compatible = "usb-c-connector";
            label = "USB-C";

            power-role = "dual";
            data-role = "dual";
            try-power-role = "sink";

            source-pdos = <...>;
            sink-pdos = <...>;
            op-sink-microwatt = <...>;

            altmodes {
                displayport {
                    svid = /bits/ 16 <0xff01>;
                    vdo = <...>;
                };
            };

            ports {
                /* endpoint 连接到 usbdp_phy / dp / usb role switch */
            };
        };
    };
};

如果改用 HUSB311,核心变化可能是:

compatible = "hynetek,husb311";
reg = <...>;

但实际项目中往往还需要同步调整驱动绑定、Kconfig、Makefile、寄存器初始化、PDO 配置和 graph 连接。


二十五、总结:一句话看懂 AW35615 与 HUSB311

AW35615 和 HUSB311 都是 Type-C CC / PD 控制器。

它们负责:

识别插入
判断方向
判断角色
PD 协商
DP Alt Mode 协商
通过 I2C / INT 通知系统

它们不负责:

传 USB3 数据
传 DP 视频
直接切高速 Lane
生成显示信号
控制 HDMI/eDP PHY

在 RK3576 这类平台上,完整分工应该是:

AW35615 / HUSB311:
    Type-C CC / PD / Alt Mode 协商

RK3576 USBDP PHY:
    USB3 / DP Lane 复用、正反插映射、AUX/SBU 映射

RK3576 USB2 PHY:
    USB2 下载 / ADB

RK3576 DP Controller:
    生成 DP 视频流

KTS1665 或其他 Power Switch:
    控制 VBUS 电源路径

二十六、最终核心记忆

AW35615 / HUSB311 切的是 Type-C 状态,不是高速线。

CC1 / CC2 负责识别和协商;USB2 D+ / D- 负责下载和 ADB;SuperSpeed Lane 在 USB 模式下跑 USB3,在 DP Alt Mode 下可复用为 DP Main Link;SBU1 / SBU2 在 DP Alt Mode 下跑 DP AUX。

如果把 AW35615 / HUSB311 当成 DP Switch 调试,就会走偏;如果把它们当成 Type-C 协议控制器,再把 RK3576 USBDP PHY 当成真正的 Lane Switch,逻辑就会清楚很多。


📺 B站 嵌入式孙老师博主个人介绍

📘 博主书籍-京东购买链接*:Yocto项目实战教程

📘 加博主微信,进技术交流群jerrydev


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值