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/regulator/qcom,spmi-regulator.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Qualcomm SPMI Regulators
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Robert Marko <robimarko@gmail.com>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ciproperties:
1362306a36Sopenharmony_ci  compatible:
1462306a36Sopenharmony_ci    enum:
1562306a36Sopenharmony_ci      - qcom,pm6125-regulators
1662306a36Sopenharmony_ci      - qcom,pm660-regulators
1762306a36Sopenharmony_ci      - qcom,pm660l-regulators
1862306a36Sopenharmony_ci      - qcom,pm8004-regulators
1962306a36Sopenharmony_ci      - qcom,pm8005-regulators
2062306a36Sopenharmony_ci      - qcom,pm8226-regulators
2162306a36Sopenharmony_ci      - qcom,pm8841-regulators
2262306a36Sopenharmony_ci      - qcom,pm8916-regulators
2362306a36Sopenharmony_ci      - qcom,pm8941-regulators
2462306a36Sopenharmony_ci      - qcom,pm8950-regulators
2562306a36Sopenharmony_ci      - qcom,pm8994-regulators
2662306a36Sopenharmony_ci      - qcom,pmi8994-regulators
2762306a36Sopenharmony_ci      - qcom,pmp8074-regulators
2862306a36Sopenharmony_ci      - qcom,pms405-regulators
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci  qcom,saw-reg:
3162306a36Sopenharmony_ci    description: Reference to syscon node defining the SAW registers
3262306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/phandle
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_cipatternProperties:
3562306a36Sopenharmony_ci  "^(5vs[1-2]|(l|s)[1-9][0-9]?|lvs[1-3])$":
3662306a36Sopenharmony_ci    description: List of regulators and its properties
3762306a36Sopenharmony_ci    type: object
3862306a36Sopenharmony_ci    $ref: regulator.yaml#
3962306a36Sopenharmony_ci    unevaluatedProperties: false
4062306a36Sopenharmony_ci
4162306a36Sopenharmony_ci    properties:
4262306a36Sopenharmony_ci      qcom,ocp-max-retries:
4362306a36Sopenharmony_ci        description:
4462306a36Sopenharmony_ci          Maximum number of times to try toggling a voltage switch off and
4562306a36Sopenharmony_ci          back on as a result of consecutive over current events
4662306a36Sopenharmony_ci        $ref: /schemas/types.yaml#/definitions/uint32
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ci      qcom,ocp-retry-delay:
4962306a36Sopenharmony_ci        description:
5062306a36Sopenharmony_ci          Time to delay in milliseconds between each voltage switch toggle
5162306a36Sopenharmony_ci          after an over current event takes place
5262306a36Sopenharmony_ci        $ref: /schemas/types.yaml#/definitions/uint32
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ci      qcom,pin-ctrl-enable:
5562306a36Sopenharmony_ci        description:
5662306a36Sopenharmony_ci          Bit mask specifying which hardware pins should be used to enable the
5762306a36Sopenharmony_ci          regulator, if any.
5862306a36Sopenharmony_ci          Supported bits are
5962306a36Sopenharmony_ci          0 = ignore all hardware enable signals
6062306a36Sopenharmony_ci          BIT(0) = follow HW0_EN signal
6162306a36Sopenharmony_ci          BIT(1) = follow HW1_EN signal
6262306a36Sopenharmony_ci          BIT(2) = follow HW2_EN signal
6362306a36Sopenharmony_ci          BIT(3) = follow HW3_EN signal
6462306a36Sopenharmony_ci        $ref: /schemas/types.yaml#/definitions/uint32
6562306a36Sopenharmony_ci        minimum: 0
6662306a36Sopenharmony_ci        maximum: 15
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_ci      qcom,pin-ctrl-hpm:
6962306a36Sopenharmony_ci        description:
7062306a36Sopenharmony_ci          Bit mask specifying which hardware pins should be used to force the
7162306a36Sopenharmony_ci          regulator into high power mode, if any.
7262306a36Sopenharmony_ci          Supported bits are
7362306a36Sopenharmony_ci          0 = ignore all hardware enable signals
7462306a36Sopenharmony_ci          BIT(0) = follow HW0_EN signal
7562306a36Sopenharmony_ci          BIT(1) = follow HW1_EN signal
7662306a36Sopenharmony_ci          BIT(2) = follow HW2_EN signal
7762306a36Sopenharmony_ci          BIT(3) = follow HW3_EN signal
7862306a36Sopenharmony_ci          BIT(4) = follow PMIC awake state
7962306a36Sopenharmony_ci        $ref: /schemas/types.yaml#/definitions/uint32
8062306a36Sopenharmony_ci        minimum: 0
8162306a36Sopenharmony_ci        maximum: 31
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ci      qcom,vs-soft-start-strength:
8462306a36Sopenharmony_ci        description:
8562306a36Sopenharmony_ci          This property sets the soft start strength for voltage switch type
8662306a36Sopenharmony_ci          regulators.
8762306a36Sopenharmony_ci          Supported values are
8862306a36Sopenharmony_ci          0 = 0.05 uA
8962306a36Sopenharmony_ci          1 = 0.25 uA
9062306a36Sopenharmony_ci          2 = 0.55 uA
9162306a36Sopenharmony_ci          3 = 0.75 uA
9262306a36Sopenharmony_ci        $ref: /schemas/types.yaml#/definitions/uint32
9362306a36Sopenharmony_ci        minimum: 0
9462306a36Sopenharmony_ci        maximum: 3
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_ci      qcom,saw-slave:
9762306a36Sopenharmony_ci        description: SAW controlled gang slave. Will not be configured.
9862306a36Sopenharmony_ci        type: boolean
9962306a36Sopenharmony_ci
10062306a36Sopenharmony_ci      qcom,saw-leader:
10162306a36Sopenharmony_ci        description:
10262306a36Sopenharmony_ci          SAW controlled gang leader. Will be configured as SAW regulator.
10362306a36Sopenharmony_ci        type: boolean
10462306a36Sopenharmony_ci
10562306a36Sopenharmony_cirequired:
10662306a36Sopenharmony_ci  - compatible
10762306a36Sopenharmony_ci
10862306a36Sopenharmony_ciallOf:
10962306a36Sopenharmony_ci  - if:
11062306a36Sopenharmony_ci      properties:
11162306a36Sopenharmony_ci        compatible:
11262306a36Sopenharmony_ci          contains:
11362306a36Sopenharmony_ci            enum:
11462306a36Sopenharmony_ci              - qcom,pm6125-regulators
11562306a36Sopenharmony_ci    then:
11662306a36Sopenharmony_ci      properties:
11762306a36Sopenharmony_ci        vdd_l1_l7_l17_l18-supply: true
11862306a36Sopenharmony_ci        vdd_l2_l3_l4-supply: true
11962306a36Sopenharmony_ci        vdd_l5_l15_l19_l20_l21_l22-supply: true
12062306a36Sopenharmony_ci        vdd_l6_l8-supply: true
12162306a36Sopenharmony_ci        vdd_l9_l11-supply: true
12262306a36Sopenharmony_ci        vdd_l10_l13_l14-supply: true
12362306a36Sopenharmony_ci        vdd_l12_l16-supply: true
12462306a36Sopenharmony_ci        vdd_l23_l24-supply: true
12562306a36Sopenharmony_ci      patternProperties:
12662306a36Sopenharmony_ci        "^vdd_s[1-8]-supply$": true
12762306a36Sopenharmony_ci
12862306a36Sopenharmony_ci  - if:
12962306a36Sopenharmony_ci      properties:
13062306a36Sopenharmony_ci        compatible:
13162306a36Sopenharmony_ci          contains:
13262306a36Sopenharmony_ci            enum:
13362306a36Sopenharmony_ci              - qcom,pm660-regulators
13462306a36Sopenharmony_ci    then:
13562306a36Sopenharmony_ci      properties:
13662306a36Sopenharmony_ci        vdd_l15_l16_l17_l18_l19-supply: true
13762306a36Sopenharmony_ci        vdd_l1_l6_l7-supply: true
13862306a36Sopenharmony_ci        vdd_l2_l3-supply: true
13962306a36Sopenharmony_ci        vdd_l5-supply: true
14062306a36Sopenharmony_ci        vdd_l8_l9_l10_l11_l12_l13_l14-supply: true
14162306a36Sopenharmony_ci      patternProperties:
14262306a36Sopenharmony_ci        "^vdd_s[1-6]-supply$": true
14362306a36Sopenharmony_ci
14462306a36Sopenharmony_ci  - if:
14562306a36Sopenharmony_ci      properties:
14662306a36Sopenharmony_ci        compatible:
14762306a36Sopenharmony_ci          contains:
14862306a36Sopenharmony_ci            enum:
14962306a36Sopenharmony_ci              - qcom,pm660l-regulators
15062306a36Sopenharmony_ci    then:
15162306a36Sopenharmony_ci      properties:
15262306a36Sopenharmony_ci        vdd_l1_l9_l10-supply: true
15362306a36Sopenharmony_ci        vdd_l2-supply: true
15462306a36Sopenharmony_ci        vdd_l3_l5_l7_l8-supply: true
15562306a36Sopenharmony_ci        vdd_l4_l6-supply: true
15662306a36Sopenharmony_ci      patternProperties:
15762306a36Sopenharmony_ci        "^vdd_s[1-5]-supply$": true
15862306a36Sopenharmony_ci
15962306a36Sopenharmony_ci  - if:
16062306a36Sopenharmony_ci      properties:
16162306a36Sopenharmony_ci        compatible:
16262306a36Sopenharmony_ci          contains:
16362306a36Sopenharmony_ci            enum:
16462306a36Sopenharmony_ci              - qcom,pm8004-regulators
16562306a36Sopenharmony_ci    then:
16662306a36Sopenharmony_ci      patternProperties:
16762306a36Sopenharmony_ci        "^vdd_s[25]-supply$": true
16862306a36Sopenharmony_ci
16962306a36Sopenharmony_ci  - if:
17062306a36Sopenharmony_ci      properties:
17162306a36Sopenharmony_ci        compatible:
17262306a36Sopenharmony_ci          contains:
17362306a36Sopenharmony_ci            enum:
17462306a36Sopenharmony_ci              - qcom,pm8005-regulators
17562306a36Sopenharmony_ci    then:
17662306a36Sopenharmony_ci      patternProperties:
17762306a36Sopenharmony_ci        "^vdd_s[1-4]-supply$": true
17862306a36Sopenharmony_ci
17962306a36Sopenharmony_ci  - if:
18062306a36Sopenharmony_ci      properties:
18162306a36Sopenharmony_ci        compatible:
18262306a36Sopenharmony_ci          contains:
18362306a36Sopenharmony_ci            enum:
18462306a36Sopenharmony_ci              - qcom,pm8226-regulators
18562306a36Sopenharmony_ci    then:
18662306a36Sopenharmony_ci      properties:
18762306a36Sopenharmony_ci        vdd_l10_l11_l13-supply: true
18862306a36Sopenharmony_ci        vdd_l12_l14-supply: true
18962306a36Sopenharmony_ci        vdd_l15_l16_l17_l18-supply: true
19062306a36Sopenharmony_ci        vdd_l19_l20_l21_l22_l23_l28-supply: true
19162306a36Sopenharmony_ci        vdd_l1_l2_l4_l5-supply: true
19262306a36Sopenharmony_ci        vdd_l25-supply: true
19362306a36Sopenharmony_ci        vdd_l3_l24_l26-supply: true
19462306a36Sopenharmony_ci        vdd_l6_l7_l8_l9_l27-supply: true
19562306a36Sopenharmony_ci        vdd_lvs1-supply: true
19662306a36Sopenharmony_ci      patternProperties:
19762306a36Sopenharmony_ci        "^vdd_s[1-5]-supply$": true
19862306a36Sopenharmony_ci
19962306a36Sopenharmony_ci  - if:
20062306a36Sopenharmony_ci      properties:
20162306a36Sopenharmony_ci        compatible:
20262306a36Sopenharmony_ci          contains:
20362306a36Sopenharmony_ci            enum:
20462306a36Sopenharmony_ci              - qcom,pm8841-regulators
20562306a36Sopenharmony_ci    then:
20662306a36Sopenharmony_ci      patternProperties:
20762306a36Sopenharmony_ci        "^vdd_s[1-8]-supply$": true
20862306a36Sopenharmony_ci
20962306a36Sopenharmony_ci  - if:
21062306a36Sopenharmony_ci      properties:
21162306a36Sopenharmony_ci        compatible:
21262306a36Sopenharmony_ci          contains:
21362306a36Sopenharmony_ci            enum:
21462306a36Sopenharmony_ci              - qcom,pm8916-regulators
21562306a36Sopenharmony_ci    then:
21662306a36Sopenharmony_ci      properties:
21762306a36Sopenharmony_ci        vdd_l1_l3-supply: true
21862306a36Sopenharmony_ci        vdd_l4_l5_l6-supply: true
21962306a36Sopenharmony_ci        vdd_l8_l11_l14_l15_l16-supply: true
22062306a36Sopenharmony_ci        vdd_l9_l10_l12_l13_l17_l18-supply: true
22162306a36Sopenharmony_ci      patternProperties:
22262306a36Sopenharmony_ci        "^vdd_l[27]-supply$": true
22362306a36Sopenharmony_ci        "^vdd_s[1-4]-supply$": true
22462306a36Sopenharmony_ci
22562306a36Sopenharmony_ci  - if:
22662306a36Sopenharmony_ci      properties:
22762306a36Sopenharmony_ci        compatible:
22862306a36Sopenharmony_ci          contains:
22962306a36Sopenharmony_ci            enum:
23062306a36Sopenharmony_ci              - qcom,pm8941-regulators
23162306a36Sopenharmony_ci    then:
23262306a36Sopenharmony_ci      properties:
23362306a36Sopenharmony_ci        interrupts:
23462306a36Sopenharmony_ci          items:
23562306a36Sopenharmony_ci            - description: Over-current protection interrupt for 5V S1
23662306a36Sopenharmony_ci            - description: Over-current protection interrupt for 5V S2
23762306a36Sopenharmony_ci        interrupt-names:
23862306a36Sopenharmony_ci          items:
23962306a36Sopenharmony_ci            - const: ocp-5vs1
24062306a36Sopenharmony_ci            - const: ocp-5vs2
24162306a36Sopenharmony_ci        vdd_l13_l20_l23_l24-supply: true
24262306a36Sopenharmony_ci        vdd_l1_l3-supply: true
24362306a36Sopenharmony_ci        vdd_l21-supply: true
24462306a36Sopenharmony_ci        vdd_l2_lvs_1_2_3-supply: true
24562306a36Sopenharmony_ci        vdd_l4_l11-supply: true
24662306a36Sopenharmony_ci        vdd_l5_l7-supply: true
24762306a36Sopenharmony_ci        vdd_l6_l12_l14_l15-supply: true
24862306a36Sopenharmony_ci        vdd_l8_l16_l18_19-supply: true
24962306a36Sopenharmony_ci        vdd_l9_l10_l17_l22-supply: true
25062306a36Sopenharmony_ci        vin_5vs-supply: true
25162306a36Sopenharmony_ci      patternProperties:
25262306a36Sopenharmony_ci        "^vdd_s[1-3]-supply$": true
25362306a36Sopenharmony_ci
25462306a36Sopenharmony_ci  - if:
25562306a36Sopenharmony_ci      properties:
25662306a36Sopenharmony_ci        compatible:
25762306a36Sopenharmony_ci          contains:
25862306a36Sopenharmony_ci            enum:
25962306a36Sopenharmony_ci              - qcom,pm8950-regulators
26062306a36Sopenharmony_ci    then:
26162306a36Sopenharmony_ci      properties:
26262306a36Sopenharmony_ci        vdd_l1_l19-supply: true
26362306a36Sopenharmony_ci        vdd_l20-supply: true
26462306a36Sopenharmony_ci        vdd_l21-supply: true
26562306a36Sopenharmony_ci        vdd_l2_l23-supply: true
26662306a36Sopenharmony_ci        vdd_l3-supply: true
26762306a36Sopenharmony_ci        vdd_l4_l5_l6_l7_l16-supply: true
26862306a36Sopenharmony_ci        vdd_l8_l11_l12_l17_l22-supply: true
26962306a36Sopenharmony_ci        vdd_l9_l10_l13_l14_l15_l18-supply: true
27062306a36Sopenharmony_ci      patternProperties:
27162306a36Sopenharmony_ci        "^vdd_s[1-6]-supply$": true
27262306a36Sopenharmony_ci
27362306a36Sopenharmony_ci  - if:
27462306a36Sopenharmony_ci      properties:
27562306a36Sopenharmony_ci        compatible:
27662306a36Sopenharmony_ci          contains:
27762306a36Sopenharmony_ci            enum:
27862306a36Sopenharmony_ci              - qcom,pm8994-regulators
27962306a36Sopenharmony_ci    then:
28062306a36Sopenharmony_ci      properties:
28162306a36Sopenharmony_ci        vdd_l1-supply: true
28262306a36Sopenharmony_ci        vdd_l13_l19_l23_l24-supply: true
28362306a36Sopenharmony_ci        vdd_l14_l15-supply: true
28462306a36Sopenharmony_ci        vdd_l17_l29-supply: true
28562306a36Sopenharmony_ci        vdd_l20_l21-supply: true
28662306a36Sopenharmony_ci        vdd_l25-supply: true
28762306a36Sopenharmony_ci        vdd_l2_l26_l28-supply: true
28862306a36Sopenharmony_ci        vdd_l3_l11-supply: true
28962306a36Sopenharmony_ci        vdd_l4_l27_l31-supply: true
29062306a36Sopenharmony_ci        vdd_l5_l7-supply: true
29162306a36Sopenharmony_ci        vdd_l6_l12_l32-supply: true
29262306a36Sopenharmony_ci        vdd_l8_l16_l30-supply: true
29362306a36Sopenharmony_ci        vdd_l9_l10_l18_l22-supply: true
29462306a36Sopenharmony_ci        vdd_lvs_1_2-supply: true
29562306a36Sopenharmony_ci      patternProperties:
29662306a36Sopenharmony_ci        "^vdd_s[1-9][0-2]?-supply$": true
29762306a36Sopenharmony_ci
29862306a36Sopenharmony_ci  - if:
29962306a36Sopenharmony_ci      properties:
30062306a36Sopenharmony_ci        compatible:
30162306a36Sopenharmony_ci          contains:
30262306a36Sopenharmony_ci            enum:
30362306a36Sopenharmony_ci              - qcom,pmi8994-regulators
30462306a36Sopenharmony_ci    then:
30562306a36Sopenharmony_ci      properties:
30662306a36Sopenharmony_ci        vdd_l1-supply: true
30762306a36Sopenharmony_ci      patternProperties:
30862306a36Sopenharmony_ci        "^vdd_s[1-3]-supply$": true
30962306a36Sopenharmony_ci
31062306a36Sopenharmony_ci  - if:
31162306a36Sopenharmony_ci      properties:
31262306a36Sopenharmony_ci        compatible:
31362306a36Sopenharmony_ci          contains:
31462306a36Sopenharmony_ci            enum:
31562306a36Sopenharmony_ci              - qcom,pmp8074-regulators
31662306a36Sopenharmony_ci    then:
31762306a36Sopenharmony_ci      properties:
31862306a36Sopenharmony_ci        vdd_l10_l11_l12_l13-supply: true
31962306a36Sopenharmony_ci        vdd_l1_l2-supply: true
32062306a36Sopenharmony_ci        vdd_l3_l8-supply: true
32162306a36Sopenharmony_ci        vdd_l5_l6_l15-supply: true
32262306a36Sopenharmony_ci      patternProperties:
32362306a36Sopenharmony_ci        "^vdd_l[479]-supply$": true
32462306a36Sopenharmony_ci        "^vdd_s[1-5]-supply$": true
32562306a36Sopenharmony_ci
32662306a36Sopenharmony_ci  - if:
32762306a36Sopenharmony_ci      properties:
32862306a36Sopenharmony_ci        compatible:
32962306a36Sopenharmony_ci          contains:
33062306a36Sopenharmony_ci            enum:
33162306a36Sopenharmony_ci              - qcom,pms405-regulators
33262306a36Sopenharmony_ci    then:
33362306a36Sopenharmony_ci      properties:
33462306a36Sopenharmony_ci        vdd_s3-supply: true
33562306a36Sopenharmony_ci
33662306a36Sopenharmony_ciunevaluatedProperties: false
33762306a36Sopenharmony_ci
33862306a36Sopenharmony_ciexamples:
33962306a36Sopenharmony_ci  - |
34062306a36Sopenharmony_ci    regulators {
34162306a36Sopenharmony_ci      compatible = "qcom,pm8941-regulators";
34262306a36Sopenharmony_ci      vdd_l1_l3-supply = <&s1>;
34362306a36Sopenharmony_ci
34462306a36Sopenharmony_ci      s1: s1 {
34562306a36Sopenharmony_ci        regulator-min-microvolt = <1300000>;
34662306a36Sopenharmony_ci        regulator-max-microvolt = <1400000>;
34762306a36Sopenharmony_ci      };
34862306a36Sopenharmony_ci
34962306a36Sopenharmony_ci      l1: l1 {
35062306a36Sopenharmony_ci        regulator-min-microvolt = <1225000>;
35162306a36Sopenharmony_ci        regulator-max-microvolt = <1300000>;
35262306a36Sopenharmony_ci      };
35362306a36Sopenharmony_ci    };
35462306a36Sopenharmony_ci...
355