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>
---
v3: Rename led nodes to led-0/led-1 (Chukun Pan)
v2: Limit sdmmc max-frequency to 100 MHz (Yao Zi)
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 | 293 ++++++++++++++++++
.../boot/dts/rockchip/rk3528-rock-2a.dts | 82 +++++
.../boot/dts/rockchip/rk3528-rock-2f.dts | 10 +
4 files changed, 387 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 099520962ffb..4cb6106b16f2 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..aedc7ee9ee46
--- /dev/null
+++ b/arch/arm64/boot/dts/rockchip/rk3528-rock-2.dtsi
@@ -0,0 +1,293 @@
+// 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-0 {
+ 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;
+ max-frequency = <100000000>;
+ 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..c03ae1dd3456
--- /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-1 {
+ 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
Hi Jonas, see comments in-line. On Saturday, 12 July 2025 19:37:44 Central European Summer Time 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> > --- > v3: Rename led nodes to led-0/led-1 (Chukun Pan) > v2: Limit sdmmc max-frequency to 100 MHz (Yao Zi) > > 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 | 293 ++++++++++++++++++ > .../boot/dts/rockchip/rk3528-rock-2a.dts | 82 +++++ > .../boot/dts/rockchip/rk3528-rock-2f.dts | 10 + > 4 files changed, 387 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 099520962ffb..4cb6106b16f2 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..aedc7ee9ee46 > --- /dev/null > +++ b/arch/arm64/boot/dts/rockchip/rk3528-rock-2.dtsi > [...] > + > +&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>; I don't see an external pull-up or pull-down in the schematic. I'm not sure what the recommended practice is; should we have a pull direction set in the SoC's pin controller in these cases, or leave it floating? > + }; > + > + 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; > + max-frequency = <100000000>; Any reason why we reduce this from the 150000000 in the SoC .dtsi? Using the frequency the SoC .dtsi uses seems to work for me on the ROCK 2A: [ 0.347556] mmc_host mmc1: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0) [ 0.547362] mmc_host mmc1: Bus speed (slot 0) = 148500000Hz (slot req 150000000Hz, actual 148500000HZ div = 0) [ 0.814405] dwmmc_rockchip ffc30000.mmc: Successfully tuned phase to 248 [ 0.815407] mmc1: new UHS-I speed SDR104 SDXC card at address aaaa [ 0.817030] mmcblk1: mmc1:aaaa SH64G 59.5 GiB [ 0.820943] mmcblk1: p1 p2 > + 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..c03ae1dd3456 > --- /dev/null > +++ b/arch/arm64/boot/dts/rockchip/rk3528-rock-2a.dts > [...] > + > +&pinctrl { > + ethernet { > + gmac1_rstn_l: gmac1-rstn-l { > + rockchip,pins = <4 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>; Same concern as with wifi-reg-on-h, there's no external pull resistor in the schematic. > + }; > + }; > + > + 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"; > +}; > Other than the indicated comments, Reviewed-by: Nicolas Frattaroli <nicolas.frattaroli@collabora.com> ensured the pinctrls were correct, checked that they correspond to the GPIOs being used in the devices associated with them. Also checked the rock 2a schematic to verify that the vccio_sd switching setup is correct, i.e. that high is indeed 3.3V and low is 1.8V. And: Tested-by: Nicolas Frattaroli <nicolas.frattaroli@collabora.com> test-booted on a ROCK 2A, tested that SD card shows up, made sure ethernet works as well, also ensured that the adc key works.
Hi Nicolas, On 7/14/2025 11:44 AM, Nicolas Frattaroli wrote: > Hi Jonas, > > see comments in-line. > > On Saturday, 12 July 2025 19:37:44 Central European Summer Time 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> >> --- >> v3: Rename led nodes to led-0/led-1 (Chukun Pan) >> v2: Limit sdmmc max-frequency to 100 MHz (Yao Zi) >> >> 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 | 293 ++++++++++++++++++ >> .../boot/dts/rockchip/rk3528-rock-2a.dts | 82 +++++ >> .../boot/dts/rockchip/rk3528-rock-2f.dts | 10 + >> 4 files changed, 387 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 099520962ffb..4cb6106b16f2 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..aedc7ee9ee46 >> --- /dev/null >> +++ b/arch/arm64/boot/dts/rockchip/rk3528-rock-2.dtsi >> [...] >> + >> +&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>; > > I don't see an external pull-up or pull-down in the schematic. I'm not > sure what the recommended practice is; should we have a pull direction > set in the SoC's pin controller in these cases, or leave it floating? This is at least what I have done for gpio output pins in the past, see other defines for a wifi_reg_on_h in tree. My (possible wrong) reasoning is that this pin is used as a gpio output pin and the output value should determin high/low. For this perticiular board the wifi_reg_on_h pin is referenced as shutdown-gpios in the rfkill-gpio node, so when this is initialized the output value should be set high/low and the internal pull value no longer has a real purpose. Please correct me if my reasoning is wrong :-) > >> + }; >> + >> + 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; >> + max-frequency = <100000000>; > > Any reason why we reduce this from the 150000000 in the SoC .dtsi? Please see v1 of this series, Yao Zi reported issues when 150 MHz was usued with a SD-card that works with 150 MHz on the Radxa E20C. Vendor kernel seem to change drive strenght of clk pin, but that did not improve the situation, so I changed it to use a lower rate for now. > Using the frequency the SoC .dtsi uses seems to work for me on the > ROCK 2A: > > [ 0.347556] mmc_host mmc1: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0) > [ 0.547362] mmc_host mmc1: Bus speed (slot 0) = 148500000Hz (slot req 150000000Hz, actual 148500000HZ div = 0) > [ 0.814405] dwmmc_rockchip ffc30000.mmc: Successfully tuned phase to 248 > [ 0.815407] mmc1: new UHS-I speed SDR104 SDXC card at address aaaa > [ 0.817030] mmcblk1: mmc1:aaaa SH64G 59.5 GiB > [ 0.820943] mmcblk1: p1 p2 Using 150 MHz also worked with my 2A/3F boards and the two SD-cards I could test. > >> + 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..c03ae1dd3456 >> --- /dev/null >> +++ b/arch/arm64/boot/dts/rockchip/rk3528-rock-2a.dts >> [...] >> + >> +&pinctrl { >> + ethernet { >> + gmac1_rstn_l: gmac1-rstn-l { >> + rockchip,pins = <4 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>; > > Same concern as with wifi-reg-on-h, there's no external pull resistor > in the schematic. Same resoning as above, this pin is used as the Ethernet PHY reset-gpios pin. Here the bootloader (U-Boot) will also configure this pin with a gpio output value to trigger a PHY reset. I can change these to pull-down as that seem to be the reset value for these two pins, if I understand the schematic and PinOut correctly, if you have a strong opinion on that these defines are wrong. Regards, Jonas > >> + }; >> + }; >> + >> + 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"; >> +}; >> > > Other than the indicated comments, > > Reviewed-by: Nicolas Frattaroli <nicolas.frattaroli@collabora.com> > > ensured the pinctrls were correct, checked that they correspond to the > GPIOs being used in the devices associated with them. Also checked the > rock 2a schematic to verify that the vccio_sd switching setup is > correct, i.e. that high is indeed 3.3V and low is 1.8V. > > And: > > Tested-by: Nicolas Frattaroli <nicolas.frattaroli@collabora.com> > > test-booted on a ROCK 2A, tested that SD card shows up, made sure > ethernet works as well, also ensured that the adc key works. > >
Hi Jonas, On Monday, 14 July 2025 12:49:24 Central European Summer Time Jonas Karlman wrote: > Hi Nicolas, > > On 7/14/2025 11:44 AM, Nicolas Frattaroli wrote: > > Hi Jonas, > > > > see comments in-line. > > > > On Saturday, 12 July 2025 19:37:44 Central European Summer Time 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> > >> --- > >> v3: Rename led nodes to led-0/led-1 (Chukun Pan) > >> v2: Limit sdmmc max-frequency to 100 MHz (Yao Zi) > >> > >> 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 | 293 ++++++++++++++++++ > >> .../boot/dts/rockchip/rk3528-rock-2a.dts | 82 +++++ > >> .../boot/dts/rockchip/rk3528-rock-2f.dts | 10 + > >> 4 files changed, 387 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 099520962ffb..4cb6106b16f2 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..aedc7ee9ee46 > >> --- /dev/null > >> +++ b/arch/arm64/boot/dts/rockchip/rk3528-rock-2.dtsi > >> [...] > >> + > >> +&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>; > > > > I don't see an external pull-up or pull-down in the schematic. I'm not > > sure what the recommended practice is; should we have a pull direction > > set in the SoC's pin controller in these cases, or leave it floating? > > This is at least what I have done for gpio output pins in the past, see > other defines for a wifi_reg_on_h in tree. > > My (possible wrong) reasoning is that this pin is used as a gpio output > pin and the output value should determin high/low. For this perticiular > board the wifi_reg_on_h pin is referenced as shutdown-gpios in the > rfkill-gpio node, so when this is initialized the output value should be > set high/low and the internal pull value no longer has a real purpose. > > Please correct me if my reasoning is wrong :-) Your explanation makes sense to me. I don't know which way is the right way, but I assume setting pulls does indeed not do much because any effect they'd have would already be way too late in the power cycle. > > > > >> + }; > >> + > >> + 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; > >> + max-frequency = <100000000>; > > > > Any reason why we reduce this from the 150000000 in the SoC .dtsi? > > Please see v1 of this series, Yao Zi reported issues when 150 MHz was > usued with a SD-card that works with 150 MHz on the Radxa E20C. > > Vendor kernel seem to change drive strenght of clk pin, but that did not > improve the situation, so I changed it to use a lower rate for now. Oops, thanks for pointing this out. Yeah, that makes sense to me then. > > > Using the frequency the SoC .dtsi uses seems to work for me on the > > ROCK 2A: > > > > [ 0.347556] mmc_host mmc1: Bus speed (slot 0) = 400000Hz (slot req 400000Hz, actual 400000HZ div = 0) > > [ 0.547362] mmc_host mmc1: Bus speed (slot 0) = 148500000Hz (slot req 150000000Hz, actual 148500000HZ div = 0) > > [ 0.814405] dwmmc_rockchip ffc30000.mmc: Successfully tuned phase to 248 > > [ 0.815407] mmc1: new UHS-I speed SDR104 SDXC card at address aaaa > > [ 0.817030] mmcblk1: mmc1:aaaa SH64G 59.5 GiB > > [ 0.820943] mmcblk1: p1 p2 > > Using 150 MHz also worked with my 2A/3F boards and the two SD-cards I > could test. > > > > >> + 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..c03ae1dd3456 > >> --- /dev/null > >> +++ b/arch/arm64/boot/dts/rockchip/rk3528-rock-2a.dts > >> [...] > >> + > >> +&pinctrl { > >> + ethernet { > >> + gmac1_rstn_l: gmac1-rstn-l { > >> + rockchip,pins = <4 RK_PC2 RK_FUNC_GPIO &pcfg_pull_none>; > > > > Same concern as with wifi-reg-on-h, there's no external pull resistor > > in the schematic. > > Same resoning as above, this pin is used as the Ethernet PHY reset-gpios > pin. Here the bootloader (U-Boot) will also configure this pin with a > gpio output value to trigger a PHY reset. > > I can change these to pull-down as that seem to be the reset value for > these two pins, if I understand the schematic and PinOut correctly, if > you have a strong opinion on that these defines are wrong. I don't feel strongly about the pinctrl at all, I think your explanation that U-Boot got there before us puts a nail in the coffin of whether they should be set at all; if anything, we'd probably make the device even less happy by needlessly toggling the reset again with a pull before it then gets toggled again by the Linux driver. Everything looks good to me with those questions of mine cleared up, thanks for working on this! Kind regards, Nicolas Frattaroli > > Regards, > Jonas > > > > >> + }; > >> + }; > >> + > >> + 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"; > >> +}; > >> > > > > Other than the indicated comments, > > > > Reviewed-by: Nicolas Frattaroli <nicolas.frattaroli@collabora.com> > > > > ensured the pinctrls were correct, checked that they correspond to the > > GPIOs being used in the devices associated with them. Also checked the > > rock 2a schematic to verify that the vccio_sd switching setup is > > correct, i.e. that high is indeed 3.3V and low is 1.8V. > > > > And: > > > > Tested-by: Nicolas Frattaroli <nicolas.frattaroli@collabora.com> > > > > test-booted on a ROCK 2A, tested that SD card shows up, made sure > > ethernet works as well, also ensured that the adc key works. > > > > > >
On Sat, Jul 12, 2025 at 05:37:44PM +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> Tested on my Radxa 2A board, the SD card could be read out at 45MB/s, the GbE port reaches 942Mbps with iperf, and the EEPROM could be read out correctly. I also saw the heartbeat LED blinking, Tested-by: Yao Zi <ziyao@disroot.org> > --- > v3: Rename led nodes to led-0/led-1 (Chukun Pan) > v2: Limit sdmmc max-frequency to 100 MHz (Yao Zi) > > 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 | 293 ++++++++++++++++++ > .../boot/dts/rockchip/rk3528-rock-2a.dts | 82 +++++ > .../boot/dts/rockchip/rk3528-rock-2f.dts | 10 + > 4 files changed, 387 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
© 2016 - 2025 Red Hat, Inc.