Skip to contentSkip to conversation

Indiedroid Nova Audio/HDMI Updates

PATCH Superseded Chris Morgan 4 participants 7 messages Oct 30, 2024 – Oct 31, 2024

Subsystems (2)

v2 of 3 Superseded Latest is v3 →

lore
Share & tools
lore
#0 lore raw

v2 cover Indiedroid Nova Audio/HDMI Updates

From: Chris Morgan <[email protected]>

This series is for a handful of fixes and updates for the Indiedroid Nova. This series corrects the device name of the audio card to stop a kernel log error, and adds support for both the HDMI and GPU (now that HDMI support has been queued for linux-next).

Changes since v1:
- Corrected HDMI port from mini HDMI (c) to micro HDMI (d).
- Explained why I enable hdmim0_rx_hpdin in contrast to the other rk3588 boards.
- Split HDMI0 and GPU patches into different patches.

Chris Morgan (3):
arm64: dts: rockchip: correct analog audio name on Indiedroid Nova
arm64: dts: rockchip: Enable GPU on Indiedroid Nova
arm64: dts: rockchip: Enable HDMI0 on Indiedroid Nova

 .../dts/rockchip/rk3588s-indiedroid-nova.dts  | 58 ++++++++++++++++++-
 1 file changed, 57 insertions(+), 1 deletion(-)
Signature · 1 line
2.43.0
#1 lore raw

PATCH v2 1/3 arm64: dts: rockchip: correct analog audio name on Indiedroid Nova

From: Chris Morgan <[email protected]>

Correct the audio name for the Indiedroid Nova from rockchip,es8388-codec to rockchip,es8388. This name change corrects a kernel log error of "ASoC: driver name too long 'rockchip,es8388-codec' -> 'rockchip_es8388'".

Fixes 3900160e164b ("arm64: dts: rockchip: Add Indiedroid Nova board")
---
 arch/arm64/boot/dts/rockchip/rk3588s-indiedroid-nova.dts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
