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