Devicetree
 help / color / mirror / Atom feed
* [PATCH 00/12] arm64: dts: rockchip: Add NanoPi M6 board
@ 2026-07-02 22:07 Joachim Eastwood via B4 Relay
  2026-07-02 22:07 ` [PATCH 01/12] dt-bindings: arm: rockchip: add FriendlyElec NanoPi M6 Joachim Eastwood via B4 Relay
                   ` (12 more replies)
  0 siblings, 13 replies; 21+ messages in thread
From: Joachim Eastwood via B4 Relay @ 2026-07-02 22:07 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Heiko Stuebner
  Cc: devicetree, linux-arm-kernel, linux-rockchip, Joachim Eastwood

This patch series add support for the NanoPi M6. This board is very
similar to the NanoPi R6C and R6S boards which are already supported.

Main differences:
* M.2 M-key slot with PCIe (Also present on R6C)
* M.2 E-key slot with PCIe and USB (from hub)
* 1 additional USB 2.0 port from an on-board USB hub
* RT5616 audio CODEC

Patch 2 and 3 moves a bit code around. Please let me know if those two
should be squashed together.
Next few patches adds some missing bits the common nanopi dtsi file.
While the final patch adds support for NanoPi M6.

All changes have been verified using the schematics for M6, R6C and R6S.
Only M6 have been boot and runtime tested. Tester for R6x are welcome.

Signed-off-by: Joachim Eastwood <joachim.eastwood@gmail.com>
---
Joachim Eastwood (12):
      dt-bindings: arm: rockchip: add FriendlyElec NanoPi M6
      arm64: dts: rockchip: refactor rk3588s-nanopi* to support M6
      arm64: dts: rockchip: move NanoPi R6 code into common dtsi
      arm64: dts: rockchip: rk3588s-nanopi: add missing sdmmc cd pinctrl
      arm64: dts: rockchip: rk3588s-nanopi: remove pull up on rtc int pin
      arm64: dts: rockchip: rk3588s-nanopi: add missing pcie rst pinctrl
      arm64: dts: rockchip: rk3588s-nanopi: pcie2x1l2: add clkreq
      arm64: dts: rockchip: rk3588s-nanopi: remove always-on from vdd_npu_s0 reg
      arm64: dts: rockchip: rk3588s-nanopi: remove useless vcc_3v3_pcie20
      arm64: dts: rockchip: rk3588s-nanopi: add gmac1 add phy-supply
      arm64: dts: rockchip: rk3588s-nanopi: remove bogus vcc5v0_usb regulator
      arm64: dts: rockchip: add support for NanoPi M6 board

 .../devicetree/bindings/arm/rockchip.yaml          |   3 +-
 arch/arm64/boot/dts/rockchip/Makefile              |   1 +
 arch/arm64/boot/dts/rockchip/rk3588s-nanopi-m6.dts | 200 ++++++
 .../arm64/boot/dts/rockchip/rk3588s-nanopi-r6.dtsi | 792 --------------------
 .../arm64/boot/dts/rockchip/rk3588s-nanopi-r6c.dts |   1 +
 .../arm64/boot/dts/rockchip/rk3588s-nanopi-r6s.dts |   1 +
 arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi   | 800 +++++++++++++++++++++
 7 files changed, 1005 insertions(+), 793 deletions(-)
---
base-commit: dc59e4fea9d83f03bad6bddf3fa2e52491777482
change-id: 20260701-nanopi-m6-ffeef7252fd7

Best regards,
--  
Joachim Eastwood <joachim.eastwood@gmail.com>



^ permalink raw reply	[flat|nested] 21+ messages in thread

* [PATCH 01/12] dt-bindings: arm: rockchip: add FriendlyElec NanoPi M6
  2026-07-02 22:07 [PATCH 00/12] arm64: dts: rockchip: Add NanoPi M6 board Joachim Eastwood via B4 Relay
@ 2026-07-02 22:07 ` Joachim Eastwood via B4 Relay
  2026-07-03 10:57   ` Krzysztof Kozlowski
  2026-07-02 22:07 ` [PATCH 02/12] arm64: dts: rockchip: refactor rk3588s-nanopi* to support M6 Joachim Eastwood via B4 Relay
                   ` (11 subsequent siblings)
  12 siblings, 1 reply; 21+ messages in thread
From: Joachim Eastwood via B4 Relay @ 2026-07-02 22:07 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Heiko Stuebner
  Cc: devicetree, linux-arm-kernel, linux-rockchip, Joachim Eastwood

From: Joachim Eastwood <joachim.eastwood@gmail.com>

Add device tree binding documentation for FriendlyElec NanoPi M6,
a single-board computer based on the Rockchip RK3588S SoC. Very
similar to NanoPi R6C and R6S.

Signed-off-by: Joachim Eastwood <joachim.eastwood@gmail.com>
---
 Documentation/devicetree/bindings/arm/rockchip.yaml | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/arm/rockchip.yaml b/Documentation/devicetree/bindings/arm/rockchip.yaml
index 1a9dde18626d..6ba512964c25 100644
--- a/Documentation/devicetree/bindings/arm/rockchip.yaml
+++ b/Documentation/devicetree/bindings/arm/rockchip.yaml
@@ -344,9 +344,10 @@ properties:
               - friendlyarm,nanopi-r5s
           - const: rockchip,rk3568
 
-      - description: FriendlyElec NanoPi R6 series boards
+      - description: FriendlyElec NanoPi6 series boards
         items:
           - enum:
+              - friendlyarm,nanopi-m6
               - friendlyarm,nanopi-r6c
               - friendlyarm,nanopi-r6s
           - const: rockchip,rk3588s

-- 
2.55.0



^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 02/12] arm64: dts: rockchip: refactor rk3588s-nanopi* to support M6
  2026-07-02 22:07 [PATCH 00/12] arm64: dts: rockchip: Add NanoPi M6 board Joachim Eastwood via B4 Relay
  2026-07-02 22:07 ` [PATCH 01/12] dt-bindings: arm: rockchip: add FriendlyElec NanoPi M6 Joachim Eastwood via B4 Relay
@ 2026-07-02 22:07 ` Joachim Eastwood via B4 Relay
  2026-07-02 22:07 ` [PATCH 03/12] arm64: dts: rockchip: move NanoPi R6 code into common dtsi Joachim Eastwood via B4 Relay
                   ` (10 subsequent siblings)
  12 siblings, 0 replies; 21+ messages in thread
From: Joachim Eastwood via B4 Relay @ 2026-07-02 22:07 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Heiko Stuebner
  Cc: devicetree, linux-arm-kernel, linux-rockchip, Joachim Eastwood

From: Joachim Eastwood <joachim.eastwood@gmail.com>

Refactor FriendlyElec NanoPi R6 boards based on RK3588S SoC in
preparation to add support the NanoPi M6 board.

Signed-off-by: Joachim Eastwood <joachim.eastwood@gmail.com>
---
 arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6c.dts                     | 2 +-
 arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6s.dts                     | 2 +-
 .../boot/dts/rockchip/{rk3588s-nanopi-r6.dtsi => rk3588s-nanopi.dtsi}   | 0
 3 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6c.dts b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6c.dts
index ccc5e4627517..77fef2662ca5 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6c.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6c.dts
@@ -2,7 +2,7 @@
 
 /dts-v1/;
 
