blob: 69408cae3db9603b27c7c4d1b93f548d5a9dd40c [file] [log] [blame]
# 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>;
};
};
...