yosemite4: phosphor-gpio-monitor: Support sled cycle from power button

Summary:
Support sled cycle from power button through gpio monitor,
which detecting interrupt for bmc gpiop1

Tested:
Do sled cycle after pressing power button: pass
root@bmc:~# /usr/bin/phosphor-multi-gpio-monitor --config /usr/share/phosphor-gpio-monitor/phosphor-multi-gpio-monitor.json
...
<6> GPIO Line 121 monitoring started
...
[press power button over 4 second]
<6> GPIO Line 121 Asserted

Change-Id: I9197bfabff8b7e1f7a7370c0ff37219440df45b7
Signed-off-by: Delphine CC Chiu <Delphine_CC_Chiu@wiwynn.com>
diff --git a/meta-facebook/meta-yosemite4/recipes-phosphor/gpio/phosphor-gpio-monitor/set-button-sled.service b/meta-facebook/meta-yosemite4/recipes-phosphor/gpio/phosphor-gpio-monitor/set-button-sled.service
new file mode 100644
index 0000000..3a7d9ad
--- /dev/null
+++ b/meta-facebook/meta-yosemite4/recipes-phosphor/gpio/phosphor-gpio-monitor/set-button-sled.service
@@ -0,0 +1,7 @@
+[Unit]
+Description=Set Sled Cycle From Power Button
+
+[Service]
+Type=oneshot
+ExecStart=/usr/bin/busctl set-property xyz.openbmc_project.State.Chassis0 /xyz/openbmc_project/state/chassis0 xyz.openbmc_project.State.Chassis RequestedPowerTransition s "xyz.openbmc_project.State.Chassis.Transition.PowerCycle"
+SyslogIdentifier=set-button-sled
diff --git a/meta-facebook/meta-yosemite4/recipes-phosphor/gpio/phosphor-gpio-monitor/yosemite4-phosphor-multi-gpio-monitor.json b/meta-facebook/meta-yosemite4/recipes-phosphor/gpio/phosphor-gpio-monitor/yosemite4-phosphor-multi-gpio-monitor.json
new file mode 100644
index 0000000..008eddd
--- /dev/null
+++ b/meta-facebook/meta-yosemite4/recipes-phosphor/gpio/phosphor-gpio-monitor/yosemite4-phosphor-multi-gpio-monitor.json
@@ -0,0 +1,12 @@
+[
+    {
+        "Name": "BTN_BMC_R2_N",
+        "ChipId": "0",
+        "GpioNum": 121,
+        "EventMon": "RISING",
+        "Targets": {
+            "RISING": ["set-button-sled.service"]
+        },
+        "Continue": true
+    }
+]
diff --git a/meta-facebook/meta-yosemite4/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend b/meta-facebook/meta-yosemite4/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend
new file mode 100644
index 0000000..7580795
--- /dev/null
+++ b/meta-facebook/meta-yosemite4/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend
@@ -0,0 +1,21 @@
+FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
+
+inherit obmc-phosphor-systemd systemd
+
+SRC_URI += "file://yosemite4-phosphor-multi-gpio-monitor.json \
+            file://set-button-sled.service \
+            "
+
+FILES:${PN} += "${systemd_system_unitdir}/*"
+
+SYSTEMD_SERVICE:${PN} += " \
+    set-button-sled.service \
+    "
+SYSTEMD_AUTO_ENABLE = "enable"
+
+do_install:append:() {
+    install -d ${D}${datadir}/phosphor-gpio-monitor
+    install -m 0644 ${WORKDIR}/yosemite4-phosphor-multi-gpio-monitor.json \
+                    ${D}${datadir}/phosphor-gpio-monitor/phosphor-multi-gpio-monitor.json
+    install -m 0644 ${WORKDIR}/set-button-sled.service ${D}${systemd_system_unitdir}/set-button-sled.service
+}
diff --git a/meta-facebook/meta-yosemite4/recipes-phosphor/images/fb-yosemite4-phosphor-image.inc b/meta-facebook/meta-yosemite4/recipes-phosphor/images/fb-yosemite4-phosphor-image.inc
index 117118d..79d109c 100644
--- a/meta-facebook/meta-yosemite4/recipes-phosphor/images/fb-yosemite4-phosphor-image.inc
+++ b/meta-facebook/meta-yosemite4/recipes-phosphor/images/fb-yosemite4-phosphor-image.inc
@@ -18,3 +18,7 @@
     plat-svc \
 "
 
+OBMC_IMAGE_EXTRA_INSTALL:append = " \
+    phosphor-gpio-monitor \
+"
+