-#include "rk3588s-nanopi-r6.dtsi"
+#include "rk3588s-nanopi.dtsi"
 
 / {
 	model = "FriendlyElec NanoPi R6C";
diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6s.dts b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6s.dts
index 9c3e0b0daaac..f8993418a122 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6s.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6s.dts
@@ -2,7 +2,7 @@
 
 /dts-v1/;
 
-#include "rk3588s-nanopi-r6.dtsi"
+#include "rk3588s-nanopi.dtsi"
 
 / {
 	model = "FriendlyElec NanoPi R6S";
diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6.dtsi b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi
similarity index 100%
rename from arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6.dtsi
rename to arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi

-- 
2.55.0



^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 03/12] arm64: dts: rockchip: move NanoPi R6 code into common dtsi
  2026-07-02 22:07 [PATCH 00/12] arm64: dts: rockchip: Add NanoPi M6 board Joachim Eastwood via B4 Relay
  2026-07-02 22:07 ` [PATCH 01/12] dt-bindings: arm: rockchip: add FriendlyElec NanoPi M6 Joachim Eastwood via B4 Relay
  2026-07-02 22:07 ` [PATCH 02/12] arm64: dts: rockchip: refactor rk3588s-nanopi* to support M6 Joachim Eastwood via B4 Relay
@ 2026-07-02 22:07 ` Joachim Eastwood via B4 Relay
  2026-07-02 22:07 ` [PATCH 04/12] arm64: dts: rockchip: rk3588s-nanopi: add missing sdmmc cd pinctrl Joachim Eastwood via B4 Relay
                   ` (9 subsequent siblings)
  12 siblings, 0 replies; 21+ messages in thread
From: Joachim Eastwood via B4 Relay @ 2026-07-02 22:07 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Heiko Stuebner
  Cc: devicetree, linux-arm-kernel, linux-rockchip, Joachim Eastwood

From: Joachim Eastwood <joachim.eastwood@gmail.com>

Move NanoPi R6C and R6S specific DT into its own file.

Signed-off-by: Joachim Eastwood <joachim.eastwood@gmail.com>
---
 .../arm64/boot/dts/rockchip/rk3588s-nanopi-r6.dtsi | 96 ++++++++++++++++++++++
 .../arm64/boot/dts/rockchip/rk3588s-nanopi-r6c.dts |  1 +
 .../arm64/boot/dts/rockchip/rk3588s-nanopi-r6s.dts |  1 +
 arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi   | 89 --------------------
 4 files changed, 98 insertions(+), 89 deletions(-)

diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6.dtsi b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6.dtsi
new file mode 100644
index 000000000000..2f8c580afc2b
--- /dev/null
+++ b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6.dtsi
@@ -0,0 +1,96 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+/ {
+	gpio-keys {
+		compatible = "gpio-keys";
+		pinctrl-names = "default";
+		pinctrl-0 = <&key1_pin>;
+
+		button-user {
+			label = "User";
+			linux,code = <BTN_1>;
+			gpios = <&gpio1 RK_PC0 GPIO_ACTIVE_LOW>;
+			debounce-interval = <50>;
+		};
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		sys_led: led-0 {
+			label = "sys_led";
+			gpios = <&gpio1 RK_PC1 GPIO_ACTIVE_HIGH>;
+			linux,default-trigger = "heartbeat";
+			pinctrl-names = "default";
+			pinctrl-0 = <&sys_led_pin>;
+		};
+
+		wan_led: led-1 {
+			label = "wan_led";
+			gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_HIGH>;
+			pinctrl-names = "default";
+			pinctrl-0 = <&wan_led_pin>;
+		};
+
+		lan1_led: led-2 {
+			label = "lan1_led";
+			gpios = <&gpio1 RK_PC3 GPIO_ACTIVE_HIGH>;
+			pinctrl-names = "default";
+			pinctrl-0 = <&lan1_led_pin>;
+		};
+
+		lan2_led: led-3 {
+			gpios = <&gpio1 RK_PC4 GPIO_ACTIVE_HIGH>;
+			pinctrl-names = "default";
+			pinctrl-0 = <&lan2_led_pin>;
+		};
+	};
+
+	vcc5v0_usb_otg0: regulator-vcc5v0-usb-otg0 {
+		compatible = "regulator-fixed";
+		enable-active-high;
+		gpios = <&gpio1 RK_PD2 GPIO_ACTIVE_HIGH>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&typec5v_pwren>;
+		regulator-name = "vcc5v0_usb_otg0";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		vin-supply = <&vcc5v0_usb>;
+	};
+};
+
+&pinctrl {
+	gpio-key {
+		key1_pin: key1-pin {
+			rockchip,pins = <1 RK_PC0 RK_FUNC_GPIO &pcfg_pull_up>;
+		};
+	};
+
+	gpio-leds {
+		sys_led_pin: sys-led-pin {
+			rockchip,pins =
+				<1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
+		};
+
+		wan_led_pin: wan-led-pin {
+			rockchip,pins =
+				<1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
+		};
+
+		lan1_led_pin: lan1-led-pin {
+			rockchip,pins =
+				<1 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>;
+		};
+
+		lan2_led_pin: lan2-led-pin {
+			rockchip,pins =
+				<1 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>;
+		};
+	};
+
+	usb {
+		typec5v_pwren: typec5v-pwren {
+			rockchip,pins = <1 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
+		};
+	};
+};
diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6c.dts b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6c.dts
index 77fef2662ca5..90922c55da37 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6c.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6c.dts
@@ -3,6 +3,7 @@
 /dts-v1/;
 
 #include "rk3588s-nanopi.dtsi"
+#include "rk3588s-nanopi-r6.dtsi"
 
 / {
 	model = "FriendlyElec NanoPi R6C";
diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6s.dts b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6s.dts
index f8993418a122..8b318561342c 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6s.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6s.dts
@@ -3,6 +3,7 @@
 /dts-v1/;
 
 #include "rk3588s-nanopi.dtsi"
+#include "rk3588s-nanopi-r6.dtsi"
 
 / {
 	model = "FriendlyElec NanoPi R6S";
diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi
index 91b6eefd7abf..d41c49716fa2 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi
@@ -33,19 +33,6 @@ button-maskrom {
 		};
 	};
 
-	gpio-keys {
-		compatible = "gpio-keys";
-		pinctrl-names = "default";
-		pinctrl-0 = <&key1_pin>;
-
-		button-user {
-			label = "User";
-			linux,code = <BTN_1>;
-			gpios = <&gpio1 RK_PC0 GPIO_ACTIVE_LOW>;
-			debounce-interval = <50>;
-		};
-	};
-
 	hdmi-con {
 		compatible = "hdmi-connector";
 		type = "a";
@@ -57,38 +44,6 @@ hdmi_con_in: endpoint {
 		};
 	};
 
-	leds {
-		compatible = "gpio-leds";
-
-		sys_led: led-0 {
-			label = "sys_led";
-			gpios = <&gpio1 RK_PC1 GPIO_ACTIVE_HIGH>;
-			linux,default-trigger = "heartbeat";
-			pinctrl-names = "default";
-			pinctrl-0 = <&sys_led_pin>;
-		};
-
-		wan_led: led-1 {
-			label = "wan_led";
-			gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_HIGH>;
-			pinctrl-names = "default";
-			pinctrl-0 = <&wan_led_pin>;
-		};
-
-		lan1_led: led-2 {
-			label = "lan1_led";
-			gpios = <&gpio1 RK_PC3 GPIO_ACTIVE_HIGH>;
-			pinctrl-names = "default";
-			pinctrl-0 = <&lan1_led_pin>;
-		};
-
-		lan2_led: led-3 {
-			gpios = <&gpio1 RK_PC4 GPIO_ACTIVE_HIGH>;
-			pinctrl-names = "default";
-			pinctrl-0 = <&lan2_led_pin>;
-		};
-	};
-
 	vcc5v0_sys: regulator-vcc5v0-sys {
 		compatible = "regulator-fixed";
 		regulator-name = "vcc5v0_sys";
@@ -151,18 +106,6 @@ vcc5v0_usb: regulator-vcc5v0-usb {
 		vin-supply = <&vcc5v0_sys>;
 	};
 
-	vcc5v0_usb_otg0: regulator-vcc5v0-usb-otg0 {
-		compatible = "regulator-fixed";
-		enable-active-high;
-		gpios = <&gpio1 RK_PD2 GPIO_ACTIVE_HIGH>;
-		pinctrl-names = "default";
-		pinctrl-0 = <&typec5v_pwren>;
-		regulator-name = "vcc5v0_usb_otg0";
-		regulator-min-microvolt = <5000000>;
-		regulator-max-microvolt = <5000000>;
-		vin-supply = <&vcc5v0_usb>;
-	};
-
 	vcc5v0_host_20: regulator-vcc5v0-host-20 {
 		compatible = "regulator-fixed";
 		enable-active-high;
@@ -380,34 +323,6 @@ &pd_npu {
 };
 
 &pinctrl {
-	gpio-key {
-		key1_pin: key1-pin {
-			rockchip,pins = <1 RK_PC0 RK_FUNC_GPIO &pcfg_pull_up>;
-		};
-	};
-
-	gpio-leds {
-		sys_led_pin: sys-led-pin {
-			rockchip,pins =
-				<1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>;
-		};
-
-		wan_led_pin: wan-led-pin {
-			rockchip,pins =
-				<1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>;
-		};
-
-		lan1_led_pin: lan1-led-pin {
-			rockchip,pins =
-				<1 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>;
-		};
-
-		lan2_led_pin: lan2-led-pin {
-			rockchip,pins =
-				<1 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>;
-		};
-	};
-
 	hdmi {
 		hdmi0_tx_on_h: hdmi0-tx-on-h {
 			rockchip,pins = <4 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
@@ -427,10 +342,6 @@ sd_s0_pwr: sd-s0-pwr {
 	};
 
 	usb {
-		typec5v_pwren: typec5v-pwren {
-			rockchip,pins = <1 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
-		};
-
 		vcc5v0_host20_en: vcc5v0-host20-en {
 			rockchip,pins = <4 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
 		};

-- 
2.55.0



^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 04/12] arm64: dts: rockchip: rk3588s-nanopi: add missing sdmmc cd pinctrl
  2026-07-02 22:07 [PATCH 00/12] arm64: dts: rockchip: Add NanoPi M6 board Joachim Eastwood via B4 Relay
                   ` (2 preceding siblings ...)
  2026-07-02 22:07 ` [PATCH 03/12] arm64: dts: rockchip: move NanoPi R6 code into common dtsi Joachim Eastwood via B4 Relay
@ 2026-07-02 22:07 ` Joachim Eastwood via B4 Relay
  2026-07-02 22:07 ` [PATCH 05/12] arm64: dts: rockchip: rk3588s-nanopi: remove pull up on rtc int pin Joachim Eastwood via B4 Relay
                   ` (8 subsequent siblings)
  12 siblings, 0 replies; 21+ messages in thread
From: Joachim Eastwood via B4 Relay @ 2026-07-02 22:07 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Heiko Stuebner
  Cc: devicetree, linux-arm-kernel, linux-rockchip, Joachim Eastwood

From: Joachim Eastwood <joachim.eastwood@gmail.com>

The cd (card detect) pin is used, but not reserved through pinctrl.

Signed-off-by: Joachim Eastwood <joachim.eastwood@gmail.com>
---
 arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi
index d41c49716fa2..a8f32b994b10 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi
@@ -336,6 +336,10 @@ rtc_int: rtc-int {
 	};
 
 	sdmmc {
+		sdmmc_det_pin: sdmmc-det-pin {
+			rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
+		};
+
 		sd_s0_pwr: sd-s0-pwr {
 			rockchip,pins = <4 RK_PB4 RK_FUNC_GPIO &pcfg_pull_up>;
 		};
@@ -407,6 +411,8 @@ &sdmmc {
 	no-mmc;
 	no-sdio;
 	sd-uhs-sdr104;
+	pinctrl-names = "default";
+	pinctrl-0 = <&sdmmc_bus4 &sdmmc_clk &sdmmc_cmd &sdmmc_det_pin>;
 	vmmc-supply = <&vcc_3v3_sd_s0>;
 	vqmmc-supply = <&vccio_sd_s0>;
 	status = "okay";

-- 
2.55.0



^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 05/12] arm64: dts: rockchip: rk3588s-nanopi: remove pull up on rtc int pin
  2026-07-02 22:07 [PATCH 00/12] arm64: dts: rockchip: Add NanoPi M6 board Joachim Eastwood via B4 Relay
                   ` (3 preceding siblings ...)
  2026-07-02 22:07 ` [PATCH 04/12] arm64: dts: rockchip: rk3588s-nanopi: add missing sdmmc cd pinctrl Joachim Eastwood via B4 Relay
@ 2026-07-02 22:07 ` Joachim Eastwood via B4 Relay
  2026-07-02 22:07 ` [PATCH 06/12] arm64: dts: rockchip: rk3588s-nanopi: add missing pcie rst pinctrl Joachim Eastwood via B4 Relay
                   ` (7 subsequent siblings)
  12 siblings, 0 replies; 21+ messages in thread
From: Joachim Eastwood via B4 Relay @ 2026-07-02 22:07 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Heiko Stuebner
  Cc: devicetree, linux-arm-kernel, linux-rockchip, Joachim Eastwood

From: Joachim Eastwood <joachim.eastwood@gmail.com>

All boards in the RK3588S NanoPi familiy has a pull on the PCB for the
RTC interrupt pin. So there is no need to enable the pull-up in the SoC.

Signed-off-by: Joachim Eastwood <joachim.eastwood@gmail.com>
---
 arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi
index a8f32b994b10..f3a240b48a2a 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi
@@ -331,7 +331,7 @@ hdmi0_tx_on_h: hdmi0-tx-on-h {
 
 	hym8563 {
 		rtc_int: rtc-int {
-			rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_up>;
+			rockchip,pins = <0 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
 		};
 	};
 

-- 
2.55.0



^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 06/12] arm64: dts: rockchip: rk3588s-nanopi: add missing pcie rst pinctrl
  2026-07-02 22:07 [PATCH 00/12] arm64: dts: rockchip: Add NanoPi M6 board Joachim Eastwood via B4 Relay
                   ` (4 preceding siblings ...)
  2026-07-02 22:07 ` [PATCH 05/12] arm64: dts: rockchip: rk3588s-nanopi: remove pull up on rtc int pin Joachim Eastwood via B4 Relay
@ 2026-07-02 22:07 ` Joachim Eastwood via B4 Relay
  2026-07-02 22:07 ` [PATCH 07/12] arm64: dts: rockchip: rk3588s-nanopi: pcie2x1l2: add clkreq Joachim Eastwood via B4 Relay
                   ` (6 subsequent siblings)
  12 siblings, 0 replies; 21+ messages in thread
From: Joachim Eastwood via B4 Relay @ 2026-07-02 22:07 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Heiko Stuebner
  Cc: devicetree, linux-arm-kernel, linux-rockchip, Joachim Eastwood

From: Joachim Eastwood <joachim.eastwood@gmail.com>

The pins are used as reset-gpios but not reserved through pinctrl.

Signed-off-by: Joachim Eastwood <joachim.eastwood@gmail.com>
---
 arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi
index f3a240b48a2a..361682c18e69 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi
@@ -303,12 +303,16 @@ rgmii_phy1: ethernet-phy@1 {
 };
 
 &pcie2x1l1 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pcie2_1_rst>;
 	reset-gpios = <&gpio1 RK_PA7 GPIO_ACTIVE_HIGH>;
 	vpcie3v3-supply = <&vcc_3v3_pcie20>;
 	status = "okay";
 };
 
 &pcie2x1l2 {
+	pinctrl-names = "default";
+	pinctrl-0 = <&pcie2_2_rst>;
 	reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>;
 	vpcie3v3-supply = <&vcc_3v3_pcie20>;
 	status = "okay";
@@ -335,6 +339,16 @@ rtc_int: rtc-int {
 		};
 	};
 
+	pcie {
+		pcie2_1_rst: pcie2-1-rst {
+			rockchip,pins = <1 RK_PA7 RK_FUNC_GPIO &pcfg_pull_none>;
+		};
+
+		pcie2_2_rst: pcie2-2-rst {
+			rockchip,pins = <3 RK_PD1 RK_FUNC_GPIO &pcfg_pull_none>;
+		};
+	};
+
 	sdmmc {
 		sdmmc_det_pin: sdmmc-det-pin {
 			rockchip,pins = <0 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;

-- 
2.55.0



^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 07/12] arm64: dts: rockchip: rk3588s-nanopi: pcie2x1l2: add clkreq
  2026-07-02 22:07 [PATCH 00/12] arm64: dts: rockchip: Add NanoPi M6 board Joachim Eastwood via B4 Relay
                   ` (5 preceding siblings ...)
  2026-07-02 22:07 ` [PATCH 06/12] arm64: dts: rockchip: rk3588s-nanopi: add missing pcie rst pinctrl Joachim Eastwood via B4 Relay
@ 2026-07-02 22:07 ` Joachim Eastwood via B4 Relay
  2026-07-02 22:07 ` [PATCH 08/12] arm64: dts: rockchip: rk3588s-nanopi: remove always-on from vdd_npu_s0 reg Joachim Eastwood via B4 Relay
                   ` (5 subsequent siblings)
  12 siblings, 0 replies; 21+ messages in thread
From: Joachim Eastwood via B4 Relay @ 2026-07-02 22:07 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Heiko Stuebner
  Cc: devicetree, linux-arm-kernel, linux-rockchip, Joachim Eastwood

From: Joachim Eastwood <joachim.eastwood@gmail.com>

The clkreq is present on the board, so hook it up in DT.

Signed-off-by: Joachim Eastwood <joachim.eastwood@gmail.com>
---
 arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi
index 361682c18e69..bcb2f5d63a61 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi
@@ -312,7 +312,8 @@ &pcie2x1l1 {
 
 &pcie2x1l2 {
 	pinctrl-names = "default";
-	pinctrl-0 = <&pcie2_2_rst>;
+	pinctrl-0 = <&pcie2_2_rst>, <&pcie20x1m0_clkreqn>;
+	supports-clkreq;
 	reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>;
 	vpcie3v3-supply = <&vcc_3v3_pcie20>;
 	status = "okay";

-- 
2.55.0



^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 08/12] arm64: dts: rockchip: rk3588s-nanopi: remove always-on from vdd_npu_s0 reg
  2026-07-02 22:07 [PATCH 00/12] arm64: dts: rockchip: Add NanoPi M6 board Joachim Eastwood via B4 Relay
                   ` (6 preceding siblings ...)
  2026-07-02 22:07 ` [PATCH 07/12] arm64: dts: rockchip: rk3588s-nanopi: pcie2x1l2: add clkreq Joachim Eastwood via B4 Relay
@ 2026-07-02 22:07 ` Joachim Eastwood via B4 Relay
  2026-07-02 22:07 ` [PATCH 09/12] arm64: dts: rockchip: rk3588s-nanopi: remove useless vcc_3v3_pcie20 Joachim Eastwood via B4 Relay
                   ` (4 subsequent siblings)
  12 siblings, 0 replies; 21+ messages in thread
From: Joachim Eastwood via B4 Relay @ 2026-07-02 22:07 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Heiko Stuebner
  Cc: devicetree, linux-arm-kernel, linux-rockchip, Joachim Eastwood

From: Joachim Eastwood <joachim.eastwood@gmail.com>

Since the NPU is hooked up on these the always-on isn't needed anymore.

Signed-off-by: Joachim Eastwood <joachim.eastwood@gmail.com>
---
 arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi | 1 -
 1 file changed, 1 deletion(-)

diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi
index bcb2f5d63a61..463cfeddf270 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi
@@ -258,7 +258,6 @@ vdd_npu_s0: regulator@42 {
 		regulator-max-microvolt = <950000>;
 		regulator-ramp-delay = <2300>;
 		regulator-boot-on;
-		regulator-always-on;
 		vin-supply = <&vcc5v0_sys>;
 
 		regulator-state-mem {

-- 
2.55.0



^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 09/12] arm64: dts: rockchip: rk3588s-nanopi: remove useless vcc_3v3_pcie20
  2026-07-02 22:07 [PATCH 00/12] arm64: dts: rockchip: Add NanoPi M6 board Joachim Eastwood via B4 Relay
                   ` (7 preceding siblings ...)
  2026-07-02 22:07 ` [PATCH 08/12] arm64: dts: rockchip: rk3588s-nanopi: remove always-on from vdd_npu_s0 reg Joachim Eastwood via B4 Relay
@ 2026-07-02 22:07 ` Joachim Eastwood via B4 Relay
  2026-07-03 10:58   ` Krzysztof Kozlowski
  2026-07-02 22:07 ` [PATCH 10/12] arm64: dts: rockchip: rk3588s-nanopi: add gmac1 add phy-supply Joachim Eastwood via B4 Relay
                   ` (3 subsequent siblings)
  12 siblings, 1 reply; 21+ messages in thread
From: Joachim Eastwood via B4 Relay @ 2026-07-02 22:07 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Heiko Stuebner
  Cc: devicetree, linux-arm-kernel, linux-rockchip, Joachim Eastwood

From: Joachim Eastwood <joachim.eastwood@gmail.com>

There is no separate regulator for boards with RTL8125BG MACs.
The power is only separated from VCC_3V3_S3 with a ferrite bead.

Signed-off-by: Joachim Eastwood <joachim.eastwood@gmail.com>
---
 arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi | 14 ++------------
 1 file changed, 2 insertions(+), 12 deletions(-)

diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi
index 463cfeddf270..e4900af9822a 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi
@@ -86,16 +86,6 @@ vcc_3v3_sd_s0: regulator-vcc-3v3-sd-s0 {
 		vin-supply = <&vcc_3v3_s3>;
 	};
 
-	vcc_3v3_pcie20: regulator-vcc3v3-pcie20 {
-		compatible = "regulator-fixed";
-		regulator-name = "vcc_3v3_pcie20";
-		regulator-always-on;
-		regulator-boot-on;
-		regulator-min-microvolt = <3300000>;
-		regulator-max-microvolt = <3300000>;
-		vin-supply = <&vcc_3v3_s3>;
-	};
-
 	vcc5v0_usb: regulator-vcc5v0-usb {
 		compatible = "regulator-fixed";
 		regulator-name = "vcc5v0_usb";
@@ -305,7 +295,7 @@ &pcie2x1l1 {
 	pinctrl-names = "default";
 	pinctrl-0 = <&pcie2_1_rst>;
 	reset-gpios = <&gpio1 RK_PA7 GPIO_ACTIVE_HIGH>;
-	vpcie3v3-supply = <&vcc_3v3_pcie20>;
+	vpcie3v3-supply = <&vcc_3v3_s3>;
 	status = "okay";
 };
 
@@ -314,7 +304,7 @@ &pcie2x1l2 {
 	pinctrl-0 = <&pcie2_2_rst>, <&pcie20x1m0_clkreqn>;
 	supports-clkreq;
 	reset-gpios = <&gpio3 RK_PD1 GPIO_ACTIVE_HIGH>;
-	vpcie3v3-supply = <&vcc_3v3_pcie20>;
+	vpcie3v3-supply = <&vcc_3v3_s3>;
 	status = "okay";
 };
 

-- 
2.55.0



^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 10/12] arm64: dts: rockchip: rk3588s-nanopi: add gmac1 add phy-supply
  2026-07-02 22:07 [PATCH 00/12] arm64: dts: rockchip: Add NanoPi M6 board Joachim Eastwood via B4 Relay
                   ` (8 preceding siblings ...)
  2026-07-02 22:07 ` [PATCH 09/12] arm64: dts: rockchip: rk3588s-nanopi: remove useless vcc_3v3_pcie20 Joachim Eastwood via B4 Relay
@ 2026-07-02 22:07 ` Joachim Eastwood via B4 Relay
  2026-07-02 22:07 ` [PATCH 11/12] arm64: dts: rockchip: rk3588s-nanopi: remove bogus vcc5v0_usb regulator Joachim Eastwood via B4 Relay
                   ` (2 subsequent siblings)
  12 siblings, 0 replies; 21+ messages in thread
From: Joachim Eastwood via B4 Relay @ 2026-07-02 22:07 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Heiko Stuebner
  Cc: devicetree, linux-arm-kernel, linux-rockchip, Joachim Eastwood

From: Joachim Eastwood <joachim.eastwood@gmail.com>

The RTL8211F Ethernet phy is power from the VCC_3V3_S3 rail.

Signed-off-by: Joachim Eastwood <joachim.eastwood@gmail.com>
---
 arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi
index e4900af9822a..596b5a64c191 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi
@@ -153,6 +153,7 @@ &gmac1 {
 	clock_in_out = "output";
 	phy-handle = <&rgmii_phy1>;
 	phy-mode = "rgmii-rxid";
+	phy-supply = <&vcc_3v3_s3>;
 	pinctrl-0 = <&gmac1_miim
 		     &gmac1_tx_bus2
 		     &gmac1_rx_bus2

-- 
2.55.0



^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 11/12] arm64: dts: rockchip: rk3588s-nanopi: remove bogus vcc5v0_usb regulator
  2026-07-02 22:07 [PATCH 00/12] arm64: dts: rockchip: Add NanoPi M6 board Joachim Eastwood via B4 Relay
                   ` (9 preceding siblings ...)
  2026-07-02 22:07 ` [PATCH 10/12] arm64: dts: rockchip: rk3588s-nanopi: add gmac1 add phy-supply Joachim Eastwood via B4 Relay
@ 2026-07-02 22:07 ` Joachim Eastwood via B4 Relay
  2026-07-02 22:07 ` [PATCH 12/12] arm64: dts: rockchip: add support for NanoPi M6 board Joachim Eastwood via B4 Relay
  2026-07-03 11:30 ` [PATCH 00/12] arm64: dts: rockchip: Add " Diederik de Haas
  12 siblings, 0 replies; 21+ messages in thread
From: Joachim Eastwood via B4 Relay @ 2026-07-02 22:07 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Heiko Stuebner
  Cc: devicetree, linux-arm-kernel, linux-rockchip, Joachim Eastwood

From: Joachim Eastwood <joachim.eastwood@gmail.com>

All USB regulators (power switches) are feed from the main vcc5v0
supply. There is no regulator or switch in between.

Signed-off-by: Joachim Eastwood <joachim.eastwood@gmail.com>
---
 arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6.dtsi |  2 +-
 arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi    | 12 +-----------
 2 files changed, 2 insertions(+), 12 deletions(-)

diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6.dtsi b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6.dtsi
index 2f8c580afc2b..ff579f75d8d3 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-r6.dtsi
@@ -55,7 +55,7 @@ vcc5v0_usb_otg0: regulator-vcc5v0-usb-otg0 {
 		regulator-name = "vcc5v0_usb_otg0";
 		regulator-min-microvolt = <5000000>;
 		regulator-max-microvolt = <5000000>;
-		vin-supply = <&vcc5v0_usb>;
+		vin-supply = <&vcc5v0_sys>;
 	};
 };
 
diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi
index 596b5a64c191..43b9342bbf14 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi
@@ -86,16 +86,6 @@ vcc_3v3_sd_s0: regulator-vcc-3v3-sd-s0 {
 		vin-supply = <&vcc_3v3_s3>;
 	};
 
-	vcc5v0_usb: regulator-vcc5v0-usb {
-		compatible = "regulator-fixed";
-		regulator-name = "vcc5v0_usb";
-		regulator-always-on;
-		regulator-boot-on;
-		regulator-min-microvolt = <5000000>;
-		regulator-max-microvolt = <5000000>;
-		vin-supply = <&vcc5v0_sys>;
-	};
-
 	vcc5v0_host_20: regulator-vcc5v0-host-20 {
 		compatible = "regulator-fixed";
 		enable-active-high;
@@ -105,7 +95,7 @@ vcc5v0_host_20: regulator-vcc5v0-host-20 {
 		regulator-name = "vcc5v0_host_20";
 		regulator-min-microvolt = <5000000>;
 		regulator-max-microvolt = <5000000>;
-		vin-supply = <&vcc5v0_usb>;
+		vin-supply = <&vcc5v0_sys>;
 	};
 };
 

-- 
2.55.0



^ permalink raw reply related	[flat|nested] 21+ messages in thread

* [PATCH 12/12] arm64: dts: rockchip: add support for NanoPi M6 board
  2026-07-02 22:07 [PATCH 00/12] arm64: dts: rockchip: Add NanoPi M6 board Joachim Eastwood via B4 Relay
                   ` (10 preceding siblings ...)
  2026-07-02 22:07 ` [PATCH 11/12] arm64: dts: rockchip: rk3588s-nanopi: remove bogus vcc5v0_usb regulator Joachim Eastwood via B4 Relay
@ 2026-07-02 22:07 ` Joachim Eastwood via B4 Relay
  2026-07-03 11:34   ` Diederik de Haas
  2026-07-03 11:30 ` [PATCH 00/12] arm64: dts: rockchip: Add " Diederik de Haas
  12 siblings, 1 reply; 21+ messages in thread
From: Joachim Eastwood via B4 Relay @ 2026-07-02 22:07 UTC (permalink / raw)
  To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Heiko Stuebner
  Cc: devicetree, linux-arm-kernel, linux-rockchip, Joachim Eastwood

From: Joachim Eastwood <joachim.eastwood@gmail.com>

The NanoPi M6 board shares most of the features of the R6 boards.

Main differences:
* M.2 M-key slot with PCIe (Also present on R6C)
* M.2 E-key slot with PCIe and USB (from hub)
* 1 additional USB 2.0 port from an on-board USB hub
* RT5616 audio CODEC

Signed-off-by: Joachim Eastwood <joachim.eastwood@gmail.com>
---
 arch/arm64/boot/dts/rockchip/Makefile              |   1 +
 arch/arm64/boot/dts/rockchip/rk3588s-nanopi-m6.dts | 200 +++++++++++++++++++++
 2 files changed, 201 insertions(+)

diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile
index 761d82b4f4f2..2867830eddf8 100644
--- a/arch/arm64/boot/dts/rockchip/Makefile
+++ b/arch/arm64/boot/dts/rockchip/Makefile
@@ -218,6 +218,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-evb1-v10.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-gameforce-ace.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-indiedroid-nova.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-khadas-edge2.dtb
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-nanopi-m6.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-nanopi-r6s.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-nanopi-r6c.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-odroid-m2.dtb
diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-m6.dts b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-m6.dts
new file mode 100644
index 000000000000..64448bf55cf7
--- /dev/null
+++ b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-m6.dts
@@ -0,0 +1,200 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+
+/dts-v1/;
+
+#include "rk3588s-nanopi.dtsi"
+
+/ {
+	model = "FriendlyElec NanoPi M6";
+	compatible = "friendlyarm,nanopi-m6", "rockchip,rk3588s";
+
+	sound {
+		compatible = "simple-audio-card";
+		pinctrl-names = "default";
+		pinctrl-0 = <&hp_det>;
+
+		simple-audio-card,name = "realtek,rt5616-codec";
+		simple-audio-card,format = "i2s";
+		simple-audio-card,mclk-fs = <256>;
+
+		simple-audio-card,hp-det-gpios = <&gpio1 RK_PC4 GPIO_ACTIVE_LOW>;
+
+		simple-audio-card,widgets =
+			"Headphone", "Headphones",
+			"Microphone", "Microphone Jack";
+		simple-audio-card,routing =
+			"Headphones", "HPOL",
+			"Headphones", "HPOR",
+			"MIC1", "Microphone Jack",
+			"Microphone Jack", "micbias1";
+
+		simple-audio-card,cpu {
+			sound-dai = <&i2s0_8ch>;
+		};
+
+		simple-audio-card,codec {
+			sound-dai = <&rt5616>;
+		};
+	};
+
+	adc-keys-1 {
+		compatible = "adc-keys";
+		io-channels = <&saradc 1>;
+		io-channel-names = "buttons";
+		keyup-threshold-microvolt = <1800000>;
+		poll-interval = <100>;
+
+		button-maskrom {
+			label = "Recovery";
+			linux,code = <KEY_VENDOR>;
+			press-threshold-microvolt = <1800>;
+		};
+	};
+
+	leds {
+		compatible = "gpio-leds";
+
+		sys_led: led-0 {
+			label = "sys_led";
+			gpios = <&gpio1 RK_PA4 GPIO_ACTIVE_HIGH>;
+			linux,default-trigger = "heartbeat";
+			pinctrl-names = "default";
+			pinctrl-0 = <&sys_led_pin>;
+		};
+
+		user_led: led-1 {
+			label = "user_led";
+			gpios = <&gpio1 RK_PA6 GPIO_ACTIVE_HIGH>;
+			pinctrl-names = "default";
+			pinctrl-0 = <&user_led_pin>;
+		};
+	};
+
+	vcc_3v3_pcie: regulator-vcc-3v3-pcie {
+		compatible = "regulator-fixed";
+		enable-active-high;
+		gpios = <&gpio3 RK_PC6 GPIO_ACTIVE_HIGH>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&pcie2_2_pwren>;
+		regulator-name = "vcc_3v3_pcie";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		vin-supply = <&vcc5v0_sys>;
+	};
+
+	vcc5v0_usb_otg0: regulator-vcc5v0-usb-otg0 {
+		compatible = "regulator-fixed";
+		enable-active-high;
+		gpios = <&gpio3 RK_PD4 GPIO_ACTIVE_HIGH>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&typec5v_pwren>;
+		regulator-name = "vcc5v0_usb_otg0";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		vin-supply = <&vcc5v0_sys>;
+	};
+
+	vdd_mpcie_3v3: regulator-vdd-mpcie-3v3 {
+		compatible = "regulator-fixed";
+		/* Controlled by EXT_EN on RK806 */
+		regulator-name = "vdd_mpcie_3v3";
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		vin-supply = <&vcc5v0_sys>;
+	};
+};
+
+&i2c7 {
+	clock-frequency = <200000>;
+	status = "okay";
+
+	rt5616: codec@1b {
+		compatible = "realtek,rt5616";
+		reg = <0x1b>;
+		clocks = <&cru I2S0_8CH_MCLKOUT>;
+		clock-names = "mclk";
+		#sound-dai-cells = <0>;
+		assigned-clocks = <&cru I2S0_8CH_MCLKOUT>;
+		assigned-clock-rates = <12288000>;
+
+		port {
+			rt5616_p0_0: endpoint {
+				remote-endpoint = <&i2s0_8ch_p0_0>;
+			};
+		};
+	};
+};
+
+&i2s0_8ch {
+	pinctrl-names = "default";
+	pinctrl-0 = <&i2s0_lrck
+		     &i2s0_mclk
+		     &i2s0_sclk
+		     &i2s0_sdi0
+		     &i2s0_sdo0>;
+	status = "okay";
+
+	i2s0_8ch_p0: port {
+		i2s0_8ch_p0_0: endpoint {
+			dai-format = "i2s";
+			mclk-fs = <256>;
+			remote-endpoint = <&rt5616_p0_0>;
+		};
+	};
+};
+
+&pcie2x1l1 { /* M.2 E-key 2230 */
+	vpcie3v3-supply = <&vdd_mpcie_3v3>;
+};
+
+&pcie2x1l2 { /* M.2 M-key 2280 */
+	pinctrl-0 = <&pcie2_2_rst>, <&pcie20x1m0_clkreqn>, <&pcie20x1m0_waken>;
+	vpcie3v3-supply = <&vcc_3v3_pcie>;
+};
+
+&pinctrl {
+	gpio-leds {
+		sys_led_pin: sys-led-pin {
+			rockchip,pins = <1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
+		};
+
+		user_led_pin: user-led-pin {
+			rockchip,pins = <1 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
+		};
+	};
+
+	headphone {
+		hp_det: hp-det {
+			rockchip,pins = <1 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>;
+		};
+	};
+
+	pcie {
+		pcie2_2_pwren: pcie2-2-pwren {
+			rockchip,pins = <3 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
+		};
+	};
+
+	usb {
+		typec5v_pwren: typec5v-pwren {
+			rockchip,pins = <3 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
+		};
+	};
+};
+
+&u2phy3 {
+	status = "okay";
+};
+
+&u2phy3_host {
+	phy-supply = <&vcc5v0_host_20>;
+	status = "okay";
+};
+
+&usb_host1_ehci {
+	status = "okay";
+};
+
+&usb_host1_ohci {
+	status = "okay";
+};

-- 
2.55.0



^ permalink raw reply related	[flat|nested] 21+ messages in thread

* Re: [PATCH 01/12] dt-bindings: arm: rockchip: add FriendlyElec NanoPi M6
  2026-07-02 22:07 ` [PATCH 01/12] dt-bindings: arm: rockchip: add FriendlyElec NanoPi M6 Joachim Eastwood via B4 Relay
@ 2026-07-03 10:57   ` Krzysztof Kozlowski
  0 siblings, 0 replies; 21+ messages in thread
From: Krzysztof Kozlowski @ 2026-07-03 10:57 UTC (permalink / raw)
  To: Joachim Eastwood
  Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Heiko Stuebner,
	devicetree, linux-arm-kernel, linux-rockchip

On Fri, Jul 03, 2026 at 12:07:16AM +0200, Joachim Eastwood wrote:
> Add device tree binding documentation for FriendlyElec NanoPi M6,
> a single-board computer based on the Rockchip RK3588S SoC. Very
> similar to NanoPi R6C and R6S.
> 
> Signed-off-by: Joachim Eastwood <joachim.eastwood@gmail.com>
> ---
>  Documentation/devicetree/bindings/arm/rockchip.yaml | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)

Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>

Best regards,
Krzysztof


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH 09/12] arm64: dts: rockchip: rk3588s-nanopi: remove useless vcc_3v3_pcie20
  2026-07-02 22:07 ` [PATCH 09/12] arm64: dts: rockchip: rk3588s-nanopi: remove useless vcc_3v3_pcie20 Joachim Eastwood via B4 Relay
@ 2026-07-03 10:58   ` Krzysztof Kozlowski
  0 siblings, 0 replies; 21+ messages in thread
From: Krzysztof Kozlowski @ 2026-07-03 10:58 UTC (permalink / raw)
  To: Joachim Eastwood
  Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Heiko Stuebner,
	devicetree, linux-arm-kernel, linux-rockchip

On Fri, Jul 03, 2026 at 12:07:24AM +0200, Joachim Eastwood wrote:
> There is no separate regulator for boards with RTL8125BG MACs.
> The power is only separated from VCC_3V3_S3 with a ferrite bead.
> 
> Signed-off-by: Joachim Eastwood <joachim.eastwood@gmail.com>
> ---
>  arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi | 14 ++------------
>  1 file changed, 2 insertions(+), 12 deletions(-)

Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>

Best regards,
Krzysztof


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH 00/12] arm64: dts: rockchip: Add NanoPi M6 board
  2026-07-02 22:07 [PATCH 00/12] arm64: dts: rockchip: Add NanoPi M6 board Joachim Eastwood via B4 Relay
                   ` (11 preceding siblings ...)
  2026-07-02 22:07 ` [PATCH 12/12] arm64: dts: rockchip: add support for NanoPi M6 board Joachim Eastwood via B4 Relay
@ 2026-07-03 11:30 ` Diederik de Haas
  2026-07-03 20:23   ` Joachim Eastwood
  12 siblings, 1 reply; 21+ messages in thread
From: Diederik de Haas @ 2026-07-03 11:30 UTC (permalink / raw)
  To: joachim.eastwood, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Heiko Stuebner
  Cc: devicetree, linux-arm-kernel, linux-rockchip

On Fri Jul 3, 2026 at 12:07 AM CEST, Joachim Eastwood via B4 Relay wrote:
> This patch series add support for the NanoPi M6. This board is very
> similar to the NanoPi R6C and R6S boards which are already supported.
>
> Main differences:
> * M.2 M-key slot with PCIe (Also present on R6C)
> * M.2 E-key slot with PCIe and USB (from hub)
> * 1 additional USB 2.0 port from an on-board USB hub
> * RT5616 audio CODEC

This seems to be the M6 (2405 aka 'V1')?
Because there is now also a M6V2 (2603), which uses an ES8389 CODEC:
https://www.friendlyelec.com/index.php?route=product/product&path=69&product_id=319

Is it useful to already take the 2 M6 variants into account with this patch set?

https://wiki.friendlyelec.com/wiki/index.php/NanoPi_M6#Schematic.2C_PCB_CAD_File
https://wiki.friendlyelec.com/wiki/index.php/NanoPi_M6V2#Schematic.2C_PCB_CAD_File

Cheers,
  Diederik

> Patch 2 and 3 moves a bit code around. Please let me know if those two
> should be squashed together.
> Next few patches adds some missing bits the common nanopi dtsi file.
> While the final patch adds support for NanoPi M6.
>
> All changes have been verified using the schematics for M6, R6C and R6S.
> Only M6 have been boot and runtime tested. Tester for R6x are welcome.
>
> Signed-off-by: Joachim Eastwood <joachim.eastwood@gmail.com>
> ---
> Joachim Eastwood (12):
>       dt-bindings: arm: rockchip: add FriendlyElec NanoPi M6
>       arm64: dts: rockchip: refactor rk3588s-nanopi* to support M6
>       arm64: dts: rockchip: move NanoPi R6 code into common dtsi
>       arm64: dts: rockchip: rk3588s-nanopi: add missing sdmmc cd pinctrl
>       arm64: dts: rockchip: rk3588s-nanopi: remove pull up on rtc int pin
>       arm64: dts: rockchip: rk3588s-nanopi: add missing pcie rst pinctrl
>       arm64: dts: rockchip: rk3588s-nanopi: pcie2x1l2: add clkreq
>       arm64: dts: rockchip: rk3588s-nanopi: remove always-on from vdd_npu_s0 reg
>       arm64: dts: rockchip: rk3588s-nanopi: remove useless vcc_3v3_pcie20
>       arm64: dts: rockchip: rk3588s-nanopi: add gmac1 add phy-supply
>       arm64: dts: rockchip: rk3588s-nanopi: remove bogus vcc5v0_usb regulator
>       arm64: dts: rockchip: add support for NanoPi M6 board
>
>  .../devicetree/bindings/arm/rockchip.yaml          |   3 +-
>  arch/arm64/boot/dts/rockchip/Makefile              |   1 +
>  arch/arm64/boot/dts/rockchip/rk3588s-nanopi-m6.dts | 200 ++++++
>  .../arm64/boot/dts/rockchip/rk3588s-nanopi-r6.dtsi | 792 --------------------
>  .../arm64/boot/dts/rockchip/rk3588s-nanopi-r6c.dts |   1 +
>  .../arm64/boot/dts/rockchip/rk3588s-nanopi-r6s.dts |   1 +
>  arch/arm64/boot/dts/rockchip/rk3588s-nanopi.dtsi   | 800 +++++++++++++++++++++
>  7 files changed, 1005 insertions(+), 793 deletions(-)
> ---
> base-commit: dc59e4fea9d83f03bad6bddf3fa2e52491777482
> change-id: 20260701-nanopi-m6-ffeef7252fd7
>
> Best regards,
> --  
> Joachim Eastwood <joachim.eastwood@gmail.com>
>
>
>
> _______________________________________________
> Linux-rockchip mailing list
> Linux-rockchip@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-rockchip


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH 12/12] arm64: dts: rockchip: add support for NanoPi M6 board
  2026-07-02 22:07 ` [PATCH 12/12] arm64: dts: rockchip: add support for NanoPi M6 board Joachim Eastwood via B4 Relay
@ 2026-07-03 11:34   ` Diederik de Haas
  2026-07-03 17:14     ` Joachim Eastwood
  0 siblings, 1 reply; 21+ messages in thread
From: Diederik de Haas @ 2026-07-03 11:34 UTC (permalink / raw)
  To: joachim.eastwood, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Heiko Stuebner
  Cc: devicetree, linux-arm-kernel, linux-rockchip

Hi,

On Fri Jul 3, 2026 at 12:07 AM CEST, Joachim Eastwood via B4 Relay wrote:
> From: Joachim Eastwood <joachim.eastwood@gmail.com>
>
> The NanoPi M6 board shares most of the features of the R6 boards.
>
> Main differences:
> * M.2 M-key slot with PCIe (Also present on R6C)
> * M.2 E-key slot with PCIe and USB (from hub)
> * 1 additional USB 2.0 port from an on-board USB hub
> * RT5616 audio CODEC
>
> Signed-off-by: Joachim Eastwood <joachim.eastwood@gmail.com>
> ---
>  arch/arm64/boot/dts/rockchip/Makefile              |   1 +
>  arch/arm64/boot/dts/rockchip/rk3588s-nanopi-m6.dts | 200 +++++++++++++++++++++
>  2 files changed, 201 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile
> index 761d82b4f4f2..2867830eddf8 100644
> --- a/arch/arm64/boot/dts/rockchip/Makefile
> +++ b/arch/arm64/boot/dts/rockchip/Makefile
> @@ -218,6 +218,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-evb1-v10.dtb
>  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-gameforce-ace.dtb
>  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-indiedroid-nova.dtb
>  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-khadas-edge2.dtb
> +dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-nanopi-m6.dtb
>  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-nanopi-r6s.dtb
>  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-nanopi-r6c.dtb
>  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-odroid-m2.dtb
> diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-m6.dts b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-m6.dts
> new file mode 100644
> index 000000000000..64448bf55cf7
> --- /dev/null
> +++ b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-m6.dts
> @@ -0,0 +1,200 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +
> +/dts-v1/;
> +
> +#include "rk3588s-nanopi.dtsi"
> +
> +/ {
> +	model = "FriendlyElec NanoPi M6";
> +	compatible = "friendlyarm,nanopi-m6", "rockchip,rk3588s";
> +
> +	sound {
> +		compatible = "simple-audio-card";
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&hp_det>;
> +
> +		simple-audio-card,name = "realtek,rt5616-codec";
> +		simple-audio-card,format = "i2s";
> +		simple-audio-card,mclk-fs = <256>;
> +
> +		simple-audio-card,hp-det-gpios = <&gpio1 RK_PC4 GPIO_ACTIVE_LOW>;
> +
> +		simple-audio-card,widgets =
> +			"Headphone", "Headphones",
> +			"Microphone", "Microphone Jack";
> +		simple-audio-card,routing =
> +			"Headphones", "HPOL",
> +			"Headphones", "HPOR",
> +			"MIC1", "Microphone Jack",
> +			"Microphone Jack", "micbias1";
> +
> +		simple-audio-card,cpu {
> +			sound-dai = <&i2s0_8ch>;
> +		};
> +
> +		simple-audio-card,codec {
> +			sound-dai = <&rt5616>;
> +		};
> +	};
> +

[...]

> +&i2c7 {
> +	clock-frequency = <200000>;
> +	status = "okay";
> +
> +	rt5616: codec@1b {
> +		compatible = "realtek,rt5616";
> +		reg = <0x1b>;
> +		clocks = <&cru I2S0_8CH_MCLKOUT>;
> +		clock-names = "mclk";
> +		#sound-dai-cells = <0>;
> +		assigned-clocks = <&cru I2S0_8CH_MCLKOUT>;

s/I2S0_8CH_MCLKOUT/I2S0_8CH_MCLKOUT_TO_IO/ ?

See these links for details:
https://lore.kernel.org/linux-rockchip/DJGDSS875DDO.22TYPVYK5X8KZ@cknow-tech.com/
https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip.git/commit/?h=v7.2-clk/fixes&id=946352b2f88fd2378f0341312e47dff1e8dc2fac

Cheers,
  Diederik

> +		assigned-clock-rates = <12288000>;
> +
> +		port {
> +			rt5616_p0_0: endpoint {
> +				remote-endpoint = <&i2s0_8ch_p0_0>;
> +			};
> +		};
> +	};
> +};
> +
> +&i2s0_8ch {
> +	pinctrl-names = "default";
> +	pinctrl-0 = <&i2s0_lrck
> +		     &i2s0_mclk
> +		     &i2s0_sclk
> +		     &i2s0_sdi0
> +		     &i2s0_sdo0>;
> +	status = "okay";
> +
> +	i2s0_8ch_p0: port {
> +		i2s0_8ch_p0_0: endpoint {
> +			dai-format = "i2s";
> +			mclk-fs = <256>;
> +			remote-endpoint = <&rt5616_p0_0>;
> +		};
> +	};
> +};
> +
> +&pcie2x1l1 { /* M.2 E-key 2230 */
> +	vpcie3v3-supply = <&vdd_mpcie_3v3>;
> +};
> +
> +&pcie2x1l2 { /* M.2 M-key 2280 */
> +	pinctrl-0 = <&pcie2_2_rst>, <&pcie20x1m0_clkreqn>, <&pcie20x1m0_waken>;
> +	vpcie3v3-supply = <&vcc_3v3_pcie>;
> +};
> +
> +&pinctrl {
> +	gpio-leds {
> +		sys_led_pin: sys-led-pin {
> +			rockchip,pins = <1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
> +		};
> +
> +		user_led_pin: user-led-pin {
> +			rockchip,pins = <1 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
> +		};
> +	};
> +
> +	headphone {
> +		hp_det: hp-det {
> +			rockchip,pins = <1 RK_PC4 RK_FUNC_GPIO &pcfg_pull_none>;
> +		};
> +	};
> +
> +	pcie {
> +		pcie2_2_pwren: pcie2-2-pwren {
> +			rockchip,pins = <3 RK_PC6 RK_FUNC_GPIO &pcfg_pull_none>;
> +		};
> +	};
> +
> +	usb {
> +		typec5v_pwren: typec5v-pwren {
> +			rockchip,pins = <3 RK_PD4 RK_FUNC_GPIO &pcfg_pull_none>;
> +		};
> +	};
> +};
> +
> +&u2phy3 {
> +	status = "okay";
> +};
> +
> +&u2phy3_host {
> +	phy-supply = <&vcc5v0_host_20>;
> +	status = "okay";
> +};
> +
> +&usb_host1_ehci {
> +	status = "okay";
> +};
> +
> +&usb_host1_ohci {
> +	status = "okay";
> +};


^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH 12/12] arm64: dts: rockchip: add support for NanoPi M6 board
  2026-07-03 11:34   ` Diederik de Haas
@ 2026-07-03 17:14     ` Joachim Eastwood
  2026-07-03 17:37       ` Diederik de Haas
  0 siblings, 1 reply; 21+ messages in thread
From: Joachim Eastwood @ 2026-07-03 17:14 UTC (permalink / raw)
  To: Diederik de Haas
  Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Heiko Stuebner,
	devicetree, linux-arm-kernel, linux-rockchip

Hi Diederik

On Fri, 3 Jul 2026 at 13:34, Diederik de Haas <diederik@cknow-tech.com> wrote:
>
> Hi,
>
> On Fri Jul 3, 2026 at 12:07 AM CEST, Joachim Eastwood via B4 Relay wrote:
> > From: Joachim Eastwood <joachim.eastwood@gmail.com>
> >
> > The NanoPi M6 board shares most of the features of the R6 boards.
> >
> > Main differences:
> > * M.2 M-key slot with PCIe (Also present on R6C)
> > * M.2 E-key slot with PCIe and USB (from hub)
> > * 1 additional USB 2.0 port from an on-board USB hub
> > * RT5616 audio CODEC
> >
> > Signed-off-by: Joachim Eastwood <joachim.eastwood@gmail.com>
> > ---
> >  arch/arm64/boot/dts/rockchip/Makefile              |   1 +
> >  arch/arm64/boot/dts/rockchip/rk3588s-nanopi-m6.dts | 200 +++++++++++++++++++++
> >  2 files changed, 201 insertions(+)
> >
> > diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile
> > index 761d82b4f4f2..2867830eddf8 100644
> > --- a/arch/arm64/boot/dts/rockchip/Makefile
> > +++ b/arch/arm64/boot/dts/rockchip/Makefile
> > @@ -218,6 +218,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-evb1-v10.dtb
> >  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-gameforce-ace.dtb
> >  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-indiedroid-nova.dtb
> >  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-khadas-edge2.dtb
> > +dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-nanopi-m6.dtb
> >  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-nanopi-r6s.dtb
> >  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-nanopi-r6c.dtb
> >  dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588s-odroid-m2.dtb
> > diff --git a/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-m6.dts b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-m6.dts
> > new file mode 100644
> > index 000000000000..64448bf55cf7
> > --- /dev/null
> > +++ b/arch/arm64/boot/dts/rockchip/rk3588s-nanopi-m6.dts
> > @@ -0,0 +1,200 @@
> > +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> > +
> > +/dts-v1/;
> > +
> > +#include "rk3588s-nanopi.dtsi"
> > +
> > +/ {
> > +     model = "FriendlyElec NanoPi M6";
> > +     compatible = "friendlyarm,nanopi-m6", "rockchip,rk3588s";
> > +
> > +     sound {
> > +             compatible = "simple-audio-card";
> > +             pinctrl-names = "default";
> > +             pinctrl-0 = <&hp_det>;
> > +
> > +             simple-audio-card,name = "realtek,rt5616-codec";
> > +             simple-audio-card,format = "i2s";
> > +             simple-audio-card,mclk-fs = <256>;
> > +
> > +             simple-audio-card,hp-det-gpios = <&gpio1 RK_PC4 GPIO_ACTIVE_LOW>;
> > +
> > +             simple-audio-card,widgets =
> > +                     "Headphone", "Headphones",
> > +                     "Microphone", "Microphone Jack";
> > +             simple-audio-card,routing =
> > +                     "Headphones", "HPOL",
> > +                     "Headphones", "HPOR",
> > +                     "MIC1", "Microphone Jack",
> > +                     "Microphone Jack", "micbias1";
> > +
> > +             simple-audio-card,cpu {
> > +                     sound-dai = <&i2s0_8ch>;
> > +             };
> > +
> > +             simple-audio-card,codec {
> > +                     sound-dai = <&rt5616>;
> > +             };
> > +     };
> > +
>
> [...]
>
> > +&i2c7 {
> > +     clock-frequency = <200000>;
> > +     status = "okay";
> > +
> > +     rt5616: codec@1b {
> > +             compatible = "realtek,rt5616";
> > +             reg = <0x1b>;
> > +             clocks = <&cru I2S0_8CH_MCLKOUT>;
> > +             clock-names = "mclk";
> > +             #sound-dai-cells = <0>;
> > +             assigned-clocks = <&cru I2S0_8CH_MCLKOUT>;
>
> s/I2S0_8CH_MCLKOUT/I2S0_8CH_MCLKOUT_TO_IO/ ?
>
> See these links for details:
> https://lore.kernel.org/linux-rockchip/DJGDSS875DDO.22TYPVYK5X8KZ@cknow-tech.com/
> https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip.git/commit/?h=v7.2-clk/fixes&id=946352b2f88fd2378f0341312e47dff1e8dc2fac

Thanks for the feedback and pointers.
I will use I2S0_8CH_MCLKOUT_TO_IO for the next version.

Grepping through the other boards there doesn't seem to any other users
of I2S0_8CH_MCLKOUT_TO_IO right now. But I assume the other boards
will be converted over later(?)


best regards,
Joachim Eastwood

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH 12/12] arm64: dts: rockchip: add support for NanoPi M6 board
  2026-07-03 17:14     ` Joachim Eastwood
@ 2026-07-03 17:37       ` Diederik de Haas
  0 siblings, 0 replies; 21+ messages in thread
From: Diederik de Haas @ 2026-07-03 17:37 UTC (permalink / raw)
  To: Joachim Eastwood, Diederik de Haas
  Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Heiko Stuebner,
	devicetree, linux-arm-kernel, linux-rockchip

Hi Joachim,

On Fri Jul 3, 2026 at 7:14 PM CEST, Joachim Eastwood wrote:
> On Fri, 3 Jul 2026 at 13:34, Diederik de Haas <diederik@cknow-tech.com> wrote:
>> On Fri Jul 3, 2026 at 12:07 AM CEST, Joachim Eastwood via B4 Relay wrote:
>> > From: Joachim Eastwood <joachim.eastwood@gmail.com>
>> >
>> > The NanoPi M6 board shares most of the features of the R6 boards.
>> >
>> > Main differences:
>> > * M.2 M-key slot with PCIe (Also present on R6C)
>> > * M.2 E-key slot with PCIe and USB (from hub)
>> > * 1 additional USB 2.0 port from an on-board USB hub
>> > * RT5616 audio CODEC
>> >
>> > Signed-off-by: Joachim Eastwood <joachim.eastwood@gmail.com>
>> > ---
>>
>> [...]
>>
>> > +&i2c7 {
>> > +     clock-frequency = <200000>;
>> > +     status = "okay";
>> > +
>> > +     rt5616: codec@1b {
>> > +             compatible = "realtek,rt5616";
>> > +             reg = <0x1b>;
>> > +             clocks = <&cru I2S0_8CH_MCLKOUT>;
>> > +             clock-names = "mclk";
>> > +             #sound-dai-cells = <0>;
>> > +             assigned-clocks = <&cru I2S0_8CH_MCLKOUT>;
>>
>> s/I2S0_8CH_MCLKOUT/I2S0_8CH_MCLKOUT_TO_IO/ ?
>>
>> See these links for details:
>> https://lore.kernel.org/linux-rockchip/DJGDSS875DDO.22TYPVYK5X8KZ@cknow-tech.com/
>> https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip.git/commit/?h=v7.2-clk/fixes&id=946352b2f88fd2378f0341312e47dff1e8dc2fac
>
> Thanks for the feedback and pointers.
> I will use I2S0_8CH_MCLKOUT_TO_IO for the next version.
>
> Grepping through the other boards there doesn't seem to any other users
> of I2S0_8CH_MCLKOUT_TO_IO right now. But I assume the other boards
> will be converted over later(?)

That is indeed the idea; boards can(/should) be converted, ideally by someone
who has the board and can verify its result.

There's at least 'one' (or 3) being worked on ;-)
https://git.sr.ht/~diederik/linux-kernel/log/rk3588-nanopc-t6-plus

But for new boards, it's better to use the new _TO_IO variant.

Cheers,
  Diederik

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH 00/12] arm64: dts: rockchip: Add NanoPi M6 board
  2026-07-03 11:30 ` [PATCH 00/12] arm64: dts: rockchip: Add " Diederik de Haas
@ 2026-07-03 20:23   ` Joachim Eastwood
  2026-07-04  9:54     ` Diederik de Haas
  0 siblings, 1 reply; 21+ messages in thread
From: Joachim Eastwood @ 2026-07-03 20:23 UTC (permalink / raw)
  To: Diederik de Haas
  Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Heiko Stuebner,
	devicetree, linux-arm-kernel, linux-rockchip

Hi Diederik,

On Fri, 3 Jul 2026 at 13:30, Diederik de Haas <diederik@cknow-tech.com> wrote:
>
> On Fri Jul 3, 2026 at 12:07 AM CEST, Joachim Eastwood via B4 Relay wrote:
> > This patch series add support for the NanoPi M6. This board is very
> > similar to the NanoPi R6C and R6S boards which are already supported.
> >
> > Main differences:
> > * M.2 M-key slot with PCIe (Also present on R6C)
> > * M.2 E-key slot with PCIe and USB (from hub)
> > * 1 additional USB 2.0 port from an on-board USB hub
> > * RT5616 audio CODEC
>
> This seems to be the M6 (2405 aka 'V1')?
Yes, correct. This patch set is for the original M6 board. V1 if you like.

> Because there is now also a M6V2 (2603), which uses an ES8389 CODEC:
> https://www.friendlyelec.com/index.php?route=product/product&path=69&product_id=319
I did notice there was a new version, but I hadn't given it much thought.

> Is it useful to already take the 2 M6 variants into account with this patch set?
Yes, I think you are right.

How about this setup:
rk3588s-nanopi-m6.dtsi
rk3588s-nanopi-m6v1.dts
rk3588s-nanopi-m6v2.dts
This mimics the setup for the R6 series boards with rk3588s-nanopi-r6.dtsi
and rk3588s-nanopi-r6[cs].dts.

Note that I will not make the v2 board part of this patchset since I
am unable to
test it. But as you said we can take it into account now.

If you have no objections I will integrate this setup into versions 2
of this patch set.
Thanks for the feedback!

> https://wiki.friendlyelec.com/wiki/index.php/NanoPi_M6#Schematic.2C_PCB_CAD_File
> https://wiki.friendlyelec.com/wiki/index.php/NanoPi_M6V2#Schematic.2C_PCB_CAD_File
I did a quick comparison of the schematics and noticed the following
differences:
* New CODEC; ES8389
* A new "User" button connected to a gpio line.
* Different USB 2.0 hub: CH334P (may not be relevant for DT)
* Different USB PD power solution (not relevant for DT)


best regards,
Joachim Eastwood

^ permalink raw reply	[flat|nested] 21+ messages in thread

* Re: [PATCH 00/12] arm64: dts: rockchip: Add NanoPi M6 board
  2026-07-03 20:23   ` Joachim Eastwood
@ 2026-07-04  9:54     ` Diederik de Haas
  0 siblings, 0 replies; 21+ messages in thread
From: Diederik de Haas @ 2026-07-04  9:54 UTC (permalink / raw)
  To: Joachim Eastwood, Diederik de Haas
  Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Heiko Stuebner,
	devicetree, linux-arm-kernel, linux-rockchip

Hi Joachim,

On Fri Jul 3, 2026 at 10:23 PM CEST, Joachim Eastwood wrote:
> On Fri, 3 Jul 2026 at 13:30, Diederik de Haas <diederik@cknow-tech.com> wrote:
>> On Fri Jul 3, 2026 at 12:07 AM CEST, Joachim Eastwood via B4 Relay wrote:
>> > This patch series add support for the NanoPi M6. This board is very
>> > similar to the NanoPi R6C and R6S boards which are already supported.
>> >
>> > Main differences:
>> > * M.2 M-key slot with PCIe (Also present on R6C)
>> > * M.2 E-key slot with PCIe and USB (from hub)
>> > * 1 additional USB 2.0 port from an on-board USB hub
>> > * RT5616 audio CODEC
>>
>> This seems to be the M6 (2405 aka 'V1')?
> Yes, correct. This patch set is for the original M6 board. V1 if you like.
>
>> Because there is now also a M6V2 (2603), which uses an ES8389 CODEC:
>> https://www.friendlyelec.com/index.php?route=product/product&path=69&product_id=319
> I did notice there was a new version, but I hadn't given it much thought.
>
>> Is it useful to already take the 2 M6 variants into account with this patch set?
> Yes, I think you are right.
>
> How about this setup:
> rk3588s-nanopi-m6.dtsi
> rk3588s-nanopi-m6v1.dts
> rk3588s-nanopi-m6v2.dts
> This mimics the setup for the R6 series boards with rk3588s-nanopi-r6.dtsi
> and rk3588s-nanopi-r6[cs].dts.

Seems fine. You could drop the 'v1' as I only used that to differentiate with
the V2. OTOH, I'm always 'struggling' how to identify the original NanoPC-T6.
I do like consistency, so mimicing the setup for R6 is nice :-)

> Note that I will not make the v2 board part of this patchset since I
> am unable to test it. But as you said we can take it into account now.

Agreed. My concern was about trying to prevent another complete reorganization
once someone decides to upstream support for V2 (2603).

>> https://wiki.friendlyelec.com/wiki/index.php/NanoPi_M6#Schematic.2C_PCB_CAD_File
>> https://wiki.friendlyelec.com/wiki/index.php/NanoPi_M6V2#Schematic.2C_PCB_CAD_File
> I did a quick comparison of the schematics and noticed the following
> differences:
> * New CODEC; ES8389
> * A new "User" button connected to a gpio line.
> * Different USB 2.0 hub: CH334P (may not be relevant for DT)
> * Different USB PD power solution (not relevant for DT)

At the end of the M6V2 product page, there's also a comparison with 'V1':
https://www.friendlyelec.com/image/catalog/description/M6V2_en_13.jpg

It's under the heading 'Comparison', but it's part of the picture so you can't
search for it. Dunny why FriendlyElec does that, but they do it consistently.

Cheers,
  Diederik

^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2026-07-04  9:54 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-02 22:07 [PATCH 00/12] arm64: dts: rockchip: Add NanoPi M6 board Joachim Eastwood via B4 Relay
2026-07-02 22:07 ` [PATCH 01/12] dt-bindings: arm: rockchip: add FriendlyElec NanoPi M6 Joachim Eastwood via B4 Relay
2026-07-03 10:57   ` Krzysztof Kozlowski
2026-07-02 22:07 ` [PATCH 02/12] arm64: dts: rockchip: refactor rk3588s-nanopi* to support M6 Joachim Eastwood via B4 Relay
2026-07-02 22:07 ` [PATCH 03/12] arm64: dts: rockchip: move NanoPi R6 code into common dtsi Joachim Eastwood via B4 Relay
2026-07-02 22:07 ` [PATCH 04/12] arm64: dts: rockchip: rk3588s-nanopi: add missing sdmmc cd pinctrl Joachim Eastwood via B4 Relay
2026-07-02 22:07 ` [PATCH 05/12] arm64: dts: rockchip: rk3588s-nanopi: remove pull up on rtc int pin Joachim Eastwood via B4 Relay
2026-07-02 22:07 ` [PATCH 06/12] arm64: dts: rockchip: rk3588s-nanopi: add missing pcie rst pinctrl Joachim Eastwood via B4 Relay
2026-07-02 22:07 ` [PATCH 07/12] arm64: dts: rockchip: rk3588s-nanopi: pcie2x1l2: add clkreq Joachim Eastwood via B4 Relay
2026-07-02 22:07 ` [PATCH 08/12] arm64: dts: rockchip: rk3588s-nanopi: remove always-on from vdd_npu_s0 reg Joachim Eastwood via B4 Relay
2026-07-02 22:07 ` [PATCH 09/12] arm64: dts: rockchip: rk3588s-nanopi: remove useless vcc_3v3_pcie20 Joachim Eastwood via B4 Relay
2026-07-03 10:58   ` Krzysztof Kozlowski
2026-07-02 22:07 ` [PATCH 10/12] arm64: dts: rockchip: rk3588s-nanopi: add gmac1 add phy-supply Joachim Eastwood via B4 Relay
2026-07-02 22:07 ` [PATCH 11/12] arm64: dts: rockchip: rk3588s-nanopi: remove bogus vcc5v0_usb regulator Joachim Eastwood via B4 Relay
2026-07-02 22:07 ` [PATCH 12/12] arm64: dts: rockchip: add support for NanoPi M6 board Joachim Eastwood via B4 Relay
2026-07-03 11:34   ` Diederik de Haas
2026-07-03 17:14     ` Joachim Eastwood
2026-07-03 17:37       ` Diederik de Haas
2026-07-03 11:30 ` [PATCH 00/12] arm64: dts: rockchip: Add " Diederik de Haas
2026-07-03 20:23   ` Joachim Eastwood
2026-07-04  9:54     ` Diederik de Haas

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox