diff options
author | Charles Boyer <Charles.Boyer@fii-usa.com> | 2021-10-30 00:39:16 +0300 |
---|---|---|
committer | Charles Boyer <Charles.Boyer@fii-usa.com> | 2021-11-11 19:08:16 +0300 |
commit | a3dc550e57470746a049356c99e3d6df0ed096c7 (patch) | |
tree | 48730d36df8ffd03c1a0322797410b4026c25482 /meta-fii | |
parent | 962fa6a37db32335fb6584fe1746c426544fd0b4 (diff) | |
download | openbmc-a3dc550e57470746a049356c99e3d6df0ed096c7.tar.xz |
meta-fii/meta-kudo: Add power button support
Adds support for Power On for power button press and Power Off when
holding the power button. This is a temporary and rudimentary method
to handle button presses. The intention is to eventually use
phosphor-buttons with Nuvoton support.
Signed-off-by: Charles Boyer <Charles.Boyer@fii-usa.com>
Change-Id: Iede64f89c716102a688880280c11ff7f3068021b
Diffstat (limited to 'meta-fii')
-rw-r--r-- | meta-fii/meta-kudo/recipes-kudo/host/files/ampere_power_util.sh | 24 | ||||
-rw-r--r-- | meta-fii/meta-kudo/recipes-kudo/kudo-sys-utility/kudo-boot/init_once.sh | 3 |
2 files changed, 26 insertions, 1 deletions
diff --git a/meta-fii/meta-kudo/recipes-kudo/host/files/ampere_power_util.sh b/meta-fii/meta-kudo/recipes-kudo/host/files/ampere_power_util.sh index 905c7f23a..511c1217e 100644 --- a/meta-fii/meta-kudo/recipes-kudo/host/files/ampere_power_util.sh +++ b/meta-fii/meta-kudo/recipes-kudo/host/files/ampere_power_util.sh @@ -4,7 +4,7 @@ source /usr/sbin/kudo-lib.sh # Usage of this utility function usage() { - echo "usage: power-util mb [on|off|graceful_shutdown|force_reset|shutdown_ack|hotswap]"; + echo "usage: power-util mb [on|off|graceful_shutdown|force_reset|shutdown_ack|hotswap|power_button]"; } hotswap() { @@ -91,6 +91,26 @@ shutdown_ack() { fi } +power_button() { + echo "Power button trigger event." + current_time="$(timestamp)" + if [ -f "/run/openbmc/power-button" ]; then + echo "Power button released" + press_time="$(cat /run/openbmc/power-button)" + if [[ "$current_time" -le "(($press_time + 1))" ]]; then + power_on + elif [[ "$current_time" -ge "(($press_time + 5))" ]]; then + power_off + else + echo "Button press did not match interval. + fi + rm "/run/openbmc/power-button" + else + echo "Power button pressed" + echo "$(timestamp)" > "/run/openbmc/power-button" + fi +} + if [ $# -lt 2 ]; then echo "Total number of parameter=$#" echo "Insufficient parameter" @@ -125,6 +145,8 @@ elif [ $2 == "force_reset" ]; then force_reset elif [ $2 == "shutdown_ack" ]; then shutdown_ack +elif [ $2 == "power_button" ]; then + power_button else echo "Invalid parameter2=$2" usage; diff --git a/meta-fii/meta-kudo/recipes-kudo/kudo-sys-utility/kudo-boot/init_once.sh b/meta-fii/meta-kudo/recipes-kudo/kudo-sys-utility/kudo-boot/init_once.sh index b87f12d0a..55661df80 100644 --- a/meta-fii/meta-kudo/recipes-kudo/kudo-sys-utility/kudo-boot/init_once.sh +++ b/meta-fii/meta-kudo/recipes-kudo/kudo-sys-utility/kudo-boot/init_once.sh @@ -64,3 +64,6 @@ if [[ $CPU1_STATUS_N == 1 ]]; then i2cset -y -a -f 16 0x6a 11 1 0x01 i i2cset -y -a -f 17 0x67 1 2 0x3f 0x0c i fi + +# Create /run/openbmc for system power files +mkdir "/run/openbmc" |