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