xref: /OK3568_Linux_fs/kernel/Documentation/admin-guide/acpi/fan_performance_states.rst (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun.. SPDX-License-Identifier: GPL-2.0
2*4882a593Smuzhiyun
3*4882a593Smuzhiyun===========================
4*4882a593SmuzhiyunACPI Fan Performance States
5*4882a593Smuzhiyun===========================
6*4882a593Smuzhiyun
7*4882a593SmuzhiyunWhen the optional _FPS object is present under an ACPI device representing a
8*4882a593Smuzhiyunfan (for example, PNP0C0B or INT3404), the ACPI fan driver creates additional
9*4882a593Smuzhiyun"state*" attributes in the sysfs directory of the ACPI device in question.
10*4882a593SmuzhiyunThese attributes list properties of fan performance states.
11*4882a593Smuzhiyun
12*4882a593SmuzhiyunFor more information on _FPS refer to the ACPI specification at:
13*4882a593Smuzhiyun
14*4882a593Smuzhiyunhttp://uefi.org/specifications
15*4882a593Smuzhiyun
16*4882a593SmuzhiyunFor instance, the contents of the INT3404 ACPI device sysfs directory
17*4882a593Smuzhiyunmay look as follows::
18*4882a593Smuzhiyun
19*4882a593Smuzhiyun $ ls -l /sys/bus/acpi/devices/INT3404:00/
20*4882a593Smuzhiyun total 0
21*4882a593Smuzhiyun ...
22*4882a593Smuzhiyun -r--r--r-- 1 root root 4096 Dec 13 20:38 state0
23*4882a593Smuzhiyun -r--r--r-- 1 root root 4096 Dec 13 20:38 state1
24*4882a593Smuzhiyun -r--r--r-- 1 root root 4096 Dec 13 20:38 state10
25*4882a593Smuzhiyun -r--r--r-- 1 root root 4096 Dec 13 20:38 state11
26*4882a593Smuzhiyun -r--r--r-- 1 root root 4096 Dec 13 20:38 state2
27*4882a593Smuzhiyun -r--r--r-- 1 root root 4096 Dec 13 20:38 state3
28*4882a593Smuzhiyun -r--r--r-- 1 root root 4096 Dec 13 20:38 state4
29*4882a593Smuzhiyun -r--r--r-- 1 root root 4096 Dec 13 20:38 state5
30*4882a593Smuzhiyun -r--r--r-- 1 root root 4096 Dec 13 20:38 state6
31*4882a593Smuzhiyun -r--r--r-- 1 root root 4096 Dec 13 20:38 state7
32*4882a593Smuzhiyun -r--r--r-- 1 root root 4096 Dec 13 20:38 state8
33*4882a593Smuzhiyun -r--r--r-- 1 root root 4096 Dec 13 20:38 state9
34*4882a593Smuzhiyun -r--r--r-- 1 root root 4096 Dec 13 01:00 status
35*4882a593Smuzhiyun ...
36*4882a593Smuzhiyun
37*4882a593Smuzhiyunwhere each of the "state*" files represents one performance state of the fan
38*4882a593Smuzhiyunand contains a colon-separated list of 5 integer numbers (fields) with the
39*4882a593Smuzhiyunfollowing interpretation::
40*4882a593Smuzhiyun
41*4882a593Smuzhiyun  control_percent:trip_point_index:speed_rpm:noise_level_mdb:power_mw
42*4882a593Smuzhiyun
43*4882a593Smuzhiyun* ``control_percent``: The percent value to be used to set the fan speed to a
44*4882a593Smuzhiyun  specific level using the _FSL object (0-100).
45*4882a593Smuzhiyun
46*4882a593Smuzhiyun* ``trip_point_index``: The active cooling trip point number that corresponds
47*4882a593Smuzhiyun  to this performance state (0-9).
48*4882a593Smuzhiyun
49*4882a593Smuzhiyun* ``speed_rpm``: Speed of the fan in rotations per minute.
50*4882a593Smuzhiyun
51*4882a593Smuzhiyun* ``noise_level_mdb``: Audible noise emitted by the fan in this state in
52*4882a593Smuzhiyun  millidecibels.
53*4882a593Smuzhiyun
54*4882a593Smuzhiyun* ``power_mw``: Power draw of the fan in this state in milliwatts.
55*4882a593Smuzhiyun
56*4882a593SmuzhiyunFor example::
57*4882a593Smuzhiyun
58*4882a593Smuzhiyun $cat /sys/bus/acpi/devices/INT3404:00/state1
59*4882a593Smuzhiyun 25:0:3200:12500:1250
60*4882a593Smuzhiyun
61*4882a593SmuzhiyunWhen a given field is not populated or its value provided by the platform
62*4882a593Smuzhiyunfirmware is invalid, the "not-defined" string is shown instead of the value.
63