meta-facebook: catalina: add more gpio pins for monitoring

Add more GPIO pins for fault monitoring based on DVT PDB CPLD
implementation [1].

[1] https://lore.kernel.org/all/20241106-catalina-cpld-ioexp-update-v1-1-3437bcfcb608@gmail.com/

Change-Id: Id17015889b857b4e2b9d2e7a0acea4114be88845
Signed-off-by: Potin Lai <potin.lai@quantatw.com>
diff --git a/meta-facebook/meta-catalina/recipes-phosphor/gpio/phosphor-gpio-monitor/catalina-gpio-monitor b/meta-facebook/meta-catalina/recipes-phosphor/gpio/phosphor-gpio-monitor/catalina-gpio-monitor
index 779d856..af9839a 100644
--- a/meta-facebook/meta-catalina/recipes-phosphor/gpio/phosphor-gpio-monitor/catalina-gpio-monitor
+++ b/meta-facebook/meta-catalina/recipes-phosphor/gpio/phosphor-gpio-monitor/catalina-gpio-monitor
@@ -49,43 +49,122 @@
     fi
 }
 
-do_leak_detect_change()
+do_gpio_assert_log()
 {
-    if [ "$STATE" = "assert" ]; then
-        LOG_MSG="leak has been detected"
+    LOG_MSG=""
+
+    # PDB CPLD IOEXP, 14-0010, Port 0
+    if [ "$LINENAME" = "wSequence_Latch_State_N" ]; then
+        LOG_MSG="Sequence entering latch state by RMC"
+    elif [ "$LINENAME" = "wP12V_N1N2_RUNTIME_FLT_N" ]; then
+        LOG_MSG="NODEA_NODEB_PWOK_PLD_ISO_R runtime error"
+    elif [ "$LINENAME" = "wP12V_FAN_RUNTIME_FLT_N" ]; then
+        LOG_MSG="PWRGD_P12V_AUX_FAN_PLD runtime error"
+    elif [ "$LINENAME" = "wP12V_AUX_RUNTIME_FLT_N" ]; then
+        LOG_MSG="PWRGD_P12V_AUX_PLD_ISO_R runtime error"
+    elif [ "$LINENAME" = "wHost_PERST_SEQPWR_FLT_N" ]; then
+        LOG_MSG="OCP_SFF_PERST_FROM_HOST_ISO_PLD_N or OCP_V3_2_PERST_FROM_HOST_ISO_PLD_N timeout, FSM stop at state 0x01"
+    elif [ "$LINENAME" = "wP12V_N1N2_SEQPWR_FLT_N" ]; then
+        LOG_MSG="NODEA_NODEB_PWOK_PLD_ISO_R timeout, FSM stop at state 0x03"
+    elif [ "$LINENAME" = "wP12V_FAN_SEQPWR_FLT_N" ]; then
+        LOG_MSG="PWRGD_P12V_AUX_FAN_PLD timeout, FSM stop at state 0x05"
+    elif [ "$LINENAME" = "wP12V_AUX_SEQPWR_FLT_N" ]; then
+        LOG_MSG="PWRGD_P12V_AUX_PLD_ISO_R timeout, FSM stop at state 0x07"
+
+    # PDB CPLD IOEXP, 14-0010, Port 1
+    elif [ "$LINENAME" = "wP12V_RUNTIME_FLT_NIC1_N" ]; then
+        LOG_MSG="NIC1 FM_OCP_V3_2_PWR_GOOD_PLD runtime error"
+    elif [ "$LINENAME" = "wAUX_RUNTIME_FLT_NIC1_N" ]; then
+        LOG_MSG="NIC1 HP_LVC3_OCP_V3_2_PWRGD_PLD runtime error"
+    elif [ "$LINENAME" = "wP12V_SEQPWR_FLT_NIC1_N" ]; then
+        LOG_MSG="NIC1 FM_OCP_V3_2_PWR_GOOD_PLD timeout, FSM stop at state 0x03"
+    elif [ "$LINENAME" = "wAUX_SEQPWR_FLT_NIC1_N" ]; then
+        LOG_MSG="NIC1 HP_LVC3_OCP_V3_2_PWRGD_PLD timeout, FSM stop at state 0x05"
+    elif [ "$LINENAME" = "wP12V_RUNTIME_FLT_NIC0_N" ]; then
+        LOG_MSG="NIC0 FM_OCP_SFF_PWR_GOOD_PLD runtime error"
+    elif [ "$LINENAME" = "wAUX_RUNTIME_FLT_NIC0_N" ]; then
+        LOG_MSG="NIC0 HP_LVC3_OCP_V3_1_PWRGD_PLD runtime error"
+    elif [ "$LINENAME" = "wP12V_SEQPWR_FLT_NIC0_N" ]; then
+        LOG_MSG="NIC0 FM_OCP_SFF_PWR_GOOD_PLD timeout, FSM stop at state 0x03"
+    elif [ "$LINENAME" = "wAUX_SEQPWR_FLT_NIC0_N" ]; then
+        LOG_MSG="NIC0 HP_LVC3_OCP_V3_1_PWRGD_PLD timeout, FSM stop at state 0x05"
+
+    # PDB CPLD IOEXP 14-0011, Port 0
+    elif [ "$LINENAME" = "FM_P12V_NIC1_FLTB_R_N" ]; then
+        LOG_MSG="NIC1 P12V_AUX Efuse fault"
+    elif [ "$LINENAME" = "FM_P3V3_NIC1_FAULT_R_N" ]; then
+        LOG_MSG="NIC1 P3V3_AUX Efuse fault"
+    elif [ "$LINENAME" = "FM_P12V_NIC0_FLTB_R_N" ]; then
+        LOG_MSG="NIC0 P12V_AUX Efuse fault"
+    elif [ "$LINENAME" = "FM_P3V3_NIC0_FAULT_R_N" ]; then
+        LOG_MSG="NIC0 P3V3_AUX Efuse fault"
+    elif [ "$LINENAME" = "P48V_HS2_FAULT_N_PLD" ]; then
+        LOG_MSG="Hotswap Controller 2 fault"
+    elif [ "$LINENAME" = "P48V_HS1_FAULT_N_PLD" ]; then
+        LOG_MSG="Hotswap Controller 1 fault"
+    elif [ "$LINENAME" = "P12V_AUX_FAN_OC_PLD_N" ]; then
+        LOG_MSG="P12V_AUX_FAN VR OC fault"
+    elif [ "$LINENAME" = "P12V_AUX_FAN_FAULT_PLD_N" ]; then
+        LOG_MSG="P12V_AUX_FAN VR fault"
+
+    # PDB CPLD IOEXP 14-0011, Port 1
+    elif [ "$LINENAME" = "FM_SYS_THROTTLE_N" ]; then
+        LOG_MSG="System throttle"
+    elif [ "$LINENAME" = "OCP_V3_2_PWRBRK_FROM_HOST_ISO_PLD_N" ]; then
+        LOG_MSG="NIC1 PWRBRK from Host"
+    elif [ "$LINENAME" = "OCP_SFF_PWRBRK_FROM_HOST_ISO_PLD_N" ]; then
+        LOG_MSG="NIC0 PWRBRK from Host"
+
+    # PDB CPLD IOEXP 14-0012, Port 0
+    elif [ "$LINENAME" = "P12V_AUX_PSU_SMB_ALERT_R_L" ]; then
+        LOG_MSG="P12V_AUX VR alert"
+    elif [ "$LINENAME" = "P12V_SCM_SENSE_ALERT_R_N" ]; then
+        LOG_MSG="P12V_BMC power monitor alert"
+    elif [ "$LINENAME" = "P12V_AUX_NIC1_SENSE_ALERT_R_N" ]; then
+        LOG_MSG="P12V_AUX_NIC1 power monitor alert"
+    elif [ "$LINENAME" = "P12V_AUX_NIC0_SENSE_ALERT_R_N" ]; then
+        LOG_MSG="P12V_AUX_NIC0 power monitor alert"
+    elif [ "$LINENAME" = "NODEB_PSU_SMB_ALERT_R_L" ]; then
+        LOG_MSG="CPU1 P12V_N2_VOUT VR alert"
+    elif [ "$LINENAME" = "NODEA_PSU_SMB_ALERT_R_L" ]; then
+        LOG_MSG="CPU0 P12V_N1_VOUT VR alert"
+    elif [ "$LINENAME" = "P12V_AUX_FAN_ALERT_PLD_N" ]; then
+        LOG_MSG="FAN P12V_AUX_FAN VR alert"
+    elif [ "$LINENAME" = "P52V_SENSE_ALERT_PLD_N" ]; then
+        LOG_MSG="P52V busbar power monitor alert"
+
+    # PDB CPLD IOEXP 14-0012, Port 1
+    elif [ "$LINENAME" = "CHASSIS3_LEAK_Q_N_PLD" ]; then
+        LOG_MSG="Large leakage alert, leak cable 3"
+    elif [ "$LINENAME" = "CHASSIS2_LEAK_Q_N_PLD" ]; then
+        LOG_MSG="Small leakage alert, leak cable 2"
+    elif [ "$LINENAME" = "CHASSIS1_LEAK_Q_N_PLD" ]; then
+        LOG_MSG="Large leakage alert, leak cable 1"
+    elif [ "$LINENAME" = "CHASSIS0_LEAK_Q_N_PLD" ]; then
+        LOG_MSG="Small leakage alert, leak cable 0"
+    elif [ "$LINENAME" = "" ]; then
+        LOG_MSG=""
+    elif [ "$LINENAME" = "SMB_RJ45_FIO_TMP_ALERT" ]; then
+        LOG_MSG="FIO board tempreture sensor alert"
     else
-        LOG_MSG="leak has been recoverd"
+        echo "Unexpected LINENAME = $LINENAME, assert"
+        return 1
     fi
 
-    case "$LINENAME" in
-        "LEAK0_DETECT_R" | "LEAK2_DETECT_R")
-            LOG_MSG="A large $LOG_MSG at location $LINENAME"
-            ;;
-        "LEAK1_DETECT_R" | "LEAK3_DETECT_R")
-            LOG_MSG="A small $LOG_MSG at location $LINENAME"
-            ;;
-        *)
-            return 0
-            ;;
-    esac
-
-    if [ "$STATE" = "assert" ]; then
-        log_error "$LOG_MSG"
-    else
-        log_info "$LOG_MSG"
-    fi
+    log_error "${LOG_MSG}"
 }
 
 case $LINENAME in
