| Krait Voltage regulators |
| |
| The cpus are powered using a single supply powered by PMIC ganged regulators operating in |
| different phases. Individual kraits further can draw power from the single supply via |
| a LDO or a head switch (BHS). The first level node represents the PMIC ganged regulator |
| and its properties and encompasses second level nodes that represent the individual |
| krait LDO/BHS control regulator. |
| |
| [First Level Nodes] |
| Required properties: |
| - compatible: Must be "qcom,krait-pdn" |
| - reg: This property contains a list of physical |
| addresses for Krait PDN features. The list |
| should contain the address of the APCS GCC |
| register base and the address of the phase |
| scaling factor eFuse. |
| - reg-names: This property contains a list of strings naming |
| the registers listed in the reg property. |
| "apcs_gcc" is a string to identify the area |
| where the APCS GCC registers reside. |
| "phase-scaling-efuse" should be used to identify |
| the phase scaling factor eFuse address. |
| - qcom,pfm-threshold The power coeff threshold in abstract power units below which |
| pmic will be made to operate in PFM mode. |
| |
| Optional properties: |
| - qcom,use-phase-switching indicates whether the driver should add/shed phases on the PMIC |
| ganged regulator as cpus are hotplugged. |
| - qcom,use-phase-scaling-factor Boolean which indicates if the value stored in |
| the phase scaling eFuse should be used or not. |
| If this property is not specified, then worst |
| case scaling will be assumed. |
| |
| [Second Level Nodes] |
| Required properties: |
| - compatible: Must be "qcom,krait-regulator" |
| - reg: Specifies the address and size for this regulator device, |
| also specifies the address and the size for the MDD area |
| to be used along with the regulator |
| - reg-names: "acs" -string to identify the area where main power control |
| registers reside. |
| "mdd" - string to identify the area where mdd registers reside. |
| - qcom,headroom-voltage: The minimum required voltage drop between the input |
| voltage and the output voltage for the LDO to be |
| operational, in microvolts. Acceptable values are from |
| 50000uV to 250000uV |
| - qcom,retention-voltage: The value for retention voltage in microvolts. Acceptable |
| values are from 465000uV to 750000uV |
| - qcom,ldo-default-voltage: The default value for LDO voltage in microvolts. Acceptable |
| values are from 465000uV to 750000uV |
| - qcom,ldo-threshold-voltage: The voltage value above which LDO is nonfunctional. |
| Acceptable values are from 600000uV to 900000uV |
| - qcom,ldo-delta-voltage: The delta used to reduce the requested voltage in order |
| to derive the LDO output voltage while switching |
| to LDO mode. Acceptable values are from 1000uV to 100000uV |
| - qcom,cpu-num: Indicates what cpu this regulator controls |
| |
| Optional properties: |
| - qcom,ldo-disable: Indicates whether to disable using LDO mode |
| |
| Any property defined as part of the core regulator |
| binding, defined in regulator.txt, can also be used. |
| |
| Example: |
| krait_pdn: krait-pdn@f9011000 { |
| reg = <0xf9011000 0x1000>, |
| <0xfc4b80b0 8>; |
| reg-names = "apcs_gcc", "phase-scaling-efuse"; |
| compatible = "qcom,krait-pdn"; |
| qcom,use-phase-switching; |
| qcom,use-phase-scaling-factor; |
| qcom,pfm-threshold = <376975>; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| ranges; |
| |
| krait0_vreg: regulator@f9088000 { |
| compatible = "qcom,krait-regulator"; |
| regulator-name = "krait0"; |
| reg = <0xf9088000 0x1000>, /* APCS_ALIAS0_KPSS_ACS */ |
| <0xf908a800 0x1000>; /* APCS_ALIAS0_KPSS_MDD */ |
| reg-names = "acs", "mdd"; |
| regulator-min-microvolt = <500000>; |
| regulator-max-microvolt = <1100000>; |
| qcom,headroom-voltage = <150000>; |
| qcom,retention-voltage = <675000>; |
| qcom,ldo-default-voltage = <750000>; |
| qcom,ldo-threshold-voltage = <850000>; |
| qcom,ldo-delta-voltage = <50000>; |
| qcom,cpu-num = <0>; |
| }; |
| }; |