devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/2] arm64: dts: rockchip: add Tinker Board 3 and 3S device tree
@ 2025-11-14 15:46 michael.opdenacker
  2025-11-14 15:46 ` [PATCH v2 1/2] dt-bindings: arm: rockchip: Add Asus Tinker Board 3 and 3S michael.opdenacker
  2025-11-14 15:46 ` [PATCH v2 2/2] arm64: dts: rockchip: Add Asus Tinker Board 3 and 3S device tree michael.opdenacker
  0 siblings, 2 replies; 10+ messages in thread
From: michael.opdenacker @ 2025-11-14 15:46 UTC (permalink / raw)
  To: robh, krzk+dt, conor+dt, heiko, dsimic
  Cc: devicetree, linux-arm-kernel, linux-rockchip, linux-kernel,
	Michael Opdenacker

From: Michael Opdenacker <michael.opdenacker@rootcommit.com>

Add initial device tree support for Asus Tinker Board 3 [1] and 3S [2],
which are SBCs based on the Rockchip 3566 SoC.

The "3S" version ("S" for "storage") is just a regular Tinker Board 3
fitted with a 16 GB eMMC and a "mask ROM" DIP switch
(to mask the eMMC and enter "Mask ROM" mode for recovery).

This adds support for:
- Debug UART (/dev/ttyS2)
- SD card (/dev/mmcblk1)
- eMMC (/dev/mmcblk0, only on Tinker Board 3S)
- I2C:
  - i2c0 (internal bus with a PMIC and regulators)
  - i2c2 (internal bus with an at24 eeprom and an RTC device)
- USB 2.0 ports
- 2 GPIO LEDS

This code was tested on Tinker Board 3S using the "master"
branch of the Linux kernel.

[1] https://tinker-board.asus.com/series/tinker-board-3.html
[2] https://tinker-board.asus.com/series/tinker-board-3s.html

Changes in V2:
- Rename "Tinker board" to "Tinker Board"
  in commit messages and DT code
- Insert "-board" in DT file names
- Insert "-board" in new compatible string too
- Commit messages: change the way the references are introduced
  ("[1] https://..." instead of "Link: https://... [1]")
- Reorder alias properties and node names
- Add missing "cpu-supply" property to cpu nodes
- Use standard "eeprom@addr" node name for at24 eeprom
- DT commit message: add missing "Asus" before "Tinker"

Michael Opdenacker (2):
  dt-bindings: arm: rockchip: Add Asus Tinker Board 3 and 3S
  arm64: dts: rockchip: Add Asus Tinker Board 3 and 3S device tree

 .../devicetree/bindings/arm/rockchip.yaml     |  11 +
 arch/arm64/boot/dts/rockchip/Makefile         |   2 +
 .../dts/rockchip/rk3566-tinker-board-3.dts    |  14 +
 .../dts/rockchip/rk3566-tinker-board-3.dtsi   | 280 ++++++++++++++++++
 .../dts/rockchip/rk3566-tinker-board-3s.dts   |  30 ++
 5 files changed, 337 insertions(+)
 create mode 100644 arch/arm64/boot/dts/rockchip/rk3566-tinker-board-3.dts
 create mode 100644 arch/arm64/boot/dts/rockchip/rk3566-tinker-board-3.dtsi
 create mode 100644 arch/arm64/boot/dts/rockchip/rk3566-tinker-board-3s.dts


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH v2 1/2] dt-bindings: arm: rockchip: Add Asus Tinker Board 3 and 3S
  2025-11-14 15:46 [PATCH v2 0/2] arm64: dts: rockchip: add Tinker Board 3 and 3S device tree michael.opdenacker
@ 2025-11-14 15:46 ` michael.opdenacker
  2025-11-15 11:37   ` Krzysztof Kozlowski
  2025-11-14 15:46 ` [PATCH v2 2/2] arm64: dts: rockchip: Add Asus Tinker Board 3 and 3S device tree michael.opdenacker
  1 sibling, 1 reply; 10+ messages in thread
From: michael.opdenacker @ 2025-11-14 15:46 UTC (permalink / raw)
  To: robh, krzk+dt, conor+dt, heiko, dsimic
  Cc: devicetree, linux-arm-kernel, linux-rockchip, linux-kernel,
	Michael Opdenacker

From: Michael Opdenacker <michael.opdenacker@rootcommit.com>

Document the compatible strings for Asus Tinker Board 3 [1] and 3S [2],
which are SBCs based on the Rockchip 3566 SoC.

The "3S" version ("S" for "storage") just adds a 16 GB eMMC
and a "mask ROM" DIP switch to the "3" version.

[1] https://tinker-board.asus.com/series/tinker-board-3.html
[2] https://tinker-board.asus.com/series/tinker-board-3s.html

Signed-off-by: Michael Opdenacker <michael.opdenacker@rootcommit.com>
---
 Documentation/devicetree/bindings/arm/rockchip.yaml | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/Documentation/devicetree/bindings/arm/rockchip.yaml b/Documentation/devicetree/bindings/arm/rockchip.yaml
index 6aceaa8acbb2..cd249325a4d9 100644
--- a/Documentation/devicetree/bindings/arm/rockchip.yaml
+++ b/Documentation/devicetree/bindings/arm/rockchip.yaml
@@ -86,6 +86,17 @@ properties:
           - const: asus,rk3288-tinker-s
           - const: rockchip,rk3288
 
+      - description: Asus Tinker Board 3
+        items:
+          - const: asus,rk3566-tinker-board-3
+          - const: rockchip,rk3566
+
+      - description: Asus Tinker Board 3S
+        items:
+          - const: asus,rk3566-tinker-board-3s
+          - const: asus,rk3566-tinker-board-3
+          - const: rockchip,rk3566
+
       - description: Beelink A1
         items:
           - const: azw,beelink-a1

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v2 2/2] arm64: dts: rockchip: Add Asus Tinker Board 3 and 3S device tree
  2025-11-14 15:46 [PATCH v2 0/2] arm64: dts: rockchip: add Tinker Board 3 and 3S device tree michael.opdenacker
  2025-11-14 15:46 ` [PATCH v2 1/2] dt-bindings: arm: rockchip: Add Asus Tinker Board 3 and 3S michael.opdenacker
