| #!/bin/bash |
| |
| # Provide source directive to shellcheck. |
| # shellcheck source=meta-facebook/recipes-phosphor/state/phosphor-state-manager/greatlakes/power-cmd |
| source /usr/libexec/power-cmd |
| |
| POWER_OK_SLOT=$(( $1+9 )) |
| slot=$(( $1-1 )) |
| OFFSET=$(( 0x9 + slot )) |
| |
| # Server 12v power off |
| chassis-power-off() |
| { |
| result=$(i2cset -y $BUS_NUM $CPLD_PWR_CTRL_ADDR $OFFSET $POW_OFF_SLOT) |
| echo "$result" |
| sleep 1 |
| chassis_status=$(gpioget 0 $POWER_OK_SLOT) |
| if [ "$chassis_status" == 0 ] |
| then |
| echo "Chassis is power off" |
| else |
| echo "Chassis is already off" |
| exit 1; |
| fi |
| } |
| chassis-power-gpio-status() |
| { |
| if [ "$slot" -le 4 ] |
| then |
| status=$(gpioget 0 $POWER_OK_SLOT) |
| if [ "$status" == 1 ] |
| then |
| chassis-power-off |
| exit 0; |
| else |
| echo "Chassis is already off" |
| exit 1; |
| fi |
| fi |
| echo "Invalid slot id" |
| exit 1; |
| } |
| chassis-power-gpio-status |