configuration: add fan table in yosemite4 config files

Add fan table in the config files so that the fan table could be created
dynamically according to the FRU devices.

Change-Id: I9895e376daf6ecceab09882b960db3eb3b4c785b
Signed-off-by: Delphine CC Chiu <Delphine_CC_Chiu@wiwynn.com>
diff --git a/configurations/yosemite4_wailuafalls.json b/configurations/yosemite4_wailuafalls.json
index e8ca739..b85b023 100644
--- a/configurations/yosemite4_wailuafalls.json
+++ b/configurations/yosemite4_wailuafalls.json
@@ -1,5 +1,214 @@
 {
-    "Exposes": [],
+    "Exposes": [
+        {
+            "CheckHysteresisWithSetpoint": true,
+            "Class": "temp",
+            "DCoefficient": 0.0,
+            "FFGainCoefficient": 0.0,
+            "FFOffCoefficient": 0.0,
+            "ICoefficient": -0.035,
+            "ILimitMax": 100,
+            "ILimitMin": -50,
+            "Inputs": [
+                "WF_ASIC1_DIMM_A_TEMP_C_12 $bus % 15 * 10 + 2",
+                "WF_ASIC1_DIMM_B_TEMP_C_13 $bus % 15 * 10 + 2",
+                "WF_ASIC1_DIMM_C_TEMP_C_14 $bus % 15 * 10 + 2",
+                "WF_ASIC1_DIMM_D_TEMP_C_15 $bus % 15 * 10 + 2",
+                "WF_ASIC2_DIMM_A_TEMP_C_16 $bus % 15 * 10 + 2",
+                "WF_ASIC2_DIMM_B_TEMP_C_17 $bus % 15 * 10 + 2",
+                "WF_ASIC2_DIMM_C_TEMP_C_18 $bus % 15 * 10 + 2",
+                "WF_ASIC2_DIMM_D_TEMP_C_19 $bus % 15 * 10 + 2"
+            ],
+            "Name": "PID_WF_DIMM $bus % 15 * 10 + 2",
+            "NegativeHysteresis": 2.0,
+            "OutLimitMax": 100,
+            "OutLimitMin": 0,
+            "PCoefficient": -3.0,
+            "PositiveHysteresis": 0.0,
+            "SetPoint": 75.0,
+            "SlewNeg": 0.0,
+            "SlewPos": 0.0,
+            "Type": "Pid",
+            "Zones": [
+                "Zone 1"
+            ]
+        },
+        {
+            "CheckHysteresisWithSetpoint": true,
+            "Class": "temp",
+            "DCoefficient": 0.0,
+            "FFGainCoefficient": 0.0,
+            "FFOffCoefficient": 0.0,
+            "ICoefficient": -0.02,
+            "ILimitMax": 100,
+            "ILimitMin": -50,
+            "Inputs": [
+                "WF_E1S_TEMP_C_20 $bus % 15 * 10 + 2"
+            ],
+            "Name": "PID_WF_E1S $bus % 15 * 10 + 2",
+            "NegativeHysteresis": 2.0,
+            "OutLimitMax": 100,
+            "OutLimitMin": 0,
+            "PCoefficient": -1.5,
+            "PositiveHysteresis": 0.0,
+            "SetPoint": 68.0,
+            "SlewNeg": 0.0,
+            "SlewPos": 0.0,
+            "Type": "Pid",
+            "Zones": [
+                "Zone 1"
+            ]
+        },
+        {
+            "CheckHysteresisWithSetpoint": true,
+            "Class": "temp",
+            "DCoefficient": 0.0,
+            "FFGainCoefficient": 0.0,
+            "FFOffCoefficient": 0.0,
+            "ICoefficient": -0.02,
+            "ILimitMax": 100,
+            "ILimitMin": -50,
+            "Inputs": [
+                "WF_CXL1_CNTR_TEMP_C_2 $bus % 15 * 10 + 2",
+                "WF_CXL2_CNTR_TEMP_C_3 $bus % 15 * 10 + 2"
+            ],
+            "Name": "PID_WF_CXL $bus % 15 * 10 + 2",
+            "NegativeHysteresis": 3.0,
+            "OutLimitMax": 100,
+            "OutLimitMin": 0,
+            "PCoefficient": -3.0,
+            "PositiveHysteresis": 0.0,
+            "SetPoint": 70.0,
+            "SlewNeg": 0.0,
+            "SlewPos": 0.0,
+            "Type": "Pid",
+            "Zones": [
+                "Zone 1"
+            ]
+        },
+        {
+            "Class": "temp",
+            "Inputs": [
+                "WF_1OU_BOARD_INLET_TEMP_C_1 $bus % 15 * 10 + 2",
+                "WF_VR_P0V8_ASIC1_TEMP_C_4 $bus % 15 * 10 + 2",
+                "WF_VR_PVDDQ_CD_ASIC1_TEMP_C_5 $bus % 15 * 10 + 2",
+                "WF_VR_P0V85_ASIC1_TEMP_C_6 $bus % 15 * 10 + 2",
+                "WF_VR_PVDDQ_AB_ASIC1_TEMP_C_7 $bus % 15 * 10 + 2",
+                "WF_VR_P0V8_ASIC2_TEMP_C_8 $bus % 15 * 10 + 2",
+                "WF_VR_PVDDQ_CD_ASIC2_TEMP_C_9 $bus % 15 * 10 + 2",
+                "WF_VR_P0V85_ASIC2_TEMP_C_10 $bus % 15 * 10 + 2",
+                "WF_VR_PVDDQ_AB_ASIC2_TEMP_C_11 $bus % 15 * 10 + 2"
+            ],
+            "Name": "WF_Non_Critical_Sensors $bus % 15 * 10 + 2",
+            "NegativeHysteresis": 0,
+            "Output": [
+                20.0
+            ],
+            "PositiveHysteresis": 0,
+            "Reading": [
+                20.0
+            ],
+            "Type": "Stepwise",
+            "Zones": [
+                "Zone 1"
+            ]
+        },
+        {
+            "Class": "temp",
+            "Inputs": [
+                "WF_ASIC1_DIMM_A_TEMP_C_12 $bus % 15 * 10 + 2",
+                "WF_ASIC1_DIMM_B_TEMP_C_13 $bus % 15 * 10 + 2",
+                "WF_ASIC1_DIMM_C_TEMP_C_14 $bus % 15 * 10 + 2",
+                "WF_ASIC1_DIMM_D_TEMP_C_15 $bus % 15 * 10 + 2",
+                "WF_ASIC2_DIMM_A_TEMP_C_16 $bus % 15 * 10 + 2",
+                "WF_ASIC2_DIMM_B_TEMP_C_17 $bus % 15 * 10 + 2",
+                "WF_ASIC2_DIMM_C_TEMP_C_18 $bus % 15 * 10 + 2",
+                "WF_ASIC2_DIMM_D_TEMP_C_19 $bus % 15 * 10 + 2"
+            ],
+            "Name": "Stepwise_WF_DIMM $bus % 15 * 10 + 2",
+            "NegativeHysteresis": 2,
+            "Output": [
+                20.0,
+                22.0,
+                24.0,
+                26.0,
+                28.0,
+                30.0
+            ],
+            "PositiveHysteresis": 0,
+            "Reading": [
+                65.0,
+                66.0,
+                67.0,
+                68.0,
+                69.0,
+                70.0
+            ],
+            "Type": "Stepwise",
+            "Zones": [
+                "Zone 1"
+            ]
+        },
+        {
+            "Class": "temp",
+            "Inputs": [
+                "WF_E1S_TEMP_C_20 $bus % 15 * 10 + 2"
+            ],
+            "Name": "Stepwise_WF_E1S $bus % 15 * 10 + 2",
+            "NegativeHysteresis": 2,
+            "Output": [
+                20.0,
+                22.0,
+                24.0,
+                26.0,
+                28.0,
+                30.0
+            ],
+            "PositiveHysteresis": 0,
+            "Reading": [
+                58.0,
+                59.0,
+                60.0,
+                61.0,
+                62.0,
+                63.0
+            ],
+            "Type": "Stepwise",
+            "Zones": [
+                "Zone 1"
+            ]
+        },
+        {
+            "Class": "temp",
+            "Inputs": [
+                "WF_CXL1_CNTR_TEMP_C_2 $bus % 15 * 10 + 2",
+                "WF_CXL2_CNTR_TEMP_C_3 $bus % 15 * 10 + 2"
+            ],
+            "Name": "Stepwise_WF_CXL $bus % 15 * 10 + 2",
+            "NegativeHysteresis": 2,
+            "Output": [
+                20.0,
+                22.0,
+                24.0,
+                26.0,
+                28.0,
+                30.0
+            ],
+            "PositiveHysteresis": 0,
+            "Reading": [
+                60.0,
+                61.0,
+                62.0,
+                63.0,
+                64.0,
+                65.0
+            ],
+            "Type": "Stepwise",
+            "Zones": [
+                "Zone 1"
+            ]
+        }
+    ],
     "Name": "Yosemite 4 Wailua Falls Slot $bus % 15",
     "Probe": "xyz.openbmc_project.FruDevice({'BOARD_PRODUCT_NAME': 'Wailua Falls', 'PRODUCT_PRODUCT_NAME': 'Yosemite V4'})",
     "Type": "Board",