@@ -2,6 +2,7 @@
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/thermal/thermal.h>
#define MBUS_ID(target,attributes) (((target) << 24) | ((attributes) << 16))
@@ -791,6 +792,7 @@
};
gpu: gpu@840000 {
+ #cooling-cells = <2>;
clocks = <÷r_clk 1>;
clock-names = "core";
compatible = "vivante,gc";
@@ -810,12 +812,34 @@
thermal-sensors = <&thermal>;
soc_trips: trips {
+ soc_trip_maximum: soc-passive {
+ temperature = <95000>; /* °mC */
+ hysteresis = <2000>; /* °mC */
+ type = "passive";
+ };
+ soc_trip_hot: soc-hot {
+ temperature = <105000>; /* °mC */
+ hysteresis = <2000>; /* °mC */
+ type = "hot";
+ };
soc_trip_crit: soc-crit {
temperature = <120000>; /* °mC */
hysteresis = <2000>; /* °mC */
type = "critical";
};
};
+
+ cooling-maps {
+ /*
+ * Jon Nettleton says that he found the GPU
+ * accounted for 20%-30% of heat production.
+ */
+ gpu {
+ cooling-device =
+ <&gpu THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
+ trip = <&soc_trip_maximum>;
+ };
+ };
};
};
};
Wire up the GC600 as a cooling device for when the SoC gets hot. The GC600 is reportedly responsible for 20-30% of the SoC dissipation, so reducing the GC600 clock rate should result in some cooling. Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk> --- This patch requires the patch to add the etnaviv cooling device to be in place. arch/arm/boot/dts/dove.dtsi | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+)