Devicetree
 help / color / mirror / Atom feed
* [PATCH v2 0/7] Add support for RZ/G3E CANFD
@ 2025-02-20 13:04 Biju Das
  2025-02-20 13:04 ` [PATCH v2 1/7] dt-bindings: can: renesas,rcar-canfd: Simplify the conditional schema Biju Das
  2025-02-20 13:04 ` [PATCH v2 2/7] dt-bindings: can: renesas,rcar-canfd: Document RZ/G3E support Biju Das
  0 siblings, 2 replies; 8+ messages in thread
From: Biju Das @ 2025-02-20 13:04 UTC (permalink / raw)
  To: Marc Kleine-Budde, Vincent Mailhol, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Geert Uytterhoeven,
	Michael Turquette, Stephen Boyd
  Cc: Biju Das, linux-can, linux-renesas-soc, linux-clk, devicetree,
	Wolfram Sang, Uwe Kleine-König, Prabhakar Mahadev Lad,
	Biju Das

The CAN-FD module on RZ/G3E is very similar to the one on both R-Car V4H
and RZ/G2L, but differs in some hardware parameters:
 * No external clock, but instead has ram clock.
 * Support up to 6 channels.
 * 20 interrupts.

This patch series depend upon [1]
[1] https://lore.kernel.org/all/20250220094516.126598-1-biju.das.jz@bp.renesas.com/

v1->v2:
 * Split the series with fixes patch separately.
 * Added patch for Simplify rcar_canfd_probe() using
   of_get_available_child_by_name() as dependency patch hit on can-next.
 * Added Rb tag from Vincent Mailhol.
 * Dropped redundant comment from commit description for patch#3.

Biju Das (7):
  dt-bindings: can: renesas,rcar-canfd: Simplify the conditional schema
  dt-bindings: can: renesas,rcar-canfd: Document RZ/G3E support
  can: rcar_canfd: Use of_get_available_child_by_name()
  can: rcar_canfd: Add gen4_type variable to struct rcar_canfd_hw_info
  can: rcar_canfd: Add only_internal_clks variable to struct
    rcar_canfd_hw_info
  can: rcar_canfd: Enhance multi_channel_irqs handling
  can: rcar_canfd: Add RZ/G3E support

 .../bindings/net/can/renesas,rcar-canfd.yaml  | 180 +++++++++++++-----
 drivers/net/can/rcar/rcar_canfd.c             |  35 +++-
 2 files changed, 165 insertions(+), 50 deletions(-)

-- 
2.43.0


^ permalink raw reply	[flat|nested] 8+ messages in thread

* [PATCH v2 1/7] dt-bindings: can: renesas,rcar-canfd: Simplify the conditional schema
  2025-02-20 13:04 [PATCH v2 0/7] Add support for RZ/G3E CANFD Biju Das
