hc
2024-10-12 a5969cabbb4660eab42b6ef0412cbbd1200cf14d
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
Bindings for a fan connected to the PWM lines
 
Required properties:
- compatible    : "pwm-fan"
- pwms        : the PWM that is used to control the PWM fan
- cooling-levels      : PWM duty cycle values in a range from 0 to 255
           which correspond to thermal cooling states
 
Optional properties:
- fan-supply        : phandle to the regulator that provides power to the fan
- interrupts        : This contains a single interrupt specifier which
             describes the tachometer output of the fan as an
             interrupt source. The output signal must generate a
             defined number of interrupts per fan revolution, which
             require that it must be self resetting edge interrupts.
             See interrupt-controller/interrupts.txt for the format.
- pulses-per-revolution : define the tachometer pulses per fan revolution as
             an integer (default is 2 interrupts per revolution).
             The value must be greater than zero.
- rockchip,temp-trips    : The property is an array of 2-tuples items, and
             each item consists of temperature in millicelsius and
             pwm cooling state. This depends on CONFIG_ROCKCHIP_SYSTEM_MONITOR.
             If add the property the fan cooling state will be changed
             by system monitor. Otherwise, use the default thermal governor.
 
Example:
   fan0: pwm-fan {
       compatible = "pwm-fan";
       #cooling-cells = <2>;
       pwms = <&pwm 0 10000 0>;
       cooling-levels = <0 102 170 230>;
   };
 
   thermal-zones {
       cpu_thermal: cpu-thermal {
                thermal-sensors = <&tmu 0>;
                polling-delay-passive = <0>;
                polling-delay = <0>;
                trips {
                   cpu_alert1: cpu-alert1 {
                           temperature = <100000>; /* millicelsius */
                           hysteresis = <2000>; /* millicelsius */
                           type = "passive";
                   };
                };
                cooling-maps {
                   map0 {
                           trip = <&cpu_alert1>;
                           cooling-device = <&fan0 0 1>;
                   };
                };
       };
 
Example 2:
   fan0: pwm-fan {
       compatible = "pwm-fan";
       pwms = <&pwm 0 40000 0>;
       fan-supply = <&reg_fan>;
       interrupt-parent = <&gpio5>;
       interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
       pulses-per-revolution = <2>;
   };