diff mbox series

[1/2] arm64: dts: rockchip: add HDMI support to rk3588-tiger-haikou

Message ID 20241024133240.1737647-1-heiko@sntech.de (mailing list archive)
State New, archived
Headers show
Series [1/2] arm64: dts: rockchip: add HDMI support to rk3588-tiger-haikou | expand

Commit Message

Heiko Stuebner Oct. 24, 2024, 1:32 p.m. UTC
From: Heiko Stuebner <heiko.stuebner@cherry.de>

The Haikou baseboard has an hdmi output port, which is connected
via the Q7 connector to the hdmi0 controller of the rk3588.

Add the necessary plumbing to enable it using the recently merged
hdmi-qp controller.

Signed-off-by: Heiko Stuebner <heiko.stuebner@cherry.de>
---
 .../boot/dts/rockchip/rk3588-tiger-haikou.dts | 50 +++++++++++++++++++
 1 file changed, 50 insertions(+)

Comments

Quentin Schulz Oct. 24, 2024, 1:46 p.m. UTC | #1
Hi Heiko,

On 10/24/24 3:32 PM, Heiko Stuebner wrote:
> From: Heiko Stuebner <heiko.stuebner@cherry.de>
> 
> The Haikou baseboard has an hdmi output port, which is connected
> via the Q7 connector to the hdmi0 controller of the rk3588.
> 
> Add the necessary plumbing to enable it using the recently merged
> hdmi-qp controller.
> 
> Signed-off-by: Heiko Stuebner <heiko.stuebner@cherry.de>
> ---
>   .../boot/dts/rockchip/rk3588-tiger-haikou.dts | 50 +++++++++++++++++++
>   1 file changed, 50 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/rockchip/rk3588-tiger-haikou.dts b/arch/arm64/boot/dts/rockchip/rk3588-tiger-haikou.dts
> index e4b7a0a4444b..e3596341b816 100644
> --- a/arch/arm64/boot/dts/rockchip/rk3588-tiger-haikou.dts
> +++ b/arch/arm64/boot/dts/rockchip/rk3588-tiger-haikou.dts
> @@ -5,6 +5,7 @@
>   
>   /dts-v1/;
>   #include <dt-bindings/input/input.h>
> +#include <dt-bindings/soc/rockchip,vop2.h>
>   #include "rk3588-tiger.dtsi"
>   
>   / {
> @@ -61,6 +62,17 @@ switch-lid-btn-n {
>   		};
>   	};
>   
> +	hdmi-con {
> +		compatible = "hdmi-connector";
> +		type = "a";
> +
> +		port {
> +			hdmi_con_in: endpoint {
> +				remote-endpoint = <&hdmi0_out_con>;
> +			};
> +		};
> +	};
> +
>   	i2s3-sound {
>   		compatible = "simple-audio-card";
>   		simple-audio-card,format = "i2s";
> @@ -155,6 +167,29 @@ &gmac0 {
>   	status = "okay";
>   };
>   
> +&hdmi0 {
> +	/* No CEC on Haikou */
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&hdmim0_tx0_hpd &hdmim1_tx0_scl &hdmim1_tx0_sda>;

The pinctrl for HDMI is fixed on Tiger so we should rather have this in 
Tiger DTSI.

Why we have those defined in Haikou as well downstream is because we do 
not have CEC routed on Haikou, but it is exposed by Tiger on Q7 
connector, so basically, the point is the pinctrl-0 in Haikou is a 
subset of the one in Tiger.

So please have the following in rk3588-tiger.dtsi as well:

pinctrl-0 = <&hdmim1_tx0_cec &hdmim0_tx0_hpd &hdmim1_tx0_scl 
&hdmim1_tx0_sda>;

It'd be nice to have HDMI audio as well, but one thing after the other I 
guess :)

> +	status = "okay";
> +};
> +
> +&hdmi0_in {

BTW, I'm not very happy with this naming.

There is an HDMI-RX controller on RK3588 as well, which is routed on 
Tiger, so this will be unnecessarily confusing: "which one REALLY is the 
HDMI input".

Maybe hdmitx0_in would have made more sense. Anyway, I'm too late to the 
party :)

Cheers,
Quentin
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/rockchip/rk3588-tiger-haikou.dts b/arch/arm64/boot/dts/rockchip/rk3588-tiger-haikou.dts
index e4b7a0a4444b..e3596341b816 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588-tiger-haikou.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3588-tiger-haikou.dts
@@ -5,6 +5,7 @@ 
 
 /dts-v1/;
 #include <dt-bindings/input/input.h>
+#include <dt-bindings/soc/rockchip,vop2.h>
 #include "rk3588-tiger.dtsi"
 
 / {
@@ -61,6 +62,17 @@  switch-lid-btn-n {
 		};
 	};
 
+	hdmi-con {
+		compatible = "hdmi-connector";
+		type = "a";
+
+		port {
+			hdmi_con_in: endpoint {
+				remote-endpoint = <&hdmi0_out_con>;
+			};
+		};
+	};
+
 	i2s3-sound {
 		compatible = "simple-audio-card";
 		simple-audio-card,format = "i2s";
@@ -155,6 +167,29 @@  &gmac0 {
 	status = "okay";
 };
 
+&hdmi0 {
+	/* No CEC on Haikou */
+	pinctrl-names = "default";
+	pinctrl-0 = <&hdmim0_tx0_hpd &hdmim1_tx0_scl &hdmim1_tx0_sda>;
+	status = "okay";
+};
+
+&hdmi0_in {
+	hdmi0_in_vp0: endpoint {
+		remote-endpoint = <&vp0_out_hdmi0>;
+	};
+};
+
+&hdmi0_out {
+	hdmi0_out_con: endpoint {
+		remote-endpoint = <&hdmi_con_in>;
+	};
+};
+
+&hdptxphy_hdmi0 {
+	status = "okay";
+};
+
 &i2c1 {
 	status = "okay";
 
@@ -321,3 +356,18 @@  &usb_host1_xhci {
 &usb_host2_xhci {
 	status = "okay";
 };
+
+&vop {
+	status = "okay";
+};
+
+&vop_mmu {
+	status = "okay";
+};
+
+&vp0 {
+	vp0_out_hdmi0: endpoint@ROCKCHIP_VOP2_EP_HDMI0 {
+		reg = <ROCKCHIP_VOP2_EP_HDMI0>;
+		remote-endpoint = <&hdmi0_in_vp0>;
+	};
+};