Message ID | 20231106103259.703417-3-jbrunet@baylibre.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | pwm: meson: dt-bindings fixup | expand |
On Mon 06 Nov 2023 at 11:32, Jerome Brunet <jbrunet@baylibre.com> wrote: > Add a new compatible for the pwm found in the meson8 to sm1 Amlogic SoCs. > > The previous clock bindings for these SoCs described the driver and not the > HW itself. The clock provided was used to set the parent of the input clock > mux among the possible parents hard-coded in the driver. > > The new bindings allows to describe the actual clock inputs of the PWM in > DT, like most bindings do, instead of relying of hard-coded data. > > The new bindings make the old one deprecated. > > There is enough experience on this HW to know that the PWM is exactly the > same all the supported SoCs. There is no need for a per-SoC compatible. > > Signed-off-by: Jerome Brunet <jbrunet@baylibre.com> > --- > .../devicetree/bindings/pwm/pwm-amlogic.yaml | 35 +++++++++++++++++-- > 1 file changed, 33 insertions(+), 2 deletions(-) > > diff --git a/Documentation/devicetree/bindings/pwm/pwm-amlogic.yaml b/Documentation/devicetree/bindings/pwm/pwm-amlogic.yaml > index 754b70fc2db0..3aa522c4cae4 100644 > --- a/Documentation/devicetree/bindings/pwm/pwm-amlogic.yaml > +++ b/Documentation/devicetree/bindings/pwm/pwm-amlogic.yaml > @@ -22,6 +22,7 @@ properties: > - amlogic,meson-g12a-ao-pwm-ab > - amlogic,meson-g12a-ao-pwm-cd > - amlogic,meson-s4-pwm > + - amlogic,meson8-pwm-v2 > - items: > - const: amlogic,meson-gx-pwm > - const: amlogic,meson-gxbb-pwm > @@ -37,7 +38,7 @@ properties: > > clocks: > minItems: 1 > - maxItems: 2 > + maxItems: 4 > > clock-names: > minItems: 1 > @@ -70,11 +71,14 @@ allOf: > - amlogic,meson-gx-pwm > - amlogic,meson-gx-ao-pwm > then: > - # Historic bindings tied to the driver implementation > + # Obsolete historic bindings tied to the driver implementation > # The clocks provided here are meant to be matched with the input > # known (hard-coded) in the driver and used to select pwm clock > # source. Currently, the linux driver ignores this. > + deprecated: true > properties: > + clocks: > + maxItems: 2 > clock-names: > oneOf: > - items: > @@ -83,6 +87,26 @@ allOf: > - const: clkin0 > - const: clkin1 > > + # Newer binding where clock describe the actual clock inputs of the pwm > + # block. These are necessary but some inputs may be grounded. > + - if: > + properties: > + compatible: > + contains: > + enum: > + - amlogic,meson8b-pwm-v2 Made a mistake here while making a last minute modification it should be meson8, not meson8b Will fix this in v2. > + then: > + properties: > + clocks: > + minItems: 1 > + items: > + - description: input clock 0 of the pwm block > + - description: input clock 1 of the pwm block > + - description: input clock 2 of the pwm block > + - description: input clock 3 of the pwm block > + required: > + - clocks > + > # Newer IP block take a single input per channel, instead of 4 inputs > # for both channels > - if: > @@ -111,6 +135,13 @@ examples: > clock-names = "clkin0", "clkin1"; > #pwm-cells = <3>; > }; > + - | > + pwm@2000 { > + compatible = "amlogic,meson8-pwm-v2"; > + reg = <0x1000 0x10>; > + clocks = <&xtal>, <0>, <&fdiv4>, <&fdiv5>; > + #pwm-cells = <3>; > + }; > - | > pwm@1000 { > compatible = "amlogic,meson-s4-pwm";
On Mon, Nov 06, 2023 at 11:32:49AM +0100, Jerome Brunet wrote: > Add a new compatible for the pwm found in the meson8 to sm1 Amlogic SoCs. > > The previous clock bindings for these SoCs described the driver and not the > HW itself. The clock provided was used to set the parent of the input clock > mux among the possible parents hard-coded in the driver. > > The new bindings allows to describe the actual clock inputs of the PWM in > DT, like most bindings do, instead of relying of hard-coded data. > > The new bindings make the old one deprecated. > > There is enough experience on this HW to know that the PWM is exactly the > same all the supported SoCs. There is no need for a per-SoC compatible. > > Signed-off-by: Jerome Brunet <jbrunet@baylibre.com> > --- > .../devicetree/bindings/pwm/pwm-amlogic.yaml | 35 +++++++++++++++++-- > 1 file changed, 33 insertions(+), 2 deletions(-) > > diff --git a/Documentation/devicetree/bindings/pwm/pwm-amlogic.yaml b/Documentation/devicetree/bindings/pwm/pwm-amlogic.yaml > index 754b70fc2db0..3aa522c4cae4 100644 > --- a/Documentation/devicetree/bindings/pwm/pwm-amlogic.yaml > +++ b/Documentation/devicetree/bindings/pwm/pwm-amlogic.yaml > @@ -22,6 +22,7 @@ properties: > - amlogic,meson-g12a-ao-pwm-ab > - amlogic,meson-g12a-ao-pwm-cd > - amlogic,meson-s4-pwm > + - amlogic,meson8-pwm-v2 > - items: > - const: amlogic,meson-gx-pwm > - const: amlogic,meson-gxbb-pwm > @@ -37,7 +38,7 @@ properties: > > clocks: > minItems: 1 > - maxItems: 2 > + maxItems: 4 > > clock-names: > minItems: 1 > @@ -70,11 +71,14 @@ allOf: > - amlogic,meson-gx-pwm > - amlogic,meson-gx-ao-pwm > then: > - # Historic bindings tied to the driver implementation > + # Obsolete historic bindings tied to the driver implementation > # The clocks provided here are meant to be matched with the input > # known (hard-coded) in the driver and used to select pwm clock > # source. Currently, the linux driver ignores this. > + deprecated: true > properties: > + clocks: > + maxItems: 2 > clock-names: > oneOf: > - items: > @@ -83,6 +87,26 @@ allOf: > - const: clkin0 > - const: clkin1 > > + # Newer binding where clock describe the actual clock inputs of the pwm > + # block. These are necessary but some inputs may be grounded. > + - if: > + properties: > + compatible: > + contains: > + enum: > + - amlogic,meson8b-pwm-v2 > + then: > + properties: > + clocks: > + minItems: 1 > + items: > + - description: input clock 0 of the pwm block > + - description: input clock 1 of the pwm block > + - description: input clock 2 of the pwm block > + - description: input clock 3 of the pwm block > + required: > + - clocks Again, clock-names?
On Wed 08 Nov 2023 at 11:06, Rob Herring <robh@kernel.org> wrote: > On Mon, Nov 06, 2023 at 11:32:49AM +0100, Jerome Brunet wrote: >> Add a new compatible for the pwm found in the meson8 to sm1 Amlogic SoCs. >> >> The previous clock bindings for these SoCs described the driver and not the >> HW itself. The clock provided was used to set the parent of the input clock >> mux among the possible parents hard-coded in the driver. >> >> The new bindings allows to describe the actual clock inputs of the PWM in >> DT, like most bindings do, instead of relying of hard-coded data. >> >> The new bindings make the old one deprecated. >> >> There is enough experience on this HW to know that the PWM is exactly the >> same all the supported SoCs. There is no need for a per-SoC compatible. >> >> Signed-off-by: Jerome Brunet <jbrunet@baylibre.com> >> --- >> .../devicetree/bindings/pwm/pwm-amlogic.yaml | 35 +++++++++++++++++-- >> 1 file changed, 33 insertions(+), 2 deletions(-) >> >> diff --git a/Documentation/devicetree/bindings/pwm/pwm-amlogic.yaml b/Documentation/devicetree/bindings/pwm/pwm-amlogic.yaml >> index 754b70fc2db0..3aa522c4cae4 100644 >> --- a/Documentation/devicetree/bindings/pwm/pwm-amlogic.yaml >> +++ b/Documentation/devicetree/bindings/pwm/pwm-amlogic.yaml >> @@ -22,6 +22,7 @@ properties: >> - amlogic,meson-g12a-ao-pwm-ab >> - amlogic,meson-g12a-ao-pwm-cd >> - amlogic,meson-s4-pwm >> + - amlogic,meson8-pwm-v2 >> - items: >> - const: amlogic,meson-gx-pwm >> - const: amlogic,meson-gxbb-pwm >> @@ -37,7 +38,7 @@ properties: >> >> clocks: >> minItems: 1 >> - maxItems: 2 >> + maxItems: 4 >> >> clock-names: >> minItems: 1 >> @@ -70,11 +71,14 @@ allOf: >> - amlogic,meson-gx-pwm >> - amlogic,meson-gx-ao-pwm >> then: >> - # Historic bindings tied to the driver implementation >> + # Obsolete historic bindings tied to the driver implementation >> # The clocks provided here are meant to be matched with the input >> # known (hard-coded) in the driver and used to select pwm clock >> # source. Currently, the linux driver ignores this. >> + deprecated: true >> properties: >> + clocks: >> + maxItems: 2 >> clock-names: >> oneOf: >> - items: >> @@ -83,6 +87,26 @@ allOf: >> - const: clkin0 >> - const: clkin1 >> >> + # Newer binding where clock describe the actual clock inputs of the pwm >> + # block. These are necessary but some inputs may be grounded. >> + - if: >> + properties: >> + compatible: >> + contains: >> + enum: >> + - amlogic,meson8b-pwm-v2 >> + then: >> + properties: >> + clocks: >> + minItems: 1 >> + items: >> + - description: input clock 0 of the pwm block >> + - description: input clock 1 of the pwm block >> + - description: input clock 2 of the pwm block >> + - description: input clock 3 of the pwm block >> + required: >> + - clocks > > Again, clock-names? yes, same thing
diff --git a/Documentation/devicetree/bindings/pwm/pwm-amlogic.yaml b/Documentation/devicetree/bindings/pwm/pwm-amlogic.yaml index 754b70fc2db0..3aa522c4cae4 100644 --- a/Documentation/devicetree/bindings/pwm/pwm-amlogic.yaml +++ b/Documentation/devicetree/bindings/pwm/pwm-amlogic.yaml @@ -22,6 +22,7 @@ properties: - amlogic,meson-g12a-ao-pwm-ab - amlogic,meson-g12a-ao-pwm-cd - amlogic,meson-s4-pwm + - amlogic,meson8-pwm-v2 - items: - const: amlogic,meson-gx-pwm - const: amlogic,meson-gxbb-pwm @@ -37,7 +38,7 @@ properties: clocks: minItems: 1 - maxItems: 2 + maxItems: 4 clock-names: minItems: 1 @@ -70,11 +71,14 @@ allOf: - amlogic,meson-gx-pwm - amlogic,meson-gx-ao-pwm then: - # Historic bindings tied to the driver implementation + # Obsolete historic bindings tied to the driver implementation # The clocks provided here are meant to be matched with the input # known (hard-coded) in the driver and used to select pwm clock # source. Currently, the linux driver ignores this. + deprecated: true properties: + clocks: + maxItems: 2 clock-names: oneOf: - items: @@ -83,6 +87,26 @@ allOf: - const: clkin0 - const: clkin1 + # Newer binding where clock describe the actual clock inputs of the pwm + # block. These are necessary but some inputs may be grounded. + - if: + properties: + compatible: + contains: + enum: + - amlogic,meson8b-pwm-v2 + then: + properties: + clocks: + minItems: 1 + items: + - description: input clock 0 of the pwm block + - description: input clock 1 of the pwm block + - description: input clock 2 of the pwm block + - description: input clock 3 of the pwm block + required: + - clocks + # Newer IP block take a single input per channel, instead of 4 inputs # for both channels - if: @@ -111,6 +135,13 @@ examples: clock-names = "clkin0", "clkin1"; #pwm-cells = <3>; }; + - | + pwm@2000 { + compatible = "amlogic,meson8-pwm-v2"; + reg = <0x1000 0x10>; + clocks = <&xtal>, <0>, <&fdiv4>, <&fdiv5>; + #pwm-cells = <3>; + }; - | pwm@1000 { compatible = "amlogic,meson-s4-pwm";
Add a new compatible for the pwm found in the meson8 to sm1 Amlogic SoCs. The previous clock bindings for these SoCs described the driver and not the HW itself. The clock provided was used to set the parent of the input clock mux among the possible parents hard-coded in the driver. The new bindings allows to describe the actual clock inputs of the PWM in DT, like most bindings do, instead of relying of hard-coded data. The new bindings make the old one deprecated. There is enough experience on this HW to know that the PWM is exactly the same all the supported SoCs. There is no need for a per-SoC compatible. Signed-off-by: Jerome Brunet <jbrunet@baylibre.com> --- .../devicetree/bindings/pwm/pwm-amlogic.yaml | 35 +++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-)