wifi: brcmfmac: pcie: Add IDs/properties for BCM4387
authorHector Martin <marcan@marcan.st>
Tue, 14 Feb 2023 09:24:20 +0000 (18:24 +0900)
committerKalle Valo <kvalo@kernel.org>
Mon, 27 Feb 2023 14:59:35 +0000 (16:59 +0200)
This chip is present on Apple M1 Pro/Max (t600x) platforms:

* maldives   (apple,j314s): MacBook Pro (14-inch, M1 Pro, 2021)
* maldives   (apple,j314c): MacBook Pro (14-inch, M1 Max, 2021)
* madagascar (apple,j316s): MacBook Pro (16-inch, M1 Pro, 2021)
* madagascar (apple,j316c): MacBook Pro (16-inch, M1 Max, 2021)

Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Arend van Spriel <arend.vanspriel@broadcom.com>
Signed-off-by: Hector Martin <marcan@marcan.st>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20230214092423.15175-7-marcan@marcan.st
drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c
drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c
drivers/net/wireless/broadcom/brcm80211/include/brcm_hw_ids.h

index 50e0c015cf43a7f3c5b7ac99f1a352c9050edaaf..9f9bf08a70bb46ca3f9d59d3b89413559b28a220 100644 (file)
@@ -743,6 +743,8 @@ static u32 brcmf_chip_tcm_rambase(struct brcmf_chip_priv *ci)
                return 0x170000;
        case BRCM_CC_4378_CHIP_ID:
                return 0x352000;
+       case BRCM_CC_4387_CHIP_ID:
+               return 0x740000;
        default:
                brcmf_err("unknown chip: %s\n", ci->pub.name);
                break;
index 2835ef4edb18f0a7b21187c09e141b4fbb2eeeb8..d2dad5414f396636eedfe5a4458c26a663003ebb 100644 (file)
@@ -67,6 +67,7 @@ BRCMF_FW_DEF(4366C, "brcmfmac4366c-pcie");
 BRCMF_FW_DEF(4371, "brcmfmac4371-pcie");
 BRCMF_FW_CLM_DEF(4377B3, "brcmfmac4377b3-pcie");
 BRCMF_FW_CLM_DEF(4378B1, "brcmfmac4378b1-pcie");
+BRCMF_FW_CLM_DEF(4387C2, "brcmfmac4387c2-pcie");
 
 /* firmware config files */
 MODULE_FIRMWARE(BRCMF_FW_DEFAULT_PATH "brcmfmac*-pcie.txt");
@@ -101,6 +102,7 @@ static const struct brcmf_firmware_mapping brcmf_pcie_fwnames[] = {
        BRCMF_FW_ENTRY(BRCM_CC_4371_CHIP_ID, 0xFFFFFFFF, 4371),
        BRCMF_FW_ENTRY(BRCM_CC_4377_CHIP_ID, 0xFFFFFFFF, 4377B3), /* revision ID 4 */
        BRCMF_FW_ENTRY(BRCM_CC_4378_CHIP_ID, 0xFFFFFFFF, 4378B1), /* revision ID 3 */
+       BRCMF_FW_ENTRY(BRCM_CC_4387_CHIP_ID, 0xFFFFFFFF, 4387C2), /* revision ID 7 */
 };
 
 #define BRCMF_PCIE_FW_UP_TIMEOUT               5000 /* msec */
@@ -2048,6 +2050,11 @@ static int brcmf_pcie_read_otp(struct brcmf_pciedev_info *devinfo)
                base = 0x1120;
                words = 0x170;
                break;
+       case BRCM_CC_4387_CHIP_ID:
+               coreid = BCMA_CORE_GCI;
+               base = 0x113c;
+               words = 0x170;
+               break;
        default:
                /* OTP not supported on this chip */
                return 0;
@@ -2662,6 +2669,7 @@ static const struct pci_device_id brcmf_pcie_devid_table[] = {
        BRCMF_PCIE_DEVICE(BRCM_PCIE_43596_DEVICE_ID, CYW),
        BRCMF_PCIE_DEVICE(BRCM_PCIE_4377_DEVICE_ID, WCC),
        BRCMF_PCIE_DEVICE(BRCM_PCIE_4378_DEVICE_ID, WCC),
+       BRCMF_PCIE_DEVICE(BRCM_PCIE_4387_DEVICE_ID, WCC),
 
        { /* end: all zeroes */ }
 };
index 896615f5795227286876e87b72f989091fc9f947..44684bf1b9acc69b5aaeae17ea33e6b2c733df0d 100644 (file)
@@ -54,6 +54,7 @@
 #define BRCM_CC_4371_CHIP_ID           0x4371
 #define BRCM_CC_4377_CHIP_ID           0x4377
 #define BRCM_CC_4378_CHIP_ID           0x4378
+#define BRCM_CC_4387_CHIP_ID           0x4387
 #define CY_CC_4373_CHIP_ID             0x4373
 #define CY_CC_43012_CHIP_ID            43012
 #define CY_CC_43439_CHIP_ID            43439
@@ -95,6 +96,7 @@
 #define BRCM_PCIE_43596_DEVICE_ID      0x4415
 #define BRCM_PCIE_4377_DEVICE_ID       0x4488
 #define BRCM_PCIE_4378_DEVICE_ID       0x4425
+#define BRCM_PCIE_4387_DEVICE_ID       0x4433
 
 /* brcmsmac IDs */
 #define BCM4313_D11N2G_ID      0x4727  /* 4313 802.11n 2.4G device */