[PATCH v6 09/10] arm64: dts: rockchip: Enable DisplayPort for rk3588s Cool Pi 4B

Andy Yan andyshrk at 163.com
Wed Jul 30 12:15:44 UTC 2025



Hello Sebastian,

At 2025-07-30 01:09:41, "Sebastian Reichel" <sebastian.reichel at collabora.com> wrote:
>Hi,
>
>On Mon, Jul 28, 2025 at 04:28:34PM +0800, Andy Yan wrote:
>> From: Andy Yan <andy.yan at rock-chips.com>
>> 
>> Enable the Mini DisplayPort on this board.
>> Note that ROCKCHIP_VOP2_EP_DP0 is defined as 10 in dt-binding header,
>> but it will trigger a dtc warning like "graph node unit address error,
>> expected "a"" if we use it directly after endpoint, so we use "a"
>> instead here.
>> 
>> Signed-off-by: Andy Yan <andy.yan at rock-chips.com>
>> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov at oss.qualcomm.com>
>> ---
>
>The graph currently looks like this:
>
>VOP <-> DP controller <-> DP Connector
>
>IIUIC this does not work for USB-C and needs to look like this,
>because the USBDP PHY handles the lane muxing and thus must be
>the thing connected to the USB-C controller/connector:

I previously tests USB-C Altmode on Linux 5.15 using Rock 5b,  this function works well. 
However, when the same dts configuration is used on Linux 6.16 and tested with Rock 5b in USB-C Altmode, 
the HPD interrupt of DP cannot be triggered. I'm not sure yet what changes have occurred between them.
Moreover, I noticed that on your test branch[1], the DTS configuration has also changed compared to before.
I would greatly appreciate it if you could share some details.



[0]https://github.com/andyshrk/linux/commit/b9f87a562d431fb59b664b7aed41869a8f184de3
[1]https://gitlab.collabora.com/hardware-enablement/rockchip-3588/linux/-/commit/0e7e90494482cf77d5bb058a47583b6747b140f4
>
>VOP <-> DP controller <-> USBDP PHY <-> USB-C Connector
>
>I wonder if the simple case not involving USB-C should also have
>the USBDP PHY described in the graph as a transparent bridge?
>Note, that the USBDP PHY DT binding is currently not ready for
>this (this also affects the next patch, but should be enough to
>discuss this once :)).
>
>Greetings,
>
>-- Sebastian
>
>> 
>> (no changes since v2)
>> 
>> Changes in v2:
>> - Sort in alphabetical order
>> 
>>  .../boot/dts/rockchip/rk3588s-coolpi-4b.dts   | 37 +++++++++++++++++++
>>  1 file changed, 37 insertions(+)
>> 
>> diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-coolpi-4b.dts b/arch/arm64/boot/dts/rockchip/rk3588s-coolpi-4b.dts
>> index 8b717c4017a46..5393c6cc493c3 100644
>> --- a/arch/arm64/boot/dts/rockchip/rk3588s-coolpi-4b.dts
>> +++ b/arch/arm64/boot/dts/rockchip/rk3588s-coolpi-4b.dts
>> @@ -39,6 +39,18 @@ chosen {
>>  		stdout-path = "serial2:1500000n8";
>>  	};
>>  
>> +	dp-con {
>> +		compatible = "dp-connector";
>> +		label = "DP OUT";
>> +		type = "mini";
>> +
>> +		port {
>> +			dp_con_in: endpoint {
>> +				remote-endpoint = <&dp0_out_con>;
>> +			};
>> +		};
>> +	};
>> +
>>  	hdmi-con {
>>  		compatible = "hdmi-connector";
>>  		type = "d";
>> @@ -215,6 +227,24 @@ &cpu_b2 {
>>  	cpu-supply = <&vdd_cpu_big1_s0>;
>>  };
>>  
>> +&dp0 {
>> +	status = "okay";
>> +	pinctrl-0 = <&dp0m0_pins>;
>> +	pinctrl-names = "default";
>> +};
>> +
>> +&dp0_in {
>> +	dp0_in_vp2: endpoint {
>> +		remote-endpoint = <&vp2_out_dp0>;
>> +	};
>> +};
>> +
>> +&dp0_out {
>> +	dp0_out_con: endpoint {
>> +		remote-endpoint = <&dp_con_in>;
>> +	};
>> +};
>> +
>>  &gpu {
>>  	mali-supply = <&vdd_gpu_s0>;
>>  	status = "okay";
>> @@ -889,3 +919,10 @@ vp0_out_hdmi0: endpoint at ROCKCHIP_VOP2_EP_HDMI0 {
>>  		remote-endpoint = <&hdmi0_in_vp0>;
>>  	};
>>  };
>> +
>> +&vp2 {
>> +	vp2_out_dp0: endpoint at a {
>> +		reg = <ROCKCHIP_VOP2_EP_DP0>;
>> +		remote-endpoint = <&dp0_in_vp2>;
>> +	};
>> +};
>> -- 
>> 2.43.0
>> 


More information about the dri-devel mailing list