diff mbox series

[v2,2/2] dt-bindings: serial: renesas,scif: Validate 'interrupts' and 'interrupt-names'

Message ID 20240307114217.34784-3-prabhakar.mahadev-lad.rj@bp.renesas.com
State New
Headers show
Series dt-bindings: serial: renesas,scif: Validate 'interrupts' and 'interrupt-names' | expand

Commit Message

Lad, Prabhakar March 7, 2024, 11:42 a.m. UTC
From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>

This commit adds support to validate the 'interrupts' and 'interrupt-names'
properties for every supported SoC. This ensures proper handling and
configuration of interrupt-related properties across supported platforms.

Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
---
v1->v2
* Defined the properties in top-level block instead of moving into
  if/else block for each SoC.
* Used Gen specific callback strings instead of each SoC variant
---
 .../bindings/serial/renesas,scif.yaml         | 90 +++++++++++++------
 1 file changed, 62 insertions(+), 28 deletions(-)

Comments

Geert Uytterhoeven March 7, 2024, 1:19 p.m. UTC | #1
On Thu, Mar 7, 2024 at 12:43 PM Prabhakar <prabhakar.csengg@gmail.com> wrote:
> From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
>
> This commit adds support to validate the 'interrupts' and 'interrupt-names'
> properties for every supported SoC. This ensures proper handling and
> configuration of interrupt-related properties across supported platforms.
>
> Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> ---
> v1->v2
> * Defined the properties in top-level block instead of moving into
>   if/else block for each SoC.
> * Used Gen specific callback strings instead of each SoC variant

Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>

Gr{oetje,eeting}s,

                        Geert
Krzysztof Kozlowski March 7, 2024, 1:50 p.m. UTC | #2
On 07/03/2024 12:42, Prabhakar wrote:
> From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> 
> This commit adds support to validate the 'interrupts' and 'interrupt-names'

Please do not use "This commit/patch/change", but imperative mood. See
longer explanation here:
https://elixir.bootlin.com/linux/v5.17.1/source/Documentation/process/submitting-patches.rst#L95

> properties for every supported SoC. This ensures proper handling and
> configuration of interrupt-related properties across supported platforms.
> 
> Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> ---
> v1->v2
> * Defined the properties in top-level block instead of moving into
>   if/else block for each SoC.
> * Used Gen specific callback strings instead of each SoC variant

You are sending quite a lot of patchsets touching the same, all in one
day. This just adds to the confusion.

> ---
>  .../bindings/serial/renesas,scif.yaml         | 90 +++++++++++++------
>  1 file changed, 62 insertions(+), 28 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/serial/renesas,scif.yaml b/Documentation/devicetree/bindings/serial/renesas,scif.yaml
> index af72c3420453..6ba6b6d52208 100644
> --- a/Documentation/devicetree/bindings/serial/renesas,scif.yaml
> +++ b/Documentation/devicetree/bindings/serial/renesas,scif.yaml
> @@ -83,36 +83,24 @@ properties:
>      maxItems: 1
>  
>    interrupts:
> -    oneOf:
> -      - items:
> -          - description: A combined interrupt
> -      - items:
> -          - description: Error interrupt
> -          - description: Receive buffer full interrupt
> -          - description: Transmit buffer empty interrupt
> -          - description: Break interrupt
> -      - items:
> -          - description: Error interrupt
> -          - description: Receive buffer full interrupt
> -          - description: Transmit buffer empty interrupt
> -          - description: Break interrupt
> -          - description: Data Ready interrupt
> -          - description: Transmit End interrupt
> +    minItems: 1
> +    items:
> +      - description: Error interrupt or single combined interrupt

That's not correct, your first interrupt can be combined.