@ 2025-11-14 15:46 ` michael.opdenacker
  1 sibling, 0 replies; 10+ messages in thread
From: michael.opdenacker @ 2025-11-14 15:46 UTC (permalink / raw)
  To: robh, krzk+dt, conor+dt, heiko, dsimic
  Cc: devicetree, linux-arm-kernel, linux-rockchip, linux-kernel,
	Michael Opdenacker

From: Michael Opdenacker <michael.opdenacker@rootcommit.com>

Add initial device tree support for Asus Tinker Board 3 [1] and 3S [2],
which are SBCs based on the Rockchip 3566 SoC.

The "3S" version ("S" for "storage") just adds a 16 GB eMMC
and a "mask ROM" DIP switch (to mask the eMMC and enter "Mask ROM"
mode for recovery) to the "3" version.

This adds support for:
- Debug UART (/dev/ttyS2)
- SD card (/dev/mmcblk1)
- eMMC (/dev/mmcblk0, only on Tinker Board 3S)
- I2C:
  - i2c0 (internal bus with a PMIC and regulators)
  - i2c2 (internal bus with an at24 eeprom and an RTC device)
- USB 2.0 ports
- 2 GPIO LEDS

[1] https://tinker-board.asus.com/series/tinker-board-3.html
[2] https://tinker-board.asus.com/series/tinker-board-3s.html

Signed-off-by: Michael Opdenacker <michael.opdenacker@rootcommit.com>
---
 arch/arm64/boot/dts/rockchip/Makefile         |   2 +
 .../dts/rockchip/rk3566-tinker-board-3.dts    |  14 +
 .../dts/rockchip/rk3566-tinker-board-3.dtsi   | 280 ++++++++++++++++++
 .../dts/rockchip/rk3566-tinker-board-3s.dts   |  30 ++
 4 files changed, 326 insertions(+)
 create mode 100644 arch/arm64/boot/dts/rockchip/rk3566-tinker-board-3.dts
 create mode 100644 arch/arm64/boot/dts/rockchip/rk3566-tinker-board-3.dtsi
 create mode 100644 arch/arm64/boot/dts/rockchip/rk3566-tinker-board-3s.dts

diff --git a/arch/arm64/boot/dts/rockchip/Makefile b/arch/arm64/boot/dts/rockchip/Makefile
index ad684e3831bc..e0d8b9ed176d 100644
--- a/arch/arm64/boot/dts/rockchip/Makefile
+++ b/arch/arm64/boot/dts/rockchip/Makefile
@@ -130,6 +130,8 @@ dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-lubancat-1.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-nanopi-r3s.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-bigtreetech-cb2-manta.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-bigtreetech-pi2.dtb
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-tinker-board-3.dtb
+dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3566-tinker-board-3s.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-bpi-r2-pro.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-evb1-v10.dtb
 dtb-$(CONFIG_ARCH_ROCKCHIP) += rk3568-fastrhino-r66s.dtb
diff --git a/arch/arm64/boot/dts/rockchip/rk3566-tinker-board-3.dts b/arch/arm64/boot/dts/rockchip/rk3566-tinker-board-3.dts
new file mode 100644
index 000000000000..af11faff5564
--- /dev/null
+++ b/arch/arm64/boot/dts/rockchip/rk3566-tinker-board-3.dts
@@ -0,0 +1,14 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (C) 2025 Michael Opdenacker <michael.opdenacker@rootcommit.com>
+ */
+
+/dts-v1/;
+
+#include "rk3566-tinker-board-3.dtsi"
+
+/ {
+	model = "Asus Tinker Board 3";
+	compatible = "asus,rk3566-tinker-board-3", "rockchip,rk3566";
+};
+
diff --git a/arch/arm64/boot/dts/rockchip/rk3566-tinker-board-3.dtsi b/arch/arm64/boot/dts/rockchip/rk3566-tinker-board-3.dtsi
new file mode 100644
index 000000000000..8544d56031f2
--- /dev/null
+++ b/arch/arm64/boot/dts/rockchip/rk3566-tinker-board-3.dtsi
@@ -0,0 +1,280 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (C) 2025 Michael Opdenacker <michael.opdenacker@rootcommit.com>
+ */
+
+#include <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/leds/common.h>
+#include <dt-bindings/pinctrl/rockchip.h>
+#include <dt-bindings/soc/rockchip,vop2.h>
+#include "rk3566.dtsi"
+
+/ {
+	aliases {
+		i2c0 = &i2c0;
+		i2c2 = &i2c2;
+		mmc1 = &sdmmc0;
+		serial2 = &uart2;
+	};
+
+	chosen {
+		stdout-path = "serial2:1500000n8";
+	};
+
+	gpio_leds: gpio-leds {
+		compatible = "gpio-leds";
+
+		act-led {
+			gpios = <&gpio0 RK_PD4 GPIO_ACTIVE_HIGH>;
+			linux,default-trigger="mmc1";
+		};
+
+		rsv-led {
+			gpios = <&gpio0 RK_PD6 GPIO_ACTIVE_HIGH>;
+			linux,default-trigger="none";
+		};
+	};
+
+	vcc3v3_sys: regulator-3v3-vcc-sys {
+		compatible = "regulator-fixed";
+		regulator-name = "vcc3v3_sys";
+		regulator-always-on;
+		regulator-boot-on;
+		regulator-min-microvolt = <3300000>;
+		regulator-max-microvolt = <3300000>;
+		vin-supply = <&vcc5v0_sys>;
+	};
+
+	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_usb_host: regulator-5v0-vcc-usb-host {
+		compatible = "regulator-fixed";
+		enable-active-high;
+		gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&usb_host_pwren_h>;
+		regulator-name = "vcc5v0_usb_host";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		vin-supply = <&vcc5v0_sys>;
+	};
+};
+
+&cpu0 {
+	cpu-supply = <&vdd_cpu>;
+};
+
+&cpu1 {
+	cpu-supply = <&vdd_cpu>;
+};
+
+&cpu2 {
+	cpu-supply = <&vdd_cpu>;
+};
+
+&cpu3 {
+	cpu-supply = <&vdd_cpu>;
+};
+
+&i2c0 {
+	status = "okay";
+
+	rk809: pmic@20 {
+		compatible = "rockchip,rk809";
+		reg = <0x20>;
+		assigned-clocks = <&cru I2S1_MCLKOUT_TX>;
+		assigned-clock-parents = <&cru CLK_I2S1_8CH_TX>;
+		#clock-cells = <1>;
+		clocks = <&cru I2S1_MCLKOUT_TX>;
+		clock-names = "mclk";
+		clock-output-names = "rk809-clkout1", "rk809-clkout2";
+		interrupt-parent = <&gpio0>;
+		interrupts = <RK_PA3 IRQ_TYPE_LEVEL_LOW>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&pmic_int_l>, <&i2s1m0_mclk>;
+		#sound-dai-cells = <0>;
+		system-power-controller;
+		wakeup-source;
+
+		vcc1-supply = <&vcc3v3_sys>;
+		vcc2-supply = <&vcc3v3_sys>;
+		vcc3-supply = <&vcc3v3_sys>;
+		vcc4-supply = <&vcc3v3_sys>;
+		vcc5-supply = <&vcc3v3_sys>;
+		vcc6-supply = <&vcc3v3_sys>;
+		vcc7-supply = <&vcc3v3_sys>;
+		vcc8-supply = <&vcc3v3_sys>;
+		vcc9-supply = <&vcc3v3_sys>;
+
+		regulators {
+			vcc_1v8: DCDC_REG5 {
+				regulator-name = "vcc_1v8";
+				regulator-always-on;
+				regulator-boot-on;
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+
+				regulator-state-mem {
+					regulator-off-in-suspend;
+				};
+			};
+
+			vcc_3v3: SWITCH_REG1 {
+				regulator-name = "vcc_3v3";
+				regulator-always-on;
+				regulator-boot-on;
+
+				regulator-state-mem {
+					regulator-off-in-suspend;
+				};
+			};
+
+			vcc3v3_sd: SWITCH_REG2 {
+				regulator-name = "vcc3v3_sd";
+				regulator-always-on;
+				regulator-boot-on;
+
+				regulator-state-mem {
+					regulator-off-in-suspend;
+				};
+			};
+
+			vccio_sd: LDO_REG5 {
+				regulator-name = "vccio_sd";
+				regulator-always-on;
+				regulator-boot-on;
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <3300000>;
+
+				regulator-state-mem {
+					regulator-off-in-suspend;
+				};
+			};
+		};
+	};
+
+	vdd_cpu: regulator@40 {
+		compatible = "silergy,syr827";
+		reg = <0x40>;
+		fcs,suspend-voltage-selector = <1>;
+		regulator-name = "vdd_cpu";
+		regulator-always-on;
+		regulator-boot-on;
+		regulator-min-microvolt = <830000>;
+		regulator-max-microvolt = <1200000>;
+		regulator-ramp-delay = <2300>;
+		vin-supply = <&vcc3v3_sys>;
+
+		regulator-state-mem {
+			regulator-off-in-suspend;
+		};
+	};
+};
+
+&i2c2 {
+	status = "okay";
+
+	eeprom@50 {
+		compatible = "atmel,24c08";
+		reg = <0x50>;
+		pinctrl-names = "default";
+		pinctrl-0 = <&tb3_eeprom>;
+		status = "okay";
+	};
+
+	rtc_isl1208: rtc@6f {
+		compatible = "isil,isl1208";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_externalrtc_reg>;
+		interrupt-names = "irq";
+		interrupts-extended = <&gpio0 RK_PD3 IRQ_TYPE_EDGE_FALLING>;
+		reg = <0x6f>;
+		status = "okay";
+	};
+};
+
+&pinctrl {
+	pmic {
+		pmic_int_l: pmic-int-l {
+			rockchip,pins = <0 RK_PA3 RK_FUNC_GPIO &pcfg_pull_up>;
+		};
+	};
+
+	usb {
+		usb_host_pwren_h: usb-host-pwren-h {
+			rockchip,pins = <0 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
+		};
+
+		usb_otg_pwren_h: usb-otg-pwren-h {
+			rockchip,pins = <0 RK_PA5 RK_FUNC_GPIO &pcfg_pull_none>;
+		};
+	};
+
+	rtc {
+		pinctrl_externalrtc_reg: externalrtcreggrp {
+			rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_up>;
+		};
+	};
+
+	eeprom {
+		tb3_eeprom: tb3-eeprom {
+			rockchip,pins = <3 RK_PC1 RK_FUNC_GPIO &pcfg_pull_up>;
+		};
+	};
+};
+
+&sdmmc0 {
+	bus-width = <4>;
+	cap-sd-highspeed;
+	disable-wp;
+	pinctrl-names = "default";
+	pinctrl-0 = <&sdmmc0_bus4 &sdmmc0_clk &sdmmc0_cmd &sdmmc0_det>;
+	vmmc-supply = <&vcc3v3_sd>;
+	vqmmc-supply = <&vccio_sd>;
+	status = "okay";
+};
+
+&uart2 {
+	status = "okay";
+};
+
+&usb_host0_ehci {
+	status = "okay";
+};
+
+&usb_host0_ohci {
+	status = "okay";
+};
+
+&usb_host1_ehci {
+	status = "okay";
+};
+
+&usb_host1_ohci {
+	status = "okay";
+};
+
+&usb2phy0 {
+	status = "okay";
+};
+
+&usb2phy0_host {
+	phy-supply = <&vcc5v0_usb_host>;
+	status = "okay";
+};
+
+&usb2phy1 {
+	status = "okay";
+};
+
+&usb2phy1_host {
+	phy-supply = <&vcc5v0_usb_host>;
+	status = "okay";
+};
diff --git a/arch/arm64/boot/dts/rockchip/rk3566-tinker-board-3s.dts b/arch/arm64/boot/dts/rockchip/rk3566-tinker-board-3s.dts
new file mode 100644
index 000000000000..7bd1e31fdc57
--- /dev/null
+++ b/arch/arm64/boot/dts/rockchip/rk3566-tinker-board-3s.dts
@@ -0,0 +1,30 @@
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright (C) 2025 Michael Opdenacker <michael.opdenacker@rootcommit.com>
+ */
+
+/dts-v1/;
+
+#include "rk3566-tinker-board-3.dtsi"
+
+/ {
+	model = "Asus Tinker Board 3S";
+	compatible = "asus,rk3566-tinker-board-3s", "asus,rk3566-tinker-board-3", "rockchip,rk3566";
+
+	aliases {
+		mmc0 = &sdhci;
+	};
+};
+
+&sdhci {
+	bus-width = <8>;
+	cap-mmc-highspeed;
+	max-frequency = <200000000>;
+	mmc-hs200-1_8v;
+	non-removable;
+	pinctrl-names = "default";
+	pinctrl-0 = <&emmc_bus8 &emmc_clk &emmc_cmd &emmc_datastrobe>;
+	vmmc-supply = <&vcc_3v3>;
+	vqmmc-supply = <&vcc_1v8>;
+	status = "okay";
+};

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 1/2] dt-bindings: arm: rockchip: Add Asus Tinker Board 3 and 3S
@ 2025-11-15  0:52 Dragan Simic
  2025-11-17 10:09 ` Michael Opdenacker
  2025-11-18  5:27 ` Michael Opdenacker
  0 siblings, 2 replies; 10+ messages in thread
From: Dragan Simic @ 2025-11-15  0:52 UTC (permalink / raw)
  To: michael.opdenacker
  Cc: robh, krzk+dt, conor+dt, heiko, devicetree, linux-arm-kernel,
	linux-rockchip, linux-kernel

Hello Michael,

Thanks for the v2!  Please, see some remarks below.

On Friday, November 14, 2025 16:46 CET, michael.opdenacker@rootcommit.com wrote:
> From: Michael Opdenacker <michael.opdenacker@rootcommit.com>

I'm sorry for not mentioning it in my earlier responses, but this
line is redundant, because it duplicates the From value found in
the actual email message.

> Document the compatible strings for Asus Tinker Board 3 [1] and 3S [2],
> which are SBCs based on the Rockchip 3566 SoC.
> 
> The "3S" version ("S" for "storage") just adds a 16 GB eMMC
> and a "mask ROM" DIP switch to the "3" version.
> 
> [1] https://tinker-board.asus.com/series/tinker-board-3.html
> [2] https://tinker-board.asus.com/series/tinker-board-3s.html
> 
> Signed-off-by: Michael Opdenacker <michael.opdenacker@rootcommit.com>
> ---
>  Documentation/devicetree/bindings/arm/rockchip.yaml | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/Documentation/devicetree/bindings/arm/rockchip.yaml b/Documentation/devicetree/bindings/arm/rockchip.yaml
> index 6aceaa8acbb2..cd249325a4d9 100644
> --- a/Documentation/devicetree/bindings/arm/rockchip.yaml
> +++ b/Documentation/devicetree/bindings/arm/rockchip.yaml
> @@ -86,6 +86,17 @@ properties:
>            - const: asus,rk3288-tinker-s
>            - const: rockchip,rk3288
>  
> +      - description: Asus Tinker Board 3
> +        items:
> +          - const: asus,rk3566-tinker-board-3
> +          - const: rockchip,rk3566
> +
> +      - description: Asus Tinker Board 3S
> +        items:
> +          - const: asus,rk3566-tinker-board-3s
> +          - const: asus,rk3566-tinker-board-3
> +          - const: rockchip,rk3566
> +
>        - description: Beelink A1
>          items:
>            - const: azw,beelink-a1

I'm sorry again for not mentioning it in my earlier responses, 
but shouldn't this addition be specified like below:

     - description: Asus Tinker Board 3/3S
       items:
         - enum:
	   - asus,rk3566-tinker-board-3
           - asus,rk3566-tinker-board-3s
         - const: rockchip,rk3566

... because the introduced .dts files define the actual board DTs,
by descending from the common .dtsi file, while they're compatible
in the sense of the 3S board variant extending the 3 variant.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 1/2] dt-bindings: arm: rockchip: Add Asus Tinker Board 3 and 3S
  2025-11-14 15:46 ` [PATCH v2 1/2] dt-bindings: arm: rockchip: Add Asus Tinker Board 3 and 3S michael.opdenacker
