diff mbox series

[2/2] arm64: dts: rockchip: Enable HDMI0 and GPU on Indiedroid Nova

Message ID 20241023164104.66282-3-macroalpha82@gmail.com (mailing list archive)
State New
Headers show
Series Indiedroid Nova Audio/HDMI Updates | expand

Commit Message

Chris Morgan Oct. 23, 2024, 4:41 p.m. UTC
From: Chris Morgan <macromorgan@hotmail.com>

Enable the HDMI0 and GPU for the Indiedroid Nova.

Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
---
 .../dts/rockchip/rk3588s-indiedroid-nova.dts  | 56 +++++++++++++++++++
 1 file changed, 56 insertions(+)

Comments

Heiko Stuebner Oct. 23, 2024, 7:43 p.m. UTC | #1
Am Mittwoch, 23. Oktober 2024, 18:41:04 CEST schrieb Chris Morgan:
> From: Chris Morgan <macromorgan@hotmail.com>
> 
> Enable the HDMI0 and GPU for the Indiedroid Nova.

in general please notice the "and" in your commit message. This generally
indicates a situation that wants to be more than one patch.

With the gpu + hdmi being close cousins and the gpu actually tiny,
there is not a big reason to resend this series though.

So I would've preferred 2 patches, but it'll do this time ;-)


Heiko

