diff mbox series

[v2] dt-bindings: iio: adc: Document Renesas RZ/G2UL ADC

Message ID 20220501111952.45872-1-biju.das.jz@bp.renesas.com (mailing list archive)
State Superseded
Delegated to: Geert Uytterhoeven
Headers show
Series [v2] dt-bindings: iio: adc: Document Renesas RZ/G2UL ADC | expand

Commit Message

Biju Das May 1, 2022, 11:19 a.m. UTC
ADC found on RZ/G2UL SoC is almost identical to RZ/G2L SoC, but RZ/G2UL
has 2 analog input channels compared to 8 channels on RZ/G2L. Therefore,
added a new compatible to handle this difference.

Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
---
v1->v2:
 * Removed Items and used const for RZ/G2UL compatible
 * Add allOf:if:then restricting available channels per SoC variant.
---
 .../bindings/iio/adc/renesas,rzg2l-adc.yaml   | 34 ++++++++++++++-----
 1 file changed, 25 insertions(+), 9 deletions(-)

Comments

Jonathan Cameron May 1, 2022, 6:17 p.m. UTC | #1
On Sun,  1 May 2022 12:19:52 +0100
Biju Das <biju.das.jz@bp.renesas.com> wrote:

> ADC found on RZ/G2UL SoC is almost identical to RZ/G2L SoC, but RZ/G2UL
> has 2 analog input channels compared to 8 channels on RZ/G2L. Therefore,
> added a new compatible to handle this difference.
> 
> Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> ---
> v1->v2:
>  * Removed Items and used const for RZ/G2UL compatible
>  * Add allOf:if:then restricting available channels per SoC variant.
> ---
>  .../bindings/iio/adc/renesas,rzg2l-adc.yaml   | 34 ++++++++++++++-----
>  1 file changed, 25 insertions(+), 9 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/iio/adc/renesas,rzg2l-adc.yaml b/Documentation/devicetree/bindings/iio/adc/renesas,rzg2l-adc.yaml
> index d66c24cae1e1..d76c5ba3d625 100644
> --- a/Documentation/devicetree/bindings/iio/adc/renesas,rzg2l-adc.yaml
> +++ b/Documentation/devicetree/bindings/iio/adc/renesas,rzg2l-adc.yaml
> @@ -17,11 +17,13 @@ description: |
>  
>  properties:
>    compatible:
> -    items:
> -      - enum:
> -          - renesas,r9a07g044-adc   # RZ/G2L
> -          - renesas,r9a07g054-adc   # RZ/V2L
> -      - const: renesas,rzg2l-adc
> +    oneOf:
> +      - const: renesas,renesas,r9a07g043-adc  # RZ/G2UL
> +      - items:
> +          - enum:
> +              - renesas,r9a07g044-adc   # RZ/G2L
> +              - renesas,r9a07g054-adc   # RZ/V2L
> +          - const: renesas,rzg2l-adc
>  
>    reg:
>      maxItems: 1
> @@ -76,10 +78,24 @@ patternProperties:
>      properties:
>        reg:
>          description: |
> -          The channel number. It can have up to 8 channels numbered from 0 to 7.
> -        items:
> -          - minimum: 0
> -            maximum: 7
> +          The channel number. It can have up to 8 channels numbered from 0 to 7
> +          for RZ/{G2L,V2L} SoCs or 2 channels numbered from 0 to 1 for RZ/G2UL
> +          SoC.
> +      allOf:
> +        if:
           - if:
               properties:
etc

Otherwise I think you can only have one in your allOf: which rather
removes the point of having one.

I was surprised this passed the checks, so added another if to verify my
reasoning...

Jonathan

> +          properties:
> +            compatible:
> +              contains:
> +                enum:
> +                  - renesas,renesas,r9a07g043-adc
> +        then:
> +          items:
> +            - minimum: 0
> +              maximum: 1
> +        else:
> +          items:
> +            - minimum: 0
> +              maximum: 7
>  
>      required:
>        - reg
Lad Prabhakar May 2, 2022, 4:15 a.m. UTC | #2
Hi Biju,

Thank you for the patch.

