qcom,rpmh-regulator.yaml 5.5 KB
Newer Older
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
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/regulator/qcom,rpmh-regulator.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm Technologies, Inc. RPMh Regulators

maintainers:
  - David Collins <collinsd@codeaurora.org>

description: |
    rpmh-regulator devices support PMIC regulator management via the Voltage
    Regulator Manager (VRM) and Oscillator Buffer (XOB) RPMh accelerators.
    The APPS processor communicates with these hardware blocks via a
    Resource State Coordinator (RSC) using command packets.  The VRM allows
    changing three parameters for a given regulator, enable state, output
    voltage, and operating mode.  The XOB allows changing only a single
    parameter for a given regulator, its enable state.  Despite its name,
    the XOB is capable of controlling the enable state of any PMIC peripheral.
    It is used for clock buffers, low-voltage switches, and LDO/SMPS regulators
    which have a fixed voltage and mode.

    =======================
    Required Node Structure
    =======================

    RPMh regulators must be described in two levels of device nodes.  The first
    level describes the PMIC containing the regulators and must reside within an
    RPMh device node.  The second level describes each regulator within the PMIC
    which is to be used on the board.  Each of these regulators maps to a single
    RPMh resource.

    The names used for regulator nodes must match those supported by a given
    PMIC. Supported regulator node names are
36 37
      For PM6150, smps1 - smps5, ldo1 - ldo19
      For PM6150L, smps1 - smps8, ldo1 - ldo11, bob
38
      For PM6350, smps1 - smps5, ldo1 - ldo22
39
      For PM7325, smps1 - smps8, ldo1 - ldo19
40 41 42 43 44 45
      For PM8005, smps1 - smps4
      For PM8009, smps1 - smps2, ldo1 - ldo7
      For PM8150, smps1 - smps10, ldo1 - ldo18
      For PM8150L, smps1 - smps8, ldo1 - ldo11, bob, flash, rgb
      For PM8350, smps1 - smps12, ldo1 - ldo10
      For PM8350C, smps1 - smps10, ldo1 - ldo13, bob
46
      For PM8450, smps1 - smps6, ldo1 - ldo4
47 48
      For PM8998, smps1 - smps13, ldo1 - ldo28, lvs1 - lvs2
      For PMI8998, bob
49
      For PMR735A, smps1 - smps3, ldo1 - ldo7
50
      For PMX55, smps1 - smps7, ldo1 - ldo16
51 52 53 54

properties:
  compatible:
    enum:
55 56
      - qcom,pm6150-rpmh-regulators
      - qcom,pm6150l-rpmh-regulators
57
      - qcom,pm6350-rpmh-regulators
58
      - qcom,pm7325-rpmh-regulators
59 60 61 62 63 64 65
      - qcom,pm8005-rpmh-regulators
      - qcom,pm8009-rpmh-regulators
      - qcom,pm8009-1-rpmh-regulators
      - qcom,pm8150-rpmh-regulators
      - qcom,pm8150l-rpmh-regulators
      - qcom,pm8350-rpmh-regulators
      - qcom,pm8350c-rpmh-regulators
66
      - qcom,pm8450-rpmh-regulators
67
      - qcom,pm8998-rpmh-regulators
68
      - qcom,pmg1110-rpmh-regulators
69
      - qcom,pmi8998-rpmh-regulators
70
      - qcom,pmm8155au-rpmh-regulators
71
      - qcom,pmr735a-rpmh-regulators
72
      - qcom,pmx55-rpmh-regulators
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 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168

  qcom,pmic-id:
    description: |
        RPMh resource name suffix used for the regulators found
        on this PMIC.
    $ref: /schemas/types.yaml#/definitions/string
    enum: [a, b, c, d, e, f]

  qcom,always-wait-for-ack:
    description: |
        Boolean flag which indicates that the application processor
        must wait for an ACK or a NACK from RPMh for every request
        sent for this regulator including those which are for a
        strictly lower power state.
    $ref: /schemas/types.yaml#/definitions/flag

  vdd-flash-supply:
    description: Input supply phandle of flash.

  vdd-rgb-supply:
    description: Input supply phandle of rgb.

  vin-lvs-1-2-supply:
    description: Input supply phandle of one or more regulators.

  vdd-bob-supply:
    description: BOB regulator parent supply phandle.

  bob:
    type: object
    $ref: "regulator.yaml#"
    description: BOB regulator node.

patternProperties:
  "^vdd-s([0-9]+)-supply$":
    description: Input supply phandle(s) of one or more regulators.

  "^vdd-(l[0-9]+[-]){1,5}supply$":
    description: Input supply phandle(s) of one or more regulators.

  "^(smps|ldo|lvs)[0-9]+$":
    type: object
    $ref: "regulator.yaml#"
    description: smps/ldo regulator nodes(s).

additionalProperties: false

required:
  - compatible
  - qcom,pmic-id

examples:
  - |
    #include <dt-bindings/regulator/qcom,rpmh-regulator.h>

    pm8998-rpmh-regulators {
        compatible = "qcom,pm8998-rpmh-regulators";
        qcom,pmic-id = "a";

        vdd-l7-l12-l14-l15-supply = <&pm8998_s5>;

        smps2 {
            regulator-min-microvolt = <1100000>;
            regulator-max-microvolt = <1100000>;
        };

        ldo7 {
            regulator-min-microvolt = <1800000>;
            regulator-max-microvolt = <1800000>;
            regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
            regulator-allowed-modes =
                <RPMH_REGULATOR_MODE_LPM
                 RPMH_REGULATOR_MODE_HPM>;
            regulator-allow-set-load;
        };

        lvs1 {
            regulator-min-microvolt = <1800000>;
            regulator-max-microvolt = <1800000>;
        };
    };

    pmi8998-rpmh-regulators {
        compatible = "qcom,pmi8998-rpmh-regulators";
        qcom,pmic-id = "b";

        bob {
            regulator-min-microvolt = <3312000>;
            regulator-max-microvolt = <3600000>;
            regulator-allowed-modes =
                <RPMH_REGULATOR_MODE_AUTO
                 RPMH_REGULATOR_MODE_HPM>;
            regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
        };
    };
...