| 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,cores-per-phase Value that indicates the number of cores running at max frequency |
| a phase can support. |
| - qcom,valid-phases An array containing the phase count the platform supports. The phase count |
| entries must be in increasing order. |
| - qcom,phase-coeff-threshold An array representing the coeff values supported by the phase counts |
| mentioned in qcom,valid-phases array. The location of 0-based index |
| of an element in the list corresponds to the max coefficient supported |
| by the phase count mentioned in qcom,valid-phases array at that index. The |
| coefficient entries must be in increasing order. |
| - qcom,phase-scaling-factor-bits-pos indicates bit position of scaling factor data within the efuse |
| register. |
| - qcom,valid-scaling-factor-versions This is an array holding four boolean values and indicates whether |
| the version read from efuses is valid. |
| The version is a two bit field and the value read from hardware is |
| used as an index in this array to check for validity. |
| 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. |
| - qcom,force-auto-mode indicates whether auto mode should be used i.e. disable pfm/pwm |
| mode switching for the pmic ganged regulator. If this is not specified |
| qcom,pfm-threshold must be specified. |
| - qcom,pfm-threshold The power coeff threshold in abstract power units below which |
| pmic will be made to operate in PFM mode. |
| |
| [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. |
| |
| [Third Level Nodes] |
| This Third level node represents a regulator which when enabled reduces |
| coeff1 component of the load by a defined percentage amount. This Third Level |
| Node is optional. |
| Required properties: |
| - regulator-name: A string used as a descriptive name for the regulator |
| Optional properties: |
| - qcom,coeff1-reduction: percentage to reduce the coeff1 component |
| of the load by. If this is not specified |
| a default of 75 percent is assumed. |
| |
| 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>; |
| qcom,valid-phases = <1 2 4>; |
| qcom,phase-coeff-threshold = <1000000 2000000 4000000>; |
| qcom,phase-scaling-factor-bits-pos = <18>; |
| qcom,valid-scaling-factor-versions = <0 1 1 0>; |
| |
| #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>; |
| krait0_adj_reg: regulator@0 { |
| regulator-name = "krait-adjustment0"; |
| qcom,coeff1-reduction = <75>; |
| }; |
| }; |
| }; |