Skip to contentSkip to conversation

ARM: dts: allwinner: Fix remaining DT validation errors

PATCH Superseded Chen-Yu Tsai 5 participants 16 messages Dec 25, 2025 – Jan 19

Subsystems (5)
lore
Share & tools
lore

Chen-Yu Tsai

author maintainer
#0 lore raw

cover ARM: dts: allwinner: Fix remaining DT validation errors

Hi folks,

This series gets rid of the remaining DT validation errors for Allwinner (sunxi) ARM 32-bit device trees. The patches are self explaining.

I plan to take all four patches through the sunxi tree.

ChenYu

Chen-Yu Tsai (4):
dt-bindings: media: sun4i-a10-video-engine: Add interconnect
properties
dt-bindings: pinctrl: sunxi: Allow pinmux sub-pattern with leading
numbers
ARM: dts: allwinner: sun5i-a13-utoo-p66: delete "power-gpios" property
ARM: dts: allwinner: Replace status "failed" with "fail"

 .../media/allwinner,sun4i-a10-video-engine.yaml        | 10 ++++++++++
 .../bindings/pinctrl/allwinner,sun4i-a10-pinctrl.yaml  |  2 +-
 .../boot/dts/allwinner/sun4i-a10-dserve-dsrv9703c.dts  |  2 +-
 .../boot/dts/allwinner/sun4i-a10-pov-protab2-ips9.dts  |  2 +-
 arch/arm/boot/dts/allwinner/sun5i-a13-utoo-p66.dts     |  1 +
 arch/arm/boot/dts/allwinner/sun6i-a31-hummingbird.dts  |  2 +-
 arch/arm/boot/dts/allwinner/sun6i-a31s-primo81.dts     |  2 +-
 7 files changed, 16 insertions(+), 5 deletions(-)
Signature · 1 line
2.47.3
author maintainer
#1 lore raw

PATCH 1/4 dt-bindings: media: sun4i-a10-video-engine: Add interconnect properties

The Allwinner video engine sits behind the MBUS that is represented as an interconnect.

Make sure that the interconnect properties are valid in the binding.

Fixes d41662e52a03 ("media: dt-bindings: media: allwinner,sun4i-a10-video-engine: Add R40 compatible")
---
 .../media/allwinner,sun4i-a10-video-engine.yaml        | 10 ++++++++++
 1 file changed, 10 insertions(+)
Documentation/devicetree/bindings/media/allwinner,sun4i-a10-video-engine.yaml +10 -0
index 541325f900a1..01f2afa023f0 100644
@@ -63,6 +63,16 @@ properties:
       CMA pool to use for buffers allocation instead of the default
       CMA pool.
 
+  # FIXME: This should be made required eventually once every SoC will
+  # have the MBUS declared.
+  interconnects:
+    maxItems: 1
+
+  # FIXME: This should be made required eventually once every SoC will
+  # have the MBUS declared.
+  interconnect-names:
+    const: dma-mem
+
 required:
   - compatible
   - reg
Signature · 1 line
2.47.3
maintainer Acked-by on v1 1/4
#2 lore raw

Re: [PATCH 1/4] dt-bindings: media: sun4i-a10-video-engine: Add interconnect properties

Dne četrtek, 25. december 2025 ob 11:36:12 Srednjeevropski standardni čas je Chen-Yu Tsai napisal(a):

Quoted 7 lines

The Allwinner video engine sits behind the MBUS that is represented as an interconnect.

Make sure that the interconnect properties are valid in the binding.

Fixes d41662e52a03 ("media: dt-bindings: media: allwinner,sun4i-a10-video-engine: Add R40 compatible")

Best regards,
Jernej

maintainer Acked-by on v1 1/4
#3 lore raw

Re: [PATCH 1/4] dt-bindings: media: sun4i-a10-video-engine: Add interconnect properties

In reply to Chen-Yu Tsai
Quoted 11 lines · Chen-Yu Tsai

The Allwinner video engine sits behind the MBUS that is represented as an interconnect.

Make sure that the interconnect properties are valid in the binding.

Fixes d41662e52a03 ("media: dt-bindings: media: allwinner,sun4i-a10-video-engine: Add R40 compatible")
---
 .../media/allwinner,sun4i-a10-video-engine.yaml        | 10 ++++++++++
 1 file changed, 10 insertions(+)
