Re: [PATCH 2/6] dt-bindings: pwm: amlogic: add new compatible for meson8 pwm type

From: Jerome Brunet
Date: Mon Nov 06 2023 - 07:08:23 EST



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";