diff mbox series

[v8,1/5] media: dt-bindings: media: renesas,vsp1: Document RZ/G2L VSPD bindings

Message ID 20220419181757.63346-2-biju.das.jz@bp.renesas.com (mailing list archive)
State New, archived
Headers show
Series Add support for RZ/G2L VSPD | expand

Commit Message

Biju Das April 19, 2022, 6:17 p.m. UTC
Document VSPD found in RZ/G2L SoC. VSPD block is similar to VSP2-D
found on R-Car SoC's, but it does not have a version register and
it has 3 clocks compared to 1 clock on vsp1 and vsp2.

This patch introduces a new compatible 'renesas,r9a07g044-vsp2' to
handle these differences.

Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
v7->v8:
 * Added Clock-names to false for Non RZ/G2L SoC's
 * Replaced compatble 'renesas,rzg2l-vsp2'->'renesas,r9a07g044-vsp2'
 * Removed RZ/V2L SoC, will be added later after testing it.
 * Added Rb tag from Laurent.
v6->v7:
 * No change
v5->v6:
 * Removed LCDC reference clock description
 * Changed the clock name from du.0->aclk
v4->v5:
 * No change
v3->v4:
 * No change
v2->v3:
 * Added Rb tag from Krzysztof.
v1->v2:
 * Changed compatible from vsp2-rzg2l->rzg2l-vsp2
RFC->v1:
 * Updated commit description
 * Changed compatible from vsp2-r9a07g044->vsp2-rzg2l
 * Defined the clocks
 * Clock max Items is based on SoC Compatible string
RFC:
 * https://patchwork.kernel.org/project/linux-renesas-soc/patch/20220112174612.10773-20-biju.das.jz@bp.renesas.com/
---
 .../bindings/media/renesas,vsp1.yaml          | 53 ++++++++++++++-----
 1 file changed, 40 insertions(+), 13 deletions(-)

Comments

Geert Uytterhoeven April 20, 2022, 10:20 a.m. UTC | #1
Hi Biju,

On Tue, Apr 19, 2022 at 8:18 PM Biju Das <biju.das.jz@bp.renesas.com> wrote:
> Document VSPD found in RZ/G2L SoC. VSPD block is similar to VSP2-D
> found on R-Car SoC's, but it does not have a version register and
> it has 3 clocks compared to 1 clock on vsp1 and vsp2.
>
> This patch introduces a new compatible 'renesas,r9a07g044-vsp2' to
> handle these differences.
>
> Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> ---
> v7->v8:

Thanks for the update!

>  * Added Clock-names to false for Non RZ/G2L SoC's
>  * Replaced compatble 'renesas,rzg2l-vsp2'->'renesas,r9a07g044-vsp2'

Don't you want to keep "renesas,rzg2l-vsp2" as a fallback...

> --- a/Documentation/devicetree/bindings/media/renesas,vsp1.yaml
> +++ b/Documentation/devicetree/bindings/media/renesas,vsp1.yaml
> @@ -17,6 +17,7 @@ description:
>  properties:
>    compatible:
>      enum:
> +      - renesas,r9a07g044-vsp2 # RZ/G2L
>        - renesas,vsp1 # R-Car Gen2 and RZ/G1
>        - renesas,vsp2 # R-Car Gen3 and RZ/G2
>

> @@ -50,17 +51,43 @@ required:
>
>  additionalProperties: false
>
> -if:
> -  properties:
> -    compatible:
> -      items:
> -        - const: renesas,vsp1
> -then:
> -  properties:
> -    renesas,fcp: false
> -else:
> -  required:
> -    - renesas,fcp
> +allOf:
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: renesas,vsp1
> +    then:
> +      properties:
> +        renesas,fcp: false
> +    else:
> +      required:
> +        - renesas,fcp
> +
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: renesas,r9a07g044-vsp2

... so you can check for  "renesas,rzg2l-vsp2" here (and in the driver),
and don't have to update this check (and the driver) when adding support
for RZ/V2L later?

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

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
Biju Das April 20, 2022, 10:52 a.m. UTC | #2
Hi Geert,

Thanks for the feedback.

