On Mon, Oct 13, 2025 at 05:26:44PM +0200, Richard Genoud wrote: > 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 > --- > .../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 > - Maxime Ripard > @@ -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 The clock descriptions and names should remain out here, with your new min/max constraints, since they're identical at indices 0 and 1 to for both types of device. The if/then should only set the min to 4 for the new device and the max to 2 for the existing ones. Cheers, Conor. pw-bot: changes-requested > > 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