diff --git a/.clang-format b/.clang-format
index ea71ad6..d92a3f1 100644
--- a/.clang-format
+++ b/.clang-format
@@ -5,22 +5,24 @@
 AlignAfterOpenBracket: Align
 AlignConsecutiveAssignments: false
 AlignConsecutiveDeclarations: false
-AlignEscapedNewlinesLeft: false
-AlignOperands:   true
-AlignTrailingComments: true
+AlignEscapedNewlines: Right
+AlignOperands:  Align
+AlignTrailingComments:
+  Kind: Always
+  OverEmptyLines: 1
 AllowAllParametersOfDeclarationOnNextLine: true
-AllowShortBlocksOnASingleLine: false
+AllowShortBlocksOnASingleLine: Empty
 AllowShortCaseLabelsOnASingleLine: false
-AllowShortFunctionsOnASingleLine: None
+AllowShortFunctionsOnASingleLine: Empty
 AllowShortIfStatementsOnASingleLine: false
 AllowShortLoopsOnASingleLine: false
-AlwaysBreakAfterDefinitionReturnType: None
 AlwaysBreakAfterReturnType: None
 AlwaysBreakBeforeMultilineStrings: false
-AlwaysBreakTemplateDeclarations: true
+AlwaysBreakTemplateDeclarations: Yes
 BinPackArguments: true
 BinPackParameters: true
 BraceWrapping:
+  AfterCaseLabel:  true
   AfterClass:      true
   AfterControlStatement: true
   AfterEnum:       true
@@ -29,19 +31,28 @@
   AfterObjCDeclaration: true
   AfterStruct:     true
   AfterUnion:      true
+  AfterExternBlock: true
   BeforeCatch:     true
   BeforeElse:      true
   IndentBraces:    false
+  SplitEmptyFunction:   false
+  SplitEmptyRecord:     false
+  SplitEmptyNamespace:  false
+BreakAfterAttributes: Never
 BreakBeforeBinaryOperators: None
 BreakBeforeBraces: Custom
 BreakBeforeTernaryOperators: true
 BreakConstructorInitializers: AfterColon
+BreakInheritanceList: AfterColon
+BreakStringLiterals: false
 ColumnLimit:     80
 CommentPragmas:  '^ IWYU pragma:'
+CompactNamespaces: false
 ConstructorInitializerAllOnOneLineOrOnePerLine: false
 ConstructorInitializerIndentWidth: 4
 ContinuationIndentWidth: 4
 Cpp11BracedListStyle: true
+DeriveLineEnding: false
 DerivePointerAlignment: false
 PointerAlignment: Left
 DisableFormat:   false
@@ -51,21 +62,29 @@
 IncludeBlocks: Regroup
 IncludeCategories:
   - Regex:           '^[<"](gtest|gmock)'
-    Priority:        5
+    Priority:        7
   - Regex:           '^"config.h"'
     Priority:        -1
-  - Regex:           '^".*\.hpp"'
+  - Regex:           '^".*\.h"'
     Priority:        1
-  - Regex:           '^<.*\.h>'
+  - Regex:           '^".*\.hpp"'
     Priority:        2
-  - Regex:           '^<.*'
+  - Regex:           '^<.*\.h>'
     Priority:        3
-  - Regex:           '.*'
+  - Regex:           '^<.*\.hpp>'
     Priority:        4
+  - Regex:           '^<.*'
+    Priority:        5
+  - Regex:           '.*'
+    Priority:        6
 IndentCaseLabels: true
+IndentRequiresClause: true
 IndentWidth:     4
 IndentWrappedFunctionNames: true
-KeepEmptyLinesAtTheStartOfBlocks: true
+InsertNewlineAtEOF: true
+KeepEmptyLinesAtTheStartOfBlocks: false
+LambdaBodyIndentation: OuterScope
+LineEnding: LF
 MacroBlockBegin: ''
 MacroBlockEnd:   ''
 MaxEmptyLinesToKeep: 1
@@ -73,18 +92,29 @@
 ObjCBlockIndentWidth: 2
 ObjCSpaceAfterProperty: false
 ObjCSpaceBeforeProtocolList: true
+PenaltyBreakAssignment: 25
 PenaltyBreakBeforeFirstCallParameter: 19
 PenaltyBreakComment: 300
 PenaltyBreakFirstLessLess: 120
 PenaltyBreakString: 1000
 PenaltyExcessCharacter: 1000000
 PenaltyReturnTypeOnItsOwnLine: 60
+PenaltyIndentedWhitespace: 0
+QualifierAlignment: Left
+ReferenceAlignment: Left
 ReflowComments:  true
