MLECO-3160 Adding .clang-format

Change-Id: If5cf20e189273a887917aefcc745c4992be93e1d
Reviewed-on: https://eu-gerrit-2.euhpc.arm.com/c/ml/ecosystem/ml-embedded-evaluation-kit/+/543186
Tested-by: mlecosys <mlecosys@arm.com>
Reviewed-by: Nina Drozd <nina.drozd@arm.com>
Reviewed-by: Kshitij Sisodia <kshitij.sisodia@arm.com>
diff --git a/.clang-format b/.clang-format
new file mode 100644
index 0000000..b22d4c2
--- /dev/null
+++ b/.clang-format
@@ -0,0 +1,56 @@
+#
+# Copyright (c) 2022 Arm Limited. All rights reserved.
+#
+# SPDX-License-Identifier: Apache-2.0
+#
+# Licensed under the Apache License, Version 2.0 (the License); you may
+# not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an AS IS BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+---
+Language: Cpp
+BasedOnStyle: LLVM
+IndentWidth: 4
+ColumnLimit: 100
+AccessModifierOffset: -4
+PointerAlignment: Left
+AlignAfterOpenBracket: Align
+AlignConsecutiveAssignments: true
+AlignConsecutiveMacros: true
+AlignEscapedNewlines: Left
+AlignTrailingComments: true
+AllowAllParametersOfDeclarationOnNextLine: true
+AllowShortFunctionsOnASingleLine: Empty
+AllowShortBlocksOnASingleLine: true
+AlwaysBreakTemplateDeclarations: true
+BinPackArguments: false
+BinPackParameters: false
+BreakInheritanceList: AfterColon
+BreakConstructorInitializers: AfterColon
+BreakBeforeBraces: Custom
+BraceWrapping:
+  AfterClass: false
+  AfterControlStatement: false
+  AfterEnum: false
+  AfterFunction: true
+  AfterNamespace: false
+  AfterObjCDeclaration: false
+  AfterStruct: false
+  AfterUnion: false
+  AfterExternBlock: false
+  BeforeCatch: false
+  BeforeElse: false
+  IndentBraces: false
+  SplitEmptyFunction: false
+  SplitEmptyRecord: false
+  SplitEmptyNamespace: true
+---
+
diff --git a/docs/sections/coding_guidelines.md b/docs/sections/coding_guidelines.md
index ae479f7..57c45e0 100644
--- a/docs/sections/coding_guidelines.md
+++ b/docs/sections/coding_guidelines.md
@@ -25,6 +25,24 @@
 However, because we also issue function calls to third-party APIs, and they are not guaranteed to follow these
 conventions, the intended outcome could be different for every case.
 
+## Pre-commit formatting
+To help with the adherence of the coding guidelines, we have provided a clang-format file. When commiting, please run 
+the following command, post-staging but pre-commit.
+
+
+  ```Git
+  git-clang-format
+  ```
+
+This will modify the staged changes, to adhere to the guidelines as described in the 
+.clang-format file in the root of the repo. Please note that the clang-format tool must be installed to run this 
+step and can be installed using the following command on Ubuntu: 
+
+  ```
+  sudo apt install clang-format
+  ```
+
+
 ## Language version
 
 For this project, code written in C++ uses a subset of the `C++14` feature set and software may be written using the