162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 262306a36Sopenharmony_ci%YAML 1.2 362306a36Sopenharmony_ci--- 462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/iio/addac/adi,ad74115.yaml# 562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 662306a36Sopenharmony_ci 762306a36Sopenharmony_cititle: Analog Devices AD74115H device 862306a36Sopenharmony_ci 962306a36Sopenharmony_cimaintainers: 1062306a36Sopenharmony_ci - Cosmin Tanislav <cosmin.tanislav@analog.com> 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_cidescription: | 1362306a36Sopenharmony_ci The AD74115H is a single-channel software configurable input/output 1462306a36Sopenharmony_ci device for industrial control applications. It contains functionality for 1562306a36Sopenharmony_ci analog output, analog input, digital output, digital input, resistance 1662306a36Sopenharmony_ci temperature detector, and thermocouple measurements integrated into a single 1762306a36Sopenharmony_ci chip solution with an SPI interface. The device features a 16-bit ADC and a 1862306a36Sopenharmony_ci 14-bit DAC. 1962306a36Sopenharmony_ci 2062306a36Sopenharmony_ci https://www.analog.com/en/products/ad74115h.html 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ciproperties: 2362306a36Sopenharmony_ci compatible: 2462306a36Sopenharmony_ci enum: 2562306a36Sopenharmony_ci - adi,ad74115h 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ci reg: 2862306a36Sopenharmony_ci maxItems: 1 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_ci spi-max-frequency: 3162306a36Sopenharmony_ci maximum: 24000000 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ci spi-cpol: true 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ci reset-gpios: 3662306a36Sopenharmony_ci maxItems: 1 3762306a36Sopenharmony_ci 3862306a36Sopenharmony_ci interrupts: 3962306a36Sopenharmony_ci minItems: 1 4062306a36Sopenharmony_ci maxItems: 2 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ci interrupt-names: 4362306a36Sopenharmony_ci minItems: 1 4462306a36Sopenharmony_ci maxItems: 2 4562306a36Sopenharmony_ci items: 4662306a36Sopenharmony_ci enum: 4762306a36Sopenharmony_ci - adc_rdy 4862306a36Sopenharmony_ci - alert 4962306a36Sopenharmony_ci 5062306a36Sopenharmony_ci avdd-supply: true 5162306a36Sopenharmony_ci avcc-supply: true 5262306a36Sopenharmony_ci dvcc-supply: true 5362306a36Sopenharmony_ci dovdd-supply: true 5462306a36Sopenharmony_ci refin-supply: true 5562306a36Sopenharmony_ci 5662306a36Sopenharmony_ci adi,ch-func: 5762306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 5862306a36Sopenharmony_ci description: | 5962306a36Sopenharmony_ci Channel function. 6062306a36Sopenharmony_ci 0 - High impedance 6162306a36Sopenharmony_ci 1 - Voltage output 6262306a36Sopenharmony_ci 2 - Current output 6362306a36Sopenharmony_ci 3 - Voltage input 6462306a36Sopenharmony_ci 4 - Current input, externally-powered 6562306a36Sopenharmony_ci 5 - Current input, loop-powered 6662306a36Sopenharmony_ci 6 - Resistance input 6762306a36Sopenharmony_ci 7 - RTD measure 6862306a36Sopenharmony_ci 8 - Digital input logic 6962306a36Sopenharmony_ci 9 - Digital input, loop-powered 7062306a36Sopenharmony_ci 10 - Current output with HART 7162306a36Sopenharmony_ci 11 - Current input, externally-powered, with HART 7262306a36Sopenharmony_ci 12 - Current input, loop-powered, with HART 7362306a36Sopenharmony_ci minimum: 0 7462306a36Sopenharmony_ci maximum: 12 7562306a36Sopenharmony_ci default: 0 7662306a36Sopenharmony_ci 7762306a36Sopenharmony_ci adi,conv2-mux: 7862306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 7962306a36Sopenharmony_ci description: | 8062306a36Sopenharmony_ci Input node for ADC conversion 2. 8162306a36Sopenharmony_ci 0 - SENSE_EXT1 to AGND_SENSE 8262306a36Sopenharmony_ci 1 - SENSE_EXT2 to AGND_SENSE 8362306a36Sopenharmony_ci 2 - SENSE_EXT2 to SENSE_EXT1 8462306a36Sopenharmony_ci 3 - AGND to AGND 8562306a36Sopenharmony_ci minimum: 0 8662306a36Sopenharmony_ci maximum: 3 8762306a36Sopenharmony_ci default: 0 8862306a36Sopenharmony_ci 8962306a36Sopenharmony_ci adi,conv2-range-microvolt: 9062306a36Sopenharmony_ci description: Conversion range for ADC conversion 2. 9162306a36Sopenharmony_ci oneOf: 9262306a36Sopenharmony_ci - items: 9362306a36Sopenharmony_ci - enum: [-2500000, 0] 9462306a36Sopenharmony_ci - const: 2500000 9562306a36Sopenharmony_ci - items: 9662306a36Sopenharmony_ci - enum: [-12000000, 0] 9762306a36Sopenharmony_ci - const: 12000000 9862306a36Sopenharmony_ci - items: 9962306a36Sopenharmony_ci - const: -2500000 10062306a36Sopenharmony_ci - const: 0 10162306a36Sopenharmony_ci - items: 10262306a36Sopenharmony_ci - const: -104000 10362306a36Sopenharmony_ci - const: 104000 10462306a36Sopenharmony_ci - items: 10562306a36Sopenharmony_ci - const: 0 10662306a36Sopenharmony_ci - const: 625000 10762306a36Sopenharmony_ci 10862306a36Sopenharmony_ci adi,sense-agnd-buffer-low-power: 10962306a36Sopenharmony_ci type: boolean 11062306a36Sopenharmony_ci description: 11162306a36Sopenharmony_ci Whether to enable low-power buffered mode for the AGND sense pin. 11262306a36Sopenharmony_ci 11362306a36Sopenharmony_ci adi,lf-buffer-low-power: 11462306a36Sopenharmony_ci type: boolean 11562306a36Sopenharmony_ci description: 11662306a36Sopenharmony_ci Whether to enable low-power buffered mode for the low-side filtered 11762306a36Sopenharmony_ci sense pin. 11862306a36Sopenharmony_ci 11962306a36Sopenharmony_ci adi,hf-buffer-low-power: 12062306a36Sopenharmony_ci type: boolean 12162306a36Sopenharmony_ci description: 12262306a36Sopenharmony_ci Whether to enable low-power buffered mode for the high-side filtered 12362306a36Sopenharmony_ci sense pin. 12462306a36Sopenharmony_ci 12562306a36Sopenharmony_ci adi,ext2-buffer-low-power: 12662306a36Sopenharmony_ci type: boolean 12762306a36Sopenharmony_ci description: Whether to enable low-power buffered mode for the EXT2 pin. 12862306a36Sopenharmony_ci 12962306a36Sopenharmony_ci adi,ext1-buffer-low-power: 13062306a36Sopenharmony_ci type: boolean 13162306a36Sopenharmony_ci description: Whether to enable low-power buffered mode for the EXT1 pin. 13262306a36Sopenharmony_ci 13362306a36Sopenharmony_ci adi,comparator-invert: 13462306a36Sopenharmony_ci type: boolean 13562306a36Sopenharmony_ci description: Whether to invert the comparator output. 13662306a36Sopenharmony_ci 13762306a36Sopenharmony_ci adi,digital-input-sink-range-high: 13862306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 13962306a36Sopenharmony_ci description: | 14062306a36Sopenharmony_ci When not present, the digital input range is from 0 to 3700uA in steps 14162306a36Sopenharmony_ci of 120uA, with a ~2k series resistance. 14262306a36Sopenharmony_ci When present, the digital input range is from 0 to 7400uA in steps 14362306a36Sopenharmony_ci of 240uA, with a ~1k series resistance. 14462306a36Sopenharmony_ci 14562306a36Sopenharmony_ci adi,digital-input-sink-microamp: 14662306a36Sopenharmony_ci description: Sink current in digital input mode. 14762306a36Sopenharmony_ci minimum: 0 14862306a36Sopenharmony_ci maximum: 3700 14962306a36Sopenharmony_ci default: 0 15062306a36Sopenharmony_ci 15162306a36Sopenharmony_ci adi,digital-input-debounce-mode-counter-reset: 15262306a36Sopenharmony_ci type: boolean 15362306a36Sopenharmony_ci description: | 15462306a36Sopenharmony_ci When not present, a counter increments when the signal is asserted 15562306a36Sopenharmony_ci and decrements when the signal is de-asserted. 15662306a36Sopenharmony_ci When present, a counter increments while the signal is asserted and 15762306a36Sopenharmony_ci resets when the signal de-asserts 15862306a36Sopenharmony_ci 15962306a36Sopenharmony_ci adi,digital-input-unbuffered: 16062306a36Sopenharmony_ci type: boolean 16162306a36Sopenharmony_ci description: Whether to buffer digital input signals. 16262306a36Sopenharmony_ci 16362306a36Sopenharmony_ci adi,digital-input-short-circuit-detection: 16462306a36Sopenharmony_ci type: boolean 16562306a36Sopenharmony_ci description: Whether to detect digital input short circuits. 16662306a36Sopenharmony_ci 16762306a36Sopenharmony_ci adi,digital-input-open-circuit-detection: 16862306a36Sopenharmony_ci type: boolean 16962306a36Sopenharmony_ci description: Whether to detect digital input open circuits. 17062306a36Sopenharmony_ci 17162306a36Sopenharmony_ci adi,digital-input-threshold-mode-fixed: 17262306a36Sopenharmony_ci type: boolean 17362306a36Sopenharmony_ci description: | 17462306a36Sopenharmony_ci When not present, the digital input threshold range is -0.96 * AVDD 17562306a36Sopenharmony_ci to AVDD. 17662306a36Sopenharmony_ci When present, the threshold range is fixed from -19V to 30V. 17762306a36Sopenharmony_ci 17862306a36Sopenharmony_ci adi,dac-bipolar: 17962306a36Sopenharmony_ci type: boolean 18062306a36Sopenharmony_ci description: | 18162306a36Sopenharmony_ci When not present, the DAC operates in the 0V to 12V range. 18262306a36Sopenharmony_ci When present, the DAC operates in the -12V to 12V range. 18362306a36Sopenharmony_ci 18462306a36Sopenharmony_ci adi,charge-pump: 18562306a36Sopenharmony_ci type: boolean 18662306a36Sopenharmony_ci description: Whether to enable the internal charge pump. 18762306a36Sopenharmony_ci 18862306a36Sopenharmony_ci adi,dac-hart-slew: 18962306a36Sopenharmony_ci type: boolean 19062306a36Sopenharmony_ci description: Whether to use a HART-compatible slew rate. 19162306a36Sopenharmony_ci 19262306a36Sopenharmony_ci adi,dac-current-limit-low: 19362306a36Sopenharmony_ci type: boolean 19462306a36Sopenharmony_ci description: | 19562306a36Sopenharmony_ci When not present, the DAC short-circuit current limit is 32mA in 19662306a36Sopenharmony_ci either source or sink for VOUT and 4mA sink for IOUT. 19762306a36Sopenharmony_ci When present, the limit is 16mA in either source or sink for VOUT, 19862306a36Sopenharmony_ci 1mA sink for IOUT. 19962306a36Sopenharmony_ci 20062306a36Sopenharmony_ci adi,4-wire-rtd: 20162306a36Sopenharmony_ci type: boolean 20262306a36Sopenharmony_ci description: | 20362306a36Sopenharmony_ci When not present, the ADC should be used for measuring 3-wire RTDs. 20462306a36Sopenharmony_ci When present, the ADC should be used for measuring 4-wire RTDs. 20562306a36Sopenharmony_ci 20662306a36Sopenharmony_ci adi,3-wire-rtd-excitation-swap: 20762306a36Sopenharmony_ci type: boolean 20862306a36Sopenharmony_ci description: Whether to swap the excitation for 3-wire RTD. 20962306a36Sopenharmony_ci 21062306a36Sopenharmony_ci adi,rtd-excitation-current-microamp: 21162306a36Sopenharmony_ci description: Excitation current to apply to RTD. 21262306a36Sopenharmony_ci enum: [250, 500, 750, 1000] 21362306a36Sopenharmony_ci default: 250 21462306a36Sopenharmony_ci 21562306a36Sopenharmony_ci adi,ext1-burnout: 21662306a36Sopenharmony_ci type: boolean 21762306a36Sopenharmony_ci description: Whether to enable burnout current for EXT1. 21862306a36Sopenharmony_ci 21962306a36Sopenharmony_ci adi,ext1-burnout-current-nanoamp: 22062306a36Sopenharmony_ci description: 22162306a36Sopenharmony_ci Burnout current in nanoamps to be applied to EXT1. 22262306a36Sopenharmony_ci enum: [0, 50, 500, 1000, 10000] 22362306a36Sopenharmony_ci default: 0 22462306a36Sopenharmony_ci 22562306a36Sopenharmony_ci adi,ext1-burnout-current-polarity-sourcing: 22662306a36Sopenharmony_ci type: boolean 22762306a36Sopenharmony_ci description: | 22862306a36Sopenharmony_ci When not present, the burnout current polarity for EXT1 is sinking. 22962306a36Sopenharmony_ci When present, the burnout current polarity for EXT1 is sourcing. 23062306a36Sopenharmony_ci 23162306a36Sopenharmony_ci adi,ext2-burnout: 23262306a36Sopenharmony_ci type: boolean 23362306a36Sopenharmony_ci description: Whether to enable burnout current for EXT2. 23462306a36Sopenharmony_ci 23562306a36Sopenharmony_ci adi,ext2-burnout-current-nanoamp: 23662306a36Sopenharmony_ci description: Burnout current in nanoamps to be applied to EXT2. 23762306a36Sopenharmony_ci enum: [0, 50, 500, 1000, 10000] 23862306a36Sopenharmony_ci default: 0 23962306a36Sopenharmony_ci 24062306a36Sopenharmony_ci adi,ext2-burnout-current-polarity-sourcing: 24162306a36Sopenharmony_ci type: boolean 24262306a36Sopenharmony_ci description: | 24362306a36Sopenharmony_ci When not present, the burnout current polarity for EXT2 is sinking. 24462306a36Sopenharmony_ci When present, the burnout current polarity for EXT2 is sourcing. 24562306a36Sopenharmony_ci 24662306a36Sopenharmony_ci adi,viout-burnout: 24762306a36Sopenharmony_ci type: boolean 24862306a36Sopenharmony_ci description: Whether to enable burnout current for VIOUT. 24962306a36Sopenharmony_ci 25062306a36Sopenharmony_ci adi,viout-burnout-current-nanoamp: 25162306a36Sopenharmony_ci description: Burnout current in nanoamps to be applied to VIOUT. 25262306a36Sopenharmony_ci enum: [0, 1000, 10000] 25362306a36Sopenharmony_ci default: 0 25462306a36Sopenharmony_ci 25562306a36Sopenharmony_ci adi,viout-burnout-current-polarity-sourcing: 25662306a36Sopenharmony_ci type: boolean 25762306a36Sopenharmony_ci description: | 25862306a36Sopenharmony_ci When not present, the burnout current polarity for VIOUT is sinking. 25962306a36Sopenharmony_ci When present, the burnout current polarity for VIOUT is sourcing. 26062306a36Sopenharmony_ci 26162306a36Sopenharmony_ci adi,gpio0-mode: 26262306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 26362306a36Sopenharmony_ci description: | 26462306a36Sopenharmony_ci GPIO functions. 26562306a36Sopenharmony_ci 0 - Disabled 26662306a36Sopenharmony_ci 1 - Logic I/O 26762306a36Sopenharmony_ci 2 - Comparator output 26862306a36Sopenharmony_ci 3 - Control HART CD 26962306a36Sopenharmony_ci 4 - Monitor HART CD 27062306a36Sopenharmony_ci 5 - Monitor HART EOM status 27162306a36Sopenharmony_ci minimum: 0 27262306a36Sopenharmony_ci maximum: 5 27362306a36Sopenharmony_ci default: 0 27462306a36Sopenharmony_ci 27562306a36Sopenharmony_ci adi,gpio1-mode: 27662306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 27762306a36Sopenharmony_ci description: | 27862306a36Sopenharmony_ci GPIO functions. 27962306a36Sopenharmony_ci 0 - Disabled 28062306a36Sopenharmony_ci 1 - Logic I/O 28162306a36Sopenharmony_ci 2 - Drive external digital output FET 28262306a36Sopenharmony_ci 3 - Control HART RXD 28362306a36Sopenharmony_ci 4 - Monitor HART RXD 28462306a36Sopenharmony_ci 5 - Monitor HART SOM status 28562306a36Sopenharmony_ci minimum: 0 28662306a36Sopenharmony_ci maximum: 5 28762306a36Sopenharmony_ci default: 0 28862306a36Sopenharmony_ci 28962306a36Sopenharmony_ci adi,gpio2-mode: 29062306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 29162306a36Sopenharmony_ci description: | 29262306a36Sopenharmony_ci GPIO functions. 29362306a36Sopenharmony_ci 0 - Disabled 29462306a36Sopenharmony_ci 1 - Logic I/O 29562306a36Sopenharmony_ci 2 - Drive internal digital output FET 29662306a36Sopenharmony_ci 3 - Control HART TXD 29762306a36Sopenharmony_ci 4 - Monitor HART TXD 29862306a36Sopenharmony_ci 5 - Monitor HART TX complete status 29962306a36Sopenharmony_ci minimum: 0 30062306a36Sopenharmony_ci maximum: 5 30162306a36Sopenharmony_ci default: 0 30262306a36Sopenharmony_ci 30362306a36Sopenharmony_ci adi,gpio3-mode: 30462306a36Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 30562306a36Sopenharmony_ci description: | 30662306a36Sopenharmony_ci GPIO functions. 30762306a36Sopenharmony_ci 0 - Disabled 30862306a36Sopenharmony_ci 1 - Logic I/O 30962306a36Sopenharmony_ci 2 - High impedance 31062306a36Sopenharmony_ci 3 - Control HART RTS 31162306a36Sopenharmony_ci 4 - Monitor HART RTS 31262306a36Sopenharmony_ci 5 - Monitor HART CD complete status 31362306a36Sopenharmony_ci minimum: 0 31462306a36Sopenharmony_ci maximum: 5 31562306a36Sopenharmony_ci default: 0 31662306a36Sopenharmony_ci 31762306a36Sopenharmony_cirequired: 31862306a36Sopenharmony_ci - compatible 31962306a36Sopenharmony_ci - reg 32062306a36Sopenharmony_ci - spi-cpol 32162306a36Sopenharmony_ci - avdd-supply 32262306a36Sopenharmony_ci 32362306a36Sopenharmony_ciallOf: 32462306a36Sopenharmony_ci - $ref: /schemas/spi/spi-peripheral-props.yaml# 32562306a36Sopenharmony_ci - if: 32662306a36Sopenharmony_ci required: 32762306a36Sopenharmony_ci - adi,digital-input-sink-range-high 32862306a36Sopenharmony_ci then: 32962306a36Sopenharmony_ci properties: 33062306a36Sopenharmony_ci adi,digital-input-sink-microamp: 33162306a36Sopenharmony_ci maximum: 7400 33262306a36Sopenharmony_ci 33362306a36Sopenharmony_ciunevaluatedProperties: false 33462306a36Sopenharmony_ci 33562306a36Sopenharmony_ciexamples: 33662306a36Sopenharmony_ci - | 33762306a36Sopenharmony_ci #include <dt-bindings/gpio/gpio.h> 33862306a36Sopenharmony_ci #include <dt-bindings/interrupt-controller/irq.h> 33962306a36Sopenharmony_ci 34062306a36Sopenharmony_ci spi { 34162306a36Sopenharmony_ci #address-cells = <1>; 34262306a36Sopenharmony_ci #size-cells = <0>; 34362306a36Sopenharmony_ci 34462306a36Sopenharmony_ci addac@0 { 34562306a36Sopenharmony_ci compatible = "adi,ad74115h"; 34662306a36Sopenharmony_ci reg = <0>; 34762306a36Sopenharmony_ci 34862306a36Sopenharmony_ci spi-max-frequency = <12000000>; 34962306a36Sopenharmony_ci spi-cpol; 35062306a36Sopenharmony_ci 35162306a36Sopenharmony_ci reset-gpios = <&gpio 27 GPIO_ACTIVE_LOW>; 35262306a36Sopenharmony_ci 35362306a36Sopenharmony_ci interrupt-parent = <&gpio>; 35462306a36Sopenharmony_ci interrupts = <26 IRQ_TYPE_EDGE_FALLING>; 35562306a36Sopenharmony_ci interrupt-names = "adc_rdy"; 35662306a36Sopenharmony_ci 35762306a36Sopenharmony_ci avdd-supply = <&ad74115_avdd>; 35862306a36Sopenharmony_ci 35962306a36Sopenharmony_ci adi,ch-func = <1>; 36062306a36Sopenharmony_ci adi,conv2-mux = <2>; 36162306a36Sopenharmony_ci adi,conv2-range-microvolt = <(-12000000) 12000000>; 36262306a36Sopenharmony_ci 36362306a36Sopenharmony_ci adi,gpio0-mode = <1>; 36462306a36Sopenharmony_ci adi,gpio1-mode = <1>; 36562306a36Sopenharmony_ci adi,gpio2-mode = <1>; 36662306a36Sopenharmony_ci adi,gpio3-mode = <1>; 36762306a36Sopenharmony_ci 36862306a36Sopenharmony_ci adi,dac-bipolar; 36962306a36Sopenharmony_ci }; 37062306a36Sopenharmony_ci }; 37162306a36Sopenharmony_ci... 372