Add the SDIO ID and firmware matching for the 43751 device.
Based on the previous work from Marc Gonzalez <mgonzalez@freebox.fr>.
Tested on an i.MX6DL board connected to an AP6398SV chip with the
brcmfmac43752-sdio.bin firmware taken from:
https://source.puri.sm/Librem5/firmware-brcm43752-nonfree
Signed-off-by: Fabio Estevam <festevam@gmail.com>
Acked-by: Arend van Spriel <arend.vanspriel@broadcom.com>>
Link: https://patch.msgid.link/20250712215307.1310802-1-festevam@gmail.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
        BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_4354, WCC),
        BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_4356, WCC),
        BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_4359, WCC),
+       BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_43751, WCC),
        BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_CYPRESS_4373, CYW),
        BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_CYPRESS_43012, CYW),
        BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_CYPRESS_43752, CYW),
 
        case CY_CC_4373_CHIP_ID:
                return 0x160000;
        case CY_CC_43752_CHIP_ID:
+       case BRCM_CC_43751_CHIP_ID:
        case BRCM_CC_4377_CHIP_ID:
                return 0x170000;
        case BRCM_CC_4378_CHIP_ID:
                reg = chip->ops->read32(chip->ctx, addr);
                return (reg & CC_SR_CTL0_ENABLE_MASK) != 0;
        case BRCM_CC_4359_CHIP_ID:
+       case BRCM_CC_43751_CHIP_ID:
        case CY_CC_43752_CHIP_ID:
        case CY_CC_43012_CHIP_ID:
                addr = CORE_CC_REG(pmu->base, retention_ctl);
 
        BRCMF_FW_ENTRY(BRCM_CC_4354_CHIP_ID, 0xFFFFFFFF, 4354),
        BRCMF_FW_ENTRY(BRCM_CC_4356_CHIP_ID, 0xFFFFFFFF, 4356),
        BRCMF_FW_ENTRY(BRCM_CC_4359_CHIP_ID, 0xFFFFFFFF, 4359),
+       BRCMF_FW_ENTRY(BRCM_CC_43751_CHIP_ID, 0xFFFFFFFF, 43752),
        BRCMF_FW_ENTRY(CY_CC_4373_CHIP_ID, 0xFFFFFFFF, 4373),
        BRCMF_FW_ENTRY(CY_CC_43012_CHIP_ID, 0xFFFFFFFF, 43012),
        BRCMF_FW_ENTRY(CY_CC_43439_CHIP_ID, 0xFFFFFFFF, 43439),
 
 static bool brcmf_sdio_aos_no_decode(struct brcmf_sdio *bus)
 {
-       if (bus->ci->chip == CY_CC_43012_CHIP_ID ||
+       if (bus->ci->chip == BRCM_CC_43751_CHIP_ID ||
+           bus->ci->chip == CY_CC_43012_CHIP_ID ||
            bus->ci->chip == CY_CC_43752_CHIP_ID)
                return true;
        else
                                   bus->hostintmask, NULL);
 
                switch (sdiod->func1->device) {
+               case SDIO_DEVICE_ID_BROADCOM_43751:
                case SDIO_DEVICE_ID_BROADCOM_CYPRESS_4373:
                case SDIO_DEVICE_ID_BROADCOM_CYPRESS_43752:
                        brcmf_dbg(INFO, "set F2 watermark to 0x%x*4 bytes\n",
 
 #define BRCM_CC_43664_CHIP_ID          43664
 #define BRCM_CC_43666_CHIP_ID          43666
 #define BRCM_CC_4371_CHIP_ID           0x4371
+#define BRCM_CC_43751_CHIP_ID          43751
 #define BRCM_CC_43752_CHIP_ID          43752
 #define BRCM_CC_4377_CHIP_ID           0x4377
 #define BRCM_CC_4378_CHIP_ID           0x4378
 
 #define SDIO_DEVICE_ID_BROADCOM_43430          0xa9a6
 #define SDIO_DEVICE_ID_BROADCOM_43439          0xa9af
 #define SDIO_DEVICE_ID_BROADCOM_43455          0xa9bf
+#define SDIO_DEVICE_ID_BROADCOM_43751          0xaae7
 #define SDIO_DEVICE_ID_BROADCOM_CYPRESS_43752  0xaae8
 
 #define SDIO_VENDOR_ID_CYPRESS                 0x04b4