blob: a84cc3a4cfdcaff6e31f961e50a7643ccc8c084a (
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
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
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/hwmon/pwm-fan.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Fan connected to PWM lines
maintainers:
- Jean Delvare <jdelvare@suse.com>
- Guenter Roeck <linux@roeck-us.net>
properties:
compatible:
const: pwm-fan
cooling-levels:
description: PWM duty cycle values corresponding to thermal cooling states.
$ref: /schemas/types.yaml#/definitions/uint32-array
items:
maximum: 255
fan-supply:
description: Phandle to the regulator that provides power to the fan.
interrupts:
description:
This contains an interrupt specifier for each fan tachometer output
connected to 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.
maxItems: 1
fan-shutdown-percent:
description:
Fan RPM in percent set during shutdown. This is used to keep the fan
running at fixed RPM after the kernel shut down, which is useful on
hardware that does keep heating itself even after the kernel did shut
down, for example from some sort of management core.
minimum: 0
maximum: 100
fan-stop-to-start-percent:
description:
Minimum fan RPM in percent to start when stopped.
minimum: 0
maximum: 100
fan-stop-to-start-us:
description:
Time to wait in microseconds after start when stopped.
pulses-per-revolution:
description:
Define the number of pulses per fan revolution for each tachometer
input as an integer.
$ref: /schemas/types.yaml#/definitions/uint32
minimum: 1
maximum: 4
default: 2
pwms:
description: The PWM that is used to control the fan.
maxItems: 1
"#cooling-cells": true
required:
- compatible
- pwms
additionalProperties: false
examples:
- |
pwm-fan {
compatible = "pwm-fan";
cooling-levels = <0 102 170 230>;
pwms = <&pwm 0 10000 0>;
#cooling-cells = <2>;
};
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>;
};
};
};
};
- |
#include <dt-bindings/interrupt-controller/irq.h>
pwm-fan {
compatible = "pwm-fan";
pwms = <&pwm 0 40000 0>;
fan-supply = <®_fan>;
interrupt-parent = <&gpio5>;
interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
pulses-per-revolution = <2>;
};
|