2024-03-07 11:44:25

by Prabhakar

[permalink] [raw]
Subject: [PATCH v2 0/2] dt-bindings: serial: renesas,scif: Validate 'interrupts' and 'interrupt-names'

From: Lad Prabhakar <[email protected]>

Hi All,

This patch series updates renesas,scif.yaml to validate the 'interrupts'
and 'interrupt-names' properties for every supported SoC.

v1- > v2
* Included RB tag for patch #1 from Geert and Krzysztof
* For patch #2 defined the properties in top-level block
* Used Gen specific callback strings instead of each SoC

Cheers,
Prabhakar

Lad Prabhakar (2):
dt-bindings: serial: renesas,scif: Move ref for serial.yaml at the end
dt-bindings: serial: renesas,scif: Validate 'interrupts' and
'interrupt-names'

.../bindings/serial/renesas,scif.yaml | 120 +++++++++++-------
1 file changed, 77 insertions(+), 43 deletions(-)

--
2.34.1



2024-03-07 11:44:36

by Prabhakar

[permalink] [raw]
Subject: [PATCH v2 1/2] dt-bindings: serial: renesas,scif: Move ref for serial.yaml at the end

From: Lad Prabhakar <[email protected]>

In preparation for adding more validation checks move the ref for
'serial.yaml' to the end and also move reset check in 'allOf' block.

Signed-off-by: Lad Prabhakar <[email protected]>
Reviewed-by: Geert Uytterhoeven <[email protected]>
Reviewed-by: Krzysztof Kozlowski <[email protected]>
---
v1->v2
* Included RB tags from Geert and Krzysztof
---
.../bindings/serial/renesas,scif.yaml | 30 +++++++++----------
1 file changed, 15 insertions(+), 15 deletions(-)

diff --git a/Documentation/devicetree/bindings/serial/renesas,scif.yaml b/Documentation/devicetree/bindings/serial/renesas,scif.yaml
index 4610a5bd580c..af72c3420453 100644
--- a/Documentation/devicetree/bindings/serial/renesas,scif.yaml
+++ b/Documentation/devicetree/bindings/serial/renesas,scif.yaml
@@ -9,9 +9,6 @@ title: Renesas Serial Communication Interface with FIFO (SCIF)
maintainers:
- Geert Uytterhoeven <[email protected]>

-allOf:
- - $ref: serial.yaml#
-
properties:
compatible:
oneOf:
@@ -160,18 +157,21 @@ required:
- clock-names
- power-domains

-if:
- properties:
- compatible:
- contains:
- enum:
- - renesas,rcar-gen2-scif
- - renesas,rcar-gen3-scif
- - renesas,rcar-gen4-scif
- - renesas,scif-r9a07g044
-then:
- required:
- - resets
+allOf:
+ - $ref: serial.yaml#
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - renesas,rcar-gen2-scif
+ - renesas,rcar-gen3-scif
+ - renesas,rcar-gen4-scif
+ - renesas,scif-r9a07g044
+ then:
+ required:
+ - resets

unevaluatedProperties: false

--
2.34.1


2024-03-07 11:56:49

by Prabhakar

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

From: Lad Prabhakar <[email protected]>

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 <[email protected]>
---
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(-)

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:
--
2.34.1


2024-03-07 13:24:22

by Geert Uytterhoeven

[permalink] [raw]
Subject: Re: [PATCH v2 2/2] dt-bindings: serial: renesas,scif: Validate 'interrupts' and 'interrupt-names'

On Thu, Mar 7, 2024 at 12:43 PM Prabhakar <[email protected]> wrote:
> From: Lad Prabhakar <[email protected]>
>
> 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 <[email protected]>
> ---
> 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 <[email protected]>

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68korg

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

2024-03-07 13:50:53

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v2 2/2] dt-bindings: serial: renesas,scif: Validate 'interrupts' and 'interrupt-names'

On 07/03/2024 12:42, Prabhakar wrote:
> From: Lad Prabhakar <[email protected]>
>
> 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 <[email protected]>
> ---
> 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


2024-03-08 10:20:38

by Prabhakar

[permalink] [raw]
Subject: Re: [PATCH v2 2/2] dt-bindings: serial: renesas,scif: Validate 'interrupts' and 'interrupt-names'

Hi Krzysztof,

Thank you for the review.

On Thu, Mar 7, 2024 at 1:50 PM Krzysztof Kozlowski
<[email protected]> wrote:
>
> On 07/03/2024 12:42, Prabhakar wrote:
> > From: Lad Prabhakar <[email protected]>
> >
> > 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 <[email protected]>
> > ---
> > 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
>

2024-03-08 16:35:39

by Krzysztof Kozlowski

[permalink] [raw]
Subject: Re: [PATCH v2 2/2] dt-bindings: serial: renesas,scif: Validate 'interrupts' and 'interrupt-names'

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
> <[email protected]> wrote:
>>
>> On 07/03/2024 12:42, Prabhakar wrote:
>>> From: Lad Prabhakar <[email protected]>
>>>
>>> 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 <[email protected]>
>>> ---
>>> 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