Move FSI recipe and services to meta-openpower
FSI is an OpenPower concept.
Change-Id: I0043d6d7b4783179b0893bbf7995aa229df2463f
Signed-off-by: Matt Spinler <spinler@us.ibm.com>
diff --git a/common/recipes-phosphor/fsi/op-fsi.bb b/common/recipes-phosphor/fsi/op-fsi.bb
new file mode 100644
index 0000000..37a326f
--- /dev/null
+++ b/common/recipes-phosphor/fsi/op-fsi.bb
@@ -0,0 +1,21 @@
+SUMMARY = "FSI Services"
+DESCRIPTION = "Install FSI related services"
+PR = "r1"
+
+inherit obmc-phosphor-systemd
+inherit obmc-phosphor-license
+
+TGTFMT = "obmc-power-chassis-on@{0}.target"
+
+TMPL_SCAN = "fsi-scan@.service"
+INSTFMT_SCAN = "fsi-scan@{0}.service"
+FMT_SCAN = "../${TMPL_SCAN}:${TGTFMT}.requires/${INSTFMT_SCAN}"
+
+TMPL_BIND = "fsi-bind@.service"
+INSTFMT_BIND = "fsi-bind@{0}.service"
+FMT_BIND = "../${TMPL_BIND}:${TGTFMT}.requires/${INSTFMT_BIND}"
+
+SYSTEMD_SERVICE_${PN} += "${TMPL_SCAN} ${TMPL_BIND} fsi-enable.service fsi-disable.service"
+
+SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT_SCAN', 'OBMC_CHASSIS_INSTANCES')}"
+SYSTEMD_LINK_${PN} += "${@compose_list(d, 'FMT_BIND', 'OBMC_CHASSIS_INSTANCES')}"
diff --git a/common/recipes-phosphor/fsi/op-fsi/fsi-bind@.service b/common/recipes-phosphor/fsi/op-fsi/fsi-bind@.service
new file mode 100644
index 0000000..77c61f4
--- /dev/null
+++ b/common/recipes-phosphor/fsi/op-fsi/fsi-bind@.service
@@ -0,0 +1,18 @@
+[Unit]
+Description=Bind FSI Driver
+Wants=obmc-power-on@%i.target
+After=obmc-power-on@%i.target
+Wants=obmc-host-start-pre@%i.target
+Before=obmc-host-start-pre@%i.target
+Wants=fsi-scan@%i.service
+Before=fsi-scan@%i.service
+Conflicts=obmc-power-chassis-off@%i.target
+ConditionDirectoryNotEmpty=!/sys/bus/platform/drivers/fsi-master-gpio/fsi-master
+
+[Service]
+ExecStart=/bin/sh -c "echo fsi-master > /sys/bus/platform/drivers/fsi-master-gpio/bind"
+Type=oneshot
+RemainAfterExit=yes
+
+[Install]
+RequiredBy=obmc-power-chassis-on@%i.target
diff --git a/common/recipes-phosphor/fsi/op-fsi/fsi-disable.service b/common/recipes-phosphor/fsi/op-fsi/fsi-disable.service
new file mode 100644
index 0000000..a58af04
--- /dev/null
+++ b/common/recipes-phosphor/fsi/op-fsi/fsi-disable.service
@@ -0,0 +1,8 @@
+[Unit]
+Description=Disable FSI
+Conflicts=fsi-enable.service
+
+[Service]
+ExecStart=/bin/sh -c "echo fsi-master > /sys/bus/platform/drivers/fsi-master-gpio/unbind"
+Type=oneshot
+RemainAfterExit=yes
diff --git a/common/recipes-phosphor/fsi/op-fsi/fsi-enable.service b/common/recipes-phosphor/fsi/op-fsi/fsi-enable.service
new file mode 100644
index 0000000..c5b1ea1
--- /dev/null
+++ b/common/recipes-phosphor/fsi/op-fsi/fsi-enable.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Enable FSI
+Conflicts=fsi-disable.service
+ConditionDirectoryNotEmpty=!/sys/bus/platform/drivers/fsi-master-gpio/fsi-master
+
+[Service]
+ExecStart=/bin/sh -c "echo fsi-master > /sys/bus/platform/drivers/fsi-master-gpio/bind"
+ExecStart=/bin/sh -c "echo 1 > /sys/bus/platform/devices/fsi-master/scan"
+Type=oneshot
+RemainAfterExit=yes
diff --git a/common/recipes-phosphor/fsi/op-fsi/fsi-scan@.service b/common/recipes-phosphor/fsi/op-fsi/fsi-scan@.service
new file mode 100644
index 0000000..8f94e28
--- /dev/null
+++ b/common/recipes-phosphor/fsi/op-fsi/fsi-scan@.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Scan FSI devices
+Wants=obmc-power-on@%i.target
+After=obmc-power-on@%i.target
+Wants=obmc-host-start-pre@%i.target
+Before=obmc-host-start-pre@%i.target
+Conflicts=obmc-power-chassis-off@%i.target
+
+[Service]
+ExecStart=/bin/sh -c "echo 1 > /sys/bus/platform/devices/fsi-master/scan"
+Type=oneshot
+RemainAfterExit=yes
+
+[Install]
+RequiredBy=obmc-power-chassis-on@%i.target