Thread (26 messages) 26 messages, 7 authors, 2026-01-08

Re: [PATCH v2 2/2] arm64: dts: rockchip: Add rk3576 evb2 board

From: Chaoyi Chen <hidden>
Date: 2026-01-07 10:26:13
Also in: linux-devicetree, linux-rockchip, lkml

Hi Alexey,

On 1/7/2026 3:56 PM, Alexey Charkov wrote:
Hi Chaoyi,

On Wed, Jan 7, 2026 at 11:04 AM Chaoyi Chen [off-list ref] wrote:
quoted
From: Chaoyi Chen <redacted>

General features for rk3576 evb2 board:
    - Rockchip RK3576
    - LPDDR4/4X
    - eMMC5.1
    - RK806-2x2pcs + DiscretePower
    - 1x HDMI2.1 TX / HDMI2.0 RX
    - 1x full size DP1.4 TX (Only 2 Lanes)
    - 2x 10/100/1000M Ethernet
    - 5x SATA3.0 7Pin Slot
    - 2x USB3.2 Gen1 Host
    - 3x USB2.0 Host
    - WIFI/BT
    - ...

Tested with eMMC/SDMMC/HDMI/USB/Ethernet/WIFI/BT module.

Signed-off-by: Chaoyi Chen <redacted>
---

Changes in v2:
- Enable hdmi_sound and sai6.
- Add more cpu-supply.
- Use regulator to control sata power.
- Remove "cap-mmc-highspeed" prop in sdmmc.
- Add regulator supply for ufshc.
- Add the missing vcc3v3_hubreset regulator.
- Add otg capability for usb_drd0_dwc3.

 arch/arm64/boot/dts/rockchip/Makefile         |   1 +
 .../boot/dts/rockchip/rk3576-evb2-v10.dts     | 997 ++++++++++++++++++
 2 files changed, 998 insertions(+)
 create mode 100644 arch/arm64/boot/dts/rockchip/rk3576-evb2-v10.dts
diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile
index c7617e06e1c1..cff95657d406 100644
--- a/arch/arm64/boot/dts/rockchip/Makefile
+++ b/arch/arm64/boot/dts/rockchip/Makefile
@@ -153,6 +153,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-wolfvision-pf5-io-expander.dtbo
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3576-armsom-sige5.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3576-armsom-sige5-v1.2-wifibt.dtbo
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3576-evb1-v10.dtb
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3576-evb2-v10.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3576-luckfox-omni3576.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3576-nanopi-m5.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3576-roc-pc.dtb
diff --git a/arch/arm64/boot/dts/rockchip/rk3576-evb2-v10.dts b/arch/arm64/boot/dts/rockchip/rk3576-evb2-v10.dts
new file mode 100644
index 000000000000..52788c514ec0
--- /dev/null
+++ b/arch/arm64/boot/dts/rockchip/rk3576-evb2-v10.dts
@@ -0,0 +1,997 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2025 Rockchip Electronics Co., Ltd.
+ *
+ */
+
+/dts-v1/;
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/pinctrl/rockchip.h>
+#include <dt-bindings/soc/rockchip,vop2.h>
+#include "rk3576.dtsi"
+
+/ {
+       model = "Rockchip RK3576 EVB2 V10 Board";
+       compatible = "rockchip,rk3576-evb2-v10", "rockchip,rk3576";
+
+       aliases {
+               ethernet0 = &gmac0;
+               ethernet1 = &gmac1;
+       };
+
+       chosen: chosen {
+               stdout-path = "serial0:1500000n8";
+       };
+
+       adc_keys: adc-keys {
+               compatible = "adc-keys";
+               io-channels = <&saradc 1>;
+               io-channel-names = "buttons";
+               keyup-threshold-microvolt = <1800000>;
+               poll-interval = <100>;
+
+               button-back {
+                       label = "back";
+                       linux,code = <KEY_BACK>;
+                       press-threshold-microvolt = <1235000>;
+               };
+
+               button-menu {
+                       label = "menu";
+                       linux,code = <KEY_MENU>;
+                       press-threshold-microvolt = <890000>;
+               };
+
+               button-vol-down {
+                       label = "volume down";
+                       linux,code = <KEY_VOLUMEDOWN>;
+                       press-threshold-microvolt = <417000>;
+               };
+
+               button-vol-up {
+                       label = "volume up";
+                       linux,code = <KEY_VOLUMEUP>;
+                       press-threshold-microvolt = <17000>;
+               };
+       };
+
+       hdmi-con {
+               compatible = "hdmi-connector";
+               type = "a";
+
+               port {
+                       hdmi_con_in: endpoint {
+                               remote-endpoint = <&hdmi_out_con>;
+                       };
+               };
+       };
+
+       leds: leds {
+               compatible = "gpio-leds";
+
+               work_led: led-0 {
+                       gpios = <&gpio0 RK_PB4 GPIO_ACTIVE_HIGH>;
+                       linux,default-trigger = "heartbeat";
+               };
+       };
+
+       sdio_pwrseq: sdio-pwrseq {
+               compatible = "mmc-pwrseq-simple";
+               pinctrl-names = "default";
+               pinctrl-0 = <&wifi_pwren>;
+
+               /*
+                * On the module itself this is one of these (depending
+                * on the actual card populated):
+                * - SDIO_RESET_L_WL_REG_ON
+                * - PDN (power down when low)
+                */
+               post-power-on-delay-ms = <200>;
+               reset-gpios = <&gpio1 RK_PC6 GPIO_ACTIVE_LOW>;
+       };
+
+       vbus5v0_typec: regulator-vbus5v0-typec {
+               compatible = "regulator-fixed";
+               regulator-name = "vbus5v0_typec";
This might better be renamed, given that last time you mentioned this
board doesn't have a Type-C connector. Perhaps regulator-vbus5v0-otg?
Sorry, I missed this part. I will fix it in v3.
quoted
+               regulator-min-microvolt = <5000000>;
+               regulator-max-microvolt = <5000000>;
+               enable-active-high;
+               gpio = <&gpio0 RK_PD1 GPIO_ACTIVE_HIGH>;
+               vin-supply = <&vcc5v0_device>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&usb_otg0_pwren>;
+       };
+
+       vcc12v_dcin: regulator-vcc12v-dcin {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc12v_dcin";
+               regulator-always-on;
+               regulator-boot-on;
+               regulator-min-microvolt = <12000000>;
+               regulator-max-microvolt = <12000000>;
+       };
+
+       vcc1v2_ufs_vccq_s0: regulator-vcc1v2-ufs-vccq-s0 {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc1v2_ufs_vccq_s0";
+               regulator-boot-on;
+               regulator-always-on;
+               regulator-min-microvolt = <1200000>;
+               regulator-max-microvolt = <1200000>;
+               vin-supply = <&vcc_sys>;
+       };
+
+       vcc1v8_ufs_vccq2_s0: regulator-vcc1v8-ufs-vccq2-s0 {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc1v8_ufs_vccq2_s0";
+               regulator-boot-on;
+               regulator-always-on;
+               regulator-min-microvolt = <1800000>;
+               regulator-max-microvolt = <1800000>;
+               vin-supply = <&vcc_1v8_s3>;
+       };
+
+       vcc3v3_hubreset: vcc3v3-hubreset {
+               compatible = "regulator-fixed";
+               regulator-name = "vcc3v3_hubreset";
+               regulator-boot-on;
+               regulator-always-on;
If this regulator supplies a soldered-on discrete hub and is required
to power it up, won't it be better to describe the hub in the device
tree (see binding at [1]), make the regulator its supply, and perhaps
drop the "regulator-boot-on/regulator-always-on" annotation here,
letting the regulator core deal with its enabling instead?

[1] https://github.com/torvalds/linux/blob/master/Documentation/devicetree/bindings/usb/usb-device.yaml
Yes. I will try to do this in v3. Thank you!
[snip]

Other than these, LGTM - thanks for addressing my comments from v1!
Feel free to include my:

Reviewed-by: Alexey Charkov <alchark@gmail.com>

Best regards,
Alexey
-- 
Best, 
Chaoyi
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help