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

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


On 16/06/2023 10:24, Miquel Raynal wrote:
> Hi Krzysztof,
>
> krzysztof.kozlowski@xxxxxxxxxx wrote on Fri, 16 Jun 2023 10:15:31 +0200:
>
>> 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).
>
> Quoting myself from 2019 (comment in the driver):
> "Some SoCs like A7k/A8k need to enable manually the NAND controller,
> gated clocks and reset bits to avoid being bootloader dependent."
>
> So can the 8k controller work using a 370 compatible : yes, if the
> booloader enabled the NAND controller already, no otherwise. But in
> practice it is the same controller.
>
> Given this information I don't know whether it makes sense to qualify
> the 8k controller compatible with the 370 compatible or not.

Indeed, a bit tricky decision. For me they could stay compatible,
because apparently programming model is the same or similar.

Best regards,
Krzysztof