> -----Original Message-----
> From: Biju Das <biju.das.jz@bp.renesas.com>
> Sent: 01 May 2022 12:20
> To: Jonathan Cameron <jic23@kernel.org>; Rob Herring <robh+dt@kernel.org>;
> Krzysztof Kozlowski <krzysztof.kozlowski+dt@linaro.org>
> Cc: Biju Das <biju.das.jz@bp.renesas.com>; Prabhakar Mahadev Lad
> <prabhakar.mahadev-lad.rj@bp.renesas.com>; Lars-Peter Clausen
> <lars@metafoo.de>; linux-iio@vger.kernel.org; linux-renesas-
> soc@vger.kernel.org; devicetree@vger.kernel.org; Geert Uytterhoeven
> <geert+renesas@glider.be>; Chris Paterson <Chris.Paterson2@renesas.com>;
> Biju Das <biju.das@bp.renesas.com>
> Subject: [PATCH v2] dt-bindings: iio: adc: Document Renesas RZ/G2UL ADC
> 
> ADC found on RZ/G2UL SoC is almost identical to RZ/G2L SoC, but RZ/G2UL
> has 2 analog input channels compared to 8 channels on RZ/G2L. Therefore,
> added a new compatible to handle this difference.
> 
> Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> ---
> v1->v2:
>  * Removed Items and used const for RZ/G2UL compatible
>  * Add allOf:if:then restricting available channels per SoC variant.
> ---
>  .../bindings/iio/adc/renesas,rzg2l-adc.yaml   | 34 ++++++++++++++-----
>  1 file changed, 25 insertions(+), 9 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/iio/adc/renesas,rzg2l-
> adc.yaml b/Documentation/devicetree/bindings/iio/adc/renesas,rzg2l-
> adc.yaml
> index d66c24cae1e1..d76c5ba3d625 100644
> --- a/Documentation/devicetree/bindings/iio/adc/renesas,rzg2l-adc.yaml
> +++ b/Documentation/devicetree/bindings/iio/adc/renesas,rzg2l-adc.yaml
> @@ -17,11 +17,13 @@ description: |
> 
>  properties:
>    compatible:
> -    items:
> -      - enum:
> -          - renesas,r9a07g044-adc   # RZ/G2L
> -          - renesas,r9a07g054-adc   # RZ/V2L
> -      - const: renesas,rzg2l-adc
> +    oneOf:
> +      - const: renesas,renesas,r9a07g043-adc  # RZ/G2UL
renesas,r9a07g043-adc  # RZ/G2UL ?

We need to decide if this needs to be separate elements or part of below enum depending on the driver change.

> +      - items:
> +          - enum:
> +              - renesas,r9a07g044-adc   # RZ/G2L
> +              - renesas,r9a07g054-adc   # RZ/V2L
> +          - const: renesas,rzg2l-adc
> 
>    reg:
>      maxItems: 1
> @@ -76,10 +78,24 @@ patternProperties:
>      properties:
>        reg:
>          description: |
> -          The channel number. It can have up to 8 channels numbered from
> 0 to 7.
> -        items:
> -          - minimum: 0
> -            maximum: 7
> +          The channel number. It can have up to 8 channels numbered from
> 0 to 7
> +          for RZ/{G2L,V2L} SoCs or 2 channels numbered from 0 to 1 for
> RZ/G2UL
> +          SoC.
This comment is not required as we already have the below hunk where it mentions for RZ/G2UL its two channel.
 
> +      allOf:
> +        if:
> +          properties:
> +            compatible:
> +              contains:
> +                enum:
> +                  - renesas,renesas,r9a07g043-adc
renesas,r9a07g043-adc

Cheers,
Prabhakar

