1*4882a593Smuzhiyun* ZTE zx2967 family Thermal 2*4882a593Smuzhiyun 3*4882a593SmuzhiyunRequired Properties: 4*4882a593Smuzhiyun- compatible: should be one of the following. 5*4882a593Smuzhiyun * zte,zx296718-thermal 6*4882a593Smuzhiyun- reg: physical base address of the controller and length of memory mapped 7*4882a593Smuzhiyun region. 8*4882a593Smuzhiyun- clocks : Pairs of phandle and specifier referencing the controller's clocks. 9*4882a593Smuzhiyun- clock-names: "topcrm" for the topcrm clock. 10*4882a593Smuzhiyun "apb" for the apb clock. 11*4882a593Smuzhiyun- #thermal-sensor-cells: must be 0. 12*4882a593Smuzhiyun 13*4882a593SmuzhiyunPlease note: slope coefficient defined in thermal-zones section need to be 14*4882a593Smuzhiyunmultiplied by 1000. 15*4882a593Smuzhiyun 16*4882a593SmuzhiyunExample for tempsensor: 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun tempsensor: tempsensor@148a000 { 19*4882a593Smuzhiyun compatible = "zte,zx296718-thermal"; 20*4882a593Smuzhiyun reg = <0x0148a000 0x20>; 21*4882a593Smuzhiyun clocks = <&topcrm TEMPSENSOR_GATE>, <&audiocrm AUDIO_TS_PCLK>; 22*4882a593Smuzhiyun clock-names = "topcrm", "apb"; 23*4882a593Smuzhiyun #thermal-sensor-cells = <0>; 24*4882a593Smuzhiyun }; 25*4882a593Smuzhiyun 26*4882a593SmuzhiyunExample for cooling device: 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun cooling_dev: cooling_dev { 29*4882a593Smuzhiyun cluster0_cooling_dev: cluster0-cooling-dev { 30*4882a593Smuzhiyun #cooling-cells = <2>; 31*4882a593Smuzhiyun cpumask = <0xf>; 32*4882a593Smuzhiyun capacitance = <1500>; 33*4882a593Smuzhiyun }; 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun cluster1_cooling_dev: cluster1-cooling-dev { 36*4882a593Smuzhiyun #cooling-cells = <2>; 37*4882a593Smuzhiyun cpumask = <0x30>; 38*4882a593Smuzhiyun capacitance = <2000>; 39*4882a593Smuzhiyun }; 40*4882a593Smuzhiyun }; 41*4882a593Smuzhiyun 42*4882a593SmuzhiyunExample for thermal zones: 43*4882a593Smuzhiyun 44*4882a593Smuzhiyun thermal-zones { 45*4882a593Smuzhiyun zx296718_thermal: zx296718_thermal { 46*4882a593Smuzhiyun polling-delay-passive = <500>; 47*4882a593Smuzhiyun polling-delay = <1000>; 48*4882a593Smuzhiyun sustainable-power = <6500>; 49*4882a593Smuzhiyun 50*4882a593Smuzhiyun thermal-sensors = <&tempsensor 0>; 51*4882a593Smuzhiyun /* 52*4882a593Smuzhiyun * slope need to be multiplied by 1000. 53*4882a593Smuzhiyun */ 54*4882a593Smuzhiyun coefficients = <1951 (-922)>; 55*4882a593Smuzhiyun 56*4882a593Smuzhiyun trips { 57*4882a593Smuzhiyun trip0: switch_on_temperature { 58*4882a593Smuzhiyun temperature = <90000>; 59*4882a593Smuzhiyun hysteresis = <2000>; 60*4882a593Smuzhiyun type = "passive"; 61*4882a593Smuzhiyun }; 62*4882a593Smuzhiyun 63*4882a593Smuzhiyun trip1: desired_temperature { 64*4882a593Smuzhiyun temperature = <100000>; 65*4882a593Smuzhiyun hysteresis = <2000>; 66*4882a593Smuzhiyun type = "passive"; 67*4882a593Smuzhiyun }; 68*4882a593Smuzhiyun 69*4882a593Smuzhiyun crit: critical_temperature { 70*4882a593Smuzhiyun temperature = <110000>; 71*4882a593Smuzhiyun hysteresis = <2000>; 72*4882a593Smuzhiyun type = "critical"; 73*4882a593Smuzhiyun }; 74*4882a593Smuzhiyun }; 75*4882a593Smuzhiyun 76*4882a593Smuzhiyun cooling-maps { 77*4882a593Smuzhiyun map0 { 78*4882a593Smuzhiyun trip = <&trip0>; 79*4882a593Smuzhiyun cooling-device = <&gpu 2 5>; 80*4882a593Smuzhiyun }; 81*4882a593Smuzhiyun 82*4882a593Smuzhiyun map1 { 83*4882a593Smuzhiyun trip = <&trip0>; 84*4882a593Smuzhiyun cooling-device = <&cluster0_cooling_dev 1 2>; 85*4882a593Smuzhiyun }; 86*4882a593Smuzhiyun 87*4882a593Smuzhiyun map2 { 88*4882a593Smuzhiyun trip = <&trip1>; 89*4882a593Smuzhiyun cooling-device = <&cluster0_cooling_dev 1 2>; 90*4882a593Smuzhiyun }; 91*4882a593Smuzhiyun 92*4882a593Smuzhiyun map3 { 93*4882a593Smuzhiyun trip = <&crit>; 94*4882a593Smuzhiyun cooling-device = <&cluster0_cooling_dev 1 2>; 95*4882a593Smuzhiyun }; 96*4882a593Smuzhiyun 97*4882a593Smuzhiyun map4 { 98*4882a593Smuzhiyun trip = <&trip0>; 99*4882a593Smuzhiyun cooling-device = <&cluster1_cooling_dev 1 2>; 100*4882a593Smuzhiyun contribution = <9000>; 101*4882a593Smuzhiyun }; 102*4882a593Smuzhiyun 103*4882a593Smuzhiyun map5 { 104*4882a593Smuzhiyun trip = <&trip1>; 105*4882a593Smuzhiyun cooling-device = <&cluster1_cooling_dev 1 2>; 106*4882a593Smuzhiyun contribution = <4096>; 107*4882a593Smuzhiyun }; 108*4882a593Smuzhiyun 109*4882a593Smuzhiyun map6 { 110*4882a593Smuzhiyun trip = <&crit>; 111*4882a593Smuzhiyun cooling-device = <&cluster1_cooling_dev 1 2>; 112*4882a593Smuzhiyun contribution = <4096>; 113*4882a593Smuzhiyun }; 114*4882a593Smuzhiyun }; 115*4882a593Smuzhiyun }; 116*4882a593Smuzhiyun }; 117