diff --git a/ArmPkg/Drivers/ArmGic/AArch64/ArmGicArchLib.c b/ArmPkg/Drivers/ArmGic/AArch64/ArmGicArchLib.c
index 88fa4621e613..0e0fa3b9f33e 100644
--- a/ArmPkg/Drivers/ArmGic/AArch64/ArmGicArchLib.c
+++ b/ArmPkg/Drivers/ArmGic/AArch64/ArmGicArchLib.c
@@ -15,8 +15,6 @@
 #include <Library/ArmLib.h>
 #include <Library/ArmGicLib.h>
 
-#include "GicV3/ArmGicV3Lib.h"
-
 ARM_GIC_ARCH_REVISION
 EFIAPI
 ArmGicGetSupportedArchRevision (
diff --git a/ArmPkg/Drivers/ArmGic/Arm/ArmGicArchLib.c b/ArmPkg/Drivers/ArmGic/Arm/ArmGicArchLib.c
index 9ef56efeaa7b..f256de704631 100644
--- a/ArmPkg/Drivers/ArmGic/Arm/ArmGicArchLib.c
+++ b/ArmPkg/Drivers/ArmGic/Arm/ArmGicArchLib.c
@@ -15,8 +15,6 @@
 #include <Library/ArmLib.h>
 #include <Library/ArmGicLib.h>
 
-#include "GicV3/ArmGicV3Lib.h"
-
 ARM_GIC_ARCH_REVISION
 EFIAPI
 ArmGicGetSupportedArchRevision (
diff --git a/ArmPkg/Drivers/ArmGic/ArmGicLib.c b/ArmPkg/Drivers/ArmGic/ArmGicLib.c
index 48708e3812b4..248e896c4b94 100644
--- a/ArmPkg/Drivers/ArmGic/ArmGicLib.c
+++ b/ArmPkg/Drivers/ArmGic/ArmGicLib.c
@@ -19,9 +19,6 @@
 #include <Library/IoLib.h>
 #include <Library/PcdLib.h>
 
-#include "GicV2/ArmGicV2Lib.h"
-#include "GicV3/ArmGicV3Lib.h"
-
 /**
  * Return the base address of the GIC redistributor for the current CPU
  *
diff --git a/ArmPkg/Drivers/ArmGic/ArmGicSecLib.c b/ArmPkg/Drivers/ArmGic/ArmGicSecLib.c
index 1fdd4d73bd7d..d64806d2f16b 100644
--- a/ArmPkg/Drivers/ArmGic/ArmGicSecLib.c
+++ b/ArmPkg/Drivers/ArmGic/ArmGicSecLib.c
@@ -17,8 +17,6 @@
 #include <Library/IoLib.h>
 #include <Library/ArmGicLib.h>
 
-#include "GicV2/ArmGicV2Lib.h"
-
 /*
  * This function configures the interrupts set by the mask to be secure.
  *
diff --git a/ArmPkg/Drivers/ArmGic/GicV2/ArmGicV2Dxe.c b/ArmPkg/Drivers/ArmGic/GicV2/ArmGicV2Dxe.c
index 743c534e04d9..e649ac1bc6af 100644
--- a/ArmPkg/Drivers/ArmGic/GicV2/ArmGicV2Dxe.c
+++ b/ArmPkg/Drivers/ArmGic/GicV2/ArmGicV2Dxe.c
@@ -22,8 +22,9 @@ Abstract:
 
 --*/
 
+#include <Library/ArmGicLib.h>
+
 #include "ArmGicDxe.h"
-#include "GicV2/ArmGicV2Lib.h"
 
 #define ARM_GIC_DEFAULT_PRIORITY  0x80
 
diff --git a/ArmPkg/Drivers/ArmGic/GicV2/ArmGicV2Lib.h b/ArmPkg/Drivers/ArmGic/GicV2/ArmGicV2Lib.h
deleted file mode 100644
index 6803467346a3..000000000000
--- a/ArmPkg/Drivers/ArmGic/GicV2/ArmGicV2Lib.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/** @file
-*
-*  Copyright (c) 2013-2014, ARM Limited. All rights reserved.
-*
-*  This program and the accompanying materials
-*  are licensed and made available under the terms and conditions of the BSD License
-*  which accompanies this distribution.  The full text of the license may be found at
-*  http://opensource.org/licenses/bsd-license.php
-*
-*  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-*  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-*
-**/
-
-#ifndef _ARM_GIC_V2_H_
-#define _ARM_GIC_V2_H_
-
-// Interrupts from 1020 to 1023 are considered as special interrupts (eg: spurious interrupts)
-#define ARM_GIC_IS_SPECIAL_INTERRUPTS(Interrupt) (((Interrupt) >= 1020) && ((Interrupt) <= 1023))
-
-VOID
-EFIAPI
-ArmGicV2SetupNonSecure (
-  IN  UINTN         MpId,
-  IN  INTN          GicDistributorBase,
-  IN  INTN          GicInterruptInterfaceBase
-  );
-
-VOID
-EFIAPI
-ArmGicV2EnableInterruptInterface (
-  IN  INTN          GicInterruptInterfaceBase
-  );
-
-VOID
-EFIAPI
-ArmGicV2DisableInterruptInterface (
-  IN  INTN          GicInterruptInterfaceBase
-  );
-
-UINTN
-EFIAPI
-ArmGicV2AcknowledgeInterrupt (
-  IN  UINTN          GicInterruptInterfaceBase
-  );
-
-VOID
-EFIAPI
-ArmGicV2EndOfInterrupt (
-  IN UINTN                  GicInterruptInterfaceBase,
-  IN UINTN                  Source
-  );
-
-#endif
diff --git a/ArmPkg/Drivers/ArmGic/GicV3/ArmGicV3Dxe.c b/ArmPkg/Drivers/ArmGic/GicV3/ArmGicV3Dxe.c
index 73cac8774056..4afa3d5a09c2 100644
--- a/ArmPkg/Drivers/ArmGic/GicV3/ArmGicV3Dxe.c
+++ b/ArmPkg/Drivers/ArmGic/GicV3/ArmGicV3Dxe.c
@@ -12,8 +12,9 @@
 *
 **/
 
+#include <Library/ArmGicLib.h>
+
 #include "ArmGicDxe.h"
-#include "GicV3/ArmGicV3Lib.h"
 
 #define ARM_GIC_DEFAULT_PRIORITY  0x80
 
diff --git a/ArmPkg/Drivers/ArmGic/GicV3/ArmGicV3Lib.h b/ArmPkg/Drivers/ArmGic/GicV3/ArmGicV3Lib.h
deleted file mode 100644
index 794e8788a60b..000000000000
--- a/ArmPkg/Drivers/ArmGic/GicV3/ArmGicV3Lib.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/** @file
-*
-*  Copyright (c) 2014-2015, ARM Limited. All rights reserved.
-*
-*  This program and the accompanying materials are licensed and made available
-*  under the terms and conditions of the BSD License which accompanies this
-*  distribution. The full text of the license may be found at
-*  http://opensource.org/licenses/bsd-license.php
-*
-*  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
-*  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
-*
-**/
-
-#ifndef _ARM_GIC_V3_H_
-#define _ARM_GIC_V3_H_
-
-#define ICC_SRE_EL2_SRE         (1 << 0)
-
-#define ARM_GICD_IROUTER_IRM BIT31
-
-UINT32
-EFIAPI
-ArmGicV3GetControlSystemRegisterEnable (
-  VOID
-  );
-
-VOID
-EFIAPI
-ArmGicV3SetControlSystemRegisterEnable (
-  IN UINT32         ControlSystemRegisterEnable
-  );
-
-VOID
-EFIAPI
-ArmGicV3EnableInterruptInterface (
-  VOID
-  );
-
-VOID
-EFIAPI
-ArmGicV3DisableInterruptInterface (
-  VOID
-  );
-
-UINTN
-EFIAPI
-ArmGicV3AcknowledgeInterrupt (
-  VOID
-  );
-
-VOID
-EFIAPI
-ArmGicV3EndOfInterrupt (
-  IN UINTN                  Source
-  );
-
-VOID
-ArmGicV3SetBinaryPointer (
-  IN UINTN                  BinaryPoint
-  );
-
-VOID
-ArmGicV3SetPriorityMask (
-  IN UINTN                  Priority
-  );
-
-#endif
diff --git a/ArmPkg/Include/Library/ArmGicLib.h b/ArmPkg/Include/Library/ArmGicLib.h
index e2a4818c4c0c..e3db9c0d250f 100644
--- a/ArmPkg/Include/Library/ArmGicLib.h
+++ b/ArmPkg/Include/Library/ArmGicLib.h
@@ -231,4 +231,98 @@ ArmGicIsInterruptEnabled (
   IN UINTN                  Source
   );
 
+//
+// GIC revision 2 specific declarations
+//
+
+// Interrupts from 1020 to 1023 are considered as special interrupts (eg: spurious interrupts)
+#define ARM_GIC_IS_SPECIAL_INTERRUPTS(Interrupt) (((Interrupt) >= 1020) && ((Interrupt) <= 1023))
+
+VOID
+EFIAPI
+ArmGicV2SetupNonSecure (
+  IN  UINTN         MpId,
+  IN  INTN          GicDistributorBase,
+  IN  INTN          GicInterruptInterfaceBase
+  );
+
+VOID
+EFIAPI
+ArmGicV2EnableInterruptInterface (
+  IN  INTN          GicInterruptInterfaceBase
+  );
+
+VOID
+EFIAPI
+ArmGicV2DisableInterruptInterface (
+  IN  INTN          GicInterruptInterfaceBase
+  );
+
+UINTN
+EFIAPI
+ArmGicV2AcknowledgeInterrupt (
+  IN  UINTN          GicInterruptInterfaceBase
+  );
+
+VOID
+EFIAPI
+ArmGicV2EndOfInterrupt (
+  IN UINTN                  GicInterruptInterfaceBase,
+  IN UINTN                  Source
+  );
+
+//
+// GIC revision 3 specific declarations
+//
+
+#define ICC_SRE_EL2_SRE         (1 << 0)
+
+#define ARM_GICD_IROUTER_IRM BIT31
+
+UINT32
+EFIAPI
+ArmGicV3GetControlSystemRegisterEnable (
+  VOID
+  );
+
+VOID
+EFIAPI
+ArmGicV3SetControlSystemRegisterEnable (
+  IN UINT32         ControlSystemRegisterEnable
+  );
+
+VOID
+EFIAPI
+ArmGicV3EnableInterruptInterface (
+  VOID
+  );
+
+VOID
+EFIAPI
+ArmGicV3DisableInterruptInterface (
+  VOID
+  );
+
+UINTN
+EFIAPI
+ArmGicV3AcknowledgeInterrupt (
+  VOID
+  );
+
+VOID
+EFIAPI
+ArmGicV3EndOfInterrupt (
+  IN UINTN                  Source
+  );
+
+VOID
+ArmGicV3SetBinaryPointer (
+  IN UINTN                  BinaryPoint
+  );
+
+VOID
+ArmGicV3SetPriorityMask (
+  IN UINTN                  Priority
+  );
+
 #endif
