diff --git a/ibm_vpd_utils.hpp b/ibm_vpd_utils.hpp
index 03015d1..5f0f9e7 100644
--- a/ibm_vpd_utils.hpp
+++ b/ibm_vpd_utils.hpp
@@ -139,9 +139,9 @@
     try
     {
         auto bus = sdbusplus::bus::new_default();
-        auto properties = bus.new_method_call(service.c_str(), object.c_str(),
-                                              "org.freedesktop.DBus.Properties",
-                                              "Get");
+        auto properties =
+            bus.new_method_call(service.c_str(), object.c_str(),
+                                "org.freedesktop.DBus.Properties", "Get");
         properties.append(inf);
         properties.append(prop);
         auto result = bus.call(properties);
@@ -383,10 +383,9 @@
  *  @param[in] bindOrUnbind - either bind or unbind
  *  @returns  Command to bind or unbind the driver.
  */
-inline std::string createBindUnbindDriverCmnd(const std::string& devNameAddr,
-                                              const std::string& busType,
-                                              const std::string& driverType,
-                                              const std::string& bindOrUnbind)
+inline std::string createBindUnbindDriverCmnd(
+    const std::string& devNameAddr, const std::string& busType,
+    const std::string& driverType, const std::string& bindOrUnbind)
 {
     return ("echo " + devNameAddr + " > /sys/bus/" + busType + "/drivers/" +
             driverType + "/" + bindOrUnbind);
@@ -487,9 +486,9 @@
     try
     {
         auto bus = sdbusplus::bus::new_default();
-        auto method = bus.new_method_call(service.c_str(), object.c_str(),
-                                          "org.freedesktop.DBus.Properties",
-                                          "Set");
+        auto method =
+            bus.new_method_call(service.c_str(), object.c_str(),
+                                "org.freedesktop.DBus.Properties", "Set");
         method.append(interface);
         method.append(propertyName);
         method.append(propertyValue);
