371 lines
9.5 KiB
YAML
371 lines
9.5 KiB
YAML
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||
|
%YAML 1.2
|
||
|
---
|
||
|
$id: http://devicetree.org/schemas/iio/addac/adi,ad74115.yaml#
|
||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||
|
|
||
|
title: Analog Devices AD74115H device
|
||
|
|
||
|
maintainers:
|
||
|
- Cosmin Tanislav <cosmin.tanislav@analog.com>
|
||
|
|
||
|
description: |
|
||
|
The AD74115H is a single-channel software configurable input/output
|
||
|
device for industrial control applications. It contains functionality for
|
||
|
analog output, analog input, digital output, digital input, resistance
|
||
|
temperature detector, and thermocouple measurements integrated into a single
|
||
|
chip solution with an SPI interface. The device features a 16-bit ADC and a
|
||
|
14-bit DAC.
|
||
|
|
||
|
https://www.analog.com/en/products/ad74115h.html
|
||
|
|
||
|
properties:
|
||
|
compatible:
|
||
|
enum:
|
||
|
- adi,ad74115h
|
||
|
|
||
|
reg:
|
||
|
maxItems: 1
|
||
|
|
||
|
spi-max-frequency:
|
||
|
maximum: 24000000
|
||
|
|
||
|
spi-cpol: true
|
||
|
|
||
|
reset-gpios: true
|
||
|
|
||
|
interrupts:
|
||
|
minItems: 1
|
||
|
maxItems: 2
|
||
|
|
||
|
interrupt-names:
|
||
|
minItems: 1
|
||
|
maxItems: 2
|
||
|
items:
|
||
|
enum:
|
||
|
- adc_rdy
|
||
|
- alert
|
||
|
|
||
|
avdd-supply: true
|
||
|
avcc-supply: true
|
||
|
dvcc-supply: true
|
||
|
dovdd-supply: true
|
||
|
refin-supply: true
|
||
|
|
||
|
adi,ch-func:
|
||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||
|
description: |
|
||
|
Channel function.
|
||
|
0 - High impedance
|
||
|
1 - Voltage output
|
||
|
2 - Current output
|
||
|
3 - Voltage input
|
||
|
4 - Current input, externally-powered
|
||
|
5 - Current input, loop-powered
|
||
|
6 - Resistance input
|
||
|
7 - RTD measure
|
||
|
8 - Digital input logic
|
||
|
9 - Digital input, loop-powered
|
||
|
10 - Current output with HART
|
||
|
11 - Current input, externally-powered, with HART
|
||
|
12 - Current input, loop-powered, with HART
|
||
|
minimum: 0
|
||
|
maximum: 12
|
||
|
default: 0
|
||
|
|
||
|
adi,conv2-mux:
|
||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||
|
description: |
|
||
|
Input node for ADC conversion 2.
|
||
|
0 - SENSE_EXT1 to AGND_SENSE
|
||
|
1 - SENSE_EXT2 to AGND_SENSE
|
||
|
2 - SENSE_EXT2 to SENSE_EXT1
|
||
|
3 - AGND to AGND
|
||
|
minimum: 0
|
||
|
maximum: 3
|
||
|
default: 0
|
||
|
|
||
|
adi,conv2-range-microvolt:
|
||
|
description: Conversion range for ADC conversion 2.
|
||
|
oneOf:
|
||
|
- items:
|
||
|
- enum: [-2500000, 0]
|
||
|
- const: 2500000
|
||
|
- items:
|
||
|
- enum: [-12000000, 0]
|
||
|
- const: 12000000
|
||
|
- items:
|
||
|
- const: -2500000
|
||
|
- const: 0
|
||
|
- items:
|
||
|
- const: -104000
|
||
|
- const: 104000
|
||
|
- items:
|
||
|
- const: 0
|
||
|
- const: 625000
|
||
|
|
||
|
adi,sense-agnd-buffer-low-power:
|
||
|
type: boolean
|
||
|
description:
|
||
|
Whether to enable low-power buffered mode for the AGND sense pin.
|
||
|
|
||
|
adi,lf-buffer-low-power:
|
||
|
type: boolean
|
||
|
description:
|
||
|
Whether to enable low-power buffered mode for the low-side filtered
|
||
|
sense pin.
|
||
|
|
||
|
adi,hf-buffer-low-power:
|
||
|
type: boolean
|
||
|
description:
|
||
|
Whether to enable low-power buffered mode for the high-side filtered
|
||
|
sense pin.
|
||
|
|
||
|
adi,ext2-buffer-low-power:
|
||
|
type: boolean
|
||
|
description: Whether to enable low-power buffered mode for the EXT2 pin.
|
||
|
|
||
|
adi,ext1-buffer-low-power:
|
||
|
type: boolean
|
||
|
description: Whether to enable low-power buffered mode for the EXT1 pin.
|
||
|
|
||
|
adi,comparator-invert:
|
||
|
type: boolean
|
||
|
description: Whether to invert the comparator output.
|
||
|
|
||
|
adi,digital-input-sink-range-high:
|
||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||
|
description: |
|
||
|
When not present, the digital input range is from 0 to 3700uA in steps
|
||
|
of 120uA, with a ~2k series resistance.
|
||
|
When present, the digital input range is from 0 to 7400uA in steps
|
||
|
of 240uA, with a ~1k series resistance.
|
||
|
|
||
|
adi,digital-input-sink-microamp:
|
||
|
description: Sink current in digital input mode.
|
||
|
minimum: 0
|
||
|
maximum: 3700
|
||
|
default: 0
|
||
|
|
||
|
adi,digital-input-debounce-mode-counter-reset:
|
||
|
type: boolean
|
||
|
description: |
|
||
|
When not present, a counter increments when the signal is asserted
|
||
|
and decrements when the signal is de-asserted.
|
||
|
When present, a counter increments while the signal is asserted and
|
||
|
resets when the signal de-asserts
|
||
|
|
||
|
adi,digital-input-unbuffered:
|
||
|
type: boolean
|
||
|
description: Whether to buffer digital input signals.
|
||
|
|
||
|
adi,digital-input-short-circuit-detection:
|
||
|
type: boolean
|
||
|
description: Whether to detect digital input short circuits.
|
||
|
|
||
|
adi,digital-input-open-circuit-detection:
|
||
|
type: boolean
|
||
|
description: Whether to detect digital input open circuits.
|
||
|
|
||
|
adi,digital-input-threshold-mode-fixed:
|
||
|
type: boolean
|
||
|
description: |
|
||
|
When not present, the digital input threshold range is -0.96 * AVDD
|
||
|
to AVDD.
|
||
|
When present, the threshold range is fixed from -19V to 30V.
|
||
|
|
||
|
adi,dac-bipolar:
|
||
|
type: boolean
|
||
|
description: |
|
||
|
When not present, the DAC operates in the 0V to 12V range.
|
||
|
When present, the DAC operates in the -12V to 12V range.
|
||
|
|
||
|
adi,charge-pump:
|
||
|
type: boolean
|
||
|
description: Whether to enable the internal charge pump.
|
||
|
|
||
|
adi,dac-hart-slew:
|
||
|
type: boolean
|
||
|
description: Whether to use a HART-compatible slew rate.
|
||
|
|
||
|
adi,dac-current-limit-low:
|
||
|
type: boolean
|
||
|
description: |
|
||
|
When not present, the DAC short-circuit current limit is 32mA in
|
||
|
either source or sink for VOUT and 4mA sink for IOUT.
|
||
|
When present, the limit is 16mA in either source or sink for VOUT,
|
||
|
1mA sink for IOUT.
|
||
|
|
||
|
adi,4-wire-rtd:
|
||
|
type: boolean
|
||
|
description: |
|
||
|
When not present, the ADC should be used for measuring 3-wire RTDs.
|
||
|
When present, the ADC should be used for measuring 4-wire RTDs.
|
||
|
|
||
|
adi,3-wire-rtd-excitation-swap:
|
||
|
type: boolean
|
||
|
description: Whether to swap the excitation for 3-wire RTD.
|
||
|
|
||
|
adi,rtd-excitation-current-microamp:
|
||
|
description: Excitation current to apply to RTD.
|
||
|
enum: [250, 500, 750, 1000]
|
||
|
default: 250
|
||
|
|
||
|
adi,ext1-burnout:
|
||
|
type: boolean
|
||
|
description: Whether to enable burnout current for EXT1.
|
||
|
|
||
|
adi,ext1-burnout-current-nanoamp:
|
||
|
description:
|
||
|
Burnout current in nanoamps to be applied to EXT1.
|
||
|
enum: [0, 50, 500, 1000, 10000]
|
||
|
default: 0
|
||
|
|
||
|
adi,ext1-burnout-current-polarity-sourcing:
|
||
|
type: boolean
|
||
|
description: |
|
||
|
When not present, the burnout current polarity for EXT1 is sinking.
|
||
|
When present, the burnout current polarity for EXT1 is sourcing.
|
||
|
|
||
|
adi,ext2-burnout:
|
||
|
type: boolean
|
||
|
description: Whether to enable burnout current for EXT2.
|
||
|
|
||
|
adi,ext2-burnout-current-nanoamp:
|
||
|
description: Burnout current in nanoamps to be applied to EXT2.
|
||
|
enum: [0, 50, 500, 1000, 10000]
|
||
|
default: 0
|
||
|
|
||
|
adi,ext2-burnout-current-polarity-sourcing:
|
||
|
type: boolean
|
||
|
description: |
|
||
|
When not present, the burnout current polarity for EXT2 is sinking.
|
||
|
When present, the burnout current polarity for EXT2 is sourcing.
|
||
|
|
||
|
adi,viout-burnout:
|
||
|
type: boolean
|
||
|
description: Whether to enable burnout current for VIOUT.
|
||
|
|
||
|
adi,viout-burnout-current-nanoamp:
|
||
|
description: Burnout current in nanoamps to be applied to VIOUT.
|
||
|
enum: [0, 1000, 10000]
|
||
|
default: 0
|
||
|
|
||
|
adi,viout-burnout-current-polarity-sourcing:
|
||
|
type: boolean
|
||
|
description: |
|
||
|
When not present, the burnout current polarity for VIOUT is sinking.
|
||
|
When present, the burnout current polarity for VIOUT is sourcing.
|
||
|
|
||
|
adi,gpio0-mode:
|
||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||
|
description: |
|
||
|
GPIO functions.
|
||
|
0 - Disabled
|
||
|
1 - Logic I/O
|
||
|
2 - Comparator output
|
||
|
3 - Control HART CD
|
||
|
4 - Monitor HART CD
|
||
|
5 - Monitor HART EOM status
|
||
|
minimum: 0
|
||
|
maximum: 5
|
||
|
default: 0
|
||
|
|
||
|
adi,gpio1-mode:
|
||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||
|
description: |
|
||
|
GPIO functions.
|
||
|
0 - Disabled
|
||
|
1 - Logic I/O
|
||
|
2 - Drive external digital output FET
|
||
|
3 - Control HART RXD
|
||
|
4 - Monitor HART RXD
|
||
|
5 - Monitor HART SOM status
|
||
|
minimum: 0
|
||
|
maximum: 5
|
||
|
default: 0
|
||
|
|
||
|
adi,gpio2-mode:
|
||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||
|
description: |
|
||
|
GPIO functions.
|
||
|
0 - Disabled
|
||
|
1 - Logic I/O
|
||
|
2 - Drive internal digital output FET
|
||
|
3 - Control HART TXD
|
||
|
4 - Monitor HART TXD
|
||
|
5 - Monitor HART TX complete status
|
||
|
minimum: 0
|
||
|
maximum: 5
|
||
|
default: 0
|
||
|
|
||
|
adi,gpio3-mode:
|
||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||
|
description: |
|
||
|
GPIO functions.
|
||
|
0 - Disabled
|
||
|
1 - Logic I/O
|
||
|
2 - High impedance
|
||
|
3 - Control HART RTS
|
||
|
4 - Monitor HART RTS
|
||
|
5 - Monitor HART CD complete status
|
||
|
minimum: 0
|
||
|
maximum: 5
|
||
|
default: 0
|
||
|
|
||
|
required:
|
||
|
- compatible
|
||
|
- reg
|
||
|
- spi-cpol
|
||
|
- avdd-supply
|
||
|
|
||
|
allOf:
|
||
|
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
||
|
- if:
|
||
|
required:
|
||
|
- adi,digital-input-sink-range-high
|
||
|
then:
|
||
|
properties:
|
||
|
adi,digital-input-sink-microamp:
|
||
|
maximum: 7400
|
||
|
|
||
|
unevaluatedProperties: false
|
||
|
|
||
|
examples:
|
||
|
- |
|
||
|
#include <dt-bindings/gpio/gpio.h>
|
||
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||
|
|
||
|
spi {
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <0>;
|
||
|
|
||
|
addac@0 {
|
||
|
compatible = "adi,ad74115h";
|
||
|
reg = <0>;
|
||
|
|
||
|
spi-max-frequency = <12000000>;
|
||
|
spi-cpol;
|
||
|
|
||
|
reset-gpios = <&gpio 27 GPIO_ACTIVE_LOW>;
|
||
|
|
||
|
interrupt-parent = <&gpio>;
|
||
|
interrupts = <26 IRQ_TYPE_EDGE_FALLING>;
|
||
|
interrupt-names = "adc_rdy";
|
||
|
|
||
|
avdd-supply = <&ad74115_avdd>;
|
||
|
|
||
|
adi,ch-func = <1>;
|
||
|
adi,conv2-mux = <2>;
|
||
|
adi,conv2-range-microvolt = <(-12000000) 12000000>;
|
||
|
|
||
|
adi,gpio0-mode = <1>;
|
||
|
adi,gpio1-mode = <1>;
|
||
|
adi,gpio2-mode = <1>;
|
||
|
adi,gpio3-mode = <1>;
|
||
|
|
||
|
adi,dac-bipolar;
|
||
|
};
|
||
|
};
|
||
|
...
|