mbox series

[0/4] pwm: atmel-tcb: rework device tree binding

Message ID 20200820225546.2246517-1-alexandre.belloni@bootlin.com
Headers show
Series pwm: atmel-tcb: rework device tree binding | expand

Message

Alexandre Belloni Aug. 20, 2020, 10:55 p.m. UTC
Hello,

This was sent as part of a 58 patches series back in 2017. The bindings
were agreed upon back then:

https://lore.kernel.org/linux-arm-kernel/20170607211752.avts3cofvac7ks3q@rob-hp-laptop/

There is still only one user of atmel,tcb-pwm in the tree and I still
think it is worth doing that change now.

The various dependencies are now in v5.9-rc1 so it is ready to be
applied.

I have another series removing atmel_tclib once this is applied.

Alexandre Belloni (4):
  dt-bindings: microchip: atmel,at91rm9200-tcb: add atmel,tcb-pwm
  pwm: atmel-tcb: switch to new binding
  pwm: atmel-tcb: add sama5d2 support
  ARM: dts: at91: kizbox: switch to new pwm-atmel-tcb binding

 .../devicetree/bindings/pwm/atmel-tcb-pwm.txt |  16 --
 .../soc/microchip/atmel,at91rm9200-tcb.yaml   |  31 +-
 arch/arm/boot/dts/at91-kizbox.dts             |  45 ++-
 drivers/pwm/Kconfig                           |   3 +-
 drivers/pwm/pwm-atmel-tcb.c                   | 264 ++++++++++--------
 5 files changed, 217 insertions(+), 142 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/pwm/atmel-tcb-pwm.txt

Comments

Alexandre Belloni Sept. 30, 2020, 10 a.m. UTC | #1
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
https://bootlin.com