Add witherspoon fan floor and ceiling events

Initial Witherspoon thermal specs for setting the fan floor and fan
ceiling speeds based on ambient sensor values.

Change-Id: Icb51ec243ff837450d48941b888b40334feb41ff
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config/events.yaml b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config/events.yaml
index 0e041ad..c988723 100644
--- a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config/events.yaml
+++ b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config/events.yaml
@@ -14,6 +14,11 @@
           - /system/chassis/motherboard/fan0
           - /system/chassis/motherboard/fan2
           - /system/chassis/motherboard/fan3
+    - name: zone0_ambient
+      description: Group of ambient temperature sensors for zone 0
+      type: sensors
+      members:
+          - /temperature/ambient
 
 actions:
     - name: count_state_before_speed
@@ -22,6 +27,14 @@
           - count
           - property
           - speed
+    - name: set_floor_from_average_sensor_value
+      description: Set floor speed from first entry with average less than key
+      parameters:
+          - map
+    - name: set_ceiling_from_average_sensor_value
+      description: Set ceiling speed based on key transition values with average
+      parameters:
+          - map
 
 events:
     - name: missing_before_high_speed_air
@@ -92,4 +105,61 @@
           speed:
               value: 10500
               type: uint64_t
-
+    - name: update_air_cooled_floor_speed_based_on_ambient
+      zone_conditions:
+          - name: air_cooled_chassis
+            zones:
+                - 0
+      group: zone0_ambient
+      interface: xyz.openbmc_project.Sensor.Value
+      property:
+          name: Value
+          type: int64_t
+      action:
+          name: set_floor_from_average_sensor_value
+          map:
+              value:
+                  - 27000: 3500
+                  - 32000: 4600
+                  - 37000: 5200
+                  - 40000: 5800
+              type: std::map<int64_t, uint64_t>
+    - name: update_water_cooled_floor_speed_based_on_ambient
+      zone_conditions:
+          - name: water_and_air_cooled_chassis
+            zones:
+                - 0
+      group: zone0_ambient
+      interface: xyz.openbmc_project.Sensor.Value
+      property:
+          name: Value
+          type: int64_t
+      action:
+          name: set_floor_from_average_sensor_value
+          map:
+              value:
+                  - 27000: 3000
+                  - 32000: 4300
+                  - 37000: 5000
+                  - 40000: 5800
+              type: std::map<int64_t, uint64_t>
+    - name: update_ceiling_speed_based_on_ambient
+      zone_conditions:
+          - name: air_cooled_chassis
+            zones:
+                - 0
+          - name: water_and_air_cooled_chassis
+            zones:
+                - 0
+      group: zone0_ambient
+      interface: xyz.openbmc_project.Sensor.Value
+      property:
+          name: Value
+          type: int64_t
+      action:
+          name: set_ceiling_from_average_sensor_value
+          map:
+              value:
+                  - 25000: 7200
+                  - 27000: 10500
+              type: std::map<int64_t, uint64_t>