meta-bletchley: update fanX_good and sledX_good LED behaviour

Start fanX_good LED group during sysyem early init.
Add sledX_good LED group start/stop service into obmc-host-startmin@X
and obmc-host-shutdown@X targets.

Signed-off-by: Potin Lai <potin.lai@quantatw.com>
Change-Id: Ibfab75d6f08550806d320b8a95e67d5fd5bedf82
diff --git a/meta-facebook/meta-bletchley/recipes-bletchley/motor-ctrl/files/host-poweroff.conf b/meta-facebook/meta-bletchley/recipes-bletchley/motor-ctrl/files/host-poweroff.conf
new file mode 100644
index 0000000..1a74384
--- /dev/null
+++ b/meta-facebook/meta-bletchley/recipes-bletchley/motor-ctrl/files/host-poweroff.conf
@@ -0,0 +1,3 @@
+[Unit]
+Wants=obmc-led-group-stop@sled%i_good.service
+Before=obmc-led-group-stop@sled%i_good.service
diff --git a/meta-facebook/meta-bletchley/recipes-bletchley/motor-ctrl/files/host-poweron.conf b/meta-facebook/meta-bletchley/recipes-bletchley/motor-ctrl/files/host-poweron.conf
new file mode 100644
index 0000000..d90a63b
--- /dev/null
+++ b/meta-facebook/meta-bletchley/recipes-bletchley/motor-ctrl/files/host-poweron.conf
@@ -0,0 +1,3 @@
+[Unit]
+Wants=obmc-led-group-start@sled%i_good.service
+Before=obmc-led-group-start@sled%i_good.service
diff --git a/meta-facebook/meta-bletchley/recipes-bletchley/motor-ctrl/motor-ctrl_0.1.bb b/meta-facebook/meta-bletchley/recipes-bletchley/motor-ctrl/motor-ctrl_0.1.bb
index 3cab5e2..b0640d9 100644
--- a/meta-facebook/meta-bletchley/recipes-bletchley/motor-ctrl/motor-ctrl_0.1.bb
+++ b/meta-facebook/meta-bletchley/recipes-bletchley/motor-ctrl/motor-ctrl_0.1.bb
@@ -47,3 +47,33 @@
 
 SYSTEMD_SERVICE:${PN} += "host-ac-off@.service"
 SYSTEMD_LINK:${PN} += "${@compose_list(d, 'AC_OFF_INSTFMT', 'OBMC_HOST_INSTANCES')}"