> +      - description: Receive buffer full interrupt
> +      - description: Transmit buffer empty interrupt
> +      - description: Break interrupt
> +      - description: Data Ready interrupt
> +      - description: Transmit End interrupt
>  
>    interrupt-names:
> -    oneOf:
> -      - items:
> -          - const: eri
> -          - const: rxi
> -          - const: txi
> -          - const: bri
> -      - items:
> -          - const: eri
> -          - const: rxi
> -          - const: txi
> -          - const: bri
> -          - const: dri
> -          - const: tei
> +    minItems: 4
> +    items:
> +      - const: eri
> +      - const: rxi
> +      - const: txi
> +      - const: bri
> +      - const: dri
> +      - const: tei
>  
>    clocks:
>      minItems: 1
> @@ -173,6 +161,52 @@ allOf:
>        required:
>          - resets
>  
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            enum:
> +              - renesas,rcar-gen1-scif
> +              - renesas,rcar-gen2-scif
> +              - renesas,rcar-gen3-scif
> +              - renesas,rcar-gen4-scif
> +    then:
> +      properties:
> +        interrupts:
> +          maxItems: 1

You need to list the items here.

> +
> +        interrupt-names: false
> +
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            enum:
> +              - renesas,scif-r7s72100
> +    then:
> +      properties:
> +        interrupts:
> +          minItems: 4
> +          maxItems: 4

List the items

> +
> +        interrupt-names:
> +          maxItems: 4
> +
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            enum:
> +              - renesas,scif-r7s9210
> +              - renesas,scif-r9a07g044
> +    then:
> +      properties:
> +        interrupts:
> +          minItems: 6

List the items

> +
> +        interrupt-names:
> +          minItems: 6
> +
>  unevaluatedProperties: false
>  
>  examples:

Best regards,
Krzysztof
Lad, Prabhakar March 8, 2024, 10:18 a.m. UTC | #3
Hi Krzysztof,

Thank you for the review.

On Thu, Mar 7, 2024 at 1:50 PM Krzysztof Kozlowski
<krzysztof.kozlowski@linaro.org> wrote:
>
> On 07/03/2024 12:42, Prabhakar wrote:
> > From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> >
> > This commit adds support to validate the 'interrupts' and 'interrupt-names'
>
> Please do not use "This commit/patch/change", but imperative mood. See
> longer explanation here:
> https://elixir.bootlin.com/linux/v5.17.1/source/Documentation/process/submitting-patches.rst#L95
>
Sure, I will update the description.

> > properties for every supported SoC. This ensures proper handling and
> > configuration of interrupt-related properties across supported platforms.
> >
> > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> > ---
> > v1->v2
> > * Defined the properties in top-level block instead of moving into
> >   if/else block for each SoC.
> > * Used Gen specific callback strings instead of each SoC variant
>
> You are sending quite a lot of patchsets touching the same, all in one
> day. This just adds to the confusion.
>
Ok, I'll make it as a single series.

> > ---
> >  .../bindings/serial/renesas,scif.yaml         | 90 +++++++++++++------
> >  1 file changed, 62 insertions(+), 28 deletions(-)
> >
> > diff --git a/Documentation/devicetree/bindings/serial/renesas,scif.yaml b/Documentation/devicetree/bindings/serial/renesas,scif.yaml
> > index af72c3420453..6ba6b6d52208 100644
> > --- a/Documentation/devicetree/bindings/serial/renesas,scif.yaml
> > +++ b/Documentation/devicetree/bindings/serial/renesas,scif.yaml
> > @@ -83,36 +83,24 @@ properties:
> >      maxItems: 1
> >
> >    interrupts:
> > -    oneOf:
> > -      - items:
> > -          - description: A combined interrupt
> > -      - items:
> > -          - description: Error interrupt
> > -          - description: Receive buffer full interrupt
> > -          - description: Transmit buffer empty interrupt
> > -          - description: Break interrupt
> > -      - items:
> > -          - description: Error interrupt
> > -          - description: Receive buffer full interrupt
> > -          - description: Transmit buffer empty interrupt
> > -          - description: Break interrupt
> > -          - description: Data Ready interrupt
> > -          - description: Transmit End interrupt
> > +    minItems: 1
> > +    items:
> > +      - description: Error interrupt or single combined interrupt
>
> That's not correct, your first interrupt can be combined.
>
In here we are combining and making a single list hence the
description is updated as "Error interrupt or single combined
interrupt". so that we dont have to list the items in the below
if/else checks. Also when the interrupts are combined we dont specify
interrupt-names hence in the below check we  set "interrupt-names:
false"

