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
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 905c7f2..511c121 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 @@
 
 # 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 @@
   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 @@
   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 b87f12d..55661df 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 @@
     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"