* [PATCH 0/3] Add support for FriendlyElec NanoPC-T6 Plus
@ 2026-09-07 12:22 Diederik de Haas
2026-09-07 12:22 ` [PATCH 1/3] dt-bindings: arm: rockchip: Add " Diederik de Haas
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Diederik de Haas @ 2026-09-07 12:22 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Heiko Stuebner
Cc: Joachim Eastwood, Marcin Juszkiewicz, Daniele Briguglio,
devicetree, linux-arm-kernel, linux-rockchip, linux-kernel,
Diederik de Haas
This serie adds support for the newest member in the NanoPC-T6 series,
the NanoPC-T6 Plus:
https://wiki.friendlyelec.com/wiki/index.php/NanoPC-T6_Plus
The main differences between the NanoPC-T6 Plus and the NanoPC-T6 LTS are:
- use of LPDDR5 RAM
- addition of an M.2 B-key connector for a 4G LTE module and a companion
NanoSIM card slot.
- different audio codec (Everest ES8389)
Support for it is added as follows:
1. Add the NanoPC-T6 Plus variant to the DT binding
2. Move sound card definitions to board DTS files as the Plus has a
different audio codec
3. Add basic support for the NanoPC-T6 Plus
Diederik de Haas (3):
dt-bindings: arm: rockchip: Add FriendlyElec NanoPC-T6 Plus
arm64: dts: rockchip: Move sound cards to board files for NanoPC-T6
arm64: dts: rockchip: Add support for FriendlyElec NanoPC-T6 Plus
.../devicetree/bindings/arm/rockchip.yaml | 1 +
arch/arm64/boot/dts/rockchip/Makefile | 1 +
.../dts/rockchip/rk3588-nanopc-t6-lts.dts | 39 ++++++++
.../dts/rockchip/rk3588-nanopc-t6-plus.dts | 91 +++++++++++++++++++
.../boot/dts/rockchip/rk3588-nanopc-t6.dts | 39 ++++++++
.../boot/dts/rockchip/rk3588-nanopc-t6.dtsi | 36 +-------
6 files changed, 172 insertions(+), 35 deletions(-)
create mode 100644 arch/arm64/boot/dts/rockchip/rk3588-nanopc-t6-plus.dts
--
2.55.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/3] dt-bindings: arm: rockchip: Add FriendlyElec NanoPC-T6 Plus
2026-09-07 12:22 [PATCH 0/3] Add support for FriendlyElec NanoPC-T6 Plus Diederik de Haas
@ 2026-09-07 12:22 ` Diederik de Haas
2026-09-07 12:22 ` [PATCH 2/3] arm64: dts: rockchip: Move sound cards to board files for NanoPC-T6 Diederik de Haas
2026-09-07 12:22 ` [PATCH 3/3] arm64: dts: rockchip: Add support for FriendlyElec NanoPC-T6 Plus Diederik de Haas
2 siblings, 0 replies; 6+ messages in thread
From: Diederik de Haas @ 2026-09-07 12:22 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Heiko Stuebner
Cc: Joachim Eastwood, Marcin Juszkiewicz, Daniele Briguglio,
devicetree, linux-arm-kernel, linux-rockchip, linux-kernel,
Diederik de Haas
The NanoPC-T6 Plus is the latest addition to the NanoPC-T6 series.
Add it to the NanoPC-T6 list.
Signed-off-by: Diederik de Haas <diederik@cknow-tech.com>
---
Documentation/devicetree/bindings/arm/rockchip.yaml | 1 +
1 file changed, 1 insertion(+)
diff --git a/Documentation/devicetree/bindings/arm/rockchip.yaml b/Documentation/devicetree/bindings/arm/rockchip.yaml
index 81744fbee98a..aa828ee60d21 100644
--- a/Documentation/devicetree/bindings/arm/rockchip.yaml
+++ b/Documentation/devicetree/bindings/arm/rockchip.yaml
@@ -398,6 +398,7 @@ properties:
- enum:
- friendlyarm,nanopc-t6
- friendlyarm,nanopc-t6-lts
+ - friendlyarm,nanopc-t6-plus
- const: rockchip,rk3588
- description: FriendlyElec CM3588-based boards
--
2.55.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 2/3] arm64: dts: rockchip: Move sound cards to board files for NanoPC-T6
2026-09-07 12:22 [PATCH 0/3] Add support for FriendlyElec NanoPC-T6 Plus Diederik de Haas
2026-09-07 12:22 ` [PATCH 1/3] dt-bindings: arm: rockchip: Add " Diederik de Haas
@ 2026-09-07 12:22 ` Diederik de Haas
2026-09-07 12:22 ` [PATCH 3/3] arm64: dts: rockchip: Add support for FriendlyElec NanoPC-T6 Plus Diederik de Haas
2 siblings, 0 replies; 6+ messages in thread
From: Diederik de Haas @ 2026-09-07 12:22 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Heiko Stuebner
Cc: Joachim Eastwood, Marcin Juszkiewicz, Daniele Briguglio,
devicetree, linux-arm-kernel, linux-rockchip, linux-kernel,
Diederik de Haas
The NanoPC-T6 and the NanoPC-T6-LTS both have a Realtek ALC5616 audio codec.
But the NanoPC-T6 Plus has an Everest ES8389 audio codec. So move the audio
definition which is not shared among all boards to the individual board files.
Signed-off-by: Diederik de Haas <diederik@cknow-tech.com>
---
.../dts/rockchip/rk3588-nanopc-t6-lts.dts | 39 +++++++++++++++++++
.../boot/dts/rockchip/rk3588-nanopc-t6.dts | 39 +++++++++++++++++++
.../boot/dts/rockchip/rk3588-nanopc-t6.dtsi | 36 +----------------
3 files changed, 79 insertions(+), 35 deletions(-)
diff --git a/arch/arm64/boot/dts/rockchip/rk3588-nanopc-t6-lts.dts b/arch/arm64/boot/dts/rockchip/rk3588-nanopc-t6-lts.dts
index 0ee67ee24f3c..32f9b313b5d6 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588-nanopc-t6-lts.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3588-nanopc-t6-lts.dts
@@ -30,6 +30,45 @@ vcc5v0_usb20_host: regulator-vcc5v0-usb20-host {
};
};
+&analog_sound {
+ compatible = "simple-audio-card";
+ label = "Onboard Analog Realtek ALC5616";
+
+ simple-audio-card,format = "i2s";
+ simple-audio-card,hp-det-gpios = <&gpio1 RK_PC4 GPIO_ACTIVE_LOW>;
+ simple-audio-card,mclk-fs = <256>;
+ simple-audio-card,name = "realtek,rt5616-codec";
+
+ 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 {
+ rt5616: codec@1b {
+ compatible = "realtek,rt5616";
+ reg = <0x1b>;
+ assigned-clocks = <&cru I2S0_8CH_MCLKOUT_TO_IO>;
+ assigned-clock-rates = <12288000>;
+ clocks = <&cru I2S0_8CH_MCLKOUT_TO_IO>;
+ clock-names = "mclk";
+ #sound-dai-cells = <0>;
+ };
+};
+
&pinctrl {
usb {
usb20_host_pwren: usb20-host-pwren {
diff --git a/arch/arm64/boot/dts/rockchip/rk3588-nanopc-t6.dts b/arch/arm64/boot/dts/rockchip/rk3588-nanopc-t6.dts
index 40290a81bb9d..40ea1079a928 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588-nanopc-t6.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3588-nanopc-t6.dts
@@ -27,6 +27,45 @@ vdd_4g_3v3: regulator-vdd-4g-3v3 {
};
};
+&analog_sound {
+ compatible = "simple-audio-card";
+ label = "Onboard Analog Realtek ALC5616";
+
+ simple-audio-card,format = "i2s";
+ simple-audio-card,hp-det-gpios = <&gpio1 RK_PC4 GPIO_ACTIVE_LOW>;
+ simple-audio-card,mclk-fs = <256>;
+ simple-audio-card,name = "realtek,rt5616-codec";
+
+ 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 {
+ rt5616: codec@1b {
+ compatible = "realtek,rt5616";
+ reg = <0x1b>;
+ assigned-clocks = <&cru I2S0_8CH_MCLKOUT_TO_IO>;
+ assigned-clock-rates = <12288000>;
+ clocks = <&cru I2S0_8CH_MCLKOUT_TO_IO>;
+ clock-names = "mclk";
+ #sound-dai-cells = <0>;
+ };
+};
+
&pinctrl {
usb {
pin_4g_lte_pwren: 4g-lte-pwren {
diff --git a/arch/arm64/boot/dts/rockchip/rk3588-nanopc-t6.dtsi b/arch/arm64/boot/dts/rockchip/rk3588-nanopc-t6.dtsi
index eb0eb124c4cd..4d97afbc33bf 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588-nanopc-t6.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3588-nanopc-t6.dtsi
@@ -98,33 +98,9 @@ fan: pwm-fan {
#cooling-cells = <2>;
};
- sound {
- compatible = "simple-audio-card";
- label = "Onboard Analog Realtek ALC5616";
+ analog_sound: sound {
pinctrl-0 = <&hp_det>;
pinctrl-names = "default";
-
- simple-audio-card,format = "i2s";
- simple-audio-card,hp-det-gpios = <&gpio1 RK_PC4 GPIO_ACTIVE_LOW>;
- simple-audio-card,mclk-fs = <256>;
- simple-audio-card,name = "realtek,rt5616-codec";
-
- 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>;
- };
};
vcc12v_dcin: regulator-vcc12v-dcin {
@@ -549,16 +525,6 @@ &i2c7 {
clock-frequency = <200000>;
status = "okay";
- rt5616: codec@1b {
- compatible = "realtek,rt5616";
- reg = <0x1b>;
- assigned-clocks = <&cru I2S0_8CH_MCLKOUT_TO_IO>;
- assigned-clock-rates = <12288000>;
- clocks = <&cru I2S0_8CH_MCLKOUT_TO_IO>;
- clock-names = "mclk";
- #sound-dai-cells = <0>;
- };
-
/* connected with MIPI-CSI1 */
};
--
2.55.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 3/3] arm64: dts: rockchip: Add support for FriendlyElec NanoPC-T6 Plus
2026-09-07 12:22 [PATCH 0/3] Add support for FriendlyElec NanoPC-T6 Plus Diederik de Haas
2026-09-07 12:22 ` [PATCH 1/3] dt-bindings: arm: rockchip: Add " Diederik de Haas
2026-09-07 12:22 ` [PATCH 2/3] arm64: dts: rockchip: Move sound cards to board files for NanoPC-T6 Diederik de Haas
@ 2026-09-07 12:22 ` Diederik de Haas
2026-09-07 12:34 ` sashiko-bot
2 siblings, 1 reply; 6+ messages in thread
From: Diederik de Haas @ 2026-09-07 12:22 UTC (permalink / raw)
To: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Heiko Stuebner
Cc: Joachim Eastwood, Marcin Juszkiewicz, Daniele Briguglio,
devicetree, linux-arm-kernel, linux-rockchip, linux-kernel,
Diederik de Haas
The FriendlyElec NanoPC-T6 Plus is a new board in the NanoPC-T6 series.
The main differences between the NanoPC-T6 Plus and the NanoPC-T6 LTS are:
- use of LPDDR5 RAM
- addition of an M.2 B-key connector for a 4G LTE module and a companion
NanoSIM card slot.
- 10 pin header with UART and 2x USB 2.0 host got replaced with a 3 pin
UART header.
- different audio codec (Everest ES8389)
Add basic support for it.
Link: https://wiki.friendlyelec.com/wiki/index.php/NanoPC-T6_Plus
Link: https://wiki.friendlyelec.com/wiki/images/a/ad/NanoPC-T6_Plus_2511_SCH.pdf
Link: http://everest-semi.com/pdf/ES8389%20PB.pdf
Signed-off-by: Diederik de Haas <diederik@cknow-tech.com>
---
arch/arm64/boot/dts/rockchip/Makefile | 1 +
.../dts/rockchip/rk3588-nanopc-t6-plus.dts | 91 +++++++++++++++++++
2 files changed, 92 insertions(+)
create mode 100644 arch/arm64/boot/dts/rockchip/rk3588-nanopc-t6-plus.dts
diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile
index b677914cd3f1..1bdebf3e30fc 100644
--- a/arch/arm64/boot/dts/rockchip/Makefile
+++ b/arch/arm64/boot/dts/rockchip/Makefile
@@ -204,6 +204,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-lubancat-5io.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-mnt-reform2.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-nanopc-t6.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-nanopc-t6-lts.dtb
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-nanopc-t6-plus.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-ok3588-c.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-orangepi-5-max.dtb
dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3588-orangepi-5-plus.dtb
diff --git a/arch/arm64/boot/dts/rockchip/rk3588-nanopc-t6-plus.dts b/arch/arm64/boot/dts/rockchip/rk3588-nanopc-t6-plus.dts
new file mode 100644
index 000000000000..f23ac4bd9f16
--- /dev/null
+++ b/arch/arm64/boot/dts/rockchip/rk3588-nanopc-t6-plus.dts
@@ -0,0 +1,91 @@
+// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
+/*
+ * Copyright (c) 2021 Rockchip Electronics Co., Ltd.
+ * Copyright (c) 2023 Thomas McKahan
+ * Copyright (c) 2024 Linaro Ltd.
+ */
+
+/dts-v1/;
+
+#include "rk3588-nanopc-t6.dtsi"
+
+/ {
+ model = "FriendlyElec NanoPC-T6 Plus";
+ compatible = "friendlyarm,nanopc-t6-plus", "rockchip,rk3588";
+
+ codec_es_3v3: regulator-codec-es-3v3 {
+ compatible = "regulator-fixed";
+ regulator-min-microvolt = <3300000>;
+ regulator-max-microvolt = <3300000>;
+ regulator-name = "codec_es_3v3";
+ vin-supply = <&vcc4v0_sys>;
+ };
+
+ usb2_port_5v: regulator-usb2-port-5v {
+ compatible = "regulator-fixed";
+ enable-active-high;
+ gpio = <&gpio1 RK_PA4 GPIO_ACTIVE_HIGH>;
+ pinctrl-0 = <&usb20_host_pwren_h_pin>;
+ pinctrl-names = "default";
+ regulator-min-microvolt = <5000000>;
+ regulator-max-microvolt = <5000000>;
+ regulator-name = "usb2_port_5v";
+ vin-supply = <&vcc5v0_sys>;
+ };
+};
+
+&analog_sound {
+ compatible = "audio-graph-card";
+ hp-det-gpios = <&gpio1 RK_PC4 GPIO_ACTIVE_LOW>;
+ label = "rk3588-es8389";
+
+ dais = <&i2s0_8ch_p0>;
+ routing = "Headphones", "HPOL",
+ "Headphones", "HPOR",
+ "INPUT1", "Microphones Connector",
+ "INPUT2", "Microphones Connector";
+ widgets = "Headphone", "Headphones",
+ "Microphone", "Microphones Connector";
+};
+
+&i2c7 {
+ codec@10 {
+ compatible = "everest,es8389";
+ reg = <0x10>;
+ assigned-clocks = <&cru I2S0_8CH_MCLKOUT_TO_IO>;
+ assigned-clock-rates = <12288000>;
+ clocks = <&cru I2S0_8CH_MCLKOUT_TO_IO>;
+ clock-names = "mclk";
+ #sound-dai-cells = <0>;
+ vdda-supply = <&codec_es_3v3>;
+ vddd-supply = <&vcc_1v8_s3>;
+
+ port {
+ es8389_p0_0: endpoint {
+ remote-endpoint = <&i2s0_8ch_p0_0>;
+ };
+ };
+ };
+};
+
+&i2s0_8ch {
+ i2s0_8ch_p0: port {
+ i2s0_8ch_p0_0: endpoint {
+ dai-format = "i2s";
+ mclk-fs = <256>;
+ remote-endpoint = <&es8389_p0_0>;
+ };
+ };
+};
+
+&pinctrl {
+ usb {
+ usb20_host_pwren_h_pin: usb20-host-pwren-h-pin {
+ rockchip,pins = <1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
+};
+
+&u2phy2_host {
+ phy-supply = <&usb2_port_5v>;
+};
--
2.55.0
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 3/3] arm64: dts: rockchip: Add support for FriendlyElec NanoPC-T6 Plus
2026-09-07 12:22 ` [PATCH 3/3] arm64: dts: rockchip: Add support for FriendlyElec NanoPC-T6 Plus Diederik de Haas
@ 2026-09-07 12:34 ` sashiko-bot
2026-09-07 14:12 ` Diederik de Haas
0 siblings, 1 reply; 6+ messages in thread
From: sashiko-bot @ 2026-09-07 12:34 UTC (permalink / raw)
To: Diederik de Haas; +Cc: robh, conor+dt, devicetree
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] Missing 3.3V regulator for the 4G LTE M.2 B-key connector and incorrect assignment of a 5V regulator.
--
commit 5412bbe217132fabf745d86e1c28d6b071b41043
Author: Diederik de Haas <diederik@cknow-tech.com>
arm64: dts: rockchip: Add support for FriendlyElec NanoPC-T6 Plus
This commit introduces basic support for the FriendlyElec NanoPC-T6 Plus.
It highlights the hardware differences from the NanoPC-T6 LTS, such as the
addition of an M.2 B-key connector for a 4G LTE module.
Link: https://wiki.friendlyelec.com/wiki/index.php/NanoPC-T6_Plus
Link: https://wiki.friendlyelec.com/wiki/images/a/ad/NanoPC-T6_Plus_2511_SCH.pdf
Link: http://everest-semi.com/pdf/ES8389%20PB.pdf
> diff --git a/arch/arm64/boot/dts/rockchip/rk3588-nanopc-t6-plus.dts b/arch/arm64/boot/dts/rockchip/rk3588-nanopc-t6-plus.dts
> new file mode 100644
> index 0000000000000..f23ac4bd9f167
> --- /dev/null
> +++ b/arch/arm64/boot/dts/rockchip/rk3588-nanopc-t6-plus.dts
> @@ -0,0 +1,91 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Copyright (c) 2021 Rockchip Electronics Co., Ltd.
> + * Copyright (c) 2023 Thomas McKahan
> + * Copyright (c) 2024 Linaro Ltd.
> + */
> +
> +/dts-v1/;
> +
> +#include "rk3588-nanopc-t6.dtsi"
> +
> +/ {
> + model = "FriendlyElec NanoPC-T6 Plus";
> + compatible = "friendlyarm,nanopc-t6-plus", "rockchip,rk3588";
> +
> + codec_es_3v3: regulator-codec-es-3v3 {
> + compatible = "regulator-fixed";
> + regulator-min-microvolt = <3300000>;
> + regulator-max-microvolt = <3300000>;
> + regulator-name = "codec_es_3v3";
> + vin-supply = <&vcc4v0_sys>;
> + };
> +
> + usb2_port_5v: regulator-usb2-port-5v {
> + compatible = "regulator-fixed";
> + enable-active-high;
> + gpio = <&gpio1 RK_PA4 GPIO_ACTIVE_HIGH>;
> + pinctrl-0 = <&usb20_host_pwren_h_pin>;
> + pinctrl-names = "default";
> + regulator-min-microvolt = <5000000>;
> + regulator-max-microvolt = <5000000>;
[Severity: Medium]
Is it correct to define this regulator with a 5V constraint?
This uses the exact GPIO (gpio1 RK_PA4) previously used for the removed USB hub
on the LTS board and retains the 5V constraint, whereas the new M.2 B-key slot
would typically need a 3.3V regulator instead.
> + regulator-name = "usb2_port_5v";
> + vin-supply = <&vcc5v0_sys>;
> + };
> +};
[ ... ]
> +&u2phy2_host {
> + phy-supply = <&usb2_port_5v>;
[Severity: Medium]
Could this assignment provide the wrong voltage to the 4G LTE module?
Assigning the 5V regulator to the USB PHY port that typically connects to the
4G LTE module's M.2 B-key slot incorrectly requests a 5V supply instead of the
required 3.3V. This could result in the module failing to receive power or
operating with incorrect regulator parameters.
> +};
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260907122406.1862398-1-diederik@cknow-tech.com?part=3
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 3/3] arm64: dts: rockchip: Add support for FriendlyElec NanoPC-T6 Plus
2026-09-07 12:34 ` sashiko-bot
@ 2026-09-07 14:12 ` Diederik de Haas
0 siblings, 0 replies; 6+ messages in thread
From: Diederik de Haas @ 2026-09-07 14:12 UTC (permalink / raw)
To: sashiko-reviews, Diederik de Haas
Cc: robh, conor+dt, Heiko Stuebner, devicetree
On Mon Sep 7, 2026 at 2:34 PM CEST, sashiko-bot wrote:
> Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
> - [Medium] Missing 3.3V regulator for the 4G LTE M.2 B-key connector and incorrect assignment of a 5V regulator.
> --
>
> commit 5412bbe217132fabf745d86e1c28d6b071b41043
> Author: Diederik de Haas <diederik@cknow-tech.com>
>
> arm64: dts: rockchip: Add support for FriendlyElec NanoPC-T6 Plus
>
> This commit introduces basic support for the FriendlyElec NanoPC-T6 Plus.
> It highlights the hardware differences from the NanoPC-T6 LTS, such as the
> addition of an M.2 B-key connector for a 4G LTE module.
>
> Link: https://wiki.friendlyelec.com/wiki/index.php/NanoPC-T6_Plus
> Link: https://wiki.friendlyelec.com/wiki/images/a/ad/NanoPC-T6_Plus_2511_SCH.pdf
> Link: http://everest-semi.com/pdf/ES8389%20PB.pdf
>
>> diff --git a/arch/arm64/boot/dts/rockchip/rk3588-nanopc-t6-plus.dts b/arch/arm64/boot/dts/rockchip/rk3588-nanopc-t6-plus.dts
>> new file mode 100644
>> index 0000000000000..f23ac4bd9f167
>> --- /dev/null
>> +++ b/arch/arm64/boot/dts/rockchip/rk3588-nanopc-t6-plus.dts
>> @@ -0,0 +1,91 @@
>> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
>> +/*
>> + * Copyright (c) 2021 Rockchip Electronics Co., Ltd.
>> + * Copyright (c) 2023 Thomas McKahan
>> + * Copyright (c) 2024 Linaro Ltd.
>> + */
>> +
>> +/dts-v1/;
>> +
>> +#include "rk3588-nanopc-t6.dtsi"
>> +
>> +/ {
>> + model = "FriendlyElec NanoPC-T6 Plus";
>> + compatible = "friendlyarm,nanopc-t6-plus", "rockchip,rk3588";
>> +
>> + codec_es_3v3: regulator-codec-es-3v3 {
>> + compatible = "regulator-fixed";
>> + regulator-min-microvolt = <3300000>;
>> + regulator-max-microvolt = <3300000>;
>> + regulator-name = "codec_es_3v3";
>> + vin-supply = <&vcc4v0_sys>;
>> + };
>> +
>> + usb2_port_5v: regulator-usb2-port-5v {
>> + compatible = "regulator-fixed";
>> + enable-active-high;
>> + gpio = <&gpio1 RK_PA4 GPIO_ACTIVE_HIGH>;
>> + pinctrl-0 = <&usb20_host_pwren_h_pin>;
>> + pinctrl-names = "default";
>> + regulator-min-microvolt = <5000000>;
>> + regulator-max-microvolt = <5000000>;
>
> [Severity: Medium]
> Is it correct to define this regulator with a 5V constraint?
>
> This uses the exact GPIO (gpio1 RK_PA4) previously used for the removed USB hub
> on the LTS board and retains the 5V constraint, whereas the new M.2 B-key slot
> would typically need a 3.3V regulator instead.
The problem is that the comment on the LTS board is wrong and so is the
regulator name fwiw. At least according to the schematics page 32,
the LTS has 2 5V regulators:
1) USB2_PORT_5V (Plus has this too and is described above)
2) USB2_10PIN_5V
There is no regulator named 'vcc5v0-usb20-host' in the schematics. The
downstream commit that added support for the Plus does though.
But there it's actually attached to u2phy3_host, not u2phy2_host.
ad 1) This is what powers the 2 USB 2.0 ports at the back, connected to
u2phy2_host port. The host-port -> phy-supply is "Phandle to a
regulator that provides power to VBUS".
On page 32 on the 'lower' left side of the page you can see it
does exactly that.
The MTT USB 2.0 HUB is only connected to the lower USB 2.0 port
for its DM and DP lines, not VBUS.
ad 2) Pin 1 & 2 of the 10-pin header are connected to USB2_10PIN_5V and
that isn't described at all in the LTS DTS file.
The USB Hub is identified as
0424:2514 Microchip Technology, Inc. (formerly SMSC) USB 2.0 Hub
and in a WIP commit I have this:
```
+&usb_host1_ehci {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ usb-hub@1 {
+ compatible = "usb424,2514";
+ reg = <1>;
+ reset-gpios = <&gpio1 RK_PA4 GPIO_ACTIVE_LOW>;
+ vdd-supply = <&vcc_3v3_s3>;
+ vdda-supply = <&vcc_3v3_s3>;
+ };
+};
```
But even without using that compatible, it loads the correct module.
But in all my testing thus far adding that to the DT did not bring any
benefits, it may even be worse ...
I have a MT7925 M.2 Wi-Fi+BT card in my NanoPC-T6 Plus and while
Wi-Fi looks great (1.4/1.9 Gbps connection), BT has been horrible.
Similar story for my BE200 M.2 Wi-Fi+BT card I have in my LTS board.
And the most annoying thing: it's behavior is very inconsistent.
My cheapo (cherry) BT keyboard works fine/decent and connecting to my FNB58 USB
meter over BT is great. Haven't tried anything useful with that latter one, but
it consistently finds it and when I connect to it, it succeeds. It even stays
connected \o/ :-O
All the rest? It either doesn't see it, it can't connect to it, or it
connects to it to drop the connection after a few seconds.
And after a reboot? No one knows what will happen.
I've had ONE time a stable connection between the MT7925 and my BT speakers.
Only it didn't show as a sink in pipewire/wireplumber so I couldn't actually
use it. I haven't been able to make a connection since.
My current theory is that the drivers are buggy, see f.e. here:
https://lore.kernel.org/linux-wireless/DL5P72WYQVOQ.23G9D01OY3BAA@cknow-tech.com/
and that's for the Wi-Fi part which actually work fine (AFAICT).
The problems may also be caused by an incomplete description of the USB 2.0 Hub.
Dunno if a full description is within my capabilities though.
But there are also other issues with both the LTS and Plus board, like the
RTC being recognized ... but only sometimes. I have a battery for it, but
that doesn't seem to matter much/at all. (I may know why though)
That's why I mentioned *basic* support for it.
AFAICT it's functionally equivalent to the NanoPC-T6 LTS.
>> + regulator-name = "usb2_port_5v";
>> + vin-supply = <&vcc5v0_sys>;
>> + };
>> +};
>
> [ ... ]
>
>> +&u2phy2_host {
>> + phy-supply = <&usb2_port_5v>;
>
> [Severity: Medium]
> Could this assignment provide the wrong voltage to the 4G LTE module?
>
> Assigning the 5V regulator to the USB PHY port that typically connects to the
> 4G LTE module's M.2 B-key slot incorrectly requests a 5V supply instead of the
> required 3.3V. This could result in the module failing to receive power or
> operating with incorrect regulator parameters.
>
>> +};
I don't have a 4G LTE module, so can't test/try that. But as the phy-supply
is connected to u2phy2_host, not u2phy3_host, I don't see how the phy-supply
for the 2 USB 2.0 ports at the back of the device could harm an 4G/LTE module.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2026-09-07 14:12 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-07 12:22 [PATCH 0/3] Add support for FriendlyElec NanoPC-T6 Plus Diederik de Haas
2026-09-07 12:22 ` [PATCH 1/3] dt-bindings: arm: rockchip: Add " Diederik de Haas
2026-09-07 12:22 ` [PATCH 2/3] arm64: dts: rockchip: Move sound cards to board files for NanoPC-T6 Diederik de Haas
2026-09-07 12:22 ` [PATCH 3/3] arm64: dts: rockchip: Add support for FriendlyElec NanoPC-T6 Plus Diederik de Haas
2026-09-07 12:34 ` sashiko-bot
2026-09-07 14:12 ` 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