-    "RUN_POWER_PG" | "ID_RST_BTN_BMC_N")
-        FUNC_NAME="do_${LINENAME}_change"
-        "$FUNC_NAME"
+    "RUN_POWER_PG")
+        do_RUN_POWER_PG_change
         ;;
-    "LEAK0_DETECT_R" | "LEAK1_DETECT_R" | "LEAK2_DETECT_R" | "LEAK3_DETECT_R")
-        do_leak_detect_change
+    "ID_RST_BTN_BMC_N")
+        do_ID_RST_BTN_BMC_N_change
         ;;
     *)
-        echo "Unknown LINENAME = $LINENAME"
-        exit 1
-        ;;
+        if [ "$STATE" = "assert" ]; then
+            do_gpio_assert_log
+        elif [ "$STATE" = "deassert" ]; then
+            do_gpio_deassert_log
+        fi
 esac
diff --git a/meta-facebook/meta-catalina/recipes-phosphor/gpio/phosphor-gpio-monitor/phosphor-multi-gpio-monitor.json b/meta-facebook/meta-catalina/recipes-phosphor/gpio/phosphor-gpio-monitor/phosphor-multi-gpio-monitor.json
index 42d458a..7f17fdc 100644
--- a/meta-facebook/meta-catalina/recipes-phosphor/gpio/phosphor-gpio-monitor/phosphor-multi-gpio-monitor.json
+++ b/meta-facebook/meta-catalina/recipes-phosphor/gpio/phosphor-gpio-monitor/phosphor-multi-gpio-monitor.json
@@ -20,42 +20,363 @@
         "Continue": true
     },
     {
-        "Name": "LEAK0_DETECT_R",
-        "LineName": "LEAK0_DETECT_R",
-        "EventMon": "BOTH",
+        "Name": "wSequence_Latch_State_N",
+        "LineName": "wSequence_Latch_State_N",
+        "EventMon": "FALLING",
         "Targets": {
-            "RISING": ["assert-gpio-log@LEAK0_DETECT_R.service"],
-            "FALLING": ["deassert-gpio-log@LEAK0_DETECT_R.service"]
+            "FALLING": ["assert-gpio-log@wSequence_Latch_State_N.service"]
         },
         "Continue": true
     },
     {
-        "Name": "LEAK1_DETECT_R",
-        "LineName": "LEAK1_DETECT_R",
-        "EventMon": "BOTH",
+        "Name": "wP12V_N1N2_RUNTIME_FLT_N",
+        "LineName": "wP12V_N1N2_RUNTIME_FLT_N",
+        "EventMon": "FALLING",
         "Targets": {
-            "RISING": ["assert-gpio-log@LEAK1_DETECT_R.service"],
-            "FALLING": ["deassert-gpio-log@LEAK1_DETECT_R.service"]
+            "FALLING": ["assert-gpio-log@wP12V_N1N2_RUNTIME_FLT_N.service"]
         },
         "Continue": true
     },
     {
-        "Name": "LEAK2_DETECT_R",
-        "LineName": "LEAK2_DETECT_R",
-        "EventMon": "BOTH",
+        "Name": "wP12V_FAN_RUNTIME_FLT_N",
+        "LineName": "wP12V_FAN_RUNTIME_FLT_N",
+        "EventMon": "FALLING",
         "Targets": {
-            "RISING": ["assert-gpio-log@LEAK2_DETECT_R.service"],
-            "FALLING": ["deassert-gpio-log@LEAK2_DETECT_R.service"]
+            "FALLING": ["assert-gpio-log@wP12V_FAN_RUNTIME_FLT_N.service"]
         },
         "Continue": true
     },
     {
-        "Name": "LEAK3_DETECT_R",
-        "LineName": "LEAK3_DETECT_R",
-        "EventMon": "BOTH",
+        "Name": "wHost_PERST_SEQPWR_FLT_N",
+        "LineName": "wHost_PERST_SEQPWR_FLT_N",
+        "EventMon": "FALLING",
         "Targets": {
-            "RISING": ["assert-gpio-log@LEAK3_DETECT_R.service"],
-            "FALLING": ["deassert-gpio-log@LEAK3_DETECT_R.service"]
+            "FALLING": ["assert-gpio-log@wHost_PERST_SEQPWR_FLT_N.service"]
+        },
+        "Continue": true
+    },
+    {
+        "Name": "wP12V_AUX_RUNTIME_FLT_N",
+        "LineName": "wP12V_AUX_RUNTIME_FLT_N",
+        "EventMon": "FALLING",
+        "Targets": {
+            "FALLING": ["assert-gpio-log@wP12V_AUX_RUNTIME_FLT_N.service"]
+        },
+        "Continue": true
+    },
+    {
+        "Name": "wP12V_N1N2_SEQPWR_FLT_N",
+        "LineName": "wP12V_N1N2_SEQPWR_FLT_N",
+        "EventMon": "FALLING",
+        "Targets": {
+            "FALLING": ["assert-gpio-log@wP12V_N1N2_SEQPWR_FLT_N.service"]
+        },
+        "Continue": true
+    },
+    {
+        "Name": "wP12V_FAN_SEQPWR_FLT_N",
+        "LineName": "wP12V_FAN_SEQPWR_FLT_N",
+        "EventMon": "FALLING",
+        "Targets": {
+            "FALLING": ["assert-gpio-log@wP12V_FAN_SEQPWR_FLT_N.service"]
+        },
+        "Continue": true
+    },
+    {
+        "Name": "wP12V_AUX_SEQPWR_FLT_N",
+        "LineName": "wP12V_AUX_SEQPWR_FLT_N",
+        "EventMon": "FALLING",
+        "Targets": {
+            "FALLING": ["assert-gpio-log@wP12V_AUX_SEQPWR_FLT_N.service"]
+        },
+        "Continue": true
+    },
+    {
+        "Name": "wP12V_RUNTIME_FLT_NIC1_N",
+        "LineName": "wP12V_RUNTIME_FLT_NIC1_N",
+        "EventMon": "FALLING",
+        "Targets": {
+            "FALLING": ["assert-gpio-log@wP12V_RUNTIME_FLT_NIC1_N.service"]
+        },
+        "Continue": true
+    },
+    {
+        "Name": "wAUX_RUNTIME_FLT_NIC1_N",
+        "LineName": "wAUX_RUNTIME_FLT_NIC1_N",
+        "EventMon": "FALLING",
+        "Targets": {
+            "FALLING": ["assert-gpio-log@wAUX_RUNTIME_FLT_NIC1_N.service"]
+        },
+        "Continue": true
+    },
+    {
+        "Name": "wP12V_SEQPWR_FLT_NIC1_N",
+        "LineName": "wP12V_SEQPWR_FLT_NIC1_N",
+        "EventMon": "FALLING",
+        "Targets": {
+            "FALLING": ["assert-gpio-log@wP12V_SEQPWR_FLT_NIC1_N.service"]
+        },
+        "Continue": true
+    },
+    {
+        "Name": "wAUX_SEQPWR_FLT_NIC1_N",
+        "LineName": "wAUX_SEQPWR_FLT_NIC1_N",
+        "EventMon": "FALLING",
+        "Targets": {
+            "FALLING": ["assert-gpio-log@wAUX_SEQPWR_FLT_NIC1_N.service"]
+        },
+        "Continue": true
+    },
+    {
+        "Name": "wP12V_RUNTIME_FLT_NIC0_N",
+        "LineName": "wP12V_RUNTIME_FLT_NIC0_N",
+        "EventMon": "FALLING",
+        "Targets": {
+            "FALLING": ["assert-gpio-log@wP12V_RUNTIME_FLT_NIC0_N.service"]
+        },
+        "Continue": true
+    },
+    {
+        "Name": "wAUX_RUNTIME_FLT_NIC0_N",
+        "LineName": "wAUX_RUNTIME_FLT_NIC0_N",
+        "EventMon": "FALLING",
+        "Targets": {
+            "FALLING": ["assert-gpio-log@wAUX_RUNTIME_FLT_NIC0_N.service"]
+        },
+        "Continue": true
+    },
+    {
+        "Name": "wP12V_SEQPWR_FLT_NIC0_N",
+        "LineName": "wP12V_SEQPWR_FLT_NIC0_N",
+        "EventMon": "FALLING",
+        "Targets": {
+            "FALLING": ["assert-gpio-log@wP12V_SEQPWR_FLT_NIC0_N.service"]
+        },
+        "Continue": true
+    },
+    {
+        "Name": "wAUX_SEQPWR_FLT_NIC0_N",
+        "LineName": "wAUX_SEQPWR_FLT_NIC0_N",
+        "EventMon": "FALLING",
+        "Targets": {
+            "FALLING": ["assert-gpio-log@wAUX_SEQPWR_FLT_NIC0_N.service"]
+        },
+        "Continue": true
+    },
+    {
+        "Name": "FM_P12V_NIC1_FLTB_R_N",
+        "LineName": "FM_P12V_NIC1_FLTB_R_N",
+        "EventMon": "FALLING",
+        "Targets": {
+            "FALLING": ["assert-gpio-log@FM_P12V_NIC1_FLTB_R_N.service"]
+        },
+        "Continue": true
+    },
+    {
+        "Name": "FM_P3V3_NIC1_FAULT_R_N",
+        "LineName": "FM_P3V3_NIC1_FAULT_R_N",
+        "EventMon": "FALLING",
+        "Targets": {
+            "FALLING": ["assert-gpio-log@FM_P3V3_NIC1_FAULT_R_N.service"]
+        },
+        "Continue": true
+    },
+    {
+        "Name": "FM_P12V_NIC0_FLTB_R_N",
+        "LineName": "FM_P12V_NIC0_FLTB_R_N",
+        "EventMon": "FALLING",
+        "Targets": {
+            "FALLING": ["assert-gpio-log@FM_P12V_NIC0_FLTB_R_N.service"]
+        },
+        "Continue": true
+    },
+    {
+        "Name": "FM_P3V3_NIC0_FAULT_R_N",
+        "LineName": "FM_P3V3_NIC0_FAULT_R_N",
+        "EventMon": "FALLING",
+        "Targets": {
+            "FALLING": ["assert-gpio-log@FM_P3V3_NIC0_FAULT_R_N.service"]
+        },
+        "Continue": true
+    },
+    {
+        "Name": "P48V_HS2_FAULT_N_PLD",
+        "LineName": "P48V_HS2_FAULT_N_PLD",
+        "EventMon": "FALLING",
+        "Targets": {
+            "FALLING": ["assert-gpio-log@P48V_HS2_FAULT_N_PLD.service"]
+        },
+        "Continue": true
+    },
+    {
+        "Name": "P48V_HS1_FAULT_N_PLD",
+        "LineName": "P48V_HS1_FAULT_N_PLD",
+        "EventMon": "FALLING",
+        "Targets": {
+            "FALLING": ["assert-gpio-log@P48V_HS1_FAULT_N_PLD.service"]
+        },
+        "Continue": true
+    },
+    {
+        "Name": "P12V_AUX_FAN_OC_PLD_N",
+        "LineName": "P12V_AUX_FAN_OC_PLD_N",
+        "EventMon": "FALLING",
+        "Targets": {
+            "FALLING": ["assert-gpio-log@P12V_AUX_FAN_OC_PLD_N.service"]
+        },
+        "Continue": true
+    },
+    {
+        "Name": "P12V_AUX_FAN_FAULT_PLD_N",
+        "LineName": "P12V_AUX_FAN_FAULT_PLD_N",
+        "EventMon": "FALLING",
+        "Targets": {
+            "FALLING": ["assert-gpio-log@P12V_AUX_FAN_FAULT_PLD_N.service"]
+        },
+        "Continue": true
+    },
+    {
+        "Name": "FM_SYS_THROTTLE_N",
+        "LineName": "FM_SYS_THROTTLE_N",
+        "EventMon": "FALLING",
+        "Targets": {
+            "FALLING": ["assert-gpio-log@FM_SYS_THROTTLE_N.service"]
+        },
+        "Continue": true
+    },
+    {
+        "Name": "OCP_V3_2_PWRBRK_FROM_HOST_ISO_P",
+        "LineName": "OCP_V3_2_PWRBRK_FROM_HOST_ISO_P",
+        "EventMon": "FALLING",
+        "Targets": {
+            "FALLING": ["assert-gpio-log@OCP_V3_2_PWRBRK_FROM_HOST_ISO_P.service"]
+        },
+        "Continue": true
+    },
+    {
+        "Name": "OCP_SFF_PWRBRK_FROM_HOST_ISO_PL",
+        "LineName": "OCP_SFF_PWRBRK_FROM_HOST_ISO_PL",
+        "EventMon": "FALLING",
+        "Targets": {
+            "FALLING": ["assert-gpio-log@OCP_SFF_PWRBRK_FROM_HOST_ISO_PL.service"]
+        },
+        "Continue": true
+    },
+    {
+        "Name": "P12V_AUX_PSU_SMB_ALERT_R_L",
+        "LineName": "P12V_AUX_PSU_SMB_ALERT_R_L",
+        "EventMon": "FALLING",
+        "Targets": {
+            "FALLING": ["assert-gpio-log@P12V_AUX_PSU_SMB_ALERT_R_L.service"]
+        },
+        "Continue": true
+    },
+    {
+        "Name": "P12V_SCM_SENSE_ALERT_R_N",
+        "LineName": "P12V_SCM_SENSE_ALERT_R_N",
+        "EventMon": "FALLING",
+        "Targets": {
+            "FALLING": ["assert-gpio-log@P12V_SCM_SENSE_ALERT_R_N.service"]
+        },
+        "Continue": true
+    },
+    {
+        "Name": "P12V_AUX_NIC1_SENSE_ALERT_R_N",
+        "LineName": "P12V_AUX_NIC1_SENSE_ALERT_R_N",
+        "EventMon": "FALLING",
+        "Targets": {
+            "FALLING": ["assert-gpio-log@P12V_AUX_NIC1_SENSE_ALERT_R_N.service"]
+        },
+        "Continue": true
+    },
+    {
+        "Name": "P12V_AUX_NIC0_SENSE_ALERT_R_N",
+        "LineName": "P12V_AUX_NIC0_SENSE_ALERT_R_N",
+        "EventMon": "FALLING",
+        "Targets": {
+            "FALLING": ["assert-gpio-log@P12V_AUX_NIC0_SENSE_ALERT_R_N.service"]
+        },
+        "Continue": true
+    },
+
+    {
+        "Name": "NODEB_PSU_SMB_ALERT_R_L",
+        "LineName": "NODEB_PSU_SMB_ALERT_R_L",
+        "EventMon": "FALLING",
+        "Targets": {
+            "FALLING": ["assert-gpio-log@NODEB_PSU_SMB_ALERT_R_L.service"]
+        },
+        "Continue": true
+    },
+    {
+        "Name": "NODEA_PSU_SMB_ALERT_R_L",
+        "LineName": "NODEA_PSU_SMB_ALERT_R_L",
+        "EventMon": "FALLING",
+        "Targets": {
+            "FALLING": ["assert-gpio-log@NODEA_PSU_SMB_ALERT_R_L.service"]
+        },
+        "Continue": true
+    },
+    {
+        "Name": "P12V_AUX_FAN_ALERT_PLD_N",
+        "LineName": "P12V_AUX_FAN_ALERT_PLD_N",
+        "EventMon": "FALLING",
+        "Targets": {
+            "FALLING": ["assert-gpio-log@P12V_AUX_FAN_ALERT_PLD_N.service"]
+        },
+        "Continue": true
+    },
+    {
+        "Name": "P52V_SENSE_ALERT_PLD_N",
+        "LineName": "P52V_SENSE_ALERT_PLD_N",
+        "EventMon": "FALLING",
+        "Targets": {
+            "FALLING": ["assert-gpio-log@P52V_SENSE_ALERT_PLD_N.service"]
+        },
+        "Continue": true
+    },
+    {
+        "Name": "CHASSIS3_LEAK_Q_N_PLD",
+        "LineName": "CHASSIS3_LEAK_Q_N_PLD",
+        "EventMon": "FALLING",
+        "Targets": {
+            "FALLING": ["assert-gpio-log@CHASSIS3_LEAK_Q_N_PLD.service"]
+        },
+        "Continue": true
+    },
+    {
+        "Name": "CHASSIS2_LEAK_Q_N_PLD",
+        "LineName": "CHASSIS2_LEAK_Q_N_PLD",
+        "EventMon": "FALLING",
+        "Targets": {
+            "FALLING": ["assert-gpio-log@CHASSIS2_LEAK_Q_N_PLD.service"]
+        },
+        "Continue": true
+    },
+    {
+        "Name": "CHASSIS1_LEAK_Q_N_PLD",
+        "LineName": "CHASSIS1_LEAK_Q_N_PLD",
+        "EventMon": "FALLING",
+        "Targets": {
+            "FALLING": ["assert-gpio-log@CHASSIS1_LEAK_Q_N_PLD.service"]
+        },
+        "Continue": true
+    },
+    {
+        "Name": "CHASSIS0_LEAK_Q_N_PLD",
+        "LineName": "CHASSIS0_LEAK_Q_N_PLD",
+        "EventMon": "FALLING",
+        "Targets": {
+            "FALLING": ["assert-gpio-log@CHASSIS0_LEAK_Q_N_PLD.service"]
+        },
+        "Continue": true
+    },
+    {
+        "Name": "SMB_RJ45_FIO_TMP_ALERT",
+        "LineName": "SMB_RJ45_FIO_TMP_ALERT",
+        "EventMon": "FALLING",
+        "Targets": {
+            "FALLING": ["assert-gpio-log@SMB_RJ45_FIO_TMP_ALERT.service"]
         },
         "Continue": true
     }
diff --git a/meta-facebook/meta-catalina/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend b/meta-facebook/meta-catalina/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend
index 1fce94b..2bab4b7 100644
--- a/meta-facebook/meta-catalina/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend
+++ b/meta-facebook/meta-catalina/recipes-phosphor/gpio/phosphor-gpio-monitor_%.bbappend
@@ -12,6 +12,7 @@
 FILES:${PN} += "${systemd_system_unitdir}/*"
 
 SYSTEMD_SERVICE:${PN}-monitor += " \
+    assert-gpio-log@.service \
     assert-reset-button.service \
     assert-run-power-pg.service \
     deassert-reset-button.service \