* [PATCH 0/2] arm64: dts: rockchip: NanoPi R2S Plus: fix io-domains, enable SDIO Wi-Fi
@ 2026-10-23 23:59 Deomid rojer Ryabkov
2026-10-23 23:59 ` [PATCH 1/2] arm64: dts: rockchip: Fix VCCIO4/VCCIO6 supplies on NanoPi R2S Plus Deomid rojer Ryabkov
2026-10-23 23:59 ` [PATCH 2/2] arm64: dts: rockchip: Enable SDIO Wi-Fi " Deomid rojer Ryabkov
0 siblings, 2 replies; 3+ messages in thread
From: Deomid rojer Ryabkov @ 2026-10-23 23:59 UTC (permalink / raw)
To: Heiko Stuebner
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, devicetree,
linux-arm-kernel, linux-rockchip, linux-kernel,
Sergey Bostandzhyan, Jensen Huang, Deomid rojer Ryabkov
Patch 1 fixes the VCCIO4/VCCIO6 supplies of the NanoPi R2S Plus, which
were inherited from the NanoPi R2S but are wired differently (see the
schematics referenced in the patch).
Patch 2 enables the M.2 E-key SDIO slot, which FriendlyElec populates
with an optional RTL8822CS (Fn-Link 6222B-SRC) Wi-Fi module.
With these the module works at 50 MHz high-speed. Reaching SDR104 needs
an mmc core fix for the module's CMD11 handling, posted to linux-mmc:
https://lore.kernel.org/linux-mmc/20261023232813.2983368-1-rojer@rojer.me/
Tested on a NanoPi R2S Plus; dtbs_check reports no new warnings.
Deomid rojer Ryabkov (2):
arm64: dts: rockchip: Fix VCCIO4/VCCIO6 supplies on NanoPi R2S Plus
arm64: dts: rockchip: Enable SDIO Wi-Fi on NanoPi R2S Plus
.../dts/rockchip/rk3328-nanopi-r2s-plus.dts | 61 +++++++++++++++++++
1 file changed, 61 insertions(+)
--
2.53.0
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH 1/2] arm64: dts: rockchip: Fix VCCIO4/VCCIO6 supplies on NanoPi R2S Plus
2026-10-23 23:59 [PATCH 0/2] arm64: dts: rockchip: NanoPi R2S Plus: fix io-domains, enable SDIO Wi-Fi Deomid rojer Ryabkov
@ 2026-10-23 23:59 ` Deomid rojer Ryabkov
2026-10-23 23:59 ` [PATCH 2/2] arm64: dts: rockchip: Enable SDIO Wi-Fi " Deomid rojer Ryabkov
1 sibling, 0 replies; 3+ messages in thread
From: Deomid rojer Ryabkov @ 2026-10-23 23:59 UTC (permalink / raw)
To: Heiko Stuebner
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, devicetree,
linux-arm-kernel, linux-rockchip, linux-kernel,
Sergey Bostandzhyan, Jensen Huang, Deomid rojer Ryabkov
The NanoPi R2S Plus inherits its io-domain supplies from the NanoPi R2S,
but the two boards are wired differently. From sheet 6 of the schematics:
NanoPi R2S (NanoPi-R2S-V1.1-2009-Schematic.pdf):
VCCIO4 (U12) = VDD_PHY_IO
VCCIO6 (H6) = VCC_IO_33
NanoPi R2S Plus (NanoPi_R2S_Plus_2309_SCH.PDF):
VCCIO4 (U12) = VCC_IO_33
VCCIO6 (H6) = VCC_18
rk3328-nanopi-r2.dtsi describes the R2S. On the R2S Plus this leaves the
VCCIO4 domain configured for 1.8V while supplied with 3.3V, and the
VCCIO6 domain, which carries the M.2 E-key SDIO signals, configured for
3.3V while supplied with 1.8V; the latter prevents the optional RTL8822CS
Wi-Fi module from initialising at all.
Describe the actual supplies. The vendor's own kernel uses the same
values [1], although there they come from a .dtsi shared by the whole
NanoPi R2 family, so the schematics above are the reference. Tested on
an R2S Plus: Ethernet still links at 1Gbps and the SDIO Wi-Fi module
enumerates.
[1] https://github.com/friendlyarm/kernel-rockchip/blob/9238df9d21e835bba35c8ba5248784387936cb2e/arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2-common.dtsi#L425-L435
Fixes: b8c028782922 ("arm64: dts: rockchip: Add DTS for FriendlyARM NanoPi R2S Plus")
Signed-off-by: Deomid rojer Ryabkov <rojer@rojer.me>
---
arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s-plus.dts | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s-plus.dts b/arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s-plus.dts
index 4eff0503928..6ba4a74cb1f 100644
--- a/arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s-plus.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s-plus.dts
@@ -29,3 +29,8 @@ &emmc {
pinctrl-0 = <&emmc_clk &emmc_cmd &emmc_bus8>;
status = "okay";
};
+
+&io_domains {
+ vccio4-supply = <&vcc_io_33>;
+ vccio6-supply = <&vcc_18>;
+};
--
2.53.0
^ permalink raw reply [flat|nested] 3+ messages in thread* [PATCH 2/2] arm64: dts: rockchip: Enable SDIO Wi-Fi on NanoPi R2S Plus
2026-10-23 23:59 [PATCH 0/2] arm64: dts: rockchip: NanoPi R2S Plus: fix io-domains, enable SDIO Wi-Fi Deomid rojer Ryabkov
2026-10-23 23:59 ` [PATCH 1/2] arm64: dts: rockchip: Fix VCCIO4/VCCIO6 supplies on NanoPi R2S Plus Deomid rojer Ryabkov
@ 2026-10-23 23:59 ` Deomid rojer Ryabkov
1 sibling, 0 replies; 3+ messages in thread
From: Deomid rojer Ryabkov @ 2026-10-23 23:59 UTC (permalink / raw)
To: Heiko Stuebner
Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, devicetree,
linux-arm-kernel, linux-rockchip, linux-kernel,
Sergey Bostandzhyan, Jensen Huang, Deomid rojer Ryabkov
The NanoPi R2S Plus has an M.2 E-key slot wired to the sdmmc_ext
controller in 4-bit SDIO mode, where FriendlyElec fit an optional
Fn-Link 6222B-SRC (Realtek RTL8822CS) module:
- SDIO signalling at a fixed 1.8V (VCC_18)
- WIFI_REG_ON on GPIO3_B0, 32kHz sleep clock from the RK805 CLKOUT2
Enable the controller and add the power sequence. The SDIO pins need
8mA drive strength for SDR104 tuning to succeed, as in the vendor
device tree [1]; with the SoC default of 4mA no sample phase works.
On boards without the module the controller gives up after about 0.2s
("mmc2: Failed to initialize a non-removable card"); nothing else is
affected.
With the mmc core change for the module's CMD11 handling at a fixed
1.8V [2], the module is tuned to SDR104 at 150 MHz and works with the
rtw88_8822cs driver; without it, it runs in high-speed mode at 50 MHz.
[1] https://github.com/friendlyarm/kernel-rockchip/blob/9238df9d21e835bba35c8ba5248784387936cb2e/arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2-rev24.dts#L144-L172
[2] https://lore.kernel.org/linux-mmc/20261023232813.2983368-1-rojer@rojer.me/
Signed-off-by: Deomid rojer Ryabkov <rojer@rojer.me>
---
.../dts/rockchip/rk3328-nanopi-r2s-plus.dts | 56 +++++++++++++++++++
1 file changed, 56 insertions(+)
diff --git a/arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s-plus.dts b/arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s-plus.dts
index 6ba4a74cb1f..db19a18ae45 100644
--- a/arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s-plus.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3328-nanopi-r2s-plus.dts
@@ -17,6 +17,15 @@ / {
aliases {
mmc1 = &emmc;
};
+
+ sdio_pwrseq: sdio-pwrseq {
+ compatible = "mmc-pwrseq-simple";
+ clocks = <&rk805 1>;
+ clock-names = "ext_clock";
+ pinctrl-names = "default";
+ pinctrl-0 = <&wifi_reg_on_h>;
+ reset-gpios = <&gpio3 RK_PB0 GPIO_ACTIVE_LOW>;
+ };
};
&emmc {
@@ -34,3 +43,50 @@ &io_domains {
vccio4-supply = <&vcc_io_33>;
vccio6-supply = <&vcc_18>;
};
+
+&pinctrl {
+ wifi {
+ wifi_reg_on_h: wifi-reg-on-h {
+ rockchip,pins = <3 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
+ };
+ };
+};
+
+/*
+ * SDR104 tuning fails with the default 4mA drive strength, use 8mA like the
+ * vendor device tree.
+ */
+&sdmmc0ext_bus4 {
+ rockchip,pins =
+ <3 RK_PA4 3 &pcfg_pull_up_8ma>,
+ <3 RK_PA5 3 &pcfg_pull_up_8ma>,
+ <3 RK_PA6 3 &pcfg_pull_up_8ma>,
+ <3 RK_PA7 3 &pcfg_pull_up_8ma>;
+};
+
+&sdmmc0ext_clk {
+ rockchip,pins = <3 RK_PA2 3 &pcfg_pull_none_8ma>;
+};
+
+&sdmmc0ext_cmd {
+ rockchip,pins = <3 RK_PA0 3 &pcfg_pull_up_8ma>;
+};
+
+/* Optional M.2 E-key SDIO Wi-Fi module (Fn-Link 6222B-SRC, RTL8822CS) */
+&sdmmc_ext {
+ bus-width = <4>;
+ cap-sd-highspeed;
+ cap-sdio-irq;
+ disable-wp;
+ keep-power-in-suspend;
+ mmc-pwrseq = <&sdio_pwrseq>;
+ no-mmc;
+ no-sd;
+ non-removable;
+ pinctrl-names = "default";
+ pinctrl-0 = <&sdmmc0ext_clk &sdmmc0ext_cmd &sdmmc0ext_bus4>;
+ sd-uhs-sdr104;
+ vmmc-supply = <&vcc_io_33>;
+ vqmmc-supply = <&vcc_18>;
+ status = "okay";
+};
--
2.53.0
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-10-24 0:00 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-10-23 23:59 [PATCH 0/2] arm64: dts: rockchip: NanoPi R2S Plus: fix io-domains, enable SDIO Wi-Fi Deomid rojer Ryabkov
2026-10-23 23:59 ` [PATCH 1/2] arm64: dts: rockchip: Fix VCCIO4/VCCIO6 supplies on NanoPi R2S Plus Deomid rojer Ryabkov
2026-10-23 23:59 ` [PATCH 2/2] arm64: dts: rockchip: Enable SDIO Wi-Fi " Deomid rojer Ryabkov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®