> Subject: Re: [PATCH v8 1/5] media: dt-bindings: media: renesas,vsp1:
> Document RZ/G2L VSPD bindings
> 
> Hi Biju,
> 
> On Tue, Apr 19, 2022 at 8:18 PM Biju Das <biju.das.jz@bp.renesas.com>
> wrote:
> > Document VSPD found in RZ/G2L SoC. VSPD block is similar to VSP2-D
> > found on R-Car SoC's, but it does not have a version register and it
> > has 3 clocks compared to 1 clock on vsp1 and vsp2.
> >
> > This patch introduces a new compatible 'renesas,r9a07g044-vsp2' to
> > handle these differences.
> >
> > Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> > Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> > Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
> > Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> > ---
> > v7->v8:
> 
> Thanks for the update!
> 
> >  * Added Clock-names to false for Non RZ/G2L SoC's
> >  * Replaced compatble 'renesas,rzg2l-vsp2'->'renesas,r9a07g044-vsp2'
> 
> Don't you want to keep "renesas,rzg2l-vsp2" as a fallback...

As we have .soc field in info structure. I am Planning to add separate SW SoC version for RZ/V2L, as 0x81.

Model version for RZ/G2L alike SoC's will be same, but SoC version will be different for RZ/G2L, RZ/V2L and RZ/G2UL.

> 
> > --- a/Documentation/devicetree/bindings/media/renesas,vsp1.yaml
> > +++ b/Documentation/devicetree/bindings/media/renesas,vsp1.yaml
> > @@ -17,6 +17,7 @@ description:
> >  properties:
> >    compatible:
> >      enum:
> > +      - renesas,r9a07g044-vsp2 # RZ/G2L
> >        - renesas,vsp1 # R-Car Gen2 and RZ/G1
> >        - renesas,vsp2 # R-Car Gen3 and RZ/G2
> >
> 
> > @@ -50,17 +51,43 @@ required:
> >
> >  additionalProperties: false
> >
> > -if:
> > -  properties:
> > -    compatible:
> > -      items:
> > -        - const: renesas,vsp1
> > -then:
> > -  properties:
> > -    renesas,fcp: false
> > -else:
> > -  required:
> > -    - renesas,fcp
> > +allOf:
> > +  - if:
> > +      properties:
> > +        compatible:
> > +          contains:
> > +            const: renesas,vsp1
> > +    then:
> > +      properties:
> > +        renesas,fcp: false
> > +    else:
> > +      required:
> > +        - renesas,fcp
> > +
> > +  - if:
> > +      properties:
> > +        compatible:
> > +          contains:
> > +            const: renesas,r9a07g044-vsp2
> 
> ... so you can check for  "renesas,rzg2l-vsp2" here (and in the driver),
> and don't have to update this check (and the driver) when adding support
> for RZ/V2L later?

As we introduced .soc field in device_info and plan to add separate S/W SoC version for V2L,
fallback is not relevant anymore.

Kieran/Geert/Laurent, Please correct me, if my understanding is wrong?


