Add ir35221 bind/unbind service to vrm control

Add service to bind and unbind ir35221 devices so that i2cset/get
won't run into problems with device conflicts during power on/off
script execution.

Resolves openbmc/openbmc#1702

Change-Id: I77020313f11700acaecf0c04f2c67b7ea7b4da6b
Signed-off-by: Christopher Bostic <cbostic@linux.vnet.ibm.com>
diff --git a/meta-witherspoon/recipes-phosphor/chassis/vrm-control.bb b/meta-witherspoon/recipes-phosphor/chassis/vrm-control.bb
index acb4002..e2c09e1 100644
--- a/meta-witherspoon/recipes-phosphor/chassis/vrm-control.bb
+++ b/meta-witherspoon/recipes-phosphor/chassis/vrm-control.bb
@@ -8,17 +8,41 @@
 RDEPENDS_${PN} += "i2c-tools bash"
 
 S = "${WORKDIR}"
-SRC_URI += "file://vrm-control.sh"
+SRC_URI += "file://vrm-control.sh \
+            file://ir35221-unbind-bind.sh"
 
 do_install() {
         install -d ${D}${bindir}
         install -m 0755 ${WORKDIR}/vrm-control.sh ${D}${bindir}/vrm-control.sh
+        install -m 0755 ${WORKDIR}/ir35221-unbind-bind.sh ${D}${bindir}/ir35221-unbind-bind.sh
 }
 
 TMPL = "vrm-control@.service"
 INSTFMT = "vrm-control@{0}.service"
-TGTFMT = "obmc-chassis-poweron@{0}.target"
-FMT = "../${TMPL}:${TGTFMT}.requires/${INSTFMT}"
+TGTFMT_ON = "obmc-chassis-poweron@{0}.target"
+FMT_ON = "../${TMPL}:${TGTFMT_ON}.requires/${INSTFMT}"
 
-SYSTEMD_SERVICE_${PN} += "${TMPL}"
-SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT', 'OBMC_CHASSIS_INSTANCES')}"
+TMPL_ON_IRBIND = "ir35221-on-bind@.service"
+INSTFMT_ON_IRBIND = "ir35221-on-bind@{0}.service"
+FMT_ON_IRBIND = "../${TMPL_ON_IRBIND}:${TGTFMT_ON}.requires/${INSTFMT_ON_IRBIND}"
+
+TMPL_ON_IRUNBIND = "ir35221-on-unbind@.service"
+INSTFMT_ON_IRUNBIND = "ir35221-on-unbind@{0}.service"
+FMT_ON_IRUNBIND = "../${TMPL_ON_IRUNBIND}:${TGTFMT_ON}.requires/${INSTFMT_ON_IRUNBIND}"
+
+TGTFMT_OFF = "obmc-chassis-poweroff@{0}.target"
+
+TMPL_OFF_IRBIND = "ir35221-off-bind@.service"
+INSTFMT_OFF_IRBIND = "ir35221-off-bind@{0}.service"
+FMT_OFF_IRBIND = "../${TMPL_OFF_IRBIND}:${TGTFMT_OFF}.requires/${INSTFMT_OFF_IRBIND}"
+
+TMPL_OFF_IRUNBIND = "ir35221-off-unbind@.service"
+INSTFMT_OFF_IRUNBIND = "ir35221-off-unbind@{0}.service"
+FMT_OFF_IRUNBIND = "../${TMPL_OFF_IRUNBIND}:${TGTFMT_OFF}.requires/${INSTFMT_OFF_IRUNBIND}"
+
+SYSTEMD_SERVICE_${PN} += "${TMPL} ${TMPL_ON_IRUNBIND} ${TMPL_ON_IRBIND} ${TMPL_OFF_IRUNBIND} ${TMPL_OFF_IRBIND}"
+SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT_ON', 'OBMC_CHASSIS_INSTANCES')}"
+SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT_ON_IRBIND', 'OBMC_CHASSIS_INSTANCES')}"
+SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT_ON_IRUNBIND', 'OBMC_CHASSIS_INSTANCES')}"
+SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT_OFF_IRBIND', 'OBMC_CHASSIS_INSTANCES')}"
+SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT_OFF_IRUNBIND', 'OBMC_CHASSIS_INSTANCES')}"