author maintainer
#4 lore raw

PATCH 2/4 dt-bindings: pinctrl: sunxi: Allow pinmux sub-pattern with leading numbers

In reply to Chen-Yu Tsai

The pattern for pinmux node names is typically the peripheral name and instance number, followed by pingroup name if there are multiple options.

Normally the instance number is directly appended to the peripheral name, like "mmc0" or "i2c2". But if the peripheral name ends with a number, then it becomes confusing.

On the A20, the PS2 interface controller has two instances. This produces pinmux node names like "ps2-0-pins". Make the sub-pattern "[0-9]-" valid to fit this pattern. Avoid having to confusing "ps20-pins" name.

---
 .../bindings/pinctrl/allwinner,sun4i-a10-pinctrl.yaml           | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Documentation/devicetree/bindings/pinctrl/allwinner,sun4i-a10-pinctrl.yaml +1 -1
index 990b78765427..45b7a0b6c626 100644
@@ -106,7 +106,7 @@ patternProperties:
   #     the pin numbers then,
   #   - Finally, the name will end with either -pin or pins.
 
-  "^([rs]-)?(([a-z0-9]{3,}|[a-oq-z][a-z0-9]*?)?-)+?(p[a-ilm][0-9]*?-)??pins?$":
+  "^([rs]-)?(([a-z0-9]{3,}|[a-oq-z0-9][a-z0-9]*?)?-)+?(p[a-ilm][0-9]*?-)??pins?$":
     type: object
 
     properties:
Signature · 1 line
2.47.3
maintainer Acked-by on v1 2/4
#5 lore raw

Re: [PATCH 2/4] dt-bindings: pinctrl: sunxi: Allow pinmux sub-pattern with leading numbers

Dne četrtek, 25. december 2025 ob 11:36:13 Srednjeevropski standardni čas je Chen-Yu Tsai napisal(a):

Quoted 7 lines

The pattern for pinmux node names is typically the peripheral name and instance number, followed by pingroup name if there are multiple options.

Normally the instance number is directly appended to the peripheral name, like "mmc0" or "i2c2". But if the peripheral name ends with a number, then it becomes confusing.

Quoted 6 lines

On the A20, the PS2 interface controller has two instances. This produces pinmux node names like "ps2-0-pins". Make the sub-pattern "[0-9]-" valid to fit this pattern. Avoid having to confusing "ps20-pins" name.

Best regards,
Jernej

maintainer Acked-by on v1 2/4
#6 lore raw

Re: [PATCH 2/4] dt-bindings: pinctrl: sunxi: Allow pinmux sub-pattern with leading numbers

In reply to Chen-Yu Tsai
Quoted 12 lines · Chen-Yu Tsai

The pattern for pinmux node names is typically the peripheral name and instance number, followed by pingroup name if there are multiple options.

Normally the instance number is directly appended to the peripheral name, like "mmc0" or "i2c2". But if the peripheral name ends with a number, then it becomes confusing.

On the A20, the PS2 interface controller has two instances. This produces pinmux node names like "ps2-0-pins". Make the sub-pattern "[0-9]-" valid to fit this pattern. Avoid having to confusing "ps20-pins" name.

Quoted 5 lines
---
 .../bindings/pinctrl/allwinner,sun4i-a10-pinctrl.yaml           | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
maintainer
#7 lore raw

Re: [PATCH 2/4] dt-bindings: pinctrl: sunxi: Allow pinmux sub-pattern with leading numbers

In reply to Chen-Yu Tsai
Quoted 7 lines · Chen-Yu Tsai

The pattern for pinmux node names is typically the peripheral name and instance number, followed by pingroup name if there are multiple options.

Normally the instance number is directly appended to the peripheral name, like "mmc0" or "i2c2". But if the peripheral name ends with a number, then it becomes confusing.

Quoted 6 lines

On the A20, the PS2 interface controller has two instances. This produces pinmux node names like "ps2-0-pins". Make the sub-pattern "[0-9]-" valid to fit this pattern. Avoid having to confusing "ps20-pins" name.

This patch 2/4 applied to the pin control tree.

