summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOsvaldo Banuelos <osvaldob@codeaurora.org>2016-02-01 09:51:25 -0800
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 21:21:08 -0700
commitbed0bde3177bdfa6d12237ffa26714bcacbe4593 (patch)
tree28549a6bdb7b1c1eddb400b78626edb0acd25792
parent10287fa85354ab3645707ee3eccfefbbd536407d (diff)
ARM: dts: msm: Add VDD_APC CPRh devices for msmcobalt
Introduce the CPRh regulator devices to manage the two VDD_APC supplies powering the CPU clusters of the msmcobalt chip. Change-Id: I3f63d2d89be631156635d1628d7687b6ef209846 CRs-Fixed: 967275 Signed-off-by: Osvaldo Banuelos <osvaldob@codeaurora.org>
-rw-r--r--arch/arm/boot/dts/qcom/msmcobalt-regulator.dtsi149
-rw-r--r--arch/arm/boot/dts/qcom/msmcobalt-rumi.dts66
2 files changed, 215 insertions, 0 deletions
diff --git a/arch/arm/boot/dts/qcom/msmcobalt-regulator.dtsi b/arch/arm/boot/dts/qcom/msmcobalt-regulator.dtsi
index bd5347fe799d..f3ea5a7fcc10 100644
--- a/arch/arm/boot/dts/qcom/msmcobalt-regulator.dtsi
+++ b/arch/arm/boot/dts/qcom/msmcobalt-regulator.dtsi
@@ -528,3 +528,152 @@
};
};
+&soc {
+/* CPR controller regulators */
+ apc0_cpr: cprh-ctrl@179c8000 {
+ compatible = "qcom,cprh-msmcobalt-kbss-regulator";
+ reg = <0x179c8000 0x4000>, <0x00784000 0x1000>;
+ reg-names = "cpr_ctrl", "fuse_base";
+ clocks = <&clock_gcc clk_gcc_hmss_rbcpr_clk>;
+ clock-names = "core_clk";
+ qcom,cpr-ctrl-name = "apc0";
+ qcom,cpr-controller-id = <0>;
+
+ qcom,cpr-sensor-time = <1000>;
+ qcom,cpr-loop-time = <5000000>;
+ qcom,cpr-idle-cycles = <15>;
+ qcom,cpr-up-down-delay-time = <3000>;
+ qcom,cpr-step-quot-init-min = <11>;
+ qcom,cpr-step-quot-init-max = <13>;
+ qcom,cpr-count-mode = <2>; /* Staggered */
+ qcom,cpr-down-error-step-limit = <1>;
+ qcom,cpr-up-error-step-limit = <1>;
+ qcom,cpr-corner-switch-delay-time = <1600>;
+ qcom,cpr-voltage-settling-time = <1600>;
+
+ qcom,apm-threshold-voltage = <800000>;
+ qcom,apm-hysteresis-voltage = <4000>;
+ qcom,voltage-step = <4000>;
+ qcom,voltage-base = <352000>;
+ qcom,cpr-saw-use-unit-mV;
+
+ thread@0 {
+ qcom,cpr-thread-id = <0>;
+ qcom,cpr-consecutive-up = <0>;
+ qcom,cpr-consecutive-down = <2>;
+ qcom,cpr-up-threshold = <0>;
+ qcom,cpr-down-threshold = <2>;
+
+ apc0_pwrcl_vreg: regulator-pwrcl {
+ regulator-name = "apc0_pwrcl_corner";
+ regulator-min-microvolt = <1>;
+ regulator-max-microvolt = <24>;
+
+ qcom,cpr-fuse-corners = <4>;
+ qcom,cpr-fuse-combos = <1>;
+ qcom,cpr-corners = <23>;
+
+ qcom,cpr-corner-fmax-map = <7 10 17 23>;
+
+ qcom,cpr-voltage-ceiling =
+ <632000 632000 632000 632000 632000
+ 632000 632000 700000 700000 700000
+ 828000 828000 828000 828000 828000
+ 828000 828000 1024000 1024000 1024000
+ 1024000 1024000 1024000>;
+
+ qcom,cpr-voltage-floor =
+ <572000 572000 572000 572000 572000
+ 572000 572000 568000 568000 568000
+ 684000 684000 684000 684000 684000
+ 684000 684000 856000 856000 856000
+ 856000 856000 856000>;
+
+ qcom,corner-frequencies =
+ <300000000 345600000 422400000
+ 499200000 576000000 633600000
+ 710400000 806400000 883200000
+ 960000000 1036800000 1113600000
+ 1190400000 1248000000 1324800000
+ 1401600000 1478400000 1497600000
+ 1574400000 1651200000 1728000000
+ 1804800000 1881600000>;
+ };
+ };
+ };
+
+ apc1_cpr: cprh-ctrl@179c4000{
+ compatible = "qcom,cprh-msmcobalt-kbss-regulator";
+ reg = <0x179c4000 0x4000>, <0x00784000 0x1000>;
+ reg-names = "cpr_ctrl", "fuse_base";
+ clocks = <&clock_gcc clk_gcc_hmss_rbcpr_clk>;
+ clock-names = "core_clk";
+ qcom,cpr-ctrl-name = "apc1";
+ qcom,cpr-controller-id = <1>;
+
+ qcom,cpr-sensor-time = <1000>;
+ qcom,cpr-loop-time = <5000000>;
+ qcom,cpr-idle-cycles = <15>;
+ qcom,cpr-up-down-delay-time = <3000>;
+ qcom,cpr-step-quot-init-min = <11>;
+ qcom,cpr-step-quot-init-max = <13>;
+ qcom,cpr-count-mode = <2>; /* Staggered */
+ qcom,cpr-down-error-step-limit = <1>;
+ qcom,cpr-up-error-step-limit = <1>;
+ qcom,cpr-corner-switch-delay-time = <1600>;
+ qcom,cpr-voltage-settling-time = <1600>;
+
+ qcom,apm-threshold-voltage = <800000>;
+ qcom,apm-hysteresis-voltage = <4000>;
+ qcom,voltage-step = <4000>;
+ qcom,voltage-base = <352000>;
+ qcom,cpr-saw-use-unit-mV;
+
+ thread@0 {
+ qcom,cpr-thread-id = <0>;
+ qcom,cpr-consecutive-up = <0>;
+ qcom,cpr-consecutive-down = <2>;
+ qcom,cpr-up-threshold = <0>;
+ qcom,cpr-down-threshold = <2>;
+
+ apc1_perfcl_vreg: regulator-pwrcl {
+ regulator-name = "apc1_perfcl_corner";
+ regulator-min-microvolt = <1>;
+ regulator-max-microvolt = <27>;
+
+ qcom,cpr-fuse-corners = <4>;
+ qcom,cpr-fuse-combos = <1>;
+ qcom,cpr-corners = <26>;
+
+ qcom,cpr-corner-fmax-map = <8 12 19 26>;
+
+ qcom,cpr-voltage-ceiling =
+ <632000 632000 632000 632000 632000
+ 632000 632000 632000 700000 700000
+ 700000 700000 828000 828000 828000
+ 828000 828000 828000 828000 1024000
+ 1024000 1024000 1024000 1024000 1024000
+ 1024000>;
+
+ qcom,cpr-voltage-floor =
+ <572000 572000 572000 572000 572000
+ 572000 572000 572000 568000 568000
+ 568000 568000 684000 684000 684000
+ 684000 684000 684000 684000 856000
+ 856000 856000 856000 856000 856000
+ 856000>;
+
+ qcom,corner-frequencies =
+ <300000000 345600000 422400000
+ 480000000 556800000 633600000
+ 710400000 787200000 844800000
+ 902400000 979200000 1056000000
+ 1094400000 1171200000 1248000000
+ 1324800000 1401600000 1478400000
+ 1536000000 1632000000 1708800000
+ 1785600000 1862400000 1939200000
+ 2016000000 2092800000>;
+ };
+ };
+ };
+};
diff --git a/arch/arm/boot/dts/qcom/msmcobalt-rumi.dts b/arch/arm/boot/dts/qcom/msmcobalt-rumi.dts
index 693986bdf4ef..30a3700c4e70 100644
--- a/arch/arm/boot/dts/qcom/msmcobalt-rumi.dts
+++ b/arch/arm/boot/dts/qcom/msmcobalt-rumi.dts
@@ -34,6 +34,72 @@
status = "disabled";
};
+&apc0_cpr {
+ qcom,cpr-initial-temp-band = <3>;
+ qcom,cpr-temp-point-map = <0 25 85>;
+};
+
+&apc0_pwrcl_vreg {
+ qcom,cpr-corner-bands = <4>;
+ qcom,corner-band-allow-core-count-adjustment = <1 1 1 1>;
+ qcom,corner-band-allow-temp-adjustment = <1 0 0 0>;
+ qcom,cpr-corner-band-map = <7 14 18 20>;
+ qcom,max-core-count = <4>;
+ qcom,cpr-corner-band1-temp-core-voltage-adjustment =
+ <(-24000) (-20000) (-20000) (-16000)>,
+ <(-16000) (-16000) (-12000) (-8000)>,
+ <(-8000) (-8000) (-4000) (-4000)>,
+ <0 0 0 0>;
+ qcom,cpr-corner-band2-temp-core-voltage-adjustment =
+ <(-36000) 0 0 0>,
+ <(-32000) 0 0 0>,
+ <(-24000) 0 0 0>,
+ < 0 0 0 0>;
+ qcom,cpr-corner-band3-temp-core-voltage-adjustment =
+ <(-40000) 0 0 0>,
+ <(-36000) 0 0 0>,
+ <(-32000) 0 0 0>,
+ < 0 0 0 0>;
+ qcom,cpr-corner-band4-temp-core-voltage-adjustment =
+ <(-44000) 0 0 0>,
+ <(-32000) 0 0 0>,
+ <(-24000) 0 0 0>,
+ < 0 0 0 0>;
+};
+
+&apc1_cpr {
+ qcom,cpr-initial-temp-band = <3>;
+ qcom,cpr-temp-point-map = <0 25 85>;
+};
+
+&apc1_perfcl_vreg {
+ qcom,cpr-corner-bands = <4>;
+ qcom,corner-band-allow-core-count-adjustment = <1 1 1 1>;
+ qcom,corner-band-allow-temp-adjustment = <1 0 0 0>;
+ qcom,cpr-corner-band-map = <6 12 15 20>;
+ qcom,max-core-count = <4>;
+ qcom,cpr-corner-band1-temp-core-voltage-adjustment =
+ <(-24000) (-20000) (-20000) (-16000)>,
+ <(-16000) (-16000) (-12000) (-8000)>,
+ <(-8000) (-8000) (-4000) (-4000)>,
+ <0 0 0 0>;
+ qcom,cpr-corner-band2-temp-core-voltage-adjustment =
+ <(-36000) 0 0 0>,
+ <(-32000) 0 0 0>,
+ <(-24000) 0 0 0>,
+ < 0 0 0 0>;
+ qcom,cpr-corner-band3-temp-core-voltage-adjustment =
+ <(-40000) 0 0 0>,
+ <(-36000) 0 0 0>,
+ <(-32000) 0 0 0>,
+ < 0 0 0 0>;
+ qcom,cpr-corner-band4-temp-core-voltage-adjustment =
+ <(-44000) 0 0 0>,
+ <(-32000) 0 0 0>,
+ <(-24000) 0 0 0>,
+ < 0 0 0 0>;
+};
+
&qusb_phy0 {
reg = <0x0a928000 0x8000>,
<0x0a8f8800 0x400>,