1*1b3cee41SMarcelo Schmitt# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*1b3cee41SMarcelo Schmitt%YAML 1.2 3*1b3cee41SMarcelo Schmitt--- 4*1b3cee41SMarcelo Schmitt$id: http://devicetree.org/schemas/iio/adc/adi,ad4170-4.yaml# 5*1b3cee41SMarcelo Schmitt$schema: http://devicetree.org/meta-schemas/core.yaml# 6*1b3cee41SMarcelo Schmitt 7*1b3cee41SMarcelo Schmitttitle: Analog Devices AD4170-4 and similar Analog to Digital Converters 8*1b3cee41SMarcelo Schmitt 9*1b3cee41SMarcelo Schmittmaintainers: 10*1b3cee41SMarcelo Schmitt - Marcelo Schmitt <marcelo.schmitt@analog.com> 11*1b3cee41SMarcelo Schmitt 12*1b3cee41SMarcelo Schmittdescription: | 13*1b3cee41SMarcelo Schmitt Analog Devices AD4170-4 series of Sigma-delta Analog to Digital Converters. 14*1b3cee41SMarcelo Schmitt Specifications can be found at: 15*1b3cee41SMarcelo Schmitt https://www.analog.com/media/en/technical-documentation/data-sheets/ad4170-4.pdf 16*1b3cee41SMarcelo Schmitt https://www.analog.com/media/en/technical-documentation/data-sheets/ad4190-4.pdf 17*1b3cee41SMarcelo Schmitt https://www.analog.com/media/en/technical-documentation/data-sheets/ad4195-4.pdf 18*1b3cee41SMarcelo Schmitt 19*1b3cee41SMarcelo Schmitt$ref: /schemas/spi/spi-peripheral-props.yaml# 20*1b3cee41SMarcelo Schmitt 21*1b3cee41SMarcelo Schmitt$defs: 22*1b3cee41SMarcelo Schmitt reference-buffer: 23*1b3cee41SMarcelo Schmitt description: | 24*1b3cee41SMarcelo Schmitt Enable precharge buffer, full buffer, or skip reference buffering of 25*1b3cee41SMarcelo Schmitt the positive/negative voltage reference. Because the output impedance 26*1b3cee41SMarcelo Schmitt of the source driving the voltage reference inputs may be dynamic, 27*1b3cee41SMarcelo Schmitt resistive/capacitive combinations of those inputs can cause DC gain 28*1b3cee41SMarcelo Schmitt errors if the reference inputs go unbuffered into the ADC. Enable 29*1b3cee41SMarcelo Schmitt reference buffering if the provided reference source has dynamic high 30*1b3cee41SMarcelo Schmitt impedance output. Note the absolute voltage allowed on REFINn+ and REFINn- 31*1b3cee41SMarcelo Schmitt inputs is from AVSS - 50 mV to AVDD + 50 mV when the reference buffers are 32*1b3cee41SMarcelo Schmitt disabled but narrows to AVSS to AVDD when reference buffering is enabled 33*1b3cee41SMarcelo Schmitt or in precharge mode. 34*1b3cee41SMarcelo Schmitt $ref: /schemas/types.yaml#/definitions/string 35*1b3cee41SMarcelo Schmitt enum: [ precharge, full, disabled ] 36*1b3cee41SMarcelo Schmitt default: full 37*1b3cee41SMarcelo Schmitt 38*1b3cee41SMarcelo Schmittproperties: 39*1b3cee41SMarcelo Schmitt compatible: 40*1b3cee41SMarcelo Schmitt enum: 41*1b3cee41SMarcelo Schmitt - adi,ad4170-4 42*1b3cee41SMarcelo Schmitt - adi,ad4190-4 43*1b3cee41SMarcelo Schmitt - adi,ad4195-4 44*1b3cee41SMarcelo Schmitt 45*1b3cee41SMarcelo Schmitt avss-supply: 46*1b3cee41SMarcelo Schmitt description: 47*1b3cee41SMarcelo Schmitt Reference voltage supply for AVSS. A −2.625V minimum and 0V maximum supply 48*1b3cee41SMarcelo Schmitt that powers the chip. If not provided, AVSS is assumed to be at system 49*1b3cee41SMarcelo Schmitt ground (0V). 50*1b3cee41SMarcelo Schmitt 51*1b3cee41SMarcelo Schmitt avdd-supply: 52*1b3cee41SMarcelo Schmitt description: 53*1b3cee41SMarcelo Schmitt A supply of 4.75V to 5.25V relative to AVSS that powers the chip (AVDD). 54*1b3cee41SMarcelo Schmitt 55*1b3cee41SMarcelo Schmitt iovdd-supply: 56*1b3cee41SMarcelo Schmitt description: 1.7V to 5.25V reference supply to the serial interface (IOVDD). 57*1b3cee41SMarcelo Schmitt 58*1b3cee41SMarcelo Schmitt refin1p-supply: 59*1b3cee41SMarcelo Schmitt description: REFIN+ supply that can be used as reference for conversion. 60*1b3cee41SMarcelo Schmitt 61*1b3cee41SMarcelo Schmitt refin1n-supply: 62*1b3cee41SMarcelo Schmitt description: REFIN- supply that can be used as reference for conversion. 63*1b3cee41SMarcelo Schmitt 64*1b3cee41SMarcelo Schmitt refin2p-supply: 65*1b3cee41SMarcelo Schmitt description: REFIN2+ supply that can be used as reference for conversion. 66*1b3cee41SMarcelo Schmitt 67*1b3cee41SMarcelo Schmitt refin2n-supply: 68*1b3cee41SMarcelo Schmitt description: REFIN2- supply that can be used as reference for conversion. 69*1b3cee41SMarcelo Schmitt 70*1b3cee41SMarcelo Schmitt spi-cpol: true 71*1b3cee41SMarcelo Schmitt 72*1b3cee41SMarcelo Schmitt spi-cpha: true 73*1b3cee41SMarcelo Schmitt 74*1b3cee41SMarcelo Schmitt interrupts: 75*1b3cee41SMarcelo Schmitt description: 76*1b3cee41SMarcelo Schmitt Interrupt for signaling the completion of conversion results. The data 77*1b3cee41SMarcelo Schmitt ready signal (RDY) used as interrupt is by default provided on the SDO 78*1b3cee41SMarcelo Schmitt pin. Alternatively, it can be provided on the DIG_AUX1 pin in which case 79*1b3cee41SMarcelo Schmitt the chip disables the RDY function on SDO. Thus, there can be only one 80*1b3cee41SMarcelo Schmitt data ready interrupt enabled at a time. 81*1b3cee41SMarcelo Schmitt 82*1b3cee41SMarcelo Schmitt interrupt-names: 83*1b3cee41SMarcelo Schmitt description: 84*1b3cee41SMarcelo Schmitt Specify which pin should be configured as Data Ready interrupt. 85*1b3cee41SMarcelo Schmitt enum: 86*1b3cee41SMarcelo Schmitt - sdo 87*1b3cee41SMarcelo Schmitt - dig_aux1 88*1b3cee41SMarcelo Schmitt 89*1b3cee41SMarcelo Schmitt clocks: 90*1b3cee41SMarcelo Schmitt maxItems: 1 91*1b3cee41SMarcelo Schmitt description: 92*1b3cee41SMarcelo Schmitt Optional external clock source. Can specify either an external clock or 93*1b3cee41SMarcelo Schmitt external crystal. 94*1b3cee41SMarcelo Schmitt 95*1b3cee41SMarcelo Schmitt clock-names: 96*1b3cee41SMarcelo Schmitt enum: 97*1b3cee41SMarcelo Schmitt - ext-clk 98*1b3cee41SMarcelo Schmitt - xtal 99*1b3cee41SMarcelo Schmitt default: ext-clk 100*1b3cee41SMarcelo Schmitt 101*1b3cee41SMarcelo Schmitt '#clock-cells': 102*1b3cee41SMarcelo Schmitt const: 0 103*1b3cee41SMarcelo Schmitt 104*1b3cee41SMarcelo Schmitt clock-output-names: 105*1b3cee41SMarcelo Schmitt maxItems: 1 106*1b3cee41SMarcelo Schmitt 107*1b3cee41SMarcelo Schmitt gpio-controller: true 108*1b3cee41SMarcelo Schmitt 109*1b3cee41SMarcelo Schmitt "#gpio-cells": 110*1b3cee41SMarcelo Schmitt const: 2 111*1b3cee41SMarcelo Schmitt description: | 112*1b3cee41SMarcelo Schmitt The first cell is for the GPIO number: 0 to 3. 113*1b3cee41SMarcelo Schmitt The second cell takes standard GPIO flags. 114*1b3cee41SMarcelo Schmitt 115*1b3cee41SMarcelo Schmitt ldac-gpios: 116*1b3cee41SMarcelo Schmitt description: 117*1b3cee41SMarcelo Schmitt GPIO connected to DIG_AUX2 pin to be used as LDAC toggle to control the 118*1b3cee41SMarcelo Schmitt transfer of data from the DAC_INPUT_A register to the DAC. 119*1b3cee41SMarcelo Schmitt maxItems: 1 120*1b3cee41SMarcelo Schmitt 121*1b3cee41SMarcelo Schmitt '#address-cells': 122*1b3cee41SMarcelo Schmitt const: 1 123*1b3cee41SMarcelo Schmitt 124*1b3cee41SMarcelo Schmitt '#size-cells': 125*1b3cee41SMarcelo Schmitt const: 0 126*1b3cee41SMarcelo Schmitt 127*1b3cee41SMarcelo Schmitt adi,vbias-pins: 128*1b3cee41SMarcelo Schmitt description: Analog inputs to apply a voltage bias of (AVDD − AVSS) / 2 to. 129*1b3cee41SMarcelo Schmitt $ref: /schemas/types.yaml#/definitions/uint32-array 130*1b3cee41SMarcelo Schmitt minItems: 1 131*1b3cee41SMarcelo Schmitt maxItems: 9 132*1b3cee41SMarcelo Schmitt items: 133*1b3cee41SMarcelo Schmitt minimum: 0 134*1b3cee41SMarcelo Schmitt maximum: 8 135*1b3cee41SMarcelo Schmitt 136*1b3cee41SMarcelo SchmittallOf: 137*1b3cee41SMarcelo Schmitt # Some devices don't have integrated DAC 138*1b3cee41SMarcelo Schmitt - if: 139*1b3cee41SMarcelo Schmitt properties: 140*1b3cee41SMarcelo Schmitt compatible: 141*1b3cee41SMarcelo Schmitt contains: 142*1b3cee41SMarcelo Schmitt enum: 143*1b3cee41SMarcelo Schmitt - adi,ad4190-4 144*1b3cee41SMarcelo Schmitt - adi,ad4195-4 145*1b3cee41SMarcelo Schmitt then: 146*1b3cee41SMarcelo Schmitt properties: 147*1b3cee41SMarcelo Schmitt ldac-gpios: false 148*1b3cee41SMarcelo Schmitt 149*1b3cee41SMarcelo Schmitt # Require to specify the interrupt pin when using interrupts 150*1b3cee41SMarcelo Schmitt - if: 151*1b3cee41SMarcelo Schmitt required: 152*1b3cee41SMarcelo Schmitt - interrupts 153*1b3cee41SMarcelo Schmitt then: 154*1b3cee41SMarcelo Schmitt required: 155*1b3cee41SMarcelo Schmitt - interrupt-names 156*1b3cee41SMarcelo Schmitt 157*1b3cee41SMarcelo Schmitt # If an external clock is set, the internal clock cannot go out and vice versa 158*1b3cee41SMarcelo Schmitt - oneOf: 159*1b3cee41SMarcelo Schmitt - required: [clocks] 160*1b3cee41SMarcelo Schmitt properties: 161*1b3cee41SMarcelo Schmitt '#clock-cells': false 162*1b3cee41SMarcelo Schmitt - required: ['#clock-cells'] 163*1b3cee41SMarcelo Schmitt properties: 164*1b3cee41SMarcelo Schmitt clocks: false 165*1b3cee41SMarcelo Schmitt 166*1b3cee41SMarcelo Schmittrequired: 167*1b3cee41SMarcelo Schmitt - compatible 168*1b3cee41SMarcelo Schmitt - reg 169*1b3cee41SMarcelo Schmitt - avdd-supply 170*1b3cee41SMarcelo Schmitt - iovdd-supply 171*1b3cee41SMarcelo Schmitt - spi-cpol 172*1b3cee41SMarcelo Schmitt - spi-cpha 173*1b3cee41SMarcelo Schmitt 174*1b3cee41SMarcelo SchmittunevaluatedProperties: false 175*1b3cee41SMarcelo Schmitt 176*1b3cee41SMarcelo SchmittpatternProperties: 177*1b3cee41SMarcelo Schmitt "^channel@[0-9a-f]$": 178*1b3cee41SMarcelo Schmitt $ref: /schemas/iio/adc/adc.yaml# 179*1b3cee41SMarcelo Schmitt unevaluatedProperties: false 180*1b3cee41SMarcelo Schmitt description: 181*1b3cee41SMarcelo Schmitt Represents the external channels which are connected to the ADC. 182*1b3cee41SMarcelo Schmitt 183*1b3cee41SMarcelo Schmitt properties: 184*1b3cee41SMarcelo Schmitt reg: 185*1b3cee41SMarcelo Schmitt description: 186*1b3cee41SMarcelo Schmitt The channel number. 187*1b3cee41SMarcelo Schmitt minimum: 0 188*1b3cee41SMarcelo Schmitt maximum: 15 189*1b3cee41SMarcelo Schmitt 190*1b3cee41SMarcelo Schmitt diff-channels: 191*1b3cee41SMarcelo Schmitt description: | 192*1b3cee41SMarcelo Schmitt This property is used for defining the inputs of a differential 193*1b3cee41SMarcelo Schmitt voltage channel. The first value is the positive input and the second 194*1b3cee41SMarcelo Schmitt value is the negative input of the channel. 195*1b3cee41SMarcelo Schmitt 196*1b3cee41SMarcelo Schmitt Besides the analog input pins AIN0 to AIN8, there are special inputs 197*1b3cee41SMarcelo Schmitt that can be selected with the following values: 198*1b3cee41SMarcelo Schmitt 17: Internal temperature sensor 199*1b3cee41SMarcelo Schmitt 18: (AVDD-AVSS)/5 200*1b3cee41SMarcelo Schmitt 19: (IOVDD-DGND)/5 201*1b3cee41SMarcelo Schmitt 20: DAC output 202*1b3cee41SMarcelo Schmitt 21: ALDO 203*1b3cee41SMarcelo Schmitt 22: DLDO 204*1b3cee41SMarcelo Schmitt 23: AVSS 205*1b3cee41SMarcelo Schmitt 24: DGND 206*1b3cee41SMarcelo Schmitt 25: REFIN+ 207*1b3cee41SMarcelo Schmitt 26: REFIN- 208*1b3cee41SMarcelo Schmitt 27: REFIN2+ 209*1b3cee41SMarcelo Schmitt 28: REFIN2- 210*1b3cee41SMarcelo Schmitt 29: REFOUT 211*1b3cee41SMarcelo Schmitt For the internal temperature sensor, use the input number for both 212*1b3cee41SMarcelo Schmitt inputs (i.e. diff-channels = <17 17>). 213*1b3cee41SMarcelo Schmitt items: 214*1b3cee41SMarcelo Schmitt enum: [0, 1, 2, 3, 4, 5, 6, 7, 8, 17, 18, 19, 20, 21, 22, 23, 24, 25, 215*1b3cee41SMarcelo Schmitt 26, 27, 28, 29] 216*1b3cee41SMarcelo Schmitt 217*1b3cee41SMarcelo Schmitt adi,reference-select: 218*1b3cee41SMarcelo Schmitt description: | 219*1b3cee41SMarcelo Schmitt Select the reference source to use when converting on the 220*1b3cee41SMarcelo Schmitt specific channel. Valid values are: 221*1b3cee41SMarcelo Schmitt 0: REFIN+/REFIN- 222*1b3cee41SMarcelo Schmitt 1: REFIN2+/REFIN2− 223*1b3cee41SMarcelo Schmitt 2: REFOUT/AVSS (internal reference) 224*1b3cee41SMarcelo Schmitt 3: AVDD/AVSS 225*1b3cee41SMarcelo Schmitt If not specified, REFOUT/AVSS is used. 226*1b3cee41SMarcelo Schmitt $ref: /schemas/types.yaml#/definitions/uint32 227*1b3cee41SMarcelo Schmitt enum: [0, 1, 2, 3] 228*1b3cee41SMarcelo Schmitt default: 1 229*1b3cee41SMarcelo Schmitt 230*1b3cee41SMarcelo Schmitt adi,positive-reference-buffer: 231*1b3cee41SMarcelo Schmitt $ref: '#/$defs/reference-buffer' 232*1b3cee41SMarcelo Schmitt 233*1b3cee41SMarcelo Schmitt adi,negative-reference-buffer: 234*1b3cee41SMarcelo Schmitt $ref: '#/$defs/reference-buffer' 235*1b3cee41SMarcelo Schmitt 236*1b3cee41SMarcelo Schmitt adi,sensor-type: 237*1b3cee41SMarcelo Schmitt description: 238*1b3cee41SMarcelo Schmitt The AD4170-4 and similar designs have features to aid interfacing with 239*1b3cee41SMarcelo Schmitt load cell weigh scale, RTD, and thermocouple sensors. Each of those 240*1b3cee41SMarcelo Schmitt sensor types requires either distinct wiring configuration or 241*1b3cee41SMarcelo Schmitt external circuitry for proper sensor operation and can use different 242*1b3cee41SMarcelo Schmitt ADC chip functionality on their setups. A key characteristic of those 243*1b3cee41SMarcelo Schmitt external sensors is that they must be excited either by voltage supply 244*1b3cee41SMarcelo Schmitt or by ADC chip excitation signals. The sensor can then be read through 245*1b3cee41SMarcelo Schmitt a pair of analog inputs. This property specifies which particular 246*1b3cee41SMarcelo Schmitt sensor type is connected to the ADC so it can be properly setup and 247*1b3cee41SMarcelo Schmitt handled. Omit this property for conventional (not weigh scale, RTD, or 248*1b3cee41SMarcelo Schmitt thermocouple) ADC channel setups. 249*1b3cee41SMarcelo Schmitt $ref: /schemas/types.yaml#/definitions/string 250*1b3cee41SMarcelo Schmitt enum: [ weighscale, rtd, thermocouple ] 251*1b3cee41SMarcelo Schmitt 252*1b3cee41SMarcelo Schmitt adi,excitation-pin-0: 253*1b3cee41SMarcelo Schmitt description: 254*1b3cee41SMarcelo Schmitt Analog input to apply excitation current to while the channel 255*1b3cee41SMarcelo Schmitt is active. 256*1b3cee41SMarcelo Schmitt $ref: /schemas/types.yaml#/definitions/uint32 257*1b3cee41SMarcelo Schmitt minimum: 0 258*1b3cee41SMarcelo Schmitt maximum: 20 259*1b3cee41SMarcelo Schmitt default: 0 260*1b3cee41SMarcelo Schmitt 261*1b3cee41SMarcelo Schmitt adi,excitation-pin-1: 262*1b3cee41SMarcelo Schmitt description: 263*1b3cee41SMarcelo Schmitt Analog input to apply excitation current to while the channel 264*1b3cee41SMarcelo Schmitt is active. 265*1b3cee41SMarcelo Schmitt $ref: /schemas/types.yaml#/definitions/uint32 266*1b3cee41SMarcelo Schmitt minimum: 0 267*1b3cee41SMarcelo Schmitt maximum: 20 268*1b3cee41SMarcelo Schmitt default: 0 269*1b3cee41SMarcelo Schmitt 270*1b3cee41SMarcelo Schmitt adi,excitation-pin-2: 271*1b3cee41SMarcelo Schmitt description: 272*1b3cee41SMarcelo Schmitt Analog input to apply excitation current to while the channel 273*1b3cee41SMarcelo Schmitt is active. 274*1b3cee41SMarcelo Schmitt $ref: /schemas/types.yaml#/definitions/uint32 275*1b3cee41SMarcelo Schmitt minimum: 0 276*1b3cee41SMarcelo Schmitt maximum: 20 277*1b3cee41SMarcelo Schmitt default: 0 278*1b3cee41SMarcelo Schmitt 279*1b3cee41SMarcelo Schmitt adi,excitation-pin-3: 280*1b3cee41SMarcelo Schmitt description: 281*1b3cee41SMarcelo Schmitt Analog input to apply excitation current to while the channel 282*1b3cee41SMarcelo Schmitt is active. 283*1b3cee41SMarcelo Schmitt $ref: /schemas/types.yaml#/definitions/uint32 284*1b3cee41SMarcelo Schmitt minimum: 0 285*1b3cee41SMarcelo Schmitt maximum: 20 286*1b3cee41SMarcelo Schmitt default: 0 287*1b3cee41SMarcelo Schmitt 288*1b3cee41SMarcelo Schmitt adi,excitation-current-0-microamp: 289*1b3cee41SMarcelo Schmitt description: 290*1b3cee41SMarcelo Schmitt Excitation current in microamperes to be applied to pin specified in 291*1b3cee41SMarcelo Schmitt adi,excitation-pin-0 while this channel is active. 292*1b3cee41SMarcelo Schmitt enum: [0, 10, 50, 100, 250, 500, 1000, 1500] 293*1b3cee41SMarcelo Schmitt default: 0 294*1b3cee41SMarcelo Schmitt 295*1b3cee41SMarcelo Schmitt adi,excitation-current-1-microamp: 296*1b3cee41SMarcelo Schmitt description: 297*1b3cee41SMarcelo Schmitt Excitation current in microamperes to be applied to pin specified in 298*1b3cee41SMarcelo Schmitt adi,excitation-pin-1 while this channel is active. 299*1b3cee41SMarcelo Schmitt enum: [0, 10, 50, 100, 250, 500, 1000, 1500] 300*1b3cee41SMarcelo Schmitt default: 0 301*1b3cee41SMarcelo Schmitt 302*1b3cee41SMarcelo Schmitt adi,excitation-current-2-microamp: 303*1b3cee41SMarcelo Schmitt description: 304*1b3cee41SMarcelo Schmitt Excitation current in microamperes to be applied to pin specified in 305*1b3cee41SMarcelo Schmitt adi,excitation-pin-2 while this channel is active. 306*1b3cee41SMarcelo Schmitt enum: [0, 10, 50, 100, 250, 500, 1000, 1500] 307*1b3cee41SMarcelo Schmitt default: 0 308*1b3cee41SMarcelo Schmitt 309*1b3cee41SMarcelo Schmitt adi,excitation-current-3-microamp: 310*1b3cee41SMarcelo Schmitt description: 311*1b3cee41SMarcelo Schmitt Excitation current in microamperes to be applied to pin specified in 312*1b3cee41SMarcelo Schmitt adi,excitation-pin-3 while this channel is active. 313*1b3cee41SMarcelo Schmitt enum: [0, 10, 50, 100, 250, 500, 1000, 1500] 314*1b3cee41SMarcelo Schmitt default: 0 315*1b3cee41SMarcelo Schmitt 316*1b3cee41SMarcelo Schmitt adi,excitation-ac: 317*1b3cee41SMarcelo Schmitt type: boolean 318*1b3cee41SMarcelo Schmitt description: 319*1b3cee41SMarcelo Schmitt Whether the external sensor has to be AC or DC excited. When omitted, 320*1b3cee41SMarcelo Schmitt it is DC excited. 321*1b3cee41SMarcelo Schmitt 322*1b3cee41SMarcelo Schmitt allOf: 323*1b3cee41SMarcelo Schmitt - oneOf: 324*1b3cee41SMarcelo Schmitt - required: [single-channel, common-mode-channel] 325*1b3cee41SMarcelo Schmitt properties: 326*1b3cee41SMarcelo Schmitt diff-channels: false 327*1b3cee41SMarcelo Schmitt - required: [diff-channels] 328*1b3cee41SMarcelo Schmitt properties: 329*1b3cee41SMarcelo Schmitt single-channel: false 330*1b3cee41SMarcelo Schmitt common-mode-channel: false 331*1b3cee41SMarcelo Schmitt # Usual ADC channels don't need external circuitry excitation. 332*1b3cee41SMarcelo Schmitt - if: 333*1b3cee41SMarcelo Schmitt not: 334*1b3cee41SMarcelo Schmitt required: 335*1b3cee41SMarcelo Schmitt - adi,sensor-type 336*1b3cee41SMarcelo Schmitt then: 337*1b3cee41SMarcelo Schmitt properties: 338*1b3cee41SMarcelo Schmitt adi,excitation-pin-0: false 339*1b3cee41SMarcelo Schmitt adi,excitation-pin-1: false 340*1b3cee41SMarcelo Schmitt adi,excitation-pin-2: false 341*1b3cee41SMarcelo Schmitt adi,excitation-pin-3: false 342*1b3cee41SMarcelo Schmitt adi,excitation-current-0-microamp: false 343*1b3cee41SMarcelo Schmitt adi,excitation-current-1-microamp: false 344*1b3cee41SMarcelo Schmitt adi,excitation-current-2-microamp: false 345*1b3cee41SMarcelo Schmitt adi,excitation-current-3-microamp: false 346*1b3cee41SMarcelo Schmitt adi,excitation-ac: false 347*1b3cee41SMarcelo Schmitt # Weigh scale bridge AC excited with one pair of predefined signals. 348*1b3cee41SMarcelo Schmitt - if: 349*1b3cee41SMarcelo Schmitt allOf: 350*1b3cee41SMarcelo Schmitt - properties: 351*1b3cee41SMarcelo Schmitt adi,sensor-type: 352*1b3cee41SMarcelo Schmitt contains: 353*1b3cee41SMarcelo Schmitt const: weighscale 354*1b3cee41SMarcelo Schmitt - required: 355*1b3cee41SMarcelo Schmitt - adi,excitation-ac 356*1b3cee41SMarcelo Schmitt - adi,excitation-pin-2 357*1b3cee41SMarcelo Schmitt - adi,excitation-pin-3 358*1b3cee41SMarcelo Schmitt - not: 359*1b3cee41SMarcelo Schmitt required: 360*1b3cee41SMarcelo Schmitt - adi,excitation-current-2-microamp 361*1b3cee41SMarcelo Schmitt - adi,excitation-current-3-microamp 362*1b3cee41SMarcelo Schmitt then: 363*1b3cee41SMarcelo Schmitt properties: 364*1b3cee41SMarcelo Schmitt adi,excitation-pin-2: 365*1b3cee41SMarcelo Schmitt const: 19 366*1b3cee41SMarcelo Schmitt adi,excitation-pin-3: 367*1b3cee41SMarcelo Schmitt const: 20 368*1b3cee41SMarcelo Schmitt # Weigh scale bridge AC excited with two pairs of predefined signals. 369*1b3cee41SMarcelo Schmitt - if: 370*1b3cee41SMarcelo Schmitt allOf: 371*1b3cee41SMarcelo Schmitt - properties: 372*1b3cee41SMarcelo Schmitt adi,sensor-type: 373*1b3cee41SMarcelo Schmitt contains: 374*1b3cee41SMarcelo Schmitt const: weighscale 375*1b3cee41SMarcelo Schmitt - required: 376*1b3cee41SMarcelo Schmitt - adi,excitation-ac 377*1b3cee41SMarcelo Schmitt - adi,excitation-pin-0 378*1b3cee41SMarcelo Schmitt - adi,excitation-pin-1 379*1b3cee41SMarcelo Schmitt - adi,excitation-pin-2 380*1b3cee41SMarcelo Schmitt - adi,excitation-pin-3 381*1b3cee41SMarcelo Schmitt - not: 382*1b3cee41SMarcelo Schmitt required: 383*1b3cee41SMarcelo Schmitt - adi,excitation-current-0-microamp 384*1b3cee41SMarcelo Schmitt - adi,excitation-current-1-microamp 385*1b3cee41SMarcelo Schmitt - adi,excitation-current-2-microamp 386*1b3cee41SMarcelo Schmitt - adi,excitation-current-3-microamp 387*1b3cee41SMarcelo Schmitt then: 388*1b3cee41SMarcelo Schmitt properties: 389*1b3cee41SMarcelo Schmitt adi,excitation-pin-0: 390*1b3cee41SMarcelo Schmitt const: 17 391*1b3cee41SMarcelo Schmitt adi,excitation-pin-1: 392*1b3cee41SMarcelo Schmitt const: 18 393*1b3cee41SMarcelo Schmitt adi,excitation-pin-2: 394*1b3cee41SMarcelo Schmitt const: 19 395*1b3cee41SMarcelo Schmitt adi,excitation-pin-3: 396*1b3cee41SMarcelo Schmitt const: 20 397*1b3cee41SMarcelo Schmitt 398*1b3cee41SMarcelo Schmittexamples: 399*1b3cee41SMarcelo Schmitt - | 400*1b3cee41SMarcelo Schmitt #include <dt-bindings/interrupt-controller/irq.h> 401*1b3cee41SMarcelo Schmitt spi { 402*1b3cee41SMarcelo Schmitt #address-cells = <1>; 403*1b3cee41SMarcelo Schmitt #size-cells = <0>; 404*1b3cee41SMarcelo Schmitt 405*1b3cee41SMarcelo Schmitt adc@0 { 406*1b3cee41SMarcelo Schmitt compatible = "adi,ad4170-4"; 407*1b3cee41SMarcelo Schmitt reg = <0>; 408*1b3cee41SMarcelo Schmitt spi-max-frequency = <20000000>; 409*1b3cee41SMarcelo Schmitt spi-cpol; 410*1b3cee41SMarcelo Schmitt spi-cpha; 411*1b3cee41SMarcelo Schmitt avdd-supply = <&avdd>; 412*1b3cee41SMarcelo Schmitt iovdd-supply = <&iovdd>; 413*1b3cee41SMarcelo Schmitt clocks = <&clk>; 414*1b3cee41SMarcelo Schmitt clock-names = "xtal"; 415*1b3cee41SMarcelo Schmitt interrupts = <0 IRQ_TYPE_EDGE_FALLING>; 416*1b3cee41SMarcelo Schmitt interrupt-names = "dig_aux1"; 417*1b3cee41SMarcelo Schmitt adi,vbias-pins = <8>; 418*1b3cee41SMarcelo Schmitt #address-cells = <1>; 419*1b3cee41SMarcelo Schmitt #size-cells = <0>; 420*1b3cee41SMarcelo Schmitt 421*1b3cee41SMarcelo Schmitt // Sample AIN0 with respect to DGND throughout AVDD/DGND input range 422*1b3cee41SMarcelo Schmitt // Pseudo-differential unipolar 423*1b3cee41SMarcelo Schmitt channel@0 { 424*1b3cee41SMarcelo Schmitt reg = <0>; 425*1b3cee41SMarcelo Schmitt single-channel = <0>; 426*1b3cee41SMarcelo Schmitt common-mode-channel = <24>; 427*1b3cee41SMarcelo Schmitt adi,reference-select = <3>; 428*1b3cee41SMarcelo Schmitt }; 429*1b3cee41SMarcelo Schmitt // Weigh scale sensor 430*1b3cee41SMarcelo Schmitt channel@1 { 431*1b3cee41SMarcelo Schmitt reg = <1>; 432*1b3cee41SMarcelo Schmitt bipolar; 433*1b3cee41SMarcelo Schmitt diff-channels = <1 2>; 434*1b3cee41SMarcelo Schmitt adi,reference-select = <0>; 435*1b3cee41SMarcelo Schmitt adi,positive-reference-buffer = "precharge"; 436*1b3cee41SMarcelo Schmitt adi,negative-reference-buffer = "precharge"; 437*1b3cee41SMarcelo Schmitt adi,sensor-type = "weighscale"; 438*1b3cee41SMarcelo Schmitt adi,excitation-pin-2 = <19>; 439*1b3cee41SMarcelo Schmitt adi,excitation-pin-3 = <20>; 440*1b3cee41SMarcelo Schmitt adi,excitation-ac; 441*1b3cee41SMarcelo Schmitt }; 442*1b3cee41SMarcelo Schmitt // RTD sensor 443*1b3cee41SMarcelo Schmitt channel@2 { 444*1b3cee41SMarcelo Schmitt reg = <2>; 445*1b3cee41SMarcelo Schmitt bipolar; 446*1b3cee41SMarcelo Schmitt diff-channels = <3 4>; 447*1b3cee41SMarcelo Schmitt adi,reference-select = <0>; 448*1b3cee41SMarcelo Schmitt adi,sensor-type = "rtd"; 449*1b3cee41SMarcelo Schmitt adi,excitation-pin-0 = <5>; 450*1b3cee41SMarcelo Schmitt adi,excitation-pin-1 = <6>; 451*1b3cee41SMarcelo Schmitt adi,excitation-current-0-microamp = <500>; 452*1b3cee41SMarcelo Schmitt adi,excitation-current-1-microamp = <500>; 453*1b3cee41SMarcelo Schmitt adi,excitation-ac; 454*1b3cee41SMarcelo Schmitt }; 455*1b3cee41SMarcelo Schmitt // Thermocouple sensor 456*1b3cee41SMarcelo Schmitt channel@3 { 457*1b3cee41SMarcelo Schmitt reg = <3>; 458*1b3cee41SMarcelo Schmitt bipolar; 459*1b3cee41SMarcelo Schmitt diff-channels = <7 8>; 460*1b3cee41SMarcelo Schmitt adi,reference-select = <0>; 461*1b3cee41SMarcelo Schmitt adi,sensor-type = "thermocouple"; 462*1b3cee41SMarcelo Schmitt adi,excitation-pin-0 = <18>; 463*1b3cee41SMarcelo Schmitt adi,excitation-current-0-microamp = <500>; 464*1b3cee41SMarcelo Schmitt }; 465*1b3cee41SMarcelo Schmitt }; 466*1b3cee41SMarcelo Schmitt }; 467*1b3cee41SMarcelo Schmitt - | 468*1b3cee41SMarcelo Schmitt #include <dt-bindings/interrupt-controller/irq.h> 469*1b3cee41SMarcelo Schmitt spi { 470*1b3cee41SMarcelo Schmitt #address-cells = <1>; 471*1b3cee41SMarcelo Schmitt #size-cells = <0>; 472*1b3cee41SMarcelo Schmitt 473*1b3cee41SMarcelo Schmitt adc@0 { 474*1b3cee41SMarcelo Schmitt compatible = "adi,ad4170-4"; 475*1b3cee41SMarcelo Schmitt reg = <0>; 476*1b3cee41SMarcelo Schmitt spi-max-frequency = <20000000>; 477*1b3cee41SMarcelo Schmitt spi-cpol; 478*1b3cee41SMarcelo Schmitt spi-cpha; 479*1b3cee41SMarcelo Schmitt avdd-supply = <&avdd>; 480*1b3cee41SMarcelo Schmitt iovdd-supply = <&iovdd>; 481*1b3cee41SMarcelo Schmitt #clock-cells = <0>; 482*1b3cee41SMarcelo Schmitt clock-output-names = "ad4170-clk16mhz"; 483*1b3cee41SMarcelo Schmitt interrupts = <0 IRQ_TYPE_EDGE_FALLING>; 484*1b3cee41SMarcelo Schmitt interrupt-names = "dig_aux1"; 485*1b3cee41SMarcelo Schmitt #address-cells = <1>; 486*1b3cee41SMarcelo Schmitt #size-cells = <0>; 487*1b3cee41SMarcelo Schmitt 488*1b3cee41SMarcelo Schmitt // Sample AIN0 with respect to AIN1 throughout AVDD/AVSS input range 489*1b3cee41SMarcelo Schmitt // Differential bipolar. If AVSS < 0V, differential true bipolar 490*1b3cee41SMarcelo Schmitt channel@0 { 491*1b3cee41SMarcelo Schmitt reg = <0>; 492*1b3cee41SMarcelo Schmitt bipolar; 493*1b3cee41SMarcelo Schmitt diff-channels = <0 1>; 494*1b3cee41SMarcelo Schmitt adi,reference-select = <3>; 495*1b3cee41SMarcelo Schmitt }; 496*1b3cee41SMarcelo Schmitt // Sample AIN2 with respect to DGND throughout AVDD/DGND input range 497*1b3cee41SMarcelo Schmitt // Pseudo-differential unipolar 498*1b3cee41SMarcelo Schmitt channel@1 { 499*1b3cee41SMarcelo Schmitt reg = <1>; 500*1b3cee41SMarcelo Schmitt single-channel = <2>; 501*1b3cee41SMarcelo Schmitt common-mode-channel = <24>; 502*1b3cee41SMarcelo Schmitt adi,reference-select = <3>; 503*1b3cee41SMarcelo Schmitt }; 504*1b3cee41SMarcelo Schmitt // Sample AIN3 with respect to 2.5V throughout AVDD/AVSS input range 505*1b3cee41SMarcelo Schmitt // Pseudo-differential bipolar 506*1b3cee41SMarcelo Schmitt channel@2 { 507*1b3cee41SMarcelo Schmitt reg = <2>; 508*1b3cee41SMarcelo Schmitt bipolar; 509*1b3cee41SMarcelo Schmitt single-channel = <3>; 510*1b3cee41SMarcelo Schmitt common-mode-channel = <29>; 511*1b3cee41SMarcelo Schmitt adi,reference-select = <3>; 512*1b3cee41SMarcelo Schmitt }; 513*1b3cee41SMarcelo Schmitt // Sample AIN4 with respect to DGND throughout AVDD/AVSS input range 514*1b3cee41SMarcelo Schmitt // Pseudo-differential bipolar 515*1b3cee41SMarcelo Schmitt channel@3 { 516*1b3cee41SMarcelo Schmitt reg = <3>; 517*1b3cee41SMarcelo Schmitt bipolar; 518*1b3cee41SMarcelo Schmitt single-channel = <4>; 519*1b3cee41SMarcelo Schmitt common-mode-channel = <24>; 520*1b3cee41SMarcelo Schmitt adi,reference-select = <3>; 521*1b3cee41SMarcelo Schmitt }; 522*1b3cee41SMarcelo Schmitt // Sample AIN5 with respect to 2.5V throughout AVDD/AVSS input range 523*1b3cee41SMarcelo Schmitt // Pseudo-differential unipolar (AD4170-4 datasheet page 46 example) 524*1b3cee41SMarcelo Schmitt channel@4 { 525*1b3cee41SMarcelo Schmitt reg = <4>; 526*1b3cee41SMarcelo Schmitt single-channel = <5>; 527*1b3cee41SMarcelo Schmitt common-mode-channel = <29>; 528*1b3cee41SMarcelo Schmitt adi,reference-select = <3>; 529*1b3cee41SMarcelo Schmitt }; 530*1b3cee41SMarcelo Schmitt // Sample AIN6 with respect to 2.5V throughout REFIN+/REFIN- input range 531*1b3cee41SMarcelo Schmitt // Pseudo-differential bipolar 532*1b3cee41SMarcelo Schmitt channel@5 { 533*1b3cee41SMarcelo Schmitt reg = <5>; 534*1b3cee41SMarcelo Schmitt bipolar; 535*1b3cee41SMarcelo Schmitt single-channel = <6>; 536*1b3cee41SMarcelo Schmitt common-mode-channel = <29>; 537*1b3cee41SMarcelo Schmitt adi,reference-select = <0>; 538*1b3cee41SMarcelo Schmitt }; 539*1b3cee41SMarcelo Schmitt // Weigh scale sensor 540*1b3cee41SMarcelo Schmitt channel@6 { 541*1b3cee41SMarcelo Schmitt reg = <6>; 542*1b3cee41SMarcelo Schmitt bipolar; 543*1b3cee41SMarcelo Schmitt diff-channels = <7 8>; 544*1b3cee41SMarcelo Schmitt adi,reference-select = <0>; 545*1b3cee41SMarcelo Schmitt adi,sensor-type = "weighscale"; 546*1b3cee41SMarcelo Schmitt adi,excitation-pin-0 = <17>; 547*1b3cee41SMarcelo Schmitt adi,excitation-pin-1 = <18>; 548*1b3cee41SMarcelo Schmitt adi,excitation-pin-2 = <19>; 549*1b3cee41SMarcelo Schmitt adi,excitation-pin-3 = <20>; 550*1b3cee41SMarcelo Schmitt adi,excitation-ac; 551*1b3cee41SMarcelo Schmitt }; 552*1b3cee41SMarcelo Schmitt }; 553*1b3cee41SMarcelo Schmitt }; 554*1b3cee41SMarcelo Schmitt... 555