@ 2025-11-15 11:37   ` Krzysztof Kozlowski
  0 siblings, 0 replies; 10+ messages in thread
From: Krzysztof Kozlowski @ 2025-11-15 11:37 UTC (permalink / raw)
  To: michael.opdenacker
  Cc: robh, krzk+dt, conor+dt, heiko, dsimic, devicetree,
	linux-arm-kernel, linux-rockchip, linux-kernel

On Fri, Nov 14, 2025 at 03:46:42PM +0000, michael.opdenacker@rootcommit.com wrote:
> From: Michael Opdenacker <michael.opdenacker@rootcommit.com>
> 
> Document the compatible strings for Asus Tinker Board 3 [1] and 3S [2],
> which are SBCs based on the Rockchip 3566 SoC.
> 
> The "3S" version ("S" for "storage") just adds a 16 GB eMMC
> and a "mask ROM" DIP switch to the "3" version.
> 
> [1] https://tinker-board.asus.com/series/tinker-board-3.html
> [2] https://tinker-board.asus.com/series/tinker-board-3s.htm

<form letter>
This is a friendly reminder during the review process.

It looks like you received a tag and forgot to add it.

If you do not know the process, here is a short explanation:
Please add Acked-by/Reviewed-by/Tested-by tags when posting new
versions of patchset, under or above your Signed-off-by tag, unless
patch changed significantly (e.g. new properties added to the DT
bindings). Tag is "received", when provided in a message replied to you
on the mailing list. Tools like b4 can help here. However, there's no
need to repost patches *only* to add the tags. The upstream maintainer
will do that for tags received on the version they apply.

Please read:
https://elixir.bootlin.com/linux/v6.12-rc3/source/Documentation/process/submitting-patches.rst#L577

If a tag was not added on purpose, please state why and what changed.
</form letter>

Best regards,
Krzysztof


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 1/2] dt-bindings: arm: rockchip: Add Asus Tinker Board 3 and 3S
  2025-11-15  0:52 [PATCH v2 1/2] dt-bindings: arm: rockchip: Add Asus Tinker Board 3 and 3S Dragan Simic
@ 2025-11-17 10:09 ` Michael Opdenacker
  2025-11-18  5:27 ` Michael Opdenacker
  1 sibling, 0 replies; 10+ messages in thread
From: Michael Opdenacker @ 2025-11-17 10:09 UTC (permalink / raw)
  To: Dragan Simic
  Cc: michael.opdenacker, robh, krzk+dt, conor+dt, heiko, devicetree,
	linux-arm-kernel, linux-rockchip, linux-kernel

Hi Dragan

Oops, indeed I overlooked this message!

On 11/15/25 01:52, Dragan Simic wrote:
> Hello Michael,
>
> Thanks for the v2!  Please, see some remarks below.
>
> On Friday, November 14, 2025 16:46 CET, michael.opdenacker@rootcommit.com wrote:
>> From: Michael Opdenacker <michael.opdenacker@rootcommit.com>
> I'm sorry for not mentioning it in my earlier responses, but this
> line is redundant, because it duplicates the From value found in
> the actual email message.
>
>> Document the compatible strings for Asus Tinker Board 3 [1] and 3S [2],
>> which are SBCs based on the Rockchip 3566 SoC.
>>
>> The "3S" version ("S" for "storage") just adds a 16 GB eMMC
>> and a "mask ROM" DIP switch to the "3" version.
>>
>> [1] https://tinker-board.asus.com/series/tinker-board-3.html
>> [2] https://tinker-board.asus.com/series/tinker-board-3s.html
>>
>> Signed-off-by: Michael Opdenacker <michael.opdenacker@rootcommit.com>
>> ---
>>   Documentation/devicetree/bindings/arm/rockchip.yaml | 11 +++++++++++
>>   1 file changed, 11 insertions(+)
>>
>> diff --git a/Documentation/devicetree/bindings/arm/rockchip.yaml b/Documentation/devicetree/bindings/arm/rockchip.yaml
>> index 6aceaa8acbb2..cd249325a4d9 100644
>> --- a/Documentation/devicetree/bindings/arm/rockchip.yaml
>> +++ b/Documentation/devicetree/bindings/arm/rockchip.yaml
>> @@ -86,6 +86,17 @@ properties:
>>             - const: asus,rk3288-tinker-s
>>             - const: rockchip,rk3288
>>   
>> +      - description: Asus Tinker Board 3
>> +        items:
>> +          - const: asus,rk3566-tinker-board-3
>> +          - const: rockchip,rk3566
>> +
>> +      - description: Asus Tinker Board 3S
>> +        items:
>> +          - const: asus,rk3566-tinker-board-3s
>> +          - const: asus,rk3566-tinker-board-3
>> +          - const: rockchip,rk3566
>> +
>>         - description: Beelink A1
>>           items:
>>             - const: azw,beelink-a1
> I'm sorry again for not mentioning it in my earlier responses,
> but shouldn't this addition be specified like below:
>
>       - description: Asus Tinker Board 3/3S
>         items:
>           - enum:
> 	   - asus,rk3566-tinker-board-3
>             - asus,rk3566-tinker-board-3s
>           - const: rockchip,rk3566
>
> ... because the introduced .dts files define the actual board DTs,
> by descending from the common .dtsi file, while they're compatible
> in the sense of the 3S board variant extending the 3 variant.

Indeed, that's the way it should be, looking at the rest of the 
rockchip.yaml file.

I was too hypnotized by the section for the original Tinkerboard, which 
doesn't follow this either (I'll send a separate patch).
Thanks a lot!
Cheers
Michael.

-- 
Michael Opdenacker
Root Commit
Yocto Project and OpenEmbedded Training course - Learn by doing:
https://rootcommit.com/training/yocto/


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 1/2] dt-bindings: arm: rockchip: Add Asus Tinker Board 3 and 3S
  2025-11-15  0:52 [PATCH v2 1/2] dt-bindings: arm: rockchip: Add Asus Tinker Board 3 and 3S Dragan Simic
  2025-11-17 10:09 ` Michael Opdenacker
