--- /dev/null
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * (C) Copyright 2023, Xilinx, Inc.
+ */
+
+#include <linux/pci.h>
+#include <linux/pci-ecam.h>
+#include <linux/platform_device.h>
+
+/* Interrupt registers definitions */
+#define XILINX_PCIE_INTR_LINK_DOWN             0
+#define XILINX_PCIE_INTR_HOT_RESET             3
+#define XILINX_PCIE_INTR_CFG_PCIE_TIMEOUT      4
+#define XILINX_PCIE_INTR_CFG_TIMEOUT           8
+#define XILINX_PCIE_INTR_CORRECTABLE           9
+#define XILINX_PCIE_INTR_NONFATAL              10
+#define XILINX_PCIE_INTR_FATAL                 11
+#define XILINX_PCIE_INTR_CFG_ERR_POISON                12
+#define XILINX_PCIE_INTR_PME_TO_ACK_RCVD       15
+#define XILINX_PCIE_INTR_INTX                  16
+#define XILINX_PCIE_INTR_PM_PME_RCVD           17
+#define XILINX_PCIE_INTR_SLV_UNSUPP            20
+#define XILINX_PCIE_INTR_SLV_UNEXP             21
+#define XILINX_PCIE_INTR_SLV_COMPL             22
+#define XILINX_PCIE_INTR_SLV_ERRP              23
+#define XILINX_PCIE_INTR_SLV_CMPABT            24
+#define XILINX_PCIE_INTR_SLV_ILLBUR            25
+#define XILINX_PCIE_INTR_MST_DECERR            26
+#define XILINX_PCIE_INTR_MST_SLVERR            27
+#define XILINX_PCIE_INTR_SLV_PCIE_TIMEOUT      28
 
 #include <linux/of_address.h>
 #include <linux/of_pci.h>
 #include <linux/of_platform.h>
-#include <linux/pci.h>
-#include <linux/platform_device.h>
-#include <linux/pci-ecam.h>
 
 #include "../pci.h"
+#include "pcie-xilinx-common.h"
 
 /* Register definitions */
 #define XILINX_CPM_PCIE_REG_IDR                0x00000E10
 #define XILINX_CPM_PCIE_IR_ENABLE       0x000002A8
 #define XILINX_CPM_PCIE_IR_LOCAL        BIT(0)
 
-/* Interrupt registers definitions */
-#define XILINX_CPM_PCIE_INTR_LINK_DOWN         0
-#define XILINX_CPM_PCIE_INTR_HOT_RESET         3
-#define XILINX_CPM_PCIE_INTR_CFG_PCIE_TIMEOUT  4
-#define XILINX_CPM_PCIE_INTR_CFG_TIMEOUT       8
-#define XILINX_CPM_PCIE_INTR_CORRECTABLE       9
-#define XILINX_CPM_PCIE_INTR_NONFATAL          10
-#define XILINX_CPM_PCIE_INTR_FATAL             11
-#define XILINX_CPM_PCIE_INTR_CFG_ERR_POISON    12
-#define XILINX_CPM_PCIE_INTR_PME_TO_ACK_RCVD   15
-#define XILINX_CPM_PCIE_INTR_INTX              16
-#define XILINX_CPM_PCIE_INTR_PM_PME_RCVD       17
-#define XILINX_CPM_PCIE_INTR_SLV_UNSUPP                20
-#define XILINX_CPM_PCIE_INTR_SLV_UNEXP         21
-#define XILINX_CPM_PCIE_INTR_SLV_COMPL         22
-#define XILINX_CPM_PCIE_INTR_SLV_ERRP          23
-#define XILINX_CPM_PCIE_INTR_SLV_CMPABT                24
-#define XILINX_CPM_PCIE_INTR_SLV_ILLBUR                25
-#define XILINX_CPM_PCIE_INTR_MST_DECERR                26
-#define XILINX_CPM_PCIE_INTR_MST_SLVERR                27
-#define XILINX_CPM_PCIE_INTR_SLV_PCIE_TIMEOUT  28
-
-#define IMR(x) BIT(XILINX_CPM_PCIE_INTR_ ##x)
+#define IMR(x) BIT(XILINX_PCIE_INTR_ ##x)
 
 #define XILINX_CPM_PCIE_IMR_ALL_MASK                   \
        (                                               \
 }
 
 #define _IC(x, s)                              \
-       [XILINX_CPM_PCIE_INTR_ ## x] = { __stringify(x), s }
+       [XILINX_PCIE_INTR_ ## x] = { __stringify(x), s }
 
 static const struct {
        const char      *sym;
        d = irq_domain_get_irq_data(port->cpm_domain, irq);
 
        switch (d->hwirq) {
-       case XILINX_CPM_PCIE_INTR_CORRECTABLE:
-       case XILINX_CPM_PCIE_INTR_NONFATAL:
-       case XILINX_CPM_PCIE_INTR_FATAL:
+       case XILINX_PCIE_INTR_CORRECTABLE:
+       case XILINX_PCIE_INTR_NONFATAL:
+       case XILINX_PCIE_INTR_FATAL:
                cpm_pcie_clear_err_interrupts(port);
                fallthrough;
 
        }
 
        port->intx_irq = irq_create_mapping(port->cpm_domain,
-                                           XILINX_CPM_PCIE_INTR_INTX);
+                                           XILINX_PCIE_INTR_INTX);
        if (!port->intx_irq) {
                dev_err(dev, "Failed to map INTx interrupt\n");
                return -ENXIO;