krait-regulator.txt 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. Krait Voltage regulators
  2. The cpus are powered using a single supply powered by PMIC ganged regulators operating in
  3. different phases. Individual kraits further can draw power from the single supply via
  4. a LDO or a head switch (BHS). The first level node represents the PMIC ganged regulator
  5. and its properties and encompasses second level nodes that represent the individual
  6. krait LDO/BHS control regulator.
  7. [First Level Nodes]
  8. Required properties:
  9. - compatible: Must be "qcom,krait-pdn"
  10. - reg: This property contains a list of physical
  11. addresses for Krait PDN features. The list
  12. should contain the address of the APCS GCC
  13. register base and the address of the phase
  14. scaling factor eFuse.
  15. - reg-names: This property contains a list of strings naming
  16. the registers listed in the reg property.
  17. "apcs_gcc" is a string to identify the area
  18. where the APCS GCC registers reside.
  19. "phase-scaling-efuse" should be used to identify
  20. the phase scaling factor eFuse address.
  21. - qcom,pfm-threshold The power coeff threshold in abstract power units below which
  22. pmic will be made to operate in PFM mode.
  23. - qcom,phase-scaling-factor-bits-pos indicates bit position of scaling factor data within the efuse
  24. register.
  25. - qcom,valid-scaling-factor-versions This is an array holding four boolean values and indicates whether
  26. the version read from efuses is valid.
  27. The version is a two bit field and the value read from hardware is
  28. used as an index in this array to check for validity.
  29. Optional properties:
  30. - qcom,use-phase-switching indicates whether the driver should add/shed phases on the PMIC
  31. ganged regulator as cpus are hotplugged.
  32. - qcom,use-phase-scaling-factor Boolean which indicates if the value stored in
  33. the phase scaling eFuse should be used or not.
  34. If this property is not specified, then worst
  35. case scaling will be assumed.
  36. - qcom,force-auto-mode indicates whether auto mode should be used i.e. disable pfm/pwm
  37. mode switching for the pmic ganged regulator. If this is not specified
  38. qcom,pfm-threshold must be specified.
  39. - qcom,pfm-threshold The power coeff threshold in abstract power units below which
  40. pmic will be made to operate in PFM mode.
  41. [Second Level Nodes]
  42. Required properties:
  43. - compatible: Must be "qcom,krait-regulator"
  44. - reg: Specifies the address and size for this regulator device,
  45. also specifies the address and the size for the MDD area
  46. to be used along with the regulator
  47. - reg-names: "acs" -string to identify the area where main power control
  48. registers reside.
  49. "mdd" - string to identify the area where mdd registers reside.
  50. - qcom,headroom-voltage: The minimum required voltage drop between the input
  51. voltage and the output voltage for the LDO to be
  52. operational, in microvolts. Acceptable values are from
  53. 50000uV to 250000uV
  54. - qcom,retention-voltage: The value for retention voltage in microvolts. Acceptable
  55. values are from 465000uV to 750000uV
  56. - qcom,ldo-default-voltage: The default value for LDO voltage in microvolts. Acceptable
  57. values are from 465000uV to 750000uV
  58. - qcom,ldo-threshold-voltage: The voltage value above which LDO is nonfunctional.
  59. Acceptable values are from 600000uV to 900000uV
  60. - qcom,ldo-delta-voltage: The delta used to reduce the requested voltage in order
  61. to derive the LDO output voltage while switching
  62. to LDO mode. Acceptable values are from 1000uV to 100000uV
  63. - qcom,cpu-num: Indicates what cpu this regulator controls
  64. Optional properties:
  65. - qcom,ldo-disable: Indicates whether to disable using LDO mode
  66. Any property defined as part of the core regulator
  67. binding, defined in regulator.txt, can also be used.
  68. Example:
  69. krait_pdn: krait-pdn@f9011000 {
  70. reg = <0xf9011000 0x1000>,
  71. <0xfc4b80b0 8>;
  72. reg-names = "apcs_gcc", "phase-scaling-efuse";
  73. compatible = "qcom,krait-pdn";
  74. qcom,use-phase-switching;
  75. qcom,use-phase-scaling-factor;
  76. qcom,pfm-threshold = <376975>;
  77. qcom,phase-scaling-factor-bits-pos = <18>;
  78. qcom,valid-scaling-factor-versions = <0 1 1 0>;
  79. #address-cells = <1>;
  80. #size-cells = <1>;
  81. ranges;
  82. krait0_vreg: regulator@f9088000 {
  83. compatible = "qcom,krait-regulator";
  84. regulator-name = "krait0";
  85. reg = <0xf9088000 0x1000>, /* APCS_ALIAS0_KPSS_ACS */
  86. <0xf908a800 0x1000>; /* APCS_ALIAS0_KPSS_MDD */
  87. reg-names = "acs", "mdd";
  88. regulator-min-microvolt = <500000>;
  89. regulator-max-microvolt = <1100000>;
  90. qcom,headroom-voltage = <150000>;
  91. qcom,retention-voltage = <675000>;
  92. qcom,ldo-default-voltage = <750000>;
  93. qcom,ldo-threshold-voltage = <850000>;
  94. qcom,ldo-delta-voltage = <50000>;
  95. qcom,cpu-num = <0>;
  96. };
  97. };