Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

dt-bindings: iio: add AD74413R

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>

authored by

Cosmin Tanislav and committed by
Jonathan Cameron
3cf3cdea b62e2e17

+179
+158
Documentation/devicetree/bindings/iio/addac/adi,ad74413r.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/iio/addac/adi,ad74413r.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Analog Devices AD74412R/AD74413R device 8 + 9 + maintainers: 10 + - Cosmin Tanislav <cosmin.tanislav@analog.com> 11 + 12 + description: | 13 + The AD74412R and AD74413R are quad-channel software configurable input/output 14 + solutions for building and process control applications. They contain 15 + functionality for analog output, analog input, digital input, resistance 16 + temperature detector, and thermocouple measurements integrated 17 + into a single chip solution with an SPI interface. 18 + The devices feature a 16-bit ADC and four configurable 13-bit DACs to provide 19 + four configurable input/output channels and a suite of diagnostic functions. 20 + The AD74413R differentiates itself from the AD74412R by being HART-compatible. 21 + https://www.analog.com/en/products/ad74412r.html 22 + https://www.analog.com/en/products/ad74413r.html 23 + 24 + properties: 25 + compatible: 26 + enum: 27 + - adi,ad74412r 28 + - adi,ad74413r 29 + 30 + reg: 31 + maxItems: 1 32 + 33 + '#address-cells': 34 + const: 1 35 + 36 + '#size-cells': 37 + const: 0 38 + 39 + spi-max-frequency: 40 + maximum: 1000000 41 + 42 + spi-cpol: true 43 + 44 + interrupts: 45 + maxItems: 1 46 + 47 + refin-supply: true 48 + 49 + shunt-resistor-micro-ohms: 50 + description: 51 + Shunt (sense) resistor value in micro-Ohms. 52 + default: 100000000 53 + 54 + required: 55 + - compatible 56 + - reg 57 + - spi-max-frequency 58 + - spi-cpol 59 + - refin-supply 60 + 61 + additionalProperties: false 62 + 63 + patternProperties: 64 + "^channel@[0-3]$": 65 + type: object 66 + description: Represents the external channels which are connected to the device. 67 + 68 + properties: 69 + reg: 70 + description: | 71 + The channel number. It can have up to 4 channels numbered from 0 to 3. 72 + minimum: 0 73 + maximum: 3 74 + 75 + adi,ch-func: 76 + $ref: /schemas/types.yaml#/definitions/uint32 77 + description: | 78 + Channel function. 79 + HART functions are not supported on AD74412R. 80 + 0 - CH_FUNC_HIGH_IMPEDANCE 81 + 1 - CH_FUNC_VOLTAGE_OUTPUT 82 + 2 - CH_FUNC_CURRENT_OUTPUT 83 + 3 - CH_FUNC_VOLTAGE_INPUT 84 + 4 - CH_FUNC_CURRENT_INPUT_EXT_POWER 85 + 5 - CH_FUNC_CURRENT_INPUT_LOOP_POWER 86 + 6 - CH_FUNC_RESISTANCE_INPUT 87 + 7 - CH_FUNC_DIGITAL_INPUT_LOGIC 88 + 8 - CH_FUNC_DIGITAL_INPUT_LOOP_POWER 89 + 9 - CH_FUNC_CURRENT_INPUT_EXT_POWER_HART 90 + 10 - CH_FUNC_CURRENT_INPUT_LOOP_POWER_HART 91 + minimum: 0 92 + maximum: 10 93 + default: 0 94 + 95 + adi,gpo-comparator: 96 + type: boolean 97 + description: | 98 + Whether to configure GPO as a comparator or not. 99 + When not configured as a comparator, the GPO will be treated as an 100 + output-only GPIO. 101 + 102 + required: 103 + - reg 104 + 105 + examples: 106 + - | 107 + #include <dt-bindings/gpio/gpio.h> 108 + #include <dt-bindings/interrupt-controller/irq.h> 109 + #include <dt-bindings/iio/addac/adi,ad74413r.h> 110 + 111 + spi { 112 + #address-cells = <1>; 113 + #size-cells = <0>; 114 + 115 + cs-gpios = <&gpio 17 GPIO_ACTIVE_LOW>; 116 + status = "okay"; 117 + 118 + ad74413r@0 { 119 + compatible = "adi,ad74413r"; 120 + reg = <0>; 121 + spi-max-frequency = <1000000>; 122 + spi-cpol; 123 + 124 + #address-cells = <1>; 125 + #size-cells = <0>; 126 + 127 + interrupt-parent = <&gpio>; 128 + interrupts = <26 IRQ_TYPE_EDGE_FALLING>; 129 + 130 + refin-supply = <&ad74413r_refin>; 131 + 132 + channel@0 { 133 + reg = <0>; 134 + 135 + adi,ch-func = <CH_FUNC_VOLTAGE_OUTPUT>; 136 + }; 137 + 138 + channel@1 { 139 + reg = <1>; 140 + 141 + adi,ch-func = <CH_FUNC_CURRENT_OUTPUT>; 142 + }; 143 + 144 + channel@2 { 145 + reg = <2>; 146 + 147 + adi,ch-func = <CH_FUNC_DIGITAL_INPUT_LOGIC>; 148 + adi,gpo-comparator; 149 + }; 150 + 151 + channel@3 { 152 + reg = <3>; 153 + 154 + adi,ch-func = <CH_FUNC_CURRENT_INPUT_EXT_POWER>; 155 + }; 156 + }; 157 + }; 158 + ...
+21
include/dt-bindings/iio/addac/adi,ad74413r.h
··· 1 + /* SPDX-License-Identifier: GPL-2.0 */ 2 + 3 + #ifndef _DT_BINDINGS_ADI_AD74413R_H 4 + #define _DT_BINDINGS_ADI_AD74413R_H 5 + 6 + #define CH_FUNC_HIGH_IMPEDANCE 0x0 7 + #define CH_FUNC_VOLTAGE_OUTPUT 0x1 8 + #define CH_FUNC_CURRENT_OUTPUT 0x2 9 + #define CH_FUNC_VOLTAGE_INPUT 0x3 10 + #define CH_FUNC_CURRENT_INPUT_EXT_POWER 0x4 11 + #define CH_FUNC_CURRENT_INPUT_LOOP_POWER 0x5 12 + #define CH_FUNC_RESISTANCE_INPUT 0x6 13 + #define CH_FUNC_DIGITAL_INPUT_LOGIC 0x7 14 + #define CH_FUNC_DIGITAL_INPUT_LOOP_POWER 0x8 15 + #define CH_FUNC_CURRENT_INPUT_EXT_POWER_HART 0x9 16 + #define CH_FUNC_CURRENT_INPUT_LOOP_POWER_HART 0xA 17 + 18 + #define CH_FUNC_MIN CH_FUNC_HIGH_IMPEDANCE 19 + #define CH_FUNC_MAX CH_FUNC_CURRENT_INPUT_LOOP_POWER_HART 20 + 21 + #endif /* _DT_BINDINGS_ADI_AD74413R_H */