| # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/iio/adc/adi,ad7944.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: Analog Devices PulSAR LFCSP Analog to Digital Converters |
| |
| maintainers: |
| - Michael Hennerich <Michael.Hennerich@analog.com> |
| - Nuno Sá <nuno.sa@analog.com> |
| |
| description: | |
| A family of pin-compatible single channel differential analog to digital |
| converters with SPI support in a LFCSP package. |
| |
| * https://www.analog.com/en/products/ad7944.html |
| * https://www.analog.com/en/products/ad7985.html |
| * https://www.analog.com/en/products/ad7986.html |
| |
| $ref: /schemas/spi/spi-peripheral-props.yaml# |
| |
| properties: |
| compatible: |
| enum: |
| - adi,ad7944 |
| - adi,ad7985 |
| - adi,ad7986 |
| |
| reg: |
| maxItems: 1 |
| |
| spi-max-frequency: |
| maximum: 111111111 |
| |
| spi-cpol: true |
| spi-cpha: true |
| |
| adi,spi-mode: |
| $ref: /schemas/types.yaml#/definitions/string |
| enum: [ single, chain ] |
| description: | |
| This property indicates the SPI wiring configuration. |
| |
| When this property is omitted, it is assumed that the device is using what |
| the datasheet calls "4-wire mode". This is the conventional SPI mode used |
| when there are multiple devices on the same bus. In this mode, the CNV |
| line is used to initiate the conversion and the SDI line is connected to |
| CS on the SPI controller. |
| |
| When this property is present, it indicates that the device is using one |
| of the following alternative wiring configurations: |
| |
| * single: The datasheet calls this "3-wire mode". (NOTE: The datasheet's |
| definition of 3-wire mode is NOT at all related to the standard |
| spi-3wire property!) This mode is often used when the ADC is the only |
| device on the bus. In this mode, SDI is tied to VIO, and the CNV line |
| can be connected to the CS line of the SPI controller or to a GPIO, in |
| which case the CS line of the controller is unused. |
| * chain: The datasheet calls this "chain mode". This mode is used to save |
| on wiring when multiple ADCs are used. In this mode, the SDI line of |
| one chip is tied to the SDO of the next chip in the chain and the SDI of |
| the last chip in the chain is tied to GND. Only the first chip in the |
| chain is connected to the SPI bus. The CNV line of all chips are tied |
| together. The CS line of the SPI controller can be used as the CNV line |
| only if it is active high. |
| |
| '#daisy-chained-devices': true |
| |
| avdd-supply: |
| description: A 2.5V supply that powers the analog circuitry. |
| |
| dvdd-supply: |
| description: A 2.5V supply that powers the digital circuitry. |
| |
| vio-supply: |
| description: |
| A 1.8V to 2.7V supply for the digital inputs and outputs. |
| |
| bvdd-supply: |
| description: |
| A voltage supply for the buffered power. When using an external reference |
| without an internal buffer (PDREF high, REFIN low), this should be |
| connected to the same supply as ref-supply. Otherwise, when using an |
| internal reference or an external reference with an internal buffer, this |
| is connected to a 5V supply. |
| |
| ref-supply: |
| description: |
| Voltage regulator for the external reference voltage (REF). This property |
| is omitted when using an internal reference. |
| |
| refin-supply: |
| description: |
| Voltage regulator for the reference buffer input (REFIN). When using an |
| external buffer with internal reference, this should be connected to a |
| 1.2V external reference voltage supply. Otherwise, this property is |
| omitted. |
| |
| cnv-gpios: |
| description: |
| The Convert Input (CNV). This input has multiple functions. It initiates |
| the conversions and selects the SPI mode of the device (chain or CS). In |
| 'single' mode, this property is omitted if the CNV pin is connected to the |
| CS line of the SPI controller. |
| maxItems: 1 |
| |
| turbo-gpios: |
| description: |
| GPIO connected to the TURBO line. If omitted, it is assumed that the TURBO |
| line is hard-wired and the state is determined by the adi,always-turbo |
| property. |
| maxItems: 1 |
| |
| adi,always-turbo: |
| type: boolean |
| description: |
| When present, this property indicates that the TURBO line is hard-wired |
| and the state is always high. If neither this property nor turbo-gpios is |
| present, the TURBO line is assumed to be hard-wired and the state is |
| always low. |
| |
| interrupts: |
| description: |
| The SDO pin can also function as a busy indicator. This node should be |
| connected to an interrupt that is triggered when the SDO line goes low |
| while the SDI line is high and the CNV line is low ('single' mode) or the |
| SDI line is low and the CNV line is high ('multi' mode); or when the SDO |
| line goes high while the SDI and CNV lines are high (chain mode), |
| maxItems: 1 |
| |
| required: |
| - compatible |
| - reg |
| - avdd-supply |
| - dvdd-supply |
| - vio-supply |
| - bvdd-supply |
| |
| allOf: |
| # ref-supply and refin-supply are mutually exclusive (neither is also valid) |
| - if: |
| required: |
| - ref-supply |
| then: |
| properties: |
| refin-supply: false |
| - if: |
| required: |
| - refin-supply |
| then: |
| properties: |
| ref-supply: false |
| # in '4-wire' mode, cnv-gpios is required, for other modes it is optional |
| - if: |
| not: |
| required: |
| - adi,spi-mode |
| then: |
| required: |
| - cnv-gpios |
| # chain mode has lower SCLK max rate and doesn't work when TURBO is enabled |
| - if: |
| required: |
| - adi,spi-mode |
| properties: |
| adi,spi-mode: |
| const: chain |
| then: |
| properties: |
| spi-max-frequency: |
| maximum: 90909090 |
| adi,always-turbo: false |
| required: |
| - '#daisy-chained-devices' |
| else: |
| properties: |
| '#daisy-chained-devices': false |
| # turbo-gpios and adi,always-turbo are mutually exclusive |
| - if: |
| required: |
| - turbo-gpios |
| then: |
| properties: |
| adi,always-turbo: false |
| - if: |
| required: |
| - adi,always-turbo |
| then: |
| properties: |
| turbo-gpios: false |
| |
| unevaluatedProperties: false |
| |
| examples: |
| - | |
| #include <dt-bindings/gpio/gpio.h> |
| spi { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| adc@0 { |
| compatible = "adi,ad7944"; |
| reg = <0>; |
| spi-cpha; |
| spi-max-frequency = <111111111>; |
| avdd-supply = <&supply_2_5V>; |
| dvdd-supply = <&supply_2_5V>; |
| vio-supply = <&supply_1_8V>; |
| bvdd-supply = <&supply_5V>; |
| cnv-gpios = <&gpio 0 GPIO_ACTIVE_HIGH>; |
| turbo-gpios = <&gpio 1 GPIO_ACTIVE_HIGH>; |
| }; |
| }; |