扫码加入

  • 正文
  • 相关推荐
申请入驻 产业图谱

RK3588 Type-C一线通,DP显示输出实战指南

04/03 16:50
113
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

摘要: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支持或硬件设计参考,欢迎联系我司技术支持团队。

相关推荐