On Thu, Aug 10, 2023 at 12:33:16PM +0300, Dumitru Ceclan wrote: > The AD717x 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. > > Signed-off-by: Dumitru Ceclan <mitrutzceclan@xxxxxxxxx> > --- > .../bindings/iio/adc/adi,ad717x.yaml | 158 ++++++++++++++++++ > 1 file changed, 158 insertions(+) > create mode 100644 Documentation/devicetree/bindings/iio/adc/adi,ad717x.yaml > > diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad717x.yaml b/Documentation/devicetree/bindings/iio/adc/adi,ad717x.yaml > new file mode 100644 > index 000000000000..f12926e69958 > --- /dev/null > +++ b/Documentation/devicetree/bindings/iio/adc/adi,ad717x.yaml > @@ -0,0 +1,158 @@ > +# 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,ad717x.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Analog Devices AD717X ADC family SPI driver Drop 'SPI driver'. This is not a driver. > + > +maintainers: > + - Ceclan Dumitru <dumitru.ceclan@xxxxxxxxxx> > + > +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 > + > + spi-cpol: > + type: boolean > + > + spi-cpha: > + type: boolean > + > + adi,temp-channel: > + description: > + Enables temperature reading channel > + type: boolean > + > + dependencies: > + adi,temp-channel: > + compatible: > + enum: > + - adi,ad7172-2 > + - adi,ad7173-8 > + - adi,ad7175-2 That's not actually valid schema. You are missing "properties" above "compatible". I'm also not sure the tools which do a number of fixups/transforms on schemas would handle this. I do think this is a bit nicer than the if/then schemas we normally use for restricting properties by compatibles. > + > + Extra blank line. > + required: > + - compatible > + - reg > + - interrupts > + - spi-cpol > + - spi-cpha If the device(s) are not configurable, then you shouldn't need these 2 properties. The driver can hardcode the correct setting. > + > +patternProperties: > + "^channel@([0-9a-f])$": Don't need (). > + type: object > + $ref: adc.yaml > + unevaluatedProperties: false > + > + properties: > + reg: > + description: Channel number > + minimum: 0 > + maximum: 15 > + > + diff-channels: > + description: > + Analog input pins > + items: > + minimum: 0 > + maximum: 31 > + > + adi,bipolar: > + description: Specify if the channel should measure in bipolar mode. > + type: boolean > + > + required: > + - reg > + - diff-channels > + > +allOf: > + - $ref: /schemas/spi/spi-peripheral-props.yaml# > + > +unevaluatedProperties: false > + > +examples: > + - | > + #include <dt-bindings/gpio/gpio.h> > + #include <dt-bindings/interrupt-controller/irq.h> > + > + spi { > + status = "okay"; Drop status. You need #address-cells and #size-cells. Did you test this? > + > + ad7173@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>; > + spi-cpol; > + spi-cpha; > + > + adi,temp-channel; > + > + channel@0 { > + reg = <0>; > + adi,bipolar; > + > + diff-channels = <0 1>; > + }; > + > + channel@1 { > + reg = <1>; > + > + diff-channels = <2 3>; > + }; > + > + channel@2 { > + reg = <2>; > + adi,bipolar; > + > + diff-channels = <4 5>; > + }; > + > + channel@3 { > + reg = <3>; > + adi,bipolar; > + > + diff-channels = <6 7>; > + }; > + > + channel@4 { > + reg = <4>; > + > + diff-channels = <8 9>; > + }; > + }; > + }; > -- > 2.30.2 >