Depending on the actual hardware wired up to a digital input channel, it may be necessary to configure the ad74413r to sink a small current. For example, in the case of a simple mechanical switch, the charge on the external 68 nF capacitor (cf. the data sheet's Figure 34) will keep the channel as reading high even after the switch is turned off again. Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Link: https://lore.kernel.org/r/20230306094301.1357543-2-linux@rasmusvillemoes.dk Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
173 lines
4.1 KiB
YAML
173 lines
4.1 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/iio/addac/adi,ad74413r.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: Analog Devices AD74412R/AD74413R device
|
|
|
|
maintainers:
|
|
- Cosmin Tanislav <cosmin.tanislav@analog.com>
|
|
|
|
description: |
|
|
The AD74412R and AD74413R are quad-channel software configurable input/output
|
|
solutions for building and process control applications. They contain
|
|
functionality for analog output, analog input, digital input, resistance
|
|
temperature detector, and thermocouple measurements integrated
|
|
into a single chip solution with an SPI interface.
|
|
The devices feature a 16-bit ADC and four configurable 13-bit DACs to provide
|
|
four configurable input/output channels and a suite of diagnostic functions.
|
|
The AD74413R differentiates itself from the AD74412R by being HART-compatible.
|
|
https://www.analog.com/en/products/ad74412r.html
|
|
https://www.analog.com/en/products/ad74413r.html
|
|
|
|
properties:
|
|
compatible:
|
|
enum:
|
|
- adi,ad74412r
|
|
- adi,ad74413r
|
|
|
|
reg:
|
|
maxItems: 1
|
|
|
|
'#address-cells':
|
|
const: 1
|
|
|
|
'#size-cells':
|
|
const: 0
|
|
|
|
spi-max-frequency:
|
|
maximum: 1000000
|
|
|
|
spi-cpol: true
|
|
|
|
interrupts:
|
|
maxItems: 1
|
|
|
|
refin-supply: true
|
|
|
|
shunt-resistor-micro-ohms:
|
|
description:
|
|
Shunt (sense) resistor value in micro-Ohms.
|
|
default: 100000000
|
|
|
|
reset-gpios:
|
|
maxItems: 1
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
- spi-max-frequency
|
|
- spi-cpol
|
|
- refin-supply
|
|
|
|
patternProperties:
|
|
"^channel@[0-3]$":
|
|
type: object
|
|
additionalProperties: false
|
|
description: Represents the external channels which are connected to the device.
|
|
|
|
properties:
|
|
reg:
|
|
description: |
|
|
The channel number. It can have up to 4 channels numbered from 0 to 3.
|
|
minimum: 0
|
|
maximum: 3
|
|
|
|
adi,ch-func:
|
|
$ref: /schemas/types.yaml#/definitions/uint32
|
|
description: |
|
|
Channel function.
|
|
HART functions are not supported on AD74412R.
|
|
0 - CH_FUNC_HIGH_IMPEDANCE
|
|
1 - CH_FUNC_VOLTAGE_OUTPUT
|
|
2 - CH_FUNC_CURRENT_OUTPUT
|
|
3 - CH_FUNC_VOLTAGE_INPUT
|
|
4 - CH_FUNC_CURRENT_INPUT_EXT_POWER
|
|
5 - CH_FUNC_CURRENT_INPUT_LOOP_POWER
|
|
6 - CH_FUNC_RESISTANCE_INPUT
|
|
7 - CH_FUNC_DIGITAL_INPUT_LOGIC
|
|
8 - CH_FUNC_DIGITAL_INPUT_LOOP_POWER
|
|
9 - CH_FUNC_CURRENT_INPUT_EXT_POWER_HART
|
|
10 - CH_FUNC_CURRENT_INPUT_LOOP_POWER_HART
|
|
minimum: 0
|
|
maximum: 10
|
|
default: 0
|
|
|
|
adi,gpo-comparator:
|
|
type: boolean
|
|
description: |
|
|
Whether to configure GPO as a comparator or not.
|
|
When not configured as a comparator, the GPO will be treated as an
|
|
output-only GPIO.
|
|
|
|
drive-strength-microamp:
|
|
description: |
|
|
For channels configured as digital input, this configures the sink
|
|
current.
|
|
minimum: 0
|
|
maximum: 1800
|
|
default: 0
|
|
multipleOf: 120
|
|
|
|
required:
|
|
- reg
|
|
|
|
allOf:
|
|
- $ref: /schemas/spi/spi-peripheral-props.yaml#
|
|
|
|
unevaluatedProperties: false
|
|
|
|
examples:
|
|
- |
|
|
#include <dt-bindings/gpio/gpio.h>
|
|
#include <dt-bindings/interrupt-controller/irq.h>
|
|
#include <dt-bindings/iio/addac/adi,ad74413r.h>
|
|
|
|
spi {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
addac@0 {
|
|
compatible = "adi,ad74413r";
|
|
reg = <0>;
|
|
spi-max-frequency = <1000000>;
|
|
spi-cpol;
|
|
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
interrupt-parent = <&gpio>;
|
|
interrupts = <26 IRQ_TYPE_EDGE_FALLING>;
|
|
|
|
refin-supply = <&ad74413r_refin>;
|
|
reset-gpios = <&gpio2 6 GPIO_ACTIVE_LOW>;
|
|
|
|
channel@0 {
|
|
reg = <0>;
|
|
|
|
adi,ch-func = <CH_FUNC_VOLTAGE_OUTPUT>;
|
|
};
|
|
|
|
channel@1 {
|
|
reg = <1>;
|
|
|
|
adi,ch-func = <CH_FUNC_CURRENT_OUTPUT>;
|
|
};
|
|
|
|
channel@2 {
|
|
reg = <2>;
|
|
|
|
adi,ch-func = <CH_FUNC_DIGITAL_INPUT_LOGIC>;
|
|
adi,gpo-comparator;
|
|
};
|
|
|
|
channel@3 {
|
|
reg = <3>;
|
|
|
|
adi,ch-func = <CH_FUNC_CURRENT_INPUT_EXT_POWER>;
|
|
};
|
|
};
|
|
};
|
|
...
|