diff --git a/tools/i2c/i2c.cpp b/tools/i2c/i2c.cpp
index 0dbfe9a..f361be5 100644
--- a/tools/i2c/i2c.cpp
+++ b/tools/i2c/i2c.cpp
@@ -358,18 +358,17 @@
     }
 }
 
-std::unique_ptr<I2CInterface> I2CDevice::create(uint8_t busId, uint8_t devAddr,
-                                                InitialState initialState,
-                                                int maxRetries)
+std::unique_ptr<I2CInterface> I2CDevice::create(
+    uint8_t busId, uint8_t devAddr, InitialState initialState, int maxRetries)
 {
     std::unique_ptr<I2CDevice> dev(
         new I2CDevice(busId, devAddr, initialState, maxRetries));
     return dev;
 }
 
-std::unique_ptr<I2CInterface> create(uint8_t busId, uint8_t devAddr,
-                                     I2CInterface::InitialState initialState,
-                                     int maxRetries)
+std::unique_ptr<I2CInterface>
+    create(uint8_t busId, uint8_t devAddr,
+           I2CInterface::InitialState initialState, int maxRetries)
 {
     return I2CDevice::create(busId, devAddr, initialState, maxRetries);
 }
diff --git a/tools/i2c/i2c.hpp b/tools/i2c/i2c.hpp
index 5a01ebf..5bd049f 100644
--- a/tools/i2c/i2c.hpp
+++ b/tools/i2c/i2c.hpp
@@ -24,8 +24,7 @@
     explicit I2CDevice(uint8_t busId, uint8_t devAddr,
                        InitialState initialState = InitialState::OPEN,
                        int maxRetries = 0) :
-        busId(busId),
-        devAddr(devAddr), maxRetries(maxRetries),
+        busId(busId), devAddr(devAddr), maxRetries(maxRetries),
         busStr("/dev/i2c-" + std::to_string(busId))
     {
         if (initialState == InitialState::OPEN)
diff --git a/tools/i2c/i2c_interface.hpp b/tools/i2c/i2c_interface.hpp
index 77b3d7b..637794b 100644
--- a/tools/i2c/i2c_interface.hpp
+++ b/tools/i2c/i2c_interface.hpp
@@ -17,8 +17,7 @@
   public:
     explicit I2CException(const std::string& info, const std::string& bus,
                           uint8_t addr, int errorCode = 0) :
-        bus(bus),
-        addr(addr), errorCode(errorCode)
+        bus(bus), addr(addr), errorCode(errorCode)
     {
         std::stringstream ss;
         ss << "I2CException: " << info << ": bus " << bus << ", addr 0x"
diff --git a/tools/power-utils/updater.cpp b/tools/power-utils/updater.cpp
index 0b33c95..5c4f7f5 100644
--- a/tools/power-utils/updater.cpp
+++ b/tools/power-utils/updater.cpp
@@ -101,9 +101,9 @@
 
 Updater::Updater(const std::string& psuInventoryPath,
                  const std::string& devPath, const std::string& imageDir) :
-    bus(sdbusplus::bus::new_default()),
-    psuInventoryPath(psuInventoryPath), devPath(devPath),
-    devName(internal::getDeviceName(devPath)), imageDir(imageDir)
+    bus(sdbusplus::bus::new_default()), psuInventoryPath(psuInventoryPath),
+    devPath(devPath), devName(internal::getDeviceName(devPath)),
+    imageDir(imageDir)
 {
     fs::path p = fs::path(devPath) / "driver";
     try
diff --git a/tools/power-utils/version.cpp b/tools/power-utils/version.cpp
index f24a08e..93b9a82 100644
--- a/tools/power-utils/version.cpp
+++ b/tools/power-utils/version.cpp
@@ -97,8 +97,8 @@
 
 std::string getVersion(const std::string& psuInventoryPath)
 {
-    const auto& [devicePath, type,
-                 versionStr] = utils::getVersionInfo(psuInventoryPath);
+    const auto& [devicePath, type, versionStr] =
+        utils::getVersionInfo(psuInventoryPath);
     if (devicePath.empty() || versionStr.empty())
     {
         return {};