@ 2025-02-20 13:04 ` Biju Das
  2025-02-21 17:51   ` Conor Dooley
  2025-02-20 13:04 ` [PATCH v2 2/7] dt-bindings: can: renesas,rcar-canfd: Document RZ/G3E support Biju Das
  1 sibling, 1 reply; 8+ messages in thread
From: Biju Das @ 2025-02-20 13:04 UTC (permalink / raw)
  To: Marc Kleine-Budde, Vincent Mailhol, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Geert Uytterhoeven,
	Magnus Damm
  Cc: Biju Das, Fabrizio Castro, Simon Horman, Duy Nguyen, linux-can,
	devicetree, linux-renesas-soc, Prabhakar Mahadev Lad, Biju Das

RZ/G3E SoC has 20 interrupts, 2 resets and 6 channels that need more
branching with conditional schema. Simplify the conditional schema with
if statements rather than the complex if-else statements to prepare for
supporting RZ/G3E SoC.

Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
---
This patch depend upon [1]
[1] https://lore.kernel.org/all/20250220094516.126598-2-biju.das.jz@bp.renesas.com/
v1->v2:
 * No change
---
 .../bindings/net/can/renesas,rcar-canfd.yaml  | 123 ++++++++++++------
 1 file changed, 80 insertions(+), 43 deletions(-)

diff --git a/Documentation/devicetree/bindings/net/can/renesas,rcar-canfd.yaml b/Documentation/devicetree/bindings/net/can/renesas,rcar-canfd.yaml
index f6884f6e59e7..f87f90f431e5 100644
--- a/Documentation/devicetree/bindings/net/can/renesas,rcar-canfd.yaml
+++ b/Documentation/devicetree/bindings/net/can/renesas,rcar-canfd.yaml
@@ -45,7 +45,35 @@ properties:
   reg:
     maxItems: 1
 
-  interrupts: true
+  interrupts:
+    oneOf:
+      - items:
+          - description: Channel interrupt
+          - description: Global interrupt
+      - items:
+          - description: CAN global error interrupt
+          - description: CAN receive FIFO interrupt
+          - description: CAN0 error interrupt
+          - description: CAN0 transmit interrupt
+          - description: CAN0 transmit/receive FIFO receive completion interrupt
+          - description: CAN1 error interrupt
+          - description: CAN1 transmit interrupt
+          - description: CAN1 transmit/receive FIFO receive completion interrupt
+
+  interrupt-names:
+    oneOf:
+      - items:
+          - const: ch_int
+          - const: g_int
+      - items:
+          - const: g_err
+          - const: g_recc
+          - const: ch0_err
+          - const: ch0_rec
+          - const: ch0_trx
+          - const: ch1_err
+          - const: ch1_rec
+          - const: ch1_trx
 
   clocks:
     maxItems: 3
@@ -117,52 +145,71 @@ allOf:
     then:
       properties:
         interrupts:
-          items:
-            - description: CAN global error interrupt
-            - description: CAN receive FIFO interrupt
-            - description: CAN0 error interrupt
-            - description: CAN0 transmit interrupt
-            - description: CAN0 transmit/receive FIFO receive completion interrupt
-            - description: CAN1 error interrupt
-            - description: CAN1 transmit interrupt
-            - description: CAN1 transmit/receive FIFO receive completion interrupt
+          minItems: 8
+          maxItems: 8
 
         interrupt-names:
-          items:
-            - const: g_err
-            - const: g_recc
-            - const: ch0_err
-            - const: ch0_rec
-            - const: ch0_trx
-            - const: ch1_err
-            - const: ch1_rec
-            - const: ch1_trx
+          minItems: 8
+          maxItems: 8
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - renesas,rcar-gen3-canfd
+              - renesas,rcar-gen4-canfd
+    then:
+      properties:
+        interrupts:
+          minItems: 2
+          maxItems: 2
+
+        interrupt-names:
+          minItems: 2
+          maxItems: 2
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: renesas,rzg2l-canfd
+    then:
+      properties:
         resets:
+          minItems: 2
           maxItems: 2
 
         reset-names:
-          items:
-            - const: rstp_n
-            - const: rstc_n
+          minItems: 2
+          maxItems: 2
 
       required:
         - reset-names
-    else:
-      properties:
-        interrupts:
-          items:
-            - description: Channel interrupt
-            - description: Global interrupt
-
-        interrupt-names:
-          items:
-            - const: ch_int
-            - const: g_int
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - renesas,rcar-gen3-canfd
+              - renesas,rcar-gen4-canfd
+    then:
+      properties:
         resets:
           maxItems: 1
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - renesas,rcar-gen3-canfd
+              - renesas,rzg2l-canfd
+    then:
+      patternProperties:
+        "^channel[2-7]$": false
+
   - if:
       properties:
         compatible:
@@ -171,16 +218,6 @@ allOf:
     then:
       patternProperties:
         "^channel[4-7]$": false
-    else:
-      if:
-        not:
-          properties:
-            compatible:
-              contains:
-                const: renesas,rcar-gen4-canfd
-      then:
-        patternProperties:
-          "^channel[2-7]$": false
 
 unevaluatedProperties: false
 
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [PATCH v2 2/7] dt-bindings: can: renesas,rcar-canfd: Document RZ/G3E support
  2025-02-20 13:04 [PATCH v2 0/7] Add support for RZ/G3E CANFD Biju Das
  2025-02-20 13:04 ` [PATCH v2 1/7] dt-bindings: can: renesas,rcar-canfd: Simplify the conditional schema Biju Das
@ 2025-02-20 13:04 ` Biju Das
  2025-02-21 17:53   ` Conor Dooley
  1 sibling, 1 reply; 8+ messages in thread
From: Biju Das @ 2025-02-20 13:04 UTC (permalink / raw)
  To: Marc Kleine-Budde, Vincent Mailhol, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Geert Uytterhoeven,
	Magnus Damm
  Cc: Biju Das, Fabrizio Castro, Simon Horman, Duy Nguyen, linux-can,
	devicetree, linux-renesas-soc, Prabhakar Mahadev Lad, Biju Das

Document support for the CAN-FD Interface on the RZ/G3E (R9A09G047) SoC,
which supports up to six channels.

The CAN-FD module on RZ/G3E is very similar to the one on both R-Car V4H
and RZ/G2L, but differs in some hardware parameters:
 * No external clock, but instead has ram clock.
 * Support up to 6 channels.
 * 20 interrupts.

Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
---
v1->v2:
 * No change.
---
 .../bindings/net/can/renesas,rcar-canfd.yaml  | 67 +++++++++++++++++--
 1 file changed, 62 insertions(+), 5 deletions(-)

