blob: ad630eeb3a298e30fd3cf32f6106cf3e20f47eff [file] [log] [blame]
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>;
};
};