@ 2025-11-18  5:27 ` Michael Opdenacker
  2025-11-19  6:47   ` Dragan Simic
  1 sibling, 1 reply; 10+ messages in thread
From: Michael Opdenacker @ 2025-11-18  5:27 UTC (permalink / raw)
  To: Dragan Simic
  Cc: michael.opdenacker, robh, krzk+dt, conor+dt, heiko, devicetree,
	linux-arm-kernel, linux-rockchip, linux-kernel

Hi Dragan

On 11/15/25 01:52, Dragan Simic wrote:
> I'm sorry again for not mentioning it in my earlier responses,
> but shouldn't this addition be specified like below:
>
>       - description: Asus Tinker Board 3/3S
>         items:
>           - enum:
> 	   - asus,rk3566-tinker-board-3
>             - asus,rk3566-tinker-board-3s
>           - const: rockchip,rk3566
>
> ... because the introduced .dts files define the actual board DTs,
> by descending from the common .dtsi file, while they're compatible
> in the sense of the 3S board variant extending the 3 variant.

Actually, "make dtbs_check" fails if rk3566-tinker-board-3s.dts has:
compatible = "asus,rk3566-tinker-board-3s", 
"asus,rk3566-tinker-board-3", "rockchip,rk3566";

The failure is:
arch/arm64/boot/dts/rockchip/rk3566-tinker-board-3s.dtb: / 
(asus,rk3566-tinker-board-3s): compatible: 'oneOf' conditional failed, 
one must be fixed:
     ['asus,rk3566-tinker-board-3s', 'asus,rk3566-tinker-board-3', 
'rockchip,rk3566'] is too long
     ['asus,rk3566-tinker-board-3s', 'asus,rk3566-tinker-board-3', 
'rockchip,rk3566'] is too short