diff --git a/Documentation/devicetree/bindings/net/can/renesas,rcar-canfd.yaml b/Documentation/devicetree/bindings/net/can/renesas,rcar-canfd.yaml
index f87f90f431e5..189d5303ad75 100644
--- a/Documentation/devicetree/bindings/net/can/renesas,rcar-canfd.yaml
+++ b/Documentation/devicetree/bindings/net/can/renesas,rcar-canfd.yaml
@@ -42,6 +42,8 @@ properties:
               - renesas,r9a07g054-canfd    # RZ/V2L
           - const: renesas,rzg2l-canfd     # RZ/G2L family
 
+      - const: renesas,r9a09g047-canfd     # RZ/G3E
+
   reg:
     maxItems: 1
 
@@ -59,6 +61,19 @@ properties:
           - description: CAN1 error interrupt
           - description: CAN1 transmit interrupt
           - description: CAN1 transmit/receive FIFO receive completion interrupt
+          - description: CAN2 error interrupt
+          - description: CAN2 transmit interrupt
+          - description: CAN2 transmit/receive FIFO receive completion interrupt
+          - description: CAN3 error interrupt
+          - description: CAN3 transmit interrupt
+          - description: CAN3 transmit/receive FIFO receive completion interrupt
+          - description: CAN4 error interrupt
+          - description: CAN4 transmit interrupt
+          - description: CAN4 transmit/receive FIFO receive completion interrupt
+          - description: CAN5 error interrupt
+          - description: CAN5 transmit interrupt
+          - description: CAN5 transmit/receive FIFO receive completion interrupt
+        minItems: 8
 
   interrupt-names:
     oneOf:
@@ -74,15 +89,33 @@ properties:
           - const: ch1_err
           - const: ch1_rec
           - const: ch1_trx
+          - const: ch2_err
+          - const: ch2_rec
+          - const: ch2_trx
+          - const: ch3_err
+          - const: ch3_rec
+          - const: ch3_trx
+          - const: ch4_err
+          - const: ch4_rec
+          - const: ch4_trx
+          - const: ch5_err
+          - const: ch5_rec
+          - const: ch5_trx
+        minItems: 8
 
   clocks:
     maxItems: 3
 
   clock-names:
-    items:
-      - const: fck
-      - const: canfd
-      - const: can_clk
+    oneOf:
+      - items:
+          - const: fck
+          - const: canfd
+          - const: can_clk
+      - items:
+          - const: fck
+          - const: ram_clk
+          - const: can_clk
 
   power-domains:
     maxItems: 1
@@ -173,7 +206,9 @@ allOf:
       properties:
         compatible:
           contains:
-            const: renesas,rzg2l-canfd
+            enum:
+              - renesas,r9a09g047-canfd
+              - renesas,rzg2l-canfd
     then:
       properties:
         resets:
@@ -187,6 +222,19 @@ allOf:
       required:
         - reset-names
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: renesas,r9a09g047-canfd
+    then:
+      properties:
+        interrupts:
+          maxItems: 20
+
+        interrupt-names:
+          maxItems: 20
+
   - if:
       properties:
         compatible:
@@ -219,6 +267,15 @@ allOf:
       patternProperties:
         "^channel[4-7]$": false
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: renesas,r9a09g047-canfd
+    then:
+      patternProperties:
+        "^channel[6-7]$": false
+
 unevaluatedProperties: false
 
 examples:
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 1/7] dt-bindings: can: renesas,rcar-canfd: Simplify the conditional schema
  2025-02-20 13:04 ` [PATCH v2 1/7] dt-bindings: can: renesas,rcar-canfd: Simplify the conditional schema Biju Das
@ 2025-02-21 17:51   ` Conor Dooley
  0 siblings, 0 replies; 8+ messages in thread
From: Conor Dooley @ 2025-02-21 17:51 UTC (permalink / raw)
  To: Biju Das
  Cc: Marc Kleine-Budde, Vincent Mailhol, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Geert Uytterhoeven,
	Magnus Damm, Fabrizio Castro, Simon Horman, Duy Nguyen, linux-can,
	devicetree, linux-renesas-soc, Prabhakar Mahadev Lad, Biju Das

[-- Attachment #1: Type: text/plain, Size: 422 bytes --]

On Thu, Feb 20, 2025 at 01:04:17PM +0000, Biju Das wrote:
> RZ/G3E SoC has 20 interrupts, 2 resets and 6 channels that need more
> branching with conditional schema. Simplify the conditional schema with
> if statements rather than the complex if-else statements to prepare for
> supporting RZ/G3E SoC.
> 
> Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>

Acked-by: Conor Dooley <conor.dooley@microchip.com>

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 2/7] dt-bindings: can: renesas,rcar-canfd: Document RZ/G3E support
  2025-02-20 13:04 ` [PATCH v2 2/7] dt-bindings: can: renesas,rcar-canfd: Document RZ/G3E support Biju Das
@ 2025-02-21 17:53   ` Conor Dooley
  2025-02-21 18:03     ` Biju Das
  2025-02-21 23:18     ` Rob Herring
  0 siblings, 2 replies; 8+ messages in thread