+RequiresClausePosition: OwnLine
+RequiresExpressionIndentation: Keyword
 SortIncludes:    true
 SortUsingDeclarations: true
 SpaceAfterCStyleCast: false
+SpaceAfterTemplateKeyword: true
 SpaceBeforeAssignmentOperators: true
+SpaceBeforeCpp11BracedList: false
+SpaceBeforeCtorInitializerColon: true
+SpaceBeforeInheritanceColon: true
 SpaceBeforeParens: ControlStatements
+SpaceBeforeRangeBasedForLoopColon: true
 SpaceInEmptyParentheses: false
 SpacesBeforeTrailingComments: 1
 SpacesInAngles:  false
@@ -92,7 +122,7 @@
 SpacesInCStyleCastParentheses: false
 SpacesInParentheses: false
 SpacesInSquareBrackets: false
-Standard:        Cpp11
+Standard:        Latest
 TabWidth:        4
 UseTab:          Never
 ...
diff --git a/evdev.hpp b/evdev.hpp
index b5d1394..9efe14e 100644
--- a/evdev.hpp
+++ b/evdev.hpp
@@ -4,9 +4,10 @@
 #include <libevdev/libevdev.h>
 #include <systemd/sd-event.h>
 
+#include <sdbusplus/message.hpp>
+
 #include <map>
 #include <memory>
-#include <sdbusplus/message.hpp>
 #include <string>
 
 namespace phosphor
