[PATCH v2 2/2] arm64: dts: rockchip: add RK3588 DP carrier from Theobroma Systems

Heiko Stuebner posted 2 patches 2 months, 2 weeks ago
There is a newer version of this series
[PATCH v2 2/2] arm64: dts: rockchip: add RK3588 DP carrier from Theobroma Systems
Posted by Heiko Stuebner 2 months, 2 weeks ago
From: Heiko Stuebner <heiko.stuebner@cherry.de>

The DisplayPort carrier is a very simple baseboard only providing serial,
ethernet and a displayport output.

But its main functionality is that it routes the Analogix eDP controller
to this DisplayPort output, which allows to test that controller simply
by hooking it up to a suitable monitor.

The Analogix-DP controller supports eDP 1.3 and DP 1.2, so can drive
both eDP displays as well as full DP monitors. It does not support DP+
so passive DP-to-HDMI adapters won't work.

Signed-off-by: Heiko Stuebner <heiko.stuebner@cherry.de>
---
 arch/arm64/boot/dts/rockchip/Makefile         |   1 +
 .../rk3588-tiger-displayport-carrier.dts      | 109 ++++++++++++++++++
 2 files changed, 110 insertions(+)
 create mode 100644 arch/arm64/boot/dts/rockchip/rk3588-tiger-displayport-carrier.dts

diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile
index 7946bec10670..a1acde3c23fa 100644
--- a/arch/arm64/boot/dts/rockchip/Makefile
+++ b/arch/arm64/boot/dts/rockchip/Makefile
@@ -176,6 +176,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-rock-5b-dsi1-fhd10.dtbo
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-rock-5b-pcie-ep.dtbo
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-rock-5b-pcie-srns.dtbo
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-rock-5b-plus.dtb
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-tiger-displayport-carrier.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-tiger-haikou.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-tiger-haikou-video-demo.dtbo
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-toybrick-x0.dtb
diff --git a/arch/arm64/boot/dts/rockchip/rk3588-tiger-displayport-carrier.dts b/arch/arm64/boot/dts/rockchip/rk3588-tiger-displayport-carrier.dts
new file mode 100644
index 000000000000..025b2853c708
--- /dev/null
+++ b/arch/arm64/boot/dts/rockchip/rk3588-tiger-displayport-carrier.dts
@@ -0,0 +1,109 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2024 Cherry Embedded Solutions GmbH
+ */
+
+/dts-v1/;
+#include <dt-bindings/soc/rockchip,vop2.h>
+#include "rk3588-tiger.dtsi"
+
+/ {
+	model = "Theobroma Systems RK3588-Q7 SoM on Tiger Displayport Carrier v1";
+	compatible = "tsd,rk3588-tiger-displayport-carrier", "tsd,rk3588-tiger", "rockchip,rk3588";
+
+	aliases {
+		ethernet0 = &gmac0;
+	};
+
+	chosen {
+		stdout-path = "serial2:115200n8";
+	};
+
+	dp-connector {
+		compatible = "dp-connector";
+		dp-pwr-supply = <&vcc3v3_baseboard>;
+		/* Q7_DP_HPD# but Q7_HDMI_HPD# could be used too */
+		hpd-gpios = <&gpio4 RK_PB5 GPIO_ACTIVE_LOW>;
+		label = "dp0";
+		pinctrl-0 = <&edp0_hpd_l>;
+		pinctrl-names = "default";
+		type = "full-size";
+
+		port {
+			dp_con_in: endpoint {
+				remote-endpoint = <&edp0_out_con>;
+			};
+		};
+	};
+
+	vcc3v3_baseboard: regulator-vcc3v3-baseboard {
+		compatible = "regulator-fixed";
+		regulator-name = "vcc3v3_baseboard";
+		regulator-always-on;
+		regulator-boot-on;
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		vin-supply = <&vcc5v0_baseboard>;
+	};
+
+	vcc5v0_baseboard: regulator-vcc5v0-baseboard {
+		compatible = "regulator-fixed";
+		regulator-name = "vcc5v0_baseboard";
+		regulator-always-on;
+		regulator-boot-on;
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+	};
+};
+
+&edp0 {
+	status = "okay";
+};
+
+&edp0_in {
+	edp0_in_vp2: endpoint {
+		remote-endpoint = <&vp2_out_edp0>;
+	};
+};
+
+&edp0_out {
+	edp0_out_con: endpoint {
+		remote-endpoint = <&dp_con_in>;
+	};
+};
+
+&gmac0 {
+	status = "okay";
+};
+
+&hdptxphy0 {
+	status = "okay";
+};
+
+&pinctrl {
+	edp0 {
+		edp0_hpd_l: edp0-hpd-l-pin {
+			rockchip,pins = <4 RK_PB5 RK_FUNC_GPIO &pcfg_pull_up>;
+		};
+	};
+};
+
+&uart2 {
+	pinctrl-0 = <&uart2m2_xfer>;
+	status = "okay";
+};
+
+&vop {
+	status = "okay";
+};
+
+&vop_mmu {
+	status = "okay";
+};
+
+&vp2 {
+	vp2_out_edp0: endpoint@ROCKCHIP_VOP2_EP_EDP0 {
+		reg = <ROCKCHIP_VOP2_EP_EDP0>;
+		remote-endpoint = <&edp0_in_vp2>;
+	};
+};
-- 
2.47.2
Re: [PATCH v2 2/2] arm64: dts: rockchip: add RK3588 DP carrier from Theobroma Systems
Posted by Quentin Schulz 2 months, 1 week ago
Hi Heiko,

