witherspoon: Add fan speed inc/dec control based on dimm temps

Created an event to increase or decrease fan speeds based on dimm
temperature, which includes having a precondition of both OCCs being
active, similar to the core temps.

Change-Id: Ia1bf52d566aa6370644f6bf68da928b51c2a6eba
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
diff --git a/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config-native/events.yaml b/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config-native/events.yaml
index d87c197..00dcd6c 100644
--- a/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config-native/events.yaml
+++ b/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config-native/events.yaml
@@ -87,6 +87,26 @@
       members:
           - /temperature/p0_vdd_temp
           - /temperature/p1_vdd_temp
+    - name: zone0_dimms
+      description: Group of dimm temperature sensors for zone 0
+      type: /xyz/openbmc_project/sensors
+      members:
+          - /temperature/dimm0_temp
+          - /temperature/dimm1_temp
+          - /temperature/dimm2_temp
+          - /temperature/dimm3_temp
+          - /temperature/dimm4_temp
+          - /temperature/dimm5_temp
+          - /temperature/dimm6_temp
+          - /temperature/dimm7_temp
+          - /temperature/dimm8_temp
+          - /temperature/dimm9_temp
+          - /temperature/dimm10_temp
+          - /temperature/dimm11_temp
+          - /temperature/dimm12_temp
+          - /temperature/dimm13_temp
+          - /temperature/dimm14_temp
+          - /temperature/dimm15_temp
 
 preconditions:
     - name: property_states_match
@@ -379,3 +399,79 @@
               type: uint64_t
       timer:
           interval: 15
+    - name: speed_increase_changes_based_on_dimm_temps
+      zone_conditions:
+          - name: air_cooled_chassis
+            zones:
+                - 0
+          - name: water_and_air_cooled_chassis
+            zones:
+                - 0
+      precondition:
+          name: property_states_match
+          groups:
+              - name: occ0_object
+                interface: org.open_power.OCC.Status
+                property:
+                    name: OccActive
+                    type: bool
+                    value: true
+              - name: occ1_object
+                interface: org.open_power.OCC.Status
+                property:
+                    name: OccActive
+                    type: bool
+                    value: true
+      group: zone0_dimms
+      interface: xyz.openbmc_project.Sensor.Value
+      property:
+          name: Value
+          type: int64_t
+      action:
+          name: set_net_increase_speed
+          property: 74000
+          factor:
+              value: 1000
+              type: int64_t
+          delta:
+              value: 200
+              type: uint64_t
+    - name: speed_decrease_changes_based_on_dimm_temps
+      zone_conditions:
+          - name: air_cooled_chassis
+            zones:
+                - 0
+          - name: water_and_air_cooled_chassis
+            zones:
+                - 0
+      precondition:
+          name: property_states_match
+          groups:
+              - name: occ0_object
+                interface: org.open_power.OCC.Status
+                property:
+                    name: OccActive
+                    type: bool
+                    value: true
+              - name: occ1_object
+                interface: org.open_power.OCC.Status
+                property:
+                    name: OccActive
+                    type: bool
+                    value: true
+      group: zone0_dimms
+      interface: xyz.openbmc_project.Sensor.Value
+      property:
+          name: Value
+          type: int64_t
+      action:
+          name: set_net_decrease_speed
+          property: 71000
+          factor:
+              value: 1000
+              type: int64_t
+          delta:
+              value: 10
+              type: uint64_t
+      timer:
+          interval: 15