xref: /openbmc/linux/Documentation/devicetree/bindings/iio/adc/adi,ad7124.yaml (revision 9a87ffc99ec8eb8d35eed7c4f816d75f5cc9662e)
126ae15e6SMircea Caprioru# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
226ae15e6SMircea Caprioru# Copyright 2019 Analog Devices Inc.
326ae15e6SMircea Caprioru%YAML 1.2
426ae15e6SMircea Caprioru---
504dbd865SRob Herring$id: http://devicetree.org/schemas/iio/adc/adi,ad7124.yaml#
626ae15e6SMircea Caprioru$schema: http://devicetree.org/meta-schemas/core.yaml#
726ae15e6SMircea Caprioru
826ae15e6SMircea Capriorutitle: Analog Devices AD7124 ADC device driver
926ae15e6SMircea Caprioru
1026ae15e6SMircea Capriorumaintainers:
1126ae15e6SMircea Caprioru  - Stefan Popa <stefan.popa@analog.com>
1226ae15e6SMircea Caprioru
1326ae15e6SMircea Capriorudescription: |
1426ae15e6SMircea Caprioru  Bindings for the Analog Devices AD7124 ADC device. Datasheet can be
1526ae15e6SMircea Caprioru  found here:
1626ae15e6SMircea Caprioru    https://www.analog.com/media/en/technical-documentation/data-sheets/AD7124-8.pdf
1726ae15e6SMircea Caprioru
1826ae15e6SMircea Caprioruproperties:
1926ae15e6SMircea Caprioru  compatible:
2026ae15e6SMircea Caprioru    enum:
2126ae15e6SMircea Caprioru      - adi,ad7124-4
2226ae15e6SMircea Caprioru      - adi,ad7124-8
2326ae15e6SMircea Caprioru
2426ae15e6SMircea Caprioru  reg:
2526ae15e6SMircea Caprioru    description: SPI chip select number for the device
2626ae15e6SMircea Caprioru    maxItems: 1
2726ae15e6SMircea Caprioru
2826ae15e6SMircea Caprioru  clocks:
2926ae15e6SMircea Caprioru    maxItems: 1
3026ae15e6SMircea Caprioru    description: phandle to the master clock (mclk)
3126ae15e6SMircea Caprioru
3226ae15e6SMircea Caprioru  clock-names:
3326ae15e6SMircea Caprioru    items:
3426ae15e6SMircea Caprioru      - const: mclk
3526ae15e6SMircea Caprioru
3626ae15e6SMircea Caprioru  interrupts:
3726ae15e6SMircea Caprioru    description: IRQ line for the ADC
3826ae15e6SMircea Caprioru    maxItems: 1
3926ae15e6SMircea Caprioru
4026ae15e6SMircea Caprioru  '#address-cells':
4126ae15e6SMircea Caprioru    const: 1
4226ae15e6SMircea Caprioru
4326ae15e6SMircea Caprioru  '#size-cells':
4426ae15e6SMircea Caprioru    const: 0
4526ae15e6SMircea Caprioru
4626ae15e6SMircea Caprioru  refin1-supply:
4726ae15e6SMircea Caprioru    description: refin1 supply can be used as reference for conversion.
4826ae15e6SMircea Caprioru
4926ae15e6SMircea Caprioru  refin2-supply:
5026ae15e6SMircea Caprioru    description: refin2 supply can be used as reference for conversion.
5126ae15e6SMircea Caprioru
5226ae15e6SMircea Caprioru  avdd-supply:
5326ae15e6SMircea Caprioru    description: avdd supply can be used as reference for conversion.
5426ae15e6SMircea Caprioru
5526ae15e6SMircea Capriorurequired:
5626ae15e6SMircea Caprioru  - compatible
5726ae15e6SMircea Caprioru  - reg
5826ae15e6SMircea Caprioru  - clocks
5926ae15e6SMircea Caprioru  - clock-names
6026ae15e6SMircea Caprioru  - interrupts
6126ae15e6SMircea Caprioru
6226ae15e6SMircea CapriorupatternProperties:
6326ae15e6SMircea Caprioru  "^channel@([0-9]|1[0-5])$":
64*34d1e754SKrzysztof Kozlowski    $ref: adc.yaml
6526ae15e6SMircea Caprioru    type: object
6626ae15e6SMircea Caprioru    description: |
6726ae15e6SMircea Caprioru      Represents the external channels which are connected to the ADC.
6826ae15e6SMircea Caprioru
6926ae15e6SMircea Caprioru    properties:
7026ae15e6SMircea Caprioru      reg:
7126ae15e6SMircea Caprioru        description: |
7226ae15e6SMircea Caprioru          The channel number. It can have up to 8 channels on ad7124-4
7326ae15e6SMircea Caprioru          and 16 channels on ad7124-8, numbered from 0 to 15.
7426ae15e6SMircea Caprioru        items:
7526ae15e6SMircea Caprioru          minimum: 0
7626ae15e6SMircea Caprioru          maximum: 15
7726ae15e6SMircea Caprioru
7826ae15e6SMircea Caprioru      adi,reference-select:
7926ae15e6SMircea Caprioru        description: |
8026ae15e6SMircea Caprioru          Select the reference source to use when converting on
8126ae15e6SMircea Caprioru          the specific channel. Valid values are:
8226ae15e6SMircea Caprioru          0: REFIN1(+)/REFIN1(−).
8326ae15e6SMircea Caprioru          1: REFIN2(+)/REFIN2(−).
8426ae15e6SMircea Caprioru          3: AVDD
8526ae15e6SMircea Caprioru          If this field is left empty, internal reference is selected.
863d21a460SRob Herring        $ref: /schemas/types.yaml#/definitions/uint32
873d21a460SRob Herring        enum: [0, 1, 3]
8826ae15e6SMircea Caprioru
8926d146e2SJonathan Cameron      diff-channels: true
9026ae15e6SMircea Caprioru
9126d146e2SJonathan Cameron      bipolar: true
9226ae15e6SMircea Caprioru
93c444e956SMircea Caprioru      adi,buffered-positive:
94c444e956SMircea Caprioru        description: Enable buffered mode for positive input.
95c444e956SMircea Caprioru        type: boolean
96c444e956SMircea Caprioru
97c444e956SMircea Caprioru      adi,buffered-negative:
98c444e956SMircea Caprioru        description: Enable buffered mode for negative input.
99c444e956SMircea Caprioru        type: boolean
100c444e956SMircea Caprioru
10126ae15e6SMircea Caprioru    required:
10226ae15e6SMircea Caprioru      - reg
10326ae15e6SMircea Caprioru      - diff-channels
10426ae15e6SMircea Caprioru
1054828556dSRob Herring    additionalProperties: false
1066fdc6e23SRob Herring
10780137388SKrzysztof KozlowskiallOf:
10880137388SKrzysztof Kozlowski  - $ref: /schemas/spi/spi-peripheral-props.yaml#
10980137388SKrzysztof Kozlowski
11080137388SKrzysztof KozlowskiunevaluatedProperties: false
11126d146e2SJonathan Cameron
11226ae15e6SMircea Caprioruexamples:
11326ae15e6SMircea Caprioru  - |
11420051f5fSRob Herring    spi {
11520051f5fSRob Herring      #address-cells = <1>;
11620051f5fSRob Herring      #size-cells = <0>;
11720051f5fSRob Herring
11826ae15e6SMircea Caprioru      adc@0 {
11926ae15e6SMircea Caprioru        compatible = "adi,ad7124-4";
12026ae15e6SMircea Caprioru        reg = <0>;
12126ae15e6SMircea Caprioru        spi-max-frequency = <5000000>;
12226ae15e6SMircea Caprioru        interrupts = <25 2>;
12326ae15e6SMircea Caprioru        interrupt-parent = <&gpio>;
12426ae15e6SMircea Caprioru        refin1-supply = <&adc_vref>;
12526ae15e6SMircea Caprioru        clocks = <&ad7124_mclk>;
12626ae15e6SMircea Caprioru        clock-names = "mclk";
12726ae15e6SMircea Caprioru
12826ae15e6SMircea Caprioru        #address-cells = <1>;
12926ae15e6SMircea Caprioru        #size-cells = <0>;
13026ae15e6SMircea Caprioru
13126ae15e6SMircea Caprioru        channel@0 {
13226ae15e6SMircea Caprioru          reg = <0>;
13326ae15e6SMircea Caprioru          diff-channels = <0 1>;
13426ae15e6SMircea Caprioru          adi,reference-select = <0>;
135c444e956SMircea Caprioru          adi,buffered-positive;
13626ae15e6SMircea Caprioru        };
13726ae15e6SMircea Caprioru
13826ae15e6SMircea Caprioru        channel@1 {
13926ae15e6SMircea Caprioru          reg = <1>;
14026ae15e6SMircea Caprioru          bipolar;
14126ae15e6SMircea Caprioru          diff-channels = <2 3>;
14226ae15e6SMircea Caprioru          adi,reference-select = <0>;
143c444e956SMircea Caprioru          adi,buffered-positive;
144c444e956SMircea Caprioru          adi,buffered-negative;
14526ae15e6SMircea Caprioru        };
14626ae15e6SMircea Caprioru
14726ae15e6SMircea Caprioru        channel@2 {
14826ae15e6SMircea Caprioru          reg = <2>;
14926ae15e6SMircea Caprioru          diff-channels = <4 5>;
15026ae15e6SMircea Caprioru        };
15126ae15e6SMircea Caprioru
15226ae15e6SMircea Caprioru        channel@3 {
15326ae15e6SMircea Caprioru          reg = <3>;
15426ae15e6SMircea Caprioru          diff-channels = <6 7>;
15526ae15e6SMircea Caprioru        };
15626ae15e6SMircea Caprioru      };
15720051f5fSRob Herring    };
158