diff --git a/i2c-vr/isl69269/isl69269.hpp b/i2c-vr/isl69269/isl69269.hpp
new file mode 100644
index 0000000..986c65d
--- /dev/null
+++ b/i2c-vr/isl69269/isl69269.hpp
@@ -0,0 +1,65 @@
+#pragma once
+
+#include "common/include/i2c/i2c.hpp"
+#include "i2c-vr/vr.hpp"
+
+#include <sdbusplus/async.hpp>
+
+#include <cstdint>
+
+namespace phosphor::software::VR
+{
+
+class ISL69269 : public VoltageRegulator
+{
+  public:
+    ISL69269(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> getCRC(uint32_t* checksum) final;
+    sdbusplus::async::task<bool> reset() final;
+
+    bool forcedUpdateAllowed() final;
+
+  private:
+    struct Data
+    {
+        uint8_t len;
+        uint8_t pec;
+        uint8_t addr;
+        uint8_t cmd;
+        uint8_t data[30];
+    };
+
+    struct Configuration
+    {
+        uint8_t addr;
+        uint8_t mode;
+        uint8_t cfgId;
+        uint16_t wrCnt;
+        uint32_t devIdExp;
+        uint32_t devRevExp;
+        uint32_t crcExp;
+        struct Data pData[1024];
+    };
+    sdbusplus::async::task<bool> dmaReadWrite(uint8_t* reg, uint8_t* resp);
+    sdbusplus::async::task<bool> getRemainingWrites(uint8_t* remain);
+    sdbusplus::async::task<bool> getHexMode(uint8_t* mode);
+    sdbusplus::async::task<bool> getDeviceId(uint32_t* deviceId);
+    sdbusplus::async::task<bool> getDeviceRevision(uint32_t* revision);
+    sdbusplus::async::task<bool> program();
+    sdbusplus::async::task<bool> getProgStatus();
+    sdbusplus::async::task<bool> restoreCfg();
+
+    bool parseImage(const uint8_t* image, size_t imageSize);
+    bool checkImage();
+
+    phosphor::i2c::I2C i2cInterface;
+    uint8_t mode;
+
+    struct Configuration configuration;
+};
+} // namespace phosphor::software::VR