If I understand correctly, to keep the rk3566-tinker-board-3s.dts file 
as it is, you need Asus Tinker Board 3 and 3S to have two different 
descriptions as in V2:

- description: Asus Tinker Board 3 items: - const: 
asus,rk3566-tinker-board-3 - const: rockchip,rk3566 - description: Asus 
Tinker Board 3S items: - const: asus,rk3566-tinker-board-3s - const: 
asus,rk3566-tinker-board-3 - const: rockchip,rk3566

The other solution is to remove the "asus,rk3566-tinker-board-3" 
compatible from rk3566-tinker-board-3s.dts, which is not a big deal in 
my opinion. In addition, if some code turns out to work only on 3 but 
not on 3S, though that's not expected if 3S is indeed a superset of 3, 
we won't be stuck.

I can submit a V3 along these lines.
Cheers
Michael.

-- 
Michael Opdenacker
Root Commit
Yocto Project and OpenEmbedded Training course - Learn by doing:
https://rootcommit.com/training/yocto/


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 1/2] dt-bindings: arm: rockchip: Add Asus Tinker Board 3 and 3S
  2025-11-18  5:27 ` Michael Opdenacker
@ 2025-11-19  6:47   ` Dragan Simic
  2025-11-19  7:25     ` Michael Opdenacker
  0 siblings, 1 reply; 10+ messages in thread
From: Dragan Simic @ 2025-11-19  6:47 UTC (permalink / raw)
  To: Michael Opdenacker
  Cc: robh, krzk+dt, conor+dt, heiko, devicetree, linux-arm-kernel,
	linux-rockchip, linux-kernel

Hello Michael,

On Tuesday, November 18, 2025 06:27 CET, Michael Opdenacker <michael.opdenacker@rootcommit.com> wrote:
> On 11/15/25 01:52, Dragan Simic wrote:
> > I'm sorry again for not mentioning it in my earlier responses,
> > but shouldn't this addition be specified like below:
> >
> >       - description: Asus Tinker Board 3/3S
> >         items:
> >           - enum:
> > 	          - asus,rk3566-tinker-board-3
> >             - asus,rk3566-tinker-board-3s
> >           - const: rockchip,rk3566
> >
> > ... because the introduced .dts files define the actual board DTs,
> > by descending from the common .dtsi file, while they're compatible
> > in the sense of the 3S board variant extending the 3 variant.
> 
> Actually, "make dtbs_check" fails if rk3566-tinker-board-3s.dts has:
> compatible = "asus,rk3566-tinker-board-3s", 
> "asus,rk3566-tinker-board-3", "rockchip,rk3566";
> 
> The failure is:
> arch/arm64/boot/dts/rockchip/rk3566-tinker-board-3s.dtb: / 
> (asus,rk3566-tinker-board-3s): compatible: 'oneOf' conditional failed, 
> one must be fixed:
>      ['asus,rk3566-tinker-board-3s', 'asus,rk3566-tinker-board-3', 
> 'rockchip,rk3566'] is too long
>      ['asus,rk3566-tinker-board-3s', 'asus,rk3566-tinker-board-3', 
> 'rockchip,rk3566'] is too short

Oh, I missed that completely, thanks for running the checks.

> If I understand correctly, to keep the rk3566-tinker-board-3s.dts file 
> as it is, you need Asus Tinker Board 3 and 3S to have two different 
> descriptions as in V2:
> 
> - description: Asus Tinker Board 3 items: - const: 
> asus,rk3566-tinker-board-3 - const: rockchip,rk3566 - description: Asus 
> Tinker Board 3S items: - const: asus,rk3566-tinker-board-3s - const: 
> asus,rk3566-tinker-board-3 - const: rockchip,rk3566
> 
> The other solution is to remove the "asus,rk3566-tinker-board-3" 
> compatible from rk3566-tinker-board-3s.dts, which is not a big deal in 
> my opinion. In addition, if some code turns out to work only on 3 but 
> not on 3S, though that's not expected if 3S is indeed a superset of 3, 
> we won't be stuck.
> 
> I can submit a V3 along these lines.

This should let us keep the "asus,rk3566-tinker-board-3" compatible
in the new rk3566-tinker-board-3s.dts board dts while satisfying the
validation properly:

  - description: Asus Tinker Board 3/3S
    items:
    - enum:
        - asus,rk3566-tinker-board-3s
    - const: asus,rk3566-tinker-board-3
    - const: rockchip,rk3566

I'm quite busy at the moment, hence my delayed response, and I also
apologize for not running the checks on the above-proposed solution,
but I think it should work as expected.


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 1/2] dt-bindings: arm: rockchip: Add Asus Tinker Board 3 and 3S
  2025-11-19  6:47   ` Dragan Simic
