meta-facebook: greatlakes: add draft fan table

Description:
- Add draft fan table for Great Lakes.
- Will set all PWMs to 70%.

Design:
- Add draft fan table to the default path for phosphor-pid-control
service.

Test Case:

1. Check status of phosphor-pid-control service.
   root@greatlakes:~# systemctl status phosphor-pid-control -l
   ...
   Mar 09 04:40:55 greatlakes swampd[2808]: Zone Id: 1
   Mar 09 04:40:55 greatlakes swampd[2808]: PID name:
   Stepwise_BB_INLET_TEMP_C
   Mar 09 04:40:55 greatlakes swampd[2808]: inputs: BB_INLET_TEMP_C,
   Mar 09 04:40:55 greatlakes swampd[2808]: PID name: fan0 1 2 3
   Mar 09 04:40:55 greatlakes swampd[2808]: inputs: BB_FAN0_TACH_RPM,
   BB_FAN1_TACH_RPM, BB_FAN2_TACH_RPM, BB_FAN3_TACH_RPM,
   Mar 09 04:40:55 greatlakes swampd[2808]: pushing zone 1
   Mar 09 04:40:55 greatlakes swampd[2808]: PID Zone 1 max SetPoint 70
   requested by Stepwise_BB_INLET_TEMP_C BB_FAN0_TACH_RPM
   BB_FAN1_TACH_RPM BB_FAN2_TACH_RPM BB_FAN3_TACH_RPM

2. Check fan PWM was set to 70%.
   root@greatlakes:~# busctl get-property \
   xyz.openbmc_project.FanSensor \
   /xyz/openbmc_project/sensors/fan_pwm/Pwm_1 \
   xyz.openbmc_project.Sensor.Value Value
   d 69.8039

   root@greatlakes:~# busctl get-property \
   xyz.openbmc_project.FanSensor \
   /xyz/openbmc_project/sensors/fan_pwm/Pwm_2 \
   xyz.openbmc_project.Sensor.Value Value
   d 69.8039

   root@greatlakes:~# busctl get-property \
   xyz.openbmc_project.FanSensor \
   /xyz/openbmc_project/sensors/fan_pwm/Pwm_3 \
   xyz.openbmc_project.Sensor.Value Value
   d 69.8039

   root@greatlakes:~# busctl get-property \
   xyz.openbmc_project.FanSensor \
   /xyz/openbmc_project/sensors/fan_pwm/Pwm_4 \
   xyz.openbmc_project.Sensor.Value Value
   d 69.8039

