[PATCH v2 14/15] dt-bindings: mtd: sunxi: Add H616 compatible

From: Richard Genoud

Date: Mon Oct 13 2025 - 11:28:04 EST


The H616 NAND controller is quite different from the A10 and A23 ones,
some registers offset changed, and some new one are introduced.
Also, the DMA handling is different (it uses chained descriptors)

So, introduce a new compatible to represent this version of the IP.

Signed-off-by: Richard Genoud <richard.genoud@xxxxxxxxxxx>
---
.../mtd/allwinner,sun4i-a10-nand.yaml | 57 ++++++++++++++++---
1 file changed, 48 insertions(+), 9 deletions(-)

diff --git a/Documentation/devicetree/bindings/mtd/allwinner,sun4i-a10-nand.yaml b/Documentation/devicetree/bindings/mtd/allwinner,sun4i-a10-nand.yaml
index 054b6b8bf9b9..4b82de9fae17 100644
--- a/Documentation/devicetree/bindings/mtd/allwinner,sun4i-a10-nand.yaml
+++ b/Documentation/devicetree/bindings/mtd/allwinner,sun4i-a10-nand.yaml
@@ -6,9 +6,6 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#

title: Allwinner A10 NAND Controller

-allOf:
- - $ref: nand-controller.yaml
-
maintainers:
- Chen-Yu Tsai <wens@xxxxxxxx>
- Maxime Ripard <mripard@xxxxxxxxxx>
@@ -18,6 +15,8 @@ properties:
enum:
- allwinner,sun4i-a10-nand
- allwinner,sun8i-a23-nand-controller
+ - allwinner,sun50i-h616-nand-controller
+
reg:
maxItems: 1

@@ -25,14 +24,12 @@ properties:
maxItems: 1

clocks:
- items:
- - description: Bus Clock
- - description: Module Clock
+ minItems: 2
+ maxItems: 4

clock-names:
- items:
- - const: ahb
- - const: mod
+ minItems: 2
+ maxItems: 4

resets:
maxItems: 1
@@ -85,6 +82,48 @@ required:

unevaluatedProperties: false

+allOf:
+ - $ref: nand-controller.yaml
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - allwinner,sun4i-a10-nand
+ - allwinner,sun8i-a23-nand-controller
+ then:
+ properties:
+ clocks:
+ items:
+ - description: Bus Clock
+ - description: Module Clock
+ clock-names:
+ items:
+ - const: ahb
+ - const: mod
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - allwinner,sun50i-h616-nand-controller
+ then:
+ properties:
+ clocks:
+ items:
+ - description: Bus Clock
+ - description: Module Clock
+ - description: ECC Clock
+ - description: MBus Clock
+ clock-names:
+ items:
+ - const: ahb
+ - const: mod
+ - const: ecc
+ - const: mbus
+
examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>