Skip to content

Commit

Permalink
dt-bindings: iio: add AD74413R
Browse files Browse the repository at this point in the history
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.

Signed-off-by: Cosmin Tanislav <cosmin.tanislav@analog.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/r/20211205114045.173612-3-cosmin.tanislav@analog.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
  • Loading branch information
Cosmin Tanislav authored and Jonathan Cameron committed Dec 12, 2021
1 parent b62e2e1 commit 3cf3cde
Show file tree
Hide file tree
Showing 2 changed files with 179 additions and 0 deletions.
158 changes: 158 additions & 0 deletions Documentation/devicetree/bindings/iio/addac/adi,ad74413r.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
# 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

required:
- compatible
- reg
- spi-max-frequency
- spi-cpol
- refin-supply

additionalProperties: false

patternProperties:
"^channel@[0-3]$":
type: object
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.
required:
- reg

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>;
cs-gpios = <&gpio 17 GPIO_ACTIVE_LOW>;
status = "okay";
ad74413r@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>;
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>;
};
};
};
...
21 changes: 21 additions & 0 deletions include/dt-bindings/iio/addac/adi,ad74413r.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
/* SPDX-License-Identifier: GPL-2.0 */

#ifndef _DT_BINDINGS_ADI_AD74413R_H
#define _DT_BINDINGS_ADI_AD74413R_H

#define CH_FUNC_HIGH_IMPEDANCE 0x0
#define CH_FUNC_VOLTAGE_OUTPUT 0x1
#define CH_FUNC_CURRENT_OUTPUT 0x2
#define CH_FUNC_VOLTAGE_INPUT 0x3
#define CH_FUNC_CURRENT_INPUT_EXT_POWER 0x4
#define CH_FUNC_CURRENT_INPUT_LOOP_POWER 0x5
#define CH_FUNC_RESISTANCE_INPUT 0x6
#define CH_FUNC_DIGITAL_INPUT_LOGIC 0x7
#define CH_FUNC_DIGITAL_INPUT_LOOP_POWER 0x8
#define CH_FUNC_CURRENT_INPUT_EXT_POWER_HART 0x9
#define CH_FUNC_CURRENT_INPUT_LOOP_POWER_HART 0xA

#define CH_FUNC_MIN CH_FUNC_HIGH_IMPEDANCE
#define CH_FUNC_MAX CH_FUNC_CURRENT_INPUT_LOOP_POWER_HART

#endif /* _DT_BINDINGS_ADI_AD74413R_H */

0 comments on commit 3cf3cde

Please sign in to comment.