On 7/23/25 9:09 PM, Heiko Stuebner wrote:
> From: Heiko Stuebner <heiko.stuebner@cherry.de>
> 
> The DisplayPort carrier is a very simple baseboard only providing serial,
> ethernet and a displayport output.
> 
> But its main functionality is that it routes the Analogix eDP controller
> to this DisplayPort output, which allows to test that controller simply
> by hooking it up to a suitable monitor.
> 
> The Analogix-DP controller supports eDP 1.3 and DP 1.2, so can drive
> both eDP displays as well as full DP monitors. It does not support DP+
> so passive DP-to-HDMI adapters won't work.
> 

I tested this on master (2942242dde896) + v2 of the eDP driver as listed 
in the cover letter, or with v3 of the eDP driver + 
48f05c3b4b701ae7687fd44d462c88b7ac67e952 and in both cases I have weird 
behaviors.

First, `reboot` is stuck for a very long time before actually rebooting. 
I think you have a stacktrace when you tried yourself, I don't so cannot 
send one.

Also, I tested on two different DP displays, one has a green tint, the 
other one purple. When trying out other resolutions with modetest, the 
kernel would often crash (no trace, just nothing on console, SSH dead). 
Note that the same HW setup with downstream kernel from 
https://git.theobroma-systems.com/tiger-linux.git/log/?h=linux-6.1-stan-rkr3.2-tiger 
works just fine. I would assume this has nothing to do with this Device 
Tree patch here but rather the eDP patches missing some bits maybe?

@Damon do you have some idea?

The display with green tint is a Iiyama ProLite XU2294HSU and the one 
with the purple tint is a Dell P2319H if that helps.

modetest output: https://paste.debian.net/1387797/.
modetest output with downstream kernel: https://paste.debian.net/1387798/

The Device Tree looks good to me otherwise.

Cheers,
Quentin
Re: [PATCH v2 2/2] arm64: dts: rockchip: add RK3588 DP carrier from Theobroma Systems
Posted by Heiko Stübner 1 month, 3 weeks ago
Am Freitag, 25. Juli 2025, 14:29:12 Mitteleuropäische Sommerzeit schrieb Quentin Schulz:
> Hi Heiko,
> 
> On 7/23/25 9:09 PM, Heiko Stuebner wrote:
> > From: Heiko Stuebner <heiko.stuebner@cherry.de>
> > 
> > The DisplayPort carrier is a very simple baseboard only providing serial,
> > ethernet and a displayport output.
> > 
> > But its main functionality is that it routes the Analogix eDP controller
> > to this DisplayPort output, which allows to test that controller simply
> > by hooking it up to a suitable monitor.
> > 
> > The Analogix-DP controller supports eDP 1.3 and DP 1.2, so can drive
> > both eDP displays as well as full DP monitors. It does not support DP+
> > so passive DP-to-HDMI adapters won't work.
> > 
> 
> I tested this on master (2942242dde896) + v2 of the eDP driver as listed 
> in the cover letter, or with v3 of the eDP driver + 
> 48f05c3b4b701ae7687fd44d462c88b7ac67e952 and in both cases I have weird 
> behaviors.
> 
> First, `reboot` is stuck for a very long time before actually rebooting. 
> I think you have a stacktrace when you tried yourself, I don't so cannot 
> send one.

I tracked this down last week. The hang is easily reproduceable and the
fault of the PCIe SMMU. See
  https://lore.kernel.org/all/4400329.mogB4TqSGs@diego/
for the full detail.

TL;DR is, SMMU without users (and thus clocks/power-domains/or whatever)
hangs on reboot.


> Also, I tested on two different DP displays, one has a green tint, the 
> other one purple. When trying out other resolutions with modetest, the 
> kernel would often crash (no trace, just nothing on console, SSH dead). 
> Note that the same HW setup with downstream kernel from 
> https://git.theobroma-systems.com/tiger-linux.git/log/?h=linux-6.1-stan-rkr3.2-tiger 
> works just fine. I would assume this has nothing to do with this Device 
> Tree patch here but rather the eDP patches missing some bits maybe?
> 
> @Damon do you have some idea?
> 
> The display with green tint is a Iiyama ProLite XU2294HSU and the one 
> with the purple tint is a Dell P2319H if that helps.
> 
> modetest output: https://paste.debian.net/1387797/.
> modetest output with downstream kernel: https://paste.debian.net/1387798/
> 
> The Device Tree looks good to me otherwise.
> 
> Cheers,
> Quentin
>