摘要:RK3588的Type-C接口不仅是数据传输通道,更是一路强大的DisplayPort视频输出接口。本文将手把手教你如何通过Type-C实现DP视频输出,让你使用眺望电子RK3588开发板轻松使用扩展坞连接显示器。
一、方案概述
RK3588 是瑞芯微旗舰级高性能处理器,其Type-C接口内置了USB 3.1 + DP Alt Mode双模支持能力。通过简单的软件配置,即可将Type-C接口切换为DP视频输出模式,实现一线通(One Cable)的视频传输方案。
适用场景:
便携显示器连接
一线通扩展坞方案
嵌入式显示终端
多屏异显系统
二、核心配置步骤
眺望电子RK3588评估板的typec0和typec1接口均支持dp输出,下面以typec0为例,演示如何配置dp输出。
2.1 启用DP控制器
首先需要在设备树中使能DP0接口,并将其绑定到VOP的Video Port2:
&dp0 {
status = "okay";
};
&dp0_in_vp2 {
status = "okay";
};
备注:RK3588支持多路视频输出,通过dp0_in_vpX可以灵活配置DP输出绑定的显示通道。
2.2 配置USB-Combo PHY
Type-C的DP功能依赖于USB-Combo PHY的灵活复用能力。以下是核心配置:
&usbdp_phy0 {
status = "okay";
orientation-switch; // 支持正反插切换
rockchip,dp-lane-mux = <2 3>; // 配置DP Lane复用
svid = <0xff01>; // DP Alt Mode SVID
// SBU引脚上下拉控制GPIO
sbu1-dc-gpios = <&gpio4 RK_PA0 GPIO_ACTIVE_HIGH>;
sbu2-dc-gpios = <&gpio4 RK_PB0 GPIO_ACTIVE_HIGH>;
// 端口连接配置
port {
#address-cells = <1>;
#size-cells = <0>;
usbdp_phy0_orientation_switch: endpoint@0 {
reg = <0>;
remote-endpoint = <&usbc0_orien_sw>;
};
usbdp_phy0_dp_altmode_mux: endpoint@1 {
reg = <1>;
remote-endpoint = <&dp0_altmode_mux>;
};
};
};
&usbdp_phy0_dp {
status = "okay";
};
&usbdp_phy0_u3 {
status = "okay";
};
技术要点解析:
Type-C的SBU1/SBU2引脚与DP的AUX_CH通道是复用的:
●正插:AUX_CH_P → SBU1,AUX_CH_N → SBU2
●反插:AUX_CH_P → SBU2,AUX_CH_N → SBU1
根据DP协议规范,AUX_CH_P需下拉,AUX_CH_N需上拉。因此PHY驱动会根据插入方向动态调整SBU引脚的上下拉状态——这就是为什么需要配置sbu1-dc-gpios和sbu2-dc-gpios。
2.3 配置PD控制器(fusb302)
Type-C接口需要通过Type-C的CC检测和PD协商来配置lane和HPD的状态,所以DP Alt Mode的激活需要Type-C PD(Power Delivery)协商配合。RK3588评估板当前支持fusb302和husb311两种PD芯片:
&i2c2 {
status = "okay";
usbc0: fusb302@22 {
compatible = "fcs,fusb302";
reg = <0x22>;
interrupt-parent = <&gpio1>;
interrupts = <RK_PB0 IRQ_TYPE_LEVEL_LOW>;
pinctrl-names = "default";
pinctrl-0 = <&usbc0_int>;
vbus-supply = <&vbus5v0_typec0>;
status = "okay";
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
usbc0_role_sw: endpoint@0 {
remote-endpoint = <&dwc3_0_role_switch>;
};
};
};
usb_con0: connector {
compatible = "usb-c-connector";
label = "USB-C";
data-role = "dual";
power-role = "dual";
try-power-role = "sink";
op-sink-microwatt = <1000000>;
sink-pdos =
<PDO_FIXED(5000, 1000, PDO_FIXED_USB_COMM)>;
source-pdos =
<PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
altmodes {
#address-cells = <1>;
#size-cells = <0>;
altmode@0 {
reg = <0>;
svid = <0xff01>;
vdo = <0xffffffff>;
};
};
ports {
#address-cells = <1>;
#size-cells = <0>;
port@0 {
reg = <0>;
usbc0_orien_sw: endpoint {
remote-endpoint = <&usbdp_phy0_orientation_switch>;
};
};
port@1 {
reg = <1>;
dp0_altmode_mux: endpoint {
remote-endpoint = <&usbdp_phy0_dp_altmode_mux>;
};
};
};
};
};
};
三、内核配置清单
确保以下内核配置已启用:
CONFIG_PHY_ROCKCHIP_INNO_USB2
CONFIG_PHY_ROCKCHIP_INNO_USB3
CONFIG_PHY_ROCKCHIP_NANENG_COMBO_PHY
CONFIG_PHY_ROCKCHIP_NANENG_USB2
CONFIG_PHY_ROCKCHIP_TYPEC
CONFIG_PHY_ROCKCHIP_USB
CONFIG_PHY_ROCKCHIP_USBDP
CONFIG_USB_DWC2
CONFIG_USB_DWC2_DUAL_ROLE
CONFIG_USB_DWC3
CONFIG_USB_DWC3_DUAL_ROLE
CONFIG_USB_DWC3_HAPS
CONFIG_USB_DWC3_OF_SIMPLE
配置完成后重新编译内核即可。
四、调试技巧
● 查看VOP状态
cat /sys/kernel/debug/dri/0/summary
● 检查DP连接状态
cat /sys/kernel/debug/dp/status
● 重要注意事项
开机Logo限制,当前驱动不支持Type-C接口的DP开机Logo显示,系统启动后的桌面显示不受影响。
五、结语
RK3588通过Type-C实现DP输出,为嵌入式设备提供了简洁高效的显示扩展方案。配合Type-C一线通显示器,可大幅减少设备连接线缆,提升产品便携性和专业感。
如需获取完整的《Rockchip RK3588 DP 软件开发指南》参考文档,或者SDK支持或硬件设计参考,欢迎联系我司技术支持团队。
113