summaryrefslogtreecommitdiff
path: root/meta-facebook/recipes-phosphor/state/phosphor-state-manager/greatlakes/chassis-poweroff
blob: 2bdf49192a4ce34f8e02966b0680b670f427675e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/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