Change-Id: Id2240fe7d2f4dd6521ef88fce8f95f221988ee4c
Signed-off-by: Delphine CC Chiu <Delphine_CC_Chiu@wiwynn.com>
diff --git a/meta-facebook/meta-greatlakes/recipes-phosphor/fans/phosphor-pid-control/config.json b/meta-facebook/meta-greatlakes/recipes-phosphor/fans/phosphor-pid-control/config.json
new file mode 100644
index 0000000..5e2b83c
--- /dev/null
+++ b/meta-facebook/meta-greatlakes/recipes-phosphor/fans/phosphor-pid-control/config.json
@@ -0,0 +1,105 @@
+{
+    "sensors": [
+    {
+        "name": "BB_INLET_TEMP_C",
+        "type": "temp",
+        "readPath": "/xyz/openbmc_project/sensors/temperature/BB_INLET_TEMP_C",
+        "timeout": 0,
+        "ignoreDbusMinMax": true
+    },
+    {
+        "name": "BB_FAN0_TACH_RPM",
+        "type": "fan",
+        "readPath": "/xyz/openbmc_project/sensors/fan_tach/BB_FAN0_TACH_RPM",
+        "writePath": "/xyz/openbmc_project/control/fanpwm/Pwm_1",
+        "min": 0,
+        "max": 255,
+        "ignoreDbusMinMax": true
+    },
+    {
+        "name": "BB_FAN1_TACH_RPM",
+        "type": "fan",
+        "readPath": "/xyz/openbmc_project/sensors/fan_tach/BB_FAN1_TACH_RPM",
+        "writePath": "/xyz/openbmc_project/control/fanpwm/Pwm_2",
+        "min": 0,
+        "max": 255,
+        "ignoreDbusMinMax": true
+    },
+    {
+        "name": "BB_FAN2_TACH_RPM",
+        "type": "fan",
+        "readPath": "/xyz/openbmc_project/sensors/fan_tach/BB_FAN2_TACH_RPM",
+        "writePath": "/xyz/openbmc_project/control/fanpwm/Pwm_3",
+        "min": 0,
+        "max": 255,
+        "ignoreDbusMinMax": true
+    },
+    {
+        "name": "BB_FAN3_TACH_RPM",
+        "type": "fan",
+        "readPath": "/xyz/openbmc_project/sensors/fan_tach/BB_FAN3_TACH_RPM",
+        "writePath": "/xyz/openbmc_project/control/fanpwm/Pwm_4",
+        "min": 0,
+        "max": 255,
+        "ignoreDbusMinMax": true
+    }
+    ],
+    "zones" : [
+        {
+            "id": 1,
+            "failsafePercent": 90.0,
+            "minThermalOutput": 0.0,
+            "cycleTimeBaseMS": 1000,
+            "updateThermalsTimeMS": 1000,
+            "pids": [
+                {
+                    "name": "fan0 1 2 3",
+                    "type": "fan",
+                    "inputs": [
+                        "BB_FAN0_TACH_RPM",
+                        "BB_FAN1_TACH_RPM",
+                        "BB_FAN2_TACH_RPM",
+                        "BB_FAN3_TACH_RPM"
+                    ],
+                    "setpoint": 0.0,
+                    "pid": {
+                        "samplePeriod": 1,
+                        "proportionalCoeff": 0.0,
+                        "integralCoeff": 0.0,
+                        "derivativeCoeff": 0.0,
+                        "feedFwdOffsetCoeff": 0.0,
+                        "feedFwdGainCoeff": 1.0,
+                        "integralLimit_min": 0.0,
+                        "integralLimit_max": 0.0,
+                        "outLim_min": 0.0,
+                        "outLim_max": 100.0,
+                        "slewNeg": 0.0,
+                        "slewPos": 0.0,
+                        "positiveHysteresis": 0,
+                        "negativeHysteresis": 0
+                    }
+                },
+                {
+                    "name": "Stepwise_BB_INLET_TEMP_C",
+                    "type": "stepwise",
+                    "inputs": [
+                        "BB_INLET_TEMP_C"
+                    ],
+                    "setpoint": 0.0,
+                    "pid": {
+                        "samplePeriod": 1,
+                        "isCeiling": false,
+                        "reading": {
+                            "0": 20.0
+                        },
+                        "output": {
+                            "0": 70.0
+                        },
+                        "positiveHysteresis": 0,
+                        "negativeHysteresis": 2
+                    }
+                }
+            ]
+        }
+    ]
+}
diff --git a/meta-facebook/meta-greatlakes/recipes-phosphor/fans/phosphor-pid-control_%.bbappend b/meta-facebook/meta-greatlakes/recipes-phosphor/fans/phosphor-pid-control_%.bbappend
new file mode 100644
index 0000000..dd6006a
--- /dev/null
+++ b/meta-facebook/meta-greatlakes/recipes-phosphor/fans/phosphor-pid-control_%.bbappend
@@ -0,0 +1,10 @@
+FILESEXTRAPATHS:prepend:greatlakes := "${THISDIR}/${PN}:"
+SRC_URI:append:greatlakes = " file://config.json \
+                            "
+
+FILES:${PN}:append:greatlakes = " ${datadir}/swampd/config.json"
+
+do_install:append:greatlakes() {
+    install -d ${D}${datadir}/swampd
+    install -m 0644 -D ${WORKDIR}/config.json ${D}${datadir}/swampd/
+}