BFA_PCI_DEVICE_ID_CT            = 0x14,
        BFA_PCI_DEVICE_ID_CT_FC         = 0x21,
        BFA_PCI_DEVICE_ID_CT2           = 0x22,
+       BFA_PCI_DEVICE_ID_CT2_QUAD      = 0x23,
 };
 
 #define bfa_asic_id_cb(__d)                    \
 #define bfa_asic_id_ct(__d)                    \
        ((__d) == BFA_PCI_DEVICE_ID_CT ||       \
         (__d) == BFA_PCI_DEVICE_ID_CT_FC)
-#define bfa_asic_id_ct2(__d)   ((__d) == BFA_PCI_DEVICE_ID_CT2)
+#define bfa_asic_id_ct2(__d)                   \
+       ((__d) == BFA_PCI_DEVICE_ID_CT2 ||      \
+       (__d) == BFA_PCI_DEVICE_ID_CT2_QUAD)
 #define bfa_asic_id_ctc(__d)   \
        (bfa_asic_id_ct(__d) || bfa_asic_id_ct2(__d))
 
 
                break;
 
        case BFA_PCI_DEVICE_ID_CT2:
+       case BFA_PCI_DEVICE_ID_CT2_QUAD:
                ioc->asic_gen = BFI_ASIC_GEN_CT2;
                if (clscode == BFI_PCIFN_CLASS_FC &&
                    pcidev->ssid == BFA_PCI_CT2_SSID_FC) {
 
                .class_mask = ~0,
        },
 
+       {
+               .vendor = BFA_PCI_VENDOR_ID_BROCADE,
+               .device = BFA_PCI_DEVICE_ID_CT2_QUAD,
+               .subvendor = PCI_ANY_ID,
+               .subdevice = PCI_ANY_ID,
+               .class = (PCI_CLASS_SERIAL_FIBER << 8),
+               .class_mask = ~0,
+       },
        {0, 0},
 };