Add CPLD class for Mihawk platform

If PGOOD signal is abnormal when chassis power_on, read
Mihawk's CPLD-register via I2C to confirm the error.

First, confirm whether the power_on_error signal is 1
when chassis power_on(1 means abnormal).
If the signal is 1, read the error-code-register to
analysis reason.

Second, runtime to confirm whether the power_ready_error
signal is 1 after chassis power_on(1 means abnormal).
If the signal is 1, read the error-code-register to
analysis reason and shutdown the chassis.

Tested:
Use command "obmcutil chassiskill" to trigger PGOOD error
action analysis during chassis power on.

Signed-off-by: Andy YF Wang <Andy_YF_Wang@wistron.com>
Change-Id: I5f9c0d508627324a6c784ded125c28f0437bf52d
Signed-off-by: Alvin Wang <alvinwang@msn.com>
diff --git a/org/open_power/Witherspoon/Fault.errors.yaml b/org/open_power/Witherspoon/Fault.errors.yaml
index 668568d..37b69a4 100644
--- a/org/open_power/Witherspoon/Fault.errors.yaml
+++ b/org/open_power/Witherspoon/Fault.errors.yaml
@@ -24,6 +24,117 @@
 - name: PowerOnFailure
   description: System power failed to turn on
 
+- name: ErrorCode0
+  description: Read CPLD-register fail
+
+- name: ErrorCode1
+  description: CPLD's error reason is PSU0_PGOOD fail
+
+- name: ErrorCode2
+  description: CPLD's error reason is PSU1_PGOOD fail
+
+- name: ErrorCode3
+  description: CPLD's error reason is 240Va_Fault_A fail
+
+- name: ErrorCode4
+  description: CPLD's error reason is 240Va_Fault_B fail
+
+- name: ErrorCode5
+  description: CPLD's error reason is 240Va_Fault_C fail
+
+- name: ErrorCode6
+  description: CPLD's error reason is 240Va_Fault_D fail
+
+- name: ErrorCode7
+  description: CPLD's error reason is 240Va_Fault_E fail
+
+- name: ErrorCode8
+  description: CPLD's error reason is 240Va_Fault_F fail
+
+- name: ErrorCode9
+  description: CPLD's error reason is 240Va_Fault_G fail
+
+- name: ErrorCode10
+  description: CPLD's error reason is 240Va_Fault_H fail
+
+- name: ErrorCode11
+  description: CPLD's error reason is 240Va_Fault_J fail
+
+- name: ErrorCode12
+  description: CPLD's error reason is 240Va_Fault_K fail
+
+- name: ErrorCode13
+  description: CPLD's error reason is 240Va_Fault_L fail
+
+- name: ErrorCode14
+  description: CPLD's error reason is P5V_pgood fail
+
+- name: ErrorCode15
+  description: CPLD's error reason is P3V3_pgood fail
+
+- name: ErrorCode16
+  description: CPLD's error reason is P1V8_pgood fail
+
+- name: ErrorCode17
+  description: CPLD's error reason is P1V1_pgood fail
+
+- name: ErrorCode18
+  description: CPLD's error reason is P0V9_pgood fail
+
+- name: ErrorCode19
+  description: CPLD's error reason is P2V5A_pgood fail
+
+- name: ErrorCode20
+  description: CPLD's error reason is P2V5B_pgood fail
+
+- name: ErrorCode21
+  description: CPLD's error reason is Vdn0_pgood fail
+
+- name: ErrorCode22
+  description: CPLD's error reason is Vdn1_pgood fail
+
+- name: ErrorCode23
+  description: CPLD's error reason is P1V5_pgood fail
+
+- name: ErrorCode24
+  description: CPLD's error reason is Vio0_pgood fail
+
+- name: ErrorCode25
+  description: CPLD's error reason is Vio1_pgood fail
+
+- name: ErrorCode26
+  description: CPLD's error reason is Vdd0_pgood fail
+
+- name: ErrorCode27
+  description: CPLD's error reason is Vcs0_pgood fail
+
+- name: ErrorCode28
+  description: CPLD's error reason is Vdd1_pgood fail
+
+- name: ErrorCode29
+  description: CPLD's error reason is Vcs1_pgood fail
+
+- name: ErrorCode30
+  description: CPLD's error reason is Vddr0_pgood fail
+
+- name: ErrorCode31
+  description: CPLD's error reason is Vtt0_pgood fail
+
+- name: ErrorCode32
+  description: CPLD's error reason is Vddr1_pgood fail
+
+- name: ErrorCode33
+  description: CPLD's error reason is Vtt1_pgood fail
+
+- name: ErrorCode34
+  description: CPLD's error reason is GPU0_pgood fail
+
+- name: ErrorCode35
+  description: CPLD's error reason is GPU1_pgood fail
+
+- name: ErrorCode36
+  description: CPLD's error reason is PSU0&PSU1_pgood fail
+
 - name: PowerSequencerVoltageFault
   description: The power sequencer chip detected a voltage fault
 
diff --git a/org/open_power/Witherspoon/Fault.metadata.yaml b/org/open_power/Witherspoon/Fault.metadata.yaml
index c8bfab8..44ff969 100644
--- a/org/open_power/Witherspoon/Fault.metadata.yaml
+++ b/org/open_power/Witherspoon/Fault.metadata.yaml
@@ -52,6 +52,117 @@
 - name: PowerOnFailure
   level: ERR
 
+- name: ErrorCode0
+  level: ERR
+
+- name: ErrorCode1
+  level: ERR
+
+- name: ErrorCode2
+  level: ERR
+
+- name: ErrorCode3
+  level: ERR
+
+- name: ErrorCode4
+  level: ERR
+
+- name: ErrorCode5
+  level: ERR
+
+- name: ErrorCode6
+  level: ERR
+
+- name: ErrorCode7
+  level: ERR
+
+- name: ErrorCode8
+  level: ERR
+
+- name: ErrorCode9
+  level: ERR
+
+- name: ErrorCode10
+  level: ERR
+
+- name: ErrorCode11
+  level: ERR
+
+- name: ErrorCode12
+  level: ERR
+
+- name: ErrorCode13
+  level: ERR
+
+- name: ErrorCode14
+  level: ERR
+
+- name: ErrorCode15
+  level: ERR
+
+- name: ErrorCode16
+  level: ERR
+
+- name: ErrorCode17
+  level: ERR
+
+- name: ErrorCode18
+  level: ERR
+
+- name: ErrorCode19
+  level: ERR
+
+- name: ErrorCode20
+  level: ERR
+
+- name: ErrorCode21
+  level: ERR
+
+- name: ErrorCode22
+  level: ERR
+
+- name: ErrorCode23
+  level: ERR
+
+- name: ErrorCode24
+  level: ERR
+
+- name: ErrorCode25
+  level: ERR
+
+- name: ErrorCode26
+  level: ERR
+
+- name: ErrorCode27
+  level: ERR
+
+- name: ErrorCode28
+  level: ERR
+
+- name: ErrorCode29
+  level: ERR
+
+- name: ErrorCode30
+  level: ERR
+
+- name: ErrorCode31
+  level: ERR
+
+- name: ErrorCode32
+  level: ERR
+
+- name: ErrorCode33
+  level: ERR
+
+- name: ErrorCode34
+  level: ERR
+
+- name: ErrorCode35
+  level: ERR
+
+- name: ErrorCode36
+  level: ERR
+
 - name: PowerSequencerVoltageFault
   level: ERR
   meta: