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: Definition: must be "qcom,kryo-regulator" - reg Usage: required Value type: 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: 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: Definition: The default value for LDO voltage in microvolts. Must be between 520000 uV and 865000 uV. - qcom,retention-voltage Usage: required Value type: Definition: The value for retention voltage in microvolts. Must be between 520000 and 865000 uV. - qcom,ldo-headroom-voltage Usage: required Value type: 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: Definition: The voltage change in microvolts for each step in the functional LDO set point. - qcom,vref-functional-min-voltage Usage: required Value type: Definition: The minimum configurable functional LDO voltage in microvolts. - qcom,vref-retention-step-voltage Usage: required Value type: Definition: The voltage change in microvolts for each step in the retention LDO set point. - qcom,vref-retention-min-voltage Usage: required Value type: Definition: The minimum configurable retention LDO voltage in microvolts. - qcom,ldo-config-init Usage: required Value type: Definition: Initialization value used to configure the Kryo LDO hardware. - qcom,apm-config-init Usage: required Value type: Definition: Initialization value used to configure the Kryo APM hardware. - qcom,cluster-num Usage: required Value type: 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>; }; };