Add PID Configurations

Initial PID configurations. For phosphor-pid-control
based off of yaml configuration examples.

Change-Id: Iaf9cce84f10259866594d516fdc1454f1fff6470
Signed-off-by: James Feist <james.feist@linux.intel.com>
diff --git a/configurations/R1000 Chassis.json b/configurations/R1000 Chassis.json
index ed6ed64..9394579 100644
--- a/configurations/R1000 Chassis.json
+++ b/configurations/R1000 Chassis.json
@@ -239,6 +239,169 @@
                 }
             ],
             "Type": "AspeedFan"
+        },
+        {
+            "Class": "fan",
+            "FFGainCoefficient": 0.01,
+            "FFOffCoefficient": 0.0,
+            "ICoefficient": 0.0,
+            "ILimit": {
+                "Max": 0.0,
+                "Min": 0.0
+            },
+            "Index": 1,
+            "Inputs": [
+                "Fan 1a",
+                "Fan 1b",
+                "Pwm 1"
+            ],
+            "Name": "Fan 1",
+            "OutLimit": {
+                "Max": 100.0,
+                "Min": 30.0
+            },
+            "PCoefficient": 0.0,
+            "SetPoint": 90.0,
+            "SlewNeg": 0.0,
+            "SlewPos": 0.0,
+            "Type": "Pid"
+        },
+        {
+            "Class": "fan",
+            "FFGainCoefficient": 0.01,
+            "FFOffCoefficient": 0.0,
+            "ICoefficient": 0.0,
+            "ILimit": {
+                "Max": 0.0,
+                "Min": 0.0
+            },
+            "Index": 1,
+            "Inputs": [
+                "Fan 2a",
+                "Fan 2b",
+                "Pwm 2"
+            ],
+            "Name": "Fan 2",
+            "OutLimit": {
+                "Max": 100.0,
+                "Min": 30.0
+            },
+            "PCoefficient": 0.0,
+            "SetPoint": 90.0,
+            "SlewNeg": 0.0,
+            "SlewPos": 0.0,
+            "Type": "Pid"
+        },
+        {
+            "Class": "fan",
+            "FFGainCoefficient": 0.01,
+            "FFOffCoefficient": 0.0,
+            "ICoefficient": 0.0,
+            "ILimit": {
+                "Max": 0.0,
+                "Min": 0.0
+            },
+            "Index": 1,
+            "Inputs": [
+                "Fan 3a",
+                "Fan 3b",
+                "Pwm 3"
+            ],
+            "Name": "Fan 3",
+            "OutLimit": {
+                "Max": 100.0,
+                "Min": 30.0
+            },
+            "PCoefficient": 0.0,
+            "SetPoint": 90.0,
+            "SlewNeg": 0.0,
+            "SlewPos": 0.0,
+            "Type": "Pid"
+        },
+        {
+            "Class": "fan",
+            "FFGainCoefficient": 0.01,
+            "FFOffCoefficient": 0.0,
+            "ICoefficient": 0.0,
+            "ILimit": {
+                "Max": 0.0,
+                "Min": 0.0
+            },
+            "Index": 1,
+            "Inputs": [
+                "Fan 4a",
+                "Fan 4b",
+                "Pwm 4"
+            ],
+            "Name": "Fan 4",
+            "OutLimit": {
+                "Max": 100.0,
+                "Min": 30.0
+            },
+            "PCoefficient": 0.0,
+            "SetPoint": 90.0,
+            "SlewNeg": 0.0,
+            "SlewPos": 0.0,
+            "Type": "Pid"
+        },
+        {
+            "Class": "fan",
+            "FFGainCoefficient": 0.01,
+            "FFOffCoefficient": 0.0,
+            "ICoefficient": 0.0,
+            "ILimit": {
+                "Max": 0.0,
+                "Min": 0.0
+            },
+            "Index": 1,
+            "Inputs": [
+                "Fan 5a",
+                "Fan 5b",
+                "Pwm 5"
+            ],
+            "Name": "Fan 5",
+            "OutLimit": {
+                "Max": 100.0,
+                "Min": 30.0
+            },
+            "PCoefficient": 0.0,
+            "SetPoint": 90.0,
+            "SlewNeg": 0.0,
+            "SlewPos": 0.0,
+            "Type": "Pid"
+        },
+        {
+            "Class": "fan",
+            "FFGainCoefficient": 0.01,
+            "FFOffCoefficient": 0.0,
+            "ICoefficient": 0.0,
+            "ILimit": {
+                "Max": 0.0,
+                "Min": 0.0
+            },
+            "Index": 1,
+            "Inputs": [
+                "Fan 6a",
+                "Fan 6b",
+                "Pwm 6"
+            ],
+            "Name": "Fan 6",
+            "OutLimit": {
+                "Max": 100.0,
+                "Min": 30.0
+            },
+            "PCoefficient": 0.0,
+            "SetPoint": 90.0,
+            "SlewNeg": 0.0,
+            "SlewPos": 0.0,
+            "Type": "Pid"
+        },
+        {
+            "Index": 1,
+            "MinThermalRpm": 3000,
+            "FailSafePercent": 90,
+            "Name": "Pid 1",
+            "Type": "Pid.Zone"
         }
     ],
     "Name": "R1000 Chassis",
diff --git a/configurations/WFT Baseboard.json b/configurations/WFT Baseboard.json
index 85ddfed..8e3a222 100644
--- a/configurations/WFT Baseboard.json
+++ b/configurations/WFT Baseboard.json
@@ -838,6 +838,30 @@
                 }
             ],
             "Type": "SkylakeCPU"
+        },
+        {
+            "Class": "temp",
+            "FFGainCoefficient": 0.0,
+            "FFOffCoefficient": 0.0,
+            "ICoefficient": -20.0,
+            "ILimit": {
+                "Max": 7000,
+                "Min": 3000
+            },
+            "Index": 1,
+            "Inputs": [
+                "Core 0 CPU0"
+            ],
+            "Name": "Core 0 CPU0",
+            "OutLimit": {
+                "Max": 7000,
+                "Min": 3000
+            },
+            "PCoefficient": -300.0,
+            "SetPoint": 45.0,
+            "SlewNeg": -100,
+            "SlewPos": 0.0,
+            "Type": "Pid"
         }
     ],
     "Name": "WFP Baseboard",
diff --git a/src/EntityManager.cpp b/src/EntityManager.cpp
index a62c36f..36478d7 100644
--- a/src/EntityManager.cpp
+++ b/src/EntityManager.cpp
@@ -94,7 +94,7 @@
 // todo: pass this through nicer
 std::shared_ptr<sdbusplus::asio::connection> SYSTEM_BUS;
 
-const std::regex ILLEGAL_DBUS_REGEX("[^A-Za-z0-9_]");
+const std::regex ILLEGAL_DBUS_REGEX("[^A-Za-z0-9_.]");
 
 void registerCallbacks(boost::asio::io_service &io,
                        std::vector<sdbusplus::bus::match::match> &dbusMatches,