+
+# Host on requires these chassis on
+START_TMPL_CTRL = "obmc-chassis-poweron@.target"
+START_TGTFMT_CTRL = "obmc-host-startmin@{0}.target"
+START_INSTFMT_CTRL = "obmc-chassis-poweron@{0}.target"
+START_FMT_CTRL = "../${START_TMPL_CTRL}:${START_TGTFMT_CTRL}.requires/${START_INSTFMT_CTRL}"
+SYSTEMD_LINK:${PN} += "${@compose_list_zip(d, 'START_FMT_CTRL', 'OBMC_HOST_INSTANCES')}"
+
+# Chassis off requires host off
+STOP_TMPL_CTRL = "obmc-host-stop@.target"
+STOP_TGTFMT_CTRL = "obmc-chassis-poweroff@{0}.target"
+STOP_INSTFMT_CTRL = "obmc-host-stop@{0}.target"
+STOP_FMT_CTRL = "../${STOP_TMPL_CTRL}:${STOP_TGTFMT_CTRL}.requires/${STOP_INSTFMT_CTRL}"
+SYSTEMD_LINK:${PN} += "${@compose_list_zip(d, 'STOP_FMT_CTRL', 'OBMC_HOST_INSTANCES')}"
+
+# Hard power off requires chassis off
+HARD_OFF_TMPL_CTRL = "obmc-chassis-poweroff@.target"
+HARD_OFF_TGTFMT_CTRL = "obmc-chassis-hard-poweroff@{0}.target"
+HARD_OFF_INSTFMT_CTRL = "obmc-chassis-poweroff@{0}.target"
+HARD_OFF_FMT_CTRL = "../${HARD_OFF_TMPL_CTRL}:${HARD_OFF_TGTFMT_CTRL}.requires/${HARD_OFF_INSTFMT_CTRL}"
+SYSTEMD_LINK:${PN} += "${@compose_list_zip(d, 'HARD_OFF_FMT_CTRL', 'OBMC_HOST_INSTANCES')}"
+
+# Host on unit configurations
+HOST_ON_OVERRIDE_CONF_FMT = "host-poweron.conf:host-poweron@{0}.service.d/host-poweron.conf"
+SYSTEMD_OVERRIDE:${PN}:bletchley += "${@compose_list_zip(d, 'HOST_ON_OVERRIDE_CONF_FMT', 'OBMC_HOST_INSTANCES')}"
+
+# Host off unit configurations
+HOST_OFF_OVERRIDE_CONF_FMT = "host-poweroff.conf:host-poweroff@{0}.service.d/host-poweroff.conf"
+SYSTEMD_OVERRIDE:${PN}:bletchley += "${@compose_list_zip(d, 'HOST_OFF_OVERRIDE_CONF_FMT', 'OBMC_HOST_INSTANCES')}"
+
diff --git a/meta-facebook/meta-bletchley/recipes-bletchley/plat-svc/files/bletchley-sys-init.conf b/meta-facebook/meta-bletchley/recipes-bletchley/plat-svc/files/bletchley-sys-init.conf
new file mode 100644
index 0000000..f884f77
--- /dev/null
+++ b/meta-facebook/meta-bletchley/recipes-bletchley/plat-svc/files/bletchley-sys-init.conf
@@ -0,0 +1,11 @@
+[Unit]
+Wants=xyz.openbmc_project.LED.GroupManager.service
+After=xyz.openbmc_project.LED.GroupManager.service
+Wants=obmc-led-group-start@fan0_good.service
+After=obmc-led-group-start@fan0_good.service
+Wants=obmc-led-group-start@fan1_good.service
+After=obmc-led-group-start@fan1_good.service
+Wants=obmc-led-group-start@fan2_good.service
+After=obmc-led-group-start@fan2_good.service
+Wants=obmc-led-group-start@fan3_good.service
+After=obmc-led-group-start@fan3_good.service
diff --git a/meta-facebook/meta-bletchley/recipes-bletchley/plat-svc/plat-svc_0.1.bb b/meta-facebook/meta-bletchley/recipes-bletchley/plat-svc/plat-svc_0.1.bb
index dcbf6e8..99af81d 100644
--- a/meta-facebook/meta-bletchley/recipes-bletchley/plat-svc/plat-svc_0.1.bb
+++ b/meta-facebook/meta-bletchley/recipes-bletchley/plat-svc/plat-svc_0.1.bb
@@ -1,7 +1,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/Apache-2.0;md5=89aea4e17d99a7cacdbeed46a0096b10"
 
-inherit allarch systemd
+inherit allarch systemd obmc-phosphor-systemd
 
 RDEPENDS:${PN} += "bash"
 RDEPENDS:${PN} += "libgpiod-tools"
@@ -23,3 +23,5 @@
     install -d ${D}${systemd_system_unitdir}
     install -m 0644 ${WORKDIR}/bletchley-sys-init.service ${D}${systemd_system_unitdir}
 }
+
+SYSTEMD_OVERRIDE:${PN}:bletchley += "bletchley-sys-init.conf:bletchley-sys-init.service.d/bletchley-sys-init.conf"
diff --git a/meta-facebook/meta-bletchley/recipes-phosphor/leds/phosphor-led-manager_%.bbappend b/meta-facebook/meta-bletchley/recipes-phosphor/leds/phosphor-led-manager_%.bbappend
new file mode 100644
index 0000000..1846c93
--- /dev/null
+++ b/meta-facebook/meta-bletchley/recipes-phosphor/leds/phosphor-led-manager_%.bbappend
@@ -0,0 +1,10 @@
+
+FAN_INSTANCES="0 1 2 3"
+FAN_INSTFMT="obmc-led-group-start@.service:obmc-led-group-start@fan{0}_good.service"
+SYSTEMD_LINK:${PN} += "${@compose_list_zip(d, 'FAN_INSTFMT', 'FAN_INSTANCES')}"
+
+HOST_START_INSTFMT="obmc-led-group-start@.service:obmc-led-group-start@sled{0}_good.service"
+SYSTEMD_LINK:${PN} += "${@compose_list_zip(d, 'HOST_START_INSTFMT', 'OBMC_HOST_INSTANCES')}"
+
+HOST_STOP_INSTFMT="obmc-led-group-stop@.service:obmc-led-group-stop@sled{0}_good.service"
+SYSTEMD_LINK:${PN} += "${@compose_list_zip(d, 'HOST_STOP_INSTFMT', 'OBMC_HOST_INSTANCES')}"