1c4ea781cSDavid Lechner# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2c4ea781cSDavid Lechner%YAML 1.2 3c4ea781cSDavid Lechner--- 4c4ea781cSDavid Lechner$id: http://devicetree.org/schemas/iio/adc/adi,ad7380.yaml# 5c4ea781cSDavid Lechner$schema: http://devicetree.org/meta-schemas/core.yaml# 6c4ea781cSDavid Lechner 7c4ea781cSDavid Lechnertitle: Analog Devices Simultaneous Sampling Analog to Digital Converters 8c4ea781cSDavid Lechner 9c4ea781cSDavid Lechnermaintainers: 10c4ea781cSDavid Lechner - Michael Hennerich <Michael.Hennerich@analog.com> 11c4ea781cSDavid Lechner - Nuno Sá <nuno.sa@analog.com> 12c4ea781cSDavid Lechner 13c4ea781cSDavid Lechnerdescription: | 14c4ea781cSDavid Lechner * https://www.analog.com/en/products/ad7380.html 15c4ea781cSDavid Lechner * https://www.analog.com/en/products/ad7381.html 166b2c8019SDavid Lechner * https://www.analog.com/en/products/ad7383.html 176b2c8019SDavid Lechner * https://www.analog.com/en/products/ad7384.html 182043594dSJulien Stephan * https://www.analog.com/en/products/ad7386.html 192043594dSJulien Stephan * https://www.analog.com/en/products/ad7387.html 202043594dSJulien Stephan * https://www.analog.com/en/products/ad7388.html 211a291cc8SJulien Stephan * https://www.analog.com/en/products/ad7380-4.html 221a291cc8SJulien Stephan * https://www.analog.com/en/products/ad7381-4.html 231a291cc8SJulien Stephan * https://www.analog.com/en/products/ad7383-4.html 241a291cc8SJulien Stephan * https://www.analog.com/en/products/ad7384-4.html 252043594dSJulien Stephan * https://www.analog.com/en/products/ad7386-4.html 262043594dSJulien Stephan * https://www.analog.com/en/products/ad7387-4.html 272043594dSJulien Stephan * https://www.analog.com/en/products/ad7388-4.html 28*ebe0b2a8SDavid Lechner * https://www.analog.com/en/products/ad7389-4.html 2919406b0aSJulien Stephan * https://www.analog.com/en/products/adaq4370-4.html 3019406b0aSJulien Stephan * https://www.analog.com/en/products/adaq4380-4.html 317131fcdbSJulien Stephan * https://www.analog.com/en/products/adaq4381-4.html 322043594dSJulien Stephan 33c4ea781cSDavid Lechner 34c4ea781cSDavid Lechner$ref: /schemas/spi/spi-peripheral-props.yaml# 35c4ea781cSDavid Lechner 36c4ea781cSDavid Lechnerproperties: 37c4ea781cSDavid Lechner compatible: 38c4ea781cSDavid Lechner enum: 39c4ea781cSDavid Lechner - adi,ad7380 40c4ea781cSDavid Lechner - adi,ad7381 416b2c8019SDavid Lechner - adi,ad7383 426b2c8019SDavid Lechner - adi,ad7384 432043594dSJulien Stephan - adi,ad7386 442043594dSJulien Stephan - adi,ad7387 452043594dSJulien Stephan - adi,ad7388 461a291cc8SJulien Stephan - adi,ad7380-4 471a291cc8SJulien Stephan - adi,ad7381-4 481a291cc8SJulien Stephan - adi,ad7383-4 491a291cc8SJulien Stephan - adi,ad7384-4 502043594dSJulien Stephan - adi,ad7386-4 512043594dSJulien Stephan - adi,ad7387-4 522043594dSJulien Stephan - adi,ad7388-4 53*ebe0b2a8SDavid Lechner - adi,ad7389-4 5419406b0aSJulien Stephan - adi,adaq4370-4 5519406b0aSJulien Stephan - adi,adaq4380-4 567131fcdbSJulien Stephan - adi,adaq4381-4 57c4ea781cSDavid Lechner 58c4ea781cSDavid Lechner reg: 59c4ea781cSDavid Lechner maxItems: 1 60c4ea781cSDavid Lechner 61c4ea781cSDavid Lechner spi-max-frequency: 62c4ea781cSDavid Lechner maximum: 80000000 63c4ea781cSDavid Lechner spi-cpol: true 64c4ea781cSDavid Lechner spi-cpha: true 65c4ea781cSDavid Lechner 66c4ea781cSDavid Lechner vcc-supply: 67c4ea781cSDavid Lechner description: A 3V to 3.6V supply that powers the chip. 68c4ea781cSDavid Lechner 69c4ea781cSDavid Lechner vlogic-supply: 70c4ea781cSDavid Lechner description: 71c4ea781cSDavid Lechner A 1.65V to 3.6V supply for the logic pins. 72c4ea781cSDavid Lechner 73c4ea781cSDavid Lechner refio-supply: 74c4ea781cSDavid Lechner description: 75c4ea781cSDavid Lechner A 2.5V to 3.3V supply for the external reference voltage. When omitted, 76c4ea781cSDavid Lechner the internal 2.5V reference is used. 77c4ea781cSDavid Lechner 78fbe5956eSJulien Stephan refin-supply: 79fbe5956eSJulien Stephan description: 80fbe5956eSJulien Stephan A 2.5V to 3.3V supply for external reference voltage, for ad7380-4 only. 8119406b0aSJulien Stephan For adaq devices, a 5V supply voltage. A 3.3V internal reference is 8219406b0aSJulien Stephan derived from it. Connect to vs-p-supply for normal operation. 8319406b0aSJulien Stephan 8419406b0aSJulien Stephan vs-p-supply: 8519406b0aSJulien Stephan description: 8619406b0aSJulien Stephan Amplifiers positive supply. 8719406b0aSJulien Stephan 8819406b0aSJulien Stephan vs-n-supply: 8919406b0aSJulien Stephan description: 9019406b0aSJulien Stephan Amplifiers negative supply. 9119406b0aSJulien Stephan 9219406b0aSJulien Stephan ldo-supply: 9319406b0aSJulien Stephan description: 9419406b0aSJulien Stephan LDO supply. Connect to vs-p-supply or a 3.6 to 5.5 V supply. 95fbe5956eSJulien Stephan 966b2c8019SDavid Lechner aina-supply: 976b2c8019SDavid Lechner description: 986b2c8019SDavid Lechner The common mode voltage supply for the AINA- pin on pseudo-differential 996b2c8019SDavid Lechner chips. 1006b2c8019SDavid Lechner 1016b2c8019SDavid Lechner ainb-supply: 1026b2c8019SDavid Lechner description: 1036b2c8019SDavid Lechner The common mode voltage supply for the AINB- pin on pseudo-differential 1046b2c8019SDavid Lechner chips. 1056b2c8019SDavid Lechner 1061a291cc8SJulien Stephan ainc-supply: 1071a291cc8SJulien Stephan description: 1081a291cc8SJulien Stephan The common mode voltage supply for the AINC- pin on pseudo-differential 1091a291cc8SJulien Stephan chips. 1101a291cc8SJulien Stephan 1111a291cc8SJulien Stephan aind-supply: 1121a291cc8SJulien Stephan description: 1131a291cc8SJulien Stephan The common mode voltage supply for the AIND- pin on pseudo-differential 1141a291cc8SJulien Stephan chips. 1151a291cc8SJulien Stephan 116c4ea781cSDavid Lechner interrupts: 117c4ea781cSDavid Lechner description: 118c4ea781cSDavid Lechner When the device is using 1-wire mode, this property is used to optionally 119c4ea781cSDavid Lechner specify the ALERT interrupt. 120c4ea781cSDavid Lechner maxItems: 1 121c4ea781cSDavid Lechner 12219406b0aSJulien Stephan "#address-cells": 12319406b0aSJulien Stephan const: 1 12419406b0aSJulien Stephan 12519406b0aSJulien Stephan "#size-cells": 12619406b0aSJulien Stephan const: 0 12719406b0aSJulien Stephan 128c4ea781cSDavid Lechnerrequired: 129c4ea781cSDavid Lechner - compatible 130c4ea781cSDavid Lechner - reg 131c4ea781cSDavid Lechner - vcc-supply 132c4ea781cSDavid Lechner - vlogic-supply 133c4ea781cSDavid Lechner 13419406b0aSJulien StephanpatternProperties: 13519406b0aSJulien Stephan "^channel@[0-3]$": 13619406b0aSJulien Stephan $ref: adc.yaml 13719406b0aSJulien Stephan type: object 13819406b0aSJulien Stephan 13919406b0aSJulien Stephan properties: 14019406b0aSJulien Stephan reg: 14119406b0aSJulien Stephan description: 14219406b0aSJulien Stephan The channel number. From 0 to 3 corresponding to channels A,B,C,D 14319406b0aSJulien Stephan minimum: 0 14419406b0aSJulien Stephan maximum: 3 14519406b0aSJulien Stephan 14619406b0aSJulien Stephan adi,gain-milli: 14719406b0aSJulien Stephan description: 14819406b0aSJulien Stephan The hardware gain applied to the ADC input (in milli units). 14919406b0aSJulien Stephan If not present, default to 1000 (no actual gain applied). 15019406b0aSJulien Stephan Refer to the typical connection diagrams section of the datasheet for 15119406b0aSJulien Stephan pin wiring. 15219406b0aSJulien Stephan $ref: /schemas/types.yaml#/definitions/uint16 15319406b0aSJulien Stephan enum: [300, 600, 1000, 1600] 15419406b0aSJulien Stephan default: 1000 15519406b0aSJulien Stephan 15619406b0aSJulien Stephan required: 15719406b0aSJulien Stephan - reg 15819406b0aSJulien Stephan 15919406b0aSJulien Stephan additionalProperties: false 16019406b0aSJulien Stephan 161c4ea781cSDavid LechnerunevaluatedProperties: false 162c4ea781cSDavid Lechner 1636b2c8019SDavid LechnerallOf: 1646b2c8019SDavid Lechner # pseudo-differential chips require common mode voltage supplies, 1656b2c8019SDavid Lechner # true differential chips don't use them 1666b2c8019SDavid Lechner - if: 1676b2c8019SDavid Lechner properties: 1686b2c8019SDavid Lechner compatible: 1696b2c8019SDavid Lechner enum: 1706b2c8019SDavid Lechner - adi,ad7383 1716b2c8019SDavid Lechner - adi,ad7384 1721a291cc8SJulien Stephan - adi,ad7383-4 1731a291cc8SJulien Stephan - adi,ad7384-4 1746b2c8019SDavid Lechner then: 1756b2c8019SDavid Lechner required: 1766b2c8019SDavid Lechner - aina-supply 1776b2c8019SDavid Lechner - ainb-supply 1786b2c8019SDavid Lechner else: 1796b2c8019SDavid Lechner properties: 1806b2c8019SDavid Lechner aina-supply: false 1816b2c8019SDavid Lechner ainb-supply: false 1821a291cc8SJulien Stephan - if: 1831a291cc8SJulien Stephan properties: 1841a291cc8SJulien Stephan compatible: 1851a291cc8SJulien Stephan enum: 1861a291cc8SJulien Stephan - adi,ad7383-4 1871a291cc8SJulien Stephan - adi,ad7384-4 1881a291cc8SJulien Stephan then: 1891a291cc8SJulien Stephan required: 1901a291cc8SJulien Stephan - ainc-supply 1911a291cc8SJulien Stephan - aind-supply 1921a291cc8SJulien Stephan else: 1931a291cc8SJulien Stephan properties: 1941a291cc8SJulien Stephan ainc-supply: false 1951a291cc8SJulien Stephan aind-supply: false 1966b2c8019SDavid Lechner 197fbe5956eSJulien Stephan # ad7380-4 uses refin-supply as external reference. 19819406b0aSJulien Stephan # adaq devices use internal reference only, derived from refin-supply 199fbe5956eSJulien Stephan # All other chips from ad738x family use refio as optional external reference. 200fbe5956eSJulien Stephan # When refio-supply is omitted, internal reference is used. 201fbe5956eSJulien Stephan - if: 202fbe5956eSJulien Stephan properties: 203fbe5956eSJulien Stephan compatible: 204fbe5956eSJulien Stephan enum: 205fbe5956eSJulien Stephan - adi,ad7380-4 20619406b0aSJulien Stephan - adi,adaq4370-4 20719406b0aSJulien Stephan - adi,adaq4380-4 2087131fcdbSJulien Stephan - adi,adaq4381-4 209fbe5956eSJulien Stephan then: 210fbe5956eSJulien Stephan properties: 211fbe5956eSJulien Stephan refio-supply: false 212fbe5956eSJulien Stephan required: 213fbe5956eSJulien Stephan - refin-supply 214fbe5956eSJulien Stephan else: 215fbe5956eSJulien Stephan properties: 216fbe5956eSJulien Stephan refin-supply: false 217fbe5956eSJulien Stephan 218*ebe0b2a8SDavid Lechner # adi,ad7389-4 is internal reference only 219*ebe0b2a8SDavid Lechner - if: 220*ebe0b2a8SDavid Lechner properties: 221*ebe0b2a8SDavid Lechner compatible: 222*ebe0b2a8SDavid Lechner const: adi,ad7389-4 223*ebe0b2a8SDavid Lechner then: 224*ebe0b2a8SDavid Lechner properties: 225*ebe0b2a8SDavid Lechner refio-supply: false 226*ebe0b2a8SDavid Lechner 22719406b0aSJulien Stephan # adaq devices need more supplies and using channel to declare gain property 22819406b0aSJulien Stephan # only applies to adaq devices 22919406b0aSJulien Stephan - if: 23019406b0aSJulien Stephan properties: 23119406b0aSJulien Stephan compatible: 23219406b0aSJulien Stephan enum: 23319406b0aSJulien Stephan - adi,adaq4370-4 23419406b0aSJulien Stephan - adi,adaq4380-4 2357131fcdbSJulien Stephan - adi,adaq4381-4 23619406b0aSJulien Stephan then: 23719406b0aSJulien Stephan required: 23819406b0aSJulien Stephan - vs-p-supply 23919406b0aSJulien Stephan - vs-n-supply 24019406b0aSJulien Stephan - ldo-supply 24119406b0aSJulien Stephan else: 24219406b0aSJulien Stephan properties: 24319406b0aSJulien Stephan vs-p-supply: false 24419406b0aSJulien Stephan vs-n-supply: false 24519406b0aSJulien Stephan ldo-supply: false 24619406b0aSJulien Stephan patternProperties: 24719406b0aSJulien Stephan "^channel@[0-3]$": false 24819406b0aSJulien Stephan 249c4ea781cSDavid Lechnerexamples: 250c4ea781cSDavid Lechner - | 251c4ea781cSDavid Lechner #include <dt-bindings/interrupt-controller/irq.h> 252c4ea781cSDavid Lechner 253c4ea781cSDavid Lechner spi { 254c4ea781cSDavid Lechner #address-cells = <1>; 255c4ea781cSDavid Lechner #size-cells = <0>; 256c4ea781cSDavid Lechner 257c4ea781cSDavid Lechner adc@0 { 258c4ea781cSDavid Lechner compatible = "adi,ad7380"; 259c4ea781cSDavid Lechner reg = <0>; 260c4ea781cSDavid Lechner 261c4ea781cSDavid Lechner spi-cpol; 262c4ea781cSDavid Lechner spi-cpha; 263c4ea781cSDavid Lechner spi-max-frequency = <80000000>; 264c4ea781cSDavid Lechner 265c4ea781cSDavid Lechner interrupts = <27 IRQ_TYPE_EDGE_FALLING>; 266c4ea781cSDavid Lechner interrupt-parent = <&gpio0>; 267c4ea781cSDavid Lechner 268c4ea781cSDavid Lechner vcc-supply = <&supply_3_3V>; 269c4ea781cSDavid Lechner vlogic-supply = <&supply_3_3V>; 270c4ea781cSDavid Lechner refio-supply = <&supply_2_5V>; 271c4ea781cSDavid Lechner }; 272c4ea781cSDavid Lechner }; 27319406b0aSJulien Stephan 27419406b0aSJulien Stephan - | 27519406b0aSJulien Stephan #include <dt-bindings/interrupt-controller/irq.h> 27619406b0aSJulien Stephan 27719406b0aSJulien Stephan spi { 27819406b0aSJulien Stephan #address-cells = <1>; 27919406b0aSJulien Stephan #size-cells = <0>; 28019406b0aSJulien Stephan 28119406b0aSJulien Stephan adc@0 { 28219406b0aSJulien Stephan compatible = "adi,adaq4380-4"; 28319406b0aSJulien Stephan reg = <0>; 28419406b0aSJulien Stephan 28519406b0aSJulien Stephan spi-cpol; 28619406b0aSJulien Stephan spi-cpha; 28719406b0aSJulien Stephan spi-max-frequency = <80000000>; 28819406b0aSJulien Stephan 28919406b0aSJulien Stephan interrupts = <27 IRQ_TYPE_EDGE_FALLING>; 29019406b0aSJulien Stephan interrupt-parent = <&gpio0>; 29119406b0aSJulien Stephan 29219406b0aSJulien Stephan vcc-supply = <&supply_3_3V>; 29319406b0aSJulien Stephan vlogic-supply = <&supply_3_3V>; 29419406b0aSJulien Stephan refin-supply = <&supply_5V>; 29519406b0aSJulien Stephan vs-p-supply = <&supply_5V>; 29619406b0aSJulien Stephan vs-n-supply = <&supply_0V>; 29719406b0aSJulien Stephan ldo-supply = <&supply_5V>; 29819406b0aSJulien Stephan 29919406b0aSJulien Stephan #address-cells = <1>; 30019406b0aSJulien Stephan #size-cells = <0>; 30119406b0aSJulien Stephan 30219406b0aSJulien Stephan channel@0 { 30319406b0aSJulien Stephan reg = <0>; 30419406b0aSJulien Stephan adi,gain-milli = /bits/ 16 <300>; 30519406b0aSJulien Stephan }; 30619406b0aSJulien Stephan 30719406b0aSJulien Stephan channel@2 { 30819406b0aSJulien Stephan reg = <2>; 30919406b0aSJulien Stephan adi,gain-milli = /bits/ 16 <600>; 31019406b0aSJulien Stephan }; 31119406b0aSJulien Stephan 31219406b0aSJulien Stephan channel@3 { 31319406b0aSJulien Stephan reg = <3>; 31419406b0aSJulien Stephan adi,gain-milli = /bits/ 16 <1000>; 31519406b0aSJulien Stephan }; 31619406b0aSJulien Stephan }; 31719406b0aSJulien Stephan }; 318