Re: [PATCH] dt-bindings: mmp-dma: convert to YAML

From: Rob Herring
Date: Wed Jan 31 2024 - 12:20:13 EST


On Sun, Jan 28, 2024 at 07:01:36PM +0100, Duje Mihanović wrote:
> On Sunday, January 28, 2024 6:28:03 PM CET Conor Dooley wrote:
> > On Sat, Jan 27, 2024 at 05:53:45PM +0100, Duje Mihanović wrote:
> > > +allOf:
> > > + - $ref: dma-controller.yaml#
> > > + - if:
> > > + properties:
> > > + compatible:
> > > + contains:
> > > + enum:
> > > + - marvell,adma-1.0
> > > + - marvell,pxa910-squ
> > > + then:
> > > + properties:
> > > + asram:
> > > + description:
> > > + phandle to the SRAM pool
> > > + minItems: 1
> > > + maxItems: 1
> > > + iram:
> >
> > > + maxItems:
> > These properties are not mentioned in the text binding, nor commit
> > message. Where did they come from?
>
> Both of them can be found in arch/arm/boot/dts/marvell/mmp2.dtsi. There is one
> major difference between the two: iram is not mentioned at all by the mmp_tdma
> driver (on the other hand, asram is not only used but also required for a
> successful probe), but I left it here as it's still found in the MMP2 dtsi. On
> second thought it should probably be dropped both here and in the dtsi.
>
> > That said, for properties that are only usable on some platforms, please
> > define them at the top level and conditionally permit/constrain them.
>
> Could you please point me to how to do so if this if/then does not do it
> properly?

Negate the if and then:

then:
properties:
asram: false

There are lots of examples in the tree.

>
> > > +unevaluatedProperties: false
> > > +
> > > +examples:
> > > + # Peripheral controller
> > > + - |
> > > + pdma0: dma-controller@d4000000 {
> >
> > The label is not needed here or below.
> > In fact, I'd probably delete the second example as it shows nothing that
> > the first one does not.
>
> I'd rather add the asram property in the second node (adding onto the above
> comment, I now see that it shouldn't have even passed dt_binding_check because
> of the missing asram, but it did).

It passed because 'required' is what checks for property presence and
nowhere is asram required. It is missing a type definition which should
have warned, but may not since it is under an 'if'.

Rob