| # SPDX-License-Identifier: GPL-2.0 |
| %YAML 1.2 |
| --- |
| $id: http://devicetree.org/schemas/iio/adc/adi,ad7606.yaml# |
| $schema: http://devicetree.org/meta-schemas/core.yaml# |
| |
| title: Analog Devices AD7606 Simultaneous Sampling ADC |
| |
| maintainers: |
| - Michael Hennerich <michael.hennerich@analog.com> |
| |
| description: | |
| Analog Devices AD7606 Simultaneous Sampling ADC |
| 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/AD7616.pdf |
| |
| properties: |
| compatible: |
| enum: |
| - adi,ad7605-4 |
| - adi,ad7606-4 |
| - adi,ad7606-6 |
| - adi,ad7606-8 # Referred to as AD7606 (without -8) in the datasheet |
| - adi,ad7606b |
| - adi,ad7616 |
| |
| reg: |
| maxItems: 1 |
| |
| spi-cpha: true |
| |
| spi-cpol: true |
| |
| avcc-supply: true |
| |
| vdrive-supply: |
| description: |
| Determines the voltage level at which the interface logic pins will |
| operate. |
| |
| refin-supply: |
| description: |
| The voltage supply for optional external reference voltage. |
| |
| interrupts: |
| description: |
| The BUSY pin falling edge indicates that the conversion is over, and thus |
| new data is available. |
| maxItems: 1 |
| |
| adi,conversion-start-gpios: |
| description: |
| Must be the device tree identifier of the CONVST pin(s). This logic input |
| is used to initiate conversions on the analog input channels. As the line |
| is active high, it should be marked GPIO_ACTIVE_HIGH. |
| minItems: 1 |
| maxItems: 2 |
| |
| reset-gpios: |
| description: |
| Must be the device tree identifier of the RESET pin. If specified, it will |
| be asserted during driver probe. On the AD7606x, as the line is active |
| high, it should be marked GPIO_ACTIVE_HIGH. On the AD7616, as the line is |
| active low, it should be marked GPIO_ACTIVE_LOW. |
| maxItems: 1 |
| |
| standby-gpios: |
| description: |
| Must be the device tree identifier of the STBY pin. This pin is used to |
| place the AD7606 into one of two power-down modes, Standby mode or |
| Shutdown mode. As the line is active low, it should be marked |
| GPIO_ACTIVE_LOW. |
| maxItems: 1 |
| |
| adi,first-data-gpios: |
| description: |
| Must be the device tree identifier of the FRSTDATA pin. The FRSTDATA |
| output indicates when the first channel, V1, is being read back on either |
| the parallel, byte or serial interface. As the line is active high, it |
| should be marked GPIO_ACTIVE_HIGH. |
| maxItems: 1 |
| |
| adi,range-gpios: |
| description: |
| Must be the device tree identifier of the RANGE pin. The state on this |
| pin determines the input range of the analog input channels. If this pin |
| is tied to a logic high, the analog input range is ±10V for all channels. |
| On the AD760X, if this pin is tied to a logic low, the analog input range |
| is ±5V for all channels. As the line is active high, it should be marked |
| GPIO_ACTIVE_HIGH. On the AD7616, there are 2 pins, and if the 2 pins are |
| tied to a logic high, software mode is enabled, otherwise one of the 3 |
| possible range values is selected. |
| minItems: 1 |
| maxItems: 2 |
| |
| adi,oversampling-ratio-gpios: |
| description: |
| Must be the device tree identifier of the over-sampling mode pins. As the |
| line is active high, it should be marked GPIO_ACTIVE_HIGH. On the AD7606X |
| parts that support it, if all 3 pins are tied to a logic high, software |
| mode is enabled. |
| maxItems: 3 |
| |
| adi,sw-mode: |
| description: |
| Software mode of operation, so far available only for AD7616 and AD7606B. |
| It is enabled when all three oversampling mode pins are connected to high |
| level for the AD7606B, or both the range selection are connected to high |
| level for the AD7616. The device is configured by the corresponding |
| registers. If the adi,oversampling-ratio-gpios property is defined, then |
| the driver will set the oversampling gpios to high. Otherwise, it is |
| assumed that the pins are hardwired to VDD. |
| type: boolean |
| |
| required: |
| - compatible |
| - reg |
| - spi-cpha |
| - avcc-supply |
| - vdrive-supply |
| - interrupts |
| - adi,conversion-start-gpios |
| |
| allOf: |
| - $ref: /schemas/spi/spi-peripheral-props.yaml# |
| |
| - if: |
| properties: |
| compatible: |
| contains: |
| const: adi,ad7616 |
| then: |
| properties: |
| adi,first-data-gpios: false |
| standby-gpios: false |
| adi,range-gpios: |
| maxItems: 2 |
| else: |
| properties: |
| adi,range-gpios: |
| maxItems: 1 |
| |
| - if: |
| properties: |
| compatible: |
| contains: |
| enum: |
| - adi,ad7605-4 |
| - adi,ad7616 |
| then: |
| properties: |
| adi,oversampling-ratio-gpios: false |
| |
| - if: |
| properties: |
| compatible: |
| contains: |
| enum: |
| - adi,ad7605-4 |
| - adi,ad7606-4 |
| - adi,ad7606-6 |
| - adi,ad7606-8 |
| then: |
| properties: |
| adi,sw-mode: false |
| else: |
| properties: |
| adi,conversion-start-gpios: |
| maxItems: 1 |
| |
| unevaluatedProperties: false |
| |
| examples: |
| - | |
| #include <dt-bindings/gpio/gpio.h> |
| #include <dt-bindings/interrupt-controller/irq.h> |
| spi { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| adc@0 { |
| compatible = "adi,ad7606-8"; |
| reg = <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>; |
| adi,oversampling-ratio-gpios = <&gpio 18 GPIO_ACTIVE_HIGH>, |
| <&gpio 23 GPIO_ACTIVE_HIGH>, |
| <&gpio 26 GPIO_ACTIVE_HIGH>; |
| standby-gpios = <&gpio 24 GPIO_ACTIVE_LOW>; |
| }; |
| }; |
| ... |