arm64: dts: register Hi6220's thermal zone for power allocator
authorLeo Yan <leo.yan@linaro.org>
Tue, 29 Mar 2016 11:27:15 +0000 (19:27 +0800)
committerWei Xu <xuwei5@hisilicon.com>
Fri, 15 Apr 2016 16:02:18 +0000 (17:02 +0100)
With profiling Hi6220's power modeling so get dynamic coefficient and
sustainable power. So pass these parameters from DT.

Now enable power allocator with only one actor for CPU part, so directly
use cluster0's thermal sensor for monitoring temperature.

Reviewed-by: Javi Merino <javi.merino@arm.com>
Signed-off-by: Leo Yan <leo.yan@linaro.org>
Signed-off-by: Wei Xu <xuwei5@hisilicon.com>
arch/arm64/boot/dts/hisilicon/hi6220.dtsi

index fc61a164ecebe00e38522a24562be8cfcab5058c..0c8df8a93dbe03b5a271ba99b9150465ee88d527 100644 (file)
@@ -7,6 +7,7 @@
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/clock/hi6220-clock.h>
 #include <dt-bindings/pinctrl/hisi.h>
+#include <dt-bindings/thermal/thermal.h>
 
 / {
        compatible = "hisilicon,hi6220";
@@ -88,6 +89,7 @@
                        cooling-max-level = <0>;
                        #cooling-cells = <2>; /* min followed by max */
                        cpu-idle-states = <&CPU_SLEEP &CLUSTER_SLEEP>;
+                       dynamic-power-coefficient = <311>;
                };
 
                cpu1: cpu@1 {
                        clock-names = "thermal_clk";
                        #thermal-sensor-cells = <1>;
                };
+
+               thermal-zones {
+
+                       cls0: cls0 {
+                               polling-delay = <1000>;
+                               polling-delay-passive = <100>;
+                               sustainable-power = <3326>;
+
+                               /* sensor ID */
+                               thermal-sensors = <&tsensor 2>;
+
+                               trips {
+                                       threshold: trip-point@0 {
+                                               temperature = <65000>;
+                                               hysteresis = <0>;
+                                               type = "passive";
+                                       };
+
+                                       target: trip-point@1 {
+                                               temperature = <75000>;
+                                               hysteresis = <0>;
+                                               type = "passive";
+                                       };
+                               };
+
+                               cooling-maps {
+                                       map0 {
+                                               trip = <&target>;
+                                               cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+                                       };
+                               };
+                       };
+               };
        };
 };