Skip to contentSkip to conversation

ARM: dts: Add CPU cooling binding for Exynos3250-based Rinato/Monk board

PATCH New Chanwoo Choi 3 participants 9 messages Jul 2, 2015 – Jul 30, 2015

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ARM: dts: Add CPU cooling binding for Exynos3250-based Rinato/Monk board

This patch add the cooling device to control the overheating issue on Exynos3250-based Rinato/Monk board.

---
Depends on:
This patch needs the cpufreq support of Exynos3250 SoC. So, this patch has the dependency on patch[1] which support the generic cpufreq for Exynos3250 SoC.
[1] https://lkml.org/lkml/2015/7/1/696
: [PATCH v6 0/3] cpufreq: Use cpufreq-dt driver for Exynos3250

 arch/arm/boot/dts/exynos3250-monk.dts   | 15 +++++++++++++++
 arch/arm/boot/dts/exynos3250-rinato.dts | 15 +++++++++++++++
 arch/arm/boot/dts/exynos3250.dtsi       |  1 +
 3 files changed, 31 insertions(+)
arch/arm/boot/dts/exynos3250-monk.dts +15 -0
index 7863265d4868..540a0adf2be6 100644
@@ -116,6 +116,21 @@
 		min-microvolt = <1100000>;
 		max-microvolt = <2700000>;
 	};
+
+	thermal-zones {
+		cpu_thermal: cpu-thermal {
+			cooling-maps {
+				map0 {
+					/* Correspond to 500MHz at freq_table */
+					cooling-device = <&cpu0 5 5>;
+				};
+				map1 {
+					/* Correspond to 200MHz at freq_table */
+					cooling-device = <&cpu0 8 8>;
+				};
+			};
+		};
+	};
 };
 
 &adc {
arch/arm/boot/dts/exynos3250-rinato.dts +15 -0
index ddd7ac283045..0e62a6435e07 100644
@@ -107,6 +107,21 @@
 		min-microvolt = <1100000>;
 		max-microvolt = <2700000>;
 	};
+
+	thermal-zones {
+		cpu_thermal: cpu-thermal {
+			cooling-maps {
+				map0 {
+					/* Corresponds to 500MHz */
+					cooling-device = <&cpu0 5 5>;
+				};
+				map1 {
+					/* Corresponds to 200MHz */
+					cooling-device = <&cpu0 8 8>;
+				};
+			};
+		};
+	};
 };
 
 &adc {
arch/arm/boot/dts/exynos3250.dtsi +1 -0
index e0f3b2ed41a3..a4931b660ddb 100644
@@ -55,6 +55,7 @@
 			clock-frequency = <1000000000>;
 			clocks = <&cmu CLK_ARM_CLK>;
 			clock-names = "cpu";
+			#cooling-cells = <2>;
 
 			operating-points = <
 				1000000 1150000
Signature · 1 line
1.8.5.5
#1 lore raw

PATCH 1/1 ARM: dts: Add CPU cooling binding for Exynos3250-based Rinato/Monk board

Quoted 76 lines · Chanwoo Choi

This patch add the cooling device to control the overheating issue on Exynos3250-based Rinato/Monk board.

---
Depends on:
This patch needs the cpufreq support of Exynos3250 SoC. So, this patch has the dependency on patch[1] which support the generic cpufreq for Exynos3250 SoC.
[1] https://lkml.org/lkml/2015/7/1/696
: [PATCH v6 0/3] cpufreq: Use cpufreq-dt driver for Exynos3250

 arch/arm/boot/dts/exynos3250-monk.dts   | 15 +++++++++++++++
 arch/arm/boot/dts/exynos3250-rinato.dts | 15 +++++++++++++++
 arch/arm/boot/dts/exynos3250.dtsi       |  1 +
 3 files changed, 31 insertions(+)
arch/arm/boot/dts/exynos3250-monk.dts +15 -0
index 7863265d4868..540a0adf2be6 100644
@@ -116,6 +116,21 @@
 		min-microvolt = <1100000>;
 		max-microvolt = <2700000>;
 	};