> +        then:
> +          items:
> +            - minimum: 0
> +              maximum: 1
> +        else:
> +          items:
> +            - minimum: 0
> +              maximum: 7
> 
>      required:
>        - reg
> --
> 2.25.1
Rob Herring May 2, 2022, 5:04 p.m. UTC | #3
On Sun, May 01, 2022 at 07:17:05PM +0100, Jonathan Cameron wrote:
> On Sun,  1 May 2022 12:19:52 +0100
> Biju Das <biju.das.jz@bp.renesas.com> wrote:
> 
> > ADC found on RZ/G2UL SoC is almost identical to RZ/G2L SoC, but RZ/G2UL
> > has 2 analog input channels compared to 8 channels on RZ/G2L. Therefore,
> > added a new compatible to handle this difference.
> > 
> > Signed-off-by: Biju Das <biju.das.jz@bp.renesas.com>
> > ---
> > v1->v2:
> >  * Removed Items and used const for RZ/G2UL compatible
> >  * Add allOf:if:then restricting available channels per SoC variant.
> > ---
> >  .../bindings/iio/adc/renesas,rzg2l-adc.yaml   | 34 ++++++++++++++-----
> >  1 file changed, 25 insertions(+), 9 deletions(-)
> > 
> > diff --git a/Documentation/devicetree/bindings/iio/adc/renesas,rzg2l-adc.yaml b/Documentation/devicetree/bindings/iio/adc/renesas,rzg2l-adc.yaml
> > index d66c24cae1e1..d76c5ba3d625 100644
> > --- a/Documentation/devicetree/bindings/iio/adc/renesas,rzg2l-adc.yaml
> > +++ b/Documentation/devicetree/bindings/iio/adc/renesas,rzg2l-adc.yaml
> > @@ -17,11 +17,13 @@ description: |
> >  
> >  properties:
> >    compatible:
> > -    items:
> > -      - enum:
> > -          - renesas,r9a07g044-adc   # RZ/G2L
> > -          - renesas,r9a07g054-adc   # RZ/V2L
> > -      - const: renesas,rzg2l-adc
> > +    oneOf:
> > +      - const: renesas,renesas,r9a07g043-adc  # RZ/G2UL
> > +      - items:
> > +          - enum:
> > +              - renesas,r9a07g044-adc   # RZ/G2L
> > +              - renesas,r9a07g054-adc   # RZ/V2L
> > +          - const: renesas,rzg2l-adc
> >  
> >    reg:
> >      maxItems: 1
> > @@ -76,10 +78,24 @@ patternProperties:
> >      properties:
> >        reg:
> >          description: |
> > -          The channel number. It can have up to 8 channels numbered from 0 to 7.
> > -        items:
> > -          - minimum: 0
> > -            maximum: 7
> > +          The channel number. It can have up to 8 channels numbered from 0 to 7
> > +          for RZ/{G2L,V2L} SoCs or 2 channels numbered from 0 to 1 for RZ/G2UL
> > +          SoC.
> > +      allOf:
> > +        if:
>            - if:
>                properties:
> etc
> 
> Otherwise I think you can only have one in your allOf: which rather
> removes the point of having one.
> 
> I was surprised this passed the checks, so added another if to verify my
> reasoning...

It didn't apply, so checks didn't run. But it should fail not for the 
reason you correctly identified, but because 'allOf' is a DT property 
here not json-schema vocabulary. 

Rob
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/iio/adc/renesas,rzg2l-adc.yaml b/Documentation/devicetree/bindings/iio/adc/renesas,rzg2l-adc.yaml
index d66c24cae1e1..d76c5ba3d625 100644
--- a/Documentation/devicetree/bindings/iio/adc/renesas,rzg2l-adc.yaml
+++ b/Documentation/devicetree/bindings/iio/adc/renesas,rzg2l-adc.yaml
@@ -17,11 +17,13 @@  description: |
 
 properties:
   compatible:
-    items:
-      - enum:
-          - renesas,r9a07g044-adc   # RZ/G2L
-          - renesas,r9a07g054-adc   # RZ/V2L
-      - const: renesas,rzg2l-adc
+    oneOf:
+      - const: renesas,renesas,r9a07g043-adc  # RZ/G2UL
+      - items:
+          - enum:
+              - renesas,r9a07g044-adc   # RZ/G2L
+              - renesas,r9a07g054-adc   # RZ/V2L
+          - const: renesas,rzg2l-adc
 
   reg:
     maxItems: 1
@@ -76,10 +78,24 @@  patternProperties:
     properties:
       reg:
         description: |
-          The channel number. It can have up to 8 channels numbered from 0 to 7.
-        items:
-          - minimum: 0
-            maximum: 7
+          The channel number. It can have up to 8 channels numbered from 0 to 7
+          for RZ/{G2L,V2L} SoCs or 2 channels numbered from 0 to 1 for RZ/G2UL
+          SoC.
+      allOf:
+        if:
+          properties:
+            compatible:
+              contains:
+                enum:
+                  - renesas,renesas,r9a07g043-adc
+        then:
+          items:
+            - minimum: 0
+              maximum: 1
+        else:
+          items:
+            - minimum: 0
+              maximum: 7
 
     required:
       - reg