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

Krzysztof Kozlowski krzysztof.kozlowski at linaro.org
Fri Jun 16 01:38:38 PDT 2023


On 16/06/2023 10:24, Miquel Raynal wrote:
> Hi Krzysztof,
> 
> krzysztof.kozlowski at linaro.org 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




More information about the linux-arm-kernel mailing list