-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
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
Showing
2 changed files
with
179 additions
and
0 deletions.
There are no files selected for viewing
158 changes: 158 additions & 0 deletions
158
Documentation/devicetree/bindings/iio/addac/adi,ad74413r.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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>; | ||
}; | ||
}; | ||
}; | ||
... |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 */ |