kudo_motherboard: Add PID fan table sensor configuration

Add PID fan table sensor configurations for sensors:
       - Temperature Inputs: CPU0_SOC_T
                             CPU0_VRD_TEMP
                             CPU0_DIMMG_TEMP
                             CPU0_NBM_TEMP
                             Mobo_STB_TEMP
                             THERMAL_ZONE0_TEMP
       - Fans:               REAR_FAN012
                             REAR_FAN345
       - Zones: Fan1Zone
       - MinThermalOutput=20
       - FailSafePercent=70

Signed-off-by: Avenash Asai Thambi <avenash.thambi@fii-usa.com>
Change-Id: Ieac4226bb5e792e0b73217c1872e9d4d0a3fc388
diff --git a/configurations/kudo_motherboard.json b/configurations/kudo_motherboard.json
index d5f4eb8..821f98a 100644
--- a/configurations/kudo_motherboard.json
+++ b/configurations/kudo_motherboard.json
@@ -1103,6 +1103,235 @@
                 "Type": "I2CFan"
             },
             {
+                "Class": "fan",
+                "FFGainCoefficient": 1.0,
+                "FFOffCoefficient": 0.0,
+                "ICoefficient": 0.0,
+                "ILimitMax": 0.0,
+                "ILimitMin": 0.0,
+                "Inputs": [
+                    "REAR_FAN0_SPEED",
+                    "REAR_FAN1_SPEED",
+                    "REAR_FAN2_SPEED"
+                ],
+                "Name": "REAR_FAN012",
+                "NegativeHysteresis": 0.0,
+                "OutLimitMax": 100.0,
+                "OutLimitMin": 20.0,
+                "Outputs": [
+                    "REAR_FAN0_PWM",
+                    "REAR_FAN1_PWM",
+                    "REAR_FAN2_PWM"
+                ],
+                "PCoefficient": 0.0,
+                "PositiveHysteresis": 0.0,
+                "SetPoint": 65.0,
+                "SlewNeg": 0.0,
+                "SlewPos": 0.0,
+                "Type": "Pid",
+                "Zones": [
+                    "Fan1Zone"
+                ],
+                "samplePeriod": 0.1
+            },
+            {
+                "Class": "fan",
+                "FFGainCoefficient": 1.0,
+                "FFOffCoefficient": -5.0,
+                "ICoefficient": 0.0,
+                "ILimitMax": 0.0,
+                "ILimitMin": 0.0,
+                "Inputs": [
+                    "REAR_FAN4_SPEED",
+                    "REAR_FAN5_SPEED",
+                    "REAR_FAN3_SPEED"
+                ],
+                "Name": "REAR_FAN345",
+                "NegativeHysteresis": 0.0,
+                "OutLimitMax": 100.0,
+                "OutLimitMin": 20.0,
+                "Outputs": [
+                    "REAR_FAN4_PWM",
+                    "REAR_FAN5_PWM",
+                    "REAR_FAN3_PWM"
+                ],
+                "PCoefficient": 0.0,
+                "PositiveHysteresis": 0.0,
+                "SetPoint": 65.0,
+                "SlewNeg": 0.0,
+                "SlewPos": 0.0,
+                "Type": "Pid",
+                "Zones": [
+                    "Fan1Zone"
+                ],
+                "samplePeriod": 0.1
+            },
+            {
+                "Class": "temp",
+                "FFGainCoefficient": 0.0,
+                "FFOffCoefficient": 0.0,
+                "ICoefficient": -0.1,
+                "ILimitMax": 100.0,
+                "ILimitMin": 20.0,
+                "Inputs": [
+                    "CPU0_SOC_T"
+                ],
+                "Name": "CPU0_SOC_TEMP",
+                "NegativeHysteresis": 0.0,
+                "OutLimitMax": 100.0,
+                "OutLimitMin": 20.0,
+                "Outputs": [],
+                "PCoefficient": -4.5,
+                "PositiveHysteresis": 0.0,
+                "SetPoint": 85.0,
+                "SlewNeg": 0.0,
+                "SlewPos": 0.0,
+                "Type": "Pid",
+                "Zones": [
+                    "Fan1Zone"
+                ],
+                "samplePeriod": 1
+            },
+            {
+                "Class": "temp",
+                "FFGainCoefficient": 0.0,
+                "FFOffCoefficient": 0.0,
+                "ICoefficient": -0.1,
+                "ILimitMax": 100.0,
+                "ILimitMin": 20.0,
+                "Inputs": [
+                    "CPU0_SOC_VRD_T",
+                    "CPU0_DIMM_VRD_T",
+                    "CPU0_CORE_VRD_T",
+                    "CPU0_RCA_VR_T"
+                ],
+                "Name": "CPU0_VRD_TEMP",
+                "NegativeHysteresis": 0.0,
+                "OutLimitMax": 100.0,
+                "OutLimitMin": 20.0,
+                "Outputs": [],
+                "PCoefficient": -2.0,
+                "PositiveHysteresis": 0.0,
+                "SetPoint": 85.0,
+                "SlewNeg": 0.0,
+                "SlewPos": 0.0,
+                "Type": "Pid",
+                "Zones": [
+                    "Fan1Zone"
+                ],
+                "samplePeriod": 1
+            },
+            {
+                "Class": "temp",
+                "FFGainCoefficient": 0.0,
+                "FFOffCoefficient": 0.0,
+                "ICoefficient": -0.1,
+                "ILimitMax": 100.0,
+                "ILimitMin": 20.0,
+                "Inputs": [
+                    "CPU0_DIMMG_T"
+                ],
+                "Name": "CPU0_DIMMG_TEMP",
+                "NegativeHysteresis": 0.0,
+                "OutLimitMax": 100.0,
+                "OutLimitMin": 20.0,
+                "Outputs": [],
+                "PCoefficient": -2.0,
+                "PositiveHysteresis": 0.0,
+                "SetPoint": 60.0,
+                "SlewNeg": 0.0,
+                "SlewPos": 0.0,
+                "Type": "Pid",
+                "Zones": [
+                    "Fan1Zone"
+                ],
+                "samplePeriod": 1
+            },
+            {
+                "Class": "temp",
+                "FFGainCoefficient": 0.0,
+                "FFOffCoefficient": 0.0,
+                "ICoefficient": -0.1,
+                "ILimitMax": 100.0,
+                "ILimitMin": 20.0,
+                "Inputs": [
+                    "CPU0_NBM_T"
+                ],
+                "Name": "CPU0_NBM_TEMP",
+                "NegativeHysteresis": 0.0,
+                "OutLimitMax": 100.0,
+                "OutLimitMin": 20.0,
+                "Outputs": [],
+                "PCoefficient": -2.0,
+                "PositiveHysteresis": 0.0,
+                "SetPoint": 75.0,
+                "SlewNeg": 0.0,
+                "SlewPos": 0.0,
+                "Type": "Pid",
+                "Zones": [
+                    "Fan1Zone"
+                ],
+                "samplePeriod": 1
+            },
+            {
+                "Class": "temp",
+                "FFGainCoefficient": 0.0,
+                "FFOffCoefficient": 0.0,
+                "ICoefficient": -0.1,
+                "ILimitMax": 100.0,
+                "ILimitMin": 20.0,
+                "Inputs": [
+                    "Mobo_STB_T"
+                ],
+                "Name": "Mobo_STB_TEMP",
+                "NegativeHysteresis": 0.0,
+                "OutLimitMax": 100.0,
+                "OutLimitMin": 20.0,
+                "Outputs": [],
+                "PCoefficient": -2.0,
+                "PositiveHysteresis": 0.0,
+                "SetPoint": 85.0,
+                "SlewNeg": 0.0,
+                "SlewPos": 0.0,
+                "Type": "Pid",
+                "Zones": [
+                    "Fan1Zone"
+                ],
+                "samplePeriod": 1
+            },
+            {
+                "Class": "temp",
+                "FFGainCoefficient": 0.0,
+                "FFOffCoefficient": 0.0,
+                "ICoefficient": -0.1,
+                "ILimitMax": 100.0,
+                "ILimitMin": 20.0,
+                "Inputs": [
+                    "zone0_temp"
+                ],
+                "Name": "THERMAL_ZONE0_TEMP",
+                "NegativeHysteresis": 0.0,
+                "OutLimitMax": 100.0,
+                "OutLimitMin": 20.0,
+                "Outputs": [],
+                "PCoefficient": -2.0,
+                "PositiveHysteresis": 0.0,
+                "SetPoint": 190.0,
+                "SlewNeg": 0.0,
+                "SlewPos": 0.0,
+                "Type": "Pid",
+                "Zones": [
+                    "Fan1Zone"
+                ],
+                "samplePeriod": 1
+            },
+            {
+                "FailSafePercent": 70,
+                "MinThermalOutput": 20,
+                "Name": "Fan1Zone",
+                "Type": "Pid.Zone"
+            },
+            {
                 "Address": "0x48",
                 "Bus": 42,
                 "EntityId": 3,