diff mbox series

dt-bindings: timer: renesas,tmu: Document input capture interrupt

Message ID fb1e38c93e62221f94304edd980a2fb79c1f2995.1705325608.git.geert+renesas@glider.be
State Accepted
Commit 0076a37a426b6c850a0b41b814952760e4a70fcf
Headers show
Series dt-bindings: timer: renesas,tmu: Document input capture interrupt | expand

Commit Message

Geert Uytterhoeven Jan. 15, 2024, 1:45 p.m. UTC
Some Timer Unit (TMU) instances with 3 channels support a fourth
interrupt: an input capture interrupt for the third channel.

While at it, document the meaning of the four interrupts, and add
"interrupt-names" for clarity.

Update the example to match reality.

Inspired by a patch by Yoshinori Sato for SH.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
---
The corresponding DTS updates can be found in series "[PATCH 0/2]
ARM/arm64: dts: renesas: Improve TMU interrupt descriptions".
https://lore.kernel.org/r/cover.1705325654.git.geert+renesas@glider.be

 .../devicetree/bindings/timer/renesas,tmu.yaml | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

Comments

Conor Dooley Jan. 16, 2024, 5:34 p.m. UTC | #1
On Mon, Jan 15, 2024 at 07:08:07PM +0200, Laurent Pinchart wrote:
> On Mon, Jan 15, 2024 at 05:48:18PM +0100, Geert Uytterhoeven wrote:
> > Hi Conor,
> > 
> > On Mon, Jan 15, 2024 at 5:13 PM Conor Dooley <conor@kernel.org> wrote:
> > > On Mon, Jan 15, 2024 at 02:45:39PM +0100, Geert Uytterhoeven wrote:
> > > > Some Timer Unit (TMU) instances with 3 channels support a fourth
> > > > interrupt: an input capture interrupt for the third channel.
> > > >
> > > > While at it, document the meaning of the four interrupts, and add
> > > > "interrupt-names" for clarity.
> > > >
> > > > Update the example to match reality.
> > > >
> > > > Inspired by a patch by Yoshinori Sato for SH.
> > > >
> > > > Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
> > 
> > > > --- a/Documentation/devicetree/bindings/timer/renesas,tmu.yaml
> > > > +++ b/Documentation/devicetree/bindings/timer/renesas,tmu.yaml
> > > > @@ -46,7 +46,19 @@ properties:
> > > >
> > > >    interrupts:
> > > >      minItems: 2
> > > > -    maxItems: 3
> > > > +    items:
> > > > +      - description: Underflow interrupt 0
> > > > +      - description: Underflow interrupt 1
> > > > +      - description: Underflow interrupt 2
> > > > +      - description: Input capture interrupt 2
> > >
> > > Seeing "input capture interrupt 2" makes me wonder, are there two (or
> > > more!) other input capture interrupts that are still out there,
> > > undocumented, and looking for a home?
> 
> Maybe writing this as
> 
>       - description: Underflow interrupt, channel 0
>       - description: Underflow interrupt, channel 1
>       - description: Underflow interrupt, channel 2
>       - description: Input capture interrupt, channel 2

I, for one, prefer this wording.

> would make it clearer ?
> 
> I'm also wondering if we really need to add interrupt-names. Drivers
> can't depend on the names due to backward compatibility, what benefit
> does it bring to add them to the bindings ?

Adding a -names property and not making it required has always seemed
like a waste of time to me. Granted, making it required post-factum has
other problems, so I am inclined to agree that it adds nothing.

> 
> > SoCs can have multiple TMU instances.
> > Each TMU instance has 2 or 3 timer channels.
> > Each timer channel has an underflow interrupt.
> > Only the third channel may have an optional input capture interrupt
> > (which is not supported yet by the Linux driver).
> > Hence each instance can have 2, 3, or 4 interrupts.
> > 
> > See "RZ/G Series, 2nd Generation User's Manual: Hardware"[1],
> > Section 69 ("Timer Unit (TMU)":
> >   - Figure 69.2: Block Diagram of TMU,
> >   - Section 69: Interrupt
> > 
> > Note that the documentation uses a monotonic increasing numbering
> > of the channels, across all instances.
> > 
> > [1] https://www.renesas.com/us/en/products/microcontrollers-microprocessors/rz-mpus/rzg2h-ultra-high-performance-microprocessors-quad-core-arm-cortex-a57-and-quad-core-arm-cortex-a53-cpus-3d
> 
> -- 
> Regards,
> 
> Laurent Pinchart
>
Wolfram Sang Jan. 17, 2024, 2:08 p.m. UTC | #2
> > Maybe writing this as
> > 
> >       - description: Underflow interrupt, channel 0
> >       - description: Underflow interrupt, channel 1
> >       - description: Underflow interrupt, channel 2
> >       - description: Input capture interrupt, channel 2
> 
> I, for one, prefer this wording.

I agree.
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/timer/renesas,tmu.yaml b/Documentation/devicetree/bindings/timer/renesas,tmu.yaml
index a67e427a9e7e22aa..9a823224c144f7d4 100644
--- a/Documentation/devicetree/bindings/timer/renesas,tmu.yaml
+++ b/Documentation/devicetree/bindings/timer/renesas,tmu.yaml
@@ -46,7 +46,19 @@  properties:
 
   interrupts:
     minItems: 2
-    maxItems: 3
+    items:
+      - description: Underflow interrupt 0
+      - description: Underflow interrupt 1
+      - description: Underflow interrupt 2
+      - description: Input capture interrupt 2
+
+  interrupt-names:
+    minItems: 2
+    items:
+      - const: tuni0
+      - const: tuni1
+      - const: tuni2
+      - const: ticpi2
 
   clocks:
     maxItems: 1
@@ -100,7 +112,9 @@  examples:
             reg = <0xffd80000 0x30>;
             interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
                          <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
-                         <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
+                         <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
+                         <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
+            interrupt-names = "tuni0", "tuni1", "tuni2", "ticpi2";
             clocks = <&mstp0_clks R8A7779_CLK_TMU0>;
             clock-names = "fck";
             power-domains = <&sysc R8A7779_PD_ALWAYS_ON>;