From: Conor Dooley @ 2025-02-21 17:53 UTC (permalink / raw)
  To: Biju Das
  Cc: Marc Kleine-Budde, Vincent Mailhol, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Geert Uytterhoeven,
	Magnus Damm, Fabrizio Castro, Simon Horman, Duy Nguyen, linux-can,
	devicetree, linux-renesas-soc, Prabhakar Mahadev Lad, Biju Das

[-- Attachment #1: Type: text/plain, Size: 4495 bytes --]

On Thu, Feb 20, 2025 at 01:04:18PM +0000, Biju Das wrote:
> Document support for the CAN-FD Interface on the RZ/G3E (R9A09G047) SoC,
> which supports up to six channels.
> 
> The CAN-FD module on RZ/G3E is very similar to the one on both R-Car V4H
> and RZ/G2L, but differs in some hardware parameters:
>  * No external clock, but instead has ram clock.
>  * Support up to 6 channels.
>  * 20 interrupts.
> 
> Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> ---
> v1->v2:
>  * No change.
> ---
>  .../bindings/net/can/renesas,rcar-canfd.yaml  | 67 +++++++++++++++++--
>  1 file changed, 62 insertions(+), 5 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/net/can/renesas,rcar-canfd.yaml b/Documentation/devicetree/bindings/net/can/renesas,rcar-canfd.yaml
> index f87f90f431e5..189d5303ad75 100644
> --- a/Documentation/devicetree/bindings/net/can/renesas,rcar-canfd.yaml
> +++ b/Documentation/devicetree/bindings/net/can/renesas,rcar-canfd.yaml
> @@ -42,6 +42,8 @@ properties:
>                - renesas,r9a07g054-canfd    # RZ/V2L
>            - const: renesas,rzg2l-canfd     # RZ/G2L family
>  
> +      - const: renesas,r9a09g047-canfd     # RZ/G3E
> +
>    reg:
>      maxItems: 1
>  
> @@ -59,6 +61,19 @@ properties:
>            - description: CAN1 error interrupt
>            - description: CAN1 transmit interrupt
>            - description: CAN1 transmit/receive FIFO receive completion interrupt
> +          - description: CAN2 error interrupt
> +          - description: CAN2 transmit interrupt
> +          - description: CAN2 transmit/receive FIFO receive completion interrupt
> +          - description: CAN3 error interrupt
> +          - description: CAN3 transmit interrupt
> +          - description: CAN3 transmit/receive FIFO receive completion interrupt
> +          - description: CAN4 error interrupt
> +          - description: CAN4 transmit interrupt
> +          - description: CAN4 transmit/receive FIFO receive completion interrupt
> +          - description: CAN5 error interrupt
> +          - description: CAN5 transmit interrupt
> +          - description: CAN5 transmit/receive FIFO receive completion interrupt
> +        minItems: 8
>  
>    interrupt-names:
>      oneOf:
> @@ -74,15 +89,33 @@ properties:
>            - const: ch1_err
>            - const: ch1_rec
>            - const: ch1_trx
> +          - const: ch2_err
> +          - const: ch2_rec
> +          - const: ch2_trx
> +          - const: ch3_err
> +          - const: ch3_rec
> +          - const: ch3_trx
> +          - const: ch4_err
> +          - const: ch4_rec
> +          - const: ch4_trx
> +          - const: ch5_err
> +          - const: ch5_rec
> +          - const: ch5_trx
> +        minItems: 8
>  
>    clocks:
>      maxItems: 3
>  
>    clock-names:
> -    items:
> -      - const: fck
> -      - const: canfd
> -      - const: can_clk
> +    oneOf:
> +      - items:
> +          - const: fck
> +          - const: canfd
> +          - const: can_clk
> +      - items:
> +          - const: fck
> +          - const: ram_clk
> +          - const: can_clk
>  
>    power-domains:
>      maxItems: 1
> @@ -173,7 +206,9 @@ allOf:
>        properties:
>          compatible:
>            contains:
> -            const: renesas,rzg2l-canfd
> +            enum:
> +              - renesas,r9a09g047-canfd
> +              - renesas,rzg2l-canfd
>      then:
>        properties:
>          resets:
> @@ -187,6 +222,19 @@ allOf:
>        required:
>          - reset-names
>  
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: renesas,r9a09g047-canfd
> +    then:
> +      properties:
> +        interrupts:
> +          maxItems: 20
> +
> +        interrupt-names:
> +          maxItems: 20

Should these be minItems instead of maxItems? The list has 20 elements
at the moment (right?) so you're not adding any restriction here.

> +
>    - if:
>        properties:
>          compatible:
> @@ -219,6 +267,15 @@ allOf:
>        patternProperties:
>          "^channel[4-7]$": false
>  
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: renesas,r9a09g047-canfd
> +    then:
> +      patternProperties:
> +        "^channel[6-7]$": false
> +
>  unevaluatedProperties: false
>  
>  examples:
> -- 
> 2.43.0
> 

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

^ permalink raw reply	[flat|nested] 8+ messages in thread

* RE: [PATCH v2 2/7] dt-bindings: can: renesas,rcar-canfd: Document RZ/G3E support
  2025-02-21 17:53   ` Conor Dooley
@ 2025-02-21 18:03     ` Biju Das
  2025-02-21 23:18     ` Rob Herring
  1 sibling, 0 replies; 8+ messages in thread
From: Biju Das @ 2025-02-21 18:03 UTC (permalink / raw)
  To: Conor Dooley
  Cc: Marc Kleine-Budde, Vincent Mailhol, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Geert Uytterhoeven,
	Magnus Damm, Fabrizio Castro, Simon Horman, Duy Nguyen,
	linux-can@vger.kernel.org, devicetree@vger.kernel.org,
	linux-renesas-soc@vger.kernel.org, Prabhakar Mahadev Lad,
	biju.das.au

Hi Conor Dooley,

Thanks for the feedback.

> -----Original Message-----
> From: Conor Dooley <conor@kernel.org>
> Sent: 21 February 2025 17:54
> Subject: Re: [PATCH v2 2/7] dt-bindings: can: renesas,rcar-canfd: Document RZ/G3E support
> 
> On Thu, Feb 20, 2025 at 01:04:18PM +0000, Biju Das wrote:
> > Document support for the CAN-FD Interface on the RZ/G3E (R9A09G047)
> > SoC, which supports up to six channels.
> >
> > The CAN-FD module on RZ/G3E is very similar to the one on both R-Car
> > V4H and RZ/G2L, but differs in some hardware parameters:
> >  * No external clock, but instead has ram clock.
> >  * Support up to 6 channels.
> >  * 20 interrupts.
> >
> > Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> > ---
> > v1->v2:
> >  * No change.
> > ---
> >  .../bindings/net/can/renesas,rcar-canfd.yaml  | 67
> > +++++++++++++++++--
> >  1 file changed, 62 insertions(+), 5 deletions(-)
> >
> > diff --git
> > a/Documentation/devicetree/bindings/net/can/renesas,rcar-canfd.yaml
> > b/Documentation/devicetree/bindings/net/can/renesas,rcar-canfd.yaml
> > index f87f90f431e5..189d5303ad75 100644
> > ---
> > a/Documentation/devicetree/bindings/net/can/renesas,rcar-canfd.yaml
> > +++ b/Documentation/devicetree/bindings/net/can/renesas,rcar-canfd.yam
> > +++ l
> > @@ -42,6 +42,8 @@ properties:
> >                - renesas,r9a07g054-canfd    # RZ/V2L
> >            - const: renesas,rzg2l-canfd     # RZ/G2L family
> >
> > +      - const: renesas,r9a09g047-canfd     # RZ/G3E
> > +
> >    reg:
> >      maxItems: 1
> >
> > @@ -59,6 +61,19 @@ properties:
> >            - description: CAN1 error interrupt
> >            - description: CAN1 transmit interrupt
> >            - description: CAN1 transmit/receive FIFO receive
> > completion interrupt
> > +          - description: CAN2 error interrupt
> > +          - description: CAN2 transmit interrupt
> > +          - description: CAN2 transmit/receive FIFO receive completion interrupt
> > +          - description: CAN3 error interrupt
> > +          - description: CAN3 transmit interrupt
> > +          - description: CAN3 transmit/receive FIFO receive completion interrupt
> > +          - description: CAN4 error interrupt
> > +          - description: CAN4 transmit interrupt
> > +          - description: CAN4 transmit/receive FIFO receive completion interrupt
> > +          - description: CAN5 error interrupt
> > +          - description: CAN5 transmit interrupt
> > +          - description: CAN5 transmit/receive FIFO receive completion interrupt
> > +        minItems: 8
> >
> >    interrupt-names:
> >      oneOf:
> > @@ -74,15 +89,33 @@ properties:
> >            - const: ch1_err
> >            - const: ch1_rec
> >            - const: ch1_trx
> > +          - const: ch2_err
> > +          - const: ch2_rec
> > +          - const: ch2_trx
> > +          - const: ch3_err
> > +          - const: ch3_rec
> > +          - const: ch3_trx
> > +          - const: ch4_err
> > +          - const: ch4_rec
> > +          - const: ch4_trx
> > +          - const: ch5_err
> > +          - const: ch5_rec
> > +          - const: ch5_trx
> > +        minItems: 8
> >
> >    clocks:
> >      maxItems: 3
> >
> >    clock-names:
> > -    items:
> > -      - const: fck
> > -      - const: canfd
> > -      - const: can_clk
> > +    oneOf:
> > +      - items:
> > +          - const: fck
> > +          - const: canfd
> > +          - const: can_clk
> > +      - items:
> > +          - const: fck
> > +          - const: ram_clk
> > +          - const: can_clk
> >
> >    power-domains:
> >      maxItems: 1
> > @@ -173,7 +206,9 @@ allOf:
> >        properties:
> >          compatible:
> >            contains:
> > -            const: renesas,rzg2l-canfd
> > +            enum:
> > +              - renesas,r9a09g047-canfd
> > +              - renesas,rzg2l-canfd
> >      then:
> >        properties:
> >          resets:
> > @@ -187,6 +222,19 @@ allOf:
> >        required:
> >          - reset-names
> >
> > +  - if:
> > +      properties:
> > +        compatible:
> > +          contains:
> > +            const: renesas,r9a09g047-canfd
> > +    then:
> > +      properties:
> > +        interrupts:
> > +          maxItems: 20
> > +
> > +        interrupt-names:
> > +          maxItems: 20
> 
> Should these be minItems instead of maxItems? The list has 20 elements at the moment (right?) so
> you're not adding any restriction here.

Yes, it should be minItems.

Cheers,
Biju

> 
> > +
> >    - if:
> >        properties:
> >          compatible:
> > @@ -219,6 +267,15 @@ allOf:
> >        patternProperties:
> >          "^channel[4-7]$": false
> >
> > +  - if:
> > +      properties:
> > +        compatible:
> > +          contains:
> > +            const: renesas,r9a09g047-canfd
> > +    then:
> > +      patternProperties:
> > +        "^channel[6-7]$": false
> > +
> >  unevaluatedProperties: false
> >
> >  examples:
> > --
> > 2.43.0
> >

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [PATCH v2 2/7] dt-bindings: can: renesas,rcar-canfd: Document RZ/G3E support
  2025-02-21 17:53   ` Conor Dooley
  2025-02-21 18:03     ` Biju Das
@ 2025-02-21 23:18     ` Rob Herring
  2025-02-22  8:20       ` Biju Das
  1 sibling, 1 reply; 8+ messages in thread
From: Rob Herring @ 2025-02-21 23:18 UTC (permalink / raw)
  To: Conor Dooley
  Cc: Biju Das, Marc Kleine-Budde, Vincent Mailhol, Krzysztof Kozlowski,
	Conor Dooley, Geert Uytterhoeven, Magnus Damm, Fabrizio Castro,
	Simon Horman, Duy Nguyen, linux-can, devicetree,
	linux-renesas-soc, Prabhakar Mahadev Lad, Biju Das

On Fri, Feb 21, 2025 at 05:53:43PM +0000, Conor Dooley wrote:
> On Thu, Feb 20, 2025 at 01:04:18PM +0000, Biju Das wrote:
> > Document support for the CAN-FD Interface on the RZ/G3E (R9A09G047) SoC,
> > which supports up to six channels.
> > 
> > The CAN-FD module on RZ/G3E is very similar to the one on both R-Car V4H
> > and RZ/G2L, but differs in some hardware parameters:
> >  * No external clock, but instead has ram clock.
> >  * Support up to 6 channels.
> >  * 20 interrupts.
> > 
> > Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> > ---
> > v1->v2:
> >  * No change.
> > ---
> >  .../bindings/net/can/renesas,rcar-canfd.yaml  | 67 +++++++++++++++++--
> >  1 file changed, 62 insertions(+), 5 deletions(-)
> > 
> > diff --git a/Documentation/devicetree/bindings/net/can/renesas,rcar-canfd.yaml b/Documentation/devicetree/bindings/net/can/renesas,rcar-canfd.yaml
> > index f87f90f431e5..189d5303ad75 100644
> > --- a/Documentation/devicetree/bindings/net/can/renesas,rcar-canfd.yaml
> > +++ b/Documentation/devicetree/bindings/net/can/renesas,rcar-canfd.yaml
> > @@ -42,6 +42,8 @@ properties:
> >                - renesas,r9a07g054-canfd    # RZ/V2L
> >            - const: renesas,rzg2l-canfd     # RZ/G2L family
> >  
> > +      - const: renesas,r9a09g047-canfd     # RZ/G3E
> > +
> >    reg:
> >      maxItems: 1
> >  
> > @@ -59,6 +61,19 @@ properties:
> >            - description: CAN1 error interrupt
> >            - description: CAN1 transmit interrupt
> >            - description: CAN1 transmit/receive FIFO receive completion interrupt
> > +          - description: CAN2 error interrupt
> > +          - description: CAN2 transmit interrupt
> > +          - description: CAN2 transmit/receive FIFO receive completion interrupt
> > +          - description: CAN3 error interrupt
> > +          - description: CAN3 transmit interrupt
> > +          - description: CAN3 transmit/receive FIFO receive completion interrupt
> > +          - description: CAN4 error interrupt
> > +          - description: CAN4 transmit interrupt
> > +          - description: CAN4 transmit/receive FIFO receive completion interrupt
> > +          - description: CAN5 error interrupt
> > +          - description: CAN5 transmit interrupt
> > +          - description: CAN5 transmit/receive FIFO receive completion interrupt
> > +        minItems: 8
> >  
> >    interrupt-names:
> >      oneOf:
> > @@ -74,15 +89,33 @@ properties:
> >            - const: ch1_err
> >            - const: ch1_rec
> >            - const: ch1_trx
> > +          - const: ch2_err
> > +          - const: ch2_rec
> > +          - const: ch2_trx
> > +          - const: ch3_err
> > +          - const: ch3_rec
> > +          - const: ch3_trx
> > +          - const: ch4_err
> > +          - const: ch4_rec
> > +          - const: ch4_trx
> > +          - const: ch5_err
> > +          - const: ch5_rec
> > +          - const: ch5_trx
> > +        minItems: 8
> >  
> >    clocks:
> >      maxItems: 3
> >  
> >    clock-names:
> > -    items:
> > -      - const: fck
> > -      - const: canfd
> > -      - const: can_clk
> > +    oneOf:
> > +      - items:
> > +          - const: fck
> > +          - const: canfd
> > +          - const: can_clk
> > +      - items:
> > +          - const: fck
> > +          - const: ram_clk
> > +          - const: can_clk
> >  
> >    power-domains:
> >      maxItems: 1
> > @@ -173,7 +206,9 @@ allOf:
> >        properties:
> >          compatible:
> >            contains:
> > -            const: renesas,rzg2l-canfd
> > +            enum:
> > +              - renesas,r9a09g047-canfd
> > +              - renesas,rzg2l-canfd
> >      then:
> >        properties:
> >          resets:
> > @@ -187,6 +222,19 @@ allOf:
> >        required:
> >          - reset-names
> >  
> > +  - if:
> > +      properties:
> > +        compatible:
> > +          contains:
> > +            const: renesas,r9a09g047-canfd
> > +    then:
> > +      properties:
> > +        interrupts:
> > +          maxItems: 20
> > +
> > +        interrupt-names:
> > +          maxItems: 20
> 
> Should these be minItems instead of maxItems? The list has 20 elements
> at the moment (right?) so you're not adding any restriction here.

And the existing platforms need to have 'maxItems: 8'.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* RE: [PATCH v2 2/7] dt-bindings: can: renesas,rcar-canfd: Document RZ/G3E support
  2025-02-21 23:18     ` Rob Herring
@ 2025-02-22  8:20       ` Biju Das
  0 siblings, 0 replies; 8+ messages in thread
From: Biju Das @ 2025-02-22  8:20 UTC (permalink / raw)
  To: Rob Herring, Conor Dooley
  Cc: Marc Kleine-Budde, Vincent Mailhol, Krzysztof Kozlowski,
	Conor Dooley, Geert Uytterhoeven, Magnus Damm, Fabrizio Castro,
	Simon Horman, Duy Nguyen, linux-can@vger.kernel.org,
	devicetree@vger.kernel.org, linux-renesas-soc@vger.kernel.org,
	Prabhakar Mahadev Lad, biju.das.au

Hi Rob,

Thanks for the feedback.

> -----Original Message-----
> From: Rob Herring <robh@kernel.org>
> Sent: 21 February 2025 23:19
> Subject: Re: [PATCH v2 2/7] dt-bindings: can: renesas,rcar-canfd: Document RZ/G3E support
> 
> On Fri, Feb 21, 2025 at 05:53:43PM +0000, Conor Dooley wrote:
> > On Thu, Feb 20, 2025 at 01:04:18PM +0000, Biju Das wrote:
> > > Document support for the CAN-FD Interface on the RZ/G3E (R9A09G047)
> > > SoC, which supports up to six channels.
> > >
> > > The CAN-FD module on RZ/G3E is very similar to the one on both R-Car
> > > V4H and RZ/G2L, but differs in some hardware parameters:
> > >  * No external clock, but instead has ram clock.
> > >  * Support up to 6 channels.
> > >  * 20 interrupts.
> > >
> > > Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> > > ---
> > > v1->v2:
> > >  * No change.
> > > ---
> > >  .../bindings/net/can/renesas,rcar-canfd.yaml  | 67
> > > +++++++++++++++++--
> > >  1 file changed, 62 insertions(+), 5 deletions(-)
> > >
> > > diff --git
> > > a/Documentation/devicetree/bindings/net/can/renesas,rcar-canfd.yaml
> > > b/Documentation/devicetree/bindings/net/can/renesas,rcar-canfd.yaml
> > > index f87f90f431e5..189d5303ad75 100644
> > > ---
> > > a/Documentation/devicetree/bindings/net/can/renesas,rcar-canfd.yaml
> > > +++ b/Documentation/devicetree/bindings/net/can/renesas,rcar-canfd.y
> > > +++ aml
> > > @@ -42,6 +42,8 @@ properties:
> > >                - renesas,r9a07g054-canfd    # RZ/V2L
> > >            - const: renesas,rzg2l-canfd     # RZ/G2L family
> > >
> > > +      - const: renesas,r9a09g047-canfd     # RZ/G3E
> > > +
> > >    reg:
> > >      maxItems: 1
> > >
> > > @@ -59,6 +61,19 @@ properties:
> > >            - description: CAN1 error interrupt
> > >            - description: CAN1 transmit interrupt
> > >            - description: CAN1 transmit/receive FIFO receive
> > > completion interrupt
> > > +          - description: CAN2 error interrupt
> > > +          - description: CAN2 transmit interrupt
> > > +          - description: CAN2 transmit/receive FIFO receive completion interrupt
> > > +          - description: CAN3 error interrupt
> > > +          - description: CAN3 transmit interrupt
> > > +          - description: CAN3 transmit/receive FIFO receive completion interrupt
> > > +          - description: CAN4 error interrupt
> > > +          - description: CAN4 transmit interrupt
> > > +          - description: CAN4 transmit/receive FIFO receive completion interrupt
> > > +          - description: CAN5 error interrupt
> > > +          - description: CAN5 transmit interrupt
> > > +          - description: CAN5 transmit/receive FIFO receive completion interrupt
> > > +        minItems: 8
> > >
> > >    interrupt-names:
> > >      oneOf:
> > > @@ -74,15 +89,33 @@ properties:
> > >            - const: ch1_err
> > >            - const: ch1_rec
> > >            - const: ch1_trx
> > > +          - const: ch2_err
> > > +          - const: ch2_rec
> > > +          - const: ch2_trx
> > > +          - const: ch3_err
> > > +          - const: ch3_rec
> > > +          - const: ch3_trx
> > > +          - const: ch4_err
> > > +          - const: ch4_rec
> > > +          - const: ch4_trx
> > > +          - const: ch5_err
> > > +          - const: ch5_rec
> > > +          - const: ch5_trx
> > > +        minItems: 8
> > >
> > >    clocks:
> > >      maxItems: 3
> > >
> > >    clock-names:
> > > -    items:
> > > -      - const: fck
> > > -      - const: canfd
> > > -      - const: can_clk
> > > +    oneOf:
> > > +      - items:
> > > +          - const: fck
> > > +          - const: canfd
> > > +          - const: can_clk
> > > +      - items:
> > > +          - const: fck
> > > +          - const: ram_clk
> > > +          - const: can_clk
> > >
> > >    power-domains:
> > >      maxItems: 1
> > > @@ -173,7 +206,9 @@ allOf:
> > >        properties:
> > >          compatible:
> > >            contains:
> > > -            const: renesas,rzg2l-canfd
> > > +            enum:
> > > +              - renesas,r9a09g047-canfd
> > > +              - renesas,rzg2l-canfd
> > >      then:
> > >        properties:
> > >          resets:
> > > @@ -187,6 +222,19 @@ allOf:
> > >        required:
> > >          - reset-names
> > >
> > > +  - if:
> > > +      properties:
> > > +        compatible:
> > > +          contains:
> > > +            const: renesas,r9a09g047-canfd
> > > +    then:
> > > +      properties:
> > > +        interrupts:
> > > +          maxItems: 20
> > > +
> > > +        interrupt-names:
> > > +          maxItems: 20
> >
> > Should these be minItems instead of maxItems? The list has 20 elements
> > at the moment (right?) so you're not adding any restriction here.
> 
> And the existing platforms need to have 'maxItems: 8'.

OK got.

platform 1: Here one of has min/max 2 interrupts. Platform 1 has 2 interrupts
        interrupts:
          minItems: 2
          maxItems: 2

Platform 2: Here one of Has min/max 8/20 interrupts and platform 2 has 8 interrupts
        interrupts:
          maxItems: 8

Platform 3: Here one of Has min/max 8/20 interrupts and platform 3 has 20 interrupts
        interrupts:
          minItems: 20

Cheers,
Biju

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2025-02-22  8:20 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-02-20 13:04 [PATCH v2 0/7] Add support for RZ/G3E CANFD Biju Das
2025-02-20 13:04 ` [PATCH v2 1/7] dt-bindings: can: renesas,rcar-canfd: Simplify the conditional schema Biju Das
2025-02-21 17:51   ` Conor Dooley
2025-02-20 13:04 ` [PATCH v2 2/7] dt-bindings: can: renesas,rcar-canfd: Document RZ/G3E support Biju Das
2025-02-21 17:53   ` Conor Dooley
2025-02-21 18:03     ` Biju Das
2025-02-21 23:18     ` Rob Herring
2025-02-22  8:20       ` Biju Das

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox