2024-03-06 23:11:55

by Prabhakar

[permalink] [raw]
Subject: [PATCH 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.

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 | 147 ++++++++++++------
1 file changed, 100 insertions(+), 47 deletions(-)

--
2.34.1



2024-03-06 23:12:40

by Prabhakar

[permalink] [raw]
Subject: [PATCH 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]>
---
.../bindings/serial/renesas,scif.yaml | 117 +++++++++++++-----
1 file changed, 85 insertions(+), 32 deletions(-)

diff --git a/Documentation/devicetree/bindings/serial/renesas,scif.yaml b/Documentation/devicetree/bindings/serial/renesas,scif.yaml
index af72c3420453..1a5f4568ae4f 100644
--- a/Documentation/devicetree/bindings/serial/renesas,scif.yaml
+++ b/Documentation/devicetree/bindings/serial/renesas,scif.yaml
@@ -82,38 +82,6 @@ properties:
reg:
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
-
- 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
-
clocks:
minItems: 1
maxItems: 4
@@ -173,6 +141,91 @@ allOf:
required:
- resets

+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - renesas,scif-r8a7742
+ - renesas,scif-r8a7743
+ - renesas,scif-r8a7744
+ - renesas,scif-r8a7745
+ - renesas,scif-r8a77470
+ - renesas,scif-r8a774a1
+ - renesas,scif-r8a774b1
+ - renesas,scif-r8a774c0
+ - renesas,scif-r8a774e1
+ - renesas,scif-r8a7778
+ - renesas,scif-r8a7779
+ - renesas,scif-r8a7790
+ - renesas,scif-r8a7791
+ - renesas,scif-r8a7792
+ - renesas,scif-r8a7793
+ - renesas,scif-r8a7794
+ - renesas,scif-r8a7795
+ - renesas,scif-r8a7796
+ - renesas,scif-r8a77961
+ - renesas,scif-r8a77965
+ - renesas,scif-r8a77970
+ - renesas,scif-r8a77980
+ - renesas,scif-r8a77990
+ - renesas,scif-r8a77995
+ - renesas,scif-r8a779a0
+ - renesas,scif-r8a779f0
+ - renesas,scif-r8a779g0
+ then:
+ properties:
+ interrupts:
+ items:
+ - description: A combined interrupt
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - renesas,scif-r7s72100
+ then:
+ properties:
+ interrupts:
+ items:
+ - description: Error interrupt
+ - description: Receive buffer full interrupt
+ - description: Transmit buffer empty interrupt
+ - description: Break interrupt
+ interrupt-names:
+ items:
+ - const: eri
+ - const: rxi
+ - const: txi
+ - const: bri
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - renesas,scif-r7s9210
+ - renesas,scif-r9a07g044
+ then:
+ properties:
+ interrupts:
+ 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
+ interrupt-names:
+ items:
+ - const: eri
+ - const: rxi
+ - const: txi
+ - const: bri
+ - const: dri
+ - const: tei
+
unevaluatedProperties: false

examples:
--
2.34.1


2024-03-06 23:22:56

by Prabhakar

[permalink] [raw]
Subject: [PATCH 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]>
---
.../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 08:45:13

by Geert Uytterhoeven

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

On Thu, Mar 7, 2024 at 12:11 AM Prabhakar <[email protected]> wrote:
> 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]>

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 08:59:12

by Geert Uytterhoeven

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

Hi Prabhakar,

On Thu, Mar 7, 2024 at 12:11 AM 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]>

Thanks for your patch!

> --- a/Documentation/devicetree/bindings/serial/renesas,scif.yaml
> +++ b/Documentation/devicetree/bindings/serial/renesas,scif.yaml
> @@ -82,38 +82,6 @@ properties:
> reg:
> 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

As the above three groups are increasing supersets, you can just use
a single "items" listing all 6 interrupts, and describe the first one
as "Error interrupt or single combined interrupt". After that, the
SoC-specific logic at the end just needs to specify the appropriate
minItems/maxItems.

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

Likewise, with "interrupt-names: false" below for the ones that don't
need it.

> -
> clocks:
> minItems: 1
> maxItems: 4
> @@ -173,6 +141,91 @@ allOf:
> required:
> - resets
>
> + - if:
> + properties:
> + compatible:
> + contains:
> + enum:
> + - renesas,scif-r8a7742
> + - renesas,scif-r8a7743
> + - renesas,scif-r8a7744
> + - renesas,scif-r8a7745
> + - renesas,scif-r8a77470
> + - renesas,scif-r8a774a1
> + - renesas,scif-r8a774b1
> + - renesas,scif-r8a774c0
> + - renesas,scif-r8a774e1
> + - renesas,scif-r8a7778
> + - renesas,scif-r8a7779
> + - renesas,scif-r8a7790
> + - renesas,scif-r8a7791
> + - renesas,scif-r8a7792
> + - renesas,scif-r8a7793
> + - renesas,scif-r8a7794
> + - renesas,scif-r8a7795
> + - renesas,scif-r8a7796
> + - renesas,scif-r8a77961
> + - renesas,scif-r8a77965
> + - renesas,scif-r8a77970
> + - renesas,scif-r8a77980
> + - renesas,scif-r8a77990
> + - renesas,scif-r8a77995
> + - renesas,scif-r8a779a0
> + - renesas,scif-r8a779f0
> + - renesas,scif-r8a779g0

Please simplify using family-specific names:
- renesas,rcar-gen1-scif
- renesas,rcar-gen2-scif
- renesas,rcar-gen3-scif
- renesas,rcar-gen4-scif

> + then:
> + properties:
> + interrupts:
> + items:
> + - description: A combined interrupt

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 09:51:24

by Krzysztof Kozlowski

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

On 07/03/2024 00:10, Prabhakar wrote:
> 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]>
> ---
> .../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#
> +

Yeah, that's why usually we ask to put '$ref' and 'if' in allOf: block -
saves you one syntax reindent which will confuse git blame.

Reviewed-by: Krzysztof Kozlowski <[email protected]>

Best regards,
Krzysztof


2024-03-07 09:53:54

by Krzysztof Kozlowski

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

On 07/03/2024 00:10, Prabhakar 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]>
> ---
> .../bindings/serial/renesas,scif.yaml | 117 +++++++++++++-----
> 1 file changed, 85 insertions(+), 32 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/serial/renesas,scif.yaml b/Documentation/devicetree/bindings/serial/renesas,scif.yaml
> index af72c3420453..1a5f4568ae4f 100644
> --- a/Documentation/devicetree/bindings/serial/renesas,scif.yaml
> +++ b/Documentation/devicetree/bindings/serial/renesas,scif.yaml
> @@ -82,38 +82,6 @@ properties:
> reg:
> maxItems: 1
>
> - interrupts:

Properties should be defined in top-level block with widest constraints
(min/maxItems). Your if:then: narrows them per each variant.

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

This probably could be:

minItems: 4
items:
- const: eri
- const: rxi
- const: txi
- const: bri
- const: dri
- const: tei

> -
> clocks:
> minItems: 1
> maxItems: 4
> @@ -173,6 +141,91 @@ allOf:
> required:
> - resets
>
> + - if:
> + properties:
> + compatible:
> + contains:
> + enum:
> + - renesas,scif-r8a7742
> + - renesas,scif-r8a7743
> + - renesas,scif-r8a7744
> + - renesas,scif-r8a7745
> + - renesas,scif-r8a77470
> + - renesas,scif-r8a774a1
> + - renesas,scif-r8a774b1
> + - renesas,scif-r8a774c0
> + - renesas,scif-r8a774e1
> + - renesas,scif-r8a7778
> + - renesas,scif-r8a7779
> + - renesas,scif-r8a7790
> + - renesas,scif-r8a7791
> + - renesas,scif-r8a7792
> + - renesas,scif-r8a7793
> + - renesas,scif-r8a7794
> + - renesas,scif-r8a7795
> + - renesas,scif-r8a7796
> + - renesas,scif-r8a77961
> + - renesas,scif-r8a77965
> + - renesas,scif-r8a77970
> + - renesas,scif-r8a77980
> + - renesas,scif-r8a77990
> + - renesas,scif-r8a77995
> + - renesas,scif-r8a779a0
> + - renesas,scif-r8a779f0
> + - renesas,scif-r8a779g0

There is no way compatibility strings express it?


Best regards,
Krzysztof


2024-03-07 10:08:11

by Prabhakar

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

Hi Geert,

Thank you for the review.

On Thu, Mar 7, 2024 at 8:58 AM Geert Uytterhoeven <geert@linux-m68korg> wrote:
>
> Hi Prabhakar,
>
> On Thu, Mar 7, 2024 at 12:11 AM Prabhakar <prabhakar.csengg@gmailcom> 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]>
>
> Thanks for your patch!
>
> > --- a/Documentation/devicetree/bindings/serial/renesas,scif.yaml
> > +++ b/Documentation/devicetree/bindings/serial/renesas,scif.yaml
> > @@ -82,38 +82,6 @@ properties:
> > reg:
> > 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
>
> As the above three groups are increasing supersets, you can just use
> a single "items" listing all 6 interrupts, and describe the first one
> as "Error interrupt or single combined interrupt". After that, the
> SoC-specific logic at the end just needs to specify the appropriate
> minItems/maxItems.
>
Agreed, I will do that.

> > -
> > - 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
>
> Likewise, with "interrupt-names: false" below for the ones that don't
> need it.
>
Agreed.

> > -
> > clocks:
> > minItems: 1
> > maxItems: 4
> > @@ -173,6 +141,91 @@ allOf:
> > required:
> > - resets
> >
> > + - if:
> > + properties:
> > + compatible:
> > + contains:
> > + enum:
> > + - renesas,scif-r8a7742
> > + - renesas,scif-r8a7743
> > + - renesas,scif-r8a7744
> > + - renesas,scif-r8a7745
> > + - renesas,scif-r8a77470
> > + - renesas,scif-r8a774a1
> > + - renesas,scif-r8a774b1
> > + - renesas,scif-r8a774c0
> > + - renesas,scif-r8a774e1
> > + - renesas,scif-r8a7778
> > + - renesas,scif-r8a7779
> > + - renesas,scif-r8a7790
> > + - renesas,scif-r8a7791
> > + - renesas,scif-r8a7792
> > + - renesas,scif-r8a7793
> > + - renesas,scif-r8a7794
> > + - renesas,scif-r8a7795
> > + - renesas,scif-r8a7796
> > + - renesas,scif-r8a77961
> > + - renesas,scif-r8a77965
> > + - renesas,scif-r8a77970
> > + - renesas,scif-r8a77980
> > + - renesas,scif-r8a77990
> > + - renesas,scif-r8a77995
> > + - renesas,scif-r8a779a0
> > + - renesas,scif-r8a779f0
> > + - renesas,scif-r8a779g0
>
> Please simplify using family-specific names:
> - renesas,rcar-gen1-scif
> - renesas,rcar-gen2-scif
> - renesas,rcar-gen3-scif
> - renesas,rcar-gen4-scif
>
Yep, that makes sense.

Cheers,
Prabhakar

2024-03-07 10:09:06

by Prabhakar

[permalink] [raw]
Subject: Re: [PATCH 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 9:53 AM Krzysztof Kozlowski
<[email protected]> wrote:
>
> On 07/03/2024 00:10, Prabhakar 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]>
> > ---
> > .../bindings/serial/renesas,scif.yaml | 117 +++++++++++++-----
> > 1 file changed, 85 insertions(+), 32 deletions(-)
> >
> > diff --git a/Documentation/devicetree/bindings/serial/renesas,scif.yaml b/Documentation/devicetree/bindings/serial/renesas,scif.yaml
> > index af72c3420453..1a5f4568ae4f 100644
> > --- a/Documentation/devicetree/bindings/serial/renesas,scif.yaml
> > +++ b/Documentation/devicetree/bindings/serial/renesas,scif.yaml
> > @@ -82,38 +82,6 @@ properties:
> > reg:
> > maxItems: 1
> >
> > - interrupts:
>
> Properties should be defined in top-level block with widest constraints
> (min/maxItems). Your if:then: narrows them per each variant.
>
Agreed, I will fix that.

> > - 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
> > -
> > - 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
>
> This probably could be:
>
> minItems: 4
> items:
> - const: eri
> - const: rxi
> - const: txi
> - const: bri
> - const: dri
> - const: tei
>
> > -
> > clocks:
> > minItems: 1
> > maxItems: 4
> > @@ -173,6 +141,91 @@ allOf:
> > required:
> > - resets
> >
> > + - if:
> > + properties:
> > + compatible:
> > + contains:
> > + enum:
> > + - renesas,scif-r8a7742
> > + - renesas,scif-r8a7743
> > + - renesas,scif-r8a7744
> > + - renesas,scif-r8a7745
> > + - renesas,scif-r8a77470
> > + - renesas,scif-r8a774a1
> > + - renesas,scif-r8a774b1
> > + - renesas,scif-r8a774c0
> > + - renesas,scif-r8a774e1
> > + - renesas,scif-r8a7778
> > + - renesas,scif-r8a7779
> > + - renesas,scif-r8a7790
> > + - renesas,scif-r8a7791
> > + - renesas,scif-r8a7792
> > + - renesas,scif-r8a7793
> > + - renesas,scif-r8a7794
> > + - renesas,scif-r8a7795
> > + - renesas,scif-r8a7796
> > + - renesas,scif-r8a77961
> > + - renesas,scif-r8a77965
> > + - renesas,scif-r8a77970
> > + - renesas,scif-r8a77980
> > + - renesas,scif-r8a77990
> > + - renesas,scif-r8a77995
> > + - renesas,scif-r8a779a0
> > + - renesas,scif-r8a779f0
> > + - renesas,scif-r8a779g0
>
> There is no way compatibility strings express it?
>
I'll cut it short to below as suggested by Geert,

- renesas,rcar-gen1-scif
- renesas,rcar-gen2-scif
- renesas,rcar-gen3-scif
- renesas,rcar-gen4-scif

Cheers,
Prabhakar