| Qualcomm Technologies, Inc. Kryo Regulator |
| |
| The Kryo regulator device is designed for QTI's application processor cores |
| that can draw power from a common power rail via a block head switch (BHS) |
| or from a configurable LDO when certain power constraints are met. By using |
| Kryo regulators, the CPU subsystem is capable of selecting LDO or BHS modes |
| for each cluster. |
| |
| ================= |
| First Level Nodes |
| ================= |
| |
| - compatible |
| Usage: required |
| Value type: <string> |
| Definition: must be "qcom,kryo-regulator" |
| |
| - reg |
| Usage: required |
| Value type: <prop-encoded-array> |
| Definition: Specifies addresses and sizes for the memory mapped regions of the |
| power gate and LDO registers per cluster and per shared power rail |
| domain. The third address must correspond to the register space |
| containing the CPU subsystem HW revision register. |
| |
| - reg-names |
| Usage: required |
| Value type: <stringlist> |
| Definition: Identifies the reg property entries. Must contain the following |
| strings: "pm-apc", "pm-apcc", and "apcs-csr". |
| |
| - qcom,ldo-default-voltage |
| Usage: required |
| Value type: <u32> |
| Definition: The default value for LDO voltage in microvolts. Must be |
| between 520000 uV and 865000 uV. |
| |
| - qcom,retention-voltage |
| Usage: required |
| Value type: <u32> |
| Definition: The value for retention voltage in microvolts. Must be |
| between 520000 and 865000 uV. |
| |
| - qcom,ldo-headroom-voltage |
| Usage: required |
| Value type: <u32> |
| Definition: Voltage in microvolts required between the VDD_APCC voltage supply |
| and the LDO output in order for the LDO to be operational. |
| |
| - qcom,vref-functional-step-voltage |
| Usage: required |
| Value type: <u32> |
| Definition: The voltage change in microvolts for each step in the |
| functional LDO set point. |
| |
| - qcom,vref-functional-min-voltage |
| Usage: required |
| Value type: <u32> |
| Definition: The minimum configurable functional LDO voltage in microvolts. |
| |
| - qcom,vref-retention-step-voltage |
| Usage: required |
| Value type: <u32> |
| Definition: The voltage change in microvolts for each step in the |
| retention LDO set point. |
| |
| - qcom,vref-retention-min-voltage |
| Usage: required |
| Value type: <u32> |
| Definition: The minimum configurable retention LDO voltage in microvolts. |
| |
| - qcom,ldo-config-init |
| Usage: required |
| Value type: <u32> |
| Definition: Initialization value used to configure the Kryo LDO hardware. |
| |
| - qcom,apm-config-init |
| Usage: required |
| Value type: <u32> |
| Definition: Initialization value used to configure the Kryo APM hardware. |
| |
| - qcom,cluster-num |
| Usage: required |
| Value type: <u32> |
| Definition: Specifies the number of the cluster this regulator controls. |
| |
| ================== |
| Second Level Nodes |
| ================== |
| The second level node represents a regulator which enables control of LDO retention |
| mode per Kryo regulator device. This second level node is required. |
| |
| The following regulator framework properties must be specified for both first and |
| second level nodes: regulator-name, regulator-min-microvolt, and regulator-max-microvolt. |
| |
| Additional core regulator framework properties may also be used. For a full list of |
| supported bindings refer to Documentation/devicetree/bindings/regulator/regulator.txt. |
| |
| ======= |
| Example |
| ======= |
| |
| kryo0_vreg: regulator@99a2000 { |
| compatible = "qcom,kryo-regulator"; |
| regulator-name = "kryo0"; |
| reg = <0x99a2000 0x1000>, <0x99e0000 0x1000>, |
| <0x9820000 0x1000>; |
| reg-names = "pm-apc", "pm-apcc", "apcs-csr"; |
| regulator-min-microvolt = <520000>; |
| regulator-max-microvolt = <865000>; |
| qcom,ldo-default-voltage = <750000>; |
| qcom,retention-voltage = <520000>; |
| qcom,ldo-headroom-voltage = <150000>; |
| qcom,vref-functional-step-voltage = <4100>; |
| qcom,vref-functional-min-voltage = <299000>; |
| qcom,vref-retention-step-voltage = <4554>; |
| qcom,vref-retention-min-voltage = <332000>; |
| qcom,ldo-config-init = <0xf1f0e471>; |
| qcom,apm-config-init = <0x0>; |
| qcom,cluster-num = <0>; |
| kryo0_retention_vreg: regulator { |
| regulator-name = "kryo0-retention"; |
| regulator-min-microvolt = <332000>; |
| regulator-max-microvolt = <865000>; |
| }; |
| }; |
| |
| kryo1_vreg: regulator@99d2000 { |
| compatible = "qcom,kryo-regulator"; |
| regulator-name = "kryo1"; |
| reg = <0x99d2000 0x1000>, <0x99e0000 0x1000>, |
| <0x9820000 0x1000>; |
| reg-names = "pm-apc", "pm-apcc", "apcs-csr"; |
| regulator-min-microvolt = <520000>; |
| regulator-max-microvolt = <865000>; |
| qcom,ldo-default-voltage = <750000>; |
| qcom,retention-voltage = <520000>; |
| qcom,ldo-headroom-voltage = <150000>; |
| qcom,vref-functional-step-voltage = <4063>; |
| qcom,vref-functional-min-voltage = <296000>; |
| qcom,vref-retention-step-voltage = <4554>; |
| qcom,vref-retention-min-voltage = <332000>; |
| qcom,ldo-config-init = <0xf1f0e471>; |
| qcom,apm-config-init = <0x0>; |
| qcom,cluster-num = <1>; |
| kryo1_retention_vreg: regulator { |
| regulator-name = "kryo1-retention"; |
| regulator-min-microvolt = <332000>; |
| regulator-max-microvolt = <865000>; |
| }; |
| }; |