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
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
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 >
© 2016 - 2025 Red Hat, Inc.