diff --git a/i2c-vr/vr.cpp b/i2c-vr/vr.cpp
index 7280f91..796c9df 100644
--- a/i2c-vr/vr.cpp
+++ b/i2c-vr/vr.cpp
@@ -1,6 +1,7 @@
 #include "vr.hpp"
 
 #include "isl69269/isl69269.hpp"
+#include "mps/mp2x6xx.hpp"
 #include "xdpe1x2xx/xdpe1x2xx.hpp"
 
 #include <map>
@@ -12,19 +13,17 @@
                                          enum VRType vrType, uint16_t bus,
                                          uint16_t address)
 {
-    std::unique_ptr<VoltageRegulator> ret;
     switch (vrType)
     {
         case VRType::XDPE1X2XX:
-            ret = std::make_unique<XDPE1X2XX>(ctx, bus, address);
-            break;
+            return std::make_unique<XDPE1X2XX>(ctx, bus, address);
         case VRType::ISL69269:
-            ret = std::make_unique<ISL69269>(ctx, bus, address);
-            break;
+            return std::make_unique<ISL69269>(ctx, bus, address);
+        case VRType::MP2X6XX:
+            return std::make_unique<MP2X6XX>(ctx, bus, address);
         default:
-            return NULL;
+            return nullptr;
     }
-    return ret;
 }
 
 bool stringToEnum(std::string& vrStr, VRType& vrType)
@@ -32,7 +31,7 @@
     std::map<std::string, enum VRType> VRTypeToString{
         {"XDPE1X2XXFirmware", VRType::XDPE1X2XX},
         {"ISL69269Firmware", VRType::ISL69269},
-    };
+        {"MP2X6XXFirmware", VRType::MP2X6XX}};
 
     if (VRTypeToString.contains(vrStr))
     {
