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