diff --git a/phosphor-regulators/src/pmbus_utils.hpp b/phosphor-regulators/src/pmbus_utils.hpp
index 93d2dce..438ee46 100644
--- a/phosphor-regulators/src/pmbus_utils.hpp
+++ b/phosphor-regulators/src/pmbus_utils.hpp
@@ -224,6 +224,26 @@
 }
 
 /**
+ * Converts a linear data format output voltage value to a volts value.
+ *
+ * This data format consists of the following:
+ *   - Two byte value
+ *   - 16-bit unsigned mantissa value stored in the two bytes
+ *   - 5-bit signed exponent value that is not stored in the two bytes
+ *
+ * @param value linear data format output voltage value
+ * @param exponent exponent value obtained from VOUT_MODE or device
+ *        documentation
+ * @return normal decimal number
+ */
+inline double convertFromVoutLinear(uint16_t value, int8_t exponent)
+{
+    // compute value as mantissa * 2^(exponent)
+    double decimal = value * std::pow(2.0, exponent);
+    return decimal;
+}
+
+/**
  * Converts a volts value to the linear data format for output voltage.
  *
  * This data format consists of the following:
diff --git a/phosphor-regulators/test/pmbus_utils_tests.cpp b/phosphor-regulators/test/pmbus_utils_tests.cpp
index 96e10bd..8e92151 100644
--- a/phosphor-regulators/test/pmbus_utils_tests.cpp
+++ b/phosphor-regulators/test/pmbus_utils_tests.cpp
@@ -254,6 +254,33 @@
     EXPECT_DOUBLE_EQ(pmbus_utils::convertFromLinear(value), -16);
 }
 
+TEST(PMBusUtilsTests, ConvertFromVoutLinear)
+{
+    uint16_t value;
+    int8_t exponent;
+
+    // mantissa : 1, exponent : 2, decimal = 1 * 2^2 = 4
+    value = 0x0001;
+    exponent = 2;
+    EXPECT_DOUBLE_EQ(pmbus_utils::convertFromVoutLinear(value, exponent), 4);
+
+    // mantissa : 15, exponent : 0, decimal = 15 * 2^0 = 15
+    value = 0x000f;
+    exponent = 0;
+    EXPECT_DOUBLE_EQ(pmbus_utils::convertFromVoutLinear(value, exponent), 15);
+
+    // mantissa : 255, exponent : -3, decimal = 255 * 2^-3 = 31.875
+    value = 0x00ff;
+    exponent = -3;
+    EXPECT_DOUBLE_EQ(pmbus_utils::convertFromVoutLinear(value, exponent),
+                     31.875);
+
+    // mantissa : 0, exponent : 10, decimal = 0 * 2^10 = 0
+    value = 0x0000;
+    exponent = 10;
+    EXPECT_DOUBLE_EQ(pmbus_utils::convertFromVoutLinear(value, exponent), 0);
+}
+
 TEST(PMBusUtilsTests, ConvertToVoutLinear)
 {
     double volts;
