blob: 08b1e30c6b321442eed5cae5ec595a78b394a05e [file] [log] [blame]
#!/bin/bash
# Provide source directive to shellcheck.
# shellcheck source=meta-facebook/recipes-phosphor/state/phosphor-state-manager/greatlakes/power-cmd
source /usr/libexec/phosphor-state-manager/power-cmd
CHASSIS_ID=$1
SLOT=$(( $1-1 ))
OFFSET=$(( 0x9 + SLOT ))
# Server 12v power on
chassis-power-on()
{
result=$(i2cset -y "$CPLD_BUS_NUM" "$CPLD_PWR_CTRL_ADDR" "$OFFSET" "$POW_ON_SLOT")
echo "$result"
sleep 1
# Check chassis stattus after doing 12V on
chassis_status=$(chassis-power-status $SLOT)
if [ "$chassis_status" == "$STATE_ON" ]
then
busctl set-property "$CHASSIS_BUS_NAME""$CHASSIS_ID" "$CHASSIS_OBJ_PATH""$CHASSIS_ID" "$CHASSIS_INTF_NAME" "$CHASSIS_PROPERTY_NAME" s "$CHASSIS_ON"
echo "Chassis is power on"
else
busctl set-property "$CHASSIS_BUS_NAME""$CHASSIS_ID" "$CHASSIS_OBJ_PATH""$CHASSIS_ID" "$CHASSIS_INTF_NAME" "$CHASSIS_PROPERTY_NAME" s "$CHASSIS_OFF"
echo "Chassis is power off"
exit 0;
fi
}
chassis_status=$(chassis-power-status $SLOT)
if [ "$chassis_status" == "$STATE_UNKNOWN" ]
then
echo "Invalid slot id"
exit 1;
elif [ "$chassis_status" == "$STATE_OFF" ]
then
chassis-power-on
exit 0;
else
echo "Chassis is already on"
exit 0;
fi