xref: /linux/Documentation/devicetree/bindings/iio/adc/maxim,max34408.yaml (revision a23e1966932464e1c5226cb9ac4ce1d5fc10ba22)
1f0d1a9b7SIvan Mikhaylov# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2f0d1a9b7SIvan Mikhaylov%YAML 1.2
3f0d1a9b7SIvan Mikhaylov---
4f0d1a9b7SIvan Mikhaylov$id: http://devicetree.org/schemas/iio/adc/maxim,max34408.yaml#
5f0d1a9b7SIvan Mikhaylov$schema: http://devicetree.org/meta-schemas/core.yaml#
6f0d1a9b7SIvan Mikhaylov
7f0d1a9b7SIvan Mikhaylovtitle: Maxim MAX34408/MAX34409 current monitors with overcurrent control
8f0d1a9b7SIvan Mikhaylov
9f0d1a9b7SIvan Mikhaylovmaintainers:
10f0d1a9b7SIvan Mikhaylov  - Ivan Mikhaylov <fr0st61te@gmail.com>
11f0d1a9b7SIvan Mikhaylov
12f0d1a9b7SIvan Mikhaylovdescription: |
13f0d1a9b7SIvan Mikhaylov  The MAX34408/MAX34409 are two- and four-channel current monitors that are
14f0d1a9b7SIvan Mikhaylov  configured and monitored with a standard I2C/SMBus serial interface. Each
15f0d1a9b7SIvan Mikhaylov  unidirectional current sensor offers precision high-side operation with a
16f0d1a9b7SIvan Mikhaylov  low full-scale sense voltage. The devices automatically sequence through
17f0d1a9b7SIvan Mikhaylov  two or four channels and collect the current-sense samples and average them
18f0d1a9b7SIvan Mikhaylov  to reduce the effect of impulse noise. The raw ADC samples are compared to
19f0d1a9b7SIvan Mikhaylov  user-programmable digital thresholds to indicate overcurrent conditions.
20f0d1a9b7SIvan Mikhaylov  Overcurrent conditions trigger a hardware output to provide an immediate
21f0d1a9b7SIvan Mikhaylov  indication to shut down any necessary external circuitry.
22f0d1a9b7SIvan Mikhaylov
23f0d1a9b7SIvan Mikhaylov  Specifications about the devices can be found at:
24f0d1a9b7SIvan Mikhaylov  https://www.analog.com/media/en/technical-documentation/data-sheets/MAX34408-MAX34409.pdf
25f0d1a9b7SIvan Mikhaylov
26f0d1a9b7SIvan Mikhaylovproperties:
27f0d1a9b7SIvan Mikhaylov  compatible:
28f0d1a9b7SIvan Mikhaylov    enum:
29f0d1a9b7SIvan Mikhaylov      - maxim,max34408
30f0d1a9b7SIvan Mikhaylov      - maxim,max34409
31f0d1a9b7SIvan Mikhaylov
32f0d1a9b7SIvan Mikhaylov  "#address-cells":
33f0d1a9b7SIvan Mikhaylov    const: 1
34f0d1a9b7SIvan Mikhaylov
35f0d1a9b7SIvan Mikhaylov  "#size-cells":
36f0d1a9b7SIvan Mikhaylov    const: 0
37f0d1a9b7SIvan Mikhaylov
38f0d1a9b7SIvan Mikhaylov  reg:
39f0d1a9b7SIvan Mikhaylov    maxItems: 1
40f0d1a9b7SIvan Mikhaylov
41f0d1a9b7SIvan Mikhaylov  interrupts:
42f0d1a9b7SIvan Mikhaylov    maxItems: 1
43f0d1a9b7SIvan Mikhaylov
44f0d1a9b7SIvan Mikhaylov  powerdown-gpios:
45f0d1a9b7SIvan Mikhaylov    description:
46f0d1a9b7SIvan Mikhaylov      Shutdown Output. Open-drain output. This output transitions to high impedance
47f0d1a9b7SIvan Mikhaylov      when any of the digital comparator thresholds are exceeded as long as the ENA
48f0d1a9b7SIvan Mikhaylov      pin is high.
49f0d1a9b7SIvan Mikhaylov    maxItems: 1
50f0d1a9b7SIvan Mikhaylov
51f0d1a9b7SIvan Mikhaylov  powerdown-status-gpios:
52f0d1a9b7SIvan Mikhaylov    description:
53f0d1a9b7SIvan Mikhaylov      SHTDN Enable Input. CMOS digital input. Connect to GND to clear the latch and
54f0d1a9b7SIvan Mikhaylov      unconditionally deassert (force low) the SHTDN output and reset the shutdown
55f0d1a9b7SIvan Mikhaylov      delay. Connect to VDD to enable normal latch operation of the SHTDN output.
56f0d1a9b7SIvan Mikhaylov    maxItems: 1
57f0d1a9b7SIvan Mikhaylov
58f0d1a9b7SIvan Mikhaylov  vdd-supply: true
59f0d1a9b7SIvan Mikhaylov
60f0d1a9b7SIvan MikhaylovpatternProperties:
61f0d1a9b7SIvan Mikhaylov  "^channel@[0-3]$":
62f0d1a9b7SIvan Mikhaylov    $ref: adc.yaml
63f0d1a9b7SIvan Mikhaylov    type: object
64f0d1a9b7SIvan Mikhaylov    description:
65f0d1a9b7SIvan Mikhaylov      Represents the internal channels of the ADC.
66f0d1a9b7SIvan Mikhaylov
67f0d1a9b7SIvan Mikhaylov    properties:
68f0d1a9b7SIvan Mikhaylov      reg:
69f0d1a9b7SIvan Mikhaylov        items:
70f0d1a9b7SIvan Mikhaylov          - minimum: 0
71f0d1a9b7SIvan Mikhaylov            maximum: 3
72f0d1a9b7SIvan Mikhaylov
73f0d1a9b7SIvan Mikhaylov      maxim,rsense-val-micro-ohms:
74f0d1a9b7SIvan Mikhaylov        description:
75f0d1a9b7SIvan Mikhaylov          Adjust the Rsense value to monitor higher or lower current levels for
76f0d1a9b7SIvan Mikhaylov          input.
77f0d1a9b7SIvan Mikhaylov        enum: [250, 500, 1000, 5000, 10000, 50000, 100000, 200000, 500000]
78f0d1a9b7SIvan Mikhaylov        default: 1000
79f0d1a9b7SIvan Mikhaylov
80f0d1a9b7SIvan Mikhaylov    required:
81f0d1a9b7SIvan Mikhaylov      - reg
82f0d1a9b7SIvan Mikhaylov      - maxim,rsense-val-micro-ohms
83f0d1a9b7SIvan Mikhaylov
84f0d1a9b7SIvan Mikhaylov    unevaluatedProperties: false
85f0d1a9b7SIvan Mikhaylov
86f0d1a9b7SIvan Mikhaylovrequired:
87f0d1a9b7SIvan Mikhaylov  - compatible
88f0d1a9b7SIvan Mikhaylov  - reg
89f0d1a9b7SIvan Mikhaylov
90f0d1a9b7SIvan MikhaylovallOf:
91f0d1a9b7SIvan Mikhaylov  - if:
92f0d1a9b7SIvan Mikhaylov      properties:
93f0d1a9b7SIvan Mikhaylov        compatible:
94f0d1a9b7SIvan Mikhaylov          contains:
95f0d1a9b7SIvan Mikhaylov            const: maxim,max34408
96f0d1a9b7SIvan Mikhaylov    then:
97f0d1a9b7SIvan Mikhaylov      patternProperties:
98f0d1a9b7SIvan Mikhaylov        "^channel@[2-3]$": false
99f0d1a9b7SIvan Mikhaylov        "^channel@[0-1]$":
100f0d1a9b7SIvan Mikhaylov          properties:
101f0d1a9b7SIvan Mikhaylov            reg:
102f0d1a9b7SIvan Mikhaylov              maximum: 1
103f0d1a9b7SIvan Mikhaylov    else:
104f0d1a9b7SIvan Mikhaylov      patternProperties:
105f0d1a9b7SIvan Mikhaylov        "^channel@[0-3]$":
106f0d1a9b7SIvan Mikhaylov          properties:
107f0d1a9b7SIvan Mikhaylov            reg:
108f0d1a9b7SIvan Mikhaylov              maximum: 3
109f0d1a9b7SIvan Mikhaylov
110f0d1a9b7SIvan MikhaylovadditionalProperties: false
111f0d1a9b7SIvan Mikhaylov
112f0d1a9b7SIvan Mikhaylovexamples:
113f0d1a9b7SIvan Mikhaylov  - |
114f0d1a9b7SIvan Mikhaylov    #include <dt-bindings/gpio/gpio.h>
115f0d1a9b7SIvan Mikhaylov
116f0d1a9b7SIvan Mikhaylov    i2c {
117f0d1a9b7SIvan Mikhaylov        #address-cells = <1>;
118f0d1a9b7SIvan Mikhaylov        #size-cells = <0>;
119f0d1a9b7SIvan Mikhaylov
120f0d1a9b7SIvan Mikhaylov        adc@1e {
121f0d1a9b7SIvan Mikhaylov              compatible = "maxim,max34409";
122f0d1a9b7SIvan Mikhaylov              reg = <0x1e>;
123f0d1a9b7SIvan Mikhaylov              powerdown-gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
124f0d1a9b7SIvan Mikhaylov              powerdown-status-gpios = <&gpio0 2 GPIO_ACTIVE_HIGH>;
125f0d1a9b7SIvan Mikhaylov
126f0d1a9b7SIvan Mikhaylov              #address-cells = <1>;
127f0d1a9b7SIvan Mikhaylov              #size-cells = <0>;
128f0d1a9b7SIvan Mikhaylov
129f0d1a9b7SIvan Mikhaylov              channel@0 {
130f0d1a9b7SIvan Mikhaylov                  reg = <0x0>;
131f0d1a9b7SIvan Mikhaylov                  maxim,rsense-val-micro-ohms = <5000>;
132f0d1a9b7SIvan Mikhaylov              };
133f0d1a9b7SIvan Mikhaylov
134f0d1a9b7SIvan Mikhaylov              channel@1 {
135f0d1a9b7SIvan Mikhaylov                  reg = <0x1>;
136f0d1a9b7SIvan Mikhaylov                  maxim,rsense-val-micro-ohms = <10000>;
137f0d1a9b7SIvan Mikhaylov             };
138f0d1a9b7SIvan Mikhaylov        };
139f0d1a9b7SIvan Mikhaylov    };
140