Linux-libre 5.4.47-gnu
[librecmc/linux-libre.git] / Documentation / devicetree / bindings / hwmon / pwm-fan.txt
1 Bindings for a fan connected to the PWM lines
2
3 Required properties:
4 - compatible    : "pwm-fan"
5 - pwms          : the PWM that is used to control the PWM fan
6 - cooling-levels      : PWM duty cycle values in a range from 0 to 255
7                         which correspond to thermal cooling states
8
9 Optional properties:
10 - fan-supply            : phandle to the regulator that provides power to the fan
11 - interrupts            : This contains a single interrupt specifier which
12                           describes the tachometer output of the fan as an
13                           interrupt source. The output signal must generate a
14                           defined number of interrupts per fan revolution, which
15                           require that it must be self resetting edge interrupts.
16                           See interrupt-controller/interrupts.txt for the format.
17 - pulses-per-revolution : define the tachometer pulses per fan revolution as
18                           an integer (default is 2 interrupts per revolution).
19                           The value must be greater than zero.
20
21 Example:
22         fan0: pwm-fan {
23                 compatible = "pwm-fan";
24                 #cooling-cells = <2>;
25                 pwms = <&pwm 0 10000 0>;
26                 cooling-levels = <0 102 170 230>;
27         };
28
29         thermal-zones {
30                 cpu_thermal: cpu-thermal {
31                              thermal-sensors = <&tmu 0>;
32                              polling-delay-passive = <0>;
33                              polling-delay = <0>;
34                              trips {
35                                         cpu_alert1: cpu-alert1 {
36                                                     temperature = <100000>; /* millicelsius */
37                                                     hysteresis = <2000>; /* millicelsius */
38                                                     type = "passive";
39                                         };
40                              };
41                              cooling-maps {
42                                         map0 {
43                                                     trip = <&cpu_alert1>;
44                                                     cooling-device = <&fan0 0 1>;
45                                         };
46                              };
47                 };
48
49 Example 2:
50         fan0: pwm-fan {
51                 compatible = "pwm-fan";
52                 pwms = <&pwm 0 40000 0>;
53                 fan-supply = <&reg_fan>;
54                 interrupt-parent = <&gpio5>;
55                 interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
56                 pulses-per-revolution = <2>;
57         };