summaryrefslogtreecommitdiff
path: root/meta-fii
diff options
context:
space:
mode:
authorCharles Boyer <Charles.Boyer@fii-usa.com>2021-10-30 00:39:16 +0300
committerCharles Boyer <Charles.Boyer@fii-usa.com>2021-11-11 19:08:16 +0300
commita3dc550e57470746a049356c99e3d6df0ed096c7 (patch)
tree48730d36df8ffd03c1a0322797410b4026c25482 /meta-fii
parent962fa6a37db32335fb6584fe1746c426544fd0b4 (diff)
downloadopenbmc-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.sh24
-rw-r--r--meta-fii/meta-kudo/recipes-kudo/kudo-sys-utility/kudo-boot/init_once.sh3
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"