hc
2023-10-25 6c2073b7aa40e29d0eca7d571dd7bc590c7ecaa7
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>;
               };
           };
       };
   };