Skip to contentSkip to conversation

Add support for Firefly ROC-RK3588-RT

PATCH Superseded Kaison Deng 3 participants 9 messages Sep 9, 2025 – Sep 10, 2025

Subsystems (2)

v2 of 3 Superseded Latest is v3 →

lore
Share & tools
lore
#0 lore raw

v2 cover Add support for Firefly ROC-RK3588-RT

This series add support for Firefly ROC-RK3588-RT.

Info of device can be found at:
https://en.t-firefly.com/product/industry/rocrk3588rt

Changes in v2:
- Add devicetree binding documentation for the Firefly ROC-RK3588-RT
- Update the description to match the device tree
- Adjust the descriptions of the model and compatible properties
- Add audio support for hdmi0 and hdmi1
- Adjust the attributes of sdhci in alphabetical order

Kaison Deng (2):
dt-bindings: arm: rockchip: Add Firefly ROC-RK3588-RT
arm64: dts: rockchip: Add devicetree for the ROC-RK3588-RT

 .../devicetree/bindings/arm/rockchip.yaml     |    5 +
 arch/arm64/boot/dts/rockchip/Makefile         |    1 +
 .../arm64/boot/dts/rockchip/rk3588-roc-rt.dts | 1136 +++++++++++++++++
 3 files changed, 1142 insertions(+)
 create mode 100644 arch/arm64/boot/dts/rockchip/rk3588-roc-rt.dts
Signature · 1 line
2.25.1
#1 lore raw

PATCH v2 1/2 dt-bindings: arm: rockchip: Add Firefly ROC-RK3588-RT

This documents Firefly ROC-RK3588-RT which is a SBC based on RK3588 SoC.

---
 Documentation/devicetree/bindings/arm/rockchip.yaml | 5 +++++
 1 file changed, 5 insertions(+)
Documentation/devicetree/bindings/arm/rockchip.yaml +5 -0
index f9ee77f17ad7..6aceaa8acbb2 100644
@@ -258,6 +258,11 @@ properties:
           - const: firefly,roc-rk3576-pc
           - const: rockchip,rk3576
 
+      - description: Firefly ROC-RK3588-RT
+        items:
+          - const: firefly,roc-rk3588-rt
+          - const: rockchip,rk3588
+
       - description: Firefly Station M2
         items:
           - const: firefly,rk3566-roc-pc
Signature · 1 line
2.25.1
#2 lore raw

Re: [PATCH v2 1/2] dt-bindings: arm: rockchip: Add Firefly ROC-RK3588-RT

Quoted 14 lines · Kaison Deng

This documents Firefly ROC-RK3588-RT which is a SBC based on RK3588 SoC.

---
 Documentation/devicetree/bindings/arm/rockchip.yaml | 5 +++++
 1 file changed, 5 insertions(+)
Documentation/devicetree/bindings/arm/rockchip.yaml +0 -0
index f9ee77f17ad7..6aceaa8acbb2 100644

Documentation/devicetree/bindings/arm/rockchip.yaml properties: · line 263

Quoted 6 lines
Documentation/devicetree/bindings/arm/rockchip.yaml +3 -0
@@ -258,6 +258,11 @@ properties:
           - const: firefly,roc-rk3576-pc
           - const: rockchip,rk3576
 
+      - description: Firefly ROC-RK3588-RT
+        items:
+          - const: firefly,roc-rk3588-rt

That's just enum with ROC-RK3576-PC. BTW, all these descriptionis are completely redundant. Actually getting harmful, because copy+paste of the same is only obfuscating code.

Best regards,
Krzysztof

#3 lore raw

Re: [PATCH v2 1/2] dt-bindings: arm: rockchip: Add Firefly ROC-RK3588-RT

Quoted 28 lines · Krzysztof Kozlowski
Quoted 16 lines · Kaison Deng

This documents Firefly ROC-RK3588-RT which is a SBC based on RK3588 SoC.

---
 Documentation/devicetree/bindings/arm/rockchip.yaml | 5 +++++
 1 file changed, 5 insertions(+)
Documentation/devicetree/bindings/arm/rockchip.yaml +0 -0
index f9ee77f17ad7..6aceaa8acbb2 100644

Documentation/devicetree/bindings/arm/rockchip.yaml properties: · line 263

Quoted 6 lines
Documentation/devicetree/bindings/arm/rockchip.yaml +3 -0
@@ -258,6 +258,11 @@ properties:
           - const: firefly,roc-rk3576-pc
           - const: rockchip,rk3576
 
+      - description: Firefly ROC-RK3588-RT
+        items:
+          - const: firefly,roc-rk3588-rt

