diff --git a/i2c-vr/xdpe1x2xx/xdpe1x2xx.hpp b/i2c-vr/xdpe1x2xx/xdpe1x2xx.hpp
new file mode 100644
index 0000000..53fdcf1
--- /dev/null
+++ b/i2c-vr/xdpe1x2xx/xdpe1x2xx.hpp
@@ -0,0 +1,66 @@
+#pragma once
+
+#include "common/include/i2c/i2c.hpp"
+#include "i2c-vr/vr.hpp"
+
+#include <sdbusplus/async.hpp>
+
+#include <cstdint>
+
+namespace phosphor::software::VR
+{
+
+class XDPE1X2XX : public VoltageRegulator
+{
+  public:
+    XDPE1X2XX(sdbusplus::async::context& ctx, uint16_t bus, uint16_t address);
+
+    sdbusplus::async::task<bool> verifyImage(const uint8_t* image,
+                                             size_t imageSize) final;
+
+    sdbusplus::async::task<bool> updateFirmware(bool force) final;
+    sdbusplus::async::task<bool> reset() final;
+
+    sdbusplus::async::task<bool> getCRC(uint32_t* checksum) final;
+    bool forcedUpdateAllowed() final;
+
+  private:
+    static const int MaxSectCnt = 16;
+    static const int MaxSectDataCnt = 200;
+
+    struct configSect
+    {
+        uint8_t type;
+        uint16_t dataCnt;
+        uint32_t data[MaxSectDataCnt];
+    };
+
+    struct xdpe1x2xxConfig
+    {
+        uint8_t addr;
+        uint16_t totalCnt;
+        uint32_t sumExp;
+        uint8_t sectCnt;
+        struct configSect section[MaxSectCnt];
+    };
+
+    sdbusplus::async::task<bool> getDeviceId(uint8_t* deviceId);
+    sdbusplus::async::task<bool> mfrFWcmd(uint8_t cmd, uint8_t* data,
+                                          uint8_t* resp);
+    sdbusplus::async::task<bool> getRemainingWrites(uint8_t* remain);
+    sdbusplus::async::task<bool> program(bool force);
+
+    int parseImage(const uint8_t* image, size_t imageSize);
+    int checkImage();
+
+    static uint32_t calcCRC32(const uint32_t* data, int len);
+    static int getConfigSize(uint8_t deviceId, uint8_t revision);
+    static int lineSplit(char** dst, char* src, char* delim);
+
+    phosphor::i2c::I2C i2cInterface;
+
+    uint8_t Id;
+    struct xdpe1x2xxConfig configuration;
+};
+
+} // namespace phosphor::software::VR
