[LINUX,2/3] dt-bindings: timer: Update device tree bindings for cadence TTC PWM

Message ID 20230112071526.3035949-3-mubin.sayyed@amd.com
State New
Headers
Series Add initial support for TTC PWM driver |

Commit Message

Mubin Sayyed Jan. 12, 2023, 7:15 a.m. UTC
  Cadence TTC can act as PWM device, it is supported through
separate PWM framework based driver. Decision to configure
specific TTC device as PWM or clocksource/clockevent would
be done based on presence of "#pwm-cells" property.

Also, interrupt property is not required for TTC PWM driver.
Updated bindings to support TTC PWM configuration.

Signed-off-by: Mubin Sayyed <mubin.sayyed@amd.com>
---
 .../devicetree/bindings/timer/cdns,ttc.yaml   | 25 ++++++++++++++++++-
 1 file changed, 24 insertions(+), 1 deletion(-)
  

Comments

Krzysztof Kozlowski Jan. 12, 2023, 10:10 a.m. UTC | #1
On 12/01/2023 08:15, Mubin Sayyed wrote:
> Cadence TTC can act as PWM device, it is supported through

Subject: drop second/last, redundant "device tree bindings". The
"dt-bindings" prefix is already stating that these are bindings.

Anyway subject is poor - every commit is an "update", so basically you
said there nothing...

> separate PWM framework based driver. Decision to configure
> specific TTC device as PWM or clocksource/clockevent would
> be done based on presence of "#pwm-cells" property.
> 
> Also, interrupt property is not required for TTC PWM driver.
> Updated bindings to support TTC PWM configuration.

Please use scripts/get_maintainers.pl to get a list of necessary people
and lists to CC.  It might happen, that command when run on an older
kernel, gives you outdated entries.  Therefore please be sure you base
your patches on recent Linux kernel.

> 
> Signed-off-by: Mubin Sayyed <mubin.sayyed@amd.com>
> ---
>  .../devicetree/bindings/timer/cdns,ttc.yaml   | 25 ++++++++++++++++++-
>  1 file changed, 24 insertions(+), 1 deletion(-)
> 
> diff --git a/Documentation/devicetree/bindings/timer/cdns,ttc.yaml b/Documentation/devicetree/bindings/timer/cdns,ttc.yaml
> index 7d821fd480f6..2855e92e02e3 100644
> --- a/Documentation/devicetree/bindings/timer/cdns,ttc.yaml
> +++ b/Documentation/devicetree/bindings/timer/cdns,ttc.yaml
> @@ -32,12 +32,26 @@ properties:
>      description: |
>        Bit width of the timer, necessary if not 16.
>  
> +  "#pwm-cells":
> +    description: |
> +      Required to configure TTC as PWM device, supported cells are 0 to 3.
> +    minimum: 0
> +    maximum: 3

Better make it const. What's the benefit of flexible cells? You also
should describe the arguments.

> +
>  required:
>    - compatible
>    - reg
> -  - interrupts
>    - clocks
>  
> +allOf:
> +  - if:
> +      not:
> +        required:
> +          - "#pwm-cells"
> +    then:
> +      required:
> +        - interrupts
> +
>  additionalProperties: false
>  
>  examples:
> @@ -50,3 +64,12 @@ examples:
>          clocks = <&cpu_clk 3>;
>          timer-width = <32>;
>      };
> +
> +  - |
> +    ttc1: ttc1@f8002000 {

Node names should be generic.
https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation

> +        compatible = "cdns,ttc";
> +        reg = <0xF8002000 0x1000>;

lowercase hex

> +        clocks = <&cpu_clk 3>;
> +        timer-width = <32>;
> +        #pwm-cells = <3>;
> +    };

Best regards,
Krzysztof
  

Patch

diff --git a/Documentation/devicetree/bindings/timer/cdns,ttc.yaml b/Documentation/devicetree/bindings/timer/cdns,ttc.yaml
index 7d821fd480f6..2855e92e02e3 100644
--- a/Documentation/devicetree/bindings/timer/cdns,ttc.yaml
+++ b/Documentation/devicetree/bindings/timer/cdns,ttc.yaml
@@ -32,12 +32,26 @@  properties:
     description: |
       Bit width of the timer, necessary if not 16.
 
+  "#pwm-cells":
+    description: |
+      Required to configure TTC as PWM device, supported cells are 0 to 3.
+    minimum: 0
+    maximum: 3
+
 required:
   - compatible
   - reg
-  - interrupts
   - clocks
 
+allOf:
+  - if:
+      not:
+        required:
+          - "#pwm-cells"
+    then:
+      required:
+        - interrupts
+
 additionalProperties: false
 
 examples:
@@ -50,3 +64,12 @@  examples:
         clocks = <&cpu_clk 3>;
         timer-width = <32>;
     };
+
+  - |
+    ttc1: ttc1@f8002000 {
+        compatible = "cdns,ttc";
+        reg = <0xF8002000 0x1000>;
+        clocks = <&cpu_clk 3>;
+        timer-width = <32>;
+        #pwm-cells = <3>;
+    };