[PATCH v3 10/11] ARM: sun8i: a33: Add devfreq-based GPU cooling

2017-03-21 Thread Quentin Schulz
From: Maxime Ripard 

This adds GPU thermal throttling for the Allwinner A33.

Signed-off-by: Maxime Ripard 
Signed-off-by: Quentin Schulz 
---

v3:
  - got rid of cooling-min-level and cooling-max-level as it's not used in any
  code in the kernel,

added in v2

 arch/arm/boot/dts/sun8i-a23-a33.dtsi |  1 +
 arch/arm/boot/dts/sun8i-a33.dtsi | 24 
 2 files changed, 25 insertions(+)

diff --git a/arch/arm/boot/dts/sun8i-a23-a33.dtsi 
b/arch/arm/boot/dts/sun8i-a23-a33.dtsi
index 5e8725d..6d81a6d 100644
--- a/arch/arm/boot/dts/sun8i-a23-a33.dtsi
+++ b/arch/arm/boot/dts/sun8i-a23-a33.dtsi
@@ -495,6 +495,7 @@
 
assigned-clocks = < CLK_GPU>;
assigned-clock-rates = <38400>;
+   #cooling-cells = <2>;
};
 
gic: interrupt-controller@01c81000 {
diff --git a/arch/arm/boot/dts/sun8i-a33.dtsi b/arch/arm/boot/dts/sun8i-a33.dtsi
index 73552bb..a2c6077 100644
--- a/arch/arm/boot/dts/sun8i-a33.dtsi
+++ b/arch/arm/boot/dts/sun8i-a33.dtsi
@@ -188,6 +188,16 @@
trip = <_alert1>;
cooling-device = < 
THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
+
+   map2 {
+   trip = <_alert0>;
+   cooling-device = < 1 
THERMAL_NO_LIMIT>;
+   };
+
+   map3 {
+   trip = <_alert1>;
+   cooling-device = < 2 
THERMAL_NO_LIMIT>;
+   };
};
 
trips {
@@ -198,6 +208,13 @@
type = "passive";
};
 
+   gpu_alert0: gpu_alert0 {
+   /* milliCelsius */
+   temperature = <85000>;
+   hysteresis = <2000>;
+   type = "passive";
+   };
+
cpu_alert1: cpu_alert1 {
/* milliCelsius */
temperature = <9>;
@@ -205,6 +222,13 @@
type = "hot";
};
 
+   gpu_alert1: gpu_alert1 {
+   /* milliCelsius */
+   temperature = <95000>;
+   hysteresis = <2000>;
+   type = "hot";
+   };
+
cpu_crit: cpu_crit {
/* milliCelsius */
temperature = <11>;
-- 
2.9.3



[PATCH v3 10/11] ARM: sun8i: a33: Add devfreq-based GPU cooling

2017-03-21 Thread Quentin Schulz
From: Maxime Ripard 

This adds GPU thermal throttling for the Allwinner A33.

Signed-off-by: Maxime Ripard 
Signed-off-by: Quentin Schulz 
---

v3:
  - got rid of cooling-min-level and cooling-max-level as it's not used in any
  code in the kernel,

added in v2

 arch/arm/boot/dts/sun8i-a23-a33.dtsi |  1 +
 arch/arm/boot/dts/sun8i-a33.dtsi | 24 
 2 files changed, 25 insertions(+)

diff --git a/arch/arm/boot/dts/sun8i-a23-a33.dtsi 
b/arch/arm/boot/dts/sun8i-a23-a33.dtsi
index 5e8725d..6d81a6d 100644
--- a/arch/arm/boot/dts/sun8i-a23-a33.dtsi
+++ b/arch/arm/boot/dts/sun8i-a23-a33.dtsi
@@ -495,6 +495,7 @@
 
assigned-clocks = < CLK_GPU>;
assigned-clock-rates = <38400>;
+   #cooling-cells = <2>;
};
 
gic: interrupt-controller@01c81000 {
diff --git a/arch/arm/boot/dts/sun8i-a33.dtsi b/arch/arm/boot/dts/sun8i-a33.dtsi
index 73552bb..a2c6077 100644
--- a/arch/arm/boot/dts/sun8i-a33.dtsi
+++ b/arch/arm/boot/dts/sun8i-a33.dtsi
@@ -188,6 +188,16 @@
trip = <_alert1>;
cooling-device = < 
THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
};
+
+   map2 {
+   trip = <_alert0>;
+   cooling-device = < 1 
THERMAL_NO_LIMIT>;
+   };
+
+   map3 {
+   trip = <_alert1>;
+   cooling-device = < 2 
THERMAL_NO_LIMIT>;
+   };
};
 
trips {
@@ -198,6 +208,13 @@
type = "passive";
};
 
+   gpu_alert0: gpu_alert0 {
+   /* milliCelsius */
+   temperature = <85000>;
+   hysteresis = <2000>;
+   type = "passive";
+   };
+
cpu_alert1: cpu_alert1 {
/* milliCelsius */
temperature = <9>;
@@ -205,6 +222,13 @@
type = "hot";
};
 
+   gpu_alert1: gpu_alert1 {
+   /* milliCelsius */
+   temperature = <95000>;
+   hysteresis = <2000>;
+   type = "hot";
+   };
+
cpu_crit: cpu_crit {
/* milliCelsius */
temperature = <11>;
-- 
2.9.3