That's just enum with ROC-RK3576-PC. BTW, all these descriptionis are completely redundant. Actually getting harmful, because copy+paste of the same is only obfuscating code.

Quoted 4 lines

Best regards,
Krzysztof

The ROC-RK3576-PC is based on the RK3576 SoC (4*Cortex-A72 + 4*Cortex- A53). The ROC-RK3588-RT is based on the RK3588 SoC (4*Cortex-A76 + 4*Cortex-A55). They are two different miniature single-board computers. So it does not apply to the enum with RK3576.

Best regards,
Kaison

#4 lore raw

Re: [PATCH v2 1/2] dt-bindings: arm: rockchip: Add Firefly ROC-RK3588-RT

Quoted 8 lines · Kaison Deng
Quoted 8 lines

Documentation/devicetree/bindings/arm/rockchip.yaml properties: · line 263

Quoted 3 lines
Documentation/devicetree/bindings/arm/rockchip.yaml +3 -0
+      - description: Firefly ROC-RK3588-RT
+        items:
+          - const: firefly,roc-rk3588-rt

That's just enum with ROC-RK3576-PC. BTW, all these descriptionis are completely redundant. Actually getting harmful, because copy+paste of the same is only obfuscating code.

Quoted 7 lines
Quoted 4 lines

Best regards,
Krzysztof

