summaryrefslogtreecommitdiffstats
path: root/dts/Bindings/iio/adc/maxim,max34408.yaml
blob: 4cba856e8d4732709ac8065cc9a6e9fb6c13d27c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/iio/adc/maxim,max34408.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Maxim MAX34408/MAX34409 current monitors with overcurrent control

maintainers:
  - Ivan Mikhaylov <fr0st61te@gmail.com>

description: |
  The MAX34408/MAX34409 are two- and four-channel current monitors that are
  configured and monitored with a standard I2C/SMBus serial interface. Each
  unidirectional current sensor offers precision high-side operation with a
  low full-scale sense voltage. The devices automatically sequence through
  two or four channels and collect the current-sense samples and average them
  to reduce the effect of impulse noise. The raw ADC samples are compared to
  user-programmable digital thresholds to indicate overcurrent conditions.
  Overcurrent conditions trigger a hardware output to provide an immediate
  indication to shut down any necessary external circuitry.

  Specifications about the devices can be found at:
  https://www.analog.com/media/en/technical-documentation/data-sheets/MAX34408-MAX34409.pdf

properties:
  compatible:
    enum:
      - maxim,max34408
      - maxim,max34409

  "#address-cells":
    const: 1

  "#size-cells":
    const: 0

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  powerdown-gpios:
    description:
      Shutdown Output. Open-drain output. This output transitions to high impedance
      when any of the digital comparator thresholds are exceeded as long as the ENA
      pin is high.
    maxItems: 1

  powerdown-status-gpios:
    description:
      SHTDN Enable Input. CMOS digital input. Connect to GND to clear the latch and
      unconditionally deassert (force low) the SHTDN output and reset the shutdown
      delay. Connect to VDD to enable normal latch operation of the SHTDN output.
    maxItems: 1

  vdd-supply: true

patternProperties:
  "^channel@[0-3]$":
    $ref: adc.yaml
    type: object
    description:
      Represents the internal channels of the ADC.

    properties:
      reg:
        items:
          - minimum: 0
            maximum: 3

      maxim,rsense-val-micro-ohms:
        description:
          Adjust the Rsense value to monitor higher or lower current levels for
          input.
        enum: [250, 500, 1000, 5000, 10000, 50000, 100000, 200000, 500000]
        default: 1000

    required:
      - reg
      - maxim,rsense-val-micro-ohms

    unevaluatedProperties: false

required:
  - compatible
  - reg

allOf:
  - if:
      properties:
        compatible:
          contains:
            const: maxim,max34408
    then:
      patternProperties:
        "^channel@[2-3]$": false
        "^channel@[0-1]$":
          properties:
            reg:
              maximum: 1
    else:
      patternProperties:
        "^channel@[0-3]$":
          properties:
            reg:
              maximum: 3

additionalProperties: false

examples:
  - |
    #include <dt-bindings/gpio/gpio.h>

    i2c {
        #address-cells = <1>;
        #size-cells = <0>;

        adc@1e {
              compatible = "maxim,max34409";
              reg = <0x1e>;
              powerdown-gpios = <&gpio0 1 GPIO_ACTIVE_LOW>;
              powerdown-status-gpios = <&gpio0 2 GPIO_ACTIVE_HIGH>;

              #address-cells = <1>;
              #size-cells = <0>;

              channel@0 {
                  reg = <0x0>;
                  maxim,rsense-val-micro-ohms = <5000>;
              };

              channel@1 {
                  reg = <0x1>;
                  maxim,rsense-val-micro-ohms = <10000>;
             };
        };
    };