On Sat, Apr 13, 2024 at 10:13 AM Alisa-Dariana Roman <alisadariana@xxxxxxxxx> wrote: > > Unlike the other AD719Xs, AD7194 has configurable differential > channels. The user can dynamically configure them in the devicetree. > > Also add an example for AD7194 devicetree. > > Signed-off-by: Alisa-Dariana Roman <alisa.roman@xxxxxxxxxx> > --- > .../bindings/iio/adc/adi,ad7192.yaml | 74 +++++++++++++++++++ > 1 file changed, 74 insertions(+) > > diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad7192.yaml b/Documentation/devicetree/bindings/iio/adc/adi,ad7192.yaml > index ba506af3b73e..855f0a2d7d75 100644 > --- a/Documentation/devicetree/bindings/iio/adc/adi,ad7192.yaml > +++ b/Documentation/devicetree/bindings/iio/adc/adi,ad7192.yaml > @@ -21,8 +21,15 @@ properties: > - adi,ad7190 > - adi,ad7192 > - adi,ad7193 > + - adi,ad7194 > - adi,ad7195 > > + "#address-cells": > + const: 1 > + > + "#size-cells": > + const: 0 > + > reg: > maxItems: 1 > > @@ -104,8 +111,43 @@ required: > - spi-cpol > - spi-cpha > > +patternProperties: > + "^channel@[0-9]+$": > + type: object > + $ref: adc.yaml > + unevaluatedProperties: false > + > + properties: > + reg: > + description: The channel index. > + minimum: 1 > + maximum: 256 > + > + diff-channels: > + description: | > + Both inputs can be connected to pins AIN1 to AIN16 by choosing the > + appropriate value from 1 to 16. > + items: > + minimum: 1 > + maximum: 16 Don't we also need to allow 0 for AINCOM here? Or is this property only for fully differential pairs and not pseudo-differential pairs? > + > + required: > + - reg > + - diff-channels > + > allOf: > - $ref: /schemas/spi/spi-peripheral-props.yaml# > + - if: > + properties: > + compatible: > + enum: > + - adi,ad7190 > + - adi,ad7192 > + - adi,ad7193 > + - adi,ad7195 > + then: > + patternProperties: > + "^channel@[0-9]+$": false > > unevaluatedProperties: false > > @@ -136,3 +178,35 @@ examples: > adi,burnout-currents-enable; > }; > }; > + - | > + spi { > + #address-cells = <1>; > + #size-cells = <0>; > + > + adc@0 { > + #address-cells = <1>; > + #size-cells = <0>; > + compatible = "adi,ad7194"; > + reg = <0>; > + spi-max-frequency = <1000000>; > + spi-cpol; > + spi-cpha; > + clocks = <&ad7192_mclk>; > + clock-names = "mclk"; > + interrupts = <25 0x2>; > + interrupt-parent = <&gpio>; > + dvdd-supply = <&dvdd>; > + avdd-supply = <&avdd>; > + vref-supply = <&vref>; > + > + channel@1 { > + reg = <1>; > + diff-channels = <1 6>; > + }; > + > + channel@2 { > + reg = <2>; > + diff-channels = <16 5>; > + }; > + }; > + }; > -- > 2.34.1 >