On Wed, Apr 17, 2024 at 08:00:53PM +0300, Alisa-Dariana Roman 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 | 77 +++++++++++++++++++ > 1 file changed, 77 insertions(+) > > diff --git a/Documentation/devicetree/bindings/iio/adc/adi,ad7192.yaml b/Documentation/devicetree/bindings/iio/adc/adi,ad7192.yaml > index cf5c568f140a..7e4e15e4e648 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 > > @@ -89,6 +96,30 @@ properties: > description: see Documentation/devicetree/bindings/iio/adc/adc.yaml > type: boolean > > +patternProperties: > + "^channel@[0-9a-z]+$": Unit-addresses are hex (typically). So something like: '^channel@(100|[0-9a-f]{1,2})$' > + type: object > + $ref: adc.yaml > + unevaluatedProperties: false > + > + properties: > + reg: > + description: The channel index. > + minimum: 1 > + maximum: 256 Why not 0 based? > + > + diff-channels: > + description: | Don't need '|' if no formatting. > + Both inputs can be connected to pins AIN1 to AIN16 by choosing the > + appropriate value from 1 to 16. > + items: > + minimum: 1 > + maximum: 16 > + > + required: > + - reg > + - diff-channels Single ended modes aren't supported? > + > required: > - compatible > - reg > @@ -103,6 +134,17 @@ required: > > allOf: > - $ref: /schemas/spi/spi-peripheral-props.yaml# > + - if: > + properties: > + compatible: > + enum: > + - adi,ad7190 > + - adi,ad7192 > + - adi,ad7193 > + - adi,ad7195 > + then: > + patternProperties: > + "^channel@[0-9a-z]+$": false > > unevaluatedProperties: false > > @@ -133,3 +175,38 @@ examples: > adi,burnout-currents-enable; > }; > }; > + - | > + spi { > + #address-cells = <1>; > + #size-cells = <0>; > + > + adc@0 { > + compatible = "adi,ad7194"; > + reg = <0>; > + > + #address-cells = <1>; > + #size-cells = <0>; > + > + spi-max-frequency = <1000000>; > + spi-cpol; > + spi-cpha; > + clocks = <&ad7192_mclk>; > + clock-names = "mclk"; > + interrupts = <25 0x2>; > + interrupt-parent = <&gpio>; > + aincom-supply = <&aincom>; > + 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 >