diff --git a/phosphor-regulators/src/config_file_parser.cpp b/phosphor-regulators/src/config_file_parser.cpp
index 9ac6060..cdf758e 100644
--- a/phosphor-regulators/src/config_file_parser.cpp
+++ b/phosphor-regulators/src/config_file_parser.cpp
@@ -17,6 +17,7 @@
 #include "config_file_parser.hpp"
 
 #include "config_file_parser_error.hpp"
+#include "i2c_interface.hpp"
 #include "pmbus_utils.hpp"
 
 #include <exception>
@@ -102,9 +103,8 @@
     }
     else if (element.contains("i2c_write_bit"))
     {
-        // TODO: Not implemented yet
-        // action = parseI2CWriteBit(element["i2c_write_bit"]);
-        // ++propertyCount;
+        action = parseI2CWriteBit(element["i2c_write_bit"]);
+        ++propertyCount;
     }
     else if (element.contains("i2c_write_byte"))
     {
@@ -194,6 +194,32 @@
     return chassis;
 }
 
+std::unique_ptr<I2CWriteBitAction> parseI2CWriteBit(const json& element)
+{
+    verifyIsObject(element);
+    unsigned int propertyCount{0};
+
+    // Required register property
+    const json& regElement = getRequiredProperty(element, "register");
+    uint8_t reg = parseStringToUint8(regElement);
+    ++propertyCount;
+
+    // Required position property
+    const json& positionElement = getRequiredProperty(element, "position");
+    uint8_t position = parseBitPosition(positionElement);
+    ++propertyCount;
+
+    // Required value property
+    const json& valueElement = getRequiredProperty(element, "value");
+    uint8_t value = parseBitValue(valueElement);
+    ++propertyCount;
+
+    // Verify no invalid properties exist
+    verifyPropertyCount(element, propertyCount);
+
+    return std::make_unique<I2CWriteBitAction>(reg, position, value);
+}
+
 std::unique_ptr<PMBusWriteVoutCommandAction>
     parsePMBusWriteVoutCommand(const json& element)
 {
