Re: [PATCH v9 3/3] dt-bindings: mtd: marvell-nand: Convert to YAML DT scheme

From: Krzysztof Kozlowski
Date: Fri Jun 16 2023 - 04:16:02 EST


On 15/06/2023 23:06, Chris Packham wrote:
>>
>>> +
>>> +properties:
>>> + compatible:
>>> + oneOf:
>>> + - items:
>>> + - const: marvell,armada-8k-nand-controller
>>> + - const: marvell,armada370-nand-controller
>>> + - enum:
>>> + - marvell,armada-8k-nand-controller
>> This is wrong. 8k cannot be both: compatible and not compatible with
>> 370. It's not someone's cat to be in both states at the same time...
>
> The correct state (IMHO, Miquel correct me if I'm wrong) is `compatible
> = "marvell,armada-8k-nand-controller";`  as there are some 8K specific
> requirements that aren't present on the 370 (specifically the
> system-controller and the 2nd clock).

Presence of specific requirements does not invalidate compatibility. Two
devices are compatible if the 8k can bind and work with 370 compatible
string, even if this means some lower performance or less features (e.g.
subset of features).

Now whether they are really compatible or not - I don't know. I expect
the answer from you (as plural you).

> The only reason `compatible =
> "marvell,armada-8k-nand-controller",
> "marvell,armada370-nand-controller";` is supported is because that is
> what is in use in the existing dtses.

Fix the DTS, use here the correct combination and, if it is a deviation
from old binding, mention this in commit msg.

Best regards,
Krzysztof