On Mon 06 Nov 2023 at 11:32, Jerome Brunet <jbrunet@xxxxxxxxxxxx> 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@xxxxxxxxxxxx> > --- > .../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";