diff --git a/power-control/inc/power_control.hpp b/power-control/inc/power_control.hpp
index 4983fb7..6918f08 100644
--- a/power-control/inc/power_control.hpp
+++ b/power-control/inc/power_control.hpp
@@ -15,14 +15,16 @@
 */
 
 #pragma once
+#include "gpio.hpp"
+
 #include <fcntl.h>
 #include <linux/aspeed-lpc-sio.h>
 #include <unistd.h>
+
 #include <phosphor-logging/elog-errors.hpp>
 #include <xyz/openbmc_project/Chassis/Common/error.hpp>
 #include <xyz/openbmc_project/Chassis/Control/Power/server.hpp>
 #include <xyz/openbmc_project/Common/error.hpp>
-#include "gpio.hpp"
 
 static constexpr size_t POLLING_INTERVAL_MS = 500;
 
diff --git a/power-control/src/power_control.cpp b/power-control/src/power_control.cpp
index 74b64b8..df92108 100644
--- a/power-control/src/power_control.cpp
+++ b/power-control/src/power_control.cpp
@@ -31,12 +31,11 @@
             phosphor::logging::entry("NEWSTATE=%d", newState));
         return 0;
     }
-    
+
     ret = ::lseek(power_up_fd, 0, SEEK_SET);
     if (ret < 0)
     {
-        phosphor::logging::log<phosphor::logging::level::ERR>(
-                                                     "lseek error!");
+        phosphor::logging::log<phosphor::logging::level::ERR>("lseek error!");
         throw sdbusplus::xyz::openbmc_project::Chassis::Common::Error::
             IOError();
     }
@@ -54,20 +53,20 @@
     if (ret < 0)
     {
         phosphor::logging::log<phosphor::logging::level::ERR>(
-                                       "write error for setting 0 !");
+            "write error for setting 0 !");
         throw sdbusplus::xyz::openbmc_project::Chassis::Common::Error::
             IOError();
     }
 
     std::this_thread::sleep_for(
-            std::chrono::milliseconds(POWER_UP_PIN_PULSE_TIME_MS));
+        std::chrono::milliseconds(POWER_UP_PIN_PULSE_TIME_MS));
 
     buf = '1';
     ret = ::write(power_up_fd, &buf, sizeof(buf));
     if (ret < 0)
     {
         phosphor::logging::log<phosphor::logging::level::ERR>(
-                                       "write error for setting 1 !");
+            "write error for setting 1 !");
         throw sdbusplus::xyz::openbmc_project::Chassis::Common::Error::
             IOError();
     }
