Documentation / devicetree / bindings / thermal / zx2967-thermal.txt


Based on kernel version 5.11. Page generated on 2021-02-15 21:59 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
* ZTE zx2967 family Thermal

Required Properties:
- compatible: should be one of the following.
    * zte,zx296718-thermal
- reg: physical base address of the controller and length of memory mapped
    region.
- clocks : Pairs of phandle and specifier referencing the controller's clocks.
- clock-names: "topcrm" for the topcrm clock.
	       "apb" for the apb clock.
- #thermal-sensor-cells: must be 0.

Please note: slope coefficient defined in thermal-zones section need to be
multiplied by 1000.

Example for tempsensor:

	tempsensor: tempsensor@148a000 {
		compatible = "zte,zx296718-thermal";
		reg = <0x0148a000 0x20>;
		clocks = <&topcrm TEMPSENSOR_GATE>, <&audiocrm AUDIO_TS_PCLK>;
		clock-names = "topcrm", "apb";
		#thermal-sensor-cells = <0>;
	};

Example for cooling device:

	cooling_dev: cooling_dev {
		cluster0_cooling_dev: cluster0-cooling-dev {
			#cooling-cells = <2>;
			cpumask = <0xf>;
			capacitance = <1500>;
		};

	cluster1_cooling_dev: cluster1-cooling-dev {
			#cooling-cells = <2>;
			cpumask = <0x30>;
			capacitance = <2000>;
		};
	};

Example for thermal zones:

	thermal-zones {
		zx296718_thermal: zx296718_thermal {
			polling-delay-passive = <500>;
			polling-delay = <1000>;
			sustainable-power = <6500>;

			thermal-sensors = <&tempsensor 0>;
			/*
			 * slope need to be multiplied by 1000.
			 */
			coefficients = <1951 (-922)>;

			trips {
				trip0: switch_on_temperature {
					temperature = <90000>;
					hysteresis = <2000>;
					type = "passive";
				};

				trip1: desired_temperature {
					temperature = <100000>;
					hysteresis = <2000>;
					type = "passive";
				};

				crit: critical_temperature {
					temperature = <110000>;
					hysteresis = <2000>;
					type = "critical";
				};
			};

			cooling-maps {
				map0 {
					trip = <&trip0>;
					cooling-device = <&gpu 2 5>;
				};

				map1 {
					trip = <&trip0>;
					cooling-device = <&cluster0_cooling_dev 1 2>;
				};

				map2 {
					trip = <&trip1>;
					cooling-device = <&cluster0_cooling_dev 1 2>;
				};

				map3 {
					trip = <&crit>;
					cooling-device = <&cluster0_cooling_dev 1 2>;
				};

				map4 {
					trip = <&trip0>;
					cooling-device = <&cluster1_cooling_dev 1 2>;
					contribution = <9000>;
				};

				map5 {
					trip = <&trip1>;
					cooling-device = <&cluster1_cooling_dev 1 2>;
					contribution = <4096>;
				};

				map6 {
					trip = <&crit>;
					cooling-device = <&cluster1_cooling_dev 1 2>;
					contribution = <4096>;
				};
			};
		};
	};