181046ed2SPeter Shen#!/bin/bash
281046ed2SPeter Shen
381046ed2SPeter Shen# shellcheck source=meta-facebook/recipes-fb/obmc_functions/files/fb-common-functions
481046ed2SPeter Shensource /usr/libexec/fb-common-functions
581046ed2SPeter Shen# shellcheck source=meta-facebook/meta-anacapa/recipes-phosphor/state/phosphor-state-manager/power-cmd
681046ed2SPeter Shensource /usr/libexec/phosphor-state-manager/power-cmd
781046ed2SPeter Shen
8*6fc6377cSColin Huang# when host power on, bind pca9546 on bridge L/R board
9*6fc6377cSColin Huangbind_i2c_device pca954x 0-0070 3
10*6fc6377cSColin Huangbind_i2c_device pca954x 1-0070 3
1181046ed2SPeter Shen
1281046ed2SPeter Shencurrentstate=$(busctl get-property \
1381046ed2SPeter Shen    xyz.openbmc_project.State.Host0 \
1481046ed2SPeter Shen    /xyz/openbmc_project/state/host0 \
1581046ed2SPeter Shen    xyz.openbmc_project.State.Host \
1681046ed2SPeter Shen    CurrentHostState | awk '{print $2}' | tr -d '"')
1781046ed2SPeter Shen
1881046ed2SPeter Shenif [ "$currentstate" == "xyz.openbmc_project.State.Host.HostState.TransitioningToRunning" ]; then
1981046ed2SPeter Shen    exit 0
2081046ed2SPeter Shenfi
2181046ed2SPeter Shen
2281046ed2SPeter Shen
2381046ed2SPeter Shenactive=$(systemctl is-active host-poweron@0.service)
2481046ed2SPeter Shenif [ -z "$active" ] || [ "$active" != "inactive" ]; then
2581046ed2SPeter Shen    exit 0
2681046ed2SPeter Shenfi
2781046ed2SPeter Shen
2881046ed2SPeter Shenactive=$(systemctl is-active host-powerreset@0.service)
2981046ed2SPeter Shenif [ -z "$active" ] || [ "$active" != "inactive" ]; then
3081046ed2SPeter Shen    exit 0
3181046ed2SPeter Shenfi
3281046ed2SPeter Shen
3381046ed2SPeter Shen# Sync power status to "On" for abnormal power-on scenarios.
3481046ed2SPeter Shen
3581046ed2SPeter Shentransition=$(busctl get-property \
3681046ed2SPeter Shen    xyz.openbmc_project.State.Host0 \
3781046ed2SPeter Shen    /xyz/openbmc_project/state/host0 \
3881046ed2SPeter Shen    xyz.openbmc_project.State.Host \
3981046ed2SPeter Shen    RequestedHostTransition | awk '{print $2}' | tr -d '"')
4081046ed2SPeter Shen
4181046ed2SPeter Shenif [ "$transition" != "xyz.openbmc_project.State.Host.Transition.On" ] && [ "$(power_status)" == "on" ]; then
4281046ed2SPeter Shen    busctl set-property xyz.openbmc_project.State.Host0 \
4381046ed2SPeter Shen        /xyz/openbmc_project/state/host0 \
4481046ed2SPeter Shen        xyz.openbmc_project.State.Host \
4581046ed2SPeter Shen        RequestedHostTransition s \
4681046ed2SPeter Shen        xyz.openbmc_project.State.Host.Transition.On
4781046ed2SPeter Shenfi
4881046ed2SPeter Shen
4981046ed2SPeter Shen
5081046ed2SPeter Shenexit 0
51