Re: [PATCH v6 1/8] dt-bindings: pwm: allwinner: Add H6 PWM description

From: Maxime Ripard
Date: Mon Nov 18 2019 - 07:57:10 EST


On Mon, Nov 18, 2019 at 01:42:48PM +0100, Clément Péron wrote:
> Hi Maxime
>
> On Mon, 18 Nov 2019 at 12:06, Maxime Ripard <mripard@xxxxxxxxxx> wrote:
> >
> > Hi,
> >
> > On Mon, Nov 18, 2019 at 12:00:27PM +0100, Clément Péron wrote:
> > > From: Jernej Skrabec <jernej.skrabec@xxxxxxxx>
> > >
> > > H6 PWM block is basically the same as A20 PWM, except that it also has
> > > bus clock and reset line which needs to be handled accordingly.
> > >
> > > Expand Allwinner PWM binding with H6 PWM specifics.
> > >
> > > Signed-off-by: Jernej Skrabec <jernej.skrabec@xxxxxxxx>
> > > Reviewed-by: Rob Herring <robh@xxxxxxxxxx>
> > > Signed-off-by: Clément Péron <peron.clem@xxxxxxxxx>
> > > ---
> > > .../bindings/pwm/allwinner,sun4i-a10-pwm.yaml | 48 +++++++++++++++++++
> > > 1 file changed, 48 insertions(+)
> > >
> > > diff --git a/Documentation/devicetree/bindings/pwm/allwinner,sun4i-a10-pwm.yaml b/Documentation/devicetree/bindings/pwm/allwinner,sun4i-a10-pwm.yaml
> > > index 0ac52f83a58c..1bae446febbb 100644
> > > --- a/Documentation/devicetree/bindings/pwm/allwinner,sun4i-a10-pwm.yaml
> > > +++ b/Documentation/devicetree/bindings/pwm/allwinner,sun4i-a10-pwm.yaml
> > > @@ -30,13 +30,51 @@ properties:
> > > - items:
> > > - const: allwinner,sun50i-h5-pwm
> > > - const: allwinner,sun5i-a13-pwm
> > > + - const: allwinner,sun50i-h6-pwm
> > >
> > > reg:
> > > maxItems: 1
> > >
> > > clocks:
> > > + minItems: 1
> > > + maxItems: 2
> > > + items:
> > > + - description: Module Clock
> > > + - description: Bus Clock
> > > +
> > > + # Even though it only applies to subschemas under the conditionals,
> > > + # not listing them here will trigger a warning because of the
> > > + # additionalsProperties set to false.
> > > + clock-names: true
> > > +
> > > + resets:
> > > maxItems: 1
> > >
> > > + if:
> > > + properties:
> > > + compatible:
> > > + contains:
> > > + const: allwinner,sun50i-h6-pwm
> > > +
> > > + then:
> > > + properties:
> > > + clocks:
> > > + maxItems: 2
> > > +
> > > + clock-names:
> > > + items:
> > > + - const: mod
> > > + - const: bus
> > > +
> > > + required:
> > > + - clock-names
> > > + - resets
> > > +
> > > + else:
> > > + properties:
> > > + clocks:
> > > + maxItems: 1
> > > +
> >
> > Sorry for not noticing this earlier, but this should be at the topmost
> > level
>
> No problem, but I don't get what you want, (yaml format is new for me).
> Do you mean I should put the if condition before the "resets" ?

No, here if we condense a bit the file, we have something like:

title: PWM

properties:
compatible:
...

...

resets:
...

if:
properties:
...

then:
properties:
...

which means that you expect that the node may contain a compatible
property, a resets one, and then two properties "if" and "then", which
in turn contain properties (ie, two nodes).

This is obviously not what you want, what you want instead is:

properties:
compatible:
...

...

resets:
...

if:
properties:
...

then:
properties:
...

Which then describes that there's two properties, compatible and
resets, and if the schema under 'if' is valid against the node we try
to validate, the schema under 'then' is used to validate the node as
well.

I hope it's clearer,
Maxime

Attachment: signature.asc
Description: PGP signature