> 
> Signed-off-by: Chris Morgan <macromorgan@hotmail.com>
> ---
>  .../dts/rockchip/rk3588s-indiedroid-nova.dts  | 56 +++++++++++++++++++
>  1 file changed, 56 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-indiedroid-nova.dts b/arch/arm64/boot/dts/rockchip/rk3588s-indiedroid-nova.dts
> index a4b930f6987f..547b3ca881e0 100644
> --- a/arch/arm64/boot/dts/rockchip/rk3588s-indiedroid-nova.dts
> +++ b/arch/arm64/boot/dts/rockchip/rk3588s-indiedroid-nova.dts
> @@ -5,6 +5,7 @@
>  #include <dt-bindings/gpio/gpio.h>
>  #include <dt-bindings/input/linux-event-codes.h>
>  #include <dt-bindings/pinctrl/rockchip.h>
> +#include <dt-bindings/soc/rockchip,vop2.h>
>  #include <dt-bindings/usb/pd.h>
>  #include "rk3588s.dtsi"
>  
> @@ -50,6 +51,17 @@ chosen {
>  		stdout-path = "serial2:1500000n8";
>  	};
>  
> +	hdmi0-con {
> +		compatible = "hdmi-connector";
> +		type = "c";
> +
> +		port {
> +			hdmi0_con_in: endpoint {
> +				remote-endpoint = <&hdmi0_out_con>;
> +			};
> +		};
> +	};
> +
>  	sdio_pwrseq: sdio-pwrseq {
>  		compatible = "mmc-pwrseq-simple";
>  		clock-names = "ext_clock";
> @@ -242,6 +254,35 @@ &gpio4 {
>  			  "", "", "", "";
>  };
>  
> +&gpu {
> +	mali-supply = <&vdd_gpu_s0>;
> +	status = "okay";
> +};
> +
> +&hdmi0 {
> +	pinctrl-0 = <&hdmim0_rx_hpdin>, <&hdmim0_tx0_scl>,
> +		    <&hdmim0_tx0_sda>, <&hdmim0_tx0_hpd>,
> +		    <&hdmim0_tx0_cec>;
> +	pinctrl-names = "default";
> +	status = "okay";
> +};
> +
> +&hdmi0_in {
> +	hdmi0_in_vp0: endpoint {
> +		remote-endpoint = <&vp0_out_hdmi0>;
> +	};
> +};
> +
> +&hdmi0_out {
> +	hdmi0_out_con: endpoint {
> +		remote-endpoint = <&hdmi0_con_in>;
> +	};
> +};
> +
> +&hdptxphy_hdmi0 {
> +	status = "okay";
> +};
> +
>  &i2c0 {
>  	pinctrl-0 = <&i2c0m2_xfer>;
>  	pinctrl-names = "default";
> @@ -919,3 +960,18 @@ usbdp_phy0_dp_altmode_mux: endpoint@1 {
>  		};
>  	};
>  };
> +
> +&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>;
> +	};
> +};
>
Jimmy Hon Oct. 24, 2024, 1:14 a.m. UTC | #2
>+	hdmi0-con {
>+		compatible = "hdmi-connector";
>+		type = "c";
This should be type d, the Nova has a micro HDMI port, not a mini HDMI port.


>+
>+&hdmi0 {
>+	pinctrl-0 = <&hdmim0_rx_hpdin>, <&hdmim0_tx0_scl>,
>+		    <&hdmim0_tx0_sda>, <&hdmim0_tx0_hpd>,
>+		    <&hdmim0_tx0_cec>;
>+	pinctrl-names = "default";
>+	status = "okay";
>+};
Why is the additional hdmim0_rx_hpdin needed? Is it supposed to represent
HDMI0_TX_ON_H? I'm curious why this board needs it, when the other boards
do not.

Jimmy
Chris Morgan Oct. 29, 2024, 8:27 p.m. UTC | #3
On Wed, Oct 23, 2024 at 08:14:54PM -0500, Jimmy Hon wrote:
> >+	hdmi0-con {
> >+		compatible = "hdmi-connector";
> >+		type = "c";
> This should be type d, the Nova has a micro HDMI port, not a mini HDMI port.
> 
> 
> >+
> >+&hdmi0 {
> >+	pinctrl-0 = <&hdmim0_rx_hpdin>, <&hdmim0_tx0_scl>,
> >+		    <&hdmim0_tx0_sda>, <&hdmim0_tx0_hpd>,
> >+		    <&hdmim0_tx0_cec>;
> >+	pinctrl-names = "default";
> >+	status = "okay";
> >+};
> Why is the additional hdmim0_rx_hpdin needed? Is it supposed to represent
> HDMI0_TX_ON_H? I'm curious why this board needs it, when the other boards
> do not.
> 
> Jimmy
> 

You are correct about the port type, it is type d not type c.
As for the HDMI0_TX_ON_H, that pin is hooked up per the schematic so I
thought it prudent to define it in the device tree as such (this being
one of the very few boards I get to work on with actual schematics).

Thank you,
Chris
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-indiedroid-nova.dts b/arch/arm64/boot/dts/rockchip/rk3588s-indiedroid-nova.dts
index a4b930f6987f..547b3ca881e0 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588s-indiedroid-nova.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3588s-indiedroid-nova.dts
@@ -5,6 +5,7 @@ 
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/linux-event-codes.h>
 #include <dt-bindings/pinctrl/rockchip.h>
+#include <dt-bindings/soc/rockchip,vop2.h>
 #include <dt-bindings/usb/pd.h>
 #include "rk3588s.dtsi"
 
@@ -50,6 +51,17 @@  chosen {
 		stdout-path = "serial2:1500000n8";
 	};
 
+	hdmi0-con {
+		compatible = "hdmi-connector";
+		type = "c";
+
+		port {
+			hdmi0_con_in: endpoint {
+				remote-endpoint = <&hdmi0_out_con>;
+			};
+		};
+	};
+
 	sdio_pwrseq: sdio-pwrseq {
 		compatible = "mmc-pwrseq-simple";
 		clock-names = "ext_clock";
@@ -242,6 +254,35 @@  &gpio4 {
 			  "", "", "", "";
 };
 
+&gpu {
+	mali-supply = <&vdd_gpu_s0>;
+	status = "okay";
+};
+
+&hdmi0 {
+	pinctrl-0 = <&hdmim0_rx_hpdin>, <&hdmim0_tx0_scl>,
+		    <&hdmim0_tx0_sda>, <&hdmim0_tx0_hpd>,
+		    <&hdmim0_tx0_cec>;
+	pinctrl-names = "default";
+	status = "okay";
+};
+
+&hdmi0_in {
+	hdmi0_in_vp0: endpoint {
+		remote-endpoint = <&vp0_out_hdmi0>;
+	};
+};
+
+&hdmi0_out {
+	hdmi0_out_con: endpoint {
+		remote-endpoint = <&hdmi0_con_in>;
+	};
+};
+
+&hdptxphy_hdmi0 {
+	status = "okay";
+};
+
 &i2c0 {
 	pinctrl-0 = <&i2c0m2_xfer>;
 	pinctrl-names = "default";
@@ -919,3 +960,18 @@  usbdp_phy0_dp_altmode_mux: endpoint@1 {
 		};
 	};
 };
+
+&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>;
+	};
+};