The ROC-RK3576-PC is based on the RK3576 SoC (4*Cortex-A72 + 4*Cortex- A53). The ROC-RK3588-RT is based on the RK3588 SoC (4*Cortex-A76 +

Uh, you are right, somehow I mixed up numbers.

Best regards,
Krzysztof

#5 lore raw

PATCH v2 2/2 arm64: dts: rockchip: Add devicetree for the ROC-RK3588-RT

In reply to Kaison Deng

The Firefly ROC-RK3588-RT is RK3588 based SBC featuring:
- TF card slot
- SATA 2242 socket
- 1x USB 3.0 Port, 1x USB 2.0 Port, 1x Typec Port
- 1x HDMI 2.1 out, 1x HDMI 2.0 out
- 2x Gigabit Ethernet, 1x 2.5G Ethernet
- M.2 E-KEY for Extended WiFI and Bluetoolh
- ES8388 on-board sound codec - jack in/out
- RTC
- LED: WORK, DIY

---

Changes in v2:
- Update the description to match the device tree
- Adjust the descriptions of the model and compatible properties
- Add audio support for hdmi0 and hdmi1
- Adjust the properties of sdhci in alphabetical order

---
 arch/arm64/boot/dts/rockchip/Makefile         |    1 +
 .../arm64/boot/dts/rockchip/rk3588-roc-rt.dts | 1136 +++++++++++++++++
 2 files changed, 1137 insertions(+)
 create mode 100644 arch/arm64/boot/dts/rockchip/rk3588-roc-rt.dts
arch/arm64/boot/dts/rockchip/Makefile +1 -0
index 9d56d4146b20..ad684e3831bc 100644
@@ -181,6 +181,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-orangepi-5-max.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-orangepi-5-plus.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-orangepi-5-ultra.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-quartzpro64.dtb
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-roc-rt.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-rock-5-itx.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-rock-5b.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-rock-5b-pcie-ep.dtbo
arch/arm64/boot/dts/rockchip/rk3588-roc-rt.dts new file +1136 -0

1,136 lines not on this page · raw message

Signature · 1 line
2.25.1
#6 lore raw

Re: [PATCH v2 2/2] arm64: dts: rockchip: Add devicetree for the ROC-RK3588-RT

Quoted 1 line

- 2x Gigabit Ethernet, 1x 2.5G Ethernet

I actually only see the 2x 1G. Is the 2.5G not supported yet?

arch/arm64/boot/dts/rockchip/rk3588-roc-rt.dts line 305

Quoted 11 lines

+&gmac0 {

arch/arm64/boot/dts/rockchip/rk3588-roc-rt.dts new file +10 -0
+	clock_in_out = "output";
+	phy-handle = <&rgmii_phy0>;
+	phy-mode = "rgmii-rxid";
+	pinctrl-names = "default";
+	pinctrl-0 = <&gmac0_miim
+		     &gmac0_tx_bus2
+		     &gmac0_rx_bus2
+		     &gmac0_rgmii_clk
+		     &gmac0_rgmii_bus>;
+	tx_delay = <0x47>;

What happened about my comment that "rgmii-rxid" is probably wrong?

If you think it is correct, you should reply with a justification. Maybe PCB is very odd? In which case, a comment would be good to explain who it is odd.

Andrew

author
#7 lore raw

Re: [PATCH v2 2/2] arm64: dts: rockchip: Add devicetree for the ROC-RK3588-RT

hi,
I'm very sorry. Due to the default configuration of my email, I didn't receive your email normally. I have fixed this issue.

Quoted 3 lines · Andrew Lunn
Quoted 1 line

- 2x Gigabit Ethernet, 1x 2.5G Ethernet

I actually only see the 2x 1G. Is the 2.5G not supported yet?

The 2.5G Ethernet is based on the Realtek RTL8125 network controller of PCIe 2.0x1.

+&combphy0_ps {
+ status = "okay";
+};

[snip]

+&pcie2x1l2 {

+       pinctrl-names = "default";
+       pinctrl-0 = <&pcie2_2_rst>;
+       reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>;
+       status = "okay";

+};

Quoted 15 lines

arch/arm64/boot/dts/rockchip/rk3588-roc-rt.dts line 305

Quoted 12 lines

+&gmac0 {

arch/arm64/boot/dts/rockchip/rk3588-roc-rt.dts new file +10 -0
+	clock_in_out = "output";
+	phy-handle = <&rgmii_phy0>;
+	phy-mode = "rgmii-rxid";
+	pinctrl-names = "default";
+	pinctrl-0 = <&gmac0_miim
+		     &gmac0_tx_bus2
+		     &gmac0_rx_bus2
+		     &gmac0_rgmii_clk
+		     &gmac0_rgmii_bus>;
+	tx_delay = <0x47>;

What happened about my comment that "rgmii-rxid" is probably wrong?

Quoted 3 lines

If you think it is correct, you should reply with a justification. Maybe PCB is very odd? In which case, a comment would be good to explain who it is odd.

The Ethernet part of the board is designed with reference to the rockchip evb1 board.

link:
https://github.com/Firefly-rk-linux/docs/blob/rk3588/firefly-public/en/Common/GMAC/Rockchip_Developer_Guide_Linux_GMAC_RGMII_Delayline_EN.pdf

The document describes the usage of the rgmii-rxid mode:

When the hardware enables the RX delay of the PHY. Need to turn off the RX delay of the GMAC, and the dts configuration mode becomes "rgmii- rxid".

Quoted 3 lines

Andrew

Kaison

#8 lore raw

Re: [PATCH v2 2/2] arm64: dts: rockchip: Add devicetree for the ROC-RK3588-RT

Quoted 10 lines · Kaison

hi,
I'm very sorry. Due to the default configuration of my email, I didn't receive your email normally. I have fixed this issue.

Quoted 3 lines · Andrew Lunn
Quoted 1 line

- 2x Gigabit Ethernet, 1x 2.5G Ethernet

I actually only see the 2x 1G. Is the 2.5G not supported yet?

The 2.5G Ethernet is based on the Realtek RTL8125 network controller of PCIe 2.0x1.

Ah, O.K. Maybe add a comment, because i was looking for something integrated into the SoC, not a PCIe device.

Quoted 24 lines
Quoted 14 lines

arch/arm64/boot/dts/rockchip/rk3588-roc-rt.dts line 305

Quoted 11 lines

+&gmac0 {

arch/arm64/boot/dts/rockchip/rk3588-roc-rt.dts new file +10 -0
+	clock_in_out = "output";
+	phy-handle = <&rgmii_phy0>;
+	phy-mode = "rgmii-rxid";
+	pinctrl-names = "default";
+	pinctrl-0 = <&gmac0_miim
+		     &gmac0_tx_bus2
+		     &gmac0_rx_bus2
+		     &gmac0_rgmii_clk
+		     &gmac0_rgmii_bus>;
+	tx_delay = <0x47>;

What happened about my comment that "rgmii-rxid" is probably wrong?

Quoted 3 lines

If you think it is correct, you should reply with a justification. Maybe PCB is very odd? In which case, a comment would be good to explain who it is odd.

The Ethernet part of the board is designed with reference to the rockchip evb1 board.

link:
https://github.com/Firefly-rk-linux/docs/blob/rk3588/firefly-public/en/Common/GMAC/Rockchip_Developer_Guide_Linux_GMAC_RGMII_Delayline_EN.pdf

Quoted 5 lines

The document describes the usage of the rgmii-rxid mode:

When the hardware enables the RX delay of the PHY. Need to turn off the RX delay of the GMAC, and the dts configuration mode becomes "rgmii- rxid".

Vendors get this wrong as well, and give you bad advice. Please look at:

https://elixir.bootlin.com/linux/v6.16.5/source/Documentation/devicetree/bindings/net/ethernet-controller.yaml#L264

Andrew