> > +      - description: Receive buffer full interrupt
> > +      - description: Transmit buffer empty interrupt
> > +      - description: Break interrupt
> > +      - description: Data Ready interrupt
> > +      - description: Transmit End interrupt
> >
> >    interrupt-names:
> > -    oneOf:
> > -      - items:
> > -          - const: eri
> > -          - const: rxi
> > -          - const: txi
> > -          - const: bri
> > -      - items:
> > -          - const: eri
> > -          - const: rxi
> > -          - const: txi
> > -          - const: bri
> > -          - const: dri
> > -          - const: tei
> > +    minItems: 4
> > +    items:
> > +      - const: eri
> > +      - const: rxi
> > +      - const: txi
> > +      - const: bri
> > +      - const: dri
> > +      - const: tei
> >
> >    clocks:
> >      minItems: 1
> > @@ -173,6 +161,52 @@ allOf:
> >        required:
> >          - resets
> >
> > +  - if:
> > +      properties:
> > +        compatible:
> > +          contains:
> > +            enum:
> > +              - renesas,rcar-gen1-scif
> > +              - renesas,rcar-gen2-scif
> > +              - renesas,rcar-gen3-scif
> > +              - renesas,rcar-gen4-scif
> > +    then:
> > +      properties:
> > +        interrupts:
> > +          maxItems: 1
>
> You need to list the items here.
>
Shouldn't the already squashed interrupts list still be valid here?
Why do we need to list the item here (and below)? If we list items for
interrupts should we be doing the same for interrupt-names too?

Cheers,
Prabhakar

> > +
> > +        interrupt-names: false
> > +
> > +  - if:
> > +      properties:
> > +        compatible:
> > +          contains:
> > +            enum:
> > +              - renesas,scif-r7s72100
> > +    then:
> > +      properties:
> > +        interrupts:
> > +          minItems: 4
> > +          maxItems: 4
>
> List the items
>
> > +
> > +        interrupt-names:
> > +          maxItems: 4
> > +
> > +  - if:
> > +      properties:
> > +        compatible:
> > +          contains:
> > +            enum:
> > +              - renesas,scif-r7s9210
> > +              - renesas,scif-r9a07g044
> > +    then:
> > +      properties:
> > +        interrupts:
> > +          minItems: 6
>
> List the items
>
> > +
> > +        interrupt-names:
> > +          minItems: 6
> > +
> >  unevaluatedProperties: false
> >
> >  examples:
>
> Best regards,
> Krzysztof
>
Krzysztof Kozlowski March 8, 2024, 4:35 p.m. UTC | #4
On 08/03/2024 11:18, Lad, Prabhakar wrote:
> Hi Krzysztof,
> 
> Thank you for the review.
> 
> On Thu, Mar 7, 2024 at 1:50 PM Krzysztof Kozlowski
> <krzysztof.kozlowski@linaro.org> wrote:
>>
>> On 07/03/2024 12:42, Prabhakar wrote:
>>> From: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
>>>
>>> This commit adds support to validate the 'interrupts' and 'interrupt-names'
>>
>> Please do not use "This commit/patch/change", but imperative mood. See
>> longer explanation here:
>> https://elixir.bootlin.com/linux/v5.17.1/source/Documentation/process/submitting-patches.rst#L95
>>
> Sure, I will update the description.
> 
>>> properties for every supported SoC. This ensures proper handling and
>>> configuration of interrupt-related properties across supported platforms.
>>>
>>> Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
>>> ---
>>> v1->v2
>>> * Defined the properties in top-level block instead of moving into
>>>   if/else block for each SoC.
>>> * Used Gen specific callback strings instead of each SoC variant
>>
>> You are sending quite a lot of patchsets touching the same, all in one
>> day. This just adds to the confusion.
>>
> Ok, I'll make it as a single series.
> 
>>> ---
>>>  .../bindings/serial/renesas,scif.yaml         | 90 +++++++++++++------
>>>  1 file changed, 62 insertions(+), 28 deletions(-)
>>>
>>> diff --git a/Documentation/devicetree/bindings/serial/renesas,scif.yaml b/Documentation/devicetree/bindings/serial/renesas,scif.yaml
>>> index af72c3420453..6ba6b6d52208 100644
>>> --- a/Documentation/devicetree/bindings/serial/renesas,scif.yaml
>>> +++ b/Documentation/devicetree/bindings/serial/renesas,scif.yaml
>>> @@ -83,36 +83,24 @@ properties:
>>>      maxItems: 1
>>>
>>>    interrupts:
>>> -    oneOf:
>>> -      - items:
>>> -          - description: A combined interrupt
>>> -      - items:
>>> -          - description: Error interrupt
>>> -          - description: Receive buffer full interrupt
>>> -          - description: Transmit buffer empty interrupt
>>> -          - description: Break interrupt
>>> -      - items:
>>> -          - description: Error interrupt
>>> -          - description: Receive buffer full interrupt
>>> -          - description: Transmit buffer empty interrupt
>>> -          - description: Break interrupt
>>> -          - description: Data Ready interrupt
>>> -          - description: Transmit End interrupt
>>> +    minItems: 1
>>> +    items:
>>> +      - description: Error interrupt or single combined interrupt
>>
>> That's not correct, your first interrupt can be combined.
>>
> In here we are combining and making a single list hence the
> description is updated as "Error interrupt or single combined
> interrupt". so that we dont have to list the items in the below
> if/else checks. Also when the interrupts are combined we dont specify
> interrupt-names hence in the below check we  set "interrupt-names:
> false"

