xref: /openbmc/phosphor-power/phosphor-power-sequencer/docs/powering_off.md (revision 27ae70b8219cd292f3d8d9b3d5ff2a9ee18b1f37)
1*27ae70b8SShawn McCarney# Powering Off
2*27ae70b8SShawn McCarney
3*27ae70b8SShawn McCarney## Initiating a power off
4*27ae70b8SShawn McCarney
5*27ae70b8SShawn McCarneyThe system can be powered off by several methods, such as the `obmcutil` tool, a
6*27ae70b8SShawn McCarneyRedfish command, or a power button on the system enclosure.
7*27ae70b8SShawn McCarney
8*27ae70b8SShawn McCarneyWhichever method is used, it sets the `state` property to 0 on the
9*27ae70b8SShawn McCarney`org.openbmc.control.Power` D-Bus interface. The D-Bus object path is
10*27ae70b8SShawn McCarney`/org/openbmc/control/power0`, which represents the entire system. See
11*27ae70b8SShawn McCarney[Chassis Status](chassis_status.md) for more information.
12*27ae70b8SShawn McCarney
13*27ae70b8SShawn McCarneyThe `phosphor-power-sequencer` application only supports powering off the entire
14*27ae70b8SShawn McCarneysystem. In a multiple chassis system, `phosphor-power-sequencer` does not
15*27ae70b8SShawn McCarneysupport powering off individual chassis independent of the rest of the system.
16*27ae70b8SShawn McCarney
17*27ae70b8SShawn McCarney## Determining which chassis to power off
18*27ae70b8SShawn McCarney
19*27ae70b8SShawn McCarneyIn a single chassis system, `phosphor-power-sequencer` will always attempt to
20*27ae70b8SShawn McCarneypower off the chassis.
21*27ae70b8SShawn McCarney
22*27ae70b8SShawn McCarneyIn a multiple chassis system, `phosphor-power-sequencer` will only attempt to
23*27ae70b8SShawn McCarneypower off chassis with the proper status:
24*27ae70b8SShawn McCarney
25*27ae70b8SShawn McCarney- `Present` property is true
26*27ae70b8SShawn McCarney- `Available` property is true (if interface exists)
27*27ae70b8SShawn McCarney
28*27ae70b8SShawn McCarney`phosphor-power-sequencer` will set the `state` property to 0 for all chassis.
29*27ae70b8SShawn McCarney
30*27ae70b8SShawn McCarney`phosphor-power-sequencer` will set the `pgood` property to 0 for all chassis
31*27ae70b8SShawn McCarneywhere `Present` or `Available` are false.
32*27ae70b8SShawn McCarney
33*27ae70b8SShawn McCarneySee [Chassis Status](chassis_status.md) for more information on these
34*27ae70b8SShawn McCarneyproperties.
35*27ae70b8SShawn McCarney
36*27ae70b8SShawn McCarney## Powering off the voltage rails
37*27ae70b8SShawn McCarney
38*27ae70b8SShawn McCarney`phosphor-power-sequencer` powers off the main (non-standby) voltage rails in a
39*27ae70b8SShawn McCarneychassis by toggling a named GPIO to the power sequencer device in the chassis.
40*27ae70b8SShawn McCarneyFor more information, see [Named GPIOs](named_gpios.md).
41*27ae70b8SShawn McCarney
42*27ae70b8SShawn McCarneyIn each chassis being powered off, the power sequencer device powers off the
43*27ae70b8SShawn McCarneyindividual voltage rails in the correct order.
44*27ae70b8SShawn McCarney
45*27ae70b8SShawn McCarney## Determining when power off is complete
46*27ae70b8SShawn McCarney
47*27ae70b8SShawn McCarneyWhen the voltage rails have been powered off in a chassis, the power sequencer
48*27ae70b8SShawn McCarneydevice will set the chassis power good (pgood) signal to false.
49*27ae70b8SShawn McCarney
50*27ae70b8SShawn McCarney`phosphor-power-sequencer` reads the chassis pgood signal from a named GPIO. For
51*27ae70b8SShawn McCarneymore information, see
52*27ae70b8SShawn McCarney[Monitoring Chassis Power Good](monitoring_chassis_pgood.md).
53*27ae70b8SShawn McCarney
54*27ae70b8SShawn McCarneyWhen the chassis power good signal changes to false, `phosphor-power-sequencer`
55*27ae70b8SShawn McCarneywill set the `pgood` property to 0 on the `org.openbmc.control.Power` interface
56*27ae70b8SShawn McCarneyfor the **chassis** object path. The power off has finished for that chassis.
57*27ae70b8SShawn McCarney
58*27ae70b8SShawn McCarneyWhen all chassis that were being powered off have finished,
59*27ae70b8SShawn McCarney`phosphor-power-sequencer` will set the `pgood` property to 0 on the
60*27ae70b8SShawn McCarney`org.openbmc.control.Power` interface for the **system** object path.
61*27ae70b8SShawn McCarney
62*27ae70b8SShawn McCarneySee [Chassis Status](chassis_status.md) for more information on the `pgood`
63*27ae70b8SShawn McCarneyproperty.
64