Re: [DO NOT MERGE v6 09/37] dt-bindings: timer: renesas, tmu: add renesas, tmu-sh7750

2024-01-15 Thread Geert Uytterhoeven
Hi Sato-san,

On Tue, Jan 9, 2024 at 9:23 AM Yoshinori Sato
 wrote:
> Add SH7750 TMU entry.
>
> I wanted to replace interrupts and interrupt-names in the if compatible is
> "renesas,tmu-7750", but it seems that I can't rewrite it as expected.
> This resulted in a redundant conditional statement.
>
> Signed-off-by: Yoshinori Sato 

Thanks for your patch!

> --- a/Documentation/devicetree/bindings/timer/renesas,tmu.yaml
> +++ b/Documentation/devicetree/bindings/timer/renesas,tmu.yaml
> @@ -39,14 +39,15 @@ properties:
>- renesas,tmu-r8a779a0 # R-Car V3U
>- renesas,tmu-r8a779f0 # R-Car S4-8
>- renesas,tmu-r8a779g0 # R-Car V4H
> +  - renesas,tmu-sh7750   # SH7750

OK

>- const: renesas,tmu
>
>reg:
>  maxItems: 1
>
> -  interrupts:
> -minItems: 2
> -maxItems: 3
> +  interrupts: true
> +
> +  interrupt-names: true

I would drop this change (see below).

>
>clocks:
>  maxItems: 1
> @@ -75,21 +76,55 @@ required:
>- clock-names
>- power-domains
>
> -if:
> -  not:
> -properties:
> -  compatible:
> -contains:
> -  enum:
> -- renesas,tmu-r8a7740
> -- renesas,tmu-r8a7778
> -- renesas,tmu-r8a7779
> -then:
> -  required:
> -- resets
> -
>  additionalProperties: false
>
> +allOf:
> +  - if:
> +  not:
> +properties:
> +  compatible:
> +contains:
> +  enum:
> +- renesas,tmu-r8a7740
> +- renesas,tmu-r8a7778
> +- renesas,tmu-r8a7779
> +- renesas,tmu-sh7750

Adding renesas,tmu-sh7750 to this list is OK.

> +
> +then:
> +  required:
> +- resets
> +
> +  - if:
> +  not:
> +properties:
> +  compatible:
> +contains:
> +  enum:
> +- renesas,tmu-sh7750
> +
> +then:
> +  properties:
> +interrupts:
> +  minItems: 2
> +  maxItems: 3
> +interrupt-names:
> +  items:
> +- const: tuni0
> +- const: tuni1
> +- const: tuni2
> +
> +else:
> +  properties:
> +interrupts:
> +  minItems: 2
> +  maxItems: 4
> +interrupt-names:
> +  items:
> +- const: tuni0
> +- const: tuni1
> +- const: tuni2
> +- const: ticpi2
> +
>  examples:
>- |
>  #include 

The new interrupt logic is not really correct: several TMU instances
on other SoCs do support the fourth interrupt.  It just was not
documented before, or supported by the driver.

I have sent a patch to document the fourth interrupt[1].  Once that
patch has been applied, adding support for sh7751 involves adding just
two new lines.

[1] "PATCH] dt-bindings: timer: renesas,tmu: Document input capture
 interrupt"

https://lore.kernel.org/r/fb1e38c93e62221f94304edd980a2fb79c1f2995.1705325608.git.geert+rene...@glider.be

Gr{oetje,eeting}s,

Geert

-- 
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds


[DO NOT MERGE v6 09/37] dt-bindings: timer: renesas, tmu: add renesas, tmu-sh7750

2024-01-09 Thread Yoshinori Sato
Add SH7750 TMU entry.

I wanted to replace interrupts and interrupt-names in the if compatible is
"renesas,tmu-7750", but it seems that I can't rewrite it as expected.
This resulted in a redundant conditional statement.

Signed-off-by: Yoshinori Sato 
---
 .../bindings/timer/renesas,tmu.yaml   | 67 ++-
 1 file changed, 51 insertions(+), 16 deletions(-)

diff --git a/Documentation/devicetree/bindings/timer/renesas,tmu.yaml 
b/Documentation/devicetree/bindings/timer/renesas,tmu.yaml
index a67e427a9e7e..bcdd40a13ea4 100644
--- a/Documentation/devicetree/bindings/timer/renesas,tmu.yaml
+++ b/Documentation/devicetree/bindings/timer/renesas,tmu.yaml
@@ -39,14 +39,15 @@ properties:
   - renesas,tmu-r8a779a0 # R-Car V3U
   - renesas,tmu-r8a779f0 # R-Car S4-8
   - renesas,tmu-r8a779g0 # R-Car V4H
+  - renesas,tmu-sh7750   # SH7750
   - const: renesas,tmu
 
   reg:
 maxItems: 1
 
-  interrupts:
-minItems: 2
-maxItems: 3
+  interrupts: true
+
+  interrupt-names: true
 
   clocks:
 maxItems: 1
@@ -75,21 +76,55 @@ required:
   - clock-names
   - power-domains
 
-if:
-  not:
-properties:
-  compatible:
-contains:
-  enum:
-- renesas,tmu-r8a7740
-- renesas,tmu-r8a7778
-- renesas,tmu-r8a7779
-then:
-  required:
-- resets
-
 additionalProperties: false
 
+allOf:
+  - if:
+  not:
+properties:
+  compatible:
+contains:
+  enum:
+- renesas,tmu-r8a7740
+- renesas,tmu-r8a7778
+- renesas,tmu-r8a7779
+- renesas,tmu-sh7750
+
+then:
+  required:
+- resets
+
+  - if:
+  not:
+properties:
+  compatible:
+contains:
+  enum:
+- renesas,tmu-sh7750
+
+then:
+  properties:
+interrupts:
+  minItems: 2
+  maxItems: 3
+interrupt-names:
+  items:
+- const: tuni0
+- const: tuni1
+- const: tuni2
+
+else:
+  properties:
+interrupts:
+  minItems: 2
+  maxItems: 4
+interrupt-names:
+  items:
+- const: tuni0
+- const: tuni1
+- const: tuni2
+- const: ticpi2
+
 examples:
   - |
 #include 
-- 
2.39.2