Re: [PATCH 02/15] dt-bindings: mtd: sunxi: Add new compatible

Richard GENOUD
2025-10-10T10:16:37Z

Hi Krzysztof,

Le 10/10/2025 à 10:45, Krzysztof Kozlowski a écrit :
> On 10/10/2025 10:40, 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)
>>
>
>
> Subject: not new compatible, but "H616" or whatever device is called.
> Otherwise every commit would be called like that making git log
> --oneline useless.
Indeed.

>
>> So, introduce a new compatible to represent this version of the IP.
>>
>> Signed-off-by: Richard Genoud <richard.genoud@bootlin.com>
>> ---
>> .../mtd/allwinner,sun4i-a10-nand.yaml | 56 ++++++++++++++-----
>> 1 file changed, 43 insertions(+), 13 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..cc63091fe936 100644
>> --- a/Documentation/devicetree/bindings/mtd/allwinner,sun4i-a10-nand.yaml
>> +++ b/Documentation/devicetree/bindings/mtd/allwinner,sun4i-a10-nand.yaml
>> @@ -6,34 +6,64 @@ $schema: http://devicetree.org/meta-schemas/core.yaml#
>>
>> title: Allwinner A10 NAND Controller
>>
>> -allOf:
>> - - $ref: nand-controller.yaml
>> -
>> maintainers:
>> - Chen-Yu Tsai <wens@csie.org>
>> - Maxime Ripard <mripard@kernel.org>
>>
>> +allOf:
>> + - $ref: nand-controller.yaml
>
>
> If moving it, can you place it like in example-schema, so at the bottom,
> above unevaluatedProps?
Yes, absolutely.

>
>> +
>> + - 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
>> +
>> properties:
>> compatible:
>> enum:
>> - allwinner,sun4i-a10-nand
>> - allwinner,sun8i-a23-nand-controller
>> + - allwinner,sun50i-h616-nand-controller
>> reg:
>> maxItems: 1
>>
>> interrupts:
>> maxItems: 1
>>
>> - clocks:
>> - items:
>> - - description: Bus Clock
>> - - description: Module Clock
>> -
>> - clock-names:
>> - items:
>> - - const: ahb
>> - - const: mod
>
>
> You cannot remove it. Broadest constraints, see writing schema.
>
> or my standard reference example:
> https://elixir.bootlin.com/linux/v6.11-rc6/source/Documentation/devicetree/bindings/ufs/qcom,ufs.yaml#L127
Ok

Thanks!

>
>
> Best regards,
> Krzysztof

--
Richard Genoud, Bootlin
Embedded Linux and Kernel engineering