summaryrefslogtreecommitdiff
path: root/meta-facebook/recipes-phosphor/state/phosphor-state-manager/greatlakes/chassis-powercycle
diff options
context:
space:
mode:
Diffstat (limited to 'meta-facebook/recipes-phosphor/state/phosphor-state-manager/greatlakes/chassis-powercycle')
-rw-r--r--meta-facebook/recipes-phosphor/state/phosphor-state-manager/greatlakes/chassis-powercycle39
1 files changed, 39 insertions, 0 deletions
diff --git a/meta-facebook/recipes-phosphor/state/phosphor-state-manager/greatlakes/chassis-powercycle b/meta-facebook/recipes-phosphor/state/phosphor-state-manager/greatlakes/chassis-powercycle
new file mode 100644
index 0000000000..6ae8c12823
--- /dev/null
+++ b/meta-facebook/recipes-phosphor/state/phosphor-state-manager/greatlakes/chassis-powercycle
@@ -0,0 +1,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
+