Yours,
Linus Walleij

author maintainer
#8 lore raw

PATCH 3/4 ARM: dts: allwinner: sun5i-a13-utoo-p66: delete "power-gpios" property

In reply to Chen-Yu Tsai

The P66's device tree includes the reference design dtsi files, which defines a node and properties for the touchpanel in the common design. The P66 dts file then overrides all the properties to match its own design, but as the touchpanel model is different, a different schema is matched. This other schema uses a different name for the GPIO.

The original submission added the correct GPIO property, but did not delete the one inherited from the reference design, causing validation errors.

Explicitly delete the incorrect GPIO property.

Fixes 2a53aff27236 ("ARM: dts: sun5i: Enable touchscreen on Utoo P66")

---
Cc: Hans de Goede <[email protected]>

---
 arch/arm/boot/dts/allwinner/sun5i-a13-utoo-p66.dts | 1 +
 1 file changed, 1 insertion(+)
arch/arm/boot/dts/allwinner/sun5i-a13-utoo-p66.dts +1 -0
index be486d28d04f..428cab5a0e90 100644
@@ -102,6 +102,7 @@ &touchscreen {
 	/* The P66 uses a different EINT then the reference design */
 	interrupts = <6 9 IRQ_TYPE_EDGE_FALLING>; /* EINT9 (PG9) */
 	/* The icn8318 binding expects wake-gpios instead of power-gpios */
+	/delete-property/ power-gpios;
 	wake-gpios = <&pio 1 3 GPIO_ACTIVE_HIGH>; /* PB3 */
 	touchscreen-size-x = <800>;
 	touchscreen-size-y = <480>;
Signature · 1 line
2.47.3
maintainer Reviewed-by on v1 3/4
#9 lore raw

Re: [PATCH 3/4] ARM: dts: allwinner: sun5i-a13-utoo-p66: delete "power-gpios" property

Dne četrtek, 25. december 2025 ob 11:36:14 Srednjeevropski standardni čas je Chen-Yu Tsai napisal(a):

Quoted 6 lines

The P66's device tree includes the reference design dtsi files, which defines a node and properties for the touchpanel in the common design. The P66 dts file then overrides all the properties to match its own design, but as the touchpanel model is different, a different schema is matched. This other schema uses a different name for the GPIO.

Quoted 9 lines

The original submission added the correct GPIO property, but did not delete the one inherited from the reference design, causing validation errors.

Explicitly delete the incorrect GPIO property.

Fixes 2a53aff27236 ("ARM: dts: sun5i: Enable touchscreen on Utoo P66")

Best regards,
Jernej

author maintainer
#10 lore raw

PATCH 4/4 ARM: dts: allwinner: Replace status "failed" with "fail"

In reply to Chen-Yu Tsai

The device tree bindings specify using "fail", not "failed".

Fix up all the ones that are wrong.

---
 arch/arm/boot/dts/allwinner/sun4i-a10-dserve-dsrv9703c.dts | 2 +-
 arch/arm/boot/dts/allwinner/sun4i-a10-pov-protab2-ips9.dts | 2 +-
 arch/arm/boot/dts/allwinner/sun6i-a31-hummingbird.dts      | 2 +-
 arch/arm/boot/dts/allwinner/sun6i-a31s-primo81.dts         | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)
