* [PATCH 0/6] arm64: dts: rockchip: Add ROCK 2A/2F, Sige1 and NanoPi Zero2 @ 2025-07-08 22:48 Jonas Karlman 2025-07-08 22:48 ` [PATCH 1/6] dt-bindings: arm: rockchip: Add Radxa ROCK 2A/2F Jonas Karlman ` (5 more replies) 0 siblings, 6 replies; 15+ messages in thread From: Jonas Karlman @ 2025-07-08 22:48 UTC (permalink / raw) To: Heiko Stuebner, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: Yao Zi, Chukun Pan, linux-rockchip, devicetree, linux-arm-kernel, linux-kernel, Jonas Karlman This series adds dt-bindings and initial device tree for the following Rockchip RK3528A boards: - Radxa ROCK 2A/2F - ArmSoM Sige1 - FriendlyElec NanoPi Zero2 The bt/wifi_reg_on pins are described in the device tree using rfkill-gpio nodes. These boards can be booted from emmc or sd-card using the U-Boot 2025.07 generic-rk3528 target. The patch "arm64: dts: rockchip: Fix pinctrl node names for RK3528" [1] is recommended to remove a few CHECK_DTBS=y W=2 node_name_chars_strict warnings for these boards. [1] https://lore.kernel.org/r/20250621113859.2146400-1-jonas@kwiboo.se Jonas Karlman (6): dt-bindings: arm: rockchip: Add Radxa ROCK 2A/2F arm64: dts: rockchip: Add Radxa ROCK 2A/2F dt-bindings: arm: rockchip: Add ArmSoM Sige1 arm64: dts: rockchip: Add ArmSoM Sige1 dt-bindings: arm: rockchip: Add FriendlyElec NanoPi Zero2 arm64: dts: rockchip: Add FriendlyElec NanoPi Zero2 .../devicetree/bindings/arm/rockchip.yaml | 17 + arch/arm64/boot/dts/rockchip/Makefile | 4 + .../boot/dts/rockchip/rk3528-armsom-sige1.dts | 449 ++++++++++++++++++ .../boot/dts/rockchip/rk3528-nanopi-zero2.dts | 341 +++++++++++++ .../boot/dts/rockchip/rk3528-rock-2.dtsi | 292 ++++++++++++ .../boot/dts/rockchip/rk3528-rock-2a.dts | 82 ++++ .../boot/dts/rockchip/rk3528-rock-2f.dts | 10 + 7 files changed, 1195 insertions(+) create mode 100644 arch/arm64/boot/dts/rockchip/rk3528-armsom-sige1.dts create mode 100644 arch/arm64/boot/dts/rockchip/rk3528-nanopi-zero2.dts create mode 100644 arch/arm64/boot/dts/rockchip/rk3528-rock-2.dtsi create mode 100644 arch/arm64/boot/dts/rockchip/rk3528-rock-2a.dts create mode 100644 arch/arm64/boot/dts/rockchip/rk3528-rock-2f.dts -- 2.49.0 ^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH 1/6] dt-bindings: arm: rockchip: Add Radxa ROCK 2A/2F 2025-07-08 22:48 [PATCH 0/6] arm64: dts: rockchip: Add ROCK 2A/2F, Sige1 and NanoPi Zero2 Jonas Karlman @ 2025-07-08 22:48 ` Jonas Karlman 2025-07-08 22:48 ` [PATCH 2/6] arm64: dts: " Jonas Karlman ` (4 subsequent siblings) 5 siblings, 0 replies; 15+ messages in thread From: Jonas Karlman @ 2025-07-08 22:48 UTC (permalink / raw) To: Heiko Stuebner, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: Yao Zi, Chukun Pan, linux-rockchip, devicetree, linux-arm-kernel, linux-kernel, Jonas Karlman The ROCK 2A and ROCK 2F is a high-performance single board computer developed by Radxa, based on the Rockchip RK3528A SoC. Add devicetree binding documentation for the Radxa ROCK 2A and ROCK 2F boards. Signed-off-by: Jonas Karlman <jonas@kwiboo.se> --- Documentation/devicetree/bindings/arm/rockchip.yaml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/rockchip.yaml b/Documentation/devicetree/bindings/arm/rockchip.yaml index 58b9312c6c73..6636f98561e7 100644 --- a/Documentation/devicetree/bindings/arm/rockchip.yaml +++ b/Documentation/devicetree/bindings/arm/rockchip.yaml @@ -875,6 +875,13 @@ properties: - const: radxa,rock - const: rockchip,rk3188 + - description: Radxa ROCK 2A/2F + items: + - enum: + - radxa,rock-2a + - radxa,rock-2f + - const: rockchip,rk3528 + - description: Radxa ROCK Pi 4A/A+/B/B+/C items: - enum: -- 2.49.0 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 2/6] arm64: dts: rockchip: Add Radxa ROCK 2A/2F 2025-07-08 22:48 [PATCH 0/6] arm64: dts: rockchip: Add ROCK 2A/2F, Sige1 and NanoPi Zero2 Jonas Karlman 2025-07-08 22:48 ` [PATCH 1/6] dt-bindings: arm: rockchip: Add Radxa ROCK 2A/2F Jonas Karlman @ 2025-07-08 22:48 ` Jonas Karlman 2025-07-09 4:25 ` Yao Zi 2025-07-08 22:48 ` [PATCH 3/6] dt-bindings: arm: rockchip: Add ArmSoM Sige1 Jonas Karlman ` (3 subsequent siblings) 5 siblings, 1 reply; 15+ messages in thread From: Jonas Karlman @ 2025-07-08 22:48 UTC (permalink / raw) To: Heiko Stuebner, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: Yao Zi, Chukun Pan, linux-rockchip, devicetree, linux-arm-kernel, linux-kernel, Jonas Karlman The ROCK 2A and ROCK 2F is a high-performance single board computer developed by Radxa, based on the Rockchip RK3528A SoC. Add initial device tree for the Radxa ROCK 2A and ROCK 2F boards. Signed-off-by: Jonas Karlman <jonas@kwiboo.se> --- Schematics: - https://dl.radxa.com/rock2/2a/v1.2/radxa_rock_2a_v1.2_schematic.pdf - https://dl.radxa.com/rock2/2f/radxa_rock2f_v1.01_schematic.pdf --- arch/arm64/boot/dts/rockchip/Makefile | 2 + .../boot/dts/rockchip/rk3528-rock-2.dtsi | 292 ++++++++++++++++++ .../boot/dts/rockchip/rk3528-rock-2a.dts | 82 +++++ .../boot/dts/rockchip/rk3528-rock-2f.dts | 10 + 4 files changed, 386 insertions(+) create mode 100644 arch/arm64/boot/dts/rockchip/rk3528-rock-2.dtsi create mode 100644 arch/arm64/boot/dts/rockchip/rk3528-rock-2a.dts create mode 100644 arch/arm64/boot/dts/rockchip/rk3528-rock-2f.dts diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile index e43565c53c56..d0d21f5029ea 100644 --- a/arch/arm64/boot/dts/rockchip/Makefile +++ b/arch/arm64/boot/dts/rockchip/Makefile @@ -90,6 +90,8 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-sapphire.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-sapphire-excavator.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399pro-rock-pi-n10.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3528-radxa-e20c.dtb +dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3528-rock-2a.dtb +dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3528-rock-2f.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3562-evb2-v10.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-anbernic-rg-arc-d.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-anbernic-rg-arc-s.dtb diff --git a/arch/arm64/boot/dts/rockchip/rk3528-rock-2.dtsi b/arch/arm64/boot/dts/rockchip/rk3528-rock-2.dtsi new file mode 100644 index 000000000000..fc23c51836b1 --- /dev/null +++ b/arch/arm64/boot/dts/rockchip/rk3528-rock-2.dtsi @@ -0,0 +1,292 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) + +/dts-v1/; + +#include <dt-bindings/input/input.h> +#include <dt-bindings/leds/common.h> +#include <dt-bindings/pwm/pwm.h> +#include "rk3528.dtsi" + +/ { + aliases { + i2c1 = &i2c1; + mmc0 = &sdhci; + mmc1 = &sdmmc; + serial0 = &uart0; + }; + + chosen { + stdout-path = "serial0:1500000n8"; + }; + + adc-keys { + compatible = "adc-keys"; + io-channels = <&saradc 0>; + io-channel-names = "buttons"; + keyup-threshold-microvolt = <1800000>; + poll-interval = <100>; + + button-maskrom { + label = "MASKROM"; + linux,code = <KEY_SETUP>; + press-threshold-microvolt = <0>; + }; + }; + + leds: leds { + compatible = "gpio-leds"; + pinctrl-names = "default"; + pinctrl-0 = <&state_led_b>; + + led-state { + color = <LED_COLOR_ID_BLUE>; + default-state = "on"; + function = LED_FUNCTION_HEARTBEAT; + gpios = <&gpio1 RK_PA3 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "heartbeat"; + }; + }; + + vdd_0v9: regulator-0v9-vdd { + compatible = "regulator-fixed"; + regulator-name = "vdd_0v9"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + vin-supply = <&vcc5v0_sys>; + }; + + vcc_ddr: regulator-1v1-vcc-ddr { + compatible = "regulator-fixed"; + regulator-name = "vcc_ddr"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + vin-supply = <&vcc5v0_sys>; + }; + + vcc_1v8: regulator-1v8-vcc { + compatible = "regulator-fixed"; + regulator-name = "vcc_1v8"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + vin-supply = <&vcc_3v3>; + }; + + vcc_3v3: regulator-3v3-vcc { + compatible = "regulator-fixed"; + regulator-name = "vcc_3v3"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + vin-supply = <&vcc5v0_sys>; + }; + + vcc_wifi: regulator-3v3-vcc-wifi { + compatible = "regulator-fixed"; + enable-active-high; + gpios = <&gpio4 RK_PA4 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&usb_wifi_pwr>; + regulator-name = "vcc_wifi"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + vin-supply = <&vcc_3v3>; + }; + + vcc5v0_sys: regulator-5v0-vcc-sys { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_sys"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + }; + + vcc5v0_usb20: regulator-5v0-vcc-usb20 { + compatible = "regulator-fixed"; + enable-active-high; + gpios = <&gpio0 RK_PA1 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&usb_host_en>; + regulator-name = "vcc5v0_usb20"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + vin-supply = <&vcc5v0_sys>; + }; + + vccio_sd: regulator-vccio-sd { + compatible = "regulator-gpio"; + gpios = <&gpio1 RK_PC1 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&sdmmc_vol_ctrl_h>; + regulator-name = "vccio_sd"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + states = <1800000 0x0>, <3300000 0x1>; + vin-supply = <&vcc5v0_sys>; + }; + + vdd_arm: regulator-vdd-arm { + compatible = "pwm-regulator"; + pwms = <&pwm1 0 5000 PWM_POLARITY_INVERTED>; + pwm-supply = <&vcc5v0_sys>; + regulator-name = "vdd_arm"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <746000>; + regulator-max-microvolt = <1201000>; + regulator-settling-time-up-us = <250>; + }; + + vdd_logic: regulator-vdd-logic { + compatible = "pwm-regulator"; + pwms = <&pwm2 0 5000 PWM_POLARITY_INVERTED>; + pwm-supply = <&vcc5v0_sys>; + regulator-name = "vdd_logic"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <705000>; + regulator-max-microvolt = <1006000>; + regulator-settling-time-up-us = <250>; + }; + + rfkill { + compatible = "rfkill-gpio"; + label = "rfkill-wlan"; + pinctrl-names = "default"; + pinctrl-0 = <&wifi_reg_on_h>; + radio-type = "wlan"; + shutdown-gpios = <&gpio1 RK_PA6 GPIO_ACTIVE_HIGH>; + }; +}; + +&cpu0 { + cpu-supply = <&vdd_arm>; +}; + +&cpu1 { + cpu-supply = <&vdd_arm>; +}; + +&cpu2 { + cpu-supply = <&vdd_arm>; +}; + +&cpu3 { + cpu-supply = <&vdd_arm>; +}; + +&gpu { + mali-supply = <&vdd_logic>; + status = "okay"; +}; + +&i2c1 { + pinctrl-names = "default"; + pinctrl-0 = <&i2c1m0_xfer>; + status = "okay"; + + eeprom@50 { + compatible = "belling,bl24c16a", "atmel,24c16"; + reg = <0x50>; + pagesize = <16>; + read-only; + vcc-supply = <&vcc_3v3>; + }; +}; + +&pinctrl { + bluetooth { + bt_wake_host_h: bt-wake-host-h { + rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>; + }; + + host_wake_bt_h: host-wake-bt-h { + rockchip,pins = <1 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + leds { + state_led_b: state-led-b { + rockchip,pins = <1 RK_PA3 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + sdmmc { + sdmmc_vol_ctrl_h: sdmmc-vol-ctrl-h { + rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + usb { + usb_host_en: usb-host-en { + rockchip,pins = <0 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + wifi { + usb_wifi_pwr: usb-wifi-pwr { + rockchip,pins = <4 RK_PA4 RK_FUNC_GPIO &pcfg_pull_none>; + }; + + wifi_reg_on_h: wifi-reg-on-h { + rockchip,pins = <1 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>; + }; + + wifi_wake_host_h: wifi-wake-host-h { + rockchip,pins = <1 RK_PA7 RK_FUNC_GPIO &pcfg_pull_down>; + }; + }; +}; + +&pwm1 { + pinctrl-names = "default"; + pinctrl-0 = <&pwm1m0_pins>; + status = "okay"; +}; + +&pwm2 { + pinctrl-names = "default"; + pinctrl-0 = <&pwm2m0_pins>; + status = "okay"; +}; + +&saradc { + vref-supply = <&vcc_1v8>; + status = "okay"; +}; + +&sdhci { + bus-width = <8>; + cap-mmc-highspeed; + mmc-hs200-1_8v; + no-sd; + no-sdio; + non-removable; + vmmc-supply = <&vcc_3v3>; + vqmmc-supply = <&vcc_1v8>; + status = "okay"; +}; + +&sdmmc { + bus-width = <4>; + cap-mmc-highspeed; + cap-sd-highspeed; + disable-wp; + sd-uhs-sdr104; + vmmc-supply = <&vcc_3v3>; + vqmmc-supply = <&vccio_sd>; + status = "okay"; +}; + +&uart0 { + pinctrl-names = "default"; + pinctrl-0 = <&uart0m0_xfer>; + status = "okay"; +}; diff --git a/arch/arm64/boot/dts/rockchip/rk3528-rock-2a.dts b/arch/arm64/boot/dts/rockchip/rk3528-rock-2a.dts new file mode 100644 index 000000000000..c6f4d9b683d8 --- /dev/null +++ b/arch/arm64/boot/dts/rockchip/rk3528-rock-2a.dts @@ -0,0 +1,82 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) + +/dts-v1/; + +#include "rk3528-rock-2.dtsi" + +/ { + model = "Radxa ROCK 2A"; + compatible = "radxa,rock-2a", "rockchip,rk3528"; + + aliases { + ethernet0 = &gmac1; + }; + + vcc5v0_usb30_otg: regulator-5v0-vcc-usb30-otg { + compatible = "regulator-fixed"; + enable-active-high; + gpios = <&gpio1 RK_PC3 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&usb_otg_en>; + regulator-name = "vcc5v0_usb30_otg"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + vin-supply = <&vcc5v0_sys>; + }; +}; + +&gmac1 { + clock_in_out = "output"; + phy-handle = <&rgmii_phy>; + phy-mode = "rgmii-id"; + phy-supply = <&vcc_3v3>; + pinctrl-names = "default"; + pinctrl-0 = <&rgmii_miim>, <&rgmii_tx_bus2>, <&rgmii_rx_bus2>, + <&rgmii_rgmii_clk>, <&rgmii_rgmii_bus>; + status = "okay"; +}; + +&leds { + pinctrl-names = "default"; + pinctrl-0 = <&state_led_b>, <&sys_led_g>; + + led-sys { + color = <LED_COLOR_ID_GREEN>; + default-state = "on"; + function = LED_FUNCTION_STATUS; + gpios = <&gpio3 RK_PC1 GPIO_ACTIVE_LOW>; + linux,default-trigger = "default-on"; + }; +}; + +&mdio1 { + rgmii_phy: ethernet-phy@1 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <0x1>; + pinctrl-names = "default"; + pinctrl-0 = <&gmac1_rstn_l>; + reset-assert-us = <20000>; + reset-deassert-us = <100000>; + reset-gpios = <&gpio4 RK_PC2 GPIO_ACTIVE_LOW>; + }; +}; + +&pinctrl { + ethernet { + gmac1_rstn_l: gmac1-rstn-l { + rockchip,pins = <4 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + leds { + sys_led_g: sys-led-g { + rockchip,pins = <3 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + usb { + usb_otg_en: usb-otg-en { + rockchip,pins = <1 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; +}; diff --git a/arch/arm64/boot/dts/rockchip/rk3528-rock-2f.dts b/arch/arm64/boot/dts/rockchip/rk3528-rock-2f.dts new file mode 100644 index 000000000000..3e2b9b685cb2 --- /dev/null +++ b/arch/arm64/boot/dts/rockchip/rk3528-rock-2f.dts @@ -0,0 +1,10 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) + +/dts-v1/; + +#include "rk3528-rock-2.dtsi" + +/ { + model = "Radxa ROCK 2F"; + compatible = "radxa,rock-2f", "rockchip,rk3528"; +}; -- 2.49.0 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH 2/6] arm64: dts: rockchip: Add Radxa ROCK 2A/2F 2025-07-08 22:48 ` [PATCH 2/6] arm64: dts: " Jonas Karlman @ 2025-07-09 4:25 ` Yao Zi 2025-07-09 23:56 ` Jonas Karlman 2025-07-10 2:45 ` Rob Herring (Arm) 0 siblings, 2 replies; 15+ messages in thread From: Yao Zi @ 2025-07-09 4:25 UTC (permalink / raw) To: Jonas Karlman, Heiko Stuebner, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: Chukun Pan, linux-rockchip, devicetree, linux-arm-kernel, linux-kernel On Tue, Jul 08, 2025 at 10:48:52PM +0000, Jonas Karlman wrote: > The ROCK 2A and ROCK 2F is a high-performance single board computer > developed by Radxa, based on the Rockchip RK3528A SoC. > > Add initial device tree for the Radxa ROCK 2A and ROCK 2F boards. > > Signed-off-by: Jonas Karlman <jonas@kwiboo.se> > --- > Schematics: > - https://dl.radxa.com/rock2/2a/v1.2/radxa_rock_2a_v1.2_schematic.pdf > - https://dl.radxa.com/rock2/2f/radxa_rock2f_v1.01_schematic.pdf > --- > arch/arm64/boot/dts/rockchip/Makefile | 2 + > .../boot/dts/rockchip/rk3528-rock-2.dtsi | 292 ++++++++++++++++++ > .../boot/dts/rockchip/rk3528-rock-2a.dts | 82 +++++ > .../boot/dts/rockchip/rk3528-rock-2f.dts | 10 + > 4 files changed, 386 insertions(+) > create mode 100644 arch/arm64/boot/dts/rockchip/rk3528-rock-2.dtsi > create mode 100644 arch/arm64/boot/dts/rockchip/rk3528-rock-2a.dts > create mode 100644 arch/arm64/boot/dts/rockchip/rk3528-rock-2f.dts While testing the patch on my Rock 2A board, I noticed one of my SDcard that works perfectly on Radxa E20C and NanoPi Zero 2 cannot be correctly read out under UHS-125-SDR mode, # dd if=/dev/mmcblk1 of=/dev/null bs=4M count=4 [ 18.616828] mmc_host mmc1: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0) [ 19.193315] mmc1: Skipping voltage switch [ 19.202046] mmc1: tried to HW reset card, got error -110 [ 19.213312] mmcblk1: recovery failed! [ 19.213709] I/O error, dev mmcblk1, sector 0 op 0x0:(READ) flags 0x80700 phys_seg 256 prio class 0 [ 19.225201] mmcblk1: recovery failed! [ 19.225530] I/O error, dev mmcblk1, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0 [ 19.226283] Buffer I/O error on dev mmcblk1, logical block 0, async page read dd: /dev/mmcblk1: I/O error which could be reproduced stably. the SDMMC controller issued interesting messages during the tuning process, [ 0.665246] mmc_host mmc1: Bus speed (slot 0) = 148500000Hz (slot req 150000000Hz, actual 148500000HZ div = 0) [ 0.851940] dwmmc_rockchip ffc30000.mmc: All phases work, using default phase 90. but actually it doesn't work with phase = 90. If the frequency is limited to 100MHz with max-frequency = <100000000> instead of the default 150MHz, tuning results in a very different phase, [ 0.665483] mmc_host mmc1: Bus speed (slot 0) = 99600000Hz (slot req 100000000Hz, actual 99600000HZ div = 0) [ 1.166340] dwmmc_rockchip ffc30000.mmc: Successfully tuned phase to 141 and the card works, too. If I set rockchip,default-sample-phase to 141 in devicetree, the card could work at full 150MHz as well. I think there's something wrong with the tuning process, or the board's design cannot always run reliably at 150MHz. Could you reproduce similar failures on Radxa 2A? If so, it may be necessary to lower the SDMMC's maximum frequency for the board. Regards, Yao Zi ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 2/6] arm64: dts: rockchip: Add Radxa ROCK 2A/2F 2025-07-09 4:25 ` Yao Zi @ 2025-07-09 23:56 ` Jonas Karlman 2025-07-10 16:41 ` Yao Zi 2025-07-10 2:45 ` Rob Herring (Arm) 1 sibling, 1 reply; 15+ messages in thread From: Jonas Karlman @ 2025-07-09 23:56 UTC (permalink / raw) To: Yao Zi Cc: Heiko Stuebner, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Chukun Pan, linux-rockchip, devicetree, linux-arm-kernel, linux-kernel Hi, On 7/9/2025 6:25 AM, Yao Zi wrote: > On Tue, Jul 08, 2025 at 10:48:52PM +0000, Jonas Karlman wrote: >> The ROCK 2A and ROCK 2F is a high-performance single board computer >> developed by Radxa, based on the Rockchip RK3528A SoC. >> >> Add initial device tree for the Radxa ROCK 2A and ROCK 2F boards. >> >> Signed-off-by: Jonas Karlman <jonas@kwiboo.se> >> --- >> Schematics: >> - https://dl.radxa.com/rock2/2a/v1.2/radxa_rock_2a_v1.2_schematic.pdf >> - https://dl.radxa.com/rock2/2f/radxa_rock2f_v1.01_schematic.pdf >> --- >> arch/arm64/boot/dts/rockchip/Makefile | 2 + >> .../boot/dts/rockchip/rk3528-rock-2.dtsi | 292 ++++++++++++++++++ >> .../boot/dts/rockchip/rk3528-rock-2a.dts | 82 +++++ >> .../boot/dts/rockchip/rk3528-rock-2f.dts | 10 + >> 4 files changed, 386 insertions(+) >> create mode 100644 arch/arm64/boot/dts/rockchip/rk3528-rock-2.dtsi >> create mode 100644 arch/arm64/boot/dts/rockchip/rk3528-rock-2a.dts >> create mode 100644 arch/arm64/boot/dts/rockchip/rk3528-rock-2f.dts > > While testing the patch on my Rock 2A board, I noticed one of my SDcard > that works perfectly on Radxa E20C and NanoPi Zero 2 cannot be correctly > read out under UHS-125-SDR mode, > > # dd if=/dev/mmcblk1 of=/dev/null bs=4M count=4 > [ 18.616828] mmc_host mmc1: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0) > [ 19.193315] mmc1: Skipping voltage switch > [ 19.202046] mmc1: tried to HW reset card, got error -110 > [ 19.213312] mmcblk1: recovery failed! > [ 19.213709] I/O error, dev mmcblk1, sector 0 op 0x0:(READ) flags 0x80700 phys_seg 256 prio class 0 > [ 19.225201] mmcblk1: recovery failed! > [ 19.225530] I/O error, dev mmcblk1, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0 > [ 19.226283] Buffer I/O error on dev mmcblk1, logical block 0, async page read > dd: /dev/mmcblk1: I/O error > > which could be reproduced stably. > > the SDMMC controller issued interesting messages during the tuning > process, > > [ 0.665246] mmc_host mmc1: Bus speed (slot 0) = 148500000Hz (slot req 150000000Hz, actual 148500000HZ div = 0) > [ 0.851940] dwmmc_rockchip ffc30000.mmc: All phases work, using default phase 90. > > but actually it doesn't work with phase = 90. If the frequency is > limited to 100MHz with max-frequency = <100000000> instead of the > default 150MHz, tuning results in a very different phase, > > [ 0.665483] mmc_host mmc1: Bus speed (slot 0) = 99600000Hz (slot req 100000000Hz, actual 99600000HZ div = 0) > [ 1.166340] dwmmc_rockchip ffc30000.mmc: Successfully tuned phase to 141 > > and the card works, too. If I set rockchip,default-sample-phase to 141 > in devicetree, the card could work at full 150MHz as well. > > I think there's something wrong with the tuning process, or the board's > design cannot always run reliably at 150MHz. > > Could you reproduce similar failures on Radxa 2A? If so, it may be > necessary to lower the SDMMC's maximum frequency for the board. I have not been able to reproduce this issue on any of my ROCK 2A or 2F boards, my boards seem to tune phase to around 250-265 for the sd-cards I tested. Could you try with something like this: diff --git a/arch/arm64/boot/dts/rockchip/rk3528-rock-2.dtsi b/arch/arm64/boot/dts/rockchip/rk3528-rock-2.dtsi index fc23c51836b15..a82791db55699 100644 --- a/arch/arm64/boot/dts/rockchip/rk3528-rock-2.dtsi +++ b/arch/arm64/boot/dts/rockchip/rk3528-rock-2.dtsi @@ -285,6 +285,10 @@ status = "okay"; }; +&sdmmc_clk { + rockchip,pins = <2 RK_PA5 1 &pcfg_pull_up_drv_level_3>; +}; + &uart0 { pinctrl-names = "default"; pinctrl-0 = <&uart0m0_xfer>; Changing clk drive strength seem to be something that has been done in Radxa vendor kernel [1], could be something that we can include if it fixes your issue. The kernel I tested was built from [2]. [1] https://github.com/radxa/kernel/commit/e9b33cbc97a902560d3f3b43b4d36a1a0ac68a50 [2] https://github.com/Kwiboo/linux-rockchip/commits/next-20250708-rk3528-boards/ Regards, Jonas > > Regards, > Yao Zi ^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH 2/6] arm64: dts: rockchip: Add Radxa ROCK 2A/2F 2025-07-09 23:56 ` Jonas Karlman @ 2025-07-10 16:41 ` Yao Zi 2025-07-10 20:07 ` Jonas Karlman 0 siblings, 1 reply; 15+ messages in thread From: Yao Zi @ 2025-07-10 16:41 UTC (permalink / raw) To: Jonas Karlman Cc: Heiko Stuebner, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Chukun Pan, linux-rockchip, devicetree, linux-arm-kernel, linux-kernel On Thu, Jul 10, 2025 at 01:56:02AM +0200, Jonas Karlman wrote: > Hi, > > On 7/9/2025 6:25 AM, Yao Zi wrote: > > On Tue, Jul 08, 2025 at 10:48:52PM +0000, Jonas Karlman wrote: > >> The ROCK 2A and ROCK 2F is a high-performance single board computer > >> developed by Radxa, based on the Rockchip RK3528A SoC. > >> > >> Add initial device tree for the Radxa ROCK 2A and ROCK 2F boards. > >> > >> Signed-off-by: Jonas Karlman <jonas@kwiboo.se> > >> --- > >> Schematics: > >> - https://dl.radxa.com/rock2/2a/v1.2/radxa_rock_2a_v1.2_schematic.pdf > >> - https://dl.radxa.com/rock2/2f/radxa_rock2f_v1.01_schematic.pdf > >> --- > >> arch/arm64/boot/dts/rockchip/Makefile | 2 + > >> .../boot/dts/rockchip/rk3528-rock-2.dtsi | 292 ++++++++++++++++++ > >> .../boot/dts/rockchip/rk3528-rock-2a.dts | 82 +++++ > >> .../boot/dts/rockchip/rk3528-rock-2f.dts | 10 + > >> 4 files changed, 386 insertions(+) > >> create mode 100644 arch/arm64/boot/dts/rockchip/rk3528-rock-2.dtsi > >> create mode 100644 arch/arm64/boot/dts/rockchip/rk3528-rock-2a.dts > >> create mode 100644 arch/arm64/boot/dts/rockchip/rk3528-rock-2f.dts > > > > While testing the patch on my Rock 2A board, I noticed one of my SDcard > > that works perfectly on Radxa E20C and NanoPi Zero 2 cannot be correctly > > read out under UHS-125-SDR mode, > > > > # dd if=/dev/mmcblk1 of=/dev/null bs=4M count=4 > > [ 18.616828] mmc_host mmc1: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0) > > [ 19.193315] mmc1: Skipping voltage switch > > [ 19.202046] mmc1: tried to HW reset card, got error -110 > > [ 19.213312] mmcblk1: recovery failed! > > [ 19.213709] I/O error, dev mmcblk1, sector 0 op 0x0:(READ) flags 0x80700 phys_seg 256 prio class 0 > > [ 19.225201] mmcblk1: recovery failed! > > [ 19.225530] I/O error, dev mmcblk1, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0 > > [ 19.226283] Buffer I/O error on dev mmcblk1, logical block 0, async page read > > dd: /dev/mmcblk1: I/O error > > > > which could be reproduced stably. > > > > the SDMMC controller issued interesting messages during the tuning > > process, > > > > [ 0.665246] mmc_host mmc1: Bus speed (slot 0) = 148500000Hz (slot req 150000000Hz, actual 148500000HZ div = 0) > > [ 0.851940] dwmmc_rockchip ffc30000.mmc: All phases work, using default phase 90. > > > > but actually it doesn't work with phase = 90. If the frequency is > > limited to 100MHz with max-frequency = <100000000> instead of the > > default 150MHz, tuning results in a very different phase, > > > > [ 0.665483] mmc_host mmc1: Bus speed (slot 0) = 99600000Hz (slot req 100000000Hz, actual 99600000HZ div = 0) > > [ 1.166340] dwmmc_rockchip ffc30000.mmc: Successfully tuned phase to 141 > > > > and the card works, too. If I set rockchip,default-sample-phase to 141 > > in devicetree, the card could work at full 150MHz as well. > > > > I think there's something wrong with the tuning process, or the board's > > design cannot always run reliably at 150MHz. > > > > Could you reproduce similar failures on Radxa 2A? If so, it may be > > necessary to lower the SDMMC's maximum frequency for the board. > > I have not been able to reproduce this issue on any of my ROCK 2A or 2F > boards, my boards seem to tune phase to around 250-265 for the sd-cards > I tested. > > Could you try with something like this: > > diff --git a/arch/arm64/boot/dts/rockchip/rk3528-rock-2.dtsi b/arch/arm64/boot/dts/rockchip/rk3528-rock-2.dtsi > index fc23c51836b15..a82791db55699 100644 > --- a/arch/arm64/boot/dts/rockchip/rk3528-rock-2.dtsi > +++ b/arch/arm64/boot/dts/rockchip/rk3528-rock-2.dtsi > @@ -285,6 +285,10 @@ > status = "okay"; > }; > > +&sdmmc_clk { > + rockchip,pins = <2 RK_PA5 1 &pcfg_pull_up_drv_level_3>; > +}; > + > &uart0 { > pinctrl-names = "default"; > pinctrl-0 = <&uart0m0_xfer>; > > > Changing clk drive strength seem to be something that has been done in > Radxa vendor kernel [1], could be something that we can include if it > fixes your issue. This seems to improve the situation a little, but doesn't solve the issue. Among more than ten times of testing, the tuning process only worked twice. > The kernel I tested was built from [2]. I've tried this branch as well, but things don't improve. Do you consider lower the clock-frequency acceptable? > [1] https://github.com/radxa/kernel/commit/e9b33cbc97a902560d3f3b43b4d36a1a0ac68a50 > [2] https://github.com/Kwiboo/linux-rockchip/commits/next-20250708-rk3528-boards/ > > Regards, > Jonas > > > > > Regards, > > Yao Zi > Regards, Yao Zi ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 2/6] arm64: dts: rockchip: Add Radxa ROCK 2A/2F 2025-07-10 16:41 ` Yao Zi @ 2025-07-10 20:07 ` Jonas Karlman 0 siblings, 0 replies; 15+ messages in thread From: Jonas Karlman @ 2025-07-10 20:07 UTC (permalink / raw) To: Yao Zi Cc: Heiko Stuebner, Rob Herring, Krzysztof Kozlowski, Conor Dooley, Chukun Pan, linux-rockchip, devicetree, linux-arm-kernel, linux-kernel On 7/10/2025 6:41 PM, Yao Zi wrote: > On Thu, Jul 10, 2025 at 01:56:02AM +0200, Jonas Karlman wrote: >> Hi, >> >> On 7/9/2025 6:25 AM, Yao Zi wrote: >>> On Tue, Jul 08, 2025 at 10:48:52PM +0000, Jonas Karlman wrote: >>>> The ROCK 2A and ROCK 2F is a high-performance single board computer >>>> developed by Radxa, based on the Rockchip RK3528A SoC. >>>> >>>> Add initial device tree for the Radxa ROCK 2A and ROCK 2F boards. >>>> >>>> Signed-off-by: Jonas Karlman <jonas@kwiboo.se> >>>> --- >>>> Schematics: >>>> - https://dl.radxa.com/rock2/2a/v1.2/radxa_rock_2a_v1.2_schematic.pdf >>>> - https://dl.radxa.com/rock2/2f/radxa_rock2f_v1.01_schematic.pdf >>>> --- >>>> arch/arm64/boot/dts/rockchip/Makefile | 2 + >>>> .../boot/dts/rockchip/rk3528-rock-2.dtsi | 292 ++++++++++++++++++ >>>> .../boot/dts/rockchip/rk3528-rock-2a.dts | 82 +++++ >>>> .../boot/dts/rockchip/rk3528-rock-2f.dts | 10 + >>>> 4 files changed, 386 insertions(+) >>>> create mode 100644 arch/arm64/boot/dts/rockchip/rk3528-rock-2.dtsi >>>> create mode 100644 arch/arm64/boot/dts/rockchip/rk3528-rock-2a.dts >>>> create mode 100644 arch/arm64/boot/dts/rockchip/rk3528-rock-2f.dts >>> >>> While testing the patch on my Rock 2A board, I noticed one of my SDcard >>> that works perfectly on Radxa E20C and NanoPi Zero 2 cannot be correctly >>> read out under UHS-125-SDR mode, >>> >>> # dd if=/dev/mmcblk1 of=/dev/null bs=4M count=4 >>> [ 18.616828] mmc_host mmc1: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0) >>> [ 19.193315] mmc1: Skipping voltage switch >>> [ 19.202046] mmc1: tried to HW reset card, got error -110 >>> [ 19.213312] mmcblk1: recovery failed! >>> [ 19.213709] I/O error, dev mmcblk1, sector 0 op 0x0:(READ) flags 0x80700 phys_seg 256 prio class 0 >>> [ 19.225201] mmcblk1: recovery failed! >>> [ 19.225530] I/O error, dev mmcblk1, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0 >>> [ 19.226283] Buffer I/O error on dev mmcblk1, logical block 0, async page read >>> dd: /dev/mmcblk1: I/O error >>> >>> which could be reproduced stably. >>> >>> the SDMMC controller issued interesting messages during the tuning >>> process, >>> >>> [ 0.665246] mmc_host mmc1: Bus speed (slot 0) = 148500000Hz (slot req 150000000Hz, actual 148500000HZ div = 0) >>> [ 0.851940] dwmmc_rockchip ffc30000.mmc: All phases work, using default phase 90. >>> >>> but actually it doesn't work with phase = 90. If the frequency is >>> limited to 100MHz with max-frequency = <100000000> instead of the >>> default 150MHz, tuning results in a very different phase, >>> >>> [ 0.665483] mmc_host mmc1: Bus speed (slot 0) = 99600000Hz (slot req 100000000Hz, actual 99600000HZ div = 0) >>> [ 1.166340] dwmmc_rockchip ffc30000.mmc: Successfully tuned phase to 141 >>> >>> and the card works, too. If I set rockchip,default-sample-phase to 141 >>> in devicetree, the card could work at full 150MHz as well. >>> >>> I think there's something wrong with the tuning process, or the board's >>> design cannot always run reliably at 150MHz. >>> >>> Could you reproduce similar failures on Radxa 2A? If so, it may be >>> necessary to lower the SDMMC's maximum frequency for the board. >> >> I have not been able to reproduce this issue on any of my ROCK 2A or 2F >> boards, my boards seem to tune phase to around 250-265 for the sd-cards >> I tested. >> >> Could you try with something like this: >> >> diff --git a/arch/arm64/boot/dts/rockchip/rk3528-rock-2.dtsi b/arch/arm64/boot/dts/rockchip/rk3528-rock-2.dtsi >> index fc23c51836b15..a82791db55699 100644 >> --- a/arch/arm64/boot/dts/rockchip/rk3528-rock-2.dtsi >> +++ b/arch/arm64/boot/dts/rockchip/rk3528-rock-2.dtsi >> @@ -285,6 +285,10 @@ >> status = "okay"; >> }; >> >> +&sdmmc_clk { >> + rockchip,pins = <2 RK_PA5 1 &pcfg_pull_up_drv_level_3>; >> +}; >> + >> &uart0 { >> pinctrl-names = "default"; >> pinctrl-0 = <&uart0m0_xfer>; >> >> >> Changing clk drive strength seem to be something that has been done in >> Radxa vendor kernel [1], could be something that we can include if it >> fixes your issue. > > This seems to improve the situation a little, but doesn't solve the > issue. Among more than ten times of testing, the tuning process only > worked twice. > >> The kernel I tested was built from [2]. > > I've tried this branch as well, but things don't improve. > > Do you consider lower the clock-frequency acceptable? Sure, I will include the max-frequency = <100000000> in a v2 shortly. Regards, Jonas > >> [1] https://github.com/radxa/kernel/commit/e9b33cbc97a902560d3f3b43b4d36a1a0ac68a50 >> [2] https://github.com/Kwiboo/linux-rockchip/commits/next-20250708-rk3528-boards/ >> >> Regards, >> Jonas >> >>> >>> Regards, >>> Yao Zi >> > > Regards, > Yao Zi ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 2/6] arm64: dts: rockchip: Add Radxa ROCK 2A/2F 2025-07-09 4:25 ` Yao Zi 2025-07-09 23:56 ` Jonas Karlman @ 2025-07-10 2:45 ` Rob Herring (Arm) 1 sibling, 0 replies; 15+ messages in thread From: Rob Herring (Arm) @ 2025-07-10 2:45 UTC (permalink / raw) To: Yao Zi Cc: Krzysztof Kozlowski, linux-kernel, Conor Dooley, Chukun Pan, devicetree, linux-rockchip, Heiko Stuebner, Jonas Karlman, linux-arm-kernel On Wed, 09 Jul 2025 04:25:34 +0000, Yao Zi wrote: > On Tue, Jul 08, 2025 at 10:48:52PM +0000, Jonas Karlman wrote: > > The ROCK 2A and ROCK 2F is a high-performance single board computer > > developed by Radxa, based on the Rockchip RK3528A SoC. > > > > Add initial device tree for the Radxa ROCK 2A and ROCK 2F boards. > > > > Signed-off-by: Jonas Karlman <jonas@kwiboo.se> > > --- > > Schematics: > > - https://dl.radxa.com/rock2/2a/v1.2/radxa_rock_2a_v1.2_schematic.pdf > > - https://dl.radxa.com/rock2/2f/radxa_rock2f_v1.01_schematic.pdf > > --- > > arch/arm64/boot/dts/rockchip/Makefile | 2 + > > .../boot/dts/rockchip/rk3528-rock-2.dtsi | 292 ++++++++++++++++++ > > .../boot/dts/rockchip/rk3528-rock-2a.dts | 82 +++++ > > .../boot/dts/rockchip/rk3528-rock-2f.dts | 10 + > > 4 files changed, 386 insertions(+) > > create mode 100644 arch/arm64/boot/dts/rockchip/rk3528-rock-2.dtsi > > create mode 100644 arch/arm64/boot/dts/rockchip/rk3528-rock-2a.dts > > create mode 100644 arch/arm64/boot/dts/rockchip/rk3528-rock-2f.dts > > While testing the patch on my Rock 2A board, I noticed one of my SDcard > that works perfectly on Radxa E20C and NanoPi Zero 2 cannot be correctly > read out under UHS-125-SDR mode, > > # dd if=/dev/mmcblk1 of=/dev/null bs=4M count=4 > [ 18.616828] mmc_host mmc1: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0) > [ 19.193315] mmc1: Skipping voltage switch > [ 19.202046] mmc1: tried to HW reset card, got error -110 > [ 19.213312] mmcblk1: recovery failed! > [ 19.213709] I/O error, dev mmcblk1, sector 0 op 0x0:(READ) flags 0x80700 phys_seg 256 prio class 0 > [ 19.225201] mmcblk1: recovery failed! > [ 19.225530] I/O error, dev mmcblk1, sector 0 op 0x0:(READ) flags 0x0 phys_seg 1 prio class 0 > [ 19.226283] Buffer I/O error on dev mmcblk1, logical block 0, async page read > dd: /dev/mmcblk1: I/O error > > which could be reproduced stably. > > the SDMMC controller issued interesting messages during the tuning > process, > > [ 0.665246] mmc_host mmc1: Bus speed (slot 0) = 148500000Hz (slot req 150000000Hz, actual 148500000HZ div = 0) > [ 0.851940] dwmmc_rockchip ffc30000.mmc: All phases work, using default phase 90. > > but actually it doesn't work with phase = 90. If the frequency is > limited to 100MHz with max-frequency = <100000000> instead of the > default 150MHz, tuning results in a very different phase, > > [ 0.665483] mmc_host mmc1: Bus speed (slot 0) = 99600000Hz (slot req 100000000Hz, actual 99600000HZ div = 0) > [ 1.166340] dwmmc_rockchip ffc30000.mmc: Successfully tuned phase to 141 > > and the card works, too. If I set rockchip,default-sample-phase to 141 > in devicetree, the card could work at full 150MHz as well. > > I think there's something wrong with the tuning process, or the board's > design cannot always run reliably at 150MHz. > > Could you reproduce similar failures on Radxa 2A? If so, it may be > necessary to lower the SDMMC's maximum frequency for the board. > > Regards, > Yao Zi > > My bot found new DTB warnings on the .dts files added or changed in this series. Some warnings may be from an existing SoC .dtsi. Or perhaps the warnings are fixed by another series. Ultimately, it is up to the platform maintainer whether these warnings are acceptable or not. No need to reply unless the platform maintainer has comments. If you already ran DT checks and didn't see these error(s), then make sure dt-schema is up to date: pip3 install dtschema --upgrade This patch series was applied (using b4) to base: Base: attempting to guess base-commit... Base: tags/v6.16-rc1-34-g7f9509791507 (exact match) If this is not the correct base, please add 'base-commit' tag (or use b4 which does this automatically) New warnings running 'make CHECK_DTBS=y for arch/arm64/boot/dts/rockchip/' for aG3vPsUd-FPkhi-S@pie.lan: arch/arm64/boot/dts/rockchip/rk3528-armsom-sige1.dtb: /soc/power-management@ff600000: failed to match any schema with compatible: ['rockchip,rk3528-pmu', 'syscon', 'simple-mfd'] arch/arm64/boot/dts/rockchip/rk3528-armsom-sige1.dtb: /soc/power-management@ff600000/power-controller: failed to match any schema with compatible: ['rockchip,rk3528-power-controller'] arch/arm64/boot/dts/rockchip/rk3528-armsom-sige1.dtb: gpu@ff700000 (rockchip,rk3528-mali): compatible: 'oneOf' conditional failed, one must be fixed: ['rockchip,rk3528-mali', 'arm,mali-450'] is too short 'allwinner,sun8i-a23-mali' was expected 'rockchip,rk3528-mali' is not one of ['allwinner,sun4i-a10-mali', 'allwinner,sun7i-a20-mali', 'allwinner,sun8i-h3-mali', 'allwinner,sun8i-r40-mali', 'allwinner,sun50i-a64-mali', 'rockchip,rk3036-mali', 'rockchip,rk3066-mali', 'rockchip,rk3128-mali', 'rockchip,rk3188-mali', 'rockchip,rk3228-mali', 'samsung,exynos4210-mali', 'st,stih410-mali', 'stericsson,db8500-mali', 'xlnx,zynqmp-mali'] 'rockchip,rk3528-mali' is not one of ['allwinner,sun50i-h5-mali', 'amlogic,meson8-mali', 'amlogic,meson8b-mali', 'amlogic,meson-gxbb-mali', 'amlogic,meson-gxl-mali', 'hisilicon,hi6220-mali', 'mediatek,mt7623-mali', 'rockchip,rk3328-mali'] 'allwinner,sun7i-a20-mali' was expected 'arm,mali-400' was expected from schema $id: http://devicetree.org/schemas/gpu/arm,mali-utgard.yaml# arch/arm64/boot/dts/rockchip/rk3528-armsom-sige1.dtb: /soc/gpu@ff700000: failed to match any schema with compatible: ['rockchip,rk3528-mali', 'arm,mali-450'] arch/arm64/boot/dts/rockchip/rk3528-rock-2f.dtb: /soc/power-management@ff600000: failed to match any schema with compatible: ['rockchip,rk3528-pmu', 'syscon', 'simple-mfd'] arch/arm64/boot/dts/rockchip/rk3528-rock-2f.dtb: /soc/power-management@ff600000/power-controller: failed to match any schema with compatible: ['rockchip,rk3528-power-controller'] arch/arm64/boot/dts/rockchip/rk3528-rock-2f.dtb: gpu@ff700000 (rockchip,rk3528-mali): compatible: 'oneOf' conditional failed, one must be fixed: ['rockchip,rk3528-mali', 'arm,mali-450'] is too short 'allwinner,sun8i-a23-mali' was expected 'rockchip,rk3528-mali' is not one of ['allwinner,sun4i-a10-mali', 'allwinner,sun7i-a20-mali', 'allwinner,sun8i-h3-mali', 'allwinner,sun8i-r40-mali', 'allwinner,sun50i-a64-mali', 'rockchip,rk3036-mali', 'rockchip,rk3066-mali', 'rockchip,rk3128-mali', 'rockchip,rk3188-mali', 'rockchip,rk3228-mali', 'samsung,exynos4210-mali', 'st,stih410-mali', 'stericsson,db8500-mali', 'xlnx,zynqmp-mali'] 'rockchip,rk3528-mali' is not one of ['allwinner,sun50i-h5-mali', 'amlogic,meson8-mali', 'amlogic,meson8b-mali', 'amlogic,meson-gxbb-mali', 'amlogic,meson-gxl-mali', 'hisilicon,hi6220-mali', 'mediatek,mt7623-mali', 'rockchip,rk3328-mali'] 'allwinner,sun7i-a20-mali' was expected 'arm,mali-400' was expected from schema $id: http://devicetree.org/schemas/gpu/arm,mali-utgard.yaml# arch/arm64/boot/dts/rockchip/rk3528-rock-2f.dtb: /soc/gpu@ff700000: failed to match any schema with compatible: ['rockchip,rk3528-mali', 'arm,mali-450'] arch/arm64/boot/dts/rockchip/rk3528-nanopi-zero2.dtb: /soc/power-management@ff600000: failed to match any schema with compatible: ['rockchip,rk3528-pmu', 'syscon', 'simple-mfd'] arch/arm64/boot/dts/rockchip/rk3528-nanopi-zero2.dtb: /soc/power-management@ff600000/power-controller: failed to match any schema with compatible: ['rockchip,rk3528-power-controller'] arch/arm64/boot/dts/rockchip/rk3528-nanopi-zero2.dtb: gpu@ff700000 (rockchip,rk3528-mali): compatible: 'oneOf' conditional failed, one must be fixed: ['rockchip,rk3528-mali', 'arm,mali-450'] is too short 'allwinner,sun8i-a23-mali' was expected 'rockchip,rk3528-mali' is not one of ['allwinner,sun4i-a10-mali', 'allwinner,sun7i-a20-mali', 'allwinner,sun8i-h3-mali', 'allwinner,sun8i-r40-mali', 'allwinner,sun50i-a64-mali', 'rockchip,rk3036-mali', 'rockchip,rk3066-mali', 'rockchip,rk3128-mali', 'rockchip,rk3188-mali', 'rockchip,rk3228-mali', 'samsung,exynos4210-mali', 'st,stih410-mali', 'stericsson,db8500-mali', 'xlnx,zynqmp-mali'] 'rockchip,rk3528-mali' is not one of ['allwinner,sun50i-h5-mali', 'amlogic,meson8-mali', 'amlogic,meson8b-mali', 'amlogic,meson-gxbb-mali', 'amlogic,meson-gxl-mali', 'hisilicon,hi6220-mali', 'mediatek,mt7623-mali', 'rockchip,rk3328-mali'] 'allwinner,sun7i-a20-mali' was expected 'arm,mali-400' was expected from schema $id: http://devicetree.org/schemas/gpu/arm,mali-utgard.yaml# arch/arm64/boot/dts/rockchip/rk3528-nanopi-zero2.dtb: /soc/gpu@ff700000: failed to match any schema with compatible: ['rockchip,rk3528-mali', 'arm,mali-450'] arch/arm64/boot/dts/rockchip/rk3528-rock-2a.dtb: /soc/power-management@ff600000: failed to match any schema with compatible: ['rockchip,rk3528-pmu', 'syscon', 'simple-mfd'] arch/arm64/boot/dts/rockchip/rk3528-rock-2a.dtb: /soc/power-management@ff600000/power-controller: failed to match any schema with compatible: ['rockchip,rk3528-power-controller'] arch/arm64/boot/dts/rockchip/rk3528-rock-2a.dtb: gpu@ff700000 (rockchip,rk3528-mali): compatible: 'oneOf' conditional failed, one must be fixed: ['rockchip,rk3528-mali', 'arm,mali-450'] is too short 'allwinner,sun8i-a23-mali' was expected 'rockchip,rk3528-mali' is not one of ['allwinner,sun4i-a10-mali', 'allwinner,sun7i-a20-mali', 'allwinner,sun8i-h3-mali', 'allwinner,sun8i-r40-mali', 'allwinner,sun50i-a64-mali', 'rockchip,rk3036-mali', 'rockchip,rk3066-mali', 'rockchip,rk3128-mali', 'rockchip,rk3188-mali', 'rockchip,rk3228-mali', 'samsung,exynos4210-mali', 'st,stih410-mali', 'stericsson,db8500-mali', 'xlnx,zynqmp-mali'] 'rockchip,rk3528-mali' is not one of ['allwinner,sun50i-h5-mali', 'amlogic,meson8-mali', 'amlogic,meson8b-mali', 'amlogic,meson-gxbb-mali', 'amlogic,meson-gxl-mali', 'hisilicon,hi6220-mali', 'mediatek,mt7623-mali', 'rockchip,rk3328-mali'] 'allwinner,sun7i-a20-mali' was expected 'arm,mali-400' was expected from schema $id: http://devicetree.org/schemas/gpu/arm,mali-utgard.yaml# arch/arm64/boot/dts/rockchip/rk3528-rock-2a.dtb: /soc/gpu@ff700000: failed to match any schema with compatible: ['rockchip,rk3528-mali', 'arm,mali-450'] ^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH 3/6] dt-bindings: arm: rockchip: Add ArmSoM Sige1 2025-07-08 22:48 [PATCH 0/6] arm64: dts: rockchip: Add ROCK 2A/2F, Sige1 and NanoPi Zero2 Jonas Karlman 2025-07-08 22:48 ` [PATCH 1/6] dt-bindings: arm: rockchip: Add Radxa ROCK 2A/2F Jonas Karlman 2025-07-08 22:48 ` [PATCH 2/6] arm64: dts: " Jonas Karlman @ 2025-07-08 22:48 ` Jonas Karlman 2025-07-08 22:48 ` [PATCH 4/6] arm64: dts: " Jonas Karlman ` (2 subsequent siblings) 5 siblings, 0 replies; 15+ messages in thread From: Jonas Karlman @ 2025-07-08 22:48 UTC (permalink / raw) To: Heiko Stuebner, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: Yao Zi, Chukun Pan, linux-rockchip, devicetree, linux-arm-kernel, linux-kernel, Jonas Karlman The Sige1 is a single board computer developed by ArmSoM, based on the Rockchip RK3528A SoC. Add devicetree binding documentation for the ArmSoM Sige1 board. Signed-off-by: Jonas Karlman <jonas@kwiboo.se> --- Documentation/devicetree/bindings/arm/rockchip.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/rockchip.yaml b/Documentation/devicetree/bindings/arm/rockchip.yaml index 6636f98561e7..e955e3334e35 100644 --- a/Documentation/devicetree/bindings/arm/rockchip.yaml +++ b/Documentation/devicetree/bindings/arm/rockchip.yaml @@ -54,6 +54,11 @@ properties: - const: ariaboard,photonicat - const: rockchip,rk3568 + - description: ArmSoM Sige1 board + items: + - const: armsom,sige1 + - const: rockchip,rk3528 + - description: ArmSoM Sige5 board items: - const: armsom,sige5 -- 2.49.0 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 4/6] arm64: dts: rockchip: Add ArmSoM Sige1 2025-07-08 22:48 [PATCH 0/6] arm64: dts: rockchip: Add ROCK 2A/2F, Sige1 and NanoPi Zero2 Jonas Karlman ` (2 preceding siblings ...) 2025-07-08 22:48 ` [PATCH 3/6] dt-bindings: arm: rockchip: Add ArmSoM Sige1 Jonas Karlman @ 2025-07-08 22:48 ` Jonas Karlman 2025-07-09 7:00 ` Chukun Pan 2025-07-08 22:48 ` [PATCH 5/6] dt-bindings: arm: rockchip: Add FriendlyElec NanoPi Zero2 Jonas Karlman 2025-07-08 22:48 ` [PATCH 6/6] arm64: dts: " Jonas Karlman 5 siblings, 1 reply; 15+ messages in thread From: Jonas Karlman @ 2025-07-08 22:48 UTC (permalink / raw) To: Heiko Stuebner, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: Yao Zi, Chukun Pan, linux-rockchip, devicetree, linux-arm-kernel, linux-kernel, Jonas Karlman The Sige1 is a single board computer developed by ArmSoM, based on the Rockchip RK3528A SoC. Add initial device tree for the ArmSoM Sige1 board. Signed-off-by: Jonas Karlman <jonas@kwiboo.se> --- Schematics: https://drive.google.com/drive/folders/15uvc2lcOAKP0enXezASUhVFLuzkq3IEX --- arch/arm64/boot/dts/rockchip/Makefile | 1 + .../boot/dts/rockchip/rk3528-armsom-sige1.dts | 449 ++++++++++++++++++ 2 files changed, 450 insertions(+) create mode 100644 arch/arm64/boot/dts/rockchip/rk3528-armsom-sige1.dts diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile index d0d21f5029ea..e86131b03692 100644 --- a/arch/arm64/boot/dts/rockchip/Makefile +++ b/arch/arm64/boot/dts/rockchip/Makefile @@ -89,6 +89,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-rockpro64-screen.dtbo dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-sapphire.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-sapphire-excavator.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399pro-rock-pi-n10.dtb +dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3528-armsom-sige1.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3528-radxa-e20c.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3528-rock-2a.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3528-rock-2f.dtb diff --git a/arch/arm64/boot/dts/rockchip/rk3528-armsom-sige1.dts b/arch/arm64/boot/dts/rockchip/rk3528-armsom-sige1.dts new file mode 100644 index 000000000000..15d8d32572e8 --- /dev/null +++ b/arch/arm64/boot/dts/rockchip/rk3528-armsom-sige1.dts @@ -0,0 +1,449 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) + +/dts-v1/; + +#include <dt-bindings/input/input.h> +#include <dt-bindings/leds/common.h> +#include <dt-bindings/pwm/pwm.h> +#include "rk3528.dtsi" + +/ { + model = "ArmSoM Sige1"; + compatible = "armsom,sige1", "rockchip,rk3528"; + + aliases { + ethernet0 = &gmac1; + i2c0 = &i2c0; + mmc0 = &sdhci; + mmc1 = &sdmmc; + mmc2 = &sdio0; + serial0 = &uart0; + serial2 = &uart2; + }; + + chosen { + stdout-path = "serial0:1500000n8"; + }; + + adc-keys { + compatible = "adc-keys"; + io-channels = <&saradc 0>; + io-channel-names = "buttons"; + keyup-threshold-microvolt = <1800000>; + poll-interval = <100>; + + button-maskrom { + label = "MASKROM"; + linux,code = <KEY_SETUP>; + press-threshold-microvolt = <0>; + }; + }; + + leds { + compatible = "gpio-leds"; + pinctrl-names = "default"; + pinctrl-0 = <&g_led>, <&r_led>; + + led-green { + color = <LED_COLOR_ID_GREEN>; + default-state = "on"; + function = LED_FUNCTION_HEARTBEAT; + gpios = <&gpio3 RK_PB3 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "heartbeat"; + }; + + led-red { + color = <LED_COLOR_ID_RED>; + default-state = "on"; + function = LED_FUNCTION_STATUS; + gpios = <&gpio3 RK_PB2 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "default-on"; + }; + }; + + vcc0v6_ddr: regulator-0v6-vcc-ddr { + compatible = "regulator-fixed"; + regulator-name = "vcc0v6_ddr"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <600000>; + regulator-max-microvolt = <600000>; + vin-supply = <&vcc5v0_sys>; + }; + + vdd_0v9: regulator-0v9-vdd { + compatible = "regulator-fixed"; + regulator-name = "vdd_0v9"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + vin-supply = <&vcc5v0_sys>; + }; + + vcc_ddr: regulator-1v1-vcc-ddr { + compatible = "regulator-fixed"; + regulator-name = "vcc_ddr"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + vin-supply = <&vcc5v0_sys>; + }; + + vcc_1v8: regulator-1v8-vcc { + compatible = "regulator-fixed"; + regulator-name = "vcc_1v8"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + vin-supply = <&vcc_3v3>; + }; + + vcc1v8_ddr: regulator-1v8-vcc-ddr { + compatible = "regulator-fixed"; + regulator-name = "vcc1v8_ddr"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + vin-supply = <&vcc5v0_sys>; + }; + + vcc_3v3: regulator-3v3-vcc { + compatible = "regulator-fixed"; + regulator-name = "vcc_3v3"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + vin-supply = <&vcc_dcin>; + }; + + vcc3v3_sd: regulator-3v3-vcc-sd { + compatible = "regulator-fixed"; + gpios = <&gpio4 RK_PA1 GPIO_ACTIVE_LOW>; + pinctrl-names = "default"; + pinctrl-0 = <&sdmmc_pwren_l>; + regulator-name = "vcc3v3_sd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + vin-supply = <&vcc_3v3>; + }; + + vcc5v0_sys: regulator-5v0-vcc-sys { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_sys"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + vin-supply = <&vcc_dcin>; + }; + + vcc5v0_usb1_host: regulator-5v0-vcc-usb1-host { + compatible = "regulator-fixed"; + enable-active-high; + gpios = <&gpio4 RK_PB1 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&usb20_host1_drv_h>; + regulator-name = "vcc5v0_usb1_host"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + vin-supply = <&vcc5v0_sys>; + }; + + vcc5v0_usb2_host: regulator-5v0-vcc-usb2-host { + compatible = "regulator-fixed"; + enable-active-high; + gpios = <&gpio4 RK_PB0 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&usb20_host2_drv_h>; + regulator-name = "vcc5v0_usb2_host"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + vin-supply = <&vcc5v0_sys>; + }; + + vcc5v0_usb_otg: regulator-5v0-vcc-usb-otg { + compatible = "regulator-fixed"; + enable-active-high; + gpios = <&gpio1 RK_PB4 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&usb20_otg0_drv_h>; + regulator-name = "vcc5v0_usb_otg"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + vin-supply = <&vcc5v0_sys>; + }; + + vcc_dcin: regulator-vcc-dcin { + compatible = "regulator-fixed"; + regulator-name = "vcc_dcin"; + regulator-always-on; + regulator-boot-on; + }; + + vccio_sd: regulator-vccio-sd { + compatible = "regulator-gpio"; + gpios = <&gpio4 RK_PC2 GPIO_ACTIVE_LOW>; + pinctrl-names = "default"; + pinctrl-0 = <&sdmmc_vol_ctrl_h>; + regulator-name = "vccio_sd"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + states = <1800000 0x0>, <3300000 0x1>; + vin-supply = <&vcc5v0_sys>; + }; + + vdd_arm: regulator-vdd-arm { + compatible = "pwm-regulator"; + pwms = <&pwm3 0 5000 PWM_POLARITY_INVERTED>; + pwm-supply = <&vcc5v0_sys>; + regulator-name = "vdd_arm"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <746000>; + regulator-max-microvolt = <1201000>; + regulator-settling-time-up-us = <250>; + }; + + vdd_logic: regulator-vdd-logic { + compatible = "pwm-regulator"; + pwms = <&pwm2 0 5000 PWM_POLARITY_INVERTED>; + pwm-supply = <&vcc5v0_sys>; + regulator-name = "vdd_logic"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <705000>; + regulator-max-microvolt = <1006000>; + regulator-settling-time-up-us = <250>; + }; + + rfkill { + compatible = "rfkill-gpio"; + label = "rfkill-wlan"; + pinctrl-names = "default"; + pinctrl-0 = <&wifi_reg_on_h>; + radio-type = "wlan"; + shutdown-gpios = <&gpio1 RK_PA6 GPIO_ACTIVE_HIGH>; + }; + + rfkill-bt { + compatible = "rfkill-gpio"; + label = "rfkill-bt"; + pinctrl-names = "default"; + pinctrl-0 = <&bt_reg_on_h>; + radio-type = "bluetooth"; + shutdown-gpios = <&gpio1 RK_PC1 GPIO_ACTIVE_HIGH>; + }; +}; + +&cpu0 { + cpu-supply = <&vdd_arm>; +}; + +&cpu1 { + cpu-supply = <&vdd_arm>; +}; + +&cpu2 { + cpu-supply = <&vdd_arm>; +}; + +&cpu3 { + cpu-supply = <&vdd_arm>; +}; + +&gmac1 { + clock_in_out = "output"; + phy-handle = <&rgmii_phy>; + phy-mode = "rgmii-id"; + phy-supply = <&vcc_3v3>; + pinctrl-names = "default"; + pinctrl-0 = <&rgmii_miim>, <&rgmii_tx_bus2>, <&rgmii_rx_bus2>, + <&rgmii_rgmii_clk>, <&rgmii_rgmii_bus>; + status = "okay"; +}; + +&gpu { + mali-supply = <&vdd_logic>; + status = "okay"; +}; + +&i2c0 { + pinctrl-names = "default"; + pinctrl-0 = <&i2c0m0_xfer>; + status = "okay"; + + hym8563: rtc@51 { + compatible = "haoyu,hym8563"; + reg = <0x51>; + #clock-cells = <0>; + clock-output-names = "hym8563"; + interrupt-parent = <&gpio4>; + interrupts = <RK_PA0 IRQ_TYPE_LEVEL_LOW>; + pinctrl-names = "default"; + pinctrl-0 = <&rtc_int_l>; + wakeup-source; + }; +}; + +&mdio1 { + rgmii_phy: ethernet-phy@1 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <0x1>; + pinctrl-names = "default"; + pinctrl-0 = <&gmac1_rstn_l>; + reset-assert-us = <20000>; + reset-deassert-us = <100000>; + reset-gpios = <&gpio4 RK_PB5 GPIO_ACTIVE_LOW>; + }; +}; + +&pinctrl { + bluetooth { + bt_reg_on_h: bt-reg-on-h { + rockchip,pins = <1 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>; + }; + + bt_wake_host_h: bt-wake-host-h { + rockchip,pins = <1 RK_PC2 RK_FUNC_GPIO &pcfg_pull_down>; + }; + + host_wake_bt_h: host-wake-bt-h { + rockchip,pins = <3 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + ethernet { + gmac1_rstn_l: gmac1-rstn-l { + rockchip,pins = <4 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + leds { + g_led: g-led { + rockchip,pins = <3 RK_PB3 RK_FUNC_GPIO &pcfg_pull_none>; + }; + + r_led: r-led { + rockchip,pins = <3 RK_PB2 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + rtc { + rtc_int_l: rtc-int-l { + rockchip,pins = <4 RK_PA0 RK_FUNC_GPIO &pcfg_pull_up>; + }; + }; + + sdmmc { + sdmmc_vol_ctrl_h: sdmmc-vol-ctrl-h { + rockchip,pins = <4 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>; + }; + + sdmmc_pwren_l: sdmmc-pwren-l { + rockchip,pins = <4 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + usb { + usb20_host1_drv_h: usb20-host1-drv-h { + rockchip,pins = <4 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>; + }; + + usb20_host2_drv_h: usb20-host2-drv-h { + rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; + }; + + usb20_otg0_drv_h: usb20-otg0-drv-h { + rockchip,pins = <1 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + wifi { + wifi_reg_on_h: wifi-reg-on-h { + rockchip,pins = <1 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>; + }; + + wifi_wake_host_h: wifi-wake-host-h { + rockchip,pins = <1 RK_PA7 RK_FUNC_GPIO &pcfg_pull_down>; + }; + }; +}; + +&pwm2 { + pinctrl-names = "default"; + pinctrl-0 = <&pwm2m0_pins>; + status = "okay"; +}; + +&pwm3 { + pinctrl-names = "default"; + pinctrl-0 = <&pwm3m0_pins>; + status = "okay"; +}; + +&saradc { + vref-supply = <&vcc_1v8>; + status = "okay"; +}; + +&sdhci { + bus-width = <8>; + cap-mmc-highspeed; + mmc-hs200-1_8v; + no-sd; + no-sdio; + non-removable; + vmmc-supply = <&vcc_3v3>; + vqmmc-supply = <&vcc_1v8>; + status = "okay"; +}; + +&sdio0 { + bus-width = <4>; + cap-sd-highspeed; + cap-sdio-irq; + disable-wp; + keep-power-in-suspend; + no-mmc; + no-sd; + non-removable; + pinctrl-names = "default"; + pinctrl-0 = <&sdio0_bus4>, <&sdio0_clk>, <&sdio0_cmd>, <&clkm1_32k_out>; + sd-uhs-sdr104; + vmmc-supply = <&vcc_3v3>; + vqmmc-supply = <&vcc_1v8>; + status = "okay"; +}; + +&sdmmc { + bus-width = <4>; + cap-mmc-highspeed; + cap-sd-highspeed; + disable-wp; + sd-uhs-sdr104; + vmmc-supply = <&vcc3v3_sd>; + vqmmc-supply = <&vccio_sd>; + status = "okay"; +}; + +&uart0 { + pinctrl-names = "default"; + pinctrl-0 = <&uart0m0_xfer>; + status = "okay"; +}; + +&uart2 { + pinctrl-names = "default"; + pinctrl-0 = <&uart2m1_xfer>, <&uart2m1_ctsn>, <&uart2m1_rtsn>; + uart-has-rtscts; + status = "okay"; +}; -- 2.49.0 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH 4/6] arm64: dts: rockchip: Add ArmSoM Sige1 2025-07-08 22:48 ` [PATCH 4/6] arm64: dts: " Jonas Karlman @ 2025-07-09 7:00 ` Chukun Pan 2025-07-10 0:00 ` Jonas Karlman 0 siblings, 1 reply; 15+ messages in thread From: Chukun Pan @ 2025-07-09 7:00 UTC (permalink / raw) To: jonas Cc: amadeus, conor+dt, devicetree, heiko, krzk+dt, linux-arm-kernel, linux-kernel, linux-rockchip, robh, ziyao Hi, > + vcc5v0_usb1_host: regulator-5v0-vcc-usb1-host { > + compatible = "regulator-fixed"; > ... > + regulator-always-on; > + regulator-boot-on; > ... > + vcc5v0_usb2_host: regulator-5v0-vcc-usb2-host { > + regulator-always-on; > + regulator-boot-on; > ... I think these two regulators do not need boot-on? > + rfkill { > + compatible = "rfkill-gpio"; > + label = "rfkill-wlan"; > + pinctrl-names = "default"; > + pinctrl-0 = <&wifi_reg_on_h>; > + radio-type = "wlan"; > + shutdown-gpios = <&gpio1 RK_PA6 GPIO_ACTIVE_HIGH>; > + }; Why not use mmc-pwrseq instead of rfkill? > + rfkill-bt { > + compatible = "rfkill-gpio"; > + label = "rfkill-bt"; > + pinctrl-names = "default"; > + pinctrl-0 = <&bt_reg_on_h>; > + radio-type = "bluetooth"; > + shutdown-gpios = <&gpio1 RK_PC1 GPIO_ACTIVE_HIGH>; > + }; Why not use shutdown-gpios of bcm43438-bt? > +&i2c0 { > + pinctrl-names = "default"; > + pinctrl-0 = <&i2c0m0_xfer>; > + status = "okay"; > + > + hym8563: rtc@51 { > + compatible = "haoyu,hym8563"; > + reg = <0x51>; > + #clock-cells = <0>; > + clock-output-names = "hym8563"; CLKOUT pin is not connected. > +&sdio0 { > + bus-width = <4>; > + cap-sd-highspeed; > + cap-sdio-irq; > + disable-wp; > + keep-power-in-suspend; > + no-mmc; > + no-sd; > + non-removable; > + pinctrl-names = "default"; > + pinctrl-0 = <&sdio0_bus4>, <&sdio0_clk>, <&sdio0_cmd>, <&clkm1_32k_out>; I recommend using clkm1_32k_out at the sdio-pwrseq node. > + sd-uhs-sdr104; > + vmmc-supply = <&vcc_3v3>; > + vqmmc-supply = <&vcc_1v8>; > + status = "okay"; Maybe `brcm,bcm4329-fmac` nodes can be added here? > +&uart2 { > + pinctrl-names = "default"; > + pinctrl-0 = <&uart2m1_xfer>, <&uart2m1_ctsn>, <&uart2m1_rtsn>; > + uart-has-rtscts; > + status = "okay"; You can add `brcm,bcm43438-bt` nodes here: bluetooth { compatible = "brcm,bcm43438-bt"; device-wakeup-gpios = <&gpio3 RK_PC3 GPIO_ACTIVE_HIGH>; host-wakeup-gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_HIGH>; shutdown-gpios = <&gpio1 RK_PC1 GPIO_ACTIVE_HIGH>; ... }; Thanks, Chukun -- 2.25.1 ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 4/6] arm64: dts: rockchip: Add ArmSoM Sige1 2025-07-09 7:00 ` Chukun Pan @ 2025-07-10 0:00 ` Jonas Karlman 0 siblings, 0 replies; 15+ messages in thread From: Jonas Karlman @ 2025-07-10 0:00 UTC (permalink / raw) To: Chukun Pan Cc: conor+dt, devicetree, heiko, krzk+dt, linux-arm-kernel, linux-kernel, linux-rockchip, robh, ziyao Hi, On 7/9/2025 9:00 AM, Chukun Pan wrote: > Hi, > >> + vcc5v0_usb1_host: regulator-5v0-vcc-usb1-host { >> + compatible = "regulator-fixed"; >> ... >> + regulator-always-on; >> + regulator-boot-on; >> ... >> + vcc5v0_usb2_host: regulator-5v0-vcc-usb2-host { >> + regulator-always-on; >> + regulator-boot-on; >> ... > > I think these two regulators do not need boot-on? Agree, will remove the boot-on in v2. > >> + rfkill { >> + compatible = "rfkill-gpio"; >> + label = "rfkill-wlan"; >> + pinctrl-names = "default"; >> + pinctrl-0 = <&wifi_reg_on_h>; >> + radio-type = "wlan"; >> + shutdown-gpios = <&gpio1 RK_PA6 GPIO_ACTIVE_HIGH>; >> + }; > > Why not use mmc-pwrseq instead of rfkill? Not sure, have changed to use mmc-pwrseq in v2. > >> + rfkill-bt { >> + compatible = "rfkill-gpio"; >> + label = "rfkill-bt"; >> + pinctrl-names = "default"; >> + pinctrl-0 = <&bt_reg_on_h>; >> + radio-type = "bluetooth"; >> + shutdown-gpios = <&gpio1 RK_PC1 GPIO_ACTIVE_HIGH>; >> + }; > > Why not use shutdown-gpios of bcm43438-bt? Sure, will use that in v2. > >> +&i2c0 { >> + pinctrl-names = "default"; >> + pinctrl-0 = <&i2c0m0_xfer>; >> + status = "okay"; >> + >> + hym8563: rtc@51 { >> + compatible = "haoyu,hym8563"; >> + reg = <0x51>; >> + #clock-cells = <0>; >> + clock-output-names = "hym8563"; > > CLKOUT pin is not connected. Thanks, will remove the clock-output-names for the Sige1 and the NanoPi Zero2 in v2, #clock-cells seem to be required by the dt-bindings. > >> +&sdio0 { >> + bus-width = <4>; >> + cap-sd-highspeed; >> + cap-sdio-irq; >> + disable-wp; >> + keep-power-in-suspend; >> + no-mmc; >> + no-sd; >> + non-removable; >> + pinctrl-names = "default"; >> + pinctrl-0 = <&sdio0_bus4>, <&sdio0_clk>, <&sdio0_cmd>, <&clkm1_32k_out>; > > I recommend using clkm1_32k_out at the sdio-pwrseq node. Will do so in v2. > >> + sd-uhs-sdr104; >> + vmmc-supply = <&vcc_3v3>; >> + vqmmc-supply = <&vcc_1v8>; >> + status = "okay"; > > Maybe `brcm,bcm4329-fmac` nodes can be added here? Will add to in v2. > >> +&uart2 { >> + pinctrl-names = "default"; >> + pinctrl-0 = <&uart2m1_xfer>, <&uart2m1_ctsn>, <&uart2m1_rtsn>; >> + uart-has-rtscts; >> + status = "okay"; > > You can add `brcm,bcm43438-bt` nodes here: > > bluetooth { > compatible = "brcm,bcm43438-bt"; > device-wakeup-gpios = <&gpio3 RK_PC3 GPIO_ACTIVE_HIGH>; > host-wakeup-gpios = <&gpio1 RK_PC2 GPIO_ACTIVE_HIGH>; > shutdown-gpios = <&gpio1 RK_PC1 GPIO_ACTIVE_HIGH>; > ... > }; Will use something similar in v2. See [1] for fixups I am testing for v2. [1] https://github.com/Kwiboo/linux-rockchip/commits/next-20250708-rk3528-boards/ Regards, Jonas > > Thanks, > Chukun > > -- > 2.25.1 > ^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH 5/6] dt-bindings: arm: rockchip: Add FriendlyElec NanoPi Zero2 2025-07-08 22:48 [PATCH 0/6] arm64: dts: rockchip: Add ROCK 2A/2F, Sige1 and NanoPi Zero2 Jonas Karlman ` (3 preceding siblings ...) 2025-07-08 22:48 ` [PATCH 4/6] arm64: dts: " Jonas Karlman @ 2025-07-08 22:48 ` Jonas Karlman 2025-07-08 22:48 ` [PATCH 6/6] arm64: dts: " Jonas Karlman 5 siblings, 0 replies; 15+ messages in thread From: Jonas Karlman @ 2025-07-08 22:48 UTC (permalink / raw) To: Heiko Stuebner, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: Yao Zi, Chukun Pan, linux-rockchip, devicetree, linux-arm-kernel, linux-kernel, Jonas Karlman The NanoPi Zero2 is small single board computer developed by FriendlyElec, based on the Rockchip RK3528A SoC. Add devicetree binding documentation for the FriendlyElec NanoPi Zero2 board. Signed-off-by: Jonas Karlman <jonas@kwiboo.se> --- Documentation/devicetree/bindings/arm/rockchip.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Documentation/devicetree/bindings/arm/rockchip.yaml b/Documentation/devicetree/bindings/arm/rockchip.yaml index e955e3334e35..a84076841504 100644 --- a/Documentation/devicetree/bindings/arm/rockchip.yaml +++ b/Documentation/devicetree/bindings/arm/rockchip.yaml @@ -319,6 +319,11 @@ properties: - friendlyarm,nanopi-r6s - const: rockchip,rk3588s + - description: FriendlyElec NanoPi Zero2 + items: + - const: friendlyarm,nanopi-zero2 + - const: rockchip,rk3528 + - description: FriendlyElec NanoPC T6 series boards items: - enum: -- 2.49.0 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 6/6] arm64: dts: rockchip: Add FriendlyElec NanoPi Zero2 2025-07-08 22:48 [PATCH 0/6] arm64: dts: rockchip: Add ROCK 2A/2F, Sige1 and NanoPi Zero2 Jonas Karlman ` (4 preceding siblings ...) 2025-07-08 22:48 ` [PATCH 5/6] dt-bindings: arm: rockchip: Add FriendlyElec NanoPi Zero2 Jonas Karlman @ 2025-07-08 22:48 ` Jonas Karlman 2025-07-09 3:30 ` Yao Zi 5 siblings, 1 reply; 15+ messages in thread From: Jonas Karlman @ 2025-07-08 22:48 UTC (permalink / raw) To: Heiko Stuebner, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: Yao Zi, Chukun Pan, linux-rockchip, devicetree, linux-arm-kernel, linux-kernel, Jonas Karlman The NanoPi Zero2 is a small single board computer developed by FriendlyElec, based on the Rockchip RK3528A SoC. Add initial device tree for the FriendlyElec NanoPi Zero2 board. Signed-off-by: Jonas Karlman <jonas@kwiboo.se> --- Schematics: https://wiki.friendlyelec.com/wiki/images/3/37/NanoPi_Zero2_2407_SCH.pdf --- arch/arm64/boot/dts/rockchip/Makefile | 1 + .../boot/dts/rockchip/rk3528-nanopi-zero2.dts | 341 ++++++++++++++++++ 2 files changed, 342 insertions(+) create mode 100644 arch/arm64/boot/dts/rockchip/rk3528-nanopi-zero2.dts diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile index e86131b03692..8e95b5620af1 100644 --- a/arch/arm64/boot/dts/rockchip/Makefile +++ b/arch/arm64/boot/dts/rockchip/Makefile @@ -90,6 +90,7 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-sapphire.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399-sapphire-excavator.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3399pro-rock-pi-n10.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3528-armsom-sige1.dtb +dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3528-nanopi-zero2.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3528-radxa-e20c.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3528-rock-2a.dtb dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3528-rock-2f.dtb diff --git a/arch/arm64/boot/dts/rockchip/rk3528-nanopi-zero2.dts b/arch/arm64/boot/dts/rockchip/rk3528-nanopi-zero2.dts new file mode 100644 index 000000000000..8bc5da9f24c3 --- /dev/null +++ b/arch/arm64/boot/dts/rockchip/rk3528-nanopi-zero2.dts @@ -0,0 +1,341 @@ +// SPDX-License-Identifier: (GPL-2.0+ OR MIT) + +/dts-v1/; + +#include <dt-bindings/input/input.h> +#include <dt-bindings/leds/common.h> +#include <dt-bindings/pwm/pwm.h> +#include "rk3528.dtsi" + +/ { + model = "FriendlyElec NanoPi Zero2"; + compatible = "friendlyarm,nanopi-zero2", "rockchip,rk3528"; + + aliases { + ethernet0 = &gmac1; + i2c1 = &i2c1; + mmc0 = &sdhci; + mmc1 = &sdmmc; + serial0 = &uart0; + }; + + chosen { + stdout-path = "serial0:1500000n8"; + }; + + adc-keys-0 { + compatible = "adc-keys"; + io-channels = <&saradc 0>; + io-channel-names = "buttons"; + keyup-threshold-microvolt = <1800000>; + poll-interval = <100>; + + button-maskrom { + label = "MASK"; + linux,code = <KEY_SETUP>; + press-threshold-microvolt = <0>; + }; + }; + + adc-keys-1 { + compatible = "adc-keys"; + io-channels = <&saradc 1>; + io-channel-names = "buttons"; + keyup-threshold-microvolt = <1800000>; + poll-interval = <100>; + + button-recovery { + label = "RECOVERY"; + linux,code = <KEY_VENDOR>; + press-threshold-microvolt = <0>; + }; + }; + + leds { + compatible = "gpio-leds"; + pinctrl-names = "default"; + pinctrl-0 = <&led1>, <&led_sys>; + + led-1 { + color = <LED_COLOR_ID_GREEN>; + default-state = "on"; + function = LED_FUNCTION_STATUS; + gpios = <&gpio4 RK_PB1 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "default-on"; + }; + + led-sys { + color = <LED_COLOR_ID_RED>; + default-state = "on"; + function = LED_FUNCTION_HEARTBEAT; + gpios = <&gpio4 RK_PB0 GPIO_ACTIVE_HIGH>; + linux,default-trigger = "heartbeat"; + }; + }; + + vcc0v6_ddr: regulator-0v6-vcc-ddr { + compatible = "regulator-fixed"; + regulator-name = "vcc0v6_ddr"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <600000>; + regulator-max-microvolt = <600000>; + vin-supply = <&vcc5v0_sys>; + }; + + vdd_0v9: regulator-0v9-vdd { + compatible = "regulator-fixed"; + regulator-name = "vdd_0v9"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <900000>; + regulator-max-microvolt = <900000>; + vin-supply = <&vcc5v0_sys>; + }; + + vcc_ddr: regulator-1v1-vcc-ddr { + compatible = "regulator-fixed"; + regulator-name = "vcc_ddr"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1100000>; + regulator-max-microvolt = <1100000>; + vin-supply = <&vcc5v0_sys>; + }; + + vcc_1v8: regulator-1v8-vcc { + compatible = "regulator-fixed"; + regulator-name = "vcc_1v8"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + vin-supply = <&vcc_3v3>; + }; + + vcc_3v3: regulator-3v3-vcc { + compatible = "regulator-fixed"; + regulator-name = "vcc_3v3"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + vin-supply = <&vcc5v0_sys>; + }; + + vcc3v3_sd: regulator-3v3-vcc-sd { + compatible = "regulator-fixed"; + gpios = <&gpio4 RK_PA1 GPIO_ACTIVE_LOW>; + pinctrl-names = "default"; + pinctrl-0 = <&sdmmc_pwren_l>; + regulator-name = "vcc3v3_sd"; + regulator-min-microvolt = <3300000>; + regulator-max-microvolt = <3300000>; + vin-supply = <&vcc_3v3>; + }; + + vcc5v0_sys: regulator-5v0-vcc-sys { + compatible = "regulator-fixed"; + regulator-name = "vcc5v0_sys"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + }; + + usb2_host_5v: regulator-5v0-usb2-host { + compatible = "regulator-fixed"; + enable-active-high; + gpios = <&gpio4 RK_PB5 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&usb20_host1_pwren>; + regulator-name = "usb2_host_5v"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + vin-supply = <&vcc5v0_sys>; + }; + + vccio_sd: regulator-vccio-sd { + compatible = "regulator-gpio"; + gpios = <&gpio4 RK_PB6 GPIO_ACTIVE_HIGH>; + pinctrl-names = "default"; + pinctrl-0 = <&sdmmc_vol_ctrl_h>; + regulator-name = "vccio_sd"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <3300000>; + states = <1800000 0x0>, <3300000 0x1>; + vin-supply = <&vcc5v0_sys>; + }; + + vdd_arm: regulator-vdd-arm { + compatible = "pwm-regulator"; + pwms = <&pwm1 0 5000 PWM_POLARITY_INVERTED>; + pwm-supply = <&vcc5v0_sys>; + regulator-name = "vdd_arm"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <746000>; + regulator-max-microvolt = <1201000>; + regulator-settling-time-up-us = <250>; + }; + + vdd_logic: regulator-vdd-logic { + compatible = "pwm-regulator"; + pwms = <&pwm2 0 5000 PWM_POLARITY_INVERTED>; + pwm-supply = <&vcc5v0_sys>; + regulator-name = "vdd_logic"; + regulator-always-on; + regulator-boot-on; + regulator-min-microvolt = <705000>; + regulator-max-microvolt = <1006000>; + regulator-settling-time-up-us = <250>; + }; +}; + +&cpu0 { + cpu-supply = <&vdd_arm>; +}; + +&cpu1 { + cpu-supply = <&vdd_arm>; +}; + +&cpu2 { + cpu-supply = <&vdd_arm>; +}; + +&cpu3 { + cpu-supply = <&vdd_arm>; +}; + +&gmac1 { + clock_in_out = "output"; + phy-handle = <&rgmii_phy>; + phy-mode = "rgmii-id"; + phy-supply = <&vcc_3v3>; + pinctrl-names = "default"; + pinctrl-0 = <&rgmii_miim>, <&rgmii_tx_bus2>, <&rgmii_rx_bus2>, + <&rgmii_rgmii_clk>, <&rgmii_rgmii_bus>; + status = "okay"; +}; + +&gpu { + mali-supply = <&vdd_logic>; + status = "okay"; +}; + +&i2c1 { + pinctrl-names = "default"; + pinctrl-0 = <&i2c1m0_xfer>; + status = "okay"; + + hym8563: rtc@51 { + compatible = "haoyu,hym8563"; + reg = <0x51>; + #clock-cells = <0>; + clock-output-names = "hym8563"; + interrupt-parent = <&gpio4>; + interrupts = <RK_PC1 IRQ_TYPE_LEVEL_LOW>; + pinctrl-names = "default"; + pinctrl-0 = <&rtc_int_l>; + wakeup-source; + }; +}; + +&mdio1 { + rgmii_phy: ethernet-phy@1 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <0x1>; + pinctrl-names = "default"; + pinctrl-0 = <&gmac1_rstn_l>; + reset-assert-us = <20000>; + reset-deassert-us = <100000>; + reset-gpios = <&gpio4 RK_PC2 GPIO_ACTIVE_LOW>; + }; +}; + +&pinctrl { + ethernet { + gmac1_rstn_l: gmac1-rstn-l { + rockchip,pins = <4 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + leds { + led1: led1 { + rockchip,pins = <4 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>; + }; + + led_sys: led-sys { + rockchip,pins = <4 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + rtc { + rtc_int_l: rtc-int-l { + rockchip,pins = <4 RK_PC1 RK_FUNC_GPIO &pcfg_pull_up>; + }; + }; + + sdmmc { + sdmmc_vol_ctrl_h: sdmmc-vol-ctrl-h { + rockchip,pins = <4 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>; + }; + + sdmmc_pwren_l: sdmmc-pwren-l { + rockchip,pins = <4 RK_PA1 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; + + usb { + usb20_host1_pwren: usb20-host1-pwren { + rockchip,pins = <4 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>; + }; + }; +}; + +&pwm1 { + pinctrl-names = "default"; + pinctrl-0 = <&pwm1m0_pins>; + status = "okay"; +}; + +&pwm2 { + pinctrl-names = "default"; + pinctrl-0 = <&pwm2m0_pins>; + status = "okay"; +}; + +&saradc { + vref-supply = <&vcc_1v8>; + status = "okay"; +}; + +&sdhci { + bus-width = <8>; + cap-mmc-highspeed; + mmc-hs200-1_8v; + no-sd; + no-sdio; + non-removable; + vmmc-supply = <&vcc_3v3>; + vqmmc-supply = <&vcc_1v8>; + status = "okay"; +}; + +&sdmmc { + bus-width = <4>; + cap-mmc-highspeed; + cap-sd-highspeed; + disable-wp; + sd-uhs-sdr104; + vmmc-supply = <&vcc3v3_sd>; + vqmmc-supply = <&vccio_sd>; + status = "okay"; +}; + +&uart0 { + pinctrl-names = "default"; + pinctrl-0 = <&uart0m0_xfer>; + status = "okay"; +}; -- 2.49.0 ^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH 6/6] arm64: dts: rockchip: Add FriendlyElec NanoPi Zero2 2025-07-08 22:48 ` [PATCH 6/6] arm64: dts: " Jonas Karlman @ 2025-07-09 3:30 ` Yao Zi 0 siblings, 0 replies; 15+ messages in thread From: Yao Zi @ 2025-07-09 3:30 UTC (permalink / raw) To: Jonas Karlman, Heiko Stuebner, Rob Herring, Krzysztof Kozlowski, Conor Dooley Cc: Chukun Pan, linux-rockchip, devicetree, linux-arm-kernel, linux-kernel On Tue, Jul 08, 2025 at 10:48:56PM +0000, Jonas Karlman wrote: > The NanoPi Zero2 is a small single board computer developed by > FriendlyElec, based on the Rockchip RK3528A SoC. > > Add initial device tree for the FriendlyElec NanoPi Zero2 board. Tested on my NanoPi Zero 2 board, RTC could be read out, and Ethernet and SDMMC reaches a reasonable speed. Tested-by: Yao Zi <ziyao@disroot.org> > Signed-off-by: Jonas Karlman <jonas@kwiboo.se> > --- > Schematics: https://wiki.friendlyelec.com/wiki/images/3/37/NanoPi_Zero2_2407_SCH.pdf > --- > arch/arm64/boot/dts/rockchip/Makefile | 1 + > .../boot/dts/rockchip/rk3528-nanopi-zero2.dts | 341 ++++++++++++++++++ > 2 files changed, 342 insertions(+) > create mode 100644 arch/arm64/boot/dts/rockchip/rk3528-nanopi-zero2.dts ^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2025-07-10 20:07 UTC | newest] Thread overview: 15+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-07-08 22:48 [PATCH 0/6] arm64: dts: rockchip: Add ROCK 2A/2F, Sige1 and NanoPi Zero2 Jonas Karlman 2025-07-08 22:48 ` [PATCH 1/6] dt-bindings: arm: rockchip: Add Radxa ROCK 2A/2F Jonas Karlman 2025-07-08 22:48 ` [PATCH 2/6] arm64: dts: " Jonas Karlman 2025-07-09 4:25 ` Yao Zi 2025-07-09 23:56 ` Jonas Karlman 2025-07-10 16:41 ` Yao Zi 2025-07-10 20:07 ` Jonas Karlman 2025-07-10 2:45 ` Rob Herring (Arm) 2025-07-08 22:48 ` [PATCH 3/6] dt-bindings: arm: rockchip: Add ArmSoM Sige1 Jonas Karlman 2025-07-08 22:48 ` [PATCH 4/6] arm64: dts: " Jonas Karlman 2025-07-09 7:00 ` Chukun Pan 2025-07-10 0:00 ` Jonas Karlman 2025-07-08 22:48 ` [PATCH 5/6] dt-bindings: arm: rockchip: Add FriendlyElec NanoPi Zero2 Jonas Karlman 2025-07-08 22:48 ` [PATCH 6/6] arm64: dts: " Jonas Karlman 2025-07-09 3:30 ` Yao Zi
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).