@@ -50,7 +51,6 @@
  */
 class Evdev
 {
-
     using Property = std::string;
     using Value = std::variant<bool, std::string>;
     // Association between property and its value
diff --git a/gpio-util/gpio.cpp b/gpio-util/gpio.cpp
index c6b7704..0b671a8 100644
--- a/gpio-util/gpio.cpp
+++ b/gpio-util/gpio.cpp
@@ -18,9 +18,10 @@
 #include <fcntl.h>
 #include <sys/ioctl.h>
 
-#include <cassert>
 #include <phosphor-logging/log.hpp>
 
+#include <cassert>
+
 namespace phosphor
 {
 namespace gpio
diff --git a/gpio-util/gpio.hpp b/gpio-util/gpio.hpp
index bcb036c..46b6fba 100644
--- a/gpio-util/gpio.hpp
+++ b/gpio-util/gpio.hpp
@@ -62,8 +62,7 @@
      */
     GPIO(const std::string& device, gpioNum_t gpio, Direction direction) :
         device(device), gpio(gpio), direction(direction)
-    {
-    }
+    {}
 
     /**
      * Sets the GPIO value
diff --git a/gpio-util/main.cpp b/gpio-util/main.cpp
index 82cbed4..27da697 100644
--- a/gpio-util/main.cpp
+++ b/gpio-util/main.cpp
@@ -26,11 +26,12 @@
 #include "argument.hpp"
 #include "gpio.hpp"
 
+#include <phosphor-logging/log.hpp>
+
 #include <algorithm>
 #include <chrono>
 #include <iostream>
 #include <map>
-#include <phosphor-logging/log.hpp>
 #include <thread>
 
 using namespace phosphor::gpio;
diff --git a/gpioMon.cpp b/gpioMon.cpp
index fcdf8f5..0b5bbd9 100644
--- a/gpioMon.cpp
+++ b/gpioMon.cpp
@@ -36,18 +36,17 @@
 
 void GpioMonitor::scheduleEventHandler()
 {
-
     gpioEventDescriptor.async_wait(
         boost::asio::posix::stream_descriptor::wait_read,
         [this](const boost::system::error_code& ec) {
-            if (ec)
-            {
-                std::string msg = gpioLineMsg + "event handler error" +
-                                  std::string(ec.message());
-                log<level::ERR>(msg.c_str());
-                return;
-            }
-            gpioEventHandler();
+        if (ec)
+        {
+            std::string msg = gpioLineMsg + "event handler error" +
+                              std::string(ec.message());
+            log<level::ERR>(msg.c_str());
+            return;
+        }
+        gpioEventHandler();
         });
 }
 
@@ -125,7 +124,6 @@
 
 int GpioMonitor::requestGPIOEvents()
 {
-
     /* Request an event to monitor for respected gpio line */
     if (gpiod_line_request(gpioLine, &gpioConfig, 0) < 0)
     {
diff --git a/gpioMon.hpp b/gpioMon.hpp
index 5750d39..a645e02 100644
--- a/gpioMon.hpp
+++ b/gpioMon.hpp
@@ -4,6 +4,7 @@
 
 #include <boost/asio/io_context.hpp>
 #include <boost/asio/posix/stream_descriptor.hpp>
+
 #include <map>
 #include <vector>
 
diff --git a/gpioMonMain.cpp b/gpioMonMain.cpp
index 8530ffc..83e14b6 100644
--- a/gpioMonMain.cpp
+++ b/gpioMonMain.cpp
@@ -18,10 +18,11 @@
 
 #include <CLI/CLI.hpp>
 #include <boost/asio/io_context.hpp>
-#include <fstream>
 #include <nlohmann/json.hpp>
 #include <phosphor-logging/log.hpp>
 
+#include <fstream>
+
 using namespace phosphor::logging;
 
 namespace phosphor
@@ -42,7 +43,6 @@
 
 int main(int argc, char** argv)
 {
-
     boost::asio::io_context io;
 
     CLI::App app{"Monitor GPIO line for requested state change"};
@@ -81,7 +81,6 @@
 
     for (auto& obj : gpioMonObj)
     {
-
         /* GPIO Line message */
         std::string lineMsg = "GPIO Line ";
 
diff --git a/mainapp.cpp b/mainapp.cpp
index 2663f8f..4816b84 100644
--- a/mainapp.cpp
+++ b/mainapp.cpp
@@ -19,8 +19,9 @@
 
 #include <systemd/sd-event.h>
 
-#include <iostream>
 #include <phosphor-logging/log.hpp>
+
+#include <iostream>
 #include <string>
 
 using namespace phosphor::logging;
diff --git a/monitor.cpp b/monitor.cpp
index e2e912a..2c8569e 100644
--- a/monitor.cpp
+++ b/monitor.cpp
@@ -47,8 +47,7 @@
 {
     // Data returned
     struct input_event ev
-    {
-    };
+    {};
     int rc = 0;
 
     // While testing, observed that not having a loop here was leading
diff --git a/monitor.hpp b/monitor.hpp
index 771492a..7578d9d 100644
--- a/monitor.hpp
+++ b/monitor.hpp
@@ -7,6 +7,7 @@
 #include <unistd.h>
 
 #include <sdbusplus/bus.hpp>
+
 #include <string>
 
 namespace phosphor
diff --git a/presence/gpio_presence.cpp b/presence/gpio_presence.cpp
index e473fea..c6e26b5 100644
--- a/presence/gpio_presence.cpp
+++ b/presence/gpio_presence.cpp
@@ -5,11 +5,12 @@
 #include <fcntl.h>
 #include <libevdev/libevdev.h>
 
-#include <fstream>
 #include <phosphor-logging/elog-errors.hpp>
 #include <phosphor-logging/elog.hpp>
 #include <phosphor-logging/log.hpp>
 
+#include <fstream>
+
 namespace phosphor
 {
 namespace gpio
@@ -63,8 +64,8 @@
 {
     auto present = false;
     auto value = static_cast<int>(0);
-    auto fetch_rc =
-        libevdev_fetch_event_value(devicePtr.get(), EV_KEY, key, &value);
+    auto fetch_rc = libevdev_fetch_event_value(devicePtr.get(), EV_KEY, key,
+                                               &value);
     if (0 == fetch_rc)
     {
         log<level::ERR>("Device does not support event type",
@@ -92,11 +93,9 @@
 // Analyzes the GPIO event
 void Presence::analyzeEvent()
 {
-
     // Data returned
     struct input_event ev
-    {
-    };
+    {};
     int rc = 0;
 
     // While testing, observed that not having a loop here was leading
diff --git a/presence/gpio_presence.hpp b/presence/gpio_presence.hpp
index 4b9b24c..b72e84e 100644
--- a/presence/gpio_presence.hpp
+++ b/presence/gpio_presence.hpp
@@ -3,9 +3,10 @@
 
 #include <systemd/sd-event.h>
 
+#include <sdbusplus/bus.hpp>
+
 #include <cstdlib>
 #include <experimental/filesystem>
-#include <sdbusplus/bus.hpp>
 #include <string>
 
 namespace phosphor
@@ -29,7 +30,6 @@
  */
 class Presence : public Evdev
 {
-
     using Property = std::string;
     using Value = std::variant<bool, std::string>;
     // Association between property and its value
diff --git a/presence/main.cpp b/presence/main.cpp
index eace07e..56ab8a1 100644
--- a/presence/main.cpp
+++ b/presence/main.cpp
@@ -3,9 +3,10 @@
 
 #include <systemd/sd-event.h>
 
-#include <iostream>
 #include <phosphor-logging/log.hpp>
 
+#include <iostream>
+
 using namespace phosphor::logging;
 using namespace phosphor::gpio;
 using namespace phosphor::gpio::presence;