@ 2025-11-19  7:25     ` Michael Opdenacker
  2025-11-19  7:28       ` Dragan Simic
  0 siblings, 1 reply; 10+ messages in thread
From: Michael Opdenacker @ 2025-11-19  7:25 UTC (permalink / raw)
  To: Dragan Simic
  Cc: michael.opdenacker, robh, krzk+dt, conor+dt, heiko, devicetree,
	linux-arm-kernel, linux-rockchip, linux-kernel

Hi Dragan

Thanks for your reviews in busy times!

> This should let us keep the "asus,rk3566-tinker-board-3" compatible
> in the new rk3566-tinker-board-3s.dts board dts while satisfying the
> validation properly:
>
>    - description: Asus Tinker Board 3/3S
>      items:
>      - enum:
>          - asus,rk3566-tinker-board-3s
>      - const: asus,rk3566-tinker-board-3
>      - const: rockchip,rk3566
>
> I'm quite busy at the moment, hence my delayed response, and I also
> apologize for not running the checks on the above-proposed solution,
> but I think it should work as expected.

I actually already tried this, but it doesn't pass "make dtbs_check":

arch/arm64/boot/dts/rockchip/rk3566-tinker-board-3.dtb: / 
(asus,rk3566-tinker-board-3): compatible: 'oneOf' conditional failed, 
one must be fixed:
     ['asus,rk3566-tinker-board-3', 'rockchip,rk3566'] is too short

