xref: /openbmc/phosphor-fan-presence/docs/monitor/set_func_on_present.md (revision 6d3e18c0ba31a99f31ff053809918c2c4fa304b2)
1a3584bd2SMatt Spinler# set_func_on_present
2a3584bd2SMatt Spinler
3a3584bd2SMatt Spinler## Description
4a49e3f19SPatrick Williams
5cceffdd9SMatthew BarthImmediately set the fan FRU's contained rotors to functional when the fan's
6cceffdd9SMatthew Barthpresence has been detected and **only** allow the fan FRU to be set to
7cceffdd9SMatthew Barthfunctional when presence is detected. Using this configuration option
8cceffdd9SMatthew Barthessentially latches a nonfunctional fan FRU to nonfunctional until it has been
9cceffdd9SMatthew Barthreplaced (i.e. removed and replugged). It does still allow the functional state
10cceffdd9SMatthew Barthof the rotors to continue to be updated to reflect their current functional
11cceffdd9SMatthew Barthstate(s). After a fan's presence has been detected, any faults will be
12cceffdd9SMatthew Barthre-detected for that fan FRU and its contained rotors.
13cceffdd9SMatthew Barth
14cceffdd9SMatthew BarthThis attribute is optional and defaults to false, meaning a newly inserted fan
15cceffdd9SMatthew Barthwill need to spin up before being set back to functional, and if it never spins
16cceffdd9SMatthew Barthup, there won't be additional errors.
17a3584bd2SMatt Spinler
18a3584bd2SMatt Spinler## Attribute Value(s)
19a49e3f19SPatrick Williams
20a3584bd2SMatt Spinlerbool (default = false)
21a3584bd2SMatt Spinler
22a3584bd2SMatt Spinler## Example
23a49e3f19SPatrick Williams
24*6d3e18c0SGeorge Liu```json
25a3584bd2SMatt Spinler{
26a3584bd2SMatt Spinler  "fans": [
27a3584bd2SMatt Spinler    {
28a3584bd2SMatt Spinler      "inventory": "/system/chassis/motherboard/fan0",
29a3584bd2SMatt Spinler      "allowed_out_of_range_time": 30,
30a3584bd2SMatt Spinler      "functional_delay": 5,
31a3584bd2SMatt Spinler      "deviation": 15,
32a3584bd2SMatt Spinler      "num_sensors_nonfunc_for_fan_nonfunc": 1,
33a3584bd2SMatt Spinler      "monitor_start_delay": 30,
34a3584bd2SMatt Spinler      "fan_missing_error_delay": 20,
35a3584bd2SMatt Spinler      "nonfunc_rotor_error_delay": 0,
36*6d3e18c0SGeorge Liu      "set_func_on_present": true,
37a3584bd2SMatt Spinler      "sensors": [
38a3584bd2SMatt Spinler        {
39a3584bd2SMatt Spinler          "name": "fan0_0",
40a3584bd2SMatt Spinler          "has_target": true
41a3584bd2SMatt Spinler        },
42a3584bd2SMatt Spinler        {
43a3584bd2SMatt Spinler          "name": "fan0_1",
44a3584bd2SMatt Spinler          "has_target": false,
45a3584bd2SMatt Spinler          "factor": 1.45,
46a3584bd2SMatt Spinler          "offset": -909
47a3584bd2SMatt Spinler        }
48a3584bd2SMatt Spinler      ]
49a3584bd2SMatt Spinler    }
50a3584bd2SMatt Spinler  ]
51a3584bd2SMatt Spinler}
52*6d3e18c0SGeorge Liu```
53