1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/regulator/qcom,rpmh-regulator.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Qualcomm Technologies, Inc. RPMh Regulators
8
9maintainers:
10  - David Collins <collinsd@codeaurora.org>
11
12description: |
13    rpmh-regulator devices support PMIC regulator management via the Voltage
14    Regulator Manager (VRM) and Oscillator Buffer (XOB) RPMh accelerators.
15    The APPS processor communicates with these hardware blocks via a
16    Resource State Coordinator (RSC) using command packets.  The VRM allows
17    changing three parameters for a given regulator, enable state, output
18    voltage, and operating mode.  The XOB allows changing only a single
19    parameter for a given regulator, its enable state.  Despite its name,
20    the XOB is capable of controlling the enable state of any PMIC peripheral.
21    It is used for clock buffers, low-voltage switches, and LDO/SMPS regulators
22    which have a fixed voltage and mode.
23
24    =======================
25    Required Node Structure
26    =======================
27
28    RPMh regulators must be described in two levels of device nodes.  The first
29    level describes the PMIC containing the regulators and must reside within an
30    RPMh device node.  The second level describes each regulator within the PMIC
31    which is to be used on the board.  Each of these regulators maps to a single
32    RPMh resource.
33
34    The names used for regulator nodes must match those supported by a given
35    PMIC. Supported regulator node names are
36      For PM6150, smps1 - smps5, ldo1 - ldo19
37      For PM6150L, smps1 - smps8, ldo1 - ldo11, bob
38      For PM6350, smps1 - smps5, ldo1 - ldo22
39      For PM7325, smps1 - smps8, ldo1 - ldo19
40      For PM8005, smps1 - smps4
41      For PM8009, smps1 - smps2, ldo1 - ldo7
42      For PM8150, smps1 - smps10, ldo1 - ldo18
43      For PM8150L, smps1 - smps8, ldo1 - ldo11, bob, flash, rgb
44      For PM8350, smps1 - smps12, ldo1 - ldo10
45      For PM8350C, smps1 - smps10, ldo1 - ldo13, bob
46      For PM8450, smps1 - smps6, ldo1 - ldo4
47      For PM8998, smps1 - smps13, ldo1 - ldo28, lvs1 - lvs2
48      For PMI8998, bob
49      For PMR735A, smps1 - smps3, ldo1 - ldo7
50      For PMX55, smps1 - smps7, ldo1 - ldo16
51      For PMX65, smps1 - smps8, ldo1 - ldo21
52
53properties:
54  compatible:
55    enum:
56      - qcom,pm6150-rpmh-regulators
57      - qcom,pm6150l-rpmh-regulators
58      - qcom,pm6350-rpmh-regulators
59      - qcom,pm7325-rpmh-regulators
60      - qcom,pm8005-rpmh-regulators
61      - qcom,pm8009-rpmh-regulators
62      - qcom,pm8009-1-rpmh-regulators
63      - qcom,pm8150-rpmh-regulators
64      - qcom,pm8150l-rpmh-regulators
65      - qcom,pm8350-rpmh-regulators
66      - qcom,pm8350c-rpmh-regulators
67      - qcom,pm8450-rpmh-regulators
68      - qcom,pm8998-rpmh-regulators
69      - qcom,pmg1110-rpmh-regulators
70      - qcom,pmi8998-rpmh-regulators
71      - qcom,pmm8155au-rpmh-regulators
72      - qcom,pmr735a-rpmh-regulators
73      - qcom,pmx55-rpmh-regulators
74      - qcom,pmx65-rpmh-regulators
75
76  qcom,pmic-id:
77    description: |
78        RPMh resource name suffix used for the regulators found
79        on this PMIC.
80    $ref: /schemas/types.yaml#/definitions/string
81    enum: [a, b, c, d, e, f]
82
83  qcom,always-wait-for-ack:
84    description: |
85        Boolean flag which indicates that the application processor
86        must wait for an ACK or a NACK from RPMh for every request
87        sent for this regulator including those which are for a
88        strictly lower power state.
89    $ref: /schemas/types.yaml#/definitions/flag
90
91  vdd-flash-supply:
92    description: Input supply phandle of flash.
93
94  vdd-rgb-supply:
95    description: Input supply phandle of rgb.
96
97  vin-lvs-1-2-supply:
98    description: Input supply phandle of one or more regulators.
99
100  vdd-bob-supply:
101    description: BOB regulator parent supply phandle.
102
103  bob:
104    type: object
105    $ref: "regulator.yaml#"
106    description: BOB regulator node.
107
108patternProperties:
109  "^vdd-s([0-9]+)-supply$":
110    description: Input supply phandle(s) of one or more regulators.
111
112  "^vdd-(l[0-9]+[-]){1,5}supply$":
113    description: Input supply phandle(s) of one or more regulators.
114
115  "^(smps|ldo|lvs)[0-9]+$":
116    type: object
117    $ref: "regulator.yaml#"
118    description: smps/ldo regulator nodes(s).
119
120additionalProperties: false
121
122required:
123  - compatible
124  - qcom,pmic-id
125
126examples:
127  - |
128    #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
129
130    pm8998-rpmh-regulators {
131        compatible = "qcom,pm8998-rpmh-regulators";
132        qcom,pmic-id = "a";
133
134        vdd-l7-l12-l14-l15-supply = <&pm8998_s5>;
135
136        smps2 {
137            regulator-min-microvolt = <1100000>;
138            regulator-max-microvolt = <1100000>;
139        };
140
141        ldo7 {
142            regulator-min-microvolt = <1800000>;
143            regulator-max-microvolt = <1800000>;
144            regulator-initial-mode = <RPMH_REGULATOR_MODE_HPM>;
145            regulator-allowed-modes =
146                <RPMH_REGULATOR_MODE_LPM
147                 RPMH_REGULATOR_MODE_HPM>;
148            regulator-allow-set-load;
149        };
150
151        lvs1 {
152            regulator-min-microvolt = <1800000>;
153            regulator-max-microvolt = <1800000>;
154        };
155    };
156
157    pmi8998-rpmh-regulators {
158        compatible = "qcom,pmi8998-rpmh-regulators";
159        qcom,pmic-id = "b";
160
161        bob {
162            regulator-min-microvolt = <3312000>;
163            regulator-max-microvolt = <3600000>;
164            regulator-allowed-modes =
165                <RPMH_REGULATOR_MODE_AUTO
166                 RPMH_REGULATOR_MODE_HPM>;
167            regulator-initial-mode = <RPMH_REGULATOR_MODE_AUTO>;
168        };
169    };
170...
171