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