configuration: harma: add fan table

1. Add fan table in the config files so that the fan table
could be created dynamically according to the FRU devices.
harma_mb.json, harma_mb_vr_infineon.json

2. Change fan naming from 0-based to 1-based.
harma_fanboard.json

Change-Id: Id3852b2d546cbf02d6f0515a343aab4f4f228a74
Signed-off-by: Daniel Hsu <Daniel-Hsu@quantatw.com>
diff --git a/configurations/meta/harma_mb.json b/configurations/meta/harma_mb.json
index 736fc0f..931d9f8 100644
--- a/configurations/meta/harma_mb.json
+++ b/configurations/meta/harma_mb.json
@@ -1228,7 +1228,343 @@
         }
     },
     {
-        "Exposes": [],
+        "Exposes": [
+            {
+                "Class": "fan",
+                "FFGainCoefficient": 1.0,
+                "FFOffCoefficient": 0.0,
+                "ICoefficient": 0.0,
+                "ILimitMax": 0.0,
+                "ILimitMin": 0.0,
+                "Inputs": [
+                    "FAN_BP1_FAN1_TACH_IL_SPEED_RPM",
+                    "FAN_BP1_FAN1_TACH_OL_SPEED_RPM",
+                    "FAN_BP1_FAN2_TACH_IL_SPEED_RPM",
+                    "FAN_BP1_FAN2_TACH_OL_SPEED_RPM",
+                    "FAN_BP1_FAN3_TACH_IL_SPEED_RPM",
+                    "FAN_BP1_FAN3_TACH_OL_SPEED_RPM",
+                    "FAN_BP1_FAN4_TACH_IL_SPEED_RPM",
+                    "FAN_BP1_FAN4_TACH_OL_SPEED_RPM",
+                    "FAN_BP2_FAN1_TACH_IL_SPEED_RPM",
+                    "FAN_BP2_FAN1_TACH_OL_SPEED_RPM",
+                    "FAN_BP2_FAN2_TACH_IL_SPEED_RPM",
+                    "FAN_BP2_FAN2_TACH_OL_SPEED_RPM",
+                    "FAN_BP2_FAN3_TACH_IL_SPEED_RPM",
+                    "FAN_BP2_FAN3_TACH_OL_SPEED_RPM",
+                    "FAN_BP2_FAN4_TACH_IL_SPEED_RPM",
+                    "FAN_BP2_FAN4_TACH_OL_SPEED_RPM"
+                ],
+                "Name": "All Fan",
+                "OutLimitMax": 100.0,
+                "OutLimitMin": 0.0,
+                "Outputs": [
+                    "FAN_BP1_FAN_PWM",
+                    "FAN_BP1_FAN_PWM",
+                    "FAN_BP1_FAN_PWM",
+                    "FAN_BP1_FAN_PWM",
+                    "FAN_BP1_FAN_PWM",
+                    "FAN_BP1_FAN_PWM",
+                    "FAN_BP1_FAN_PWM",
+                    "FAN_BP1_FAN_PWM",
+                    "FAN_BP2_FAN_PWM",
+                    "FAN_BP2_FAN_PWM",
+                    "FAN_BP2_FAN_PWM",
+                    "FAN_BP2_FAN_PWM",
+                    "FAN_BP2_FAN_PWM",
+                    "FAN_BP2_FAN_PWM",
+                    "FAN_BP2_FAN_PWM",
+                    "FAN_BP2_FAN_PWM"
+                ],
+                "PCoefficient": 0.0,
+                "SlewNeg": 0.0,
+                "SlewPos": 0.0,
+                "Type": "Pid",
+                "Zones": [
+                    "Zone 0"
+                ]
+            },
+            {
+                "CheckHysteresisWithSetpoint": true,
+                "Class": "temp",
+                "DCoefficient": 0.0,
+                "FFGainCoefficient": 0.0,
+                "FFOffCoefficient": 0.0,
+                "ICoefficient": -0.0035,
+                "ILimitMax": 100,
+                "ILimitMin": -50,
+                "InputUnavailableAsFailed": false,
+                "Inputs": [
+                    "MB_CPU_TEMP_C"
+                ],
+                "Name": "PID_MB_CPU",
+                "NegativeHysteresis": 2.0,
+                "OutLimitMax": 100,
+                "OutLimitMin": 0,
+                "PCoefficient": -1.0,
+                "PositiveHysteresis": 0.0,
+                "SetPoint": 79.0,
+                "SlewNeg": 0.0,
+                "SlewPos": 0.0,
+                "Type": "Pid",
+                "Zones": [
+                    "Zone 0"
+                ]
+            },
+            {
+                "CheckHysteresisWithSetpoint": true,
+                "Class": "temp",
+                "DCoefficient": 0.0,
+                "FFGainCoefficient": 0.0,
+                "FFOffCoefficient": 0.0,
+                "ICoefficient": -0.0035,
+                "ILimitMax": 100,
+                "ILimitMin": -50,
+                "InputUnavailableAsFailed": false,
+                "Inputs": [
+                    "MB_DIMM_A0_TEMP_C",
+                    "MB_DIMM_A1_TEMP_C",
+                    "MB_DIMM_A2_TEMP_C",
+                    "MB_DIMM_A4_TEMP_C",
+                    "MB_DIMM_A6_TEMP_C",
+                    "MB_DIMM_A7_TEMP_C",
+                    "MB_DIMM_A8_TEMP_C",
+                    "MB_DIMM_A10_TEMP_C"
+                ],
+                "Name": "PID_MB_DIMM",
+                "NegativeHysteresis": 2.0,
+                "OutLimitMax": 100,
+                "OutLimitMin": 0,
+                "PCoefficient": -3.0,
+                "PositiveHysteresis": 0.0,
+                "SetPoint": 79.0,
+                "SlewNeg": 0.0,
+                "SlewPos": 0.0,
+                "Type": "Pid",
+                "Zones": [
+                    "Zone 0"
+                ]
+            },
+            {
+                "AccumulateSetPoint": true,
+                "CycleIntervalTimeMS": 1000,
+                "FailSafePercent": 85.0,
+                "MinThermalOutput": 0.0,
+                "Name": "Zone 0",
+                "Type": "Pid.Zone",
+                "UpdateThermalsTimeMS": 1000
+            },
+            {
+                "Class": "temp",
+                "InputUnavailableAsFailed": false,
+                "Inputs": [
+                    "SCM_INLET_TEMP_C"
+                ],
+                "Name": "Stepwise_SCM_INLET",
+                "NegativeHysteresis": 2.0,
+                "Output": [
+                    20.0,
+                    22.0,
+                    25.0,
+                    90.0
+                ],
+                "PositiveHysteresis": 0.0,
+                "Reading": [
+                    25.0,
+                    30.0,
+                    35.0,
+                    40.0
+                ],
+                "Type": "Stepwise",
+                "Zones": [
+                    "Zone 0"
+                ]
+            },
+            {
+                "Class": "temp",
+                "InputUnavailableAsFailed": false,
+                "Inputs": [
+                    "MB_CPU_TEMP_C"
+                ],
+                "Name": "Stepwise_MB_CPU",
+                "NegativeHysteresis": 2.0,
+                "Output": [
+                    20.0,
+                    23.0,
+                    25.0,
+                    27.0,
+                    30.0
+                ],
+                "PositiveHysteresis": 0.0,
+                "Reading": [
+                    55.0,
+                    60.0,
+                    65.0,
+                    70.0,
+                    75.0
+                ],
+                "Type": "Stepwise",
+                "Zones": [
+                    "Zone 0"
+                ]
+            },
+            {
+                "Class": "temp",
+                "InputUnavailableAsFailed": false,
+                "Inputs": [
+                    "MB_DIMM_A0_TEMP_C",
+                    "MB_DIMM_A1_TEMP_C",
+                    "MB_DIMM_A2_TEMP_C",
+                    "MB_DIMM_A4_TEMP_C",
+                    "MB_DIMM_A6_TEMP_C",
+                    "MB_DIMM_A7_TEMP_C",
+                    "MB_DIMM_A8_TEMP_C",
+                    "MB_DIMM_A10_TEMP_C"
+                ],
+                "Name": "Stepwise_MB_DIMM",
+                "NegativeHysteresis": 2.0,
+                "Output": [
+                    20.0,
+                    25.0,
+                    30.0
+                ],
+                "PositiveHysteresis": 0.0,
+                "Reading": [
+                    60.0,
+                    70.0,
+                    75.0
+                ],
+                "Type": "Stepwise",
+                "Zones": [
+                    "Zone 0"
+                ]
+            },
+            {
+                "Class": "temp",
+                "InputUnavailableAsFailed": false,
+                "Inputs": [
+                    "MB_VR_CPU_VCORE0_TEMP_C",
+                    "MB_VR_CPU_VCORE1_TEMP_C",
+                    "MB_VR_CPU_PVDD11_TEMP_C",
+                    "MB_VR_CPU_PDDIO_TEMP_C",
+                    "MB_VR_CPU_SOC_TEMP_C"
+                ],
+                "Name": "Stepwise_MB_VR",
+                "NegativeHysteresis": 2.0,
+                "Output": [
+                    20.0,
+                    25.0,
+                    90.0
+                ],
+                "PositiveHysteresis": 0.0,
+                "Reading": [
+                    80.0,
+                    90.0,
+                    100.0
+                ],
+                "Type": "Stepwise",
+                "Zones": [
+                    "Zone 0"
+                ]
+            },
+            {
+                "Class": "temp",
+                "InputUnavailableAsFailed": false,
+                "Inputs": [
+                    "MB_RETIMER0_TEMP_C",
+                    "MB_RETIMER1_TEMP_C"
+                ],
+                "Name": "Stepwise_MB_RETIMER",
+                "NegativeHysteresis": 2.0,
+                "Output": [
+                    20.0,
+                    25.0,
+                    90.0
+                ],
+                "PositiveHysteresis": 0.0,
+                "Reading": [
+                    80.0,
+                    90.0,
+                    100.0
+                ],
+                "Type": "Stepwise",
+                "Zones": [
+                    "Zone 0"
+                ]
+            },
+            {
+                "Class": "temp",
+                "InputUnavailableAsFailed": false,
+                "Inputs": [
+                    "NIC_Temp_1"
+                ],
+                "Name": "Stepwise_NIC",
+                "NegativeHysteresis": 2.0,
+                "Output": [
+                    20.0,
+                    25.0,
+                    90.0
+                ],
+                "PositiveHysteresis": 0.0,
+                "Reading": [
+                    80.0,
+                    90.0,
+                    100.0
+                ],
+                "Type": "Stepwise",
+                "Zones": [
+                    "Zone 0"
+                ]
+            },
+            {
+                "Class": "temp",
+                "InputUnavailableAsFailed": false,
+                "Inputs": [
+                    "MB_E1S0_TEMP_C",
+                    "MB_E1S1_TEMP_C"
+                ],
+                "Name": "Stepwise_E1S",
+                "NegativeHysteresis": 2.0,
+                "Output": [
+                    20.0,
+                    25.0,
+                    90.0
+                ],
+                "PositiveHysteresis": 0.0,
+                "Reading": [
+                    60.0,
+                    65.0,
+                    70.0
+                ],
+                "Type": "Stepwise",
+                "Zones": [
+                    "Zone 0"
+                ]
+            },
+            {
+                "Class": "temp",
+                "InputUnavailableAsFailed": false,
+                "Inputs": [
+                    "PDB_BRICK_TEMP_C"
+                ],
+                "Name": "Stepwise_Brick",
+                "NegativeHysteresis": 2.0,
+                "Output": [
+                    20.0,
+                    25.0,
+                    90.0
+                ],
+                "PositiveHysteresis": 0.0,
+                "Reading": [
+                    80.0,
+                    90.0,
+                    100.0
+                ],
+                "Type": "Stepwise",
+                "Zones": [
+                    "Zone 0"
+                ]
+            }
+        ],
         "Name": "Harma Chassis",
         "Probe": [
             "xyz.openbmc_project.FruDevice({'BOARD_PRODUCT_NAME': 'Harma MB EVT', 'BOARD_PART_NUMBER': '3BF0MMA0040'})",