Regards,
Biju
Kieran Bingham April 20, 2022, 3:32 p.m. UTC | #3
Quoting Biju Das (2022-04-20 11:52:17)
> Hi Geert,
> 
> Thanks for the feedback.
> 
> > Subject: Re: [PATCH v8 1/5] media: dt-bindings: media: renesas,vsp1:
> > Document RZ/G2L VSPD bindings
> > 
> > Hi Biju,
> > 
> > On Tue, Apr 19, 2022 at 8:18 PM Biju Das <biju.das.jz@bp.renesas.com>
> > wrote:
> > > Document VSPD found in RZ/G2L SoC. VSPD block is similar to VSP2-D
> > > found on R-Car SoC's, but it does not have a version register and it
> > > has 3 clocks compared to 1 clock on vsp1 and vsp2.
> > >
> > > This patch introduces a new compatible 'renesas,r9a07g044-vsp2' to
> > > handle these differences.
> > >
> > > Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> > > Reviewed-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
> > > Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
> > > Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> > > ---
> > > v7->v8:
> > 
> > Thanks for the update!
> > 
> > >  * Added Clock-names to false for Non RZ/G2L SoC's
> > >  * Replaced compatble 'renesas,rzg2l-vsp2'->'renesas,r9a07g044-vsp2'
> > 
> > Don't you want to keep "renesas,rzg2l-vsp2" as a fallback...
> 
> As we have .soc field in info structure. I am Planning to add separate SW SoC version for RZ/V2L, as 0x81.
> 
> Model version for RZ/G2L alike SoC's will be same, but SoC version will be different for RZ/G2L, RZ/V2L and RZ/G2UL.
> 
> > 
> > > --- a/Documentation/devicetree/bindings/media/renesas,vsp1.yaml
> > > +++ b/Documentation/devicetree/bindings/media/renesas,vsp1.yaml
> > > @@ -17,6 +17,7 @@ description:
> > >  properties:
> > >    compatible:
> > >      enum:
> > > +      - renesas,r9a07g044-vsp2 # RZ/G2L
> > >        - renesas,vsp1 # R-Car Gen2 and RZ/G1
> > >        - renesas,vsp2 # R-Car Gen3 and RZ/G2
> > >
> > 
> > > @@ -50,17 +51,43 @@ required:
> > >
> > >  additionalProperties: false
> > >
> > > -if:
> > > -  properties:
> > > -    compatible:
> > > -      items:
> > > -        - const: renesas,vsp1
> > > -then:
> > > -  properties:
> > > -    renesas,fcp: false
> > > -else:
> > > -  required:
> > > -    - renesas,fcp
> > > +allOf:
> > > +  - if:
> > > +      properties:
> > > +        compatible:
> > > +          contains:
> > > +            const: renesas,vsp1
> > > +    then:
> > > +      properties:
> > > +        renesas,fcp: false
> > > +    else:
> > > +      required:
> > > +        - renesas,fcp
> > > +
> > > +  - if:
> > > +      properties:
> > > +        compatible:
> > > +          contains:
> > > +            const: renesas,r9a07g044-vsp2
> > 
> > ... so you can check for  "renesas,rzg2l-vsp2" here (and in the driver),
> > and don't have to update this check (and the driver) when adding support
> > for RZ/V2L later?
> 
> As we introduced .soc field in device_info and plan to add separate S/W SoC version for V2L,
> fallback is not relevant anymore.
> 
> Kieran/Geert/Laurent, Please correct me, if my understanding is wrong?

I think so, With a version register we can detect at runtime what
hardware we're on - and thus the generic comaptible match is
appropriate. But on these targets - if we can't detect the hardware I
think there's no generic option and it needs to be explicit in the DT.

--
Kieran

> Regards,
> Biju
>
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/media/renesas,vsp1.yaml b/Documentation/devicetree/bindings/media/renesas,vsp1.yaml
index 990e9c1dbc43..7a8f32473852 100644
--- a/Documentation/devicetree/bindings/media/renesas,vsp1.yaml
+++ b/Documentation/devicetree/bindings/media/renesas,vsp1.yaml
@@ -17,6 +17,7 @@  description:
 properties:
   compatible:
     enum:
+      - renesas,r9a07g044-vsp2 # RZ/G2L
       - renesas,vsp1 # R-Car Gen2 and RZ/G1
       - renesas,vsp2 # R-Car Gen3 and RZ/G2
 
@@ -26,8 +27,8 @@  properties:
   interrupts:
     maxItems: 1
 
-  clocks:
-    maxItems: 1
+  clocks: true
+  clock-names: true
 
   power-domains:
     maxItems: 1
@@ -50,17 +51,43 @@  required:
 
 additionalProperties: false
 
-if:
-  properties:
-    compatible:
-      items:
-        - const: renesas,vsp1
-then:
-  properties:
-    renesas,fcp: false
-else:
-  required:
-    - renesas,fcp
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: renesas,vsp1
+    then:
+      properties:
+        renesas,fcp: false
+    else:
+      required:
+        - renesas,fcp
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: renesas,r9a07g044-vsp2
+    then:
+      properties:
+        clocks:
+          items:
+            - description: Main clock
+            - description: Register access clock
+            - description: Video clock
+        clock-names:
+          items:
+            - const: aclk
+            - const: pclk
+            - const: vclk
+      required:
+        - clock-names
+    else:
+      properties:
+        clocks:
+          maxItems: 1
+        clock-names: false
 
 examples:
   # R8A7790 (R-Car H2) VSP1-S