152 lines
4.9 KiB
Plaintext
152 lines
4.9 KiB
Plaintext
|
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>;
|
||
|
};
|
||
|
};
|