wspoon: Configure zone thermal mode properties

Populate the properties on the Control.ThermalMode interface with the
list of supported modes along with setting the default value of the
current mode.

With setting these modes to uppercase, the events must also be updated
to match to effectively load process the event using this property.

Tested:
    Introspected the zone object and verified the values of each
property when fan control initializes the zone.

Requires:
    https://gerrit.openbmc-project.xyz/18474

(From meta-ibm rev: 8e08d602f92301db11e36ededcdd180b703a82b1)

Change-Id: I06cd35957640568d4719489ef17aff7f3d13cd7f
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config-native/events.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config-native/events.yaml
index e726f90..5f6a094 100644
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config-native/events.yaml
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-events-config-native/events.yaml
@@ -455,7 +455,7 @@
       actions:
           - name: use_alternate_events_on_state
             property:
-                value: Custom
+                value: CUSTOM
                 type: std::string
             defevents:
                 - name: default_floor_boundary
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-zone-config-native/zones.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-zone-config-native/zones.yaml
index 29dd2c7..d31b304 100644
--- a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-zone-config-native/zones.yaml
+++ b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/phosphor-fan-control-zone-config-native/zones.yaml
@@ -16,6 +16,30 @@
       default_floor: 8000
       increase_delay: 5
       decrease_interval: 30
+      interfaces:
+          - name: xyz.openbmc_project.Control.ThermalMode
+            properties:
+                - name: Supported
+                  type: array[string]
+                  values:
+                      - value: DEFAULT
+                        description: >
+                            Default thermal control mode
+                      - value: CUSTOM
+                        description: >
+                            Custom thermal control mode for handling the use of
+                            optical cables located behind the GPU exhaust that
+                            could produce overtemp warnings without this mode
+                            enabled.
+                - name: Current
+                  type: string
+                  persist: true
+                  values:
+                      - value: DEFAULT
+                        description: >
+                            Set current thermal control mode to the
+                            default which will be replaced on startup if
+                            another selected mode was persisted.
 
 #Water cooled zones
 - zone_conditions:
@@ -30,3 +54,20 @@
       default_floor: 8000
       increase_delay: 5
       decrease_interval: 30
+      interfaces:
+          - name: xyz.openbmc_project.Control.ThermalMode
+            properties:
+                - name: Supported
+                  type: array[string]
+                  values:
+                      - value: DEFAULT
+                        description: >
+                            Default thermal control mode
+                - name: Current
+                  type: string
+                  persist: true
+                  values:
+                      - value: DEFAULT
+                        description: >
+                            Set current thermal control mode to the
+                            default. No other modes are supported.