225 lines
6.9 KiB
Diff
225 lines
6.9 KiB
Diff
From 0fe4d2181cc4cb3eba303c0e03f878d2558d0f3a Mon Sep 17 00:00:00 2001
|
|
From: Stefan Wahren <stefan.wahren@i2se.com>
|
|
Date: Fri, 31 Mar 2017 20:03:04 +0000
|
|
Subject: [PATCH] ARM: dts: bcm283x: Add CPU thermal zone with 1
|
|
trip point
|
|
|
|
As suggested by Eduardo Valentin this adds the thermal zone for
|
|
the bcm2835 SoC with its single thermal sensor. We start with
|
|
the criticial trip point and leave the cooling devices empty
|
|
since we don't have any at the moment. Since the coefficients
|
|
could vary depending on the SoC we need to define them separate.
|
|
|
|
Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
|
|
Signed-off-by: Eric Anholt <eric@anholt.net>
|
|
Acked-by: Eduardo Valentin <edubezval@gmail.com>
|
|
---
|
|
arch/arm/boot/dts/bcm2835.dtsi | 4 ++++
|
|
arch/arm/boot/dts/bcm2836.dtsi | 4 ++++
|
|
arch/arm/boot/dts/bcm283x.dtsi | 21 +++++++++++++++++++++
|
|
3 files changed, 29 insertions(+)
|
|
|
|
diff --git a/arch/arm/boot/dts/bcm2835.dtsi b/arch/arm/boot/dts/bcm2835.dtsi
|
|
index 0890d97e674d..659b6e9513b1 100644
|
|
--- a/arch/arm/boot/dts/bcm2835.dtsi
|
|
+++ b/arch/arm/boot/dts/bcm2835.dtsi
|
|
@@ -24,6 +24,10 @@
|
|
};
|
|
};
|
|
|
|
+&cpu_thermal {
|
|
+ coefficients = <(-538) 407000>;
|
|
+};
|
|
+
|
|
/* enable thermal sensor with the correct compatible property set */
|
|
&thermal {
|
|
compatible = "brcm,bcm2835-thermal";
|
|
diff --git a/arch/arm/boot/dts/bcm2836.dtsi b/arch/arm/boot/dts/bcm2836.dtsi
|
|
index 519a44f5d25a..da3deeb42592 100644
|
|
--- a/arch/arm/boot/dts/bcm2836.dtsi
|
|
+++ b/arch/arm/boot/dts/bcm2836.dtsi
|
|
@@ -77,6 +77,10 @@
|
|
interrupts = <8>;
|
|
};
|
|
|
|
+&cpu_thermal {
|
|
+ coefficients = <(-538) 407000>;
|
|
+};
|
|
+
|
|
/* enable thermal sensor with the correct compatible property set */
|
|
&thermal {
|
|
compatible = "brcm,bcm2836-thermal";
|
|
diff --git a/arch/arm/boot/dts/bcm283x.dtsi b/arch/arm/boot/dts/bcm283x.dtsi
|
|
index 561f27d8d922..86a5db53da8f 100644
|
|
--- a/arch/arm/boot/dts/bcm283x.dtsi
|
|
+++ b/arch/arm/boot/dts/bcm283x.dtsi
|
|
@@ -19,6 +19,26 @@
|
|
bootargs = "earlyprintk console=ttyAMA0";
|
|
};
|
|
|
|
+ thermal-zones {
|
|
+ cpu_thermal: cpu-thermal {
|
|
+ polling-delay-passive = <0>;
|
|
+ polling-delay = <1000>;
|
|
+
|
|
+ thermal-sensors = <&thermal>;
|
|
+
|
|
+ trips {
|
|
+ cpu-crit {
|
|
+ temperature = <80000>;
|
|
+ hysteresis = <0>;
|
|
+ type = "critical";
|
|
+ };
|
|
+ };
|
|
+
|
|
+ cooling-maps {
|
|
+ };
|
|
+ };
|
|
+ };
|
|
+
|
|
soc {
|
|
compatible = "simple-bus";
|
|
#address-cells = <1>;
|
|
@@ -430,6 +450,7 @@
|
|
compatible = "brcm,bcm2835-thermal";
|
|
reg = <0x7e212000 0x8>;
|
|
clocks = <&clocks BCM2835_CLOCK_TSENS>;
|
|
+ #thermal-sensor-cells = <0>;
|
|
status = "disabled";
|
|
};
|
|
|
|
--
|
|
2.13.3
|
|
|
|
From 4ae6f954b96c1fea86c6f21ae8fc413f5fc3444e Mon Sep 17 00:00:00 2001
|
|
From: Stefan Wahren <stefan.wahren@i2se.com>
|
|
Date: Fri, 31 Mar 2017 20:03:05 +0000
|
|
Subject: [PATCH] ARM64: dts: bcm2837: Define CPU thermal coefficients
|
|
|
|
This defines the bcm2837 SoC specific thermal coefficients in
|
|
order to initialize the thermal driver correctly.
|
|
|
|
Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
|
|
Signed-off-by: Eric Anholt <eric@anholt.net>
|
|
Acked-by: Eduardo Valentin <edubezval@gmail.com>
|
|
---
|
|
arch/arm64/boot/dts/broadcom/bcm2837.dtsi | 4 ++++
|
|
1 file changed, 4 insertions(+)
|
|
|
|
diff --git a/arch/arm64/boot/dts/broadcom/bcm2837.dtsi b/arch/arm64/boot/dts/broadcom/bcm2837.dtsi
|
|
index 19f2fe620a21..2d5de6f0f78d 100644
|
|
--- a/arch/arm64/boot/dts/broadcom/bcm2837.dtsi
|
|
+++ b/arch/arm64/boot/dts/broadcom/bcm2837.dtsi
|
|
@@ -75,6 +75,10 @@
|
|
interrupts = <8>;
|
|
};
|
|
|
|
+&cpu_thermal {
|
|
+ coefficients = <(-538) 412000>;
|
|
+};
|
|
+
|
|
/* enable thermal sensor with the correct compatible property set */
|
|
&thermal {
|
|
compatible = "brcm,bcm2837-thermal";
|
|
--
|
|
2.13.3
|
|
|
|
From 1fe3854a83b580727c9464b37b62ba77ead1d6f6 Mon Sep 17 00:00:00 2001
|
|
From: Dan Carpenter <dan.carpenter@oracle.com>
|
|
Date: Wed, 14 Jun 2017 12:13:27 +0300
|
|
Subject: [PATCH] thermal: bcm2835: fix an error code in probe()
|
|
|
|
This causes a static checker because we're passing a valid pointer to
|
|
PTR_ERR(). "err" is already the correct error code, so we can just
|
|
delete this line.
|
|
|
|
Fixes: bcb7dd9ef206 ("thermal: bcm2835: add thermal driver for bcm2835 SoC")
|
|
Acked-by: Stefan Wahren <stefan.wahren@i2se.com>
|
|
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
|
|
Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
|
|
---
|
|
drivers/thermal/broadcom/bcm2835_thermal.c | 1 -
|
|
1 file changed, 1 deletion(-)
|
|
|
|
diff --git a/drivers/thermal/broadcom/bcm2835_thermal.c b/drivers/thermal/broadcom/bcm2835_thermal.c
|
|
index 0ecf80890c84..e6863c841662 100644
|
|
--- a/drivers/thermal/broadcom/bcm2835_thermal.c
|
|
+++ b/drivers/thermal/broadcom/bcm2835_thermal.c
|
|
@@ -245,7 +245,6 @@ static int bcm2835_thermal_probe(struct platform_device *pdev)
|
|
*/
|
|
err = tz->ops->get_trip_temp(tz, 0, &trip_temp);
|
|
if (err < 0) {
|
|
- err = PTR_ERR(tz);
|
|
dev_err(&pdev->dev,
|
|
"Not able to read trip_temp: %d\n",
|
|
err);
|
|
--
|
|
2.13.3
|
|
|
|
From e3bdc8d7623d5875403ad40443e7b049ae200fcd Mon Sep 17 00:00:00 2001
|
|
From: Arvind Yadav <arvind.yadav.cs@gmail.com>
|
|
Date: Tue, 6 Jun 2017 15:12:37 +0530
|
|
Subject: [PATCH] thermal: imx: Handle return value of clk_prepare_enable
|
|
|
|
clk_prepare_enable() can fail here and we must check its return value.
|
|
|
|
Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com>
|
|
Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
|
|
---
|
|
drivers/thermal/imx_thermal.c | 5 ++++-
|
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/drivers/thermal/imx_thermal.c b/drivers/thermal/imx_thermal.c
|
|
index f7ec39f46ee4..4798b4b1fd77 100644
|
|
--- a/drivers/thermal/imx_thermal.c
|
|
+++ b/drivers/thermal/imx_thermal.c
|
|
@@ -660,8 +660,11 @@ static int imx_thermal_resume(struct device *dev)
|
|
{
|
|
struct imx_thermal_data *data = dev_get_drvdata(dev);
|
|
struct regmap *map = data->tempmon;
|
|
+ int ret;
|
|
|
|
- clk_prepare_enable(data->thermal_clk);
|
|
+ ret = clk_prepare_enable(data->thermal_clk);
|
|
+ if (ret)
|
|
+ return ret;
|
|
/* Enabled thermal sensor after resume */
|
|
regmap_write(map, TEMPSENSE0 + REG_CLR, TEMPSENSE0_POWER_DOWN);
|
|
regmap_write(map, TEMPSENSE0 + REG_SET, TEMPSENSE0_MEASURE_TEMP);
|
|
--
|
|
2.13.3
|
|
|
|
From 919054fdfc8adf58c5512fe9872eb53ea0f5525d Mon Sep 17 00:00:00 2001
|
|
From: Arvind Yadav <arvind.yadav.cs@gmail.com>
|
|
Date: Tue, 6 Jun 2017 15:04:46 +0530
|
|
Subject: [PATCH] thermal: hisilicon: Handle return value of clk_prepare_enable
|
|
|
|
clk_prepare_enable() can fail here and we must check its return value.
|
|
|
|
Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com>
|
|
Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
|
|
---
|
|
drivers/thermal/hisi_thermal.c | 5 ++++-
|
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/drivers/thermal/hisi_thermal.c b/drivers/thermal/hisi_thermal.c
|
|
index f6429666a1cf..9c3ce341eb97 100644
|
|
--- a/drivers/thermal/hisi_thermal.c
|
|
+++ b/drivers/thermal/hisi_thermal.c
|
|
@@ -397,8 +397,11 @@ static int hisi_thermal_suspend(struct device *dev)
|
|
static int hisi_thermal_resume(struct device *dev)
|
|
{
|
|
struct hisi_thermal_data *data = dev_get_drvdata(dev);
|
|
+ int ret;
|
|
|
|
- clk_prepare_enable(data->clk);
|
|
+ ret = clk_prepare_enable(data->clk);
|
|
+ if (ret)
|
|
+ return ret;
|
|
|
|
data->irq_enabled = true;
|
|
hisi_thermal_enable_bind_irq_sensor(data);
|
|
--
|
|
2.13.3
|
|
|