Commit 0733e514 authored by Alexandru Ardelean's avatar Alexandru Ardelean Committed by Jonathan Cameron
Browse files

dt-bindings: iio: adc: add docs for AD7606C-{16,18} parts



The driver will support the AD7606C-16 and AD7606C-18.
This change adds the compatible strings for these devices.

The AD7606C-16,18 channels also support these (individually configurable)
types of channels:
 - bipolar single-ended
 - unipolar single-ended
 - bipolar differential

Reviewed-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: default avatarAlexandru Ardelean <aardelean@baylibre.com>
Link: https://patch.msgid.link/20240919130444.2100447-8-aardelean@baylibre.com


Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent ab38c083
Loading
Loading
Loading
Loading
+120 −0
Original line number Diff line number Diff line
@@ -14,6 +14,8 @@ description: |
  https://www.analog.com/media/en/technical-documentation/data-sheets/AD7605-4.pdf
  https://www.analog.com/media/en/technical-documentation/data-sheets/ad7606_7606-6_7606-4.pdf
  https://www.analog.com/media/en/technical-documentation/data-sheets/AD7606B.pdf
  https://www.analog.com/media/en/technical-documentation/data-sheets/ad7606c-16.pdf
  https://www.analog.com/media/en/technical-documentation/data-sheets/ad7606c-18.pdf
  https://www.analog.com/media/en/technical-documentation/data-sheets/AD7616.pdf

properties:
@@ -24,11 +26,19 @@ properties:
      - adi,ad7606-6
      - adi,ad7606-8  # Referred to as AD7606 (without -8) in the datasheet
      - adi,ad7606b
      - adi,ad7606c-16
      - adi,ad7606c-18
      - adi,ad7616

  reg:
    maxItems: 1

  "#address-cells":
    const: 1

  "#size-cells":
    const: 0

  spi-cpha: true

  spi-cpol: true
@@ -114,6 +124,47 @@ properties:
      assumed that the pins are hardwired to VDD.
    type: boolean

patternProperties:
  "^channel@[1-8]$":
    type: object
    $ref: adc.yaml
    unevaluatedProperties: false

    properties:
      reg:
        description:
          The channel number, as specified in the datasheet (from 1 to 8).
        minimum: 1
        maximum: 8

      diff-channels:
        description:
          Each channel can be configured as a bipolar differential channel.
          The ADC uses the same positive and negative inputs for this.
          This property must be specified as 'reg' (or the channel number) for
          both positive and negative inputs (i.e. diff-channels = <reg reg>).
          Since the configuration is bipolar differential, the 'bipolar'
          property is required.
        items:
          minimum: 1
          maximum: 8

      bipolar:
        description:
          The ADC channels can be configured as
             * Bipolar single-ended
             * Unipolar single-ended
             * Bipolar differential
          Therefore in the DT, if no channel node is specified, it is considered
          'unipolar single-ended'. So for the other configurations the 'bipolar'
          property must be specified. If 'diff-channels' is specified, it is
          considered a bipolar differential channel. Otherwise it is bipolar
          single-ended.

    required:
      - reg
      - bipolar

required:
  - compatible
  - reg
@@ -170,6 +221,25 @@ allOf:
        adi,conversion-start-gpios:
          maxItems: 1

  - if:
      not:
        required:
          - adi,sw-mode
    then:
      patternProperties:
        "^channel@[1-8]$": false

  - if:
      not:
        properties:
          compatible:
            enum:
              - adi,ad7606c-16
              - adi,ad7606c-18
    then:
      patternProperties:
        "^channel@[1-8]$": false

unevaluatedProperties: false

examples:
@@ -202,4 +272,54 @@ examples:
            standby-gpios = <&gpio 24 GPIO_ACTIVE_LOW>;
        };
    };
  - |
    #include <dt-bindings/gpio/gpio.h>
    #include <dt-bindings/interrupt-controller/irq.h>
    spi {
        #address-cells = <1>;
        #size-cells = <0>;

        adc@0 {
            compatible = "adi,ad7606c-18";
            reg = <0>;

            #address-cells = <1>;
            #size-cells = <0>;

            spi-max-frequency = <1000000>;
            spi-cpol;
            spi-cpha;

            avcc-supply = <&adc_vref>;
            vdrive-supply = <&vdd_supply>;

            interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
            interrupt-parent = <&gpio>;

            adi,conversion-start-gpios = <&gpio 17 GPIO_ACTIVE_HIGH>;
            reset-gpios = <&gpio 27 GPIO_ACTIVE_HIGH>;
            adi,first-data-gpios = <&gpio 22 GPIO_ACTIVE_HIGH>;
            standby-gpios = <&gpio 24 GPIO_ACTIVE_LOW>;

            adi,sw-mode;

            channel@1 {
                reg = <1>;
                diff-channels = <1 1>;
                bipolar;
            };

            channel@3 {
                reg = <3>;
                bipolar;
            };

            channel@8 {
                reg = <8>;
                diff-channels = <8 8>;
                bipolar;
            };

        };
    };
...