diff options
Diffstat (limited to 'meta-ibm/meta-romulus/recipes-phosphor/gpio')
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 |