From nobody Fri Sep 25 10:05:09 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 882E6472543; Mon, 14 Sep 2026 13:35:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789392910; cv=none; b=vFYrDuNOfjupPOaPQe9bI/dzuA3u17M79HUzxk31p6L2opUw3q8Q3qsRHfV3TnNO39rawufTVLnQaj+zZMP8/y9IEjGIFP8j3C6I2ocgu/0uVAhkbxU7JBS1anBNv2c8bDpKEB33pJJJWpXnKfcGaHGsmBIW/POP7yFyZwonloQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789392910; c=relaxed/simple; bh=SkfaGXmQEY5xHBDu4QnDfNDV0wqVF01smR5fjT/K4uc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Ntm9VZts1vdepVyBsKAJ0V8mtBnxf6t25gHnH2x0nHXMMtMlUp+14AsA9/RgIhB3/cF3JGCVUaMy02/TpdNi2wYDVAg83Uc1WWTsuuaOi5RqdOLZooZzoAiKwny53nwWbnWJOtJ8aaVyBy4v1Ej5fpZ79tPKB9WQ3KRxGM1PWMo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=LLqDDLlr; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="LLqDDLlr" Received: by smtp.kernel.org (Postfix) with ESMTPS id 23F4EC2BCFA; Mon, 14 Sep 2026 13:35:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1789392910; bh=SkfaGXmQEY5xHBDu4QnDfNDV0wqVF01smR5fjT/K4uc=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=LLqDDLlrULmcvs6aYTI19vZaNm15qYtWstADfX02PkphnDL8W2nTDX3C3LRH9xUH3 LlM/Q7rXou9aqPMmcoW6s1B3dpfb7qriwXWxvDk91R03fjbD9hTEJHmYebivb6eaRs g69GW+DuM6XL4/m1W+y+fruAGbs9ON163U+ZoGWIetqUXIJhFS1ay9c1LxwXqtUuFq ChJFphmUMix4xrnLQp+aWm+Mq4cNnqcyJkoR8rZBmu4uVfdA+dWnpY0K1VRKFhj50n O9mOXpj1VOgKFZs7OG+Q5qxW22RGF/BOQ3EBtvn3EWUgq6/KZl/71iBpT0WLIbMt31 y9r3dSdGOcyzg== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id F2A7CC88E70; Mon, 14 Sep 2026 13:35:09 +0000 (UTC) From: =?utf-8?q?=E5=AE=89=E5=AE=B9_via_B4_Relay?= Date: Mon, 14 Sep 2026 21:35:01 +0800 Subject: [PATCH v6 1/3] dt-bindings: arm: rockchip: Add FriendlyElec NanoPi R28S Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260914-r28s-upstream-v6-1-ea9edd75c126@proton.me> References: <20260914-r28s-upstream-v6-0-ea9edd75c126@proton.me> In-Reply-To: <20260914-r28s-upstream-v6-0-ea9edd75c126@proton.me> To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Heiko Stuebner Cc: devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, Chukun Pan , Jonas Karlman , jensen , Andrey Korshunov , Diederik de Haas , Conor Dooley , =?utf-8?q?=E5=AE=89=E5=AE=B9?= X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1524; i=HystericalDragons@proton.me; h=from:subject:message-id; bh=ukrn4M7rYY+NNZWj9jv6eu5CXunQ4mtIC9zTzcL2LVQ=; b=owGbwMvMwCUmepz3XUtTHjvjabUkhqzlP3ikwhaf+PBurlFc2vzoaGZHoR0X+JzOfzVMiy80t 7qSFLKto5SFQYyLQVZMkUV2U3Wk0KromUUsUsdh5rAygQxh4OIUgIncOsjwP3o7+90Irp9fmBwr rpdKWN55uTlaxqxFYKLZq+lTrx5vNmb4n8DkmH93sv6WTDEuj6u6lX3luz/9Ytu0zmXCjpP/dB0 O8AIA X-Developer-Key: i=HystericalDragons@proton.me; a=openpgp; fpr=1DB27B5912AA5B9972041AC715C70DEE84826E07 X-Endpoint-Received: by B4 Relay for HystericalDragons@proton.me/default with auth_id=1004 X-Original-From: =?utf-8?q?=E5=AE=89=E5=AE=B9?= Reply-To: HystericalDragons@proton.me From: =E5=AE=89=E5=AE=B9 The NanoPi R28S is a dual gigabit Ethernet router board based on the Rockchip RK3528 SoC. It shares its base devicetree with the NanoPi Zero2, so list both boards in a single entry. Acked-by: Conor Dooley Signed-off-by: =E5=AE=89=E5=AE=B9 --- Documentation/devicetree/bindings/arm/rockchip.yaml | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/Documentation/devicetree/bindings/arm/rockchip.yaml b/Document= ation/devicetree/bindings/arm/rockchip.yaml index 81744fbee9..dc04946db0 100644 --- a/Documentation/devicetree/bindings/arm/rockchip.yaml +++ b/Documentation/devicetree/bindings/arm/rockchip.yaml @@ -347,6 +347,13 @@ properties: - friendlyarm,nanopi-r2s-plus - const: rockchip,rk3328 =20 + - description: FriendlyElec NanoPi R28S/Zero2 + items: + - enum: + - friendlyarm,nanopi-r28s + - friendlyarm,nanopi-zero2 + - const: rockchip,rk3528 + - description: FriendlyElec NanoPi R3S items: - const: friendlyarm,nanopi-r3s @@ -388,11 +395,6 @@ properties: - const: friendlyarm,nanopi-r76s - const: rockchip,rk3576 =20 - - description: FriendlyElec NanoPi Zero2 - items: - - const: friendlyarm,nanopi-zero2 - - const: rockchip,rk3528 - - description: FriendlyElec NanoPC T6 series boards items: - enum: --=20 2.55.0 From nobody Fri Sep 25 10:05:09 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8526A47207C; Mon, 14 Sep 2026 13:35:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789392910; cv=none; b=ESXiOwUt8SqCefibeUr1aGmFfi63rZl4WnE8A5v4klL+EnUKbO5MS+Io9+xzHSRo3SP6KJPzKxUg1pu8gQ6HMGSwPA2LVtTkhSxMVM+9Wof3YhMZSe/3aKkHRkxPmmB2m7DNj8EgWSVCW81aWToVN8nyCSZ+LV+8Dac6XOW6N38= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789392910; c=relaxed/simple; bh=P46KOmCx7fH/TCivCbW1tZ8GWPzrD50R05svoDUdb9U=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=muwskTY7hoMjNYr/9xSl/ClvrATYZTzL4HpgYopwx1/ZB+Kd6Am+mVeYoRtr3HUWQcWsjqjqItO8WX8zy69r6hcS6ePDZS0ag4w3i82uaK3Q5Cj7eGyPSB7onKAeCLjz03EM9mzt9A/vXdpXM3+ll6EfZIKRY5MIHaRAETvj8s4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=sMUYMjgQ; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="sMUYMjgQ" Received: by smtp.kernel.org (Postfix) with ESMTPS id 3B0EAC2BCF5; Mon, 14 Sep 2026 13:35:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1789392910; bh=P46KOmCx7fH/TCivCbW1tZ8GWPzrD50R05svoDUdb9U=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=sMUYMjgQP6fylo8Ptttlu7MEfo7B/Xi2/NPUZdeY1m3qWlQ5YvPfQB8BS9gMG/7eK OV3TSMXOUq9da+WxGuCawTrfPTSJ3zmX86gLydFG2r1BES3tv+Sm5mv/ftkzdnnI5k tklqrcIWj+7XNxse4gbTx93B0/8irvalWC6P9izy+Zi7maRxwaHlpptGJ6zWI5If3U peo0yRGXYHLzE/ZrBUvzPKUAQjrHPmBV36OYjGpXLyak1vqgGMxnRoSXKKt9aZBxrD DvalMT3bza6zb2hCrxZYFLO6D2deZKGIdtH826m3C+7jsJ40LgFy/3QclPcKKnTi1W iobiiShKWXEVw== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1D63AC88E72; Mon, 14 Sep 2026 13:35:10 +0000 (UTC) From: =?utf-8?q?=E5=AE=89=E5=AE=B9_via_B4_Relay?= Date: Mon, 14 Sep 2026 21:35:02 +0800 Subject: [PATCH v6 2/3] arm64: dts: rockchip: Split out the common NanoPi RK3528 parts Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260914-r28s-upstream-v6-2-ea9edd75c126@proton.me> References: <20260914-r28s-upstream-v6-0-ea9edd75c126@proton.me> In-Reply-To: <20260914-r28s-upstream-v6-0-ea9edd75c126@proton.me> To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Heiko Stuebner Cc: devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, Chukun Pan , Jonas Karlman , jensen , Andrey Korshunov , Diederik de Haas , =?utf-8?q?=E5=AE=89=E5=AE=B9?= X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=15570; i=HystericalDragons@proton.me; h=from:subject:message-id; bh=w6IVcAHK5jObKwN/fYWuTvMVBu6uaGiKhMnNwvrw4KQ=; b=owGbwMvMwCUmepz3XUtTHjvjabUkhqzlP3jel7yc8qul/Jn12uUeE34ytznGPP3AufXrqdveP HcCFlV/7yhlYRDjYpAVU2SR3VQdKbQqemYRi9RxmDmsTCBDGLg4BWAiTO8YGW6Yr85OWM0qw1Vi L+O+WGVKWuHRlUpC/pPMZ//Vbf62JJnhn1LByVXldQ6qd+Ydm7XQRfCj80VemdgbfNPPfD++/F1 yPS8A X-Developer-Key: i=HystericalDragons@proton.me; a=openpgp; fpr=1DB27B5912AA5B9972041AC715C70DEE84826E07 X-Endpoint-Received: by B4 Relay for HystericalDragons@proton.me/default with auth_id=1004 X-Original-From: =?utf-8?q?=E5=AE=89=E5=AE=B9?= Reply-To: HystericalDragons@proton.me From: =E5=AE=89=E5=AE=B9 The FriendlyElec NanoPi Zero2 and the NanoPi R28S share their power tree, storage, RGMII Ethernet, RTC, SYS LED and debug console. Move those parts into rk3528-nanopi.dtsi so the NanoPi R28S can reuse them, and leave only the board specific nodes in the NanoPi Zero2 devicetree. Suggested-by: Chukun Pan Signed-off-by: =E5=AE=89=E5=AE=B9 --- .../boot/dts/rockchip/rk3528-nanopi-zero2.dts | 291 +----------------= ---- arch/arm64/boot/dts/rockchip/rk3528-nanopi.dtsi | 288 +++++++++++++++++= +++ 2 files changed, 297 insertions(+), 282 deletions(-) diff --git a/arch/arm64/boot/dts/rockchip/rk3528-nanopi-zero2.dts b/arch/ar= m64/boot/dts/rockchip/rk3528-nanopi-zero2.dts index 97d85124d2..8a7dbd539f 100644 --- a/arch/arm64/boot/dts/rockchip/rk3528-nanopi-zero2.dts +++ b/arch/arm64/boot/dts/rockchip/rk3528-nanopi-zero2.dts @@ -2,41 +2,13 @@ =20 /dts-v1/; =20 -#include #include -#include -#include "rk3528.dtsi" +#include "rk3528-nanopi.dtsi" =20 / { model =3D "FriendlyElec NanoPi Zero2"; compatible =3D "friendlyarm,nanopi-zero2", "rockchip,rk3528"; =20 - aliases { - ethernet0 =3D &gmac1; - i2c1 =3D &i2c1; - mmc0 =3D &sdhci; - mmc1 =3D &sdmmc; - serial0 =3D &uart0; - }; - - chosen { - stdout-path =3D "serial0:1500000n8"; - }; - - adc-keys-0 { - compatible =3D "adc-keys"; - io-channels =3D <&saradc 0>; - io-channel-names =3D "buttons"; - keyup-threshold-microvolt =3D <1800000>; - poll-interval =3D <100>; - - button-maskrom { - label =3D "MASK"; - linux,code =3D ; - press-threshold-microvolt =3D <0>; - }; - }; - adc-keys-1 { compatible =3D "adc-keys"; io-channels =3D <&saradc 1>; @@ -51,28 +23,6 @@ button-recovery { }; }; =20 - leds { - compatible =3D "gpio-leds"; - pinctrl-names =3D "default"; - pinctrl-0 =3D <&led1>, <&led_sys>; - - led-0 { - color =3D ; - default-state =3D "on"; - function =3D LED_FUNCTION_HEARTBEAT; - gpios =3D <&gpio4 RK_PB0 GPIO_ACTIVE_HIGH>; - linux,default-trigger =3D "heartbeat"; - }; - - led-1 { - color =3D ; - default-state =3D "on"; - function =3D LED_FUNCTION_STATUS; - gpios =3D <&gpio4 RK_PB1 GPIO_ACTIVE_HIGH>; - linux,default-trigger =3D "default-on"; - }; - }; - vcc0v6_ddr: regulator-0v6-vcc-ddr { compatible =3D "regulator-fixed"; regulator-name =3D "vcc0v6_ddr"; @@ -83,66 +33,6 @@ vcc0v6_ddr: regulator-0v6-vcc-ddr { vin-supply =3D <&vcc5v0_sys>; }; =20 - vdd_0v9: regulator-0v9-vdd { - compatible =3D "regulator-fixed"; - regulator-name =3D "vdd_0v9"; - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt =3D <900000>; - regulator-max-microvolt =3D <900000>; - vin-supply =3D <&vcc5v0_sys>; - }; - - vcc_ddr: regulator-1v1-vcc-ddr { - compatible =3D "regulator-fixed"; - regulator-name =3D "vcc_ddr"; - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt =3D <1100000>; - regulator-max-microvolt =3D <1100000>; - vin-supply =3D <&vcc5v0_sys>; - }; - - vcc_1v8: regulator-1v8-vcc { - compatible =3D "regulator-fixed"; - regulator-name =3D "vcc_1v8"; - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt =3D <1800000>; - regulator-max-microvolt =3D <1800000>; - vin-supply =3D <&vcc_3v3>; - }; - - vcc_3v3: regulator-3v3-vcc { - compatible =3D "regulator-fixed"; - regulator-name =3D "vcc_3v3"; - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt =3D <3300000>; - regulator-max-microvolt =3D <3300000>; - vin-supply =3D <&vcc5v0_sys>; - }; - - vcc3v3_sd: regulator-3v3-vcc-sd { - compatible =3D "regulator-fixed"; - gpios =3D <&gpio4 RK_PA1 GPIO_ACTIVE_LOW>; - pinctrl-names =3D "default"; - pinctrl-0 =3D <&sdmmc_pwren_l>; - regulator-name =3D "vcc3v3_sd"; - regulator-min-microvolt =3D <3300000>; - regulator-max-microvolt =3D <3300000>; - vin-supply =3D <&vcc_3v3>; - }; - - vcc5v0_sys: regulator-5v0-vcc-sys { - compatible =3D "regulator-fixed"; - regulator-name =3D "vcc5v0_sys"; - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt =3D <5000000>; - regulator-max-microvolt =3D <5000000>; - }; - usb2_host_5v: regulator-5v0-usb2-host { compatible =3D "regulator-fixed"; enable-active-high; @@ -154,138 +44,21 @@ usb2_host_5v: regulator-5v0-usb2-host { regulator-max-microvolt =3D <5000000>; vin-supply =3D <&vcc5v0_sys>; }; - - vccio_sd: regulator-vccio-sd { - compatible =3D "regulator-gpio"; - gpios =3D <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>; - pinctrl-names =3D "default"; - pinctrl-0 =3D <&sdmmc_vol_ctrl_h>; - regulator-name =3D "vccio_sd"; - regulator-min-microvolt =3D <1800000>; - regulator-max-microvolt =3D <3300000>; - states =3D <1800000 0x0>, <3300000 0x1>; - vin-supply =3D <&vcc5v0_sys>; - }; - - vdd_arm: regulator-vdd-arm { - compatible =3D "pwm-regulator"; - pwms =3D <&pwm1 0 5000 PWM_POLARITY_INVERTED>; - pwm-supply =3D <&vcc5v0_sys>; - regulator-name =3D "vdd_arm"; - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt =3D <746000>; - regulator-max-microvolt =3D <1201000>; - regulator-settling-time-up-us =3D <250>; - }; - - vdd_logic: regulator-vdd-logic { - compatible =3D "pwm-regulator"; - pwms =3D <&pwm2 0 5000 PWM_POLARITY_INVERTED>; - pwm-supply =3D <&vcc5v0_sys>; - regulator-name =3D "vdd_logic"; - regulator-always-on; - regulator-boot-on; - regulator-min-microvolt =3D <705000>; - regulator-max-microvolt =3D <1006000>; - regulator-settling-time-up-us =3D <250>; - }; -}; - -&cpu0 { - cpu-supply =3D <&vdd_arm>; -}; - -&cpu1 { - cpu-supply =3D <&vdd_arm>; -}; - -&cpu2 { - cpu-supply =3D <&vdd_arm>; -}; - -&cpu3 { - cpu-supply =3D <&vdd_arm>; -}; - -&gmac1 { - clock_in_out =3D "output"; - phy-handle =3D <&rgmii_phy>; - phy-mode =3D "rgmii-id"; - phy-supply =3D <&vcc_3v3>; - pinctrl-names =3D "default"; - pinctrl-0 =3D <&rgmii_miim>, <&rgmii_tx_bus2>, <&rgmii_rx_bus2>, - <&rgmii_rgmii_clk>, <&rgmii_rgmii_bus>; - status =3D "okay"; -}; - -&gpu { - mali-supply =3D <&vdd_logic>; - status =3D "okay"; }; =20 -&i2c1 { - pinctrl-names =3D "default"; - pinctrl-0 =3D <&i2c1m0_xfer>; - status =3D "okay"; +&leds { + pinctrl-0 =3D <&led1>, <&led_sys>; =20 - hym8563: rtc@51 { - compatible =3D "haoyu,hym8563"; - reg =3D <0x51>; - #clock-cells =3D <0>; - interrupt-parent =3D <&gpio4>; - interrupts =3D ; - pinctrl-names =3D "default"; - pinctrl-0 =3D <&rtc_int_l>; - wakeup-source; - }; -}; - -&mdio1 { - rgmii_phy: ethernet-phy@1 { - compatible =3D "ethernet-phy-ieee802.3-c22"; - reg =3D <0x1>; - pinctrl-names =3D "default"; - pinctrl-0 =3D <&gmac1_rstn_l>; - reset-assert-us =3D <20000>; - reset-deassert-us =3D <100000>; - reset-gpios =3D <&gpio4 RK_PC2 GPIO_ACTIVE_LOW>; + led-1 { + color =3D ; + default-state =3D "on"; + function =3D LED_FUNCTION_STATUS; + gpios =3D <&gpio4 RK_PB1 GPIO_ACTIVE_HIGH>; + linux,default-trigger =3D "default-on"; }; }; =20 &pinctrl { - ethernet { - gmac1_rstn_l: gmac1-rstn-l { - rockchip,pins =3D <4 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>; - }; - }; - - leds { - led1: led1 { - rockchip,pins =3D <4 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>; - }; - - led_sys: led-sys { - rockchip,pins =3D <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; - }; - }; - - rtc { - rtc_int_l: rtc-int-l { - rockchip,pins =3D <4 RK_PC1 RK_FUNC_GPIO &pcfg_pull_up>; - }; - }; - - sdmmc { - sdmmc_vol_ctrl_h: sdmmc-vol-ctrl-h { - rockchip,pins =3D <4 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>; - }; - - sdmmc_pwren_l: sdmmc-pwren-l { - rockchip,pins =3D <4 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>; - }; - }; - usb { usb20_host1_pwren: usb20-host1-pwren { rockchip,pins =3D <4 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; @@ -293,52 +66,6 @@ usb20_host1_pwren: usb20-host1-pwren { }; }; =20 -&pwm1 { - pinctrl-names =3D "default"; - pinctrl-0 =3D <&pwm1m0_pins>; - status =3D "okay"; -}; - -&pwm2 { - pinctrl-names =3D "default"; - pinctrl-0 =3D <&pwm2m0_pins>; - status =3D "okay"; -}; - -&saradc { - vref-supply =3D <&vcc_1v8>; - status =3D "okay"; -}; - -&sdhci { - bus-width =3D <8>; - cap-mmc-highspeed; - mmc-hs200-1_8v; - no-sd; - no-sdio; - non-removable; - vmmc-supply =3D <&vcc_3v3>; - vqmmc-supply =3D <&vcc_1v8>; - status =3D "okay"; -}; - -&sdmmc { - bus-width =3D <4>; - cap-mmc-highspeed; - cap-sd-highspeed; - disable-wp; - sd-uhs-sdr104; - vmmc-supply =3D <&vcc3v3_sd>; - vqmmc-supply =3D <&vccio_sd>; - status =3D "okay"; -}; - -&uart0 { - pinctrl-names =3D "default"; - pinctrl-0 =3D <&uart0m0_xfer>; - status =3D "okay"; -}; - &usb_host0_ehci { status =3D "okay"; }; diff --git a/arch/arm64/boot/dts/rockchip/rk3528-nanopi.dtsi b/arch/arm64/b= oot/dts/rockchip/rk3528-nanopi.dtsi new file mode 100644 index 0000000000..f15493f825 --- /dev/null +++ b/arch/arm64/boot/dts/rockchip/rk3528-nanopi.dtsi @@ -0,0 +1,288 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Common parts of the FriendlyElec RK3528 boards: NanoPi Zero2 and NanoPi= R28S. + */ + +#include +#include +#include +#include "rk3528.dtsi" + +/ { + aliases { + ethernet0 =3D &gmac1; + i2c1 =3D &i2c1; + mmc0 =3D &sdhci; + mmc1 =3D &sdmmc; + serial0 =3D &uart0; + }; + + chosen { + stdout-path =3D "serial0:1500000n8"; + }; + + adc-keys-0 { + compatible =3D "adc-keys"; + io-channels =3D <&saradc 0>; + io-channel-names =3D "buttons"; + keyup-threshold-microvolt =3D <1800000>; + poll-interval =3D <100>; + + button-maskrom { + label =3D "MASK"; + linux,code =3D ; + press-threshold-microvolt =3D <0>; + }; + }; + + leds: leds { + compatible =3D "gpio-leds"; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&led_sys>; + + led-0 { + color =3D ; + default-state =3D "on"; + function =3D LED_FUNCTION_HEARTBEAT; + gpios =3D <&gpio4 RK_PB0 GPIO_ACTIVE_HIGH>; + linux,default-trigger =3D "heartbeat"; + }; + }; + + vdd_0v9: regulator-0v9-vdd { + compatible =3D "regulator-fixed"; + regulator-name =3D "vdd_0v9"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt =3D <900000>; + regulator-max-microvolt =3D <900000>; + vin-supply =3D <&vcc5v0_sys>; + }; + + vcc_ddr: regulator-1v1-vcc-ddr { + compatible =3D "regulator-fixed"; + regulator-name =3D "vcc_ddr"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt =3D <1100000>; + regulator-max-microvolt =3D <1100000>; + vin-supply =3D <&vcc5v0_sys>; + }; + + vcc_1v8: regulator-1v8-vcc { + compatible =3D "regulator-fixed"; + regulator-name =3D "vcc_1v8"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + vin-supply =3D <&vcc_3v3>; + }; + + vcc_3v3: regulator-3v3-vcc { + compatible =3D "regulator-fixed"; + regulator-name =3D "vcc_3v3"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt =3D <3300000>; + regulator-max-microvolt =3D <3300000>; + vin-supply =3D <&vcc5v0_sys>; + }; + + vcc3v3_sd: regulator-3v3-vcc-sd { + compatible =3D "regulator-fixed"; + gpios =3D <&gpio4 RK_PA1 GPIO_ACTIVE_LOW>; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&sdmmc_pwren_l>; + regulator-name =3D "vcc3v3_sd"; + regulator-min-microvolt =3D <3300000>; + regulator-max-microvolt =3D <3300000>; + vin-supply =3D <&vcc_3v3>; + }; + + vcc5v0_sys: regulator-5v0-vcc-sys { + compatible =3D "regulator-fixed"; + regulator-name =3D "vcc5v0_sys"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt =3D <5000000>; + regulator-max-microvolt =3D <5000000>; + }; + + vccio_sd: regulator-vccio-sd { + compatible =3D "regulator-gpio"; + gpios =3D <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&sdmmc_vol_ctrl_h>; + regulator-name =3D "vccio_sd"; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <3300000>; + states =3D <1800000 0x0>, <3300000 0x1>; + vin-supply =3D <&vcc5v0_sys>; + }; + + vdd_arm: regulator-vdd-arm { + compatible =3D "pwm-regulator"; + pwms =3D <&pwm1 0 5000 PWM_POLARITY_INVERTED>; + pwm-supply =3D <&vcc5v0_sys>; + regulator-name =3D "vdd_arm"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt =3D <746000>; + regulator-max-microvolt =3D <1201000>; + regulator-settling-time-up-us =3D <250>; + }; + + vdd_logic: regulator-vdd-logic { + compatible =3D "pwm-regulator"; + pwms =3D <&pwm2 0 5000 PWM_POLARITY_INVERTED>; + pwm-supply =3D <&vcc5v0_sys>; + regulator-name =3D "vdd_logic"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt =3D <705000>; + regulator-max-microvolt =3D <1006000>; + regulator-settling-time-up-us =3D <250>; + }; +}; + +&cpu0 { + cpu-supply =3D <&vdd_arm>; +}; + +&cpu1 { + cpu-supply =3D <&vdd_arm>; +}; + +&cpu2 { + cpu-supply =3D <&vdd_arm>; +}; + +&cpu3 { + cpu-supply =3D <&vdd_arm>; +}; + +&gmac1 { + clock_in_out =3D "output"; + phy-handle =3D <&rgmii_phy>; + phy-mode =3D "rgmii-id"; + phy-supply =3D <&vcc_3v3>; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&rgmii_miim>, <&rgmii_tx_bus2>, <&rgmii_rx_bus2>, + <&rgmii_rgmii_clk>, <&rgmii_rgmii_bus>; + status =3D "okay"; +}; + +&gpu { + mali-supply =3D <&vdd_logic>; + status =3D "okay"; +}; + +&i2c1 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&i2c1m0_xfer>; + status =3D "okay"; + + hym8563: rtc@51 { + compatible =3D "haoyu,hym8563"; + reg =3D <0x51>; + #clock-cells =3D <0>; + interrupt-parent =3D <&gpio4>; + interrupts =3D ; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&rtc_int_l>; + wakeup-source; + }; +}; + +&mdio1 { + rgmii_phy: ethernet-phy@1 { + compatible =3D "ethernet-phy-ieee802.3-c22"; + reg =3D <0x1>; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&gmac1_rstn_l>; + reset-assert-us =3D <20000>; + reset-deassert-us =3D <100000>; + reset-gpios =3D <&gpio4 RK_PC2 GPIO_ACTIVE_LOW>; + }; +}; + +&pinctrl { + ethernet { + gmac1_rstn_l: gmac1-rstn-l { + rockchip,pins =3D <4 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + leds { + led1: led1 { + rockchip,pins =3D <4 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>; + }; + + led_sys: led-sys { + rockchip,pins =3D <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + rtc { + rtc_int_l: rtc-int-l { + rockchip,pins =3D <4 RK_PC1 RK_FUNC_GPIO &pcfg_pull_up>; + }; + }; + + sdmmc { + sdmmc_pwren_l: sdmmc-pwren-l { + rockchip,pins =3D <4 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>; + }; + + sdmmc_vol_ctrl_h: sdmmc-vol-ctrl-h { + rockchip,pins =3D <4 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; +}; + +&pwm1 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pwm1m0_pins>; + status =3D "okay"; +}; + +&pwm2 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pwm2m0_pins>; + status =3D "okay"; +}; + +&saradc { + vref-supply =3D <&vcc_1v8>; + status =3D "okay"; +}; + +&sdhci { + bus-width =3D <8>; + cap-mmc-highspeed; + mmc-hs200-1_8v; + no-sd; + no-sdio; + non-removable; + vmmc-supply =3D <&vcc_3v3>; + vqmmc-supply =3D <&vcc_1v8>; + status =3D "okay"; +}; + +&sdmmc { + bus-width =3D <4>; + cap-mmc-highspeed; + cap-sd-highspeed; + disable-wp; + sd-uhs-sdr104; + vmmc-supply =3D <&vcc3v3_sd>; + vqmmc-supply =3D <&vccio_sd>; + status =3D "okay"; +}; + +&uart0 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&uart0m0_xfer>; + status =3D "okay"; +}; --=20 2.55.0 From nobody Fri Sep 25 10:05:09 2026 Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 881CA472528; Mon, 14 Sep 2026 13:35:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789392910; cv=none; b=vCkGtjTduEf2Gfc8InqtkiqAmVErpmK7spvkYxhlEyAs+KBHj1xxd9BSq5MXtGjSGJqFEjV+bwjFeUkv+s7/r6moEyK4t/ySQMFzBsgkq6sgKsdSMnad94Hmhp6Y4YJgafeRrkHHGEee1WrCxm5eQtz9Id7KVJAUVgjFtX3gfxE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789392910; c=relaxed/simple; bh=S0bqte9siZrqZnDtdWnyZJkPTbp/4riMI2jQQfrALZs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=GW2QbtidtVSsytK8oG+brPhKUKC6Rcrdv291vCG5wP++ib24Uy9f2kxRPe5xRLx/pSvYon6G9bXM2/dod850uxlQEb52zhUnccFa2BFdkVjXzTNtK58azz7IFOrNCRO3jOY4ipxA9EERg0ERkr43eqoEKcjsPj3/TkxY+473uqE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=rV4ibUud; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="rV4ibUud" Received: by smtp.kernel.org (Postfix) with ESMTPS id 548C3C2BD04; Mon, 14 Sep 2026 13:35:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1789392910; bh=S0bqte9siZrqZnDtdWnyZJkPTbp/4riMI2jQQfrALZs=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=rV4ibUudy1AVJ+FQuqnciNffwY1mVYaOyupGmNfrxxsn36dtT3ur7AZ7x8WNxSjGh VcefBo1+5KrN+8QpPhuQ//QEYP6ZYjxqUUl/9Q30OZJ3+Coq11ZznlZpOshkLRUlzt 8Lbv3HI45TeCAj37EGPfw4bfQziq95q/sMFA8G/cEi7Ho1QQvG3bOgDArawVGsbhUw Bn4kvsCVt+KU/qEJ7uWudbly7nU96UqnFFp6Bj/jZfLqTf2OkQCdENV0+iDmjqyC/G YaBOm0YLZxXtPgGlBK6d385P5fCuAY+2OX2XNEwAWnTDw9wUKVWbotJbLzJ1TCza9P OSox7IaEc2Xxw== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3A19FC88E73; Mon, 14 Sep 2026 13:35:10 +0000 (UTC) From: =?utf-8?q?=E5=AE=89=E5=AE=B9_via_B4_Relay?= Date: Mon, 14 Sep 2026 21:35:03 +0800 Subject: [PATCH v6 3/3] arm64: dts: rockchip: Add devicetree for the FriendlyElec NanoPi R28S Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260914-r28s-upstream-v6-3-ea9edd75c126@proton.me> References: <20260914-r28s-upstream-v6-0-ea9edd75c126@proton.me> In-Reply-To: <20260914-r28s-upstream-v6-0-ea9edd75c126@proton.me> To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Heiko Stuebner Cc: devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, Chukun Pan , Jonas Karlman , jensen , Andrey Korshunov , Diederik de Haas , =?utf-8?q?=E5=AE=89=E5=AE=B9?= X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4997; i=HystericalDragons@proton.me; h=from:subject:message-id; bh=/vyK+Bs22B1ZYJ3TWXwv77tqbArdt32/JXMUhi4gQoU=; b=owGbwMvMwCUmepz3XUtTHjvjabUkhqzlP3jMTu4K+L7fscG14Wb1jtL3xoy5TrPr406UPlZr6 tt15Pr3jlIWBjEuBlkxRRbZTdWRQquiZxaxSB2HmcPKBDKEgYtTACYyqYfhJ+O17vU+LaGnntcx FyccFDqctO//3fXS3hNmNHw8vKRSI5jhf/RvJ+9FSw6nnXDXPX5gW0uke9dLC1ejvTK6BqvMHsh JsgEA X-Developer-Key: i=HystericalDragons@proton.me; a=openpgp; fpr=1DB27B5912AA5B9972041AC715C70DEE84826E07 X-Endpoint-Received: by B4 Relay for HystericalDragons@proton.me/default with auth_id=1004 X-Original-From: =?utf-8?q?=E5=AE=89=E5=AE=B9?= Reply-To: HystericalDragons@proton.me From: =E5=AE=89=E5=AE=B9 The NanoPi R28S is a dual gigabit Ethernet router board based on the Rockchip RK3528 SoC, designed and developed by FriendlyElec. It shares most of its design with the NanoPi Zero2, so it builds on the common rk3528-nanopi.dtsi. Specification: - Rockchip RK3528 - 1GB RAM - eMMC socket (optional) - MicroSD slot - 1x 1000Base-T (GMAC1, Realtek RTL8211F) - 1x 1000Base-T (PCIe, Realtek RTL8111H) - AICSemi AIC8800D80 SDIO WiFi - 3x LEDs (SYS, LAN, WAN) - 1x USB 2.0 Type-C, peripheral only, shared with the 5V power input - User and MaskROM buttons - Haoyu HYM8563 RTC - 1x USB Type-C debug UART (onboard WCH CH340E) Assisted-by: LLM Signed-off-by: =E5=AE=89=E5=AE=B9 --- arch/arm64/boot/dts/rockchip/Makefile | 1 + .../arm64/boot/dts/rockchip/rk3528-nanopi-r28s.dts | 146 +++++++++++++++++= ++++ 2 files changed, 147 insertions(+) diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/ro= ckchip/Makefile index b677914cd3..51a9889088 100644 --- a/arch/arm64/boot/dts/rockchip/Makefile +++ b/arch/arm64/boot/dts/rockchip/Makefile @@ -94,6 +94,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) +=3D rk3399-vicharak-vaaman.d= tb dtb-$(CONFIG_ARCH_ROCKCHIP) +=3D rk3399pro-rock-pi-n10.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) +=3D rk3528-armsom-sige1.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) +=3D rk3528-hinlink-h28k.dtb +dtb-$(CONFIG_ARCH_ROCKCHIP) +=3D rk3528-nanopi-r28s.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) +=3D rk3528-nanopi-zero2.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) +=3D rk3528-radxa-e20c.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) +=3D rk3528-rock-2a.dtb diff --git a/arch/arm64/boot/dts/rockchip/rk3528-nanopi-r28s.dts b/arch/arm= 64/boot/dts/rockchip/rk3528-nanopi-r28s.dts new file mode 100644 index 0000000000..a453a990b3 --- /dev/null +++ b/arch/arm64/boot/dts/rockchip/rk3528-nanopi-r28s.dts @@ -0,0 +1,146 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Copyright (c) 2022 Rockchip Electronics Co., Ltd. + * Copyright (c) 2026 FriendlyElec Computer Tech. Co., Ltd. + * Copyright (c) 2026 =E5=AE=89=E5=AE=B9 + */ + +/dts-v1/; + +#include +#include "rk3528-nanopi.dtsi" + +/ { + model =3D "FriendlyElec NanoPi R28S"; + compatible =3D "friendlyarm,nanopi-r28s", "rockchip,rk3528"; + + aliases { + mmc2 =3D &sdio0; + serial2 =3D &uart2; + }; + + gpio-keys { + compatible =3D "gpio-keys"; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&gpio4_b2_usr_btn>; + + button-user { + debounce-interval =3D <50>; + gpios =3D <&gpio4 RK_PB2 GPIO_ACTIVE_LOW>; + label =3D "USER"; + linux,code =3D ; + wakeup-source; + }; + }; + + sdio_pwrseq: sdio-pwrseq { + compatible =3D "mmc-pwrseq-simple"; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pwr_wf>; + post-power-on-delay-ms =3D <100>; + reset-gpios =3D <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>; + }; +}; + +&combphy { + status =3D "okay"; +}; + +&leds { + pinctrl-0 =3D <&led1>, <&led2>, <&led_sys>; + + led-1 { + color =3D ; + default-state =3D "off"; + function =3D LED_FUNCTION_WAN; + gpios =3D <&gpio4 RK_PB1 GPIO_ACTIVE_HIGH>; + linux,default-trigger =3D "netdev"; + }; + + led-2 { + color =3D ; + default-state =3D "off"; + function =3D LED_FUNCTION_LAN; + gpios =3D <&gpio4 RK_PB3 GPIO_ACTIVE_HIGH>; + linux,default-trigger =3D "netdev"; + }; +}; + +&pcie { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&pcie_eth_perstb>; + reset-gpios =3D <&gpio4 RK_PC0 GPIO_ACTIVE_HIGH>; + vpcie3v3-supply =3D <&vcc_3v3>; + status =3D "okay"; +}; + +&pinctrl { + gpio-keys { + gpio4_b2_usr_btn: gpio4-b2-usr-btn { + rockchip,pins =3D <4 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>; + }; + }; + + leds { + led2: led2 { + rockchip,pins =3D <4 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + pcie { + pcie_eth_perstb: pcie-eth-perstb { + rockchip,pins =3D <4 RK_PC0 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + wifi { + pwr_wf: pwr-wf { + rockchip,pins =3D <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; +}; + +&sdio0 { + bus-width =3D <4>; + cap-sd-highspeed; + cap-sdio-irq; + keep-power-in-suspend; + mmc-pwrseq =3D <&sdio_pwrseq>; + no-mmc; + no-sd; + non-removable; + sd-uhs-sdr104; + vmmc-supply =3D <&vcc_3v3>; + vqmmc-supply =3D <&vcc_1v8>; + status =3D "okay"; +}; + +&uart2 { + dma-names =3D "tx", "rx"; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&uart2m1_xfer>, <&uart2m1_ctsn>, <&uart2m1_rtsn>; + uart-has-rtscts; + status =3D "okay"; +}; + +&usb_host0_xhci { + /* + * The Type-C port is also the 5V power input. Both CC pins have a + * 5.1k pull-down, the ID pin is not connected and VBUS only feeds + * the 5V rail, so the port can only ever be a device. + */ + dr_mode =3D "peripheral"; + extcon =3D <&usb2phy>; + maximum-speed =3D "high-speed"; + phys =3D <&usb2phy_otg>; + phy-names =3D "usb2-phy"; + status =3D "okay"; +}; + +&usb2phy { + status =3D "okay"; +}; + +&usb2phy_otg { + status =3D "okay"; +}; --=20 2.55.0