xref: /openbmc/openbmc/meta-facebook/meta-harma/recipes-phosphor/state/phosphor-state-manager/power-cmd (revision f079ad7e47d674943dc841bd3f5a81887b2ad092)
1#!/bin/bash
2
3# shellcheck source=meta-facebook/recipes-fb/obmc_functions/files/fb-common-functions
4source /usr/libexec/fb-common-functions
5
6# Power Good Status
7power_status() {
8    if [ "$(get_gpio "power-cpu-good")" -eq 1 ]; then
9        echo "on"
10    else
11        echo "off"
12    fi
13}
14
15# DC off
16power_off() {
17    if [ "$(power_status)" == "on" ]; then
18        echo "Set Host Power Off"
19        set_gpio power-host-control 0
20        sleep 6
21        set_gpio power-host-control 1
22        sleep 1
23    fi
24}
25
26# DC on
27power_on() {
28    if [ "$(power_status)" == "off" ]; then
29        set_gpio power-host-control 0
30        sleep 1
31        set_gpio power-host-control 1
32        sleep 1
33    fi
34
35    for i in $(seq 1 10)
36    do
37        if [ "$(power_status)" == "on" ]; then
38
39           echo "Set Host Power On"
40           return 0
41        fi
42
43        if [ "$i" -eq 10 ]; then
44           echo "Set Host Power On Fail"
45           return 1
46        fi
47    done
48}
49
50# Host reset
51power_reset() {
52    echo "Set Host Reset"
53    set_gpio reset-control 0
54    sleep 1
55    set_gpio reset-control 1
56    sleep 1
57}
58