meta-ampere: mtjade: unify gpio handling service

Instead of having many bitbake recipes for Altra GPIO handling,
combining them into a single recipe so that the code look cleaner.

Tested:
1. Check ID button still works.
2. Check hightemp and overtemp handing still works.
3. Check Fault LED works correctly.
4. Check graceful shutdown and Host reboot still work.

Signed-off-by: Thang Q. Nguyen <thang@os.amperecomputing.com>
Change-Id: Ic6eef75702cf0353ae2d84a3cda0ffb84d10f4cc
diff --git a/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling.bb b/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling.bb
new file mode 100644
index 0000000..bf019ed
--- /dev/null
+++ b/meta-ampere/meta-jade/recipes-phosphor/gpio/ampere-gpio-handling.bb
@@ -0,0 +1,71 @@
+SUMMARY = "Ampere Computing LLC Host Gpio Handling"
+PR = "r1"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
+
+inherit obmc-phosphor-systemd
+
+DEPENDS += "virtual/obmc-gpio-monitor"
+RDEPENDS:${PN} += "virtual/obmc-gpio-monitor"
+RDEPENDS:${PN} += "bash"
+
+SRC_URI += " \
+            file://toggle_fault_led.sh \
+            file://ampere_psu_reset_hotswap.sh \
+            file://toggle_identify_led.sh \
+            file://ampere_scp_failover.sh \
+           "
+
+AMPERE_MONITOR_INSTANCES = " \
+                            reboot_ack shutdown_ack id_button iS0_scp_auth_failure \
+                            S0_overtemp S0_hightemp_start S0_hightemp_stop \
+                            S1_overtemp S1_hightemp_start S1_hightemp_stop \
+                            S0_fault_alert_start S0_fault_alert_stop \
+                            S1_fault_alert_start S1_fault_alert_stop \
+                            PSU1_VIN_GOOD PSU2_VIN_GOOD \
+                           "
+
+SYSTEMD_ENVIRONMENT_FILE:${PN} +=" \
+                                  obmc/gpio/reboot_ack \
+                                  obmc/gpio/shutdown_ack \
+                                  obmc/gpio/id_button \
+                                  obmc/gpio/S0_scp_auth_failure \
+                                  obmc/gpio/S0_overtemp \
+                                  obmc/gpio/S0_hightemp_start \
+                                  obmc/gpio/S0_hightemp_stop \
+                                  obmc/gpio/S1_overtemp \
+                                  obmc/gpio/S1_hightemp_start \
+                                  obmc/gpio/S1_hightemp_stop \
+                                  obmc/gpio/S0_fault_alert_start \
+                                  obmc/gpio/S0_fault_alert_stop \
+                                  obmc/gpio/S1_fault_alert_start \
+                                  obmc/gpio/S1_fault_alert_stop \
+                                  obmc/gpio/PSU1_VIN_GOOD \
+                                  obmc/gpio/PSU2_VIN_GOOD \
+                                 "
+
+TMPL = "phosphor-gpio-monitor@.service"
+INSTFMT = "phosphor-gpio-monitor@{0}.service"
+TGT = "multi-user.target"
+FMT = "../${TMPL}:${TGT}.requires/${INSTFMT}"
+
+SYSTEMD_SERVICE:${PN} += " \
+                          ampere-host-shutdown-ack@.service \
+                          ampere_overtemp@.service \
+                          ampere_hightemp_start@.service \
+                          ampere_hightemp_stop@.service \
+                          ampere_fault_led_start@.service \
+                          ampere_fault_led_stop@.service \
+                          psu_hotswap_reset@.service \
+                          id-button-pressed.service \
+                          ampere_scp_failover.service \
+                         "
+SYSTEMD_LINK:${PN} += "${@compose_list(d, 'FMT', 'AMPERE_MONITOR_INSTANCES')}"
+
+do_install() {
+    install -d ${D}${sbindir}
+    install -m 0755 ${WORKDIR}/toggle_fault_led.sh ${D}${sbindir}/
+    install -m 0755 ${WORKDIR}/toggle_identify_led.sh ${D}${sbindir}/
+    install -m 0755 ${WORKDIR}/ampere_psu_reset_hotswap.sh ${D}${sbindir}/
+    install -m 0755 ${WORKDIR}/ampere_scp_failover.sh ${D}${sbindir}/
+}