meta-zaius: Add PCIE E2B present sensor

The GPIO E7 is used to check if PCIE E2B is connected with a riser card.
Add a sensor for this card and provide IPMI response for the sensor.

Change-Id: Ie63a633c0c4eb5a88039a0087c2fd471e38f87af
Signed-off-by: Lei YU <mine260309@gmail.com>
diff --git a/meta-openbmc-machines/meta-openpower/meta-ingrasys/meta-zaius/recipes-phosphor/gpio/phosphor-gpio-monitor.bbappend b/meta-openbmc-machines/meta-openpower/meta-ingrasys/meta-zaius/recipes-phosphor/gpio/phosphor-gpio-monitor.bbappend
new file mode 100644
index 0000000..801b346
--- /dev/null
+++ b/meta-openbmc-machines/meta-openpower/meta-ingrasys/meta-zaius/recipes-phosphor/gpio/phosphor-gpio-monitor.bbappend
@@ -0,0 +1,11 @@
+FILESEXTRAPATHS_append_zaius := "${THISDIR}/${PN}:"
+
+PCIE_CARD_E2B_INSTANCE = "pcie-card-e2b"
+
+TMPL = "phosphor-gpio-presence@.service"
+INSTFMT = "phosphor-gpio-presence@{0}.service"
+TGT = "${SYSTEMD_DEFAULT_TARGET}"
+FMT = "../${TMPL}:${TGT}.requires/${INSTFMT}"
+
+SYSTEMD_LINK_${PN}-presence_append_zaius += "${@compose_list(d, 'FMT', 'PCIE_CARD_E2B_INSTANCE')}"
+SYSTEMD_ENVIRONMENT_FILE_${PN}-presence_append_zaius += "obmc/gpio/phosphor-pcie-card-e2b.conf"
diff --git a/meta-openbmc-machines/meta-openpower/meta-ingrasys/meta-zaius/recipes-phosphor/gpio/phosphor-gpio-monitor/obmc/gpio/phosphor-pcie-card-e2b.conf b/meta-openbmc-machines/meta-openpower/meta-ingrasys/meta-zaius/recipes-phosphor/gpio/phosphor-gpio-monitor/obmc/gpio/phosphor-pcie-card-e2b.conf
new file mode 100644
index 0000000..cfc5414
--- /dev/null
+++ b/meta-openbmc-machines/meta-openpower/meta-ingrasys/meta-zaius/recipes-phosphor/gpio/phosphor-gpio-monitor/obmc/gpio/phosphor-pcie-card-e2b.conf
@@ -0,0 +1,4 @@
+INVENTORY=/system/chassis/pcie_card_e2b
+DEVPATH=/dev/input/by-path/platform-gpio-keys-event
+KEY=39
+NAME=pcie_card_e2b
diff --git a/meta-openbmc-machines/meta-openpower/meta-ingrasys/meta-zaius/recipes-phosphor/gpio/phosphor-gpio-monitor/phosphor-gpio-presence@.service b/meta-openbmc-machines/meta-openpower/meta-ingrasys/meta-zaius/recipes-phosphor/gpio/phosphor-gpio-monitor/phosphor-gpio-presence@.service
new file mode 100644
index 0000000..0f8396c
--- /dev/null
+++ b/meta-openbmc-machines/meta-openpower/meta-ingrasys/meta-zaius/recipes-phosphor/gpio/phosphor-gpio-monitor/phosphor-gpio-presence@.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=Phosphor GPIO %I Presence
+Wants=mapper-wait@-xyz-openbmc_project-inventory.service
+After=mapper-wait@-xyz-openbmc_project-inventory.service
+ConditionPathExists={envfiledir}/obmc/gpio/phosphor-pcie-card-e2b.conf
+
+[Service]
+EnvironmentFile={envfiledir}/obmc/gpio/phosphor-pcie-card-e2b.conf
+ExecStart=/usr/bin/env phosphor-gpio-presence --path=${{DEVPATH}} --inventory=${{INVENTORY}} --key=${{KEY}} --name=${{NAME}}
+SyslogIdentifier=phosphor-gpio-presence
+
+[Install]
+RequiredBy={SYSTEMD_DEFAULT_TARGET}
diff --git a/meta-openbmc-machines/meta-openpower/meta-ingrasys/meta-zaius/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory%/config.yaml b/meta-openbmc-machines/meta-openpower/meta-ingrasys/meta-zaius/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory%/config.yaml
index 66ec993..a318f53 100755
--- a/meta-openbmc-machines/meta-openpower/meta-ingrasys/meta-zaius/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory%/config.yaml
+++ b/meta-openbmc-machines/meta-openpower/meta-ingrasys/meta-zaius/recipes-phosphor/ipmi/phosphor-ipmi-sensor-inventory%/config.yaml
@@ -154,3 +154,17 @@
             assert: true
             deassert: false
             type: bool
+0xFC:
+  sensorType: 0xCD
+  path: /system/chassis/pcie_e2b_present
+  sensorReadingType: 0x03
+  serviceInterface: xyz.openbmc_project.Inventory.Manager
+  readingType: assertion
+  interfaces:
+    xyz.openbmc_project.Inventory.Item:
+      Present:
+        Offsets:
+          0x01:
+            assert: true
+            deassert: false
+            type: bool
diff --git a/meta-openbmc-machines/meta-openpower/meta-ingrasys/meta-zaius/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend b/meta-openbmc-machines/meta-openpower/meta-ingrasys/meta-zaius/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend
index 8b22432..f80bdb6 100644
--- a/meta-openbmc-machines/meta-openpower/meta-ingrasys/meta-zaius/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend
+++ b/meta-openbmc-machines/meta-openpower/meta-ingrasys/meta-zaius/recipes-phosphor/packagegroups/packagegroup-obmc-apps.bbappend
@@ -1,2 +1,3 @@
 # Support OCC pass through and general occ control
-RDEPENDS_${PN}-inventory_append_zaius = " openpower-occ-control"
+# Support for GPIO presence service
+RDEPENDS_${PN}-inventory_append_zaius = " openpower-occ-control virtual/obmc-gpio-presence"