meta-facebook: yosemite4: Set the fan LED to amber or blue
Set the fan led to amber when the fan tach triggers critical threshold.
Test Plan:
Modify the threshold and check if the led is correct.
Change-Id: I1ad360c15b2e4ff9c47d6e0bbc81e3a30ab1cd23
Signed-off-by: Delphine CC Chiu <Delphine_CC_Chiu@wiwynn.com>
diff --git a/meta-facebook/meta-yosemite4/recipes-phosphor/dbus/fan-fault-led/board-0-fan-9.yaml b/meta-facebook/meta-yosemite4/recipes-phosphor/dbus/fan-fault-led/board-0-fan-9.yaml
new file mode 100644
index 0000000..cdf6e69
--- /dev/null
+++ b/meta-facebook/meta-yosemite4/recipes-phosphor/dbus/fan-fault-led/board-0-fan-9.yaml
@@ -0,0 +1,122 @@
+- name: board 0 fan 9 current critical alarm path group
+ class: group
+ group: path
+ members:
+ - meta: PATH
+ path: /xyz/openbmc_project/sensors/fan_tach/FANBOARD0_FAN9_TACH_IL
+ - meta: PATH
+ path: /xyz/openbmc_project/sensors/fan_tach/FANBOARD0_FAN9_TACH_OL
+
+- name: current fan critical alarm property
+ class: group
+ group: property
+ type: boolean
+ members:
+ - interface: xyz.openbmc_project.Sensor.Threshold.Critical
+ meta: PROPERTY
+ property: CriticalAlarmHigh
+ - interface: xyz.openbmc_project.Sensor.Threshold.Critical
+ meta: PROPERTY
+ property: CriticalAlarmLow
+
+- name: board 0 fan 9 critical alarm assert
+ class: watch
+ watch: property
+ paths: board 0 fan 9 current critical alarm path group
+ properties: current fan critical alarm property
+ callback: check if fan critical threshold assert
+
+- name: board 0 fan 9 critical alarm deassert
+ class: watch
+ watch: property
+ paths: board 0 fan 9 current critical alarm path group
+ properties: current fan critical alarm property
+ callback: check if fan critical threshold deassert
+
+- name: check if fan critical threshold assert
+ class: condition
+ condition: count
+ paths: board 0 fan 9 current critical alarm path group
+ properties: current fan critical alarm property
+ callback: set fan fail
+ countop: ">="
+ countbound: 1
+ op: "=="
+ bound: true
+
+- name: check if fan critical threshold deassert
+ class: condition
+ condition: count
+ paths: board 0 fan 9 current critical alarm path group
+ properties: current fan critical alarm property
+ callback: set fan ok
+ countop: "<"
+ countbound: 1
+ op: "=="
+ bound: true
+
+- name: set fan ok group assert
+ class: callback
+ callback: method
+ service: org.freedesktop.systemd1
+ path: /org/freedesktop/systemd1
+ interface: org.freedesktop.systemd1.Manager
+ method: StartUnit
+ args:
+ - value: obmc-led-group-start@fan9_ok.service
+ type: string
+ - value: replace
+ type: string
+
+- name: set fan ok group deassert
+ class: callback
+ callback: method
+ service: org.freedesktop.systemd1
+ path: /org/freedesktop/systemd1
+ interface: org.freedesktop.systemd1.Manager
+ method: StartUnit
+ args:
+ - value: obmc-led-group-stop@fan9_ok.service
+ type: string
+ - value: replace
+ type: string
+
+- name: set fan fail group assert
+ class: callback
+ callback: method
+ service: org.freedesktop.systemd1
+ path: /org/freedesktop/systemd1
+ interface: org.freedesktop.systemd1.Manager
+ method: StartUnit
+ args:
+ - value: obmc-led-group-start@fan9_fail.service
+ type: string
+ - value: replace
+ type: string
+
+- name: set fan fail group deassert
+ class: callback
+ callback: method
+ service: org.freedesktop.systemd1
+ path: /org/freedesktop/systemd1
+ interface: org.freedesktop.systemd1.Manager
+ method: StartUnit
+ args:
+ - value: obmc-led-group-stop@fan9_fail.service
+ type: string
+ - value: replace
+ type: string
+
+- name: set fan ok
+ class: callback
+ callback: group
+ members:
+ - set fan ok group assert
+ - set fan fail group deassert
+
+- name: set fan fail
+ class: callback
+ callback: group
+ members:
+ - set fan fail group assert
+ - set fan ok group deassert