arch/arm/boot/dts/allwinner/sun4i-a10-dserve-dsrv9703c.dts +1 -1
index 63e77c05bfda..f2413ba6a858 100644
@@ -112,7 +112,7 @@ axp209: pmic@34 {
 
 &i2c1 {
 	/* pull-ups and devices require AXP209 LDO3 */
-	status = "failed";
+	status = "fail";
 };
 
 &i2c2 {
arch/arm/boot/dts/allwinner/sun4i-a10-pov-protab2-ips9.dts +1 -1
index c32596947647..e0c7099015da 100644
@@ -96,7 +96,7 @@ axp209: pmic@34 {
 
 &i2c1 {
 	/* pull-ups and devices require AXP209 LDO3 */
-	status = "failed";
+	status = "fail";
 };
 
 &i2c2 {
arch/arm/boot/dts/allwinner/sun6i-a31-hummingbird.dts +1 -1
index 5bce7a32651e..5dfd36e3a49d 100644
@@ -170,7 +170,7 @@ hdmi_out_con: endpoint {
 
 &i2c0 {
 	/* pull-ups and devices require AXP221 DLDO3 */
-	status = "failed";
+	status = "fail";
 };
 
 &i2c1 {
arch/arm/boot/dts/allwinner/sun6i-a31s-primo81.dts +1 -1
index b32b70ada7fd..fefd887fbc39 100644
@@ -90,7 +90,7 @@ hdmi_out_con: endpoint {
 
 &i2c0 {
 	/* pull-ups and device VDDIO use AXP221 DLDO3 */
-	status = "failed";
+	status = "fail";
 };
 
 &i2c1 {
Signature · 1 line
2.47.3
maintainer
#11 lore raw

Re: [PATCH 4/4] ARM: dts: allwinner: Replace status "failed" with "fail"

Dne četrtek, 25. december 2025 ob 11:36:15 Srednjeevropski standardni čas je Chen-Yu Tsai napisal(a):

Quoted 3 lines

The device tree bindings specify using "fail", not "failed".

Fix up all the ones that are wrong.

While patch indeed fixes the issue, I wonder if "fail" is proper value? According to specs, it means that device needs repair. What about just keep "disabled"?

Best regards,
Jernej

Quoted 62 lines
---
 arch/arm/boot/dts/allwinner/sun4i-a10-dserve-dsrv9703c.dts | 2 +-
 arch/arm/boot/dts/allwinner/sun4i-a10-pov-protab2-ips9.dts | 2 +-
 arch/arm/boot/dts/allwinner/sun6i-a31-hummingbird.dts      | 2 +-
 arch/arm/boot/dts/allwinner/sun6i-a31s-primo81.dts         | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)
arch/arm/boot/dts/allwinner/sun4i-a10-dserve-dsrv9703c.dts +1 -1
index 63e77c05bfda..f2413ba6a858 100644
@@ -112,7 +112,7 @@ axp209: pmic@34 {
 
 &i2c1 {
 	/* pull-ups and devices require AXP209 LDO3 */
-	status = "failed";
+	status = "fail";
 };
 
 &i2c2 {
arch/arm/boot/dts/allwinner/sun4i-a10-pov-protab2-ips9.dts +1 -1
index c32596947647..e0c7099015da 100644
@@ -96,7 +96,7 @@ axp209: pmic@34 {
 
 &i2c1 {
 	/* pull-ups and devices require AXP209 LDO3 */
-	status = "failed";
+	status = "fail";
 };
 
 &i2c2 {
arch/arm/boot/dts/allwinner/sun6i-a31-hummingbird.dts +1 -1
index 5bce7a32651e..5dfd36e3a49d 100644
@@ -170,7 +170,7 @@ hdmi_out_con: endpoint {
 
 &i2c0 {
 	/* pull-ups and devices require AXP221 DLDO3 */
-	status = "failed";
+	status = "fail";
 };
 
 &i2c1 {
arch/arm/boot/dts/allwinner/sun6i-a31s-primo81.dts +1 -1
index b32b70ada7fd..fefd887fbc39 100644
@@ -90,7 +90,7 @@ hdmi_out_con: endpoint {
 
 &i2c0 {
 	/* pull-ups and device VDDIO use AXP221 DLDO3 */
-	status = "failed";
+	status = "fail";
 };
 
 &i2c1 {
author maintainer
#12 lore raw

Re: [PATCH 4/4] ARM: dts: allwinner: Replace status "failed" with "fail"

Quoted 9 lines · Jernej Škrabec

Dne četrtek, 25. december 2025 ob 11:36:15 Srednjeevropski standardni čas je Chen-Yu Tsai napisal(a):

Quoted 3 lines

The device tree bindings specify using "fail", not "failed".

Fix up all the ones that are wrong.

While patch indeed fixes the issue, I wonder if "fail" is proper value? According to specs, it means that device needs repair. What about just keep "disabled"?

"disabled" isn't right either, as that means its disconnected or not used. These are definitely connected.

On the other hand we could fix these and describe the supplies for the external as supplies for the pin banks? But I doubt anyone has these devices around for testing.

ChenYu

Quoted 70 lines

Best regards,
Jernej

Quoted 62 lines
---
 arch/arm/boot/dts/allwinner/sun4i-a10-dserve-dsrv9703c.dts | 2 +-
 arch/arm/boot/dts/allwinner/sun4i-a10-pov-protab2-ips9.dts | 2 +-
 arch/arm/boot/dts/allwinner/sun6i-a31-hummingbird.dts      | 2 +-
 arch/arm/boot/dts/allwinner/sun6i-a31s-primo81.dts         | 2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)
arch/arm/boot/dts/allwinner/sun4i-a10-dserve-dsrv9703c.dts +1 -1
index 63e77c05bfda..f2413ba6a858 100644
@@ -112,7 +112,7 @@ axp209: pmic@34 {
 
 &i2c1 {
      /* pull-ups and devices require AXP209 LDO3 */
-     status = "failed";
+     status = "fail";
 };
 
 &i2c2 {
arch/arm/boot/dts/allwinner/sun4i-a10-pov-protab2-ips9.dts +1 -1
index c32596947647..e0c7099015da 100644
@@ -96,7 +96,7 @@ axp209: pmic@34 {
 
 &i2c1 {
      /* pull-ups and devices require AXP209 LDO3 */
-     status = "failed";
+     status = "fail";
 };
 
 &i2c2 {
arch/arm/boot/dts/allwinner/sun6i-a31-hummingbird.dts +1 -1
index 5bce7a32651e..5dfd36e3a49d 100644
@@ -170,7 +170,7 @@ hdmi_out_con: endpoint {
 
 &i2c0 {
      /* pull-ups and devices require AXP221 DLDO3 */
-     status = "failed";
+     status = "fail";
 };
 
 &i2c1 {
arch/arm/boot/dts/allwinner/sun6i-a31s-primo81.dts +1 -1
index b32b70ada7fd..fefd887fbc39 100644
@@ -90,7 +90,7 @@ hdmi_out_con: endpoint {
 
 &i2c0 {
      /* pull-ups and device VDDIO use AXP221 DLDO3 */
-     status = "failed";
+     status = "fail";
 };
 
 &i2c1 {
#13 lore raw
In reply to Chen-Yu Tsai
Quoted 6 lines · Chen-Yu Tsai

Hi folks,

This series gets rid of the remaining DT validation errors for Allwinner (sunxi) ARM 32-bit device trees. The patches are self explaining.

I plan to take all four patches through the sunxi tree.

It's v1 and not a resend, thus subsystem patches should go via subsystem trees.

Best regards,
Krzysztof

author maintainer
#14 lore raw

Re: (subset) [PATCH 0/4] ARM: dts: allwinner: Fix remaining DT validation errors

In reply to Chen-Yu Tsai
Quoted 9 lines · Chen-Yu Tsai

This series gets rid of the remaining DT validation errors for Allwinner (sunxi) ARM 32-bit device trees. The patches are self explaining.

I plan to take all four patches through the sunxi tree.

ChenYu

[...]

Applied to sunxi/dt-for-6.20 in local tree, thanks!

[3/4] ARM: dts: allwinner: sun5i-a13-utoo-p66: delete "power-gpios" property

      commit: 0b2761eb1287bd9f62367cccf6626eb3107cef6f

[4/4] ARM: dts: allwinner: Replace status "failed" with "fail"
(no commit info)

Best regards,

Signature · 1 line
Chen-Yu Tsai <[email protected]>
author maintainer
#15 lore raw

Re: (subset) [PATCH 0/4] ARM: dts: allwinner: Fix remaining DT validation errors

In reply to Chen-Yu Tsai
Quoted 9 lines · Chen-Yu Tsai

This series gets rid of the remaining DT validation errors for Allwinner (sunxi) ARM 32-bit device trees. The patches are self explaining.

I plan to take all four patches through the sunxi tree.

ChenYu

[...]

Applied to sunxi/dt-for-6.20 in local tree, thanks!

[4/4] ARM: dts: allwinner: Replace status "failed" with "fail"

      commit: db5e9260be8d3437222df74b5074359b22f1f029

Best regards,

Signature · 1 line
Chen-Yu Tsai <[email protected]>