xref: /linux/Documentation/devicetree/bindings/iio/adc/adi,ltc2378.yaml (revision 93e4b3076b5f2d853462b9777d083c77fc0b7b23)
1*6c0e7268SMarcelo Schmitt# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*6c0e7268SMarcelo Schmitt%YAML 1.2
3*6c0e7268SMarcelo Schmitt---
4*6c0e7268SMarcelo Schmitt$id: http://devicetree.org/schemas/iio/adc/adi,ltc2378.yaml#
5*6c0e7268SMarcelo Schmitt$schema: http://devicetree.org/meta-schemas/core.yaml#
6*6c0e7268SMarcelo Schmitt
7*6c0e7268SMarcelo Schmitttitle: Analog Devices LTC2378 and similar Analog to Digital Converters
8*6c0e7268SMarcelo Schmitt
9*6c0e7268SMarcelo Schmittmaintainers:
10*6c0e7268SMarcelo Schmitt  - Marcelo Schmitt <marcelo.schmitt@analog.com>
11*6c0e7268SMarcelo Schmitt
12*6c0e7268SMarcelo Schmittdescription: |
13*6c0e7268SMarcelo Schmitt  Analog Devices LTC2378 series of ADCs.
14*6c0e7268SMarcelo Schmitt  Specifications can be found at:
15*6c0e7268SMarcelo Schmitt    https://www.analog.com/media/en/technical-documentation/data-sheets/233818fa.pdf
16*6c0e7268SMarcelo Schmitt    https://www.analog.com/media/en/technical-documentation/data-sheets/236416fa.pdf
17*6c0e7268SMarcelo Schmitt    https://www.analog.com/media/en/technical-documentation/data-sheets/236418f.pdf
18*6c0e7268SMarcelo Schmitt    https://www.analog.com/media/en/technical-documentation/data-sheets/236716fa.pdf
19*6c0e7268SMarcelo Schmitt    https://www.analog.com/media/en/technical-documentation/data-sheets/236718f.pdf
20*6c0e7268SMarcelo Schmitt    https://www.analog.com/media/en/technical-documentation/data-sheets/236816f.pdf
21*6c0e7268SMarcelo Schmitt    https://www.analog.com/media/en/technical-documentation/data-sheets/236818f.pdf
22*6c0e7268SMarcelo Schmitt    https://www.analog.com/media/en/technical-documentation/data-sheets/236918fa.pdf
23*6c0e7268SMarcelo Schmitt    https://www.analog.com/media/en/technical-documentation/data-sheets/237016fa.pdf
24*6c0e7268SMarcelo Schmitt    https://www.analog.com/media/en/technical-documentation/data-sheets/237616fa.pdf
25*6c0e7268SMarcelo Schmitt    https://www.analog.com/media/en/technical-documentation/data-sheets/237618fa.pdf
26*6c0e7268SMarcelo Schmitt    https://www.analog.com/media/en/technical-documentation/data-sheets/237620fb.pdf
27*6c0e7268SMarcelo Schmitt    https://www.analog.com/media/en/technical-documentation/data-sheets/237716fa.pdf
28*6c0e7268SMarcelo Schmitt    https://www.analog.com/media/en/technical-documentation/data-sheets/237718fa.pdf
29*6c0e7268SMarcelo Schmitt    https://www.analog.com/media/en/technical-documentation/data-sheets/237720fb.pdf
30*6c0e7268SMarcelo Schmitt    https://www.analog.com/media/en/technical-documentation/data-sheets/237816fa.pdf
31*6c0e7268SMarcelo Schmitt    https://www.analog.com/media/en/technical-documentation/data-sheets/237818fa.pdf
32*6c0e7268SMarcelo Schmitt    https://www.analog.com/media/en/technical-documentation/data-sheets/237820fb.pdf
33*6c0e7268SMarcelo Schmitt    https://www.analog.com/media/en/technical-documentation/data-sheets/237918fb.pdf
34*6c0e7268SMarcelo Schmitt    https://www.analog.com/media/en/technical-documentation/data-sheets/238016fb.pdf
35*6c0e7268SMarcelo Schmitt
36*6c0e7268SMarcelo Schmitt$ref: /schemas/spi/spi-peripheral-props.yaml#
37*6c0e7268SMarcelo Schmitt
38*6c0e7268SMarcelo Schmittproperties:
39*6c0e7268SMarcelo Schmitt  compatible:
40*6c0e7268SMarcelo Schmitt    oneOf:
41*6c0e7268SMarcelo Schmitt      # Single compatible string match.
42*6c0e7268SMarcelo Schmitt      - enum:
43*6c0e7268SMarcelo Schmitt          - adi,ltc2338-18
44*6c0e7268SMarcelo Schmitt          - adi,ltc2364-16
45*6c0e7268SMarcelo Schmitt          - adi,ltc2364-18
46*6c0e7268SMarcelo Schmitt          - adi,ltc2376-16
47*6c0e7268SMarcelo Schmitt          - adi,ltc2376-18
48*6c0e7268SMarcelo Schmitt          - adi,ltc2376-20
49*6c0e7268SMarcelo Schmitt
50*6c0e7268SMarcelo Schmitt      # Low sample rate fallback for 16-bit unipolar sensors.
51*6c0e7268SMarcelo Schmitt      - items:
52*6c0e7268SMarcelo Schmitt          - enum:
53*6c0e7268SMarcelo Schmitt              - adi,ltc2370-16 # 2 MSPS
54*6c0e7268SMarcelo Schmitt              - adi,ltc2368-16 # 1 MSPS
55*6c0e7268SMarcelo Schmitt              - adi,ltc2367-16 # 500 kSPS
56*6c0e7268SMarcelo Schmitt          - const: adi,ltc2364-16 # fallback (250 kSPS)
57*6c0e7268SMarcelo Schmitt
58*6c0e7268SMarcelo Schmitt      # Low sample rate fallback for 18-bit unipolar sensors.
59*6c0e7268SMarcelo Schmitt      - items:
60*6c0e7268SMarcelo Schmitt          - enum:
61*6c0e7268SMarcelo Schmitt              - adi,ltc2369-18 # 1.6 MSPS
62*6c0e7268SMarcelo Schmitt              - adi,ltc2368-18 # 1 MSPS
63*6c0e7268SMarcelo Schmitt              - adi,ltc2367-18 # 500 kSPS
64*6c0e7268SMarcelo Schmitt          - const: adi,ltc2364-18 # fallback (250 kSPS)
65*6c0e7268SMarcelo Schmitt
66*6c0e7268SMarcelo Schmitt      # Low sample rate fallback for 16-bit bipolar sensors.
67*6c0e7268SMarcelo Schmitt      - items:
68*6c0e7268SMarcelo Schmitt          - enum:
69*6c0e7268SMarcelo Schmitt              - adi,ltc2380-16 # 2 MSPS
70*6c0e7268SMarcelo Schmitt              - adi,ltc2378-16 # 1 MSPS
71*6c0e7268SMarcelo Schmitt              - adi,ltc2377-16 # 500 kSPS
72*6c0e7268SMarcelo Schmitt          - const: adi,ltc2376-16 # fallback (250 kSPS)
73*6c0e7268SMarcelo Schmitt
74*6c0e7268SMarcelo Schmitt      # Low sample rate fallback for 18-bit bipolar sensors.
75*6c0e7268SMarcelo Schmitt      - items:
76*6c0e7268SMarcelo Schmitt          - enum:
77*6c0e7268SMarcelo Schmitt              - adi,ltc2379-18 # 1.6 MSPS
78*6c0e7268SMarcelo Schmitt              - adi,ltc2378-18 # 1 MSPS
79*6c0e7268SMarcelo Schmitt              - adi,ltc2377-18 # 500 kSPS
80*6c0e7268SMarcelo Schmitt          - const: adi,ltc2376-18 # fallback (250 kSPS)
81*6c0e7268SMarcelo Schmitt
82*6c0e7268SMarcelo Schmitt      # Low sample rate fallback for 20-bit bipolar sensors.
83*6c0e7268SMarcelo Schmitt      - items:
84*6c0e7268SMarcelo Schmitt          - enum:
85*6c0e7268SMarcelo Schmitt              - adi,ltc2378-20 # 1 MSPS
86*6c0e7268SMarcelo Schmitt              - adi,ltc2377-20 # 500 kSPS
87*6c0e7268SMarcelo Schmitt          - const: adi,ltc2376-20 # fallback (250 kSPS)
88*6c0e7268SMarcelo Schmitt
89*6c0e7268SMarcelo Schmitt  reg:
90*6c0e7268SMarcelo Schmitt    maxItems: 1
91*6c0e7268SMarcelo Schmitt
92*6c0e7268SMarcelo Schmitt  spi-max-frequency:
93*6c0e7268SMarcelo Schmitt    maximum: 100000000
94*6c0e7268SMarcelo Schmitt
95*6c0e7268SMarcelo Schmitt  vdd-supply:
96*6c0e7268SMarcelo Schmitt    description: A 2.5V supply that powers the chip (VDD).
97*6c0e7268SMarcelo Schmitt
98*6c0e7268SMarcelo Schmitt  ovdd-supply:
99*6c0e7268SMarcelo Schmitt    description:
100*6c0e7268SMarcelo Schmitt      A 1.71V to 5.25V supply that sets the logic level for digital interface.
101*6c0e7268SMarcelo Schmitt
102*6c0e7268SMarcelo Schmitt  ref-supply:
103*6c0e7268SMarcelo Schmitt    description:
104*6c0e7268SMarcelo Schmitt      Voltage reference input that determines the scale of ADC conversions.
105*6c0e7268SMarcelo Schmitt
106*6c0e7268SMarcelo Schmitt  refin-supply:
107*6c0e7268SMarcelo Schmitt    description:
108*6c0e7268SMarcelo Schmitt      Alternative voltage reference input.
109*6c0e7268SMarcelo Schmitt
110*6c0e7268SMarcelo Schmitt  cnv-gpios:
111*6c0e7268SMarcelo Schmitt    description:
112*6c0e7268SMarcelo Schmitt      When provided, this property indicates the GPIO that is connected to the
113*6c0e7268SMarcelo Schmitt      CNV pin.
114*6c0e7268SMarcelo Schmitt    maxItems: 1
115*6c0e7268SMarcelo Schmitt
116*6c0e7268SMarcelo Schmitt  pwms:
117*6c0e7268SMarcelo Schmitt    description: PWM signal connected to the CNV pin.
118*6c0e7268SMarcelo Schmitt    maxItems: 1
119*6c0e7268SMarcelo Schmitt
120*6c0e7268SMarcelo Schmitt  interrupts:
121*6c0e7268SMarcelo Schmitt    description:
122*6c0e7268SMarcelo Schmitt      Interrupt for signaling the completion of conversion results. The active
123*6c0e7268SMarcelo Schmitt      low signal provided on the BUSY pin asserts when ADC conversions finish.
124*6c0e7268SMarcelo Schmitt    maxItems: 1
125*6c0e7268SMarcelo Schmitt
126*6c0e7268SMarcelo Schmittrequired:
127*6c0e7268SMarcelo Schmitt  - compatible
128*6c0e7268SMarcelo Schmitt  - reg
129*6c0e7268SMarcelo Schmitt  - vdd-supply
130*6c0e7268SMarcelo Schmitt  - ovdd-supply
131*6c0e7268SMarcelo Schmitt
132*6c0e7268SMarcelo SchmittallOf:
133*6c0e7268SMarcelo Schmitt  # Except for LTC2338, all designs require a voltage reference input
134*6c0e7268SMarcelo Schmitt  - if:
135*6c0e7268SMarcelo Schmitt      properties:
136*6c0e7268SMarcelo Schmitt        compatible:
137*6c0e7268SMarcelo Schmitt          not:
138*6c0e7268SMarcelo Schmitt            contains:
139*6c0e7268SMarcelo Schmitt              enum:
140*6c0e7268SMarcelo Schmitt                - adi,ltc2338-18
141*6c0e7268SMarcelo Schmitt    then:
142*6c0e7268SMarcelo Schmitt      required:
143*6c0e7268SMarcelo Schmitt        - ref-supply
144*6c0e7268SMarcelo Schmitt      properties:
145*6c0e7268SMarcelo Schmitt        refin-supply: false
146*6c0e7268SMarcelo Schmitt    else:
147*6c0e7268SMarcelo Schmitt      properties:
148*6c0e7268SMarcelo Schmitt        ref-supply: false
149*6c0e7268SMarcelo Schmitt
150*6c0e7268SMarcelo SchmittunevaluatedProperties: false
151*6c0e7268SMarcelo Schmitt
152*6c0e7268SMarcelo Schmittexamples:
153*6c0e7268SMarcelo Schmitt  - |
154*6c0e7268SMarcelo Schmitt    #include <dt-bindings/gpio/gpio.h>
155*6c0e7268SMarcelo Schmitt    #include <dt-bindings/interrupt-controller/irq.h>
156*6c0e7268SMarcelo Schmitt    spi {
157*6c0e7268SMarcelo Schmitt        #address-cells = <1>;
158*6c0e7268SMarcelo Schmitt        #size-cells = <0>;
159*6c0e7268SMarcelo Schmitt        adc@0 {
160*6c0e7268SMarcelo Schmitt            compatible = "adi,ltc2378-20", "adi,ltc2376-20";
161*6c0e7268SMarcelo Schmitt            reg = <0>;
162*6c0e7268SMarcelo Schmitt            spi-max-frequency = <71000000>;
163*6c0e7268SMarcelo Schmitt            vdd-supply = <&supply_2_5V>;
164*6c0e7268SMarcelo Schmitt            ovdd-supply = <&supply_3_3V>;
165*6c0e7268SMarcelo Schmitt            ref-supply = <&supply_5V>;
166*6c0e7268SMarcelo Schmitt            cnv-gpios = <&gpio0 88 GPIO_ACTIVE_HIGH>;
167*6c0e7268SMarcelo Schmitt            interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
168*6c0e7268SMarcelo Schmitt            interrupt-parent = <&gpio>;
169*6c0e7268SMarcelo Schmitt        };
170*6c0e7268SMarcelo Schmitt    };
171