diff --git a/vpd-tool/include/tool_utils.hpp b/vpd-tool/include/tool_utils.hpp
index 4306da5..598cdd2 100644
--- a/vpd-tool/include/tool_utils.hpp
+++ b/vpd-tool/include/tool_utils.hpp
@@ -189,9 +189,9 @@
  *
  * @throw std::runtime_error, sdbusplus::exception::SdBusError
  */
-inline types::DbusVariantType
-    readKeywordFromHardware(const std::string& i_eepromPath,
-                            const types::ReadVpdParams i_paramsToReadData)
+inline types::DbusVariantType readKeywordFromHardware(
+    const std::string& i_eepromPath,
+    const types::ReadVpdParams i_paramsToReadData)
 {
     if (i_eepromPath.empty())
     {
@@ -355,9 +355,9 @@
  *
  * @throw - std::runtime_error, sdbusplus::exception::SdBusError
  */
-inline int
-    writeKeywordOnHardware(const std::string& i_eepromPath,
-                           const types::WriteVpdParams& i_paramsToWriteData)
+inline int writeKeywordOnHardware(
+    const std::string& i_eepromPath,
+    const types::WriteVpdParams& i_paramsToWriteData)
 {
     if (i_eepromPath.empty())
     {
diff --git a/vpd-tool/include/vpd_tool.hpp b/vpd-tool/include/vpd_tool.hpp
index f26a0a3..7898d00 100644
--- a/vpd-tool/include/vpd_tool.hpp
+++ b/vpd-tool/include/vpd_tool.hpp
@@ -77,8 +77,8 @@
      * format, otherwise returns empty JSON. The caller of this API should
      * handle empty JSON.
      */
-    nlohmann::json
-        getFruTypeProperty(const std::string& i_objectPath) const noexcept;
+    nlohmann::json getFruTypeProperty(
+        const std::string& i_objectPath) const noexcept;
 
     /**
      * @brief Check if a FRU is present in the system.
diff --git a/vpd-tool/src/vpd_tool.cpp b/vpd-tool/src/vpd_tool.cpp
index ce10e6c..1291129 100644
--- a/vpd-tool/src/vpd_tool.cpp
+++ b/vpd-tool/src/vpd_tool.cpp
@@ -626,8 +626,8 @@
     return l_returnValue;
 }
 
-nlohmann::json
-    VpdTool::getFruTypeProperty(const std::string& i_objectPath) const noexcept
+nlohmann::json VpdTool::getFruTypeProperty(
+    const std::string& i_objectPath) const noexcept
 {
     nlohmann::json l_resultInJson = nlohmann::json::object({});
     std::vector<std::string> l_pimInfList;