+
+	thermal-zones {
+		cpu_thermal: cpu-thermal {
+			cooling-maps {
+				map0 {
+					/* Correspond to 500MHz at freq_table */
+					cooling-device = <&cpu0 5 5>;
+				};
+				map1 {
+					/* Correspond to 200MHz at freq_table */
+					cooling-device = <&cpu0 8 8>;
+				};
+			};
+		};
+	};
 };
 
 &adc {
arch/arm/boot/dts/exynos3250-rinato.dts +15 -0
index ddd7ac283045..0e62a6435e07 100644
@@ -107,6 +107,21 @@
 		min-microvolt = <1100000>;
 		max-microvolt = <2700000>;
 	};
+
+	thermal-zones {
+		cpu_thermal: cpu-thermal {
+			cooling-maps {
+				map0 {
+					/* Corresponds to 500MHz */
+					cooling-device = <&cpu0 5 5>;
+				};
+				map1 {
+					/* Corresponds to 200MHz */
+					cooling-device = <&cpu0 8 8>;
+				};
+			};
+		};
+	};
 };
 
 &adc {
arch/arm/boot/dts/exynos3250.dtsi +0 -0
index e0f3b2ed41a3..a4931b660ddb 100644

arch/arm/boot/dts/exynos3250.dtsi line 59

Quoted 5 lines
arch/arm/boot/dts/exynos3250.dtsi +1 -0
@@ -55,6 +55,7 @@
 			clock-frequency = <1000000000>;
 			clocks = <&cmu CLK_ARM_CLK>;
 			clock-names = "cpu";
+			#cooling-cells = <2>;
 

Don't you need also cooling-{min,max}-state properties?

Best regards,
Krzysztof

Quoted 3 lines
arch/arm/boot/dts/exynos3250.dtsi +0 -0
 			operating-points = <
 				1000000 1150000
#2 lore raw

PATCH 1/1 ARM: dts: Add CPU cooling binding for Exynos3250-based Rinato/Monk board

Quoted 71 lines · Krzysztof Kozlowski
Quoted 70 lines · Chanwoo Choi

This patch add the cooling device to control the overheating issue on Exynos3250-based Rinato/Monk board.

---
Depends on:
This patch needs the cpufreq support of Exynos3250 SoC. So, this patch has the dependency on patch[1] which support the generic cpufreq for Exynos3250 SoC.
[1] https://lkml.org/lkml/2015/7/1/696
: [PATCH v6 0/3] cpufreq: Use cpufreq-dt driver for Exynos3250

 arch/arm/boot/dts/exynos3250-monk.dts   | 15 +++++++++++++++
 arch/arm/boot/dts/exynos3250-rinato.dts | 15 +++++++++++++++
 arch/arm/boot/dts/exynos3250.dtsi       |  1 +
 3 files changed, 31 insertions(+)
arch/arm/boot/dts/exynos3250-monk.dts +15 -0
index 7863265d4868..540a0adf2be6 100644
@@ -116,6 +116,21 @@
 		min-microvolt = <1100000>;
 		max-microvolt = <2700000>;
 	};
+
+	thermal-zones {
+		cpu_thermal: cpu-thermal {
+			cooling-maps {
+				map0 {
+					/* Correspond to 500MHz at freq_table */
+					cooling-device = <&cpu0 5 5>;
+				};
+				map1 {
+					/* Correspond to 200MHz at freq_table */
+					cooling-device = <&cpu0 8 8>;
+				};
+			};
+		};
+	};
 };
 
 &adc {
arch/arm/boot/dts/exynos3250-rinato.dts +15 -0
index ddd7ac283045..0e62a6435e07 100644
@@ -107,6 +107,21 @@
 		min-microvolt = <1100000>;
 		max-microvolt = <2700000>;
 	};
+
+	thermal-zones {
+		cpu_thermal: cpu-thermal {
+			cooling-maps {
+				map0 {
+					/* Corresponds to 500MHz */
+					cooling-device = <&cpu0 5 5>;
+				};
+				map1 {
+					/* Corresponds to 200MHz */
+					cooling-device = <&cpu0 8 8>;
+				};
+			};
+		};
+	};
 };
 
Quoted 13 lines

arch/arm/boot/dts/exynos3250.dtsi line 59

Quoted 11 lines
arch/arm/boot/dts/exynos3250-rinato.dts +0 -0
 &adc {
arch/arm/boot/dts/exynos3250.dtsi +1 -0
index e0f3b2ed41a3..a4931b660ddb 100644
@@ -55,6 +55,7 @@
 			clock-frequency = <1000000000>;
 			clocks = <&cmu CLK_ARM_CLK>;
 			clock-names = "cpu";
+			#cooling-cells = <2>;
 

Don't you need also cooling-{min,max}-state properties?

Yes, it is well working without cooling-{min,max}-state or cooling-{min,max}-level.

I look for the some code to parse "cooling-{min,max}-state or cooling-{min,max}-level" in drivers/thermal/*. But, there are no any code to parse it.

But, Documentation/devicetree/bindings/thermal/thermal.txt contains just the 'cooling-{min,max}-state.

I think that there are mismatch between document and thermal core driver.

Thanks,
Chanwoo Choi

#3 lore raw

PATCH 1/1 ARM: dts: Add CPU cooling binding for Exynos3250-based Rinato/Monk board

Quoted 86 lines · Chanwoo Choi
Quoted 71 lines · Krzysztof Kozlowski
Quoted 70 lines · Chanwoo Choi

This patch add the cooling device to control the overheating issue on Exynos3250-based Rinato/Monk board.

---
Depends on:
This patch needs the cpufreq support of Exynos3250 SoC. So, this patch has the dependency on patch[1] which support the generic cpufreq for Exynos3250 SoC.
[1] https://lkml.org/lkml/2015/7/1/696
: [PATCH v6 0/3] cpufreq: Use cpufreq-dt driver for Exynos3250

 arch/arm/boot/dts/exynos3250-monk.dts   | 15 +++++++++++++++
 arch/arm/boot/dts/exynos3250-rinato.dts | 15 +++++++++++++++
 arch/arm/boot/dts/exynos3250.dtsi       |  1 +
 3 files changed, 31 insertions(+)
arch/arm/boot/dts/exynos3250-monk.dts +15 -0
index 7863265d4868..540a0adf2be6 100644
@@ -116,6 +116,21 @@
 		min-microvolt = <1100000>;
 		max-microvolt = <2700000>;
 	};
+
+	thermal-zones {
+		cpu_thermal: cpu-thermal {
+			cooling-maps {
+				map0 {
+					/* Correspond to 500MHz at freq_table */
+					cooling-device = <&cpu0 5 5>;
+				};
+				map1 {
+					/* Correspond to 200MHz at freq_table */
+					cooling-device = <&cpu0 8 8>;
+				};
+			};
+		};
+	};
 };
 
 &adc {
arch/arm/boot/dts/exynos3250-rinato.dts +15 -0
index ddd7ac283045..0e62a6435e07 100644
@@ -107,6 +107,21 @@
 		min-microvolt = <1100000>;
 		max-microvolt = <2700000>;
 	};
+
+	thermal-zones {
+		cpu_thermal: cpu-thermal {
+			cooling-maps {
+				map0 {
+					/* Corresponds to 500MHz */
+					cooling-device = <&cpu0 5 5>;
+				};
+				map1 {
+					/* Corresponds to 200MHz */
+					cooling-device = <&cpu0 8 8>;
+				};
+			};
+		};
+	};
 };
 
Quoted 13 lines

arch/arm/boot/dts/exynos3250.dtsi line 59