The "enum" statement seems to mean that there is at least one of the 
items, which is not the case for rk3566-tinker-board-3.dts that doesn't 
have it.

So, my V3 seems like the way to go if we don't want to duplicate entries 
in rockchip.yaml.
Cheers
Michael.

-- 
Michael Opdenacker
Root Commit
Yocto Project and OpenEmbedded Training course - Learn by doing:
https://rootcommit.com/training/yocto/


^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 1/2] dt-bindings: arm: rockchip: Add Asus Tinker Board 3 and 3S
  2025-11-19  7:25     ` Michael Opdenacker
@ 2025-11-19  7:28       ` Dragan Simic
  0 siblings, 0 replies; 10+ messages in thread
From: Dragan Simic @ 2025-11-19  7:28 UTC (permalink / raw)
  To: Michael Opdenacker
  Cc: robh, krzk+dt, conor+dt, heiko, devicetree, linux-arm-kernel,
	linux-rockchip, linux-kernel

On Wednesday, November 19, 2025 08:25 CET, Michael Opdenacker <michael.opdenacker@rootcommit.com> wrote:
> > This should let us keep the "asus,rk3566-tinker-board-3" compatible
> > in the new rk3566-tinker-board-3s.dts board dts while satisfying the
> > validation properly:
> >
> >    - description: Asus Tinker Board 3/3S
> >      items:
> >      - enum:
> >          - asus,rk3566-tinker-board-3s
> >      - const: asus,rk3566-tinker-board-3
> >      - const: rockchip,rk3566
> >
> > I'm quite busy at the moment, hence my delayed response, and I also
> > apologize for not running the checks on the above-proposed solution,
> > but I think it should work as expected.
> 
> I actually already tried this, but it doesn't pass "make dtbs_check":
> 
> arch/arm64/boot/dts/rockchip/rk3566-tinker-board-3.dtb: / 
> (asus,rk3566-tinker-board-3): compatible: 'oneOf' conditional failed, 
> one must be fixed:
>      ['asus,rk3566-tinker-board-3', 'rockchip,rk3566'] is too short
> 
> The "enum" statement seems to mean that there is at least one of the 
> items, which is not the case for rk3566-tinker-board-3.dts that doesn't 
> have it.
> 
> So, my V3 seems like the way to go if we don't want to duplicate entries 
> in rockchip.yaml.

I see, thanks for the clarification.  Then the v3 is the way to go.


^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2025-11-19  7:43 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-14 15:46 [PATCH v2 0/2] arm64: dts: rockchip: add Tinker Board 3 and 3S device tree michael.opdenacker
2025-11-14 15:46 ` [PATCH v2 1/2] dt-bindings: arm: rockchip: Add Asus Tinker Board 3 and 3S michael.opdenacker
2025-11-15 11:37   ` Krzysztof Kozlowski
2025-11-14 15:46 ` [PATCH v2 2/2] arm64: dts: rockchip: Add Asus Tinker Board 3 and 3S device tree michael.opdenacker
  -- strict thread matches above, loose matches on Subject: below --
2025-11-15  0:52 [PATCH v2 1/2] dt-bindings: arm: rockchip: Add Asus Tinker Board 3 and 3S Dragan Simic
2025-11-17 10:09 ` Michael Opdenacker
2025-11-18  5:27 ` Michael Opdenacker
2025-11-19  6:47   ` Dragan Simic
2025-11-19  7:25     ` Michael Opdenacker
2025-11-19  7:28       ` Dragan Simic

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).