On Tue, Aug 20, 2024 at 06:21:07PM +0200, Thomas Bonnefille wrote: > Hello Conor, > > On 8/12/24 5:53 PM, Conor Dooley wrote: > > On Mon, Aug 12, 2024 at 05:00:55PM +0200, Thomas Bonnefille wrote: > > > The Sophgo SARADC is a Successive Approximation ADC that can be found in > > > the Sophgo SoC. > > > > > > Signed-off-by: Thomas Bonnefille <thomas.bonnefille@xxxxxxxxxxx> > > > --- > > > .../bindings/iio/adc/sophgo,cv18xx-saradc.yaml | 85 ++++++++++++++++++++++ > > > 1 file changed, 85 insertions(+) > > > > > > diff --git a/Documentation/devicetree/bindings/iio/adc/sophgo,cv18xx-saradc.yaml b/Documentation/devicetree/bindings/iio/adc/sophgo,cv18xx-saradc.yaml > > > new file mode 100644 > > > index 000000000000..846590808e5f > > > --- /dev/null > > > +++ b/Documentation/devicetree/bindings/iio/adc/sophgo,cv18xx-saradc.yaml > > > @@ -0,0 +1,85 @@ > > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > > +%YAML 1.2 > > > +--- > > > +$id: http://devicetree.org/schemas/iio/adc/sophgo,cv18xx-saradc.yaml# > > > > Filename matching the compatible please. > > > > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > > + > > > +title: > > > + Sophgo CV18XX SoC series 3 channels Successive Approximation Analog to > > > + Digital Converters > > > + > > > +maintainers: > > > + - Thomas Bonnefille <thomas.bonnefille@xxxxxxxxxxx> > > > + > > > +description: > > > + Datasheet at https://github.com/sophgo/sophgo-doc/releases > > > + > > > +properties: > > > + compatible: > > > + const: sophgo,cv1800b-saradc > > > + > > > + reg: > > > + maxItems: 1 > > > + > > > + interrupts: > > > + maxItems: 1 > > > + > > > + clocks: > > > + maxItems: 1 > > > + > > > + '#address-cells': > > > + const: 1 > > > + > > > + '#size-cells': > > > + const: 0 > > > + > > > +patternProperties: > > > + "^channel@[0-3]+$": > > > + $ref: adc.yaml > > > + > > > + description: | > > > > This | is not required. > > > > > + 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. 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>; }; }; The solution is simple, remove the + from the regex. Sorry for sending you on the wrong track Thomas. Thanks, Conor. > Looking at the dtschema repository it seems to be the case in reg.yaml with > address-cells/size-cells = 2/2, 1/1 and 2/1. > If I try to use maxItems here : > > properties: > reg: > maxItems: 1 > items: > - minimum: 0 > maximum: 2 > > I get this strange error message from `make dt_binding_check`: > > DTEX > Documentation/devicetree/bindings/iio/adc/sophgo,cv1800b-saradc.example.dts > /home/thomas/linux/Documentation/devicetree/bindings/iio/adc/sophgo,cv1800b-saradc.yaml: > patternProperties:^channel@[0-2]+$:properties:reg: {'maxItems': 1, 'items': > [{'minimum': 0, 'maximum': 2}]} should not be valid under {'required': > ['maxItems']} > hint: "maxItems" is not needed with an "items" list > from schema $id: http://devicetree.org/meta-schemas/items.yaml# > /home/thomas/linux/Documentation/devicetree/bindings/iio/adc/sophgo,cv1800b-saradc.yaml: > patternProperties:^channel@[0-2]+$:properties:reg: 'anyOf' conditional > failed, one must be fixed: > 'items' is not one of ['maxItems', 'description', 'deprecated'] > hint: Only "maxItems" is required for a single entry if there are no > constraints defined for the values. > 'maxItems' is not one of ['description', 'deprecated', 'const', 'enum', > 'minimum', 'maximum', 'multipleOf', 'default', '$ref', 'oneOf'] > 'items' is not one of ['description', 'deprecated', 'const', 'enum', > 'minimum', 'maximum', 'multipleOf', 'default', '$ref', 'oneOf'] > 1 is less than the minimum of 2 > hint: Arrays must be described with a combination of > minItems/maxItems/items > hint: cell array properties must define how many entries and what the > entries are when there is more than one entry. > from schema $id: http://devicetree.org/meta-schemas/core.yaml# > > Isn't it okay to just use minimum and maximum and rely on > address-cells/size-cells for the number of items allowed ? >
Attachment:
signature.asc
Description: PGP signature