Quoted 11 lines
arch/arm/boot/dts/exynos3250-rinato.dts +0 -0
 &adc {
arch/arm/boot/dts/exynos3250.dtsi +1 -0
index e0f3b2ed41a3..a4931b660ddb 100644
@@ -55,6 +55,7 @@
 			clock-frequency = <1000000000>;
 			clocks = <&cmu CLK_ARM_CLK>;
 			clock-names = "cpu";
+			#cooling-cells = <2>;
 

Don't you need also cooling-{min,max}-state properties?

Quoted 8 lines

Yes, it is well working without cooling-{min,max}-state or cooling-{min,max}-level.

I look for the some code to parse "cooling-{min,max}-state or cooling-{min,max}-level" in drivers/thermal/*. But, there are no any code to parse it.

But, Documentation/devicetree/bindings/thermal/thermal.txt contains just the 'cooling-{min,max}-state.

I think that there are mismatch between document and thermal core driver.

Thanks for explanation, looks good.

Best regards,
Krzysztof

#4 lore raw

PATCH 1/1 ARM: dts: Add CPU cooling binding for Exynos3250-based Rinato/Monk board

2015-07-02 16:17 GMT+09:00 Krzysztof Kozlowski <[email protected]>:

Quoted 94 lines · Chanwoo Choi
Quoted 93 lines · Krzysztof Kozlowski
Quoted 71 lines · Chanwoo Choi
Quoted 70 lines

This patch add the cooling device to control the overheating issue on Exynos3250-based Rinato/Monk board.

---
Depends on:
This patch needs the cpufreq support of Exynos3250 SoC. So, this patch has the dependency on patch[1] which support the generic cpufreq for Exynos3250 SoC.
[1] https://lkml.org/lkml/2015/7/1/696
: [PATCH v6 0/3] cpufreq: Use cpufreq-dt driver for Exynos3250

 arch/arm/boot/dts/exynos3250-monk.dts   | 15 +++++++++++++++
 arch/arm/boot/dts/exynos3250-rinato.dts | 15 +++++++++++++++
 arch/arm/boot/dts/exynos3250.dtsi       |  1 +
 3 files changed, 31 insertions(+)
arch/arm/boot/dts/exynos3250-monk.dts +15 -0
index 7863265d4868..540a0adf2be6 100644
@@ -116,6 +116,21 @@
            min-microvolt = <1100000>;
            max-microvolt = <2700000>;
    };
+
+   thermal-zones {
+           cpu_thermal: cpu-thermal {
+                   cooling-maps {
+                           map0 {
+                                   /* Correspond to 500MHz at freq_table */
+                                   cooling-device = <&cpu0 5 5>;
+                           };
+                           map1 {
+                                   /* Correspond to 200MHz at freq_table */
+                                   cooling-device = <&cpu0 8 8>;
+                           };
+                   };
+           };
+   };
 };
 
 &adc {
arch/arm/boot/dts/exynos3250-rinato.dts +15 -0
index ddd7ac283045..0e62a6435e07 100644
@@ -107,6 +107,21 @@
            min-microvolt = <1100000>;
            max-microvolt = <2700000>;
    };
+
+   thermal-zones {
+           cpu_thermal: cpu-thermal {
+                   cooling-maps {
+                           map0 {
+                                   /* Corresponds to 500MHz */
+                                   cooling-device = <&cpu0 5 5>;
+                           };
+                           map1 {
+                                   /* Corresponds to 200MHz */
+                                   cooling-device = <&cpu0 8 8>;
+                           };
+                   };
+           };
+   };
 };
 
Quoted 13 lines

arch/arm/boot/dts/exynos3250.dtsi line 59

Quoted 11 lines
arch/arm/boot/dts/exynos3250-rinato.dts +0 -0
 &adc {
arch/arm/boot/dts/exynos3250.dtsi +1 -0
index e0f3b2ed41a3..a4931b660ddb 100644
@@ -55,6 +55,7 @@
                    clock-frequency = <1000000000>;
                    clocks = <&cmu CLK_ARM_CLK>;
                    clock-names = "cpu";
+                   #cooling-cells = <2>;
 

Don't you need also cooling-{min,max}-state properties?

Yes, it is well working without cooling-{min,max}-state or cooling-{min,max}-level.

I look for the some code to parse "cooling-{min,max}-state or cooling-{min,max}-level" in drivers/thermal/*. But, there are no any code to parse it.

But, Documentation/devicetree/bindings/thermal/thermal.txt contains just the 'cooling-{min,max}-state.

Quoted 7 lines
Quoted 1 line

I think that there are mismatch between document and thermal core driver.

Thanks for explanation, looks good.

Best regards,
Krzysztof

Dear Kukjin,

Recent four patchsets (4210 CPU OPP in DTS, cpufreq-dt 5250, cpufreq-dt 3250, this patch) are actually an one continuous chain. Dependencies are already in mainline. Are you gonna to pick up everything?

Best regards,
Krzysztof

#5 lore raw

PATCH 1/1 ARM: dts: Add CPU cooling binding for Exynos3250-based Rinato/Monk board

Quoted 105 lines · Krzysztof Kozlowski

2015-07-02 16:17 GMT+09:00 Krzysztof Kozlowski <[email protected]>:

Quoted 87 lines · Chanwoo Choi
Quoted 86 lines · Krzysztof Kozlowski
Quoted 84 lines · Chanwoo Choi
Quoted 76 lines

This patch add the cooling device to control the overheating issue on Exynos3250-based Rinato/Monk board.

---
Depends on:
This patch needs the cpufreq support of Exynos3250 SoC. So, this patch has the dependency on patch[1] which support the generic cpufreq for Exynos3250 SoC.
[1] https://lkml.org/lkml/2015/7/1/696
: [PATCH v6 0/3] cpufreq: Use cpufreq-dt driver for Exynos3250

 arch/arm/boot/dts/exynos3250-monk.dts   | 15 +++++++++++++++
 arch/arm/boot/dts/exynos3250-rinato.dts | 15 +++++++++++++++
 arch/arm/boot/dts/exynos3250.dtsi       |  1 +
 3 files changed, 31 insertions(+)
arch/arm/boot/dts/exynos3250-monk.dts +15 -0
index 7863265d4868..540a0adf2be6 100644
@@ -116,6 +116,21 @@
            min-microvolt = <1100000>;
            max-microvolt = <2700000>;
    };
+
+   thermal-zones {
+           cpu_thermal: cpu-thermal {
+                   cooling-maps {
+                           map0 {
+                                   /* Correspond to 500MHz at freq_table */
+                                   cooling-device = <&cpu0 5 5>;
+                           };
+                           map1 {
+                                   /* Correspond to 200MHz at freq_table */
+                                   cooling-device = <&cpu0 8 8>;
+                           };
+                   };
+           };
+   };
 };
 
 &adc {
arch/arm/boot/dts/exynos3250-rinato.dts +15 -0
index ddd7ac283045..0e62a6435e07 100644
@@ -107,6 +107,21 @@
            min-microvolt = <1100000>;
            max-microvolt = <2700000>;
    };
