wspoon: MAX31785revA fan controller workaround
The MAX31785revA specification does not match how it functions.
The MAX31785revA's functionality reports the rotor feedback speeds in a
slow/fast relationship instead of rotor positions, therefore the fan*_0
object will always represent the slowest rotor. In combination with how
the MAX31785revA latches its TACHSEL = 0 during a speed transition, it
made it difficult to fault isolate the rear rotor of a fan.
Using a combination of the fan monitor trust groups on all fan rotors
and enabling a delay timer to determine when a fan rotor becomes
functional, fan monitor is able to correctly reflect each fan rotor and
fan enclosure's functional state in inventory.
Fan faults are unable to be monitored on all fans when transitioning to
a target speed.
Tested:
Each fan rotor's functional state is updated when blocked
Correct amount of time to mark a fan nonfunctional is still honored
A fan is functional after remaining in spec for 5 seconds
Resolves openbmc/openbmc#2798
Change-Id: I834d63f6082eae4cb03ec501f0fb8272a9f5b673
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
1 file changed