]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
brcmfmac: add support for BCM4359 SDIO chipset
authorSoeren Moch <smoch@web.de>
Wed, 11 Dec 2019 23:52:49 +0000 (00:52 +0100)
committerKalle Valo <kvalo@codeaurora.org>
Wed, 18 Dec 2019 19:07:42 +0000 (21:07 +0200)
BCM4359 is a 2x2 802.11 abgn+ac Dual-Band HT80 combo chip and it
supports Real Simultaneous Dual Band feature.

Based on a similar patch by: Wright Feng <wright.feng@cypress.com>

Signed-off-by: Soeren Moch <smoch@web.de>
Acked-by: Chi-Hsien Lin <chi-hsien.lin@cypress.com>
Acked-by: Ulf Hansson <ulf.hansson@linaro.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
include/linux/mmc/sdio_ids.h

index 68baf0189305f448f1ff3e68e11cde4aa2b30d1f..f4c53ab46058bae47ac7c939411a98c1e757719f 100644 (file)
@@ -973,8 +973,10 @@ static const struct sdio_device_id brcmf_sdmmc_ids[] = {
        BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_43455),
        BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_4354),
        BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_4356),
+       BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_4359),
        BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_CYPRESS_4373),
        BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_CYPRESS_43012),
+       BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_CYPRESS_89359),
        { /* end: all zeroes */ }
 };
 MODULE_DEVICE_TABLE(sdio, brcmf_sdmmc_ids);
index baf72e3984fc9ad15e296544682092a35857fcc2..282d0bc14e8e330a047ef741f5edd28221eb3908 100644 (file)
@@ -1408,6 +1408,7 @@ bool brcmf_chip_sr_capable(struct brcmf_chip *pub)
                addr = CORE_CC_REG(base, sr_control0);
                reg = chip->ops->read32(chip->ctx, addr);
                return (reg & CC_SR_CTL0_ENABLE_MASK) != 0;
+       case BRCM_CC_4359_CHIP_ID:
        case CY_CC_43012_CHIP_ID:
                addr = CORE_CC_REG(pmu->base, retention_ctl);
                reg = chip->ops->read32(chip->ctx, addr);
index 4d5b7770d4eab55f63ca0a74cabce59d1286261c..f9df95bc7fa12d84a97f6b7b7b333495f74c7fd3 100644 (file)
@@ -616,6 +616,7 @@ BRCMF_FW_DEF(43455, "brcmfmac43455-sdio");
 BRCMF_FW_DEF(43456, "brcmfmac43456-sdio");
 BRCMF_FW_DEF(4354, "brcmfmac4354-sdio");
 BRCMF_FW_DEF(4356, "brcmfmac4356-sdio");
+BRCMF_FW_DEF(4359, "brcmfmac4359-sdio");
 BRCMF_FW_DEF(4373, "brcmfmac4373-sdio");
 BRCMF_FW_DEF(43012, "brcmfmac43012-sdio");
 
@@ -638,6 +639,7 @@ static const struct brcmf_firmware_mapping brcmf_sdio_fwnames[] = {
        BRCMF_FW_ENTRY(BRCM_CC_4345_CHIP_ID, 0xFFFFFDC0, 43455),
        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(CY_CC_4373_CHIP_ID, 0xFFFFFFFF, 4373),
        BRCMF_FW_ENTRY(CY_CC_43012_CHIP_ID, 0xFFFFFFFF, 43012)
 };
index 08b25c02b5a11d77313d10d563d1a18d6c720376..2e9a6e4634eb3a2042508884da6f429f6c631edc 100644 (file)
 #define SDIO_DEVICE_ID_BROADCOM_43455          0xa9bf
 #define SDIO_DEVICE_ID_BROADCOM_4354           0x4354
 #define SDIO_DEVICE_ID_BROADCOM_4356           0x4356
+#define SDIO_DEVICE_ID_BROADCOM_4359           0x4359
 #define SDIO_DEVICE_ID_CYPRESS_4373            0x4373
 #define SDIO_DEVICE_ID_CYPRESS_43012           43012
+#define SDIO_DEVICE_ID_CYPRESS_89359           0x4355
 
 #define SDIO_VENDOR_ID_INTEL                   0x0089
 #define SDIO_DEVICE_ID_INTEL_IWMC3200WIMAX     0x1402