Back to home page

OSCL-LXR

 
 

    


0001 Qualcomm Resource Power Manager (RPM)
0002 
0003 This driver is used to interface with the Resource Power Manager (RPM) found in
0004 various Qualcomm platforms. The RPM allows each component in the system to vote
0005 for state of the system resources, such as clocks, regulators and bus
0006 frequencies.
0007 
0008 - compatible:
0009         Usage: required
0010         Value type: <string>
0011         Definition: must be one of:
0012                     "qcom,rpm-apq8064"
0013                     "qcom,rpm-msm8660"
0014                     "qcom,rpm-msm8960"
0015                     "qcom,rpm-ipq8064"
0016                     "qcom,rpm-mdm9615"
0017 
0018 - reg:
0019         Usage: required
0020         Value type: <prop-encoded-array>
0021         Definition: base address and size of the RPM's message ram
0022 
0023 - interrupts:
0024         Usage: required
0025         Value type: <prop-encoded-array>
0026         Definition: three entries specifying the RPM's:
0027                     1. acknowledgement interrupt
0028                     2. error interrupt
0029                     3. wakeup interrupt
0030 
0031 - interrupt-names:
0032         Usage: required
0033         Value type: <string-array>
0034         Definition: must be the three strings "ack", "err" and "wakeup", in order
0035 
0036 - qcom,ipc:
0037         Usage: required
0038         Value type: <prop-encoded-array>
0039 
0040         Definition: three entries specifying the outgoing ipc bit used for
0041                     signaling the RPM:
0042                     - phandle to a syscon node representing the apcs registers
0043                     - u32 representing offset to the register within the syscon
0044                     - u32 representing the ipc bit within the register
0045 
0046 
0047 = SUBNODES
0048 
0049 The RPM exposes resources to its subnodes. The below bindings specify the set
0050 of valid subnodes that can operate on these resources.
0051 
0052 == Regulators
0053 
0054 Regulator nodes are identified by their compatible:
0055 
0056 - compatible:
0057         Usage: required
0058         Value type: <string>
0059         Definition: must be one of:
0060                     "qcom,rpm-pm8058-regulators"
0061                     "qcom,rpm-pm8901-regulators"
0062                     "qcom,rpm-pm8921-regulators"
0063                     "qcom,rpm-pm8018-regulators"
0064                     "qcom,rpm-smb208-regulators"
0065 
0066 - vdd_l0_l1_lvs-supply:
0067 - vdd_l2_l11_l12-supply:
0068 - vdd_l3_l4_l5-supply:
0069 - vdd_l6_l7-supply:
0070 - vdd_l8-supply:
0071 - vdd_l9-supply:
0072 - vdd_l10-supply:
0073 - vdd_l13_l16-supply:
0074 - vdd_l14_l15-supply:
0075 - vdd_l17_l18-supply:
0076 - vdd_l19_l20-supply:
0077 - vdd_l21-supply:
0078 - vdd_l22-supply:
0079 - vdd_l23_l24_l25-supply:
0080 - vdd_ncp-supply:
0081 - vdd_s0-supply:
0082 - vdd_s1-supply:
0083 - vdd_s2-supply:
0084 - vdd_s3-supply:
0085 - vdd_s4-supply:
0086         Usage: optional (pm8058 only)
0087         Value type: <phandle>
0088         Definition: reference to regulator supplying the input pin, as
0089                     described in the data sheet
0090 
0091 - lvs0_in-supply:
0092 - lvs1_in-supply:
0093 - lvs2_in-supply:
0094 - lvs3_in-supply:
0095 - mvs_in-supply:
0096 - vdd_l0-supply:
0097 - vdd_l1-supply:
0098 - vdd_l2-supply:
0099 - vdd_l3-supply:
0100 - vdd_l4-supply:
0101 - vdd_l5-supply:
0102 - vdd_l6-supply:
0103 - vdd_s0-supply:
0104 - vdd_s1-supply:
0105 - vdd_s2-supply:
0106 - vdd_s3-supply:
0107 - vdd_s4-supply:
0108         Usage: optional (pm8901 only)
0109         Value type: <phandle>
0110         Definition: reference to regulator supplying the input pin, as
0111                     described in the data sheet
0112 
0113 - vdd_l1_l2_l12_l18-supply:
0114 - vdd_l3_l15_l17-supply:
0115 - vdd_l4_l14-supply:
0116 - vdd_l5_l8_l16-supply:
0117 - vdd_l6_l7-supply:
0118 - vdd_l9_l11-supply:
0119 - vdd_l10_l22-supply:
0120 - vdd_l21_l23_l29-supply:
0121 - vdd_l24-supply:
0122 - vdd_l25-supply:
0123 - vdd_l26-supply:
0124 - vdd_l27-supply:
0125 - vdd_l28-supply:
0126 - vdd_ncp-supply:
0127 - vdd_s1-supply:
0128 - vdd_s2-supply:
0129 - vdd_s4-supply:
0130 - vdd_s5-supply:
0131 - vdd_s6-supply:
0132 - vdd_s7-supply:
0133 - vdd_s8-supply:
0134 - vin_5vs-supply:
0135 - vin_lvs1_3_6-supply:
0136 - vin_lvs2-supply:
0137 - vin_lvs4_5_7-supply:
0138         Usage: optional (pm8921 only)
0139         Value type: <phandle>
0140         Definition: reference to regulator supplying the input pin, as
0141                     described in the data sheet
0142 
0143 - vin_lvs1-supply:
0144 - vdd_l7-supply:
0145 - vdd_l8-supply:
0146 - vdd_l9_l10_l11_l12-supply:
0147         Usage: optional (pm8018 only)
0148         Value type: <phandle>
0149         Definition: reference to regulator supplying the input pin, as
0150                     described in the data sheet
0151 
0152 The regulator node houses sub-nodes for each regulator within the device. Each
0153 sub-node is identified using the node's name, with valid values listed for each
0154 of the pmics below.
0155 
0156 pm8058:
0157         l0, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11, l12, l13, l14, l15,
0158         l16, l17, l18, l19, l20, l21, l22, l23, l24, l25, s0, s1, s2, s3, s4,
0159         lvs0, lvs1, ncp
0160 
0161 pm8901:
0162         l0, l1, l2, l3, l4, l5, l6, s0, s1, s2, s3, s4, lvs0, lvs1, lvs2, lvs3,
0163         mvs
0164 
0165 pm8921:
0166         s1, s2, s3, s4, s7, s8, l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11,
0167         l12, l14, l15, l16, l17, l18, l21, l22, l23, l24, l25, l26, l27, l28,
0168         l29, lvs1, lvs2, lvs3, lvs4, lvs5, lvs6, lvs7, usb-switch, hdmi-switch,
0169         ncp
0170 
0171 pm8018:
0172         s1, s2, s3, s4, s5, , l1, l2, l3, l4, l5, l6, l7, l8, l9, l10, l11,
0173         l12, l14, lvs1
0174 
0175 smb208:
0176         s1a, s1b, s2a, s2b
0177 
0178 The content of each sub-node is defined by the standard binding for regulators -
0179 see regulator.txt - with additional custom properties described below:
0180 
0181 === Switch-mode Power Supply regulator custom properties
0182 
0183 - bias-pull-down:
0184         Usage: optional
0185         Value type: <empty>
0186         Definition: enable pull down of the regulator when inactive
0187 
0188 - qcom,switch-mode-frequency:
0189         Usage: required
0190         Value type: <u32>
0191         Definition: Frequency (Hz) of the switch-mode power supply;
0192                     must be one of:
0193                     19200000, 9600000, 6400000, 4800000, 3840000, 3200000,
0194                     2740000, 2400000, 2130000, 1920000, 1750000, 1600000,
0195                     1480000, 1370000, 1280000, 1200000
0196 
0197 - qcom,force-mode:
0198         Usage: optional (default if no other qcom,force-mode is specified)
0199         Value type: <u32>
0200         Definition: indicates that the regulator should be forced to a
0201                    particular mode, valid values are:
0202                    QCOM_RPM_FORCE_MODE_NONE - do not force any mode
0203                    QCOM_RPM_FORCE_MODE_LPM - force into low power mode
0204                    QCOM_RPM_FORCE_MODE_HPM - force into high power mode
0205                    QCOM_RPM_FORCE_MODE_AUTO - allow regulator to automatically
0206                                               select its own mode based on
0207                                               realtime current draw, only for:
0208                                               pm8921 smps and ftsmps
0209 
0210 - qcom,power-mode-hysteretic:
0211         Usage: optional
0212         Value type: <empty>
0213         Definition: select that the power supply should operate in hysteretic
0214                     mode, instead of the default pwm mode
0215 
0216 === Low-dropout regulator custom properties
0217 
0218 - bias-pull-down:
0219         Usage: optional
0220         Value type: <empty>
0221         Definition: enable pull down of the regulator when inactive
0222 
0223 - qcom,force-mode:
0224         Usage: optional
0225         Value type: <u32>
0226         Definition: indicates that the regulator should not be forced to any
0227                    particular mode, valid values are:
0228                    QCOM_RPM_FORCE_MODE_NONE - do not force any mode
0229                    QCOM_RPM_FORCE_MODE_LPM - force into low power mode
0230                    QCOM_RPM_FORCE_MODE_HPM - force into high power mode
0231                    QCOM_RPM_FORCE_MODE_BYPASS - set regulator to use bypass
0232                                                 mode, i.e.  to act as a switch
0233                                                 and not regulate, only for:
0234                                                 pm8921 pldo, nldo and nldo1200
0235 
0236 === Negative Charge Pump custom properties
0237 
0238 - qcom,switch-mode-frequency:
0239         Usage: required
0240         Value type: <u32>
0241         Definition: Frequency (Hz) of the switch mode power supply;
0242                     must be one of:
0243                     19200000, 9600000, 6400000, 4800000, 3840000, 3200000,
0244                     2740000, 2400000, 2130000, 1920000, 1750000, 1600000,
0245                     1480000, 1370000, 1280000, 1200000
0246 
0247 = EXAMPLE
0248 
0249         #include <dt-bindings/mfd/qcom-rpm.h>
0250 
0251         rpm@108000 {
0252                 compatible = "qcom,rpm-msm8960";
0253                 reg = <0x108000 0x1000>;
0254                 qcom,ipc = <&apcs 0x8 2>;
0255 
0256                 interrupts = <0 19 0>, <0 21 0>, <0 22 0>;
0257                 interrupt-names = "ack", "err", "wakeup";
0258 
0259                 regulators {
0260                         compatible = "qcom,rpm-pm8921-regulators";
0261                         vdd_l1_l2_l12_l18-supply = <&pm8921_s4>;
0262 
0263                         s1 {
0264                                 regulator-min-microvolt = <1225000>;
0265                                 regulator-max-microvolt = <1225000>;
0266 
0267                                 bias-pull-down;
0268 
0269                                 qcom,switch-mode-frequency = <3200000>;
0270                         };
0271 
0272                         pm8921_s4: s4 {
0273                                 regulator-min-microvolt = <1800000>;
0274                                 regulator-max-microvolt = <1800000>;
0275 
0276                                 qcom,switch-mode-frequency = <1600000>;
0277                                 bias-pull-down;
0278 
0279                                 qcom,force-mode = <QCOM_RPM_FORCE_MODE_AUTO>;
0280                         };
0281                 };
0282         };
0283