mirror of https://github.com/hak5/openwrt.git
76 lines
3.3 KiB
Diff
76 lines
3.3 KiB
Diff
From d4aef159394d5940bd7158ab789969dab82f7c76 Mon Sep 17 00:00:00 2001
|
|
From: Soeren Moch <smoch@web.de>
|
|
Date: Thu, 12 Dec 2019 00:52:49 +0100
|
|
Subject: [PATCH 5/7] brcmfmac: add support for BCM4359 SDIO chipset
|
|
|
|
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 | 2 ++
|
|
drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c | 1 +
|
|
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 2 ++
|
|
include/linux/mmc/sdio_ids.h | 2 ++
|
|
4 files changed, 7 insertions(+)
|
|
|
|
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
|
|
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
|
|
@@ -973,8 +973,10 @@ static const struct sdio_device_id brcmf
|
|
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);
|
|
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c
|
|
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/chip.c
|
|
@@ -1408,6 +1408,7 @@ bool brcmf_chip_sr_capable(struct brcmf_
|
|
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);
|
|
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
|
|
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
|
|
@@ -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_mappi
|
|
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)
|
|
};
|
|
--- a/include/linux/mmc/sdio_ids.h
|
|
+++ b/include/linux/mmc/sdio_ids.h
|
|
@@ -41,8 +41,10 @@
|
|
#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
|