I know what you did and my comment stands.

Best regards,
Krzysztof
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/serial/renesas,scif.yaml b/Documentation/devicetree/bindings/serial/renesas,scif.yaml
index af72c3420453..6ba6b6d52208 100644
--- a/Documentation/devicetree/bindings/serial/renesas,scif.yaml
+++ b/Documentation/devicetree/bindings/serial/renesas,scif.yaml
@@ -83,36 +83,24 @@  properties:
     maxItems: 1
 
   interrupts:
-    oneOf:
-      - items:
-          - description: A combined interrupt
-      - items:
-          - description: Error interrupt
-          - description: Receive buffer full interrupt
-          - description: Transmit buffer empty interrupt
-          - description: Break interrupt
-      - items:
-          - description: Error interrupt
-          - description: Receive buffer full interrupt
-          - description: Transmit buffer empty interrupt
-          - description: Break interrupt
-          - description: Data Ready interrupt
-          - description: Transmit End interrupt
+    minItems: 1
+    items:
+      - description: Error interrupt or single combined interrupt
+      - description: Receive buffer full interrupt
+      - description: Transmit buffer empty interrupt
+      - description: Break interrupt
+      - description: Data Ready interrupt
+      - description: Transmit End interrupt
 
   interrupt-names:
-    oneOf:
-      - items:
-          - const: eri
-          - const: rxi
-          - const: txi
-          - const: bri
-      - items:
-          - const: eri
-          - const: rxi
-          - const: txi
-          - const: bri
-          - const: dri
-          - const: tei
+    minItems: 4
+    items:
+      - const: eri
+      - const: rxi
+      - const: txi
+      - const: bri
+      - const: dri
+      - const: tei
 
   clocks:
     minItems: 1
@@ -173,6 +161,52 @@  allOf:
       required:
         - resets
 
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - renesas,rcar-gen1-scif
+              - renesas,rcar-gen2-scif
+              - renesas,rcar-gen3-scif
+              - renesas,rcar-gen4-scif
+    then:
+      properties:
+        interrupts:
+          maxItems: 1
+
+        interrupt-names: false
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - renesas,scif-r7s72100
+    then:
+      properties:
+        interrupts:
+          minItems: 4
+          maxItems: 4
+
+        interrupt-names:
+          maxItems: 4
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            enum:
+              - renesas,scif-r7s9210
+              - renesas,scif-r9a07g044
+    then:
+      properties:
+        interrupts:
+          minItems: 6
+
+        interrupt-names:
+          minItems: 6
+
 unevaluatedProperties: false
 
 examples: