aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/devicetree/bindings/thermal/qoriq-thermal.txt7
-rw-r--r--Documentation/devicetree/bindings/thermal/rcar-gen3-thermal.txt56
-rw-r--r--Documentation/devicetree/bindings/thermal/zx2967-thermal.txt116
-rw-r--r--arch/powerpc/boot/dts/fsl/t1023si-post.dtsi4
-rw-r--r--arch/powerpc/boot/dts/fsl/t1040si-post.dtsi4
-rw-r--r--drivers/thermal/Kconfig17
-rw-r--r--drivers/thermal/Makefile2
-rw-r--r--drivers/thermal/clock_cooling.c50
-rw-r--r--drivers/thermal/cpu_cooling.c102
-rw-r--r--drivers/thermal/devfreq_cooling.c53
-rw-r--r--drivers/thermal/imx_thermal.c4
-rw-r--r--drivers/thermal/intel_powerclamp.c4
-rw-r--r--drivers/thermal/mtk_thermal.c16
-rw-r--r--drivers/thermal/rcar_gen3_thermal.c335
-rw-r--r--drivers/thermal/samsung/exynos_tmu.c1
-rw-r--r--drivers/thermal/samsung/exynos_tmu.h1
-rw-r--r--drivers/thermal/thermal_core.c75
-rw-r--r--drivers/thermal/ti-soc-thermal/Kconfig1
-rw-r--r--drivers/thermal/ti-soc-thermal/dra752-bandgap.h19
-rw-r--r--drivers/thermal/ti-soc-thermal/dra752-thermal-data.c28
-rw-r--r--drivers/thermal/zx2967_thermal.c258
-rw-r--r--include/linux/thermal.h4
22 files changed, 890 insertions, 267 deletions
diff --git a/Documentation/devicetree/bindings/thermal/qoriq-thermal.txt b/Documentation/devicetree/bindings/thermal/qoriq-thermal.txt
index 66223d561972..20ca4ef9d776 100644
--- a/Documentation/devicetree/bindings/thermal/qoriq-thermal.txt
+++ b/Documentation/devicetree/bindings/thermal/qoriq-thermal.txt
@@ -17,6 +17,12 @@ Required properties:
17 calibration data, as specified by the SoC reference manual. 17 calibration data, as specified by the SoC reference manual.
18 The first cell of each pair is the value to be written to TTCFGR, 18 The first cell of each pair is the value to be written to TTCFGR,
19 and the second is the value to be written to TSCFGR. 19 and the second is the value to be written to TSCFGR.
20- #thermal-sensor-cells : Must be 1. The sensor specifier is the monitoring
21 site ID, and represents the "n" in TRITSRn and TRATSRn.
22
23Optional property:
24- little-endian : If present, the TMU registers are little endian. If absent,
25 the default is big endian.
20 26
21Example: 27Example:
22 28
@@ -60,4 +66,5 @@ tmu@f0000 {
60 66
61 0x00030000 0x00000012 67 0x00030000 0x00000012
62 0x00030001 0x0000001d>; 68 0x00030001 0x0000001d>;
69 #thermal-sensor-cells = <1>;
63}; 70};
diff --git a/Documentation/devicetree/bindings/thermal/rcar-gen3-thermal.txt b/Documentation/devicetree/bindings/thermal/rcar-gen3-thermal.txt
new file mode 100644
index 000000000000..07a9713ae6a7
--- /dev/null
+++ b/Documentation/devicetree/bindings/thermal/rcar-gen3-thermal.txt
@@ -0,0 +1,56 @@
1* DT bindings for Renesas R-Car Gen3 Thermal Sensor driver
2
3On R-Car Gen3 SoCs, the thermal sensor controllers (TSC) control the thermal
4sensors (THS) which are the analog circuits for measuring temperature (Tj)
5inside the LSI.
6
7Required properties:
8- compatible : "renesas,<soctype>-thermal",
9 Examples with soctypes are:
10 - "renesas,r8a7795-thermal" (R-Car H3)
11 - "renesas,r8a7796-thermal" (R-Car M3-W)
12- reg : Address ranges of the thermal registers. Each sensor
13 needs one address range. Sorting must be done in
14 increasing order according to datasheet, i.e.
15 TSC1, TSC2, ...
16- clocks : Must contain a reference to the functional clock.
17- #thermal-sensor-cells : must be <1>.
18
19Optional properties:
20
21- interrupts : interrupts routed to the TSC (3 for H3 and M3-W)
22- power-domain : Must contain a reference to the power domain. This
23 property is mandatory if the thermal sensor instance
24 is part of a controllable power domain.
25
26Example:
27
28 tsc: thermal@e6198000 {
29 compatible = "renesas,r8a7795-thermal";
30 reg = <0 0xe6198000 0 0x68>,
31 <0 0xe61a0000 0 0x5c>,
32 <0 0xe61a8000 0 0x5c>;
33 interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>,
34 <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
35 <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
36 clocks = <&cpg CPG_MOD 522>;
37 power-domains = <&sysc R8A7795_PD_ALWAYS_ON>;
38 #thermal-sensor-cells = <1>;
39 status = "okay";
40 };
41
42 thermal-zones {
43 sensor_thermal1: sensor-thermal1 {
44 polling-delay-passive = <250>;
45 polling-delay = <1000>;
46 thermal-sensors = <&tsc 0>;
47
48 trips {
49 sensor1_crit: sensor1-crit {
50 temperature = <90000>;
51 hysteresis = <2000>;
52 type = "critical";
53 };
54 };
55 };
56 };
diff --git a/Documentation/devicetree/bindings/thermal/zx2967-thermal.txt b/Documentation/devicetree/bindings/thermal/zx2967-thermal.txt
new file mode 100644
index 000000000000..3dc1c6bf0478
--- /dev/null
+++ b/Documentation/devicetree/bindings/thermal/zx2967-thermal.txt
@@ -0,0 +1,116 @@
1* ZTE zx2967 family Thermal
2
3Required Properties:
4- compatible: should be one of the following.
5 * zte,zx296718-thermal
6- reg: physical base address of the controller and length of memory mapped
7 region.
8- clocks : Pairs of phandle and specifier referencing the controller's clocks.
9- clock-names: "topcrm" for the topcrm clock.
10 "apb" for the apb clock.
11- #thermal-sensor-cells: must be 0.
12
13Please note: slope coefficient defined in thermal-zones section need to be
14multiplied by 1000.
15
16Example for tempsensor:
17
18 tempsensor: tempsensor@148a000 {
19 compatible = "zte,zx296718-thermal";
20 reg = <0x0148a000 0x20>;
21 clocks = <&topcrm TEMPSENSOR_GATE>, <&audiocrm AUDIO_TS_PCLK>;
22 clock-names = "topcrm", "apb";
23 #thermal-sensor-cells = <0>;
24 };
25
26Example for cooling device:
27
28 cooling_dev: cooling_dev {
29 cluster0_cooling_dev: cluster0-cooling-dev {
30 #cooling-cells = <2>;
31 cpumask = <0xf>;
32 capacitance = <1500>;
33 };
34
35 cluster1_cooling_dev: cluster1-cooling-dev {
36 #cooling-cells = <2>;
37 cpumask = <0x30>;
38 capacitance = <2000>;
39 };
40 };
41
42Example for thermal zones:
43
44 thermal-zones {
45 zx296718_thermal: zx296718_thermal {
46 polling-delay-passive = <500>;
47 polling-delay = <1000>;
48 sustainable-power = <6500>;
49
50 thermal-sensors = <&tempsensor 0>;
51 /*
52 * slope need to be multiplied by 1000.
53 */
54 coefficients = <1951 (-922)>;
55
56 trips {
57 trip0: switch_on_temperature {
58 temperature = <90000>;
59 hysteresis = <2000>;
60 type = "passive";
61 };
62
63 trip1: desired_temperature {
64 temperature = <100000>;
65 hysteresis = <2000>;
66 type = "passive";
67 };
68
69 crit: critical_temperature {
70 temperature = <110000>;
71 hysteresis = <2000>;
72 type = "critical";
73 };
74