+
+   thermal-zones {
+           cpu_thermal: cpu-thermal {
+                   cooling-maps {
+                           map0 {
+                                   /* Corresponds to 500MHz */
+                                   cooling-device = <&cpu0 5 5>;
+                           };
+                           map1 {
+                                   /* Corresponds to 200MHz */
+                                   cooling-device = <&cpu0 8 8>;
+                           };
+                   };
+           };
+   };
 };
 
 &adc {
arch/arm/boot/dts/exynos3250.dtsi +0 -0
index e0f3b2ed41a3..a4931b660ddb 100644

arch/arm/boot/dts/exynos3250.dtsi line 59

Quoted 5 lines
arch/arm/boot/dts/exynos3250.dtsi +1 -0
@@ -55,6 +55,7 @@
                    clock-frequency = <1000000000>;
                    clocks = <&cmu CLK_ARM_CLK>;
                    clock-names = "cpu";
+                   #cooling-cells = <2>;
 

Don't you need also cooling-{min,max}-state properties?

Quoted 6 lines
Quoted 6 lines

Yes, it is well working without cooling-{min,max}-state or cooling-{min,max}-level.

I look for the some code to parse "cooling-{min,max}-state or cooling-{min,max}-level" in drivers/thermal/*. But, there are no any code to parse it.

But, Documentation/devicetree/bindings/thermal/thermal.txt contains just the 'cooling-{min,max}-

state.

Quoted 8 lines
Quoted 2 lines

I think that there are mismatch between document and thermal core driver.

Thanks for explanation, looks good.

Best regards,
Krzysztof

Quoted 7 lines

Dear Kukjin,

Recent four patchsets (4210 CPU OPP in DTS, cpufreq-dt 5250, cpufreq-dt 3250, this patch) are actually an one continuous chain. Dependencies are already in mainline. Are you gonna to pick up everything?

Yes, I want and I will. BTW maybe clk change is required together? If so, as you know we need to get ack from clk guy. Is my understanding right?

Thanks,
Kukjin

#6 lore raw

PATCH 1/1 ARM: dts: Add CPU cooling binding for Exynos3250-based Rinato/Monk board

Quoted 108 lines · Kukjin Kim
Quoted 107 lines · Krzysztof Kozlowski

2015-07-02 16:17 GMT+09:00 Krzysztof Kozlowski <[email protected]>:

Quoted 87 lines · Chanwoo Choi
Quoted 86 lines · Krzysztof Kozlowski
Quoted 84 lines · Chanwoo Choi
Quoted 76 lines

This patch add the cooling device to control the overheating issue on Exynos3250-based Rinato/Monk board.

---
Depends on:
This patch needs the cpufreq support of Exynos3250 SoC. So, this patch has the dependency on patch[1] which support the generic cpufreq for Exynos3250 SoC.
[1] https://lkml.org/lkml/2015/7/1/696
: [PATCH v6 0/3] cpufreq: Use cpufreq-dt driver for Exynos3250

 arch/arm/boot/dts/exynos3250-monk.dts   | 15 +++++++++++++++
 arch/arm/boot/dts/exynos3250-rinato.dts | 15 +++++++++++++++
 arch/arm/boot/dts/exynos3250.dtsi       |  1 +
 3 files changed, 31 insertions(+)
arch/arm/boot/dts/exynos3250-monk.dts +15 -0
index 7863265d4868..540a0adf2be6 100644
@@ -116,6 +116,21 @@
            min-microvolt = <1100000>;
            max-microvolt = <2700000>;
    };
+
+   thermal-zones {
+           cpu_thermal: cpu-thermal {
+                   cooling-maps {
+                           map0 {
+                                   /* Correspond to 500MHz at freq_table */
+                                   cooling-device = <&cpu0 5 5>;
+                           };
+                           map1 {
+                                   /* Correspond to 200MHz at freq_table */
+                                   cooling-device = <&cpu0 8 8>;
+                           };
+                   };
+           };
+   };
 };
 
 &adc {
arch/arm/boot/dts/exynos3250-rinato.dts +15 -0
index ddd7ac283045..0e62a6435e07 100644
@@ -107,6 +107,21 @@
            min-microvolt = <1100000>;
            max-microvolt = <2700000>;
    };
+
+   thermal-zones {
+           cpu_thermal: cpu-thermal {
+                   cooling-maps {
+                           map0 {
+                                   /* Corresponds to 500MHz */
+                                   cooling-device = <&cpu0 5 5>;
+                           };
+                           map1 {
+                                   /* Corresponds to 200MHz */
+                                   cooling-device = <&cpu0 8 8>;
+                           };
+                   };
+           };
+   };
 };
 
 &adc {
arch/arm/boot/dts/exynos3250.dtsi +0 -0
index e0f3b2ed41a3..a4931b660ddb 100644

arch/arm/boot/dts/exynos3250.dtsi line 59

Quoted 5 lines
arch/arm/boot/dts/exynos3250.dtsi +1 -0
@@ -55,6 +55,7 @@
                    clock-frequency = <1000000000>;
                    clocks = <&cmu CLK_ARM_CLK>;
                    clock-names = "cpu";
+                   #cooling-cells = <2>;
 

Don't you need also cooling-{min,max}-state properties?

Quoted 6 lines
Quoted 6 lines

Yes, it is well working without cooling-{min,max}-state or cooling-{min,max}-level.

I look for the some code to parse "cooling-{min,max}-state or cooling-{min,max}-level" in drivers/thermal/*. But, there are no any code to parse it.

But, Documentation/devicetree/bindings/thermal/thermal.txt contains just the 'cooling-{min,max}-

state.

Quoted 8 lines
Quoted 2 lines

I think that there are mismatch between document and thermal core driver.

Thanks for explanation, looks good.

Best regards,
Krzysztof

Dear Kukjin,

Quoted 7 lines
Quoted 5 lines

Recent four patchsets (4210 CPU OPP in DTS, cpufreq-dt 5250, cpufreq-dt 3250, this patch) are actually an one continuous chain. Dependencies are already in mainline. Are you gonna to pick up everything?

Yes, I want and I will. BTW maybe clk change is required together? If so, as you know we need to get ack from clk guy. Is my understanding right?

Right. I think the samsung clock and cpufreq patches still need acks.

Best regards,
Krzysztof

#7 lore raw

PATCH 1/1 ARM: dts: Add CPU cooling binding for Exynos3250-based Rinato/Monk board

Dear Kukjin,

Please pick this patch because exynos3250-cpufreq patch-set was already merged on linux-samsung.git.

Thanks,
Chanwoo Choi

Quoted 126 lines · Krzysztof Kozlowski
Quoted 108 lines · Kukjin Kim
Quoted 107 lines · Krzysztof Kozlowski

2015-07-02 16:17 GMT+09:00 Krzysztof Kozlowski <[email protected]>:

Quoted 87 lines · Chanwoo Choi
Quoted 86 lines · Krzysztof Kozlowski
Quoted 84 lines · Chanwoo Choi
Quoted 76 lines

This patch add the cooling device to control the overheating issue on Exynos3250-based Rinato/Monk board.

---
Depends on:
This patch needs the cpufreq support of Exynos3250 SoC. So, this patch has the dependency on patch[1] which support the generic cpufreq for Exynos3250 SoC.
[1] https://lkml.org/lkml/2015/7/1/696
: [PATCH v6 0/3] cpufreq: Use cpufreq-dt driver for Exynos3250

 arch/arm/boot/dts/exynos3250-monk.dts   | 15 +++++++++++++++
 arch/arm/boot/dts/exynos3250-rinato.dts | 15 +++++++++++++++
 arch/arm/boot/dts/exynos3250.dtsi       |  1 +
 3 files changed, 31 insertions(+)
arch/arm/boot/dts/exynos3250-monk.dts +15 -0
index 7863265d4868..540a0adf2be6 100644
@@ -116,6 +116,21 @@
            min-microvolt = <1100000>;
            max-microvolt = <2700000>;
    };
+
+   thermal-zones {
+           cpu_thermal: cpu-thermal {
+                   cooling-maps {
+                           map0 {
+                                   /* Correspond to 500MHz at freq_table */
+                                   cooling-device = <&cpu0 5 5>;
+                           };
+                           map1 {
+                                   /* Correspond to 200MHz at freq_table */
+                                   cooling-device = <&cpu0 8 8>;
+                           };
+                   };
+           };
+   };
 };
 
 &adc {
arch/arm/boot/dts/exynos3250-rinato.dts +15 -0
index ddd7ac283045..0e62a6435e07 100644
@@ -107,6 +107,21 @@
            min-microvolt = <1100000>;
            max-microvolt = <2700000>;
    };
+
+   thermal-zones {
+           cpu_thermal: cpu-thermal {
+                   cooling-maps {
+                           map0 {
+                                   /* Corresponds to 500MHz */
+                                   cooling-device = <&cpu0 5 5>;
+                           };
+                           map1 {
+                                   /* Corresponds to 200MHz */
+                                   cooling-device = <&cpu0 8 8>;
+                           };
+                   };
+           };
+   };
 };
 
 &adc {
arch/arm/boot/dts/exynos3250.dtsi +0 -0
index e0f3b2ed41a3..a4931b660ddb 100644

arch/arm/boot/dts/exynos3250.dtsi line 59

Quoted 5 lines
arch/arm/boot/dts/exynos3250.dtsi +1 -0
@@ -55,6 +55,7 @@
                    clock-frequency = <1000000000>;
                    clocks = <&cmu CLK_ARM_CLK>;
                    clock-names = "cpu";
+                   #cooling-cells = <2>;
 

Don't you need also cooling-{min,max}-state properties?

Quoted 6 lines
Quoted 6 lines

Yes, it is well working without cooling-{min,max}-state or cooling-{min,max}-level.

I look for the some code to parse "cooling-{min,max}-state or cooling-{min,max}-level" in drivers/thermal/*. But, there are no any code to parse it.

But, Documentation/devicetree/bindings/thermal/thermal.txt contains just the 'cooling-{min,max}-

state.

Quoted 8 lines
Quoted 2 lines

I think that there are mismatch between document and thermal core driver.

Thanks for explanation, looks good.

Best regards,
Krzysztof

Dear Kukjin,

Quoted 7 lines
Quoted 5 lines

Recent four patchsets (4210 CPU OPP in DTS, cpufreq-dt 5250, cpufreq-dt 3250, this patch) are actually an one continuous chain. Dependencies are already in mainline. Are you gonna to pick up everything?

Yes, I want and I will. BTW maybe clk change is required together? If so, as you know we need to get ack from clk guy. Is my understanding right?

Right. I think the samsung clock and cpufreq patches still need acks.

Best regards,
Krzysztof
--
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo at vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html

Applied
#8 lore raw

PATCH 1/1 ARM: dts: Add CPU cooling binding for Exynos3250-based Rinato/Monk board

Quoted 5 lines · Chanwoo Choi

Dear Kukjin,

Please pick this patch because exynos3250-cpufreq patch-set was already merged on linux-samsung.git.

Applied, thanks.

- Kukjin

Quoted 125 lines

Thanks,
Chanwoo Choi

Quoted 121 lines · Krzysztof Kozlowski
Quoted 108 lines · Kukjin Kim
Quoted 107 lines · Krzysztof Kozlowski

2015-07-02 16:17 GMT+09:00 Krzysztof Kozlowski <[email protected]>:

Quoted 87 lines · Chanwoo Choi
Quoted 86 lines · Krzysztof Kozlowski
Quoted 84 lines · Chanwoo Choi
Quoted 76 lines

This patch add the cooling device to control the overheating issue on Exynos3250-based Rinato/Monk board.

---
Depends on:
This patch needs the cpufreq support of Exynos3250 SoC. So, this patch has the dependency on patch[1] which support the generic cpufreq for Exynos3250 SoC.
[1] https://lkml.org/lkml/2015/7/1/696
: [PATCH v6 0/3] cpufreq: Use cpufreq-dt driver for Exynos3250

 arch/arm/boot/dts/exynos3250-monk.dts   | 15 +++++++++++++++
 arch/arm/boot/dts/exynos3250-rinato.dts | 15 +++++++++++++++
 arch/arm/boot/dts/exynos3250.dtsi       |  1 +
 3 files changed, 31 insertions(+)
arch/arm/boot/dts/exynos3250-monk.dts +15 -0
index 7863265d4868..540a0adf2be6 100644
@@ -116,6 +116,21 @@
            min-microvolt = <1100000>;
            max-microvolt = <2700000>;
    };
+
+   thermal-zones {
+           cpu_thermal: cpu-thermal {
+                   cooling-maps {
+                           map0 {
+                                   /* Correspond to 500MHz at freq_table */
+                                   cooling-device = <&cpu0 5 5>;
+                           };
+                           map1 {
+                                   /* Correspond to 200MHz at freq_table */
+                                   cooling-device = <&cpu0 8 8>;
+                           };
+                   };
+           };
+   };
 };
 
 &adc {
arch/arm/boot/dts/exynos3250-rinato.dts +15 -0
index ddd7ac283045..0e62a6435e07 100644
@@ -107,6 +107,21 @@
            min-microvolt = <1100000>;
            max-microvolt = <2700000>;
    };
+
+   thermal-zones {
+           cpu_thermal: cpu-thermal {
+                   cooling-maps {
+                           map0 {
+                                   /* Corresponds to 500MHz */
+                                   cooling-device = <&cpu0 5 5>;
+                           };
+                           map1 {
+                                   /* Corresponds to 200MHz */
+                                   cooling-device = <&cpu0 8 8>;
+                           };
+                   };
+           };
+   };
 };
 
 &adc {
arch/arm/boot/dts/exynos3250.dtsi +0 -0
index e0f3b2ed41a3..a4931b660ddb 100644

arch/arm/boot/dts/exynos3250.dtsi line 59

Quoted 5 lines
arch/arm/boot/dts/exynos3250.dtsi +1 -0
@@ -55,6 +55,7 @@
                    clock-frequency = <1000000000>;
                    clocks = <&cmu CLK_ARM_CLK>;
                    clock-names = "cpu";
+                   #cooling-cells = <2>;
 

Don't you need also cooling-{min,max}-state properties?

Quoted 6 lines
Quoted 6 lines

Yes, it is well working without cooling-{min,max}-state or cooling-{min,max}-level.

I look for the some code to parse "cooling-{min,max}-state or cooling-{min,max}-level" in drivers/thermal/*. But, there are no any code to parse it.

But, Documentation/devicetree/bindings/thermal/thermal.txt contains just the 'cooling-{min,max}-

state.

Quoted 8 lines
Quoted 2 lines

I think that there are mismatch between document and thermal core driver.

Thanks for explanation, looks good.

Best regards,
Krzysztof

Dear Kukjin,

Quoted 7 lines
Quoted 5 lines

Recent four patchsets (4210 CPU OPP in DTS, cpufreq-dt 5250, cpufreq-dt 3250, this patch) are actually an one continuous chain. Dependencies are already in mainline. Are you gonna to pick up everything?

Yes, I want and I will. BTW maybe clk change is required together? If so, as you know we need to get ack from clk guy. Is my understanding right?

Right. I think the samsung clock and cpufreq patches still need acks.

Best regards,
Krzysztof