Update the delay from state=1 to powerOn=true
Increasing the power on delay timer from 1 second to 2 seconds, rounding
up from the 1250ms that should be the max from BMC_POWER_UP to DC_GOOD.
Resolves: openbmc/openbmc#2439
Change-Id: I90f363d31514c38efec8b3594ba705aea7ccb2bc
Signed-off-by: Brandon Wyman <bjwyman@gmail.com>
diff --git a/power-supply/main.cpp b/power-supply/main.cpp
index 33729d8..2aa7a7e 100644
--- a/power-supply/main.cpp
+++ b/power-supply/main.cpp
@@ -75,8 +75,16 @@
auto objname = "power_supply" + instnum;
auto instance = std::stoul(instnum);
- // The Witherspoon power supply can delay DC_GOOD active for 1 second.
- std::chrono::seconds powerOnDelay(1);
+ // The state changes from 0 to 1 when the BMC_POWER_UP line to the power
+ // sequencer is asserted. It can take 50ms for the sequencer to assert the
+ // ENABLE# line that goes to the power supplies. The Witherspoon power
+ // supply can take a max of 100ms from ENABLE# asserted to 12V in spec.
+ // Once 12V in spec., the power supply will nominally take 1 second to
+ // assert DC_GOOD (and update POWER_GOOD Negated), +/1 100ms. That would
+ // give us a 1250ms delay from state=1 to checking STATUS_WORD, however,
+ // the sysfs files will only be updated by the ibm-cffps device driver once
+ // a second, so round up that delay to 2 seconds.
+ std::chrono::seconds powerOnDelay(2);
auto psuDevice = std::make_unique<psu::PowerSupply>(objname,
std::move(instance),
std::move(objpath),