psu-ng: Store PSU firmware version in errors

If a power supply is reporting a fault, it could be related to the
firmware version running on the supply. Add that information to the
AdditionalData for most errors. The missing error likely does not have
that updated, as you cannot read such information from a power supply
that is not present.

Signed-off-by: Brandon Wyman <bjwyman@gmail.com>
Change-Id: I968d48a3a2f3a56e61789b8e4d9fb2312d504fc7
diff --git a/phosphor-power-supply/power_supply.hpp b/phosphor-power-supply/power_supply.hpp
index 875e714..757171d 100644
--- a/phosphor-power-supply/power_supply.hpp
+++ b/phosphor-power-supply/power_supply.hpp
@@ -193,16 +193,37 @@
         return vinUVFault;
     }
 
+    /**
+     * @brief Returns the device path
+     *
+     * This can be used for error call outs.
+     * Example: /sys/bus/i2c/devices/3-0068
+     */
     const std::string getDevicePath() const
     {
         return pmbusIntf->path();
     }
 
+    /**
+     * @brief Returns this power supplies inventory path.
+     *
+     * This can be used for error call outs.
+     * Example:
+     * /xyz/openbmc_project/inventory/system/chassis/motherboard/powersupply1
+     */
     const std::string& getInventoryPath() const
     {
         return inventoryPath;
     }
 
+    /**
+     * @brief Returns the firmware revision version read from the power supply
+     */
+    const std::string& getFWVersion() const
+    {
+        return fwVersion;
+    }
+
     /** @brief Returns true if the number of failed reads exceeds limit
      * TODO: or CML bit on.
      */
@@ -261,6 +282,9 @@
      */
     std::unique_ptr<phosphor::pmbus::PMBusBase> pmbusIntf;
 
+    /** @brief Stored copy of the firmware version/revision string */
+    std::string fwVersion;
+
     /**
      *  @brief Updates the presence status by querying D-Bus
      *