162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/mfd/maxim,max5970.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Regulator for MAX5970 Smart Switch from Maxim Integrated
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Patrick Rudolph <patrick.rudolph@9elements.com>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_cidescription: |
1362306a36Sopenharmony_ci  The smart switch provides no output regulation, but independent fault protection
1462306a36Sopenharmony_ci  and voltage and current sensing.
1562306a36Sopenharmony_ci  Programming is done through I2C bus.
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci  Datasheets:
1862306a36Sopenharmony_ci    https://datasheets.maximintegrated.com/en/ds/MAX5970.pdf
1962306a36Sopenharmony_ci    https://datasheets.maximintegrated.com/en/ds/MAX5978.pdf
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ciproperties:
2262306a36Sopenharmony_ci  compatible:
2362306a36Sopenharmony_ci    enum:
2462306a36Sopenharmony_ci      - maxim,max5970
2562306a36Sopenharmony_ci      - maxim,max5978
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci  reg:
2862306a36Sopenharmony_ci    maxItems: 1
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci  interrupts:
3162306a36Sopenharmony_ci    maxItems: 1
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci  leds:
3462306a36Sopenharmony_ci    type: object
3562306a36Sopenharmony_ci    description:
3662306a36Sopenharmony_ci      Properties for four LEDS.
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ci    properties:
3962306a36Sopenharmony_ci      "#address-cells":
4062306a36Sopenharmony_ci        const: 1
4162306a36Sopenharmony_ci
4262306a36Sopenharmony_ci      "#size-cells":
4362306a36Sopenharmony_ci        const: 0
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci    patternProperties:
4662306a36Sopenharmony_ci      "^led@[0-3]$":
4762306a36Sopenharmony_ci        $ref: /schemas/leds/common.yaml#
4862306a36Sopenharmony_ci        type: object
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ci    additionalProperties: false
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ci  vss1-supply:
5362306a36Sopenharmony_ci    description: Supply of the first channel.
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ci  vss2-supply:
5662306a36Sopenharmony_ci    description: Supply of the second channel.
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ci  regulators:
5962306a36Sopenharmony_ci    type: object
6062306a36Sopenharmony_ci    description:
6162306a36Sopenharmony_ci      Properties for both hot swap control/switch.
6262306a36Sopenharmony_ci
6362306a36Sopenharmony_ci    patternProperties:
6462306a36Sopenharmony_ci      "^sw[0-1]$":
6562306a36Sopenharmony_ci        $ref: /schemas/regulator/regulator.yaml#
6662306a36Sopenharmony_ci        type: object
6762306a36Sopenharmony_ci        properties:
6862306a36Sopenharmony_ci          shunt-resistor-micro-ohms:
6962306a36Sopenharmony_ci            description: |
7062306a36Sopenharmony_ci              The value of current sense resistor in microohms.
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ci        required:
7362306a36Sopenharmony_ci          - shunt-resistor-micro-ohms
7462306a36Sopenharmony_ci
7562306a36Sopenharmony_ci        unevaluatedProperties: false
7662306a36Sopenharmony_ci
7762306a36Sopenharmony_ci    additionalProperties: false
7862306a36Sopenharmony_ci
7962306a36Sopenharmony_cirequired:
8062306a36Sopenharmony_ci  - compatible
8162306a36Sopenharmony_ci  - reg
8262306a36Sopenharmony_ci  - regulators
8362306a36Sopenharmony_ci  - vss1-supply
8462306a36Sopenharmony_ci
8562306a36Sopenharmony_ciallOf:
8662306a36Sopenharmony_ci  - if:
8762306a36Sopenharmony_ci      properties:
8862306a36Sopenharmony_ci        compatible:
8962306a36Sopenharmony_ci          enum:
9062306a36Sopenharmony_ci            - maxim,max5970
9162306a36Sopenharmony_ci    then:
9262306a36Sopenharmony_ci      required:
9362306a36Sopenharmony_ci        - vss2-supply
9462306a36Sopenharmony_ci
9562306a36Sopenharmony_ciadditionalProperties: false
9662306a36Sopenharmony_ci
9762306a36Sopenharmony_ciexamples:
9862306a36Sopenharmony_ci  - |
9962306a36Sopenharmony_ci    i2c {
10062306a36Sopenharmony_ci        #address-cells = <1>;
10162306a36Sopenharmony_ci        #size-cells = <0>;
10262306a36Sopenharmony_ci        regulator@3a {
10362306a36Sopenharmony_ci            compatible = "maxim,max5978";
10462306a36Sopenharmony_ci            reg = <0x3a>;
10562306a36Sopenharmony_ci            vss1-supply = <&p3v3>;
10662306a36Sopenharmony_ci
10762306a36Sopenharmony_ci            regulators {
10862306a36Sopenharmony_ci                sw0_ref_0: sw0 {
10962306a36Sopenharmony_ci                    shunt-resistor-micro-ohms = <12000>;
11062306a36Sopenharmony_ci                };
11162306a36Sopenharmony_ci            };
11262306a36Sopenharmony_ci
11362306a36Sopenharmony_ci            leds {
11462306a36Sopenharmony_ci                #address-cells = <1>;
11562306a36Sopenharmony_ci                #size-cells = <0>;
11662306a36Sopenharmony_ci                led@0 {
11762306a36Sopenharmony_ci                    reg = <0>;
11862306a36Sopenharmony_ci                    label = "led0";
11962306a36Sopenharmony_ci                    default-state = "on";
12062306a36Sopenharmony_ci                };
12162306a36Sopenharmony_ci                led@1 {
12262306a36Sopenharmony_ci                    reg = <1>;
12362306a36Sopenharmony_ci                    label = "led1";
12462306a36Sopenharmony_ci                    default-state = "on";
12562306a36Sopenharmony_ci                };
12662306a36Sopenharmony_ci            };
12762306a36Sopenharmony_ci        };
12862306a36Sopenharmony_ci    };
12962306a36Sopenharmony_ci
13062306a36Sopenharmony_ci  - |
13162306a36Sopenharmony_ci    i2c {
13262306a36Sopenharmony_ci        #address-cells = <1>;
13362306a36Sopenharmony_ci        #size-cells = <0>;
13462306a36Sopenharmony_ci
13562306a36Sopenharmony_ci        regulator@3a {
13662306a36Sopenharmony_ci            compatible = "maxim,max5970";
13762306a36Sopenharmony_ci            reg = <0x3a>;
13862306a36Sopenharmony_ci            vss1-supply = <&p3v3>;
13962306a36Sopenharmony_ci            vss2-supply = <&p5v>;
14062306a36Sopenharmony_ci
14162306a36Sopenharmony_ci            regulators {
14262306a36Sopenharmony_ci                sw0_ref_1: sw0 {
14362306a36Sopenharmony_ci                    shunt-resistor-micro-ohms = <12000>;
14462306a36Sopenharmony_ci                };
14562306a36Sopenharmony_ci                sw1_ref_1: sw1 {
14662306a36Sopenharmony_ci                    shunt-resistor-micro-ohms = <10000>;
14762306a36Sopenharmony_ci                };
14862306a36Sopenharmony_ci            };
14962306a36Sopenharmony_ci        };
15062306a36Sopenharmony_ci    };
15162306a36Sopenharmony_ci...
152