summaryrefslogtreecommitdiff
path: root/Documentation/devicetree/bindings/hwmon/pwm-fan.txt
blob: 6ced829b0e588532a397f80b732a5abe938fd0a8 (plain)
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
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.

Example:
	fan0: pwm-fan {
		compatible = "pwm-fan";
		cooling-min-state = <0>;
		cooling-max-state = <3>;
		#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>;
	};