Add Airflow virtual sensor support

Added support in the machine layer for Airflow sensor as
virtual sensor.

TESTED : Built Facebook YosemiteV2 images and loaded on the target hardware.
Verified the airflow sensor values in the phosphor-virtual-sensor
dbus objects.

Signed-off-by: Kumar Thangavel <thangavel.k@hcl.com>
Change-Id: I46b377cc119a31f76286ba2d03f14764f578283f
diff --git a/meta-facebook/recipes-fb/packagegroups/packagegroup-fb-apps.bb b/meta-facebook/recipes-fb/packagegroups/packagegroup-fb-apps.bb
index 86fac88..b2ec84b 100644
--- a/meta-facebook/recipes-fb/packagegroups/packagegroup-fb-apps.bb
+++ b/meta-facebook/recipes-fb/packagegroups/packagegroup-fb-apps.bb
@@ -52,4 +52,5 @@
         ipmitool \
         phosphor-post-code-manager \
         phosphor-host-postd \
+        phosphor-virtual-sensor \
         "
diff --git a/meta-facebook/recipes-phosphor/sensors/phosphor-virtual-sensor/tiogapass/tiogapass_sensor_config.json b/meta-facebook/recipes-phosphor/sensors/phosphor-virtual-sensor/tiogapass/tiogapass_sensor_config.json
new file mode 100644
index 0000000..a394fae
--- /dev/null
+++ b/meta-facebook/recipes-phosphor/sensors/phosphor-virtual-sensor/tiogapass/tiogapass_sensor_config.json
@@ -0,0 +1,46 @@
+[
+	{
+		"Desc" :
+		{
+			"Name" : "Virtual_Inlet_Temp",
+			"SensorType" : "temperature"
+		},
+		"Threshold" :
+		{
+			"CriticalHigh": 90,
+			"CriticalLow": 20,
+			"WarningHigh": 70,
+			"WarningLow": 30
+		},
+		"Params":
+		{
+			"ConstParam" :
+			[
+				{
+					"ParamName" : "P1",
+					"Value" : 1.1
+				}
+			],
+			"DbusParam" :
+			[
+				{
+					"ParamName" : "P2",
+					"Desc" :
+					{
+						"Name" : "MB_INLET_TEMP",
+						"SensorType" : "temperature"
+					}
+				},
+				{
+					"ParamName" : "P3",
+					"Desc" :
+					{
+						"Name" : "MB_FAN0_TACH",
+						"SensorType" : "fan_tach"
+					}
+				}
+			]
+		},
+		"Expression" : "P1 * (P2 + 5 - P3 * 0.01)"
+	}
+]
diff --git a/meta-facebook/recipes-phosphor/sensors/phosphor-virtual-sensor/yosemitev2/yosemitev2_sensor_config.json b/meta-facebook/recipes-phosphor/sensors/phosphor-virtual-sensor/yosemitev2/yosemitev2_sensor_config.json
new file mode 100644
index 0000000..c56712d
--- /dev/null
+++ b/meta-facebook/recipes-phosphor/sensors/phosphor-virtual-sensor/yosemitev2/yosemitev2_sensor_config.json
@@ -0,0 +1,51 @@
+[
+  {
+		"Desc" :
+		{
+			"Name" : "Virtual_CFM_Sensor",
+			"SensorType" : "airflow"
+		},
+		"Threshold" :
+		{
+			"CriticalHigh": 40,
+			"CriticalLow": 10,
+			"WarningHigh": 30,
+			"WarningLow": 15
+		},
+		"Params":
+		{
+			"ConstParam" :
+			[
+				{
+					"ParamName" : "P1",
+					"Value" : 0.00565
+				},
+				{
+					"ParamName" : "P2",
+					"Value" : 3.7427
+				}
+			],
+			"DbusParam" :
+			[
+				{
+					"ParamName" : "P3",
+					"Desc" :
+					{
+						"Name" : "SP_FAN0_TACH",
+						"SensorType" : "fan_tach"
+					}
+				},
+				{
+					"ParamName" : "P4",
+					"Desc" :
+					{
+						"Name" : "SP_FAN1_TACH",
+						"SensorType" : "fan_tach"
+					}
+				}
+			]
+		},
+		"Expression" : "(P3 * P1) + (P4 * P1) - P2"
+	}
+]
+
diff --git a/meta-facebook/recipes-phosphor/sensors/phosphor-virtual-sensor_%.bbappend b/meta-facebook/recipes-phosphor/sensors/phosphor-virtual-sensor_%.bbappend
new file mode 100644
index 0000000..94650ba
--- /dev/null
+++ b/meta-facebook/recipes-phosphor/sensors/phosphor-virtual-sensor_%.bbappend
@@ -0,0 +1,11 @@
+FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}/${MACHINE}:"
+
+SRC_URI_append = " file://${MACHINE}_sensor_config.json"
+
+do_install_append() {
+
+    install -d ${D}/usr/share/phosphor-virtual-sensor
+
+    install -m 0644 -D ${WORKDIR}/${MACHINE}_sensor_config.json \
+                   ${D}/usr/share/phosphor-virtual-sensor/virtual_sensor_config.json
+}