All of lore.kernel.org
 help / color / mirror / Atom feed
From: Conor Dooley <conor@kernel.org>
To: Miquel Raynal <miquel.raynal@bootlin.com>
Cc: Thomas Bonnefille <thomas.bonnefille@bootlin.com>,
	Jonathan Cameron <jic23@kernel.org>,
	Lars-Peter Clausen <lars@metafoo.de>,
	Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Chen Wang <unicorn_wang@outlook.com>,
	Inochi Amaoto <inochiama@outlook.com>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
	linux-iio@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org
Subject: Re: [PATCH v4 1/3] dt-bindings: iio: adc: sophgo,cv18xx-saradc.yaml: Add Sophgo CV18XX SARADC binding
Date: Wed, 21 Aug 2024 16:29:42 +0100	[thread overview]
Message-ID: <20240821-unholy-statutory-7aa884ebf857@spud> (raw)
In-Reply-To: <20240821094150.5787905b@xps-13>

[-- Attachment #1: Type: text/plain, Size: 4335 bytes --]

On Wed, Aug 21, 2024 at 09:41:50AM +0200, Miquel Raynal wrote:
> > > > > +      Represents the channels of the ADC.
> > > > > +
> > > > > +    properties:
> > > > > +      reg:
> > > > > +        description: |
> > > > > +          The channel number. It can have up to 3 channels numbered from 0 to 2.
> > > > > +        items:
> > > > > +          - minimum: 0
> > > > > +            maximum: 2  
> > > > 
> > > > Is this sufficient to limit the number of channels to 3? Aren't you relying
> > > > on the unique unit addresses warning in dtc to limit it, rather than
> > > > actually limiting with min/maxItems?
> > > >   
> > > It seems like I can't use min/maxItems on this property. I think that it is
> > > using size-cells + address-cells to deduce that the number of items should
> > > be equal to 1.  
> 
> Looking at dt-schema, I couldn't personally understand from where did
> the error messages reported by Thomas came from. There are clear

I think the complaints are on a more meta level than that. He provided
an items list
     properties:
       reg:
         maxItems: 1
         items:
           - minimum: 0
             maximum: 2
but this list only has one entry as there's one -. The first complaint
from dt_binding_check is that having maxItems is not needed with an
items list, because the items list contains the maximum number of
elements.

The second one comes from cell.yaml:
https://github.com/devicetree-org/dt-schema/blob/main/dtschema/meta-schemas/cell.yaml

It either allows a single item, with maxItems: 1 or multiple items, in
which case maxitems must be greater than 1. That's where the "anyOf
conditonal failed" and "1 is less than the minimum of 2" stuff comes
from.

I hope that helps?

> constraints over minItems/maxItems regarding the use of {#address-cells,
> #sizez-cells} being {1, 1}, {2, 2} and {2, 1} (in reg.yaml), but nothing
> explicit regarding the other situations, namely {1, 0} in this case
> which enforces maxItems to 1 is not clearly stated in any of the core
> yaml files. Any idea where to look at? Although, I'm convinced there is
> something defined because renaming the property from 'reg' to 'foo'
> silences these warnings.
> 
> > I think I was mistaken in talking about mix/max items here. I had the
> > right idea, but mentioned an incorrect solution - sorry about that. I
> > wasn't talking about the number of elements in the reg property, what I
> > meant was limiting the number of channel nodes in the first place -
> > something which min/maxItems cannot do. As examples of the problem I was
> > thinking of, see the below two examples:
> > 
> >     adc@30f0000 {
> >         compatible = "sophgo,cv1800b-saradc";
> >         reg = <0x030f0000 0x1000>;
> >         clocks = <&clk CLK_SARADC>;
> >         interrupts = <100 IRQ_TYPE_LEVEL_HIGH>;
> >         #address-cells = <1>;
> >         #size-cells = <0>;
> > 
> >         channel@0 {
> >             reg = <0>;
> >         };
> >         channel@2 {
> >             reg = <2>;
> >         };
> >         channel@22 {
> >             reg = <2>;
> >         };
> >     };
> > 
> >     adc@30f0000 {
> >         compatible = "sophgo,cv1800b-saradc";
> >         reg = <0x030f0000 0x1000>;
> >         clocks = <&clk CLK_SARADC>;
> >         interrupts = <100 IRQ_TYPE_LEVEL_HIGH>;
> >         #address-cells = <1>;
> >         #size-cells = <0>;
> > 
> >         channel@0 {
> >             reg = <0>;
> >         };
> >         channel@2 {
> >             reg = <2>;
> >         };
> >         channel@22 {
> >             reg = <2>;
> >         };

I noticed that I pasted two of the same example. I must have just
yoinked the latter to a vim buffer rather than to my clipboard. At least
it didn't matter in the end.

Cheers,
Conor.

> >     };
> > 
> > The solution is simple, remove the + from the regex. Sorry for sending
> > you on the wrong track Thomas.
> 
> Ah! Thanks Conor for the details, now it makes full sense :-) BTW Thomas
> the regex is
> 
> 	^channel@[0-3]+$
> 
> and I guess it should instead be
> 
> 	^channel@[0-2]$
>                     ^
> 
> in order to fully match the real indexing constraints you're enforcing
> with minimum/maximum.
> 
> Thanks,
> Miquèl

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: Conor Dooley <conor@kernel.org>
To: Miquel Raynal <miquel.raynal@bootlin.com>
Cc: Thomas Bonnefille <thomas.bonnefille@bootlin.com>,
	Jonathan Cameron <jic23@kernel.org>,
	Lars-Peter Clausen <lars@metafoo.de>,
	Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	Chen Wang <unicorn_wang@outlook.com>,
	Inochi Amaoto <inochiama@outlook.com>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
	linux-iio@vger.kernel.org, devicetree@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org
Subject: Re: [PATCH v4 1/3] dt-bindings: iio: adc: sophgo,cv18xx-saradc.yaml: Add Sophgo CV18XX SARADC binding
Date: Wed, 21 Aug 2024 16:29:42 +0100	[thread overview]
Message-ID: <20240821-unholy-statutory-7aa884ebf857@spud> (raw)
In-Reply-To: <20240821094150.5787905b@xps-13>


[-- Attachment #1.1: Type: text/plain, Size: 4335 bytes --]

On Wed, Aug 21, 2024 at 09:41:50AM +0200, Miquel Raynal wrote:
> > > > > +      Represents the channels of the ADC.
> > > > > +
> > > > > +    properties:
> > > > > +      reg:
> > > > > +        description: |
> > > > > +          The channel number. It can have up to 3 channels numbered from 0 to 2.
> > > > > +        items:
> > > > > +          - minimum: 0
> > > > > +            maximum: 2  
> > > > 
> > > > Is this sufficient to limit the number of channels to 3? Aren't you relying
> > > > on the unique unit addresses warning in dtc to limit it, rather than
> > > > actually limiting with min/maxItems?
> > > >   
> > > It seems like I can't use min/maxItems on this property. I think that it is
> > > using size-cells + address-cells to deduce that the number of items should
> > > be equal to 1.  
> 
> Looking at dt-schema, I couldn't personally understand from where did
> the error messages reported by Thomas came from. There are clear

I think the complaints are on a more meta level than that. He provided
an items list
     properties:
       reg:
         maxItems: 1
         items:
           - minimum: 0
             maximum: 2
but this list only has one entry as there's one -. The first complaint
from dt_binding_check is that having maxItems is not needed with an
items list, because the items list contains the maximum number of
elements.

The second one comes from cell.yaml:
https://github.com/devicetree-org/dt-schema/blob/main/dtschema/meta-schemas/cell.yaml

It either allows a single item, with maxItems: 1 or multiple items, in
which case maxitems must be greater than 1. That's where the "anyOf
conditonal failed" and "1 is less than the minimum of 2" stuff comes
from.

I hope that helps?

> constraints over minItems/maxItems regarding the use of {#address-cells,
> #sizez-cells} being {1, 1}, {2, 2} and {2, 1} (in reg.yaml), but nothing
> explicit regarding the other situations, namely {1, 0} in this case
> which enforces maxItems to 1 is not clearly stated in any of the core
> yaml files. Any idea where to look at? Although, I'm convinced there is
> something defined because renaming the property from 'reg' to 'foo'
> silences these warnings.
> 
> > I think I was mistaken in talking about mix/max items here. I had the
> > right idea, but mentioned an incorrect solution - sorry about that. I
> > wasn't talking about the number of elements in the reg property, what I
> > meant was limiting the number of channel nodes in the first place -
> > something which min/maxItems cannot do. As examples of the problem I was
> > thinking of, see the below two examples:
> > 
> >     adc@30f0000 {
> >         compatible = "sophgo,cv1800b-saradc";
> >         reg = <0x030f0000 0x1000>;
> >         clocks = <&clk CLK_SARADC>;
> >         interrupts = <100 IRQ_TYPE_LEVEL_HIGH>;
> >         #address-cells = <1>;
> >         #size-cells = <0>;
> > 
> >         channel@0 {
> >             reg = <0>;
> >         };
> >         channel@2 {
> >             reg = <2>;
> >         };
> >         channel@22 {
> >             reg = <2>;
> >         };
> >     };
> > 
> >     adc@30f0000 {
> >         compatible = "sophgo,cv1800b-saradc";
> >         reg = <0x030f0000 0x1000>;
> >         clocks = <&clk CLK_SARADC>;
> >         interrupts = <100 IRQ_TYPE_LEVEL_HIGH>;
> >         #address-cells = <1>;
> >         #size-cells = <0>;
> > 
> >         channel@0 {
> >             reg = <0>;
> >         };
> >         channel@2 {
> >             reg = <2>;
> >         };
> >         channel@22 {
> >             reg = <2>;
> >         };

I noticed that I pasted two of the same example. I must have just
yoinked the latter to a vim buffer rather than to my clipboard. At least
it didn't matter in the end.

Cheers,
Conor.

> >     };
> > 
> > The solution is simple, remove the + from the regex. Sorry for sending
> > you on the wrong track Thomas.
> 
> Ah! Thanks Conor for the details, now it makes full sense :-) BTW Thomas
> the regex is
> 
> 	^channel@[0-3]+$
> 
> and I guess it should instead be
> 
> 	^channel@[0-2]$
>                     ^
> 
> in order to fully match the real indexing constraints you're enforcing
> with minimum/maximum.
> 
> Thanks,
> Miquèl

[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

[-- Attachment #2: Type: text/plain, Size: 161 bytes --]

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

  reply	other threads:[~2024-08-21 15:29 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-12 15:00 [PATCH v4 0/3] Add SARADC support on Sophgo CV18XX series Thomas Bonnefille
2024-08-12 15:00 ` Thomas Bonnefille
2024-08-12 15:00 ` [PATCH v4 1/3] dt-bindings: iio: adc: sophgo,cv18xx-saradc.yaml: Add Sophgo CV18XX SARADC binding Thomas Bonnefille
2024-08-12 15:00   ` Thomas Bonnefille
2024-08-12 15:53   ` Conor Dooley
2024-08-12 15:53     ` Conor Dooley
2024-08-20 16:21     ` Thomas Bonnefille
2024-08-20 16:21       ` Thomas Bonnefille
2024-08-20 16:38       ` Conor Dooley
2024-08-20 16:38         ` Conor Dooley
2024-08-21  7:41         ` Miquel Raynal
2024-08-21  7:41           ` Miquel Raynal
2024-08-21 15:29           ` Conor Dooley [this message]
2024-08-21 15:29             ` Conor Dooley
2024-08-22  8:52             ` Miquel Raynal
2024-08-22  8:52               ` Miquel Raynal
2024-08-13  9:50   ` Krzysztof Kozlowski
2024-08-13  9:50     ` Krzysztof Kozlowski
2024-08-12 15:00 ` [PATCH v4 2/3] iio: adc: sophgo-saradc: Add driver for Sophgo CV18XX series SARADC Thomas Bonnefille
2024-08-12 15:00   ` Thomas Bonnefille
2024-08-13  1:39   ` Chen Wang
2024-08-13  1:39     ` Chen Wang
2024-08-17 13:05   ` Jonathan Cameron
2024-08-17 13:05     ` Jonathan Cameron
2024-08-12 15:00 ` [PATCH v4 3/3] riscv: dts: sophgo: Add SARADC description for Sophgo CV18XX Thomas Bonnefille
2024-08-12 15:00   ` Thomas Bonnefille
2024-08-13  1:45   ` Chen Wang
2024-08-13  1:45     ` Chen Wang
2024-08-13  1:50     ` Inochi Amaoto
2024-08-13  1:50       ` Inochi Amaoto
2024-08-13 23:32       ` Chen Wang
2024-08-13 23:32         ` Chen Wang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240821-unholy-statutory-7aa884ebf857@spud \
    --to=conor@kernel.org \
    --cc=aou@eecs.berkeley.edu \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=inochiama@outlook.com \
    --cc=jic23@kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=lars@metafoo.de \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=miquel.raynal@bootlin.com \
    --cc=palmer@dabbelt.com \
    --cc=paul.walmsley@sifive.com \
    --cc=robh@kernel.org \
    --cc=thomas.bonnefille@bootlin.com \
    --cc=thomas.petazzoni@bootlin.com \
    --cc=unicorn_wang@outlook.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.