arch/arm64/boot/dts/rockchip/rk3588s-indiedroid-nova.dts +1 -1
index d8c50fdcca3b..a4b930f6987f 100644
@@ -62,7 +62,7 @@ sdio_pwrseq: sdio-pwrseq {
 
 	sound {
 		compatible = "audio-graph-card";
-		label = "rockchip,es8388-codec";
+		label = "rockchip,es8388";
 		widgets = "Microphone", "Mic Jack",
 			  "Headphone", "Headphones";
 		routing = "LINPUT2", "Mic Jack",
Signature · 1 line
2.43.0
#2 lore raw

PATCH v2 2/3 arm64: dts: rockchip: Enable GPU on Indiedroid Nova

In reply to Chris Morgan

From: Chris Morgan <[email protected]>

Enable the GPU for the Indiedroid Nova.

---
 arch/arm64/boot/dts/rockchip/rk3588s-indiedroid-nova.dts | 5 +++++
 1 file changed, 5 insertions(+)
arch/arm64/boot/dts/rockchip/rk3588s-indiedroid-nova.dts +5 -0
index a4b930f6987f..065d44735001 100644
@@ -242,6 +242,11 @@ &gpio4 {
 			  "", "", "", "";
 };
 
+&gpu {
+	mali-supply = <&vdd_gpu_s0>;
+	status = "okay";
+};
+
 &i2c0 {
 	pinctrl-0 = <&i2c0m2_xfer>;
 	pinctrl-names = "default";
Signature · 1 line
2.43.0
#3 lore raw

PATCH v2 3/3 arm64: dts: rockchip: Enable HDMI0 on Indiedroid Nova

In reply to Chris Morgan

From: Chris Morgan <[email protected]>

Enable the HDMI0 port for the Indiedroid Nova. The schematics available show the hdmim0_rx_hpdin is connected, so this pinctrl is enabled in contrast with the other rk3588 boards.

---
 .../dts/rockchip/rk3588s-indiedroid-nova.dts  | 51 +++++++++++++++++++
 1 file changed, 51 insertions(+)
arch/arm64/boot/dts/rockchip/rk3588s-indiedroid-nova.dts +51 -0
index 065d44735001..7272aba998cf 100644
@@ -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 = "d";
+
+		port {
+			hdmi0_con_in: endpoint {
+				remote-endpoint = <&hdmi0_out_con>;
+			};
+		};
+	};
+
 	sdio_pwrseq: sdio-pwrseq {
 		compatible = "mmc-pwrseq-simple";
 		clock-names = "ext_clock";
@@ -247,6 +259,30 @@ &gpu {
 	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";
@@ -924,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>;
+	};
+};
Signature · 1 line
2.43.0
#4 lore raw

Re: [PATCH V2 3/3] arm64: dts: rockchip: Enable HDMI0 on Indiedroid Nova

Quoted 6 lines · Chris Morgan

From: Chris Morgan <[email protected]>

Enable the HDMI0 port for the Indiedroid Nova. The schematics available show the hdmim0_rx_hpdin is connected, so this pinctrl is enabled in contrast with the other rk3588 boards.

Which pin in the schematic [1] (page 24) does it refer to? It's not obvious how to match it up.
The schematic looks the same as the Rock 5B schematic [2] (page 31) and the Rock 5B dts uses the default pinctrl [3]

Note: The vendor kernel DTS doesn't modify the pinctrl either. [4]

If you try using the default pinctrl (not overriding), does HDMI not work?

Jimmy

[1] https://wiki.indiedroid.us/Nova/schematics
[2] https://dl.radxa.com/rock5/5b/docs/hw/radxa_rock_5b_v1450_schematic.pdf
[3] https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip.git/tree/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts?h=for-next&id=c8152f79c2dd8039e14073be76fdbce8760175da#n207
[4] https://github.com/stvhay/kernel/blob/batocera-rk3588-4.0/arch/arm64/boot/dts/rockchip/rk3588s-9tripod-x3588s.dtsi#L226

maintainer
#5 lore raw

Re: [PATCH V2 3/3] arm64: dts: rockchip: Enable HDMI0 on Indiedroid Nova

Am Donnerstag, 31. Oktober 2024, 01:49:07 CET schrieb Jimmy Hon:

Quoted 8 lines · Chris Morgan
Quoted 6 lines

From: Chris Morgan <[email protected]>

Enable the HDMI0 port for the Indiedroid Nova. The schematics available show the hdmim0_rx_hpdin is connected, so this pinctrl is enabled in contrast with the other rk3588 boards.

Quoted 8 lines

Which pin in the schematic [1] (page 24) does it refer to? It's not obvious how to match it up.
The schematic looks the same as the Rock 5B schematic [2] (page 31) and the Rock 5B dts uses the default pinctrl [3]

Note: The vendor kernel DTS doesn't modify the pinctrl either. [4]

If you try using the default pinctrl (not overriding), does HDMI not work?

I stumbled over the same issue recently for our Theobroma boards too.

From the Indiedroid schematics, you can see that the hdmim0_rx_hpdin pin is gpio4_b6, which in their board is connected to the hdmi0_tx_on_h functionality, which controls the output functionality between hdmi2.0-tmds and hdmi2.1-frl modes.

The hdmi-driver currently only does hdmi2.0 but normally, on most boards I've seen so far, this pin has a default pull to set hdmi2.0 anyway, so other boards don't need that.

So for one, please check if the nova can run without it, but if a pin setting is needed, please define a new per-board one, labeling it correctly for this hdmi0_tx_on_h functionality and do not re-use the hdmi-rx pin-setting.

Heiko

#6 lore raw

Re: [PATCH V2 3/3] arm64: dts: rockchip: Enable HDMI0 on Indiedroid Nova

Quoted 25 lines · Heiko Stübner

Am Donnerstag, 31. Oktober 2024, 01:49:07 CET schrieb Jimmy Hon:

Quoted 8 lines · Chris Morgan
Quoted 6 lines

From: Chris Morgan <[email protected]>

Enable the HDMI0 port for the Indiedroid Nova. The schematics available show the hdmim0_rx_hpdin is connected, so this pinctrl is enabled in contrast with the other rk3588 boards.

Quoted 8 lines

Which pin in the schematic [1] (page 24) does it refer to? It's not obvious how to match it up.
The schematic looks the same as the Rock 5B schematic [2] (page 31) and the Rock 5B dts uses the default pinctrl [3]

Note: The vendor kernel DTS doesn't modify the pinctrl either. [4]

If you try using the default pinctrl (not overriding), does HDMI not work?

I stumbled over the same issue recently for our Theobroma boards too.

From the Indiedroid schematics, you can see that the hdmim0_rx_hpdin pin is gpio4_b6, which in their board is connected to the hdmi0_tx_on_h functionality, which controls the output functionality between hdmi2.0-tmds and hdmi2.1-frl modes.

Quoted 8 lines

The hdmi-driver currently only does hdmi2.0 but normally, on most boards I've seen so far, this pin has a default pull to set hdmi2.0 anyway, so other boards don't need that.

So for one, please check if the nova can run without it, but if a pin setting is needed, please define a new per-board one, labeling it correctly for this hdmi0_tx_on_h functionality and do not re-use the hdmi-rx pin-setting.

I can confirm it will run without it, so I'll simply set the pinctrl to be the same as the other boards.

Thank you,
Chris

Quoted 6 lines

Heiko