Re: [PATCH 1/4] dt-bindings: microchip: atmel,at91rm9200-tcb: add atmel,tcb-pwm

Alexandre Belloni
2020-09-30T10:04:22Z

On 08/09/2020 14:48:34-0600, Rob Herring wrote:
> On Fri, Aug 21, 2020 at 12:55:43AM +0200, Alexandre Belloni wrote:
> > Move the TCB pwm nodes under their parent and move its documentation to the
> > main file.
> >
> > Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
> > ---
> > Cc: Rob Herring <robh+dt@kernel.org>
> >
> > .../devicetree/bindings/pwm/atmel-tcb-pwm.txt | 16 ----------
> > .../soc/microchip/atmel,at91rm9200-tcb.yaml | 31 ++++++++++++++++++-
> > 2 files changed, 30 insertions(+), 17 deletions(-)
> > delete mode 100644 Documentation/devicetree/bindings/pwm/atmel-tcb-pwm.txt
> >
> > diff --git a/Documentation/devicetree/bindings/pwm/atmel-tcb-pwm.txt b/Documentation/devicetree/bindings/pwm/atmel-tcb-pwm.txt
> > deleted file mode 100644
> > index 985fcc65f8c4..000000000000
> > --- a/Documentation/devicetree/bindings/pwm/atmel-tcb-pwm.txt
> > +++ /dev/null
> > @@ -1,16 +0,0 @@
> > -Atmel TCB PWM controller
> > -
> > -Required properties:
> > -- compatible: should be "atmel,tcb-pwm"
> > -- #pwm-cells: should be 3. See pwm.yaml in this directory for a description of
> > - the cells format. The only third cell flag supported by this binding is
> > - PWM_POLARITY_INVERTED.
> > -- tc-block: The Timer Counter block to use as a PWM chip.
>
> What happened to 'tc-block'? Commit message should mention why it is
> gone.
>
> > -
> > -Example:
> > -
> > -pwm {
> > - compatible = "atmel,tcb-pwm";
> > - #pwm-cells = <3>;
> > - tc-block = <1>;
> > -};
> > diff --git a/Documentation/devicetree/bindings/soc/microchip/atmel,at91rm9200-tcb.yaml b/Documentation/devicetree/bindings/soc/microchip/atmel,at91rm9200-tcb.yaml
> > index 55fffae05dcf..a51adfdb58f6 100644
> > --- a/Documentation/devicetree/bindings/soc/microchip/atmel,at91rm9200-tcb.yaml
> > +++ b/Documentation/devicetree/bindings/soc/microchip/atmel,at91rm9200-tcb.yaml
> > @@ -59,6 +59,7 @@ patternProperties:
> > items:
> > - enum:
> > - atmel,tcb-timer
> > + - atmel,tcb-pwm
> > - microchip,tcb-capture
> > reg:
> > description:
> > @@ -68,11 +69,33 @@ patternProperties:
> >
> > minItems: 1
> > maxItems: 3
> > + required:
> > + - compatible
> > + - reg
> > +
> > + "^pwm@[0-2]$":
> > + description: The timer block channels that are used as PWMs.
> > + $ref: ../../pwm/pwm.yaml#
> > + type: object
> > + properties:
> > + compatible:
> > + const: atmel,tcb-pwm
> > + reg:
> > + description:
> > + TCB channel to use for this PWM.
>
> enum: [ 0, 1, 2 ]
>

This does not work:
Documentation/devicetree/bindings/soc/microchip/atmel,at91rm9200-tcb.yaml: patternProperties:^pwm@[0-2]$:properties:reg:enum: False schema does not allow [0, 1, 2]

I guess it is because reg is of type uint32-matrix.

I'm not sure there is a point in adding it in the first place since the
unit-address is already limited to [0-2] and so reg will also be [0-2]

> > +
> > + maxItems: 1
> > + "#pwm-cells":
> > + description:
> > + The only third cell flag supported by this binding is
> > + PWM_POLARITY_INVERTED.
> > + const: 3
> >
> > required:
> > - compatible
> > - reg
>
> additionalProperties: false
>
> >
> > +
> > allOf:
> > - if:
> > properties:
> > @@ -158,7 +181,13 @@ examples:
> > compatible = "atmel,tcb-timer";
> > reg = <1>;
> > };
> > - };
> > +
> > + pwm@2 {
> > + compatible = "atmel,tcb-pwm";
> > + reg = <2>;
> > + #pwm-cells = <3>;
> > + };
> > + };
> > /* TCB0 Capture with QDEC: */
> > timer@f800c000 {
> > compatible = "atmel,at91rm9200-tcb", "simple-mfd", "syscon";
> > --
> > 2.26.2
> >

--
Alexandre Belloni, Bootlin
Embedded Linux and Kernel engineering