diff mbox series

[v4,1/2] dt-bindings: adc: add AD7173

Message ID 20231116134655.21052-1-user@HYB-hhAwRlzzMZb (mailing list archive)
State Superseded
Headers show
Series [v4,1/2] dt-bindings: adc: add AD7173 | expand

Commit Message

Ceclan, Dumitru Nov. 16, 2023, 1:46 p.m. UTC
From: Dumitru Ceclan <mitrutzceclan@gmail.com>

The AD7173 family offer a complete integrated Sigma-Delta ADC solution
which can be used in high precision, low noise single channel applications
or higher speed multiplexed applications. The Sigma-Delta ADC is intended
primarily for measurement of signals close to DC but also delivers
outstanding performance with input bandwidths out to ~10kHz.

Reviewed-by: Conor Dooley <conor.dooley@microchip.com> # except reference_select
Signed-off-by: Dumitru Ceclan <mitrutzceclan@gmail.com>
---
V3 -> V4
 - include supply attributes
 - add channel attribute for selecting conversion reference

 .../bindings/iio/adc/adi,ad7173.yaml          | 166 ++++++++++++++++++
 1 file changed, 166 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/iio/adc/adi,ad7173.yaml

Comments

Rob Herring (Arm) Nov. 16, 2023, 2:47 p.m. UTC | #1
On Thu, 16 Nov 2023 15:46:54 +0200, mitrutzceclan wrote:
> From: Dumitru Ceclan <mitrutzceclan@gmail.com>
> 
> The AD7173 family offer a complete integrated Sigma-Delta ADC solution
> which can be used in high precision, low noise single channel applications
> or higher speed multiplexed applications. The Sigma-Delta ADC is intended
> primarily for measurement of signals close to DC but also delivers
> outstanding performance with input bandwidths out to ~10kHz.
> 
> Reviewed-by: Conor Dooley <conor.dooley@microchip.com> # except reference_select
> Signed-off-by: Dumitru Ceclan <mitrutzceclan@gmail.com>
> ---
> V3 -> V4
>  - include supply attributes
>  - add channel attribute for selecting conversion reference
> 
>  .../bindings/iio/adc/adi,ad7173.yaml          | 166 ++++++++++++++++++
>  1 file changed, 166 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/iio/adc/adi,ad7173.yaml
> 

My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
on your patch (DT_CHECKER_FLAGS is new in v5.13):

yamllint warnings/errors:
./Documentation/devicetree/bindings/iio/adc/adi,ad7173.yaml:109:10: [error] empty value in block mapping (empty-values)

dtschema/dtc warnings/errors:
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/iio/adc/adi,ad7173.yaml: properties:required: ['compatible', 'reg', 'interrupts'] is not of type 'object', 'boolean'
	from schema $id: http://json-schema.org/draft-07/schema#
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/iio/adc/adi,ad7173.yaml: allOf:1:then: None is not of type 'object', 'boolean'
	from schema $id: http://json-schema.org/draft-07/schema#
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/iio/adc/adi,ad7173.yaml: allOf:1:else:patternProperties:^channel@[0-9a-f]$:properties:enum: [0, 2, 3] is not of type 'object', 'boolean'
	from schema $id: http://json-schema.org/draft-07/schema#
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/iio/adc/adi,ad7173.yaml: allOf:1:else:patternProperties:^channel@[0-9a-f]$:properties: 'enum' should not be valid under {'$ref': '#/definitions/json-schema-prop-names'}
	hint: A json-schema keyword was found instead of a DT property name.
	from schema $id: http://devicetree.org/meta-schemas/keywords.yaml#
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/iio/adc/adi,ad7173.yaml: allOf:1:else:patternProperties:^channel@[0-9a-f]$:properties:enum: [0, 2, 3] is not of type 'object', 'boolean'
	from schema $id: http://devicetree.org/meta-schemas/keywords.yaml#
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/iio/adc/adi,ad7173.yaml: properties: 'dependencies' should not be valid under {'$ref': '#/definitions/json-schema-prop-names'}
	hint: A json-schema keyword was found instead of a DT property name.
	from schema $id: http://devicetree.org/meta-schemas/keywords.yaml#
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/iio/adc/adi,ad7173.yaml: properties: 'required' should not be valid under {'$ref': '#/definitions/json-schema-prop-names'}
	hint: A json-schema keyword was found instead of a DT property name.
	from schema $id: http://devicetree.org/meta-schemas/keywords.yaml#
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/iio/adc/adi,ad7173.yaml: properties:dependencies: 'anyOf' conditional failed, one must be fixed:
	'refin2-supply' is not one of ['$ref', 'additionalItems', 'additionalProperties', 'allOf', 'anyOf', 'const', 'contains', 'default', 'dependencies', 'dependentRequired', 'dependentSchemas', 'deprecated', 'description', 'else', 'enum', 'exclusiveMaximum', 'exclusiveMinimum', 'items', 'if', 'minItems', 'minimum', 'maxItems', 'maximum', 'multipleOf', 'not', 'oneOf', 'pattern', 'patternProperties', 'properties', 'required', 'then', 'typeSize', 'unevaluatedProperties', 'uniqueItems']
	'type' was expected
	from schema $id: http://devicetree.org/meta-schemas/keywords.yaml#
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/iio/adc/adi,ad7173.yaml: properties:required: ['compatible', 'reg', 'interrupts'] is not of type 'object', 'boolean'
	from schema $id: http://devicetree.org/meta-schemas/keywords.yaml#
/builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/iio/adc/adi,ad7173.yaml: dependencies: missing type definition
Traceback (most recent call last):
  File "/usr/local/bin/dt-validate", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/dtschema/dtb_validate.py", line 144, in main
    sg.check_dtb(filename)
  File "/usr/local/lib/python3.11/dist-packages/dtschema/dtb_validate.py", line 89, in check_dtb
    self.check_subtree(dt, subtree, False, "/", "/", filename)
  File "/usr/local/lib/python3.11/dist-packages/dtschema/dtb_validate.py", line 82, in check_subtree
    self.check_subtree(tree, value, disabled, name, fullname + name, filename)
  File "/usr/local/lib/python3.11/dist-packages/dtschema/dtb_validate.py", line 82, in check_subtree
    self.check_subtree(tree, value, disabled, name, fullname + name, filename)
  File "/usr/local/lib/python3.11/dist-packages/dtschema/dtb_validate.py", line 82, in check_subtree
    self.check_subtree(tree, value, disabled, name, fullname + name, filename)
  File "/usr/local/lib/python3.11/dist-packages/dtschema/dtb_validate.py", line 77, in check_subtree
    self.check_node(tree, subtree, disabled, nodename, fullname, filename)
  File "/usr/local/lib/python3.11/dist-packages/dtschema/dtb_validate.py", line 33, in check_node
    for error in self.validator.iter_errors(node, filter=match_schema_file):
  File "/usr/local/lib/python3.11/dist-packages/dtschema/validator.py", line 393, in iter_errors
    for error in self.DtValidator(sch,
  File "/usr/local/lib/python3.11/dist-packages/jsonschema/validators.py", line 288, in iter_errors
    for error in errors:
  File "/usr/local/lib/python3.11/dist-packages/jsonschema/_validators.py", line 414, in if_
    yield from validator.descend(instance, then, schema_path="then")
  File "/usr/local/lib/python3.11/dist-packages/jsonschema/validators.py", line 305, in descend
    for error in self.evolve(schema=schema).iter_errors(instance):
  File "/usr/local/lib/python3.11/dist-packages/jsonschema/validators.py", line 288, in iter_errors
    for error in errors:
  File "/usr/local/lib/python3.11/dist-packages/jsonschema/_validators.py", line 362, in allOf
    yield from validator.descend(instance, subschema, schema_path=index)
  File "/usr/local/lib/python3.11/dist-packages/jsonschema/validators.py", line 305, in descend
    for error in self.evolve(schema=schema).iter_errors(instance):
  File "/usr/local/lib/python3.11/dist-packages/jsonschema/validators.py", line 288, in iter_errors
    for error in errors:
  File "/usr/local/lib/python3.11/dist-packages/jsonschema/_validators.py", line 414, in if_
    yield from validator.descend(instance, then, schema_path="then")
  File "/usr/local/lib/python3.11/dist-packages/jsonschema/validators.py", line 305, in descend
    for error in self.evolve(schema=schema).iter_errors(instance):
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/jsonschema/validators.py", line 239, in evolve
    NewValidator = validator_for(schema, default=cls)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/jsonschema/validators.py", line 1148, in validator_for
    if schema is True or schema is False or "$schema" not in schema:
                                            ^^^^^^^^^^^^^^^^^^^^^^^
TypeError: argument of type 'NoneType' is not iterable

doc reference errors (make refcheckdocs):

See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20231116134655.21052-1-user@HYB-hhAwRlzzMZb

The base for the series is generally the latest rc1. A different dependency
should be noted in *this* patch.

If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:

pip3 install dtschema --upgrade

Please check and re-submit after running the above command yourself. Note
that DT_SCHEMA_FILES can be set to your schema file to speed up checking
your schema. However, it must be unset to test all examples with your schema.
Krzysztof Kozlowski Nov. 16, 2023, 2:54 p.m. UTC | #2
On 16/11/2023 14:46, mitrutzceclan wrote:
> From: Dumitru Ceclan <mitrutzceclan@gmail.com>
> 
> The AD7173 family offer a complete integrated Sigma-Delta ADC solution
> which can be used in high precision, low noise single channel applications
> or higher speed multiplexed applications. The Sigma-Delta ADC is intended
> primarily for measurement of signals close to DC but also delivers
> outstanding performance with input bandwidths out to ~10kHz.
> 
> Reviewed-by: Conor Dooley <conor.dooley@microchip.com> # except reference_select

Please drop the tag. You clearly did not test it, so it must be
re-reviewed. Do not send code which was not tested.

> Signed-off-by: Dumitru Ceclan <mitrutzceclan@gmail.com>
> ---
> V3 -> V4
>  - include supply attributes
>  - add channel attribute for selecting conversion reference
> 
>  .../bindings/iio/adc/adi,ad7173.yaml          | 166 ++++++++++++++++++
>  1 file changed, 166 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/iio/adc/adi,ad7173.yaml
> 
> diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad7173.yaml b/Documentation/devicetree/bindings/iio/adc/adi,ad7173.yaml
> new file mode 100644
> index 000000000000..92aa352b6653
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/iio/adc/adi,ad7173.yaml
> @@ -0,0 +1,166 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +# Copyright 2023 Analog Devices Inc.
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/iio/adc/adi,ad7173.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Analog Devices AD7173 ADC device driver

Drop: device driver

Bindings are for hardware.

> +
> +maintainers:
> +  - Ceclan Dumitru <dumitru.ceclan@analog.com>
> +
> +description: |
> +  Bindings for the Analog Devices AD717X ADC's. Datasheets for supported chips:
> +    https://www.analog.com/media/en/technical-documentation/data-sheets/AD7172-2.pdf
> +    https://www.analog.com/media/en/technical-documentation/data-sheets/AD7173-8.pdf
> +    https://www.analog.com/media/en/technical-documentation/data-sheets/AD7175-2.pdf
> +    https://www.analog.com/media/en/technical-documentation/data-sheets/AD7176-2.pdf
> +
> +properties:
> +  compatible:
> +    enum:
> +      - adi,ad7172-2
> +      - adi,ad7173-8
> +      - adi,ad7175-2
> +      - adi,ad7176-2
> +
> +  reg:
> +    maxItems: 1
> +
> +  interrupts:
> +    maxItems: 1
> +
> +  '#address-cells':
> +    const: 1
> +
> +  '#size-cells':
> +    const: 0
> +
> +  spi-max-frequency:
> +    maximum: 20000000
> +
> +  refin-supply:
> +    description: external reference supply, can be used as reference for conversion.
> +
> +  refin2-supply:
> +    description: external reference supply, can be used as reference for conversion.
> +
> +  avdd-supply:
> +    description: avdd supply, can be used as reference for conversion.
> +
> +  dependencies:

Nope, needs testing... See also example-schema.


> +    refin2-supply:
> +      properties:
> +        compatible:
> +          adi,ad7173-8
> +
> +  required:

Please open example schema and put it in similar place.

> +    - compatible
> +    - reg
> +    - interrupts
> +
> +patternProperties:
> +  "^channel@[0-9a-f]$":
> +    type: object
> +    $ref: adc.yaml
> +    unevaluatedProperties: false
> +
> +    properties:
> +      reg:
> +        minimum: 0
> +        maximum: 15
> +
> +      diff-channels:
> +        items:
> +          minimum: 0
> +          maximum: 31
> +
> +      adi,reference-select:
> +        description: |
> +          Select the reference source to use when converting on
> +          the specific channel. Valid values are:
> +          0: REFIN(+)/REFIN(−).
> +          1: REFIN2(+)/REFIN2(−)
> +          2: REFOUT/AVSS (Internal reference)
> +          3: AVDD
> +
> +          External reference 2 only available on ad7173-8.
> +          If not specified, internal reference used.
> +        $ref: /schemas/types.yaml#/definitions/uint32
> +        enum: [0, 1, 2, 3]
> +        default: 2
> +
> +      bipolar:
> +        type: boolean
> +
> +    required:
> +      - reg
> +      - diff-channels
> +
> +allOf:
> +  - $ref: /schemas/spi/spi-peripheral-props.yaml#
> +
> +  - if:
> +      properties:
> +        compatible:
> +          contains:
> +            const: adi,ad7173-8
> +    then:

??? Maybe you want to use "not"?

> +    else:

> +      patternProperties:
> +        "^channel@[0-9a-f]$":
> +          properties:
> +            enum: [0, 2, 3]
> +
> +unevaluatedProperties: false
> +

Best regards,
Krzysztof
Conor Dooley Nov. 16, 2023, 5:54 p.m. UTC | #3
On Thu, Nov 16, 2023 at 03:54:13PM +0100, Krzysztof Kozlowski wrote:
> On 16/11/2023 14:46, mitrutzceclan wrote:
> > From: Dumitru Ceclan <mitrutzceclan@gmail.com>
> > 
> > The AD7173 family offer a complete integrated Sigma-Delta ADC solution
> > which can be used in high precision, low noise single channel applications
> > or higher speed multiplexed applications. The Sigma-Delta ADC is intended
> > primarily for measurement of signals close to DC but also delivers
> > outstanding performance with input bandwidths out to ~10kHz.
> > 
> > Reviewed-by: Conor Dooley <conor.dooley@microchip.com> # except reference_select
> 
> Please drop the tag. You clearly did not test it, so it must be
> re-reviewed. Do not send code which was not tested.

yeah, this is vastly different from what I reviewed. I suppose if
someone finds it necessary to add a "# except foo" to the end of a tag
it is very good signifier that the tag should in fact be removed.

> 
> > Signed-off-by: Dumitru Ceclan <mitrutzceclan@gmail.com>
> > ---
> > V3 -> V4
> >  - include supply attributes
> >  - add channel attribute for selecting conversion reference
> > 
> >  .../bindings/iio/adc/adi,ad7173.yaml          | 166 ++++++++++++++++++
> >  1 file changed, 166 insertions(+)
> >  create mode 100644 Documentation/devicetree/bindings/iio/adc/adi,ad7173.yaml
> > 
> > diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad7173.yaml b/Documentation/devicetree/bindings/iio/adc/adi,ad7173.yaml
> > new file mode 100644
> > index 000000000000..92aa352b6653
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/iio/adc/adi,ad7173.yaml
> > @@ -0,0 +1,166 @@
> > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> > +# Copyright 2023 Analog Devices Inc.
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/iio/adc/adi,ad7173.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: Analog Devices AD7173 ADC device driver
> 
> Drop: device driver
> 
> Bindings are for hardware.
> 
> > +
> > +maintainers:
> > +  - Ceclan Dumitru <dumitru.ceclan@analog.com>
> > +
> > +description: |
> > +  Bindings for the Analog Devices AD717X ADC's. Datasheets for supported chips:
> > +    https://www.analog.com/media/en/technical-documentation/data-sheets/AD7172-2.pdf
> > +    https://www.analog.com/media/en/technical-documentation/data-sheets/AD7173-8.pdf
> > +    https://www.analog.com/media/en/technical-documentation/data-sheets/AD7175-2.pdf
> > +    https://www.analog.com/media/en/technical-documentation/data-sheets/AD7176-2.pdf
> > +
> > +properties:
> > +  compatible:
> > +    enum:
> > +      - adi,ad7172-2
> > +      - adi,ad7173-8
> > +      - adi,ad7175-2
> > +      - adi,ad7176-2
> > +
> > +  reg:
> > +    maxItems: 1
> > +
> > +  interrupts:
> > +    maxItems: 1
> > +
> > +  '#address-cells':
> > +    const: 1
> > +
> > +  '#size-cells':
> > +    const: 0
> > +
> > +  spi-max-frequency:
> > +    maximum: 20000000
> > +
> > +  refin-supply:
> > +    description: external reference supply, can be used as reference for conversion.
> > +
> > +  refin2-supply:
> > +    description: external reference supply, can be used as reference for conversion.
> > +
> > +  avdd-supply:
> > +    description: avdd supply, can be used as reference for conversion.
> > +
> > +  dependencies:
> 
> Nope, needs testing... See also example-schema.
> 
> 
> > +    refin2-supply:
> > +      properties:
> > +        compatible:
> > +          adi,ad7173-8
> > +
> > +  required:
> 
> Please open example schema and put it in similar place.
> 
> > +    - compatible
> > +    - reg
> > +    - interrupts
> > +
> > +patternProperties:
> > +  "^channel@[0-9a-f]$":
> > +    type: object
> > +    $ref: adc.yaml
> > +    unevaluatedProperties: false
> > +
> > +    properties:
> > +      reg:
> > +        minimum: 0
> > +        maximum: 15
> > +
> > +      diff-channels:
> > +        items:
> > +          minimum: 0
> > +          maximum: 31
> > +
> > +      adi,reference-select:
> > +        description: |
> > +          Select the reference source to use when converting on
> > +          the specific channel. Valid values are:
> > +          0: REFIN(+)/REFIN(−).
> > +          1: REFIN2(+)/REFIN2(−)
> > +          2: REFOUT/AVSS (Internal reference)
> > +          3: AVDD
> > +
> > +          External reference 2 only available on ad7173-8.
> > +          If not specified, internal reference used.
> > +        $ref: /schemas/types.yaml#/definitions/uint32
> > +        enum: [0, 1, 2, 3]
> > +        default: 2

I really don't like these properties where integers are mapped to
functionalities like this. I'd much rather see a enum of strings where
the meaning for these things can be put in & there's no need to look up
the binding to figure out what "adi,reference-select = <3>" means.
For example having "refin", "refin2", "refout-avss" & "avdd" as the
options and therefore "adi,reference-select = "avdd" in a devicetree is
a lot more understandable IMO.


Cheers,
Conor.

> > +
> > +      bipolar:
> > +        type: boolean
> > +
> > +    required:
> > +      - reg
> > +      - diff-channels
> > +
> > +allOf:
> > +  - $ref: /schemas/spi/spi-peripheral-props.yaml#
> > +
> > +  - if:
> > +      properties:
> > +        compatible:
> > +          contains:
> > +            const: adi,ad7173-8
> > +    then:
> 
> ??? Maybe you want to use "not"?
> 
> > +    else:
> 
> > +      patternProperties:
> > +        "^channel@[0-9a-f]$":
> > +          properties:
> > +            enum: [0, 2, 3]
> > +
> > +unevaluatedProperties: false
> > +
> 
> Best regards,
> Krzysztof
>
Yujie Liu Nov. 20, 2023, 3:17 a.m. UTC | #4
Hi Dumitru,

kernel test robot noticed the following build warnings:

[auto build test WARNING on jic23-iio/togreg]
[also build test WARNING on linus/master v6.7-rc1 next-20231117]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/mitrutzceclan/iio-adc-ad7173-add-AD7173-driver/20231116-214919
base:   https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git togreg
patch link:    https://lore.kernel.org/r/20231116134655.21052-1-user%40HYB-hhAwRlzzMZb
patch subject: [PATCH v4 1/2] dt-bindings: adc: add AD7173
compiler: loongarch64-linux-gcc (GCC) 13.2.0
reproduce: (https://download.01.org/0day-ci/archive/20231117/202311172002.BPSsTFRY-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <yujie.liu@intel.com>
| Closes: https://lore.kernel.org/r/202311172002.BPSsTFRY-lkp@intel.com/

dtcheck warnings: (new ones prefixed by >>)
>> Documentation/devicetree/bindings/iio/adc/adi,ad7173.yaml:109:10: [error] empty value in block mapping (empty-values)
--
>> Documentation/devicetree/bindings/iio/adc/adi,ad7173.yaml: properties:required: ['compatible', 'reg', 'interrupts'] is not of type 'object', 'boolean'
   	from schema $id: http://json-schema.org/draft-07/schema#
>> Documentation/devicetree/bindings/iio/adc/adi,ad7173.yaml: allOf:1:then: None is not of type 'object', 'boolean'
   	from schema $id: http://json-schema.org/draft-07/schema#
>> Documentation/devicetree/bindings/iio/adc/adi,ad7173.yaml: allOf:1:else:patternProperties:^channel@[0-9a-f]$:properties:enum: [0, 2, 3] is not of type 'object', 'boolean'
   	from schema $id: http://json-schema.org/draft-07/schema#
>> Documentation/devicetree/bindings/iio/adc/adi,ad7173.yaml: allOf:1:else:patternProperties:^channel@[0-9a-f]$:properties: 'enum' should not be valid under {'$ref': '#/definitions/json-schema-prop-names'}
   	hint: A json-schema keyword was found instead of a DT property name.
   	from schema $id: http://devicetree.org/meta-schemas/keywords.yaml#
>> Documentation/devicetree/bindings/iio/adc/adi,ad7173.yaml: allOf:1:else:patternProperties:^channel@[0-9a-f]$:properties:enum: [0, 2, 3] is not of type 'object', 'boolean'
   	from schema $id: http://devicetree.org/meta-schemas/keywords.yaml#
>> Documentation/devicetree/bindings/iio/adc/adi,ad7173.yaml: properties: 'dependencies' should not be valid under {'$ref': '#/definitions/json-schema-prop-names'}
   	hint: A json-schema keyword was found instead of a DT property name.
   	from schema $id: http://devicetree.org/meta-schemas/keywords.yaml#
>> Documentation/devicetree/bindings/iio/adc/adi,ad7173.yaml: properties: 'required' should not be valid under {'$ref': '#/definitions/json-schema-prop-names'}
   	hint: A json-schema keyword was found instead of a DT property name.
   	from schema $id: http://devicetree.org/meta-schemas/keywords.yaml#
>> Documentation/devicetree/bindings/iio/adc/adi,ad7173.yaml: properties:dependencies: 'anyOf' conditional failed, one must be fixed:
   	'refin2-supply' is not one of ['$ref', 'additionalItems', 'additionalProperties', 'allOf', 'anyOf', 'const', 'contains', 'default', 'dependencies', 'dependentRequired', 'dependentSchemas', 'deprecated', 'description', 'else', 'enum', 'exclusiveMaximum', 'exclusiveMinimum', 'items', 'if', 'minItems', 'minimum', 'maxItems', 'maximum', 'multipleOf', 'not', 'oneOf', 'pattern', 'patternProperties', 'properties', 'required', 'then', 'typeSize', 'unevaluatedProperties', 'uniqueItems']
   	'type' was expected
   	from schema $id: http://devicetree.org/meta-schemas/keywords.yaml#
>> Documentation/devicetree/bindings/iio/adc/adi,ad7173.yaml: properties:required: ['compatible', 'reg', 'interrupts'] is not of type 'object', 'boolean'
   	from schema $id: http://devicetree.org/meta-schemas/keywords.yaml#
--
   /usr/local/lib/python3.11/dist-packages/dtschema/schemas/reserved-memory/framebuffer.yaml: warning: ignoring duplicate '$id' value 'http://devicetree.org/schemas/reserved-memory/framebuffer.yaml#'
   /usr/local/lib/python3.11/dist-packages/dtschema/schemas/reserved-memory/memory-region.yaml: warning: ignoring duplicate '$id' value 'http://devicetree.org/schemas/reserved-memory/memory-region.yaml#'
   /usr/local/lib/python3.11/dist-packages/dtschema/schemas/reserved-memory/reserved-memory.yaml: warning: ignoring duplicate '$id' value 'http://devicetree.org/schemas/reserved-memory/reserved-memory.yaml#'
   /usr/local/lib/python3.11/dist-packages/dtschema/schemas/reserved-memory/shared-dma-pool.yaml: warning: ignoring duplicate '$id' value 'http://devicetree.org/schemas/reserved-memory/shared-dma-pool.yaml#'
   Documentation/devicetree/bindings/media/i2c/ti,ds90ub960.yaml: i2c-alias: missing type definition
>> Documentation/devicetree/bindings/iio/adc/adi,ad7173.yaml: dependencies: missing type definition
   Documentation/devicetree/bindings/sound/audio-graph.yaml: convert-sample-format: missing type definition
   Documentation/devicetree/bindings/serial/8250_omap.yaml: rs485-rts-active-high: missing type definition
   Documentation/devicetree/bindings/display/panel/advantech,idk-2121wr.yaml: dual-lvds-odd-pixels: missing type definition
   Documentation/devicetree/bindings/display/panel/advantech,idk-2121wr.yaml: dual-lvds-even-pixels: missing type definition

vim +109 Documentation/devicetree/bindings/iio/adc/adi,ad7173.yaml

6817f96dd6ee22 Dumitru Ceclan 2023-11-16   @1  # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
6817f96dd6ee22 Dumitru Ceclan 2023-11-16    2  # Copyright 2023 Analog Devices Inc.
6817f96dd6ee22 Dumitru Ceclan 2023-11-16    3  %YAML 1.2
6817f96dd6ee22 Dumitru Ceclan 2023-11-16    4  ---
6817f96dd6ee22 Dumitru Ceclan 2023-11-16    5  $id: http://devicetree.org/schemas/iio/adc/adi,ad7173.yaml#
6817f96dd6ee22 Dumitru Ceclan 2023-11-16    6  $schema: http://devicetree.org/meta-schemas/core.yaml#
6817f96dd6ee22 Dumitru Ceclan 2023-11-16    7  
6817f96dd6ee22 Dumitru Ceclan 2023-11-16    8  title: Analog Devices AD7173 ADC device driver
6817f96dd6ee22 Dumitru Ceclan 2023-11-16    9  
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   10  maintainers:
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   11    - Ceclan Dumitru <dumitru.ceclan@analog.com>
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   12  
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   13  description: |
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   14    Bindings for the Analog Devices AD717X ADC's. Datasheets for supported chips:
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   15      https://www.analog.com/media/en/technical-documentation/data-sheets/AD7172-2.pdf
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   16      https://www.analog.com/media/en/technical-documentation/data-sheets/AD7173-8.pdf
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   17      https://www.analog.com/media/en/technical-documentation/data-sheets/AD7175-2.pdf
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   18      https://www.analog.com/media/en/technical-documentation/data-sheets/AD7176-2.pdf
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   19  
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   20  properties:
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   21    compatible:
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   22      enum:
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   23        - adi,ad7172-2
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   24        - adi,ad7173-8
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   25        - adi,ad7175-2
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   26        - adi,ad7176-2
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   27  
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   28    reg:
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   29      maxItems: 1
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   30  
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   31    interrupts:
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   32      maxItems: 1
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   33  
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   34    '#address-cells':
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   35      const: 1
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   36  
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   37    '#size-cells':
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   38      const: 0
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   39  
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   40    spi-max-frequency:
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   41      maximum: 20000000
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   42  
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   43    refin-supply:
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   44      description: external reference supply, can be used as reference for conversion.
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   45  
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   46    refin2-supply:
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   47      description: external reference supply, can be used as reference for conversion.
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   48  
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   49    avdd-supply:
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   50      description: avdd supply, can be used as reference for conversion.
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   51  
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   52    dependencies:
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   53      refin2-supply:
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   54        properties:
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   55          compatible:
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   56            adi,ad7173-8
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   57  
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   58    required:
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   59      - compatible
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   60      - reg
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   61      - interrupts
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   62  
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   63  patternProperties:
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   64    "^channel@[0-9a-f]$":
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   65      type: object
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   66      $ref: adc.yaml
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   67      unevaluatedProperties: false
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   68  
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   69      properties:
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   70        reg:
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   71          minimum: 0
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   72          maximum: 15
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   73  
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   74        diff-channels:
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   75          items:
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   76            minimum: 0
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   77            maximum: 31
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   78  
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   79        adi,reference-select:
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   80          description: |
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   81            Select the reference source to use when converting on
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   82            the specific channel. Valid values are:
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   83            0: REFIN(+)/REFIN(−).
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   84            1: REFIN2(+)/REFIN2(−)
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   85            2: REFOUT/AVSS (Internal reference)
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   86            3: AVDD
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   87  
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   88            External reference 2 only available on ad7173-8.
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   89            If not specified, internal reference used.
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   90          $ref: /schemas/types.yaml#/definitions/uint32
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   91          enum: [0, 1, 2, 3]
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   92          default: 2
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   93  
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   94        bipolar:
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   95          type: boolean
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   96  
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   97      required:
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   98        - reg
6817f96dd6ee22 Dumitru Ceclan 2023-11-16   99        - diff-channels
6817f96dd6ee22 Dumitru Ceclan 2023-11-16  100  
6817f96dd6ee22 Dumitru Ceclan 2023-11-16  101  allOf:
6817f96dd6ee22 Dumitru Ceclan 2023-11-16  102    - $ref: /schemas/spi/spi-peripheral-props.yaml#
6817f96dd6ee22 Dumitru Ceclan 2023-11-16  103  
6817f96dd6ee22 Dumitru Ceclan 2023-11-16  104    - if:
6817f96dd6ee22 Dumitru Ceclan 2023-11-16  105        properties:
6817f96dd6ee22 Dumitru Ceclan 2023-11-16  106          compatible:
6817f96dd6ee22 Dumitru Ceclan 2023-11-16  107            contains:
6817f96dd6ee22 Dumitru Ceclan 2023-11-16  108              const: adi,ad7173-8
6817f96dd6ee22 Dumitru Ceclan 2023-11-16 @109      then:
6817f96dd6ee22 Dumitru Ceclan 2023-11-16  110      else:
6817f96dd6ee22 Dumitru Ceclan 2023-11-16  111        patternProperties:
6817f96dd6ee22 Dumitru Ceclan 2023-11-16  112          "^channel@[0-9a-f]$":
6817f96dd6ee22 Dumitru Ceclan 2023-11-16  113            properties:
6817f96dd6ee22 Dumitru Ceclan 2023-11-16  114              enum: [0, 2, 3]
6817f96dd6ee22 Dumitru Ceclan 2023-11-16  115
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad7173.yaml b/Documentation/devicetree/bindings/iio/adc/adi,ad7173.yaml
new file mode 100644
index 000000000000..92aa352b6653
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/adc/adi,ad7173.yaml
@@ -0,0 +1,166 @@ 
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+# Copyright 2023 Analog Devices Inc.
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/adc/adi,ad7173.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Analog Devices AD7173 ADC device driver
+
+maintainers:
+  - Ceclan Dumitru <dumitru.ceclan@analog.com>
+
+description: |
+  Bindings for the Analog Devices AD717X ADC's. Datasheets for supported chips:
+    https://www.analog.com/media/en/technical-documentation/data-sheets/AD7172-2.pdf
+    https://www.analog.com/media/en/technical-documentation/data-sheets/AD7173-8.pdf
+    https://www.analog.com/media/en/technical-documentation/data-sheets/AD7175-2.pdf
+    https://www.analog.com/media/en/technical-documentation/data-sheets/AD7176-2.pdf
+
+properties:
+  compatible:
+    enum:
+      - adi,ad7172-2
+      - adi,ad7173-8
+      - adi,ad7175-2
+      - adi,ad7176-2
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  '#address-cells':
+    const: 1
+
+  '#size-cells':
+    const: 0
+
+  spi-max-frequency:
+    maximum: 20000000
+
+  refin-supply:
+    description: external reference supply, can be used as reference for conversion.
+
+  refin2-supply:
+    description: external reference supply, can be used as reference for conversion.
+
+  avdd-supply:
+    description: avdd supply, can be used as reference for conversion.
+
+  dependencies:
+    refin2-supply:
+      properties:
+        compatible:
+          adi,ad7173-8
+
+  required:
+    - compatible
+    - reg
+    - interrupts
+
+patternProperties:
+  "^channel@[0-9a-f]$":
+    type: object
+    $ref: adc.yaml
+    unevaluatedProperties: false
+
+    properties:
+      reg:
+        minimum: 0
+        maximum: 15
+
+      diff-channels:
+        items:
+          minimum: 0
+          maximum: 31
+
+      adi,reference-select:
+        description: |
+          Select the reference source to use when converting on
+          the specific channel. Valid values are:
+          0: REFIN(+)/REFIN(−).
+          1: REFIN2(+)/REFIN2(−)
+          2: REFOUT/AVSS (Internal reference)
+          3: AVDD
+
+          External reference 2 only available on ad7173-8.
+          If not specified, internal reference used.
+        $ref: /schemas/types.yaml#/definitions/uint32
+        enum: [0, 1, 2, 3]
+        default: 2
+
+      bipolar:
+        type: boolean
+
+    required:
+      - reg
+      - diff-channels
+
+allOf:
+  - $ref: /schemas/spi/spi-peripheral-props.yaml#
+
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: adi,ad7173-8
+    then:
+    else:
+      patternProperties:
+        "^channel@[0-9a-f]$":
+          properties:
+            enum: [0, 2, 3]
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/gpio/gpio.h>
+    #include <dt-bindings/interrupt-controller/irq.h>
+
+    spi {
+      #address-cells = <1>;
+      #size-cells = <0>;
+
+      adc@0 {
+        compatible = "adi,ad7173-8";
+        reg = <0>;
+
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
+        interrupt-parent = <&gpio>;
+        spi-max-frequency = <5000000>;
+
+        channel@0 {
+          reg = <0>;
+          bipolar;
+          diff-channels = <0 1>;
+        };
+
+        channel@1 {
+          reg = <1>;
+          diff-channels = <2 3>;
+        };
+
+        channel@2 {
+          reg = <2>;
+          bipolar;
+          diff-channels = <4 5>;
+        };
+
+        channel@3 {
+          reg = <3>;
+          bipolar;
+          diff-channels = <6 7>;
+        };
+
+        channel@4 {
+          reg = <4>;
+          diff-channels = <8 9>;
+        };
+      };
+    };