162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
262306a36Sopenharmony_ci# Copyright 2022 Analog Devices Inc.
362306a36Sopenharmony_ci%YAML 1.2
462306a36Sopenharmony_ci---
562306a36Sopenharmony_ci$id: http://devicetree.org/schemas/iio/adc/adi,max11410.yaml#
662306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
762306a36Sopenharmony_ci
862306a36Sopenharmony_cititle: Analog Devices MAX11410 ADC device driver
962306a36Sopenharmony_ci
1062306a36Sopenharmony_cimaintainers:
1162306a36Sopenharmony_ci  - Ibrahim Tilki <Ibrahim.Tilki@analog.com>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_cidescription: |
1462306a36Sopenharmony_ci  Bindings for the Analog Devices MAX11410 ADC device. Datasheet can be
1562306a36Sopenharmony_ci  found here:
1662306a36Sopenharmony_ci    https://datasheets.maximintegrated.com/en/ds/MAX11410.pdf
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ciproperties:
1962306a36Sopenharmony_ci  compatible:
2062306a36Sopenharmony_ci    enum:
2162306a36Sopenharmony_ci      - adi,max11410
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ci  reg:
2462306a36Sopenharmony_ci    maxItems: 1
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci  interrupts:
2762306a36Sopenharmony_ci    minItems: 1
2862306a36Sopenharmony_ci    maxItems: 2
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci  interrupt-names:
3162306a36Sopenharmony_ci    description: Name of the gpio pin of max11410 used for IRQ
3262306a36Sopenharmony_ci    minItems: 1
3362306a36Sopenharmony_ci    items:
3462306a36Sopenharmony_ci      - enum: [gpio0, gpio1]
3562306a36Sopenharmony_ci      - const: gpio1
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci  '#address-cells':
3862306a36Sopenharmony_ci    const: 1
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci  '#size-cells':
4162306a36Sopenharmony_ci    const: 0
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ci  avdd-supply:
4462306a36Sopenharmony_ci    description: Optional avdd supply. Used as reference when no explicit reference supplied.
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ci  vref0p-supply:
4762306a36Sopenharmony_ci    description: vref0p supply can be used as reference for conversion.
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci  vref1p-supply:
5062306a36Sopenharmony_ci    description: vref1p supply can be used as reference for conversion.
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ci  vref2p-supply:
5362306a36Sopenharmony_ci    description: vref2p supply can be used as reference for conversion.
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ci  vref0n-supply:
5662306a36Sopenharmony_ci    description: vref0n supply can be used as reference for conversion.
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ci  vref1n-supply:
5962306a36Sopenharmony_ci    description: vref1n supply can be used as reference for conversion.
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ci  vref2n-supply:
6262306a36Sopenharmony_ci    description: vref2n supply can be used as reference for conversion.
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_ci  spi-max-frequency:
6562306a36Sopenharmony_ci    maximum: 8000000
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_cipatternProperties:
6862306a36Sopenharmony_ci  "^channel(@[0-9])?$":
6962306a36Sopenharmony_ci    $ref: adc.yaml
7062306a36Sopenharmony_ci    type: object
7162306a36Sopenharmony_ci    description: Represents the external channels which are connected to the ADC.
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_ci    properties:
7462306a36Sopenharmony_ci      reg:
7562306a36Sopenharmony_ci        description: The channel number in single-ended mode.
7662306a36Sopenharmony_ci        minimum: 0
7762306a36Sopenharmony_ci        maximum: 9
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_ci      adi,reference:
8062306a36Sopenharmony_ci        description: |
8162306a36Sopenharmony_ci          Select the reference source to use when converting on
8262306a36Sopenharmony_ci          the specific channel. Valid values are:
8362306a36Sopenharmony_ci          0: VREF0P/VREF0N
8462306a36Sopenharmony_ci          1: VREF1P/VREF1N
8562306a36Sopenharmony_ci          2: VREF2P/VREF2N
8662306a36Sopenharmony_ci          3: AVDD/AGND
8762306a36Sopenharmony_ci          4: VREF0P/AGND
8862306a36Sopenharmony_ci          5: VREF1P/AGND
8962306a36Sopenharmony_ci          6: VREF2P/AGND
9062306a36Sopenharmony_ci          If this field is left empty, AVDD/AGND is selected.
9162306a36Sopenharmony_ci        $ref: /schemas/types.yaml#/definitions/uint32
9262306a36Sopenharmony_ci        enum: [0, 1, 2, 3, 4, 5, 6]
9362306a36Sopenharmony_ci        default: 3
9462306a36Sopenharmony_ci
9562306a36Sopenharmony_ci      adi,input-mode:
9662306a36Sopenharmony_ci        description: |
9762306a36Sopenharmony_ci          Select signal path of input channels. Valid values are:
9862306a36Sopenharmony_ci          0: Buffered, low-power, unity-gain path (default)
9962306a36Sopenharmony_ci          1: Bypass path
10062306a36Sopenharmony_ci          2: PGA path
10162306a36Sopenharmony_ci        $ref: /schemas/types.yaml#/definitions/uint32
10262306a36Sopenharmony_ci        enum: [0, 1, 2]
10362306a36Sopenharmony_ci        default: 0
10462306a36Sopenharmony_ci
10562306a36Sopenharmony_ci      diff-channels: true
10662306a36Sopenharmony_ci
10762306a36Sopenharmony_ci      bipolar: true
10862306a36Sopenharmony_ci
10962306a36Sopenharmony_ci      settling-time-us: true
11062306a36Sopenharmony_ci
11162306a36Sopenharmony_ci      adi,buffered-vrefp:
11262306a36Sopenharmony_ci        description: Enable buffered mode for positive reference.
11362306a36Sopenharmony_ci        type: boolean
11462306a36Sopenharmony_ci
11562306a36Sopenharmony_ci      adi,buffered-vrefn:
11662306a36Sopenharmony_ci        description: Enable buffered mode for negative reference.
11762306a36Sopenharmony_ci        type: boolean
11862306a36Sopenharmony_ci
11962306a36Sopenharmony_ci    required:
12062306a36Sopenharmony_ci      - reg
12162306a36Sopenharmony_ci
12262306a36Sopenharmony_ci    additionalProperties: false
12362306a36Sopenharmony_ci
12462306a36Sopenharmony_cirequired:
12562306a36Sopenharmony_ci  - compatible
12662306a36Sopenharmony_ci  - reg
12762306a36Sopenharmony_ci
12862306a36Sopenharmony_ciallOf:
12962306a36Sopenharmony_ci  - $ref: /schemas/spi/spi-peripheral-props.yaml#
13062306a36Sopenharmony_ci
13162306a36Sopenharmony_ciunevaluatedProperties: false
13262306a36Sopenharmony_ci
13362306a36Sopenharmony_ciexamples:
13462306a36Sopenharmony_ci  - |
13562306a36Sopenharmony_ci    #include <dt-bindings/interrupt-controller/irq.h>
13662306a36Sopenharmony_ci    spi {
13762306a36Sopenharmony_ci        #address-cells = <1>;
13862306a36Sopenharmony_ci        #size-cells = <0>;
13962306a36Sopenharmony_ci
14062306a36Sopenharmony_ci        adc@0 {
14162306a36Sopenharmony_ci            reg = <0>;
14262306a36Sopenharmony_ci            compatible = "adi,max11410";
14362306a36Sopenharmony_ci            spi-max-frequency = <8000000>;
14462306a36Sopenharmony_ci
14562306a36Sopenharmony_ci            interrupt-parent = <&gpio>;
14662306a36Sopenharmony_ci            interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
14762306a36Sopenharmony_ci            interrupt-names = "gpio1";
14862306a36Sopenharmony_ci
14962306a36Sopenharmony_ci            avdd-supply = <&adc_avdd>;
15062306a36Sopenharmony_ci
15162306a36Sopenharmony_ci            vref1p-supply = <&adc_vref1p>;
15262306a36Sopenharmony_ci            vref1n-supply = <&adc_vref1n>;
15362306a36Sopenharmony_ci
15462306a36Sopenharmony_ci            #address-cells = <1>;
15562306a36Sopenharmony_ci            #size-cells = <0>;
15662306a36Sopenharmony_ci
15762306a36Sopenharmony_ci            channel@0 {
15862306a36Sopenharmony_ci                reg = <0>;
15962306a36Sopenharmony_ci            };
16062306a36Sopenharmony_ci
16162306a36Sopenharmony_ci            channel@1 {
16262306a36Sopenharmony_ci                reg = <1>;
16362306a36Sopenharmony_ci                diff-channels = <2 3>;
16462306a36Sopenharmony_ci                adi,reference = <1>;
16562306a36Sopenharmony_ci                bipolar;
16662306a36Sopenharmony_ci                settling-time-us = <100000>;
16762306a36Sopenharmony_ci            };
16862306a36Sopenharmony_ci
16962306a36Sopenharmony_ci            channel@2 {
17062306a36Sopenharmony_ci                reg = <2>;
17162306a36Sopenharmony_ci                diff-channels = <7 9>;
17262306a36Sopenharmony_ci                adi,reference = <5>;
17362306a36Sopenharmony_ci                adi,input-mode = <2>;
17462306a36Sopenharmony_ci                settling-time-us = <50000>;
17562306a36Sopenharmony_ci            };
17662306a36Sopenharmony_ci        };
17762306a36Sopenharmony_ci    };
178