# 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 maintainers: - Ceclan Dumitru description: | Analog Devices AD717x ADC's: The AD717x family offer a complete integrated Sigma-Delta ADC solution which can be used in high precision, low noise single channel applications (Life Science measurements) or higher speed multiplexed applications (Factory Automation PLC Input modules). 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. 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/AD7172-4.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/AD7175-8.pdf https://www.analog.com/media/en/technical-documentation/data-sheets/AD7176-2.pdf https://www.analog.com/media/en/technical-documentation/data-sheets/AD7177-2.pdf properties: compatible: enum: - adi,ad7172-2 - adi,ad7172-4 - adi,ad7173-8 - adi,ad7175-2 - adi,ad7175-8 - adi,ad7176-2 - adi,ad7177-2 reg: maxItems: 1 interrupts: minItems: 1 items: - description: | Ready: multiplexed with SPI data out. While SPI CS is low, can be used to indicate the completion of a conversion. - description: | Error: The three error bits in the status register (ADC_ERROR, CRC_ERROR, and REG_ERROR) are OR'ed, inverted, and mapped to the ERROR pin. Therefore, the ERROR pin indicates that an error has occurred. interrupt-names: minItems: 1 items: - const: rdy - const: err '#address-cells': const: 1 '#size-cells': const: 0 spi-max-frequency: maximum: 20000000 gpio-controller: description: Marks the device node as a GPIO controller. '#gpio-cells': const: 2 description: The first cell is the GPIO number and the second cell specifies GPIO flags, as defined in . vref-supply: description: | Differential external reference supply used for conversion. The reference voltage (Vref) specified here must be the voltage difference between the REF+ and REF- pins: Vref = (REF+) - (REF-). vref2-supply: description: | Differential external reference supply used for conversion. The reference voltage (Vref2) specified here must be the voltage difference between the REF2+ and REF2- pins: Vref2 = (REF2+) - (REF2-). avdd-supply: description: Avdd supply, can be used as reference for conversion. This supply is referenced to AVSS, voltage specified here represents (AVDD1 - AVSS). avdd2-supply: description: Avdd2 supply, used as the input to the internal voltage regulator. This supply is referenced to AVSS, voltage specified here represents (AVDD2 - AVSS). iovdd-supply: description: iovdd supply, used for the chip digital interface. clocks: maxItems: 1 description: | Optional external clock source. Can include one clock source: external clock or external crystal. clock-names: enum: - ext-clk - xtal '#clock-cells': const: 0 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: vref : REF+ /REF− vref2 : REF2+ /REF2− refout-avss: REFOUT/AVSS (Internal reference) avdd : AVDD /AVSS External reference ref2 only available on ad7173-8 and ad7172-4. Internal reference refout-avss not available on ad7172-4. If not specified, internal reference used (if available). $ref: /schemas/types.yaml#/definitions/string enum: - vref - vref2 - refout-avss - avdd default: refout-avss required: - reg - diff-channels required: - compatible - reg allOf: - $ref: /schemas/spi/spi-peripheral-props.yaml# # Only ad7172-4, ad7173-8 and ad7175-8 support vref2 # Other models have [0-3] channel registers - if: properties: compatible: not: contains: enum: - adi,ad7172-4 - adi,ad7173-8 - adi,ad7175-8 then: properties: vref2-supply: false patternProperties: "^channel@[0-9a-f]$": properties: adi,reference-select: enum: - vref - refout-avss - avdd reg: maximum: 3 # Model ad7172-4 does not support internal reference - if: properties: compatible: contains: const: adi,ad7172-4 then: patternProperties: "^channel@[0-9a-f]$": properties: reg: maximum: 7 adi,reference-select: enum: - vref - vref2 - avdd required: - adi,reference-select - if: anyOf: - required: [clock-names] - required: [clocks] then: properties: '#clock-cells': false unevaluatedProperties: false examples: - | #include #include 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-names = "rdy"; interrupt-parent = <&gpio>; spi-max-frequency = <5000000>; gpio-controller; #gpio-cells = <2>; #clock-cells = <0>; vref-supply = <&dummy_regulator>; channel@0 { reg = <0>; bipolar; diff-channels = <0 1>; adi,reference-select = "vref"; }; 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>; adi,reference-select = "avdd"; }; }; };