harma: gpio monitor: Add logging function

Summary:
1. Add general gpio logging function
2. Add gpio pins to monitor

Test Plan:
Trigger a new GPIO pin (leakage-detect-alert) and
check SEL by Redfish command

Testing:
{
  "@odata.id": "/.../EventLog/Entries",
  "@odata.type": "#LogEntryCollection.LogEntryCollection",
  "Description": "Collection of System Event Log Entries",
  "Members": [
    {
      "@odata.id": "/.../EventLog/Entries/1",
      "@odata.type": "#LogEntry.v1_9_0.LogEntry",
      "AdditionalDataURI": "/.../EventLog/Entries/1/attachment",
      "Created": "2024-04-15T08:13:36.320+00:00",
      "EntryType": "Event",
      "Id": "1",
      "Message": "xyz.openbmc_project.Logging.Error.LogsCleared",
      "Modified": "2024-04-15T08:13:36.320+00:00",
      "Name": "System Event Log Entry",
      "Resolved": false,
      "Severity": "OK"
    }
  ],
  "Members@odata.count": 1,
  "Name": "System Event Log Entries"
}

{
  "@odata.id": "/.../EventLog/Entries",
  "@odata.type": "#LogEntryCollection.LogEntryCollection",
  "Description": "Collection of System Event Log Entries",
  "Members": [
    {
      "@odata.id": "/.../EventLog/Entries/1",
      "@odata.type": "#LogEntry.v1_9_0.LogEntry",
      "AdditionalDataURI": "/.../EventLog/Entries/1/attachment",
      "Created": "2024-04-15T08:13:36.320+00:00",
      "EntryType": "Event",
      "Id": "1",
      "Message": "xyz.openbmc_project.Logging.Error.LogsCleared",
      "Modified": "2024-04-15T08:13:36.320+00:00",
      "Name": "System Event Log Entry",
      "Resolved": false,
      "Severity": "OK"
    },
    {
      "@odata.id": "/.../EventLog/Entries/2",
      "@odata.type": "#LogEntry.v1_9_0.LogEntry",
      "AdditionalDataURI": "/.../EventLog/Entries/2/attachment",
      "Created": "2024-04-15T08:14:07.446+00:00",
      "EntryType": "Event",
      "Id": "2",
      "Message": "leakage-detect-alert gpio assert",
      "Modified": "2024-04-15T08:14:07.446+00:00",
      "Name": "System Event Log Entry",
      "Resolved": false,
      "Severity": "Critical"
    }
  ],
  "Members@odata.count": 2,
  "Name": "System Event Log Entries"

Change-Id: I341c9ba0ee8434da41f4a6535c0253de01cf42e5
Signed-off-by: Daniel Hsu <Daniel-Hsu@quantatw.com>
diff --git a/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/assert-gpio-log@.service b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/assert-gpio-log@.service
new file mode 100644
index 0000000..e04c5c6
--- /dev/null
+++ b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/assert-gpio-log@.service
@@ -0,0 +1,7 @@
+[Unit]
+Description=%i GPIO Assert
+
+[Service]
+Type=oneshot
+ExecStart=/usr/libexec/phosphor-gpio-monitor/logging "%i gpio assert" "GPIO" "%i"
+SyslogIdentifier=%i-gpio-assert
diff --git a/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/deassert-gpio-log@.service b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/deassert-gpio-log@.service
new file mode 100644
index 0000000..5dde685
--- /dev/null
+++ b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/deassert-gpio-log@.service
@@ -0,0 +1,7 @@
+[Unit]
+Description=%i GPIO Deassert
+
+[Service]
+Type=oneshot
+ExecStart=/usr/libexec/phosphor-gpio-monitor/logging "%i gpio deassert" "GPIO" "%i"
+SyslogIdentifier=%i-gpio-deassert
diff --git a/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/logging b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/logging
new file mode 100644
index 0000000..ce69c4e
--- /dev/null
+++ b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/logging
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+MESSAGE=$1
+ARG=$2
+VAL=$3
+
+busctl call \
+    xyz.openbmc_project.Logging /xyz/openbmc_project/logging \
+    xyz.openbmc_project.Logging.Create Create "ssa{ss}" "$MESSAGE" \
+    xyz.openbmc_project.Logging.Entry.Level.Error 1 "$ARG" "$VAL"
diff --git a/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/plat-phosphor-multi-gpio-monitor.json b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/plat-phosphor-multi-gpio-monitor.json
index c46e2ab..18593a0 100644
--- a/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/plat-phosphor-multi-gpio-monitor.json
+++ b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor/plat-phosphor-multi-gpio-monitor.json
@@ -5,34 +5,162 @@
         "GpioNum": 122,
         "EventMon": "BOTH",
         "Targets": {
-            "RISING": ["deassert-reset-button.service"],
-            "FALLING": ["assert-reset-button.service"]
+            "RISING": ["deassert-gpio-log@reset-button.service","deassert-reset-button.service"],
+            "FALLING": ["assert-gpio-log@reset-button.service","assert-reset-button.service"]
 
         },
         "Continue": true
     },
     {
+        "Name": "power-button",
+        "ChipId": "0",
+        "GpioNum": 120,
+        "EventMon": "BOTH",
+        "Targets": {
+            "RISING": ["deassert-gpio-log@power-button.service"],
+            "FALLING": ["assert-gpio-log@power-button.service"]
+        },
+        "Continue": true
+    },
+    {
+        "Name": "presence-post-card",
+        "ChipId": "0",
+        "GpioNum": 206,
+        "EventMon": "BOTH",
+        "Targets": {
+            "RISING": ["deassert-gpio-log@presence-post-card.service"],
+            "FALLING": ["assert-gpio-log@presence-post-card.service"]
+        },
+        "Continue": true
+    },
+    {
+        "Name": "ac-power-button",
+        "ChipId": "1",
+        "GpioNum": 0,
+        "EventMon": "FALLING",
+        "Targets": {
+            "FALLING": ["assert-gpio-log@ac-power-button.service"]
+        },
+        "Continue": true
+    },
+    {
+        "Name": "irq-uv-detect-alert",
+        "ChipId": "2",
+        "GpioNum": 174,
+        "EventMon": "FALLING",
+        "Targets": {
+            "FALLING": ["assert-gpio-log@irq-uv-detect-alert.service"]
+        },
+        "Continue": true
+    },
+    {
+        "Name": "irq-hsc-alert",
+        "ChipId": "2",
+        "GpioNum": 176,
+        "EventMon": "BOTH",
+        "Targets": {
+            "RISING": ["deassert-gpio-log@irq-hsc-alert.service"],
+            "FALLING": ["assert-gpio-log@irq-hsc-alert.service"]
+        },
+        "Continue": true
+    },
+    {
+        "Name": "cpu0-prochot-alert",
+        "ChipId": "2",
+        "GpioNum": 178,
+        "EventMon": "BOTH",
+        "Targets": {
+            "RISING": ["deassert-gpio-log@cpu0-prochot-alert.service"],
+            "FALLING": ["assert-gpio-log@cpu0-prochot-alert.service"]
+        },
+        "Continue": true
+    },
+    {
+        "Name": "cpu0-thermtrip-alert",
+        "ChipId": "2",
+        "GpioNum": 180,
+        "EventMon": "FALLING",
+        "Targets": {
+            "FALLING": ["assert-gpio-log@cpu0-thermtrip-alert.service"]
+        },
+        "Continue": true
+    },
+    {
+        "Name": "cpu0-err-alert",
+        "ChipId": "0",
+        "GpioNum": 21,
+        "EventMon": "FALLING",
+        "Targets": {
+            "FALLING": ["assert-gpio-log@cpu0-err-alert.service"]
+        },
+        "Continue": true
+    },
+    {
+        "Name": "reset-cause-platrst",
+        "ChipId": "0",
+        "GpioNum": 16,
+        "EventMon": "BOTH",
+        "Targets": {
+            "RISING": ["deassert-gpio-log@reset-cause-platrst.service"],
+            "FALLING": ["assert-gpio-log@reset-cause-platrst.service"]
+        },
+        "Continue": true
+    },
+    {
         "Name": "power-host-good",
         "ChipId": "2",
         "GpioNum": 60,
         "EventMon": "BOTH",
         "Targets": {
-            "RISING": ["deassert-power-good.service"],
-            "FALLING": ["assert-power-good.service"]
+            "RISING": ["deassert-power-good.service", "deassert-gpio-log@power-host-good.service"],
+            "FALLING": ["assert-power-good.service", "assert-gpio-log@power-host-good.service"]
 
         },
         "Continue": true
     },
     {
-        "Name": "post-end-n",
+        "Name": "reset-cause-pcie",
+        "ChipId": "2",
+        "GpioNum": 182,
+        "EventMon": "BOTH",
+        "Targets": {
+            "RISING": ["deassert-gpio-log@reset-cause-pcie.service"],
+            "FALLING": ["assert-gpio-log@reset-cause-pcie.service"]
+        },
+        "Continue": true
+    },
+    {
+        "Name": "pvdd11-ocp-alert",
+        "ChipId": "2",
+        "GpioNum": 184,
+        "EventMon": "BOTH",
+        "Targets": {
+            "RISING": ["deassert-gpio-log@pvdd11-ocp-alert.service"],
+            "FALLING": ["assert-gpio-log@pvdd11-ocp-alert.service"]
+        },
+        "Continue": true
+    },
+    {
+        "Name": "host-ready-n",
         "ChipId": "2",
         "GpioNum": 66,
         "EventMon": "BOTH",
         "Targets": {
-            "RISING": ["deassert-post-end.service"],
-            "FALLING": ["assert-post-end.service"]
+            "RISING": ["deassert-post-end.service","deassert-gpio-log@host-ready-n.service"],
+            "FALLING": ["assert-post-end.service","assert-gpio-log@host-ready-n.service"]
 
         },
         "Continue": true
+    },
+    {
+        "Name": "leakage-detect-alert",
+        "ChipId": "0",
+        "GpioNum": 92,
+        "EventMon": "BOTH",
+        "Targets": {
+            "RISING": ["deassert-gpio-log@leakage-detect-alert.service"],
+            "FALLING": ["assert-gpio-log@leakage-detect-alert.service"]
+        },
+        "Continue": true
     }
-]
+]
\ No newline at end of file
diff --git a/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend
index 6a8fe3f..2eeee68 100644
--- a/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend
+++ b/meta-facebook/meta-harma/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend
@@ -17,6 +17,9 @@
             file://deassert-post-end \
             file://assert-reset-button \
             file://deassert-reset-button \
+            file://assert-gpio-log@.service \
+            file://deassert-gpio-log@.service \
+            file://logging \
             "
 
 RDEPENDS:${PN}:append = " bash"
@@ -44,6 +47,7 @@
     install -m 0644 ${WORKDIR}/*.service ${D}${systemd_system_unitdir}/
 
     install -d ${D}${libexecdir}/${PN}
+    install -m 0755 ${WORKDIR}/logging ${D}${libexecdir}/${PN}/
     install -m 0755 ${WORKDIR}/multi-gpios-sys-init ${D}${libexecdir}/${PN}/
 
     install -m 0755 ${WORKDIR}/assert-reset-button ${D}${libexecdir}/${PN}/