123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 |
- Qualcomm Technologies, Inc. RPMh Regulators
- 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:
- PM8998: smps1 - smps13, ldo1 - ldo28, lvs1 - lvs2
- PMI8998: bob
- PM8005: smps1 - smps4
- ========================
- First Level Nodes - PMIC
- ========================
- - compatible
- Usage: required
- Value type: <string>
- Definition: Must be one of: "qcom,pm8998-rpmh-regulators",
- "qcom,pmi8998-rpmh-regulators" or
- "qcom,pm8005-rpmh-regulators".
- - qcom,pmic-id
- Usage: required
- Value type: <string>
- Definition: RPMh resource name suffix used for the regulators found on
- this PMIC. Typical values: "a", "b", "c", "d", "e", "f".
- - vdd-s1-supply
- - vdd-s2-supply
- - vdd-s3-supply
- - vdd-s4-supply
- Usage: optional (PM8998 and PM8005 only)
- Value type: <phandle>
- Definition: phandle of the parent supply regulator of one or more of the
- regulators for this PMIC.
- - vdd-s5-supply
- - vdd-s6-supply
- - vdd-s7-supply
- - vdd-s8-supply
- - vdd-s9-supply
- - vdd-s10-supply
- - vdd-s11-supply
- - vdd-s12-supply
- - vdd-s13-supply
- - vdd-l1-l27-supply
- - vdd-l2-l8-l17-supply
- - vdd-l3-l11-supply
- - vdd-l4-l5-supply
- - vdd-l6-supply
- - vdd-l7-l12-l14-l15-supply
- - vdd-l9-supply
- - vdd-l10-l23-l25-supply
- - vdd-l13-l19-l21-supply
- - vdd-l16-l28-supply
- - vdd-l18-l22-supply
- - vdd-l20-l24-supply
- - vdd-l26-supply
- - vin-lvs-1-2-supply
- Usage: optional (PM8998 only)
- Value type: <phandle>
- Definition: phandle of the parent supply regulator of one or more of the
- regulators for this PMIC.
- - vdd-bob-supply
- Usage: optional (PMI8998 only)
- Value type: <phandle>
- Definition: BOB regulator parent supply phandle
- ===============================
- Second Level Nodes - Regulators
- ===============================
- - qcom,always-wait-for-ack
- Usage: optional
- Value type: <empty>
- Definition: 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.
- Other properties defined in Documentation/devicetree/bindings/regulator.txt
- may also be used. regulator-initial-mode and regulator-allowed-modes may be
- specified for VRM regulators using mode values from
- include/dt-bindings/regulator/qcom,rpmh-regulator.h. regulator-allow-bypass
- may be specified for BOB type regulators managed via VRM.
- regulator-allow-set-load may be specified for LDO type regulators managed via
- VRM.
- ========
- Examples
- ========
- #include <dt-bindings/regulator/qcom,rpmh-regulator.h>
- &apps_rsc {
- 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>;
- };
- pm8998_s5: smps5 {
- regulator-min-microvolt = <1904000>;
- regulator-max-microvolt = <2040000>;
- };
- 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>;
- };
- };
- };
|