On Tue, Nov 05, 2019 at 01:34:37PM +0100, Clément Péron wrote: > On Tue, 5 Nov 2019 at 12:11, Maxime Ripard <mripard@xxxxxxxxxx> wrote: > > > > Hi Clement, Uwe, > > > > On Mon, Nov 04, 2019 at 09:03:59AM +0100, Uwe Kleine-König wrote: > > > On Sun, Nov 03, 2019 at 09:33:28PM +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> > > > > Signed-off-by: Clément Péron <peron.clem@xxxxxxxxx> > > > > --- > > > > .../bindings/pwm/allwinner,sun4i-a10-pwm.yaml | 45 ++++++++++++++++++- > > > > 1 file changed, 44 insertions(+), 1 deletion(-) > > > > > > > > diff --git a/Documentation/devicetree/bindings/pwm/allwinner,sun4i-a10-pwm.yaml b/Documentation/devicetree/bindings/pwm/allwinner,sun4i-a10-pwm.yaml > > > > index 0ac52f83a58c..bf36ea509f31 100644 > > > > --- a/Documentation/devicetree/bindings/pwm/allwinner,sun4i-a10-pwm.yaml > > > > +++ b/Documentation/devicetree/bindings/pwm/allwinner,sun4i-a10-pwm.yaml > > > > @@ -30,13 +30,46 @@ properties: > > > > - items: > > > > - const: allwinner,sun50i-h5-pwm > > > > - const: allwinner,sun5i-a13-pwm > > > > + - const: allwinner,sun50i-h6-pwm > > > > > > > > reg: > > > > maxItems: 1 > > > > > > > > - clocks: > > > > + # 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. > > > > + clocks: true > > > > + clock-names: true > > > > + resets: > > > > maxItems: 1 > > > > > > > > + if: > > > > + properties: > > > > + compatible: > > > > + contains: > > > > + const: allwinner,sun50i-h6-pwm > > > > + > > > > + then: > > > > + properties: > > > > + clocks: > > > > + items: > > > > + - description: Module Clock > > > > + - description: Bus Clock > > > > + > > > > + clock-names: > > > > + items: > > > > + - const: mod > > > > + - const: bus > > > > + > > > > + required: > > > > + - clock-names > > > > + - resets > > > > + > > > > + else: > > > > + properties: > > > > + clocks: > > > > + maxItems: 1 > > > > + > > > > > > I guess this hunk says "If this is a allwinner,sun50i-h6-pwm, a mod and > > > bus clock is required.", right? > > > > > > I wonder if it is sensible to require a clock-names property in the else > > > branch, too. This would make it obvious if the clock there corresponds > > > to the "mod" or the "bus" clock on H6. (I guess it's "mod".) > > > > This can be done a bit differently and could address your concerns > > > > Something like > > > > properties: > > ... > > > > clocks: > > minItems: 1 > > maxItems: 2 > > items: > > - description: Bus Clock > > - description: Module Clock > > > > required: > > - clocks > > > > if: > > ... > > > > then: > > properties: > > clocks: > > maxItems: 2 > > Here we should set minItems to 2 right ? > so Max = Min = 2 It's done automatically by the tooling when the other is missing. Maxime