From nobody Fri Sep 25 23:10:00 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 97C4C4F30FB; Mon, 7 Sep 2026 14:14:16 +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=1788790456; cv=none; b=TEJx9X/PQLP64FcDqOrPtdOvmCWYVCwYtWWTlW8gsqb4VsZRFQ8h1733qenn/K0wtN1rmoYzqmW1aEXpmv7R345ZOM0GxAqiu6vSz/FXTb+95bQfsyUWv/c7bplpvN5W0zBDyyHxhpPO+lmURCa1Y7aQEOikqlXKDyoOWsHX40E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788790456; c=relaxed/simple; bh=8Gwxp5aoWJUfNbbLdYN5LWeAcCfH1LcXcRH62cWgIps=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=VRAfgopbv756of6uGno/fAe6x4h/dHvVhzKp2uTFM4pz4Oel9Fj+kQAthgqSHqY+xwd2Lz48l2EWL+u8tYbmsuBLjq08TFn1dRkyejfrb6iPjYHmbExw9gWQlg8AahjEtBVEHytFUD2MTdJedP3Xe/5fczdnn0gFPox8ebGouYE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=jubPEiGN; 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="jubPEiGN" Received: by smtp.kernel.org (Postfix) with ESMTPS id 0AF2AC2BCC7; Mon, 7 Sep 2026 14:14:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1788790456; bh=8Gwxp5aoWJUfNbbLdYN5LWeAcCfH1LcXcRH62cWgIps=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=jubPEiGNjDDwgik7Tz0Ccvj2+ItCjZZflXnctzuyJsu3YrJTg8LwjGbiVqaHEmsAS zmu2zIvlrtJS99qPnYP1fx43eRLxi09BEQNuh6r2PDnoHg08HxxAX52BI58FkYr0WJ oz+PZ00T2XDi41GRTGCD0l/0YNib+snzJ9ukxS2/AfJ0BAtxBGjVCnBOL7Z7yOmW8N XHTfb/o68Wp3ZLsSD0e7b2jiOUS66u5XNvSCoViSJ36kuQNZFa+fuX+rwBq5s+N2K9 4F6VrVPUKD3FKKuYxigN3IGU6K47ZLUg/LyOvcf6cpS8eqOkrWJIVmi39TkpRJ218m j5N9UWUzcr9kQ== 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 D93E5C79F9E; Mon, 7 Sep 2026 14:14:15 +0000 (UTC) From: =?utf-8?q?=E5=AE=89=E5=AE=B9_via_B4_Relay?= Date: Mon, 07 Sep 2026 22:13:55 +0800 Subject: [PATCH v2 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: <20260907-r28s-upstream-v2-1-21ab570fc91c@proton.me> References: <20260907-r28s-upstream-v2-0-21ab570fc91c@proton.me> In-Reply-To: <20260907-r28s-upstream-v2-0-21ab570fc91c@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 , jensen , =?utf-8?q?=E5=AE=89=E5=AE=B9?= X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=920; i=HystericalDragons@proton.me; h=from:subject:message-id; bh=LDAlcJQezbRbao3W92BQlWiQhp4bd/SQs/nEjmwyH1U=; b=kA0DAAoWFccN7oSCbgcByyZiAGqexraiZ5L7ToCkfpy8sawe5RyogUK47lmrosMUIKy1kgRej oh1BAAWCgAdFiEEHbJ7WRKqW5lyBBrHFccN7oSCbgcFAmqexrYACgkQFccN7oSCbgfRLAD/Q2T9 KMFxgUqquC0UmhkV5yeXcW1ukQADSOjNBK+CCTEA/0EWfKl2yhK4z1JbJMWilZTOEPRJht2guaJ XNL4U0dwM 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. Signed-off-by: =E5=AE=89=E5=AE=B9 --- Documentation/devicetree/bindings/arm/rockchip.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/rockchip.yaml b/Document= ation/devicetree/bindings/arm/rockchip.yaml index 81744fbee9..709e2cc44d 100644 --- a/Documentation/devicetree/bindings/arm/rockchip.yaml +++ b/Documentation/devicetree/bindings/arm/rockchip.yaml @@ -347,6 +347,11 @@ properties: - friendlyarm,nanopi-r2s-plus - const: rockchip,rk3328 =20 + - description: FriendlyElec NanoPi R28S + items: + - const: friendlyarm,nanopi-r28s + - const: rockchip,rk3528 + - description: FriendlyElec NanoPi R3S items: - const: friendlyarm,nanopi-r3s --=20 2.55.0 From nobody Fri Sep 25 23:10:00 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 97D334F4738; Mon, 7 Sep 2026 14:14:16 +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=1788790456; cv=none; b=kytU99Ti4s92/Djl2OmKKpZDT3X/geAOe4dR3Rt/QeLtCGKiyM6rgwga/UV+wd8it2Kz32i8ruLWrkwL9rUqtgra/jiDhSPk76XpnrHY8Z+z4nunvi+QiECU32vdlrIAnkJdQo0beBs/RYjf+dtR26EraW4J1Evx9OX43WfMEvw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788790456; c=relaxed/simple; bh=NDFasX7f5O77tue5nZiVpOSge3mAPGUl0jJk43QC0GQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=bky7DYOGcksyyLIZ4HzgCZ3+RAi7YJQCZE6nU6+ENDqdIZJxmRE93slqQQY0w8DPn9UWipK/Y1YZ7yqs9O/ZYGbYIqpnaO+7MZ4gUwRtlHJjEhmSH5Nxn/kRLytSJoa97pR5ujG0oeLBXhloyTwJ6jXy1r1nnTRI06d/Zq7nq4I= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=eeTfojQ0; 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="eeTfojQ0" Received: by smtp.kernel.org (Postfix) with ESMTPS id 170F8C2BD01; Mon, 7 Sep 2026 14:14:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1788790456; bh=NDFasX7f5O77tue5nZiVpOSge3mAPGUl0jJk43QC0GQ=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=eeTfojQ0oyXXaTIkPr8d57TS1h87yx/HqOfGE+V8lHAqS4uP9HynEHjZ/UBr5R8A6 4KM21buXU1tDwTeiTuvYgwhSEzXdczfWG6uVxmnD6vjClFuM8Ficv7frZOaLO5putj XwhOWnzrGHVplW3G4uWhQ5CL7SzGPVd3yZW9goTsKHYLyef8d2v5TmRfuQghh6XfzV o7AnWfxXTYlBWUN1QFn3pnT7yqIAQdtGHn6DZIB/UYGlTJ2sS1hD1/dGjDhf6VUmX0 Wi/nTjMjO3D8pyb1RPIi74LpqNaawYTLcDY0TYeWFrRtcnanPq8ifDy1rbjCfRlz2Z 9nHo+b9ydOBKQ== 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 EC0BCC79F89; Mon, 7 Sep 2026 14:14:15 +0000 (UTC) From: =?utf-8?q?=E5=AE=89=E5=AE=B9_via_B4_Relay?= Date: Mon, 07 Sep 2026 22:13:56 +0800 Subject: [PATCH v2 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: <20260907-r28s-upstream-v2-2-21ab570fc91c@proton.me> References: <20260907-r28s-upstream-v2-0-21ab570fc91c@proton.me> In-Reply-To: <20260907-r28s-upstream-v2-0-21ab570fc91c@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 , jensen , =?utf-8?q?=E5=AE=89=E5=AE=B9?= X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=14628; i=HystericalDragons@proton.me; h=from:subject:message-id; bh=VQNKFK/7WLlIKiODmRr2dRbp9QoC8D3CcasFo2DcVuU=; b=owGbwMvMwCUmepz3XUtTHjvjabUkhqx5x7alJi05tTbHLatiZtuGowzMHDLdD3awP0+d8ls2h N29P25qRykLgxgXg6yYIovspupIoVXRM4tYpI7DzGFlAhnCwMUpABORms3wP6+mInCumVhmY/a/ DyeSPWQSYn6x2lSKTPf45m1xa2vuNobfLLapDK+1N2+Zsd1uh+W7fzv6Axwkb/zjcz/vHsm245I hDwA= 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 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 | 271 +----------------= --- arch/arm64/boot/dts/rockchip/rk3528-nanopi.dtsi | 279 +++++++++++++++++= ++++ 2 files changed, 280 insertions(+), 270 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..48e4273872 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>; @@ -83,66 +55,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,112 +66,9 @@ 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"; -}; - -&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>; - }; }; =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>; @@ -270,22 +79,6 @@ led_sys: led-sys { }; }; =20 - 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 +86,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"; }; @@ -347,23 +94,7 @@ &usb_host0_ohci { status =3D "okay"; }; =20 -&usb_host0_xhci { - 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_host { phy-supply =3D <&usb2_host_5v>; status =3D "okay"; }; - -&usb2phy_otg { - 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..8d9d0056a0 --- /dev/null +++ b/arch/arm64/boot/dts/rockchip/rk3528-nanopi.dtsi @@ -0,0 +1,279 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) +/* + * Common parts of the FriendlyElec RK3528 boards: NanoPi Zero2 and NanoPi= R28S. + */ + +#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>; + }; + }; + + 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>; + }; + }; + + 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"; +}; + +&usb_host0_xhci { + 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 From nobody Fri Sep 25 23:10:00 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 97EAC4F473D; Mon, 7 Sep 2026 14:14:16 +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=1788790456; cv=none; b=AqVzTTGtINueSJWVOx2ErDy/4n1UIFduC1+dr7CT9KSvPeBCRf2Hd1I8v1BTp/964SOwDAmoNU4+qJ7dljb8wI+dMTAY3s2I1M/89ElMFH189cxGYHt1ulcy7WN7boBfMrCwk5OCttxd7ldVIq/UE0H0pmqv4WamnANdhL6y3jA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788790456; c=relaxed/simple; bh=3qZ+J/XmDBuE3g4C3PLRcoFV1/MtG72DbEfHckRlKRE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=nBSytaNVS+lOfrAWFPR+qnxA+SMrkaHflP9bS4WJKc18NmJDcScMgGmijLmFuAD4XTu1veTGNtLj696d7eNg/LnBm8WhR5zIEdb49fQ+yDgQfvGyDiGY2u4h5lOJxHIXXVN5RguTTjwJhyMSbmGcXHZJvlOoJIpfiE4AFyOlaM8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=PY9YQuUl; 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="PY9YQuUl" Received: by smtp.kernel.org (Postfix) with ESMTPS id 26EF8C2BD00; Mon, 7 Sep 2026 14:14:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1788790456; bh=3qZ+J/XmDBuE3g4C3PLRcoFV1/MtG72DbEfHckRlKRE=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=PY9YQuUl0JEvQsH06pWJ5djXDIS7k8alKP14IKFu2PX9Cg65bKAXi9N2EauV78sjm fKNyim5ltsFnqtWiVj7n5nWp3m8H6K5xsia0AxtL8SP/KDq/AA4S4NCZ6GUQ8dMSRT ZU3YERh3OUIgJuWfkRHMnskWOEnFSNzVrjDorfYYLMLOU1Kr9sn/MrkDZoK83myFKh H87noRjSfH+xuLY3DKIF5o9yQbDdEaE//4fxHK32tz3naR6EfyX6/AxrlKRZoL2sGh v7ZzBjmqhmsuZBBDW8EJeaFBf9sghNZQDD+6yJo+ZTw5TD4WadvjOMum2PXVopcilf pqNdJfUhAPGNA== 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 0C5FCC79FA1; Mon, 7 Sep 2026 14:14:16 +0000 (UTC) From: =?utf-8?q?=E5=AE=89=E5=AE=B9_via_B4_Relay?= Date: Mon, 07 Sep 2026 22:13:57 +0800 Subject: [PATCH v2 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: <20260907-r28s-upstream-v2-3-21ab570fc91c@proton.me> References: <20260907-r28s-upstream-v2-0-21ab570fc91c@proton.me> In-Reply-To: <20260907-r28s-upstream-v2-0-21ab570fc91c@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 , jensen , =?utf-8?q?=E5=AE=89=E5=AE=B9?= X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=4981; i=HystericalDragons@proton.me; h=from:subject:message-id; bh=vRo4+B4gjkutm/cZvKKHGafiCT5eYr3P07OBq0OyB9w=; b=kA0DAAoWFccN7oSCbgcByyZiAGqexraibOYY+Y6i1iAZz7luTWTNt+JmOeUg1+wOX8RPii5g/ oh1BAAWCgAdFiEEHbJ7WRKqW5lyBBrHFccN7oSCbgcFAmqexrYACgkQFccN7oSCbgd63gEAuDfl NDZYcE80hetV82lOLYQaPjRSWs3TcKr/xu3gWDkA/jVUush8jT+HYKI6BmdfKHtEOokzS6jT2UN SFTe57B8I 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 | 142 +++++++++++++++++= ++++ 2 files changed, 143 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..b9e9f5af4e --- /dev/null +++ b/arch/arm64/boot/dts/rockchip/rk3528-nanopi-r28s.dts @@ -0,0 +1,142 @@ +// 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; + }; + + gpio-keys { + compatible =3D "gpio-keys"; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&usr_btn>; + + button-user { + debounce-interval =3D <50>; + gpios =3D <&gpio4 RK_PB2 GPIO_ACTIVE_LOW>; + label =3D "USER"; + linux,code =3D ; + wakeup-source; + }; + }; + + leds { + compatible =3D "gpio-leds"; + pinctrl-names =3D "default"; + pinctrl-0 =3D <&led1>, <&led2>, <&led_sys>; + + led-lan { + color =3D ; + default-state =3D "off"; + function =3D LED_FUNCTION_LAN; + gpios =3D <&gpio4 RK_PB3 GPIO_ACTIVE_HIGH>; + linux,default-trigger =3D "netdev"; + }; + + led-sys { + 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-wan { + color =3D ; + default-state =3D "off"; + function =3D LED_FUNCTION_WAN; + gpios =3D <&gpio4 RK_PB1 GPIO_ACTIVE_HIGH>; + linux,default-trigger =3D "netdev"; + }; + }; + + 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"; +}; + +&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 { + usr_btn: usr-btn { + rockchip,pins =3D <4 RK_PB2 RK_FUNC_GPIO &pcfg_pull_up>; + }; + }; + + leds { + led1: led1 { + rockchip,pins =3D <4 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>; + }; + + led2: led2 { + rockchip,pins =3D <4 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>; + }; + + led_sys: led-sys { + rockchip,pins =3D <4 RK_PB0 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>; + non-removable; + sd-uhs-sdr104; + vqmmc-supply =3D <&vcc_1v8>; + status =3D "okay"; +}; + +&uart2 { + pinctrl-names =3D "default"; + pinctrl-0 =3D <&uart2m1_xfer>, <&uart2m1_ctsn>, <&uart2m1_rtsn>; + uart-has-rtscts; + status =3D "okay"; +}; + +&usb_host0_xhci { + /* Type-C port, shared with the 5V power input */ + dr_mode =3D "peripheral"; +}; --=20 2.55.0