summaryrefslogtreecommitdiffstats
path: root/meta-ibm/meta-romulus/recipes-phosphor/gpio
diff options
context:
space:
mode:
Diffstat (limited to 'meta-ibm/meta-romulus/recipes-phosphor/gpio')
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/gpio/id-button.bb29
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/gpio/id-button/id-button-pressed.service10
-rw-r--r--meta-ibm/meta-romulus/recipes-phosphor/gpio/id-button/obmc/gpio/id_button5
-rwxr-xr-xmeta-ibm/meta-romulus/recipes-phosphor/gpio/id-button/toggle_identify_led.sh20
4 files changed, 64 insertions, 0 deletions
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/gpio/id-button.bb b/meta-ibm/meta-romulus/recipes-phosphor/gpio/id-button.bb
new file mode 100644
index 000000000..7267ee3d5
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/gpio/id-button.bb
@@ -0,0 +1,29 @@
+SUMMARY = "Romulus ID Button pressed application"
+PR = "r1"
+
+inherit obmc-phosphor-systemd
+inherit obmc-phosphor-license
+
+DEPENDS += "virtual/obmc-gpio-monitor"
+RDEPENDS_${PN} += "virtual/obmc-gpio-monitor"
+
+S = "${WORKDIR}"
+SRC_URI += "file://toggle_identify_led.sh"
+
+do_install() {
+ install -d ${D}${bindir}
+ install -m 0755 ${WORKDIR}/toggle_identify_led.sh \
+ ${D}${bindir}/toggle_identify_led.sh
+}
+
+SYSTEMD_ENVIRONMENT_FILE_${PN} +="obmc/gpio/id_button"
+
+ID_BUTTON_SERVICE = "id_button"
+
+TMPL = "phosphor-gpio-monitor@.service"
+INSTFMT = "phosphor-gpio-monitor@{0}.service"
+TGT = "${SYSTEMD_DEFAULT_TARGET}"
+FMT = "../${TMPL}:${TGT}.requires/${INSTFMT}"
+
+SYSTEMD_SERVICE_${PN} += "id-button-pressed.service"
+SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT', 'ID_BUTTON_SERVICE')}"
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/gpio/id-button/id-button-pressed.service b/meta-ibm/meta-romulus/recipes-phosphor/gpio/id-button/id-button-pressed.service
new file mode 100644
index 000000000..f633fc307
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/gpio/id-button/id-button-pressed.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=ID Button Pressed Service
+Wants=mapper-wait@-xyz-openbmc_project-led-groups.service
+After=mapper-wait@-xyz-openbmc_project-led-groups.service
+StartLimitIntervalSec=0
+
+[Service]
+Type=oneshot
+ExecStart=/usr/bin/env toggle_identify_led.sh
+SyslogIdentifier=id-button
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/gpio/id-button/obmc/gpio/id_button b/meta-ibm/meta-romulus/recipes-phosphor/gpio/id-button/obmc/gpio/id_button
new file mode 100644
index 000000000..b1963573f
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/gpio/id-button/obmc/gpio/id_button
@@ -0,0 +1,5 @@
+DEVPATH=/dev/input/by-path/platform-gpio-keys-event
+KEY=135
+POLARITY=1
+TARGET=id-button-pressed.service
+EXTRA_ARGS=--continue
diff --git a/meta-ibm/meta-romulus/recipes-phosphor/gpio/id-button/toggle_identify_led.sh b/meta-ibm/meta-romulus/recipes-phosphor/gpio/id-button/toggle_identify_led.sh
new file mode 100755
index 000000000..eec96d3f1
--- /dev/null
+++ b/meta-ibm/meta-romulus/recipes-phosphor/gpio/id-button/toggle_identify_led.sh
@@ -0,0 +1,20 @@
+#!/bin/sh
+# Toggle the state of identify LED Group
+
+SERVICE="xyz.openbmc_project.LED.GroupManager"
+INTERFACE="xyz.openbmc_project.Led.Group"
+PROPERTY="Asserted"
+
+# Get current state
+object=$(busctl tree $SERVICE --list | grep identify)
+state=$(busctl get-property $SERVICE $object $INTERFACE $PROPERTY \
+ | awk '{print $NF;}')
+
+if [ "$state" == "false" ]; then
+ target='true'
+else
+ target='false'
+fi
+
+# Set target state
+busctl set-property $SERVICE $object $INTERFACE $PROPERTY b $target
OpenPOWER on IntegriCloud