diff --git a/phosphor-power-supply/power_supply.hpp b/phosphor-power-supply/power_supply.hpp
index 8bd2a30..149d81f 100644
--- a/phosphor-power-supply/power_supply.hpp
+++ b/phosphor-power-supply/power_supply.hpp
@@ -198,7 +198,8 @@
     bool isFaulted() const
     {
         return (hasCommFault() || vinUVFault || inputFault || voutOVFault ||
-                ioutOCFault || tempFault || pgoodFault || mfrFault);
+                ioutOCFault || voutUVFault || tempFault || pgoodFault ||
+                mfrFault);
     }
 
     /**
@@ -258,6 +259,14 @@
     }
 
     /**
+     * @brief Returns true if VOUT_UV_FAULT occurred.
+     */
+    bool hasVoutUVFault() const
+    {
+        return voutUVFault;
+    }
+
+    /**
      * @brief Returns true if TEMPERATURE fault occurred.
      */
     bool hasTempFault() const
@@ -377,10 +386,15 @@
     /** @brief True if bit 4 of STATUS_WORD low byte is on. */
     bool ioutOCFault = false;
 
+    /** @brief True if bit 7 of STATUS_WORD high byte is on and bit 5 (VOUT_OV)
+     * of low byte is off. */
+    bool voutUVFault = false;
+
     /** @brief True if bit 2 of STATUS_WORD low byte is on. */
     bool tempFault = false;
 
-    /** @brief True if bit 11 or 6 of STATUS_WORD is on. PGOOD# is inactive, or
+    /**
+     * @brief True if bit 11 or 6 of STATUS_WORD is on. PGOOD# is inactive, or
      * the unit is off.
      */
     bool pgoodFault = false;
