summaryrefslogtreecommitdiff
path: root/meta-facebook/recipes-phosphor/state/phosphor-state-manager/greatlakes/chassis-powercycle
blob: 6ae8c12823b649f6d3f0d8fa4f21050b2c9ce6d3 (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
#!/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 ))

chassis-power-gpio-status()
{
    POWER_OK_SLOT=$(( $1+9 ))
    if [ "$1" -le 4  ]
    then
        status=$(gpioget 0 $POWER_OK_SLOT)
        if [ "$status" == 1 ]
        then
            i2cset -y $BUS_NUM $CPLD_PWR_CTRL_ADDR $OFFSET $POW_OFF_SLOT
            sleep 10
	fi
        i2cset -y $BUS_NUM $CPLD_PWR_CTRL_ADDR $OFFSET $POW_ON_SLOT
        exit 0;
    fi
    echo "invalid slot id"
    exit 1;
}

chassisid=$1
if [ "$chassisid" == 0 ]
then
    echo "Enter SLED-cycle"
    result=$(i2cset -y $BUS_NUM $CPLD_PWR_CTRL_ADDR 0x2b 0x1)
    echo "$result"
else
    echo "Enter slot$1 cycle"